diff options
229 files changed, 7947 insertions, 8586 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 405c8850504..6cfda3a01e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -774,7 +774,7 @@ elseif(WIN32) set(PLATFORM_LINKFLAGS_DEBUG "/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib") else() - # keep GCC spesific stuff here + # keep GCC specific stuff here if(CMAKE_COMPILER_IS_GNUCC) set(PLATFORM_LINKLIBS "-lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32") set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing") diff --git a/GNUmakefile b/GNUmakefile index aad3c58938c..af953143b82 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -34,10 +34,13 @@ OS_NCASE:=$(shell uname -s | tr '[A-Z]' '[a-z]') # Source and Build DIR's BLENDER_DIR:=$(shell pwd -P) -BUILD_DIR:=$(shell dirname $(BLENDER_DIR))/build/$(OS_NCASE) BUILD_TYPE:=Release BUILD_CMAKE_ARGS:= +ifndef BUILD_DIR + BUILD_DIR:=$(shell dirname $(BLENDER_DIR))/build/$(OS_NCASE) +endif + # ----------------------------------------------------------------------------- # additional targets for the build configuration @@ -120,6 +123,9 @@ help: @echo " * headless - build without an interface (renderfarm or server automation)" @echo " * bpy - build as a python module which can be loaded from python directly" @echo "" + @echo " Note, passing the argument 'BUILD_DIR=path' when calling make will override the default build dir." + @echo "" + @echo "" @echo "Project Files for IDE's" @echo " * project_qtcreator - QtCreator Project Files" @echo " * project_netbeans - NetBeans Project Files" @@ -130,9 +136,8 @@ help: @echo " * package_pacman - build an arch linux pacmanpackage" @echo " * package_archive - build an archive package" @echo "" - @echo "Other Targets" + @echo "Other Targets (not assosiated with building blender)" @echo " * translations - update blenders translation files in po/" - # TODO, doxygen and sphinx docs @echo "" @echo "Testing Targets (not assosiated with building blender)" @echo " * test - run ctest, currently tests import/export, operator execution and that python modules load" @@ -145,6 +150,11 @@ help: @echo " * check_splint - run blenders source through splint (C only)" @echo " * check_sparse - run blenders source through sparse (C only)" @echo "" + @echo "Documentation Targets (not assosiated with building blender)" + @echo " * doc_py - generate sphinx python api docs" + @echo " * doc_dna - generate blender file format reference" + @echo " * doc_man - generate manpage" + @echo "" # ----------------------------------------------------------------------------- # Packages @@ -222,6 +232,24 @@ check_sparse: cd $(BUILD_DIR) ; python3 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_sparse.py +# ----------------------------------------------------------------------------- +# Documentation +# + +# Simple version of ./doc/python_api/sphinx_doc_gen.sh with no PDF generation. +doc_py: + $(BUILD_DIR)/bin/blender --background --factory-startup --python doc/python_api/sphinx_doc_gen.py + cd doc/python_api ; sphinx-build -n -b html sphinx-in sphinx-out + @echo "docs written into: '$(BLENDER_DIR)/doc/python_api/sphinx-out/contents.html'" + +doc_dna: + $(BUILD_DIR)/bin/blender --background --factory-startup --python doc/blender_file_format/BlendFileDnaExporter_25.py + @echo "docs written into: '$(BLENDER_DIR)/doc/blender_file_format/dna.html'" + +doc_man: + python3 doc/manpage/blender.1.py $(BUILD_DIR)/bin/blender + + clean: $(MAKE) -C $(BUILD_DIR) clean diff --git a/build_files/cmake/Modules/FindGLEW.cmake b/build_files/cmake/Modules/FindGLEW.cmake index c791327c8da..7e1b00d0923 100644 --- a/build_files/cmake/Modules/FindGLEW.cmake +++ b/build_files/cmake/Modules/FindGLEW.cmake @@ -51,9 +51,9 @@ ELSE (WIN32) ENDIF (WIN32) IF (GLEW_INCLUDE_PATH) - SET( GLEW_FOUND 1 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise") + SET(GLEW_FOUND TRUE) ELSE (GLEW_INCLUDE_PATH) - SET( GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise") + SET(GLEW_FOUND FALSE) ENDIF (GLEW_INCLUDE_PATH) MARK_AS_ADVANCED( GLEW_FOUND ) diff --git a/build_files/cmake/Modules/FindOpenCOLLADA.cmake b/build_files/cmake/Modules/FindOpenCOLLADA.cmake index 0c8d8c8d841..77c8b09c4ac 100644 --- a/build_files/cmake/Modules/FindOpenCOLLADA.cmake +++ b/build_files/cmake/Modules/FindOpenCOLLADA.cmake @@ -53,10 +53,11 @@ SET(_opencollada_FIND_COMPONENTS ) # Fedora openCOLLADA package links these statically +# note that order is important here ot it wont link SET(_opencollada_FIND_STATIC_COMPONENTS - UTF - ftoa buffer + ftoa + UTF ) SET(_opencollada_SEARCH_DIRS diff --git a/build_files/cmake/RpmBuild.cmake b/build_files/cmake/RpmBuild.cmake index 2c821a9dd7a..2fdd0a72932 100644 --- a/build_files/cmake/RpmBuild.cmake +++ b/build_files/cmake/RpmBuild.cmake @@ -3,17 +3,24 @@ # Authors: Rohit Yadav <rohityadav89@gmail.com> # -find_program(RPMBUILD - NAMES rpmbuild - PATHS "/usr/bin") +if(NOT DEFINED RPMBUILD) -mark_as_advanced(RPMBUILD) + find_program(RPMBUILD + NAMES rpmbuild + PATHS "/usr/bin") + + mark_as_advanced(RPMBUILD) + + if(RPMBUILD) + message(STATUS "RPM Build Found: ${RPMBUILD}") + else(RPMBUILD) + message(STATUS "RPM Build Not Found (rpmbuild). RPM generation will not be available") + endif() + +endif() if(RPMBUILD) - get_filename_component(RPMBUILD_PATH ${RPMBUILD} ABSOLUTE) - message(STATUS "Found rpmbuild : ${RPMBUILD_PATH}") - set(RPMBUILD_FOUND "YES") + set(RPMBUILD_FOUND TRUE) else(RPMBUILD) - message(STATUS "rpmbuild NOT found. RPM generation will not be available") - set(RPMBUILD_FOUND "NO") -endif() + set(RPMBUILD_FOUND FALSE) +endif()
\ No newline at end of file diff --git a/build_files/cmake/cmake_consistency_check_config.py b/build_files/cmake/cmake_consistency_check_config.py index 60a46d3a1dd..86f51273ff5 100644 --- a/build_files/cmake/cmake_consistency_check_config.py +++ b/build_files/cmake/cmake_consistency_check_config.py @@ -27,6 +27,10 @@ IGNORE = ( "extern/eltopo/common/openglutils.cpp", "extern/eltopo/eltopo3d/broadphase_blenderbvh.cpp", "source/blender/imbuf/intern/imbuf_cocoa.m", + "extern/recastnavigation/Recast/Source/RecastLog.cpp", + "extern/recastnavigation/Recast/Source/RecastTimer.cpp", + "entern/audaspace/SRC/AUD_SRCResampleFactory.cpp", + "entern/audaspace/SRC/AUD_SRCResampleReader.cpp", "extern/bullet2/src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.h", "extern/bullet2/src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.h", @@ -41,6 +45,10 @@ IGNORE = ( "extern/eltopo/common/meshes/TriangleIndex.hpp", "extern/eltopo/common/meshes/meshloader.h", "extern/eltopo/eltopo3d/broadphase_blenderbvh.h" + "extern/recastnavigation/Recast/Include/RecastLog.h", + "extern/recastnavigation/Recast/Include/RecastTimer.h", + "intern/audaspace/SRC/AUD_SRCResampleFactory.h", + "intern/audaspace/SRC/AUD_SRCResampleReader.h", ) UTF8_CHECK = True diff --git a/build_files/scons/tools/Blender.py b/build_files/scons/tools/Blender.py index c934b0380f9..2f5d708cc46 100644 --- a/build_files/scons/tools/Blender.py +++ b/build_files/scons/tools/Blender.py @@ -582,6 +582,20 @@ def AppIt(target=None, source=None, env=None): commands.getoutput(cmd) cmd = 'find %s/%s.app -name __MACOSX -exec rm -rf {} \;'%(installdir, binary) commands.getoutput(cmd) + if env['CC'].endswith('4.6.1'): # for correct errorhandling with gcc 4.6.1 we need the gcc.dylib to link, thus distribute in app-bundle + cmd = 'mkdir %s/%s.app/Contents/MacOS/lib'%(installdir, binary) + commands.getoutput(cmd) + instname = env['BF_CXX'] + cmd = 'cp %s/lib/libgcc_s.1.dylib %s/%s.app/Contents/MacOS/lib/'%(instname, installdir, binary) + commands.getoutput(cmd) + cmd = 'install_name_tool -id @executable_path/lib/libgcc_s.1.dylib %s/%s.app/Contents/MacOS/lib/libgcc_s.1.dylib'%(installdir, binary) + commands.getoutput(cmd) + cmd = 'install_name_tool -change %s/lib/libgcc_s.1.dylib @executable_path/lib/libgcc_s.1.dylib %s/%s.app/Contents/MacOS/%s'%(instname, installdir, binary, binary) + commands.getoutput(cmd) + cmd = 'rm -rf %s/set_simulation_threads.app'%(installdir) # first clear omp_num_threads applescript + commands.getoutput(cmd) + cmd = 'cp -R %s/source/darwin/set_simulation_threads.app %s/'%(bldroot, installdir) # copy the omp_num_threads applescript + commands.getoutput(cmd) # extract copy system python, be sure to update other build systems # when making changes to the files that are copied. diff --git a/doc/build_systems/scons-dev.txt b/doc/build_systems/scons-dev.txt index ca1b3924804..4cc4e6c6ec2 100644 --- a/doc/build_systems/scons-dev.txt +++ b/doc/build_systems/scons-dev.txt @@ -189,6 +189,6 @@ $Id$ need changes elsewhere in the system, as it is handled automatically with the central library repository. - Enjoy the new system! + Enjoy the new system!! /Nathan Letwory (jesterKing) diff --git a/doc/manpage/blender.1 b/doc/manpage/blender.1 index 20cd40e32ee..620a90e61d2 100644 --- a/doc/manpage/blender.1 +++ b/doc/manpage/blender.1 @@ -1,4 +1,4 @@ -.TH "BLENDER" "1" "September 22, 2011" "Blender Blender 2\&.59 (sub 3)" +.TH "BLENDER" "1" "October 17, 2011" "Blender Blender 2\&.60 (sub 0)" .SH NAME blender \- a 3D modelling and rendering package @@ -15,7 +15,7 @@ Use Blender to create TV commercials, to make technical visualizations, business http://www.blender.org .SH OPTIONS -Blender 2.59 (sub 3) +Blender 2.59 (sub 4) Usage: blender [args ...] [file] [args ...] .br .SS "Render Options:" @@ -382,6 +382,7 @@ Arguments are executed in the order they are given. eg \fIBLENDER_SYSTEM_DATAFILES\fR Directory for system wide data files. \fIBLENDER_SYSTEM_PYTHON\fR Directory for system python libraries. \fITMP\fR or \fITMPDIR\fR Store temporary files here. + \fISDL_AUDIODRIVER\fR LibSDL audio driver \- alsa, esd, dma. \fIPYTHONHOME\fR Path to the python directory, eg. /usr/lib/python. .br .br diff --git a/doc/manpage/blender.1.py b/doc/manpage/blender.1.py index 40234300994..21df42a4082 100644 --- a/doc/manpage/blender.1.py +++ b/doc/manpage/blender.1.py @@ -22,6 +22,7 @@ import subprocess import os +import sys import time import datetime @@ -43,10 +44,15 @@ def man_format(data): return data +# allow passing blender as argument +if sys.argv[-1].endswith(os.sep + "blender"): + blender_bin = sys.argv[-1] +else: + blender_bin = os.path.join(os.path.dirname(__file__), "../../blender.bin") -blender_bin = os.path.join(os.path.dirname(__file__), "../../blender.bin") - -blender_help = subprocess.Popen([blender_bin, "--help"], stdout=subprocess.PIPE).communicate()[0].decode() +cmd = [blender_bin, "--help"] +print(" executing:", " ".join(cmd)) +blender_help = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0].decode() blender_version = subprocess.Popen([blender_bin, "--version"], stdout=subprocess.PIPE).communicate()[0].decode().strip() blender_version = blender_version.split("Build")[0] diff --git a/doc/python_api/examples/mathutils.Color.py b/doc/python_api/examples/mathutils.Color.py new file mode 100644 index 00000000000..a55f1195bf6 --- /dev/null +++ b/doc/python_api/examples/mathutils.Color.py @@ -0,0 +1,30 @@ +import mathutils + +# color values are represented as RGB values from 0 - 1, this is blue +col = mathutils.Color((0.0, 0.0, 1.0)) + +# as well as r/g/b attribute access you can adjust them by h/s/v +col.s *= 0.5 + +# you can access its components by attribute or index +print("Color R:", col.r) +print("Color G:", col[1]) +print("Color B:", col[-1]) +print("Color HSV: %.2f, %.2f, %.2f", col[:]) + + +# components of an existing color can be set +col[:] = 0.0, 0.5, 1.0 + +# components of an existing color can use slice notation to get a tuple +print("Values: %f, %f, %f" % col[:]) + +# colors can be added and subtracted +col += mathutils.Color((0.25, 0.0, 0.0)) + +# Color can be multiplied, in this example color is scaled to 0-255 +# can printed as integers +print("Color: %d, %d, %d" % (col * 255.0)[:]) + +# This example prints the color as hexidecimal +print("Hexidecimal: %.2x%.2x%.2x" % (col * 255.0)[:]) diff --git a/doc/python_api/examples/mathutils.Euler.py b/doc/python_api/examples/mathutils.Euler.py index bc7702c1d53..3f87cc0ab04 100644 --- a/doc/python_api/examples/mathutils.Euler.py +++ b/doc/python_api/examples/mathutils.Euler.py @@ -1,3 +1,32 @@ import mathutils +import math -# todo +# create a new euler with default axis rotation order +eul = mathutils.Euler((0.0, math.radians(45.0), 0.0), 'XYZ') + +# rotate the euler +eul.rotate_axis(math.radians(10.0), 'Z') + +# you can access its components by attribute or index +print("Euler X", eul.x) +print("Euler Y", eul[1]) +print("Euler Z", eul[-1]) + +# components of an existing euler can be set +eul[:] = 1.0, 2.0, 3.0 + +# components of an existing euler can use slice notation to get a tuple +print("Values: %f, %f, %f" % eul[:]) + +# the order can be set at any time too +eul.order = 'ZYX' + +# eulers can be used to rotate vectors +vec = mathutils.Vector((0.0, 0.0, 1.0)) +vec.rotate(eul) + +# often its useful to convert the euler into a matrix so it can be used as +# transformations with more flexibility +mat_rot = eul.to_matrix() +mat_loc = mathutils.Matrix.Translation((2.0, 3.0, 4.0)) +mat = mat_loc * mat_rot.to_4x4() diff --git a/doc/python_api/examples/mathutils.Matrix.py b/doc/python_api/examples/mathutils.Matrix.py index bc7702c1d53..079070a5ec7 100644 --- a/doc/python_api/examples/mathutils.Matrix.py +++ b/doc/python_api/examples/mathutils.Matrix.py @@ -1,3 +1,28 @@ import mathutils +import math -# todo +# create a location matrix +mat_loc = mathutils.Matrix.Translation((2.0, 3.0, 4.0)) + +# create an identitiy matrix +mat_sca = mathutils.Matrix.Scale(0.5, 4, (0.0, 0.0, 1.0)) + +# create a rotation matrix +mat_rot = mathutils.Matrix.Rotation(math.radians(45.0), 4, 'X') + +# combine transformations +mat_out = mat_loc * mat_rot * mat_sca +print(mat_out) + +# extract components back out of the matrix +loc, rot, sca = mat_out.decompose() +print(loc, rot, sca) + +# it can also be useful to access components of a matrix directly +mat = mathutils.Matrix() +mat[0][0], mat[1][0], mat[2][0] = 0.0, 1.0, 2.0 + +mat[0][0:3] = 0.0, 1.0, 2.0 + +# each item in a matrix is a vector so vector utility functions can be used +mat[0].xyz = 0.0, 1.0, 2.0 diff --git a/doc/python_api/examples/mathutils.Quaternion.py b/doc/python_api/examples/mathutils.Quaternion.py index bc7702c1d53..d8c696e6ba6 100644 --- a/doc/python_api/examples/mathutils.Quaternion.py +++ b/doc/python_api/examples/mathutils.Quaternion.py @@ -1,3 +1,23 @@ import mathutils +import math -# todo +# a new rotation 90 degrees about the Y axis +quat_a = mathutils.Quaternion((0.7071068, 0.0, 0.7071068, 0.0)) + +# passing values to Quaternion's directly can be confusing so axis, angle +# is supported for initializing too +quat_b = mathutils.Quaternion((0.0, 1.0, 0.0), math.radians(90.0)) + +print("Check quaternions match", quat_a == quat_b) + +# like matrices, quaternions can be multiplied to accumulate rotational values +quat_a = mathutils.Quaternion((0.0, 1.0, 0.0), math.radians(90.0)) +quat_b = mathutils.Quaternion((0.0, 0.0, 1.0), math.radians(45.0)) +quat_out = quat_a * quat_b + +# print the quat, euler degrees for mear mortals and (axis, angle) +print("Final Rotation:") +print(quat_out) +print("%.2f, %.2f, %.2f" % tuple(math.degrees(a) for a in quat_out.to_euler())) +print("(%.2f, %.2f, %.2f), %.2f" % (quat_out.axis[:] + + (math.degrees(quat_out.angle), ))) diff --git a/doc/python_api/rst/bge.logic.rst b/doc/python_api/rst/bge.logic.rst index 798491b4710..82e69965840 100644 --- a/doc/python_api/rst/bge.logic.rst +++ b/doc/python_api/rst/bge.logic.rst @@ -106,7 +106,7 @@ There are also methods to access the current :class:`bge.types.KX_Scene` Matricies as used by the game engine are **row major** ``matrix[row][col] = float`` -:class:`bge.types.KX_Camera` has some examples using matricies. +:class:`bge.types.KX_Camera` has some examples using matrices. ********* Variables diff --git a/doc/python_api/rst/bgl.rst b/doc/python_api/rst/bgl.rst index 61400351d16..8fe765836a1 100644 --- a/doc/python_api/rst/bgl.rst +++ b/doc/python_api/rst/bgl.rst @@ -20,7 +20,7 @@ OpenGL}" and the online NeHe tutorials are two of the best resources. See :class:`Image.gl_load` and :class:`Image.gl_load`, for example. `OpenGL.org <http://www.opengl.org>`_ - `NeHe GameDev <nehe.gamedev.net>`_ + `NeHe GameDev <http://nehe.gamedev.net>`_ .. function:: glAccum(op, value): diff --git a/doc/python_api/rst/gpu.rst b/doc/python_api/rst/gpu.rst index 72a5dc2f5d3..2ca7fdda9d5 100644 --- a/doc/python_api/rst/gpu.rst +++ b/doc/python_api/rst/gpu.rst @@ -1,7 +1,10 @@ - GPU functions (gpu) =================== +.. module:: gpu + +This module provides access to materials GLSL shaders. + ***** Intro ***** @@ -16,7 +19,6 @@ and in the game engine. are are closely related to Blender's internal GLSL code and may change if the GLSL code is modified (e.g. new uniform type). -.. module:: gpu ********* Constants diff --git a/doc/python_api/rst/info_best_practice.rst b/doc/python_api/rst/info_best_practice.rst index 2fbc636613c..180a9fd1aa3 100644 --- a/doc/python_api/rst/info_best_practice.rst +++ b/doc/python_api/rst/info_best_practice.rst @@ -2,8 +2,9 @@ Best Practice ************* +When writing you're own scripts python is great for new developers to pick up and become productive, but you can also pick up odd habits or at least write scripts that are not easy for others to understand. -TODO: Intro text +For you're own work this is of course fine, but if you want to collaborate with others or have you're work included with blender there are practices we encourage. Style Conventions @@ -61,5 +62,233 @@ TODO: Thomas Script Efficiency ================= -TODO: Campbell +List Manipulation (General Python Tips) +--------------------------------------- + +Searching for list items +^^^^^^^^^^^^^^^^^^^^^^^^ + +In Python there are some handy list functions that save you having to search through the list. + +Even though you're not looping on the list data **python is**, so you need to be aware of functions that will slow down your script by searching the whole list. + +.. code-block:: python + + my_list.count(list_item) + my_list.index(list_item) + my_list.remove(list_item) + if list_item in my_list: ... + + +Modifying Lists +^^^^^^^^^^^^^^^ +In python we can add and remove from a list, This is slower when the list length is modifier, especially at the start of the list, since all the data after the index of modification needs to be moved up or down 1 place. + +The most simple way to add onto the end of the list is to use ``my_list.append(list_item)`` or ``my_list.extend(some_list)`` and the fastest way to remove an item is ``my_list.pop()`` or ``del my_list[-1]``. + +To use an index you can use ``my_list.insert(index, list_item)`` or ``list.pop(index)`` for list removal, but these are slower. + +Sometimes its faster (but more memory hungry) to just rebuild the list. + + +Say you want to remove all triangle faces in a list. + +Rather than... + +.. code-block:: python + + faces = mesh.faces[:] # make a list copy of the meshes faces + f_idx = len(faces) # Loop backwards + while f_idx: # while the value is not 0 + f_idx -= 1 + + if len(faces[f_idx].vertices) == 3: + faces.pop(f_idx) # remove the triangle + + +It's faster to build a new list with list comprehension. + +.. code-block:: python + + faces = [f for f in mesh.faces if len(f.vertices) != 3] + + +Adding List Items +^^^^^^^^^^^^^^^^^ + +If you have a list that you want to add onto another list, rather then... + +.. code-block:: python + + for l in some_list: + my_list.append(l) + +Use... + +.. code-block:: python + + my_list.extend([a, b, c...]) + + +Note that insert can be used when needed, but it is slower than append especially when inserting at the start of a long list. + +This example shows a very sub-optimal way of making a reversed list. + + +.. code-block:: python + + reverse_list = [] + for list_item in some_list: + reverse_list.insert(0, list_item) + + +Removing List Items +^^^^^^^^^^^^^^^^^^^ + +Use ``my_list.pop(index)`` rather than ``my_list.remove(list_item)`` + +This requires you to have the index of the list item but is faster since ``remove()`` will search the list. + +Here is an example of how to remove items in 1 loop, removing the last items first, which is faster (as explained above). + +.. code-block:: python + + list_index = len(my_list) + + while list_index: + list_index -= 1 + if my_list[list_index].some_test_attribute == 1: + my_list.pop(list_index) + + +This example shows a fast way of removing items, for use in cases were where you can alter the list order without breaking the scripts functionality. This works by swapping 2 list items, so the item you remove is always last. + +.. code-block:: python + + pop_index = 5 + + # swap so the pop_index is last. + my_list[-1], my_list[pop_index] = my_list[pop_index], my_list[-1] + + # remove last item (pop_index) + my_list.pop() + + +When removing many items in a large list this can provide a good speedup. + + +Avoid Copying Lists +^^^^^^^^^^^^^^^^^^^ + +When passing a list/dictionary to a function, it is faster to have the function modify the list rather then returning a new list so python dosn't have tp duplicate the list in memory. + +Functions that modify a list in-place are more efficient then functions that create new lists. + + +This is generally slower so only use for functions when it makes sense not to modify the list in place. + +>>> my_list = some_list_func(my_list) + + +This is generally faster since there is no re-assignment and no list duplication. + +>>> some_list_func(vec) + + +Also note that passing a sliced list makes a copy of the list in python memory + +>>> foobar(my_list[:]) + +If my_list was a large array containing 10000's of items, a copy could use a lot of extra memory. + + +Writing Strings to a File (Python General) +------------------------------------------ + +Here are 3 ways of joining multiple strings into 1 string for writing + +This really applies to any area of your code that involves a lot of string joining. + + +Pythons string addition, *don't use if you can help it, especially when writing data in a loop.* + +>>> file.write(str1 + " " + str2 + " " + str3 + "\n") + + +String formatting. Use this when you're writing string data from floats and int's + +>>> file.write("%s %s %s\n" % (str1, str2, str3)) + + +Pythons string joining function. To join a list of strings + +>>> file.write(" ".join([str1, str2, str3, "\n"])) + + +join is fastest on many strings, string formatting is quite fast too (better for converting data types). String arithmetic is slowest. + + +Parsing Strings (Import/Exporting) +---------------------------------- + +Since many file formats are ASCII, the way you parse/export strings can make a large difference in how fast your script runs. + +When importing strings to make into blender there are a few ways to parse the string. + +Parsing Numbers +^^^^^^^^^^^^^^^ + +Use ``float(string)`` rather than ``eval(string)``, if you know the value will be an int then ``int(string)``, float() will work for an int too but its faster to read ints with int(). + +Checking String Start/End +^^^^^^^^^^^^^^^^^^^^^^^^^ + +If your checking the start of a string for a keyword, rather than... + +>>> if line[0:5] == "vert ": ... + +Use... + +>>> if line.startswith("vert "): + +Using ``startswith()`` is slightly faster (approx 5%) and also avoids a possible error with the slice length not matching the string length. + +my_string.endswith("foo_bar") can be used for line endings too. + +if your unsure whether the text is upper or lower case use lower or upper string function. + +>>> if line.lower().startswith("vert ") + + +Use try/except Sparingly +------------------------ + +The **try** statement useful to save time writing error checking code. + +However **try** is significantly slower then an **if** since an exception has to be set each time, so avoid using **try** in areas of your code that execute in a loop and runs many times. + +There are cases where using **try** is faster than checking weather the condition will raise an error, so it is worth experimenting. + + +Value Comparison +---------------- + +Python has two ways to compare values ``a == b`` and ``a is b``, The difference is that ``==`` may run the objects comparison function ``__cmp__()`` where as ``is`` compares identity, that both variables reference the same item in memory. + +In cases where you know you are checking for the same value which is referenced from multiple places, ``is`` is faster. + + +Time You're Code +---------------- + +While developing a script its good to time it to be aware of any changes in performance, this can be done simply. + +.. code-block:: python + + import time + time_start = time.time() + + # do something... + + print("My Script Finished: %.4f sec" % time.time() - time_start) diff --git a/doc/python_api/rst/info_gotcha.rst b/doc/python_api/rst/info_gotcha.rst index e7903dcf96a..b17debbb15c 100644 --- a/doc/python_api/rst/info_gotcha.rst +++ b/doc/python_api/rst/info_gotcha.rst @@ -223,6 +223,26 @@ While writing scripts that deal with armatures you may find you have to switch b This is mainly an issue with editmode since pose data can be manipulated without having to be in pose mode, however for operator access you may still need to enter pose mode. +Relative File Paths +=================== + +Blenders relative file paths are not compatible with standard python modules such as ``sys`` and ``os``. + +Built in python functions don't understand blenders ``//`` prefix which denotes the blend file path. + +A common case where you would run into this problem is when exporting a material with assosiated image paths. + +>>> bpy.path.abspath(image.filepath) + + +When using blender data from linked libraries there is an unfortunate complication since the path will be relative to the library rather then the open blend file. When the data block may be from an external blend file pass the library argument from the `bpy.types.ID`. + +>>> bpy.path.abspath(image.filepath, library=image.library) + + +These returns the absolute path which can be used with native python modules. + + Unicode Problems ================ diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py index c3f8675a30e..eb19b232b2b 100644 --- a/doc/python_api/sphinx_doc_gen.py +++ b/doc/python_api/sphinx_doc_gen.py @@ -83,6 +83,7 @@ else: "aud", "bgl", "blf", + "gpu", "mathutils", "mathutils.geometry", "Freestyle", @@ -1050,7 +1051,9 @@ def rna2sphinx(BASEPATH): fw("html_theme = 'blender-org'\n") fw("html_theme_path = ['../']\n") - fw("html_favicon = 'favicon.ico'\n") + # copied with the theme, exclude else we get an error [#28873] + fw("html_favicon = 'favicon.ico'\n") + # not helpful since the source us generated, adds to upload size. fw("html_copy_source = False\n") fw("\n") @@ -1130,6 +1133,8 @@ def rna2sphinx(BASEPATH): fw(" bgl.rst\n\n") if "blf" not in EXCLUDE_MODULES: fw(" blf.rst\n\n") + if "gpu" not in EXCLUDE_MODULES: + fw(" gpu.rst\n\n") if "aud" not in EXCLUDE_MODULES: fw(" aud.rst\n\n") if "bpy_extras" not in EXCLUDE_MODULES: @@ -1274,6 +1279,13 @@ def rna2sphinx(BASEPATH): import shutil shutil.copy2(os.path.join(BASEPATH, "..", "rst", "bgl.rst"), BASEPATH) + if "gpu" not in EXCLUDE_MODULES: + #import gpu as module + #pymodule2sphinx(BASEPATH, "gpu", module, "GPU Shader Module") + #del module + import shutil + shutil.copy2(os.path.join(BASEPATH, "..", "rst", "gpu.rst"), BASEPATH) + if "aud" not in EXCLUDE_MODULES: import aud as module pymodule2sphinx(BASEPATH, "aud", module, "Audio System") diff --git a/intern/audaspace/FX/AUD_DynamicIIRFilterReader.cpp b/intern/audaspace/FX/AUD_DynamicIIRFilterReader.cpp index ed9b2d3871d..f1edccb22fb 100644 --- a/intern/audaspace/FX/AUD_DynamicIIRFilterReader.cpp +++ b/intern/audaspace/FX/AUD_DynamicIIRFilterReader.cpp @@ -32,7 +32,8 @@ AUD_DynamicIIRFilterReader::AUD_DynamicIIRFilterReader(AUD_Reference<AUD_IReader> reader, AUD_Reference<AUD_DynamicIIRFilterFactory> factory) : - AUD_IIRFilterReader(reader, std::vector<float>(), std::vector<float>()) + AUD_IIRFilterReader(reader, std::vector<float>(), std::vector<float>()), + m_factory(factory) { sampleRateChanged(reader->getSpecs().rate); } diff --git a/intern/audaspace/FX/AUD_IIRFilterReader.cpp b/intern/audaspace/FX/AUD_IIRFilterReader.cpp index 1bfb9b97b62..90f7e1e3cb0 100644 --- a/intern/audaspace/FX/AUD_IIRFilterReader.cpp +++ b/intern/audaspace/FX/AUD_IIRFilterReader.cpp @@ -36,11 +36,14 @@ AUD_IIRFilterReader::AUD_IIRFilterReader(AUD_Reference<AUD_IReader> reader, const std::vector<float>& a) : AUD_BaseIIRFilterReader(reader, b.size(), a.size()), m_a(a), m_b(b) { - for(int i = 1; i < m_a.size(); i++) - m_a[i] /= m_a[0]; - for(int i = 0; i < m_b.size(); i++) - m_b[i] /= m_a[0]; - m_a[0] = 1; + if(m_a.size()) + { + for(int i = 1; i < m_a.size(); i++) + m_a[i] /= m_a[0]; + for(int i = 0; i < m_b.size(); i++) + m_b[i] /= m_a[0]; + m_a[0] = 1; + } } sample_t AUD_IIRFilterReader::filter() @@ -58,7 +61,7 @@ sample_t AUD_IIRFilterReader::filter() void AUD_IIRFilterReader::setCoefficients(const std::vector<float>& b, const std::vector<float>& a) { - setLengths(m_b.size(), m_a.size()); + setLengths(b.size(), a.size()); m_a = a; m_b = b; } diff --git a/intern/audaspace/intern/AUD_C-API.cpp b/intern/audaspace/intern/AUD_C-API.cpp index af053df9c50..66e3a0ed7e9 100644 --- a/intern/audaspace/intern/AUD_C-API.cpp +++ b/intern/audaspace/intern/AUD_C-API.cpp @@ -826,42 +826,51 @@ float* AUD_readSoundBuffer(const char* filename, float low, float high, AUD_Reference<AUD_IFactory> file = new AUD_FileFactory(filename); - AUD_Reference<AUD_IReader> reader = file->createReader(); - AUD_SampleRate rate = reader->getSpecs().rate; + int position = 0; - sound = new AUD_ChannelMapperFactory(file, specs); + try + { + AUD_Reference<AUD_IReader> reader = file->createReader(); - if(high < rate) - sound = new AUD_LowpassFactory(sound, high); - if(low > 0) - sound = new AUD_HighpassFactory(sound, low); + AUD_SampleRate rate = reader->getSpecs().rate; - sound = new AUD_EnvelopeFactory(sound, attack, release, threshold, 0.1f); - sound = new AUD_LinearResampleFactory(sound, specs); + sound = new AUD_ChannelMapperFactory(file, specs); - if(square) - sound = new AUD_SquareFactory(sound, sthreshold); + if(high < rate) + sound = new AUD_LowpassFactory(sound, high); + if(low > 0) + sound = new AUD_HighpassFactory(sound, low); - if(accumulate) - sound = new AUD_AccumulatorFactory(sound, additive); - else if(additive) - sound = new AUD_SumFactory(sound); + sound = new AUD_EnvelopeFactory(sound, attack, release, threshold, 0.1f); + sound = new AUD_LinearResampleFactory(sound, specs); - reader = sound->createReader(); + if(square) + sound = new AUD_SquareFactory(sound, sthreshold); - if(reader.isNull()) - return NULL; + if(accumulate) + sound = new AUD_AccumulatorFactory(sound, additive); + else if(additive) + sound = new AUD_SumFactory(sound); - int len; - int position = 0; - bool eos; - do + reader = sound->createReader(); + + if(reader.isNull()) + return NULL; + + int len; + bool eos; + do + { + len = samplerate; + buffer.resize((position + len) * sizeof(float), true); + reader->read(len, eos, buffer.getBuffer() + position); + position += len; + } while(!eos); + } + catch(AUD_Exception&) { - len = samplerate; - buffer.resize((position + len) * sizeof(float), true); - reader->read(len, eos, buffer.getBuffer() + position); - position += len; - } while(!eos); + return NULL; + } float* result = (float*)malloc(position * sizeof(float)); memcpy(result, buffer.getBuffer(), position * sizeof(float)); diff --git a/intern/audaspace/intern/AUD_NULLDevice.cpp b/intern/audaspace/intern/AUD_NULLDevice.cpp index b7d658aafe6..cb76f9eab88 100644 --- a/intern/audaspace/intern/AUD_NULLDevice.cpp +++ b/intern/audaspace/intern/AUD_NULLDevice.cpp @@ -69,7 +69,7 @@ bool AUD_NULLDevice::AUD_NULLHandle::seek(float position) float AUD_NULLDevice::AUD_NULLHandle::getPosition() { - return 0.0f; + return std::numeric_limits<float>::quiet_NaN(); } AUD_Status AUD_NULLDevice::AUD_NULLHandle::getStatus() @@ -79,7 +79,7 @@ AUD_Status AUD_NULLDevice::AUD_NULLHandle::getStatus() float AUD_NULLDevice::AUD_NULLHandle::getVolume() { - return 0.0f; + return std::numeric_limits<float>::quiet_NaN(); } bool AUD_NULLDevice::AUD_NULLHandle::setVolume(float volume) @@ -89,7 +89,7 @@ bool AUD_NULLDevice::AUD_NULLHandle::setVolume(float volume) float AUD_NULLDevice::AUD_NULLHandle::getPitch() { - return 0.0f; + return std::numeric_limits<float>::quiet_NaN(); } bool AUD_NULLDevice::AUD_NULLHandle::setPitch(float pitch) @@ -153,7 +153,7 @@ void AUD_NULLDevice::unlock() float AUD_NULLDevice::getVolume() const { - return 0; + return std::numeric_limits<float>::quiet_NaN(); } void AUD_NULLDevice::setVolume(float volume) diff --git a/intern/ghost/intern/GHOST_SystemSDL.h b/intern/ghost/intern/GHOST_SystemSDL.h index 87d288117c5..d70bec610d6 100644 --- a/intern/ghost/intern/GHOST_SystemSDL.h +++ b/intern/ghost/intern/GHOST_SystemSDL.h @@ -110,7 +110,7 @@ private: const GHOST_TEmbedderWindowID parentWindow ); - /* SDL spesific */ + /* SDL specific */ GHOST_WindowSDL * findGhostWindow(SDL_Window *sdl_win); bool diff --git a/intern/ghost/intern/GHOST_WindowSDL.h b/intern/ghost/intern/GHOST_WindowSDL.h index 6b016b85126..62e1a71227f 100644 --- a/intern/ghost/intern/GHOST_WindowSDL.h +++ b/intern/ghost/intern/GHOST_WindowSDL.h @@ -70,7 +70,7 @@ public: ~GHOST_WindowSDL(); - /* SDL spesific */ + /* SDL specific */ SDL_Window * getSDLWindow() { diff --git a/po/POTFILES.in b/po/POTFILES.in index 30c1d91b572..5a4ba6a9cb2 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -192,27 +192,7 @@ source/blender/editors/util/undo.c source/blender/editors/uvedit/uvedit_ops.c source/blender/editors/uvedit/uvedit_unwrap_ops.c -source/blender/makesrna/intern/rna_ID.c -source/blender/makesrna/intern/rna_action.c -source/blender/makesrna/intern/rna_color.c -source/blender/makesrna/intern/rna_constraint.c -source/blender/makesrna/intern/rna_curve.c -source/blender/makesrna/intern/rna_fcurve.c -source/blender/makesrna/intern/rna_material.c -source/blender/makesrna/intern/rna_mesh.c -source/blender/makesrna/intern/rna_modifier.c -source/blender/makesrna/intern/rna_object.c -source/blender/makesrna/intern/rna_object_force.c -source/blender/makesrna/intern/rna_particle.c -source/blender/makesrna/intern/rna_render.c -source/blender/makesrna/intern/rna_scene.c -source/blender/makesrna/intern/rna_space.c -source/blender/makesrna/intern/rna_texture.c -source/blender/makesrna/intern/rna_ui_api.c source/blender/makesrna/intern/rna_userdef.c -source/blender/makesrna/intern/rna_wm.c -source/blender/makesrna/intern/rna_wm_api.c -source/blender/makesrna/intern/rna_world.c source/blender/windowmanager/intern/wm_files.c source/blender/windowmanager/intern/wm_operators.c diff --git a/po/README.txt b/po/README.txt index 76dce7b414c..cadcb7194e8 100644 --- a/po/README.txt +++ b/po/README.txt @@ -6,7 +6,7 @@ I'll try briefly explain how translation works and how to update translation fil 1. How it works --------------- -This folder contains source files for translation system. This source files have +This folder contains source files for translation system. These source files have got .po extension and they've got pretty simple syntax: msgid "some message id" @@ -16,9 +16,9 @@ This means when string "some message id" is used as operator name, tooltip, menu and so it'll be displayed on the screen as "translation for this message". Pretty simple. -This source files are pre-compiled into ../relese/bin/.blender/locale/<language>/LC_MESSAGES/blender.mo, -so they aren't getting compiled every time Blender is compiling to same some time and prevent -failure on systems which doesn't have needed tools for compiling .po files. +This source files are pre-compiled into ../release/bin/.blender/locale/<language>/LC_MESSAGES/blender.mo, +so they aren't getting compiled every time Blender is compiling to save some time and prevent +failure on systems which don't have needed tools for compiling .po files. 2. How to update translations ----------------------------- @@ -32,7 +32,7 @@ msgid "some message id" msgstr "translation for this message" it means translation used to exist for this message, but message was changed, so translation -also have to be updated (it's easier to make new translation based on previos translation). +also have to be updated (it's easier to make new translation based on previous translation). When translation was updated, remove line with '#, fuzzy' and it'll work. If there's no message in .po file you want to translate, probably .po file should be updated. @@ -46,7 +46,7 @@ Use the following steps for this: - Run update_po.py script to merge all .po files with blender.pot (so all .po files will contain all msgid-s declared in blender.pot) or update_po.py <language> to update only needed .po file(s) to save time when you're busy with translation. - But before ocmmit all .po files better be updated. + But before commit all .po files better be updated. When you've finished with translation, you should re-compile .po file into .mo file. It's also pretty simple: just run update_mo.py script to recompile all languages or @@ -54,7 +54,7 @@ just update_mo.py <language> to re-compile only needed language(s). NOTE: msgfmt, msgmerge and xgettext tools should be available in your PATH. -This steps to update template, translation files and compile them can be made in "batch" mode +These steps to update template, translation files and compile them can be made in "batch" mode using GNUMakefile: make -f GNUMakefile translations @@ -65,7 +65,7 @@ NOTE: Blender has to be compiled using GNUMakefile first. 3. Note for Windows users ------------------------- You can find compiled builds of gettext in the lib folder under "binaries\gettext\" for both windows and win64. -In order to run the scripts you will need to replace the location of the GETTEXT_..._EXeCUTABLE. +In order to run the scripts you will need to replace the location of the GETTEXT_..._EXECUTABLE. For example in update_pot.py: -GETTEXT_XGETTEXT_EXECUTABLE = "xgettext" @@ -77,5 +77,5 @@ For example in update_pot.py: - check_po.py: this script checks if all messages declared in blender.pot exists in.po files and that no extra messages are declared in .po files - clean_po.py: this script removes all commented messages which aren't required by .pot file anymore. -- merge_po.py: this scripts accepts two files as arguments and copies translations from second file +- merge_po.py: this script accepts two files as arguments and copies translations from second file into first file. diff --git a/po/update_msg.py b/po/update_msg.py index 5986d96f14b..7cc7ee50b63 100644 --- a/po/update_msg.py +++ b/po/update_msg.py @@ -135,10 +135,12 @@ def dump_messages_rna(messages): item.identifier, ) # Here identifier and name can be the same! - if item.name: # and item.name != item.identifier: - messages.setdefault(item.name, []).append(msgsrc) + if item.name: # and item.name != item.identifier: + messages.setdefault(item.name, + []).append(msgsrc) if item.description: - messages.setdefault(item.description, []).append(msgsrc) + messages.setdefault(item.description, + []).append(msgsrc) def walkRNA(bl_rna): diff --git a/release/datafiles/splash.png b/release/datafiles/splash.png Binary files differindex 79339095b07..20f8d0cf16d 100644 --- a/release/datafiles/splash.png +++ b/release/datafiles/splash.png diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py index ef9a4615ff2..26611fb93ad 100644 --- a/release/scripts/modules/addon_utils.py +++ b/release/scripts/modules/addon_utils.py @@ -165,7 +165,7 @@ def modules(module_cache): if mod: module_cache[mod_name] = mod - # just incase we get stale modules, not likely + # just in case we get stale modules, not likely for mod_stale in modules_stale: del module_cache[mod_stale] del modules_stale @@ -209,7 +209,7 @@ def enable(module_name, default_set=True): :arg module_name: The name of the addon and module. :type module_name: string - :return: the loaded module or None on failier. + :return: the loaded module or None on failure. :rtype: module """ @@ -262,7 +262,7 @@ def enable(module_name, default_set=True): # * OK loaded successfully! * if default_set: - # just incase its enabled alredy + # just in case its enabled already ext = _bpy.context.user_preferences.addons.get(module_name) if not ext: ext = _bpy.context.user_preferences.addons.new() @@ -286,7 +286,7 @@ def disable(module_name, default_set=True): import sys mod = sys.modules.get(module_name) - # possible this addon is from a previous session and didnt load a + # possible this addon is from a previous session and didn't load a # module this time. So even if the module is not found, still disable # the addon in the user prefs. if mod: @@ -300,7 +300,7 @@ def disable(module_name, default_set=True): else: print("addon_utils.disable", module_name, "not loaded") - # could be in more then once, unlikely but better do this just incase. + # could be in more then once, unlikely but better do this just in case. addons = _bpy.context.user_preferences.addons if default_set: diff --git a/release/scripts/modules/animsys_refactor.py b/release/scripts/modules/animsys_refactor.py index 88097ed3d28..64110b0f620 100644 --- a/release/scripts/modules/animsys_refactor.py +++ b/release/scripts/modules/animsys_refactor.py @@ -73,7 +73,7 @@ class DataPathBuilder(object): try: print("base." + item_new) base_new = eval("base." + item_new) - break # found, dont keep looking + break # found, don't keep looking except: pass diff --git a/release/scripts/modules/blend_render_info.py b/release/scripts/modules/blend_render_info.py index 43820e82340..7c30b480d6b 100755 --- a/release/scripts/modules/blend_render_info.py +++ b/release/scripts/modules/blend_render_info.py @@ -69,7 +69,7 @@ def read_blend_rend_chunk(path): struct.unpack('>i' if is_big_endian else '<i', blendfile.read(4))[0] sizeof_bhead_left -= 4 - # We dont care about the rest of the bhead struct + # We don't care about the rest of the bhead struct blendfile.read(sizeof_bhead_left) # Now we want the scene name, start and end frame. this is 32bites long diff --git a/release/scripts/modules/bpy/__init__.py b/release/scripts/modules/bpy/__init__.py index 5c371fd750a..5fe5cfd7cf4 100644 --- a/release/scripts/modules/bpy/__init__.py +++ b/release/scripts/modules/bpy/__init__.py @@ -56,7 +56,7 @@ def main(): # from bpy.types import Panel sys.modules["bpy.types"] = types - # if "-d" in sys.argv: # Enable this to measure startup speed + #~ if "-d" in sys.argv: # Enable this to measure start up speed if 0: import cProfile cProfile.run('import bpy; bpy.utils.load_scripts()', 'blender.prof') diff --git a/release/scripts/modules/bpy/ops.py b/release/scripts/modules/bpy/ops.py index ba9f6dafd19..382a47cb4e6 100644 --- a/release/scripts/modules/bpy/ops.py +++ b/release/scripts/modules/bpy/ops.py @@ -138,7 +138,7 @@ class BPyOpsSubModOp(object): @staticmethod def _scene_update(context): scene = context.scene - if scene: # None in backgroud mode + if scene: # None in background mode scene.update() else: import bpy diff --git a/release/scripts/modules/bpy/path.py b/release/scripts/modules/bpy/path.py index 284fef97795..e6d0fbb99a2 100644 --- a/release/scripts/modules/bpy/path.py +++ b/release/scripts/modules/bpy/path.py @@ -40,7 +40,7 @@ import bpy as _bpy import os as _os -def abspath(path, start=None): +def abspath(path, start=None, library=None): """ Returns the absolute path relative to the current blend file using the "//" prefix. @@ -48,8 +48,13 @@ def abspath(path, start=None): :arg start: Relative to this path, when not set the current filename is used. :type start: string + :arg library: The library this path is from. This is only included for + convenience, when the library is not None its path replaces *start*. + :type library: :class:`bpy.types.Library` """ if path.startswith("//"): + if library: + start = abspath(_os.path.dirname(library.filepath)) return _os.path.join(_os.path.dirname(_bpy.data.filepath) if start is None else start, path[2:], @@ -263,7 +268,7 @@ def module_names(path, recursive=False): def basename(path): """ - Equivalent to os.path.basename, but skips a "//" suffix. + Equivalent to os.path.basename, but skips a "//" prefix. Use for Windows compatibility. """ diff --git a/release/scripts/modules/bpy/utils.py b/release/scripts/modules/bpy/utils.py index fdd22f403a4..6eb16bd7e7a 100644 --- a/release/scripts/modules/bpy/utils.py +++ b/release/scripts/modules/bpy/utils.py @@ -142,9 +142,9 @@ def load_scripts(reload_scripts=False, refresh_scripts=False): if reload_scripts: _bpy_types.TypeMap.clear() - # just unload, dont change user defaults, this means we can sync + # just unload, don't change user defaults, this means we can sync # to reload. note that they will only actually reload of the - # modification time changes. This `wont` work for packages so... + # modification time changes. This `won't` work for packages so... # its not perfect. for module_name in [ext.module for ext in prefs.addons]: _addon_utils.disable(module_name, default_set=False) @@ -220,7 +220,7 @@ def load_scripts(reload_scripts=False, refresh_scripts=False): if _os.path.isdir(path): _sys_path_ensure(path) - # only add this to sys.modules, dont run + # only add this to sys.modules, don't run if path_subdir == "modules": continue @@ -374,7 +374,7 @@ def smpte_from_seconds(time, fps=None): if time >= 3600.0: # hours hours = int(time / 3600.0) time = time % 3600.0 - if time >= 60.0: # mins + if time >= 60.0: # minutes minutes = int(time / 60.0) time = time % 60.0 diff --git a/release/scripts/modules/bpy_extras/anim_utils.py b/release/scripts/modules/bpy_extras/anim_utils.py index 9848586a144..6b0ab1c3adc 100644 --- a/release/scripts/modules/bpy_extras/anim_utils.py +++ b/release/scripts/modules/bpy_extras/anim_utils.py @@ -158,7 +158,7 @@ def bake_action(frame_start, # ------------------------------------------------------------------------- # Create action - # incase animation data hassnt been created + # in case animation data hassnt been created atd = obj.animation_data_create() if action is None: action = bpy.data.actions.new("Action") diff --git a/release/scripts/modules/bpy_extras/image_utils.py b/release/scripts/modules/bpy_extras/image_utils.py index 02959fae534..52050b08bc7 100644 --- a/release/scripts/modules/bpy_extras/image_utils.py +++ b/release/scripts/modules/bpy_extras/image_utils.py @@ -43,10 +43,10 @@ def load_image(imagepath, the end will be ignored. :type dirname: string :arg place_holder: if True a new place holder image will be created. - this is usefull so later you can relink the image to its original data. + this is useful so later you can relink the image to its original data. :type place_holder: bool - :arg recursive: If True, directories will be recursivly searched. - Be carefull with this if you have files in your root directory because + :arg recursive: If True, directories will be recursively searched. + Be careful with this if you have files in your root directory because it may take a long time. :type recursive: bool :arg ncase_cmp: on non windows systems, find the correct case for the file. diff --git a/release/scripts/modules/bpy_extras/io_utils.py b/release/scripts/modules/bpy_extras/io_utils.py index 91546e02829..3d71feaf79e 100644 --- a/release/scripts/modules/bpy_extras/io_utils.py +++ b/release/scripts/modules/bpy_extras/io_utils.py @@ -114,7 +114,7 @@ class ImportHelper: # Axis conversion function, not pretty LUT -# use lookup tabes to convert between any axis +# use lookup table to convert between any axis _axis_convert_matrix = ( ((-1.0, 0.0, 0.0), (0.0, -1.0, 0.0), (0.0, 0.0, 1.0)), ((-1.0, 0.0, 0.0), (0.0, 0.0, -1.0), (0.0, -1.0, 0.0)), @@ -302,7 +302,7 @@ def free_derived_objects(ob): def unpack_list(list_of_tuples): flat_list = [] - flat_list_extend = flat_list.extend # a tich faster + flat_list_extend = flat_list.extend # a tiny bit faster for t in list_of_tuples: flat_list_extend(t) return flat_list @@ -318,7 +318,7 @@ def unpack_face_list(list_of_tuples): if len(t) == 3: if t[2] == 0: t = t[1], t[2], t[0] - else: # assuem quad + else: # assume quad if t[3] == 0 or t[2] == 0: t = t[2], t[3], t[0], t[1] @@ -350,6 +350,7 @@ def path_reference(filepath, mode='AUTO', copy_subdir="", copy_set=None, + library=None, ): """ Return a filepath relative to a destination directory, for use with @@ -370,14 +371,17 @@ def path_reference(filepath, :arg copy_subdir: the subdirectory of *base_dst* to use when mode='COPY'. :type copy_subdir: string :arg copy_set: collect from/to pairs when mode='COPY', - pass to *path_reference_copy* when exportign is done. + pass to *path_reference_copy* when exporting is done. :type copy_set: set + :arg library: The library this path is relative to. + :type library: :class:`bpy.types.Library` or None :return: the new filepath. :rtype: string """ import os is_relative = filepath.startswith("//") - filepath_abs = os.path.normpath(bpy.path.abspath(filepath, base_src)) + filepath_abs = bpy.path.abspath(filepath, base_src, library) + filepath_abs = os.path.normpath(filepath_abs) if mode in {'ABSOLUTE', 'RELATIVE', 'STRIP'}: pass @@ -385,13 +389,12 @@ def path_reference(filepath, mode = 'RELATIVE' if is_relative else 'ABSOLUTE' elif mode == 'AUTO': mode = ('RELATIVE' - if bpy.path.is_subdir(filepath, base_dst) + if bpy.path.is_subdir(filepath_abs, base_dst) else 'ABSOLUTE') elif mode == 'COPY': + subdir_abs = os.path.normpath(base_dst) if copy_subdir: - subdir_abs = os.path.join(os.path.normpath(base_dst), copy_subdir) - else: - subdir_abs = os.path.normpath(base_dst) + subdir_abs = os.path.join(subdir_abs, copy_subdir) filepath_cpy = os.path.join(subdir_abs, os.path.basename(filepath)) @@ -447,7 +450,7 @@ def unique_name(key, name, name_dict, name_max=-1, clean_func=None, sep="."): :arg key: unique item this name belongs to, name_dict[key] will be reused when available. This can be the object, mesh, material, etc instance its self. - :type key: any hashable object assosiated with the *name*. + :type key: any hashable object associated with the *name*. :arg name: The name used to create a unique value in *name_dict*. :type name: string :arg name_dict: This is used to cache namespace to ensure no collisions diff --git a/release/scripts/modules/bpy_extras/keyconfig_utils.py b/release/scripts/modules/bpy_extras/keyconfig_utils.py index 78f010245a0..6eb19c0ff05 100644 --- a/release/scripts/modules/bpy_extras/keyconfig_utils.py +++ b/release/scripts/modules/bpy_extras/keyconfig_utils.py @@ -21,7 +21,7 @@ KM_HIERARCHY = [ ('Window', 'EMPTY', 'WINDOW', []), # file save, window change, exit ('Screen', 'EMPTY', 'WINDOW', [ # full screen, undo, screenshot - ('Screen Editing', 'EMPTY', 'WINDOW', []), # resizing, action corners + ('Screen Editing', 'EMPTY', 'WINDOW', []), # re-sizing, action corners ]), ('View2D', 'EMPTY', 'WINDOW', []), # view 2d navigation (per region) diff --git a/release/scripts/modules/bpy_extras/mesh_utils.py b/release/scripts/modules/bpy_extras/mesh_utils.py index 7bc6dae3cc6..8149675000f 100644 --- a/release/scripts/modules/bpy_extras/mesh_utils.py +++ b/release/scripts/modules/bpy_extras/mesh_utils.py @@ -50,7 +50,7 @@ def mesh_linked_faces(mesh): face_groups = [[f] for f in mesh.faces] face_mapping = list(range(len(mesh.faces))) # map old, new face location - # Now clump faces iterativly + # Now clump faces iteratively ok = True while ok: ok = False diff --git a/release/scripts/modules/bpy_extras/object_utils.py b/release/scripts/modules/bpy_extras/object_utils.py index 3081e6f172e..c9c1dc05476 100644 --- a/release/scripts/modules/bpy_extras/object_utils.py +++ b/release/scripts/modules/bpy_extras/object_utils.py @@ -119,7 +119,7 @@ def object_data_add(context, obdata, operator=None): obj_act = scene.objects.active # XXX - # caused because entering editmodedoes not add a empty undo slot! + # caused because entering edit-mode does not add a empty undo slot! if context.user_preferences.edit.use_enter_edit_mode: if not (obj_act and obj_act.mode == 'EDIT' and diff --git a/release/scripts/modules/bpy_extras/view3d_utils.py b/release/scripts/modules/bpy_extras/view3d_utils.py index c18a74bbb09..32f7b654690 100644 --- a/release/scripts/modules/bpy_extras/view3d_utils.py +++ b/release/scripts/modules/bpy_extras/view3d_utils.py @@ -27,7 +27,7 @@ __all__ = ( def region_2d_to_vector_3d(region, rv3d, coord): """ - Return a direction vector from the viewport at the spesific 2d region + Return a direction vector from the viewport at the specific 2d region coordinate. :arg region: region of the 3D viewport, typically bpy.context.region. diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py index 6b65f720a5c..cee0712e814 100644 --- a/release/scripts/modules/bpy_types.py +++ b/release/scripts/modules/bpy_types.py @@ -49,7 +49,7 @@ class Library(bpy_types.ID): @property def users_id(self): - """ID datablocks which use this library""" + """ID data blocks which use this library""" import bpy # See: readblenentry.c, IDTYPE_FLAGS_ISLINKABLE, we could make this an attribute in rna. @@ -220,9 +220,9 @@ class _GenericBone: @property def children_recursive_basename(self): """ - Returns a chain of children with the same base name as this bone - Only direct chains are supported, forks caused by multiple children with matching basenames will - terminate the function and not be returned. + Returns a chain of children with the same base name as this bone. + Only direct chains are supported, forks caused by multiple children + with matching base names will terminate the function and not be returned. """ basename = self.basename chain = [] @@ -256,7 +256,7 @@ class _GenericBone: bones = id_data.pose.bones elif id_data_type == bpy_types.Armature: bones = id_data.edit_bones - if not bones: # not in editmode + if not bones: # not in edit mode bones = id_data.bones return bones @@ -284,11 +284,11 @@ class EditBone(StructRNA, _GenericBone, metaclass=StructMetaPropGroup): def transform(self, matrix, scale=True, roll=True): """ - Transform the the bones head, tail, roll and envalope (when the matrix has a scale component). + Transform the the bones head, tail, roll and envelope (when the matrix has a scale component). :arg matrix: 3x3 or 4x4 transformation matrix. :type matrix: :class:`mathutils.Matrix` - :arg scale: Scale the bone envalope by the matrix. + :arg scale: Scale the bone envelope by the matrix. :type scale: bool :arg roll: Correct the roll to point in the same relative direction to the head and tail. :type roll: bool @@ -318,7 +318,7 @@ class Mesh(bpy_types.ID): def from_pydata(self, vertices, edges, faces): """ - Make a mesh from a list of verts/edges/faces + Make a mesh from a list of vertices/edges/faces Until we have a nicer way to make geometry, use this. :arg vertices: float triplets each representing (X, Y, Z) eg: [(0.0, 1.0, 0.5), ...]. @@ -553,7 +553,7 @@ class _GenericUI: operator_context_default = self.layout.operator_context for func in draw_ls._draw_funcs: - # so bad menu functions dont stop the entire menu from drawing. + # so bad menu functions don't stop the entire menu from drawing try: func(self, context) except: diff --git a/release/scripts/modules/console_python.py b/release/scripts/modules/console_python.py index 94d0c8c8614..f11ccf84f0b 100644 --- a/release/scripts/modules/console_python.py +++ b/release/scripts/modules/console_python.py @@ -50,7 +50,7 @@ def replace_help(namespace): def get_console(console_id): ''' helper function for console operators - currently each text datablock gets its own + currently each text data block gets its own console - code.InteractiveConsole() ...which is stored in this function. @@ -65,7 +65,7 @@ def get_console(console_id): consoles = get_console.consoles = {} get_console.consoles_namespace_hash = hash_next else: - # check if clearning the namespace is needed to avoid a memory leak. + # check if clearing the namespace is needed to avoid a memory leak. # the window manager is normally loaded with new blend files # so this is a reasonable way to deal with namespace clearing. # bpy.data hashing is reset by undo so cant be used. @@ -135,7 +135,7 @@ def execute(context): sys.stdout = stdout sys.stderr = stderr - # dont allow the stdin to be used, can lock blender. + # don't allow the stdin to be used, can lock blender. stdin_backup = sys.stdin sys.stdin = None @@ -143,14 +143,14 @@ def execute(context): main_mod_back = sys.modules["__main__"] sys.modules["__main__"] = console._bpy_main_mod - # incase exception happens - line = "" # incase of encodingf error + # in case exception happens + line = "" # in case of encoding error is_multiline = False try: line = line_object.body - # run the console, "\n" executes a multiline statement + # run the console, "\n" executes a multi line statement line_exec = line if line.strip() else "\n" is_multiline = console.push(line_exec) @@ -222,8 +222,8 @@ def autocomplete(context): if not console: return {'CANCELLED'} - # dont allow the stdin to be used, can lock blender. - # note: unlikely stdin would be used for autocomp. but its possible. + # don't allow the stdin to be used, can lock blender. + # note: unlikely stdin would be used for autocomplete. but its possible. stdin_backup = sys.stdin sys.stdin = None @@ -238,8 +238,8 @@ def autocomplete(context): current_line = sc.history[-1] line = current_line.body - # This function isnt aware of the text editor or being an operator - # just does the autocomp then copy its results back + # This function isn't aware of the text editor or being an operator + # just does the autocomplete then copy its results back result = intellisense.expand( line=line, cursor=current_line.current_character, @@ -250,7 +250,7 @@ def autocomplete(context): current_line.body, current_line.current_character, scrollback = result del result - # update sel. setting body should really do this! + # update selection. setting body should really do this! ofs = len(line_new) - len(line) sc.select_start += ofs sc.select_end += ofs @@ -263,12 +263,12 @@ def autocomplete(context): if _BPY_MAIN_OWN: sys.modules["__main__"] = main_mod_back - # Separate automplete output by command prompts + # Separate autocomplete output by command prompts if scrollback != '': bpy.ops.console.scrollback_append(text=sc.prompt + current_line.body, type='INPUT') # Now we need to copy back the line from blender back into the - # text editor. This will change when we dont use the text editor + # text editor. This will change when we don't use the text editor # anymore if scrollback: add_scrollback(scrollback, 'INFO') diff --git a/release/scripts/modules/console_shell.py b/release/scripts/modules/console_shell.py index 7a6f45c426f..772d46c8bf3 100644 --- a/release/scripts/modules/console_shell.py +++ b/release/scripts/modules/console_shell.py @@ -64,7 +64,7 @@ def execute(context): def autocomplete(context): - # sc = context.space_data + #~ sc = context.space_data # TODO return {'CANCELLED'} diff --git a/release/scripts/modules/rna_info.py b/release/scripts/modules/rna_info.py index d95c3920cf9..4116bfda0c7 100644 --- a/release/scripts/modules/rna_info.py +++ b/release/scripts/modules/rna_info.py @@ -292,7 +292,7 @@ class InfoPropertyRNA: elif as_arg: if not self.is_required: type_info.append("optional") - else: # readonly is only useful for selfs, not args + else: # readonly is only useful for self's, not args if self.is_readonly: type_info.append("readonly") @@ -519,7 +519,7 @@ def BuildRNAInfo(): # Done ordering structs - # precalc vars to avoid a lot of looping + # precalculate vars to avoid a lot of looping for (rna_base, identifier, rna_struct) in structs: # rna_struct_path = full_rna_struct_path(rna_struct) @@ -634,7 +634,7 @@ if __name__ == "__main__": struct = rna_info.BuildRNAInfo()[0] data = [] for struct_id, v in sorted(struct.items()): - struct_id_str = v.identifier # "".join(sid for sid in struct_id if struct_id) + struct_id_str = v.identifier #~ "".join(sid for sid in struct_id if struct_id) for base in v.get_bases(): struct_id_str = base.identifier + "|" + struct_id_str diff --git a/release/scripts/startup/bl_operators/anim.py b/release/scripts/startup/bl_operators/anim.py index 7d1f3b8f5f0..3051914cf00 100644 --- a/release/scripts/startup/bl_operators/anim.py +++ b/release/scripts/startup/bl_operators/anim.py @@ -87,7 +87,7 @@ class ANIM_OT_keying_set_export(Operator): # -------------------------------------------------------- # generate and write set of lookups for id's used in paths - # cache for syncing ID-blocks to bpy paths + shorthands + # cache for syncing ID-blocks to bpy paths + shorthand's id_to_paths_cache = {} for ksp in ks.paths: diff --git a/release/scripts/startup/bl_operators/console.py b/release/scripts/startup/bl_operators/console.py index 109ca758ea8..8afcdf5f67e 100644 --- a/release/scripts/startup/bl_operators/console.py +++ b/release/scripts/startup/bl_operators/console.py @@ -62,7 +62,7 @@ class ConsoleAutocomplete(Operator): class ConsoleBanner(Operator): - '''Print a message whem the terminal initializes''' + '''Print a message when the terminal initializes''' bl_idname = "console.banner" bl_label = "Console Banner" @@ -97,7 +97,7 @@ class ConsoleLanguage(Operator): def execute(self, context): sc = context.space_data - # defailt to python + # default to python sc.language = self.language bpy.ops.console.banner() diff --git a/release/scripts/startup/bl_operators/image.py b/release/scripts/startup/bl_operators/image.py index 2b190e1aee1..d0778ddafb2 100644 --- a/release/scripts/startup/bl_operators/image.py +++ b/release/scripts/startup/bl_operators/image.py @@ -69,8 +69,6 @@ class EditExternally(Operator): self.report({'ERROR'}, "Image path not set") return {'CANCELLED'} - filepath = os.path.normpath(bpy.path.abspath(filepath)) - if not os.path.exists(filepath): self.report({'ERROR'}, "Image path %r not found, image may be packed or " @@ -93,15 +91,16 @@ class EditExternally(Operator): return {'FINISHED'} def invoke(self, context, event): + import os try: - filepath = context.space_data.image.filepath - except: - import traceback - traceback.print_exc() - self.report({'ERROR'}, "Image not found on disk") + image = context.space_data.image + except AttributeError: + self.report({'ERROR'}, "Context incorrect, image not found") return {'CANCELLED'} - self.filepath = filepath + filepath = bpy.path.abspath(image.filepath, library=image.library) + + self.filepath = os.path.normpath(filepath) self.execute(context) return {'FINISHED'} diff --git a/release/scripts/startup/bl_operators/object.py b/release/scripts/startup/bl_operators/object.py index d7c6cfc0565..51c530db672 100644 --- a/release/scripts/startup/bl_operators/object.py +++ b/release/scripts/startup/bl_operators/object.py @@ -174,7 +174,7 @@ class SelectHierarchy(Operator): select_new.sort(key=lambda obj_iter: obj_iter.name) act_new = select_new[0] - # dont edit any object settings above this + # don't edit any object settings above this if select_new: if not self.extend: bpy.ops.object.select_all(action='DESELECT') @@ -331,7 +331,7 @@ class ShapeTransfer(Operator): orig_shape_coords = me_cos(ob_act.active_shape_key.data) orig_normals = me_nos(me.vertices) - # the actual mverts location isnt as relyable as the base shape :S + # the actual mverts location isn't as reliable as the base shape :S # orig_coords = me_cos(me.vertices) orig_coords = me_cos(me.shape_keys.key_blocks[0].data) @@ -721,8 +721,8 @@ class TransformsToDeltasAnim(Operator): fcu.data_path = "delta_rotation_quaternion" obj.rotation_quaternion.identity() # XXX: currently not implemented - # elif fcu.data_path == "rotation_axis_angle": - # fcu.data_path = "delta_rotation_axis_angle" + #~ elif fcu.data_path == "rotation_axis_angle": + #~ fcu.data_path = "delta_rotation_axis_angle" elif fcu.data_path == "scale": fcu.data_path = "delta_scale" obj.scale = 1.0, 1.0, 1.0 diff --git a/release/scripts/startup/bl_operators/uvcalc_follow_active.py b/release/scripts/startup/bl_operators/uvcalc_follow_active.py index 05656f5397d..324414b8bcb 100644 --- a/release/scripts/startup/bl_operators/uvcalc_follow_active.py +++ b/release/scripts/startup/bl_operators/uvcalc_follow_active.py @@ -104,13 +104,13 @@ def extend(obj, operator, EXTEND_MODE): uvs_vhash_target[edgepair_inner_target[1]][:] = uvs_vhash_source[edgepair_inner_source[iB]] # Set the 2 UV's on the target face that are not touching - # for this we need to do basic expaning on the source faces UV's + # for this we need to do basic expanding on the source faces UV's if EXTEND_MODE == 'LENGTH': try: # divide by zero is possible ''' measure the length of each face from the middle of each edge to the opposite - allong the axis we are copying, use this + along the axis we are copying, use this ''' i1a = edgepair_outer_target[iB] i2a = edgepair_inner_target[iA] @@ -158,11 +158,11 @@ def extend(obj, operator, EXTEND_MODE): # Modes # 0 unsearched # 1:mapped, use search from this face. - removed!! - # 2:all siblings have been searched. dont search again. + # 2:all siblings have been searched. don't search again. face_modes = [0] * len(face_sel) face_modes[face_act_local_index] = 1 # extend UV's from this face. - # Edge connectivty + # Edge connectivity edge_faces = {} for i, f in enumerate(face_sel): for edkey in f.edge_keys: @@ -181,7 +181,7 @@ def extend(obj, operator, EXTEND_MODE): looplen[0] += (me_verts[ed[0]].co - me_verts[ed[1]].co).length looplen[0] = looplen[0] / len(loop) - # remove seams, so we dont map accross seams. + # remove seams, so we don't map across seams. for ed in me.edges: if ed.use_seam: # remove the edge pair if we can @@ -213,7 +213,7 @@ def extend(obj, operator, EXTEND_MODE): face_modes[i] = 1 # we can map from this one now. ok = True # keep searching - face_modes[i] = 2 # dont search again + face_modes[i] = 2 # don't search again if is_editmode: bpy.ops.object.mode_set(mode='EDIT') diff --git a/release/scripts/startup/bl_operators/uvcalc_lightmap.py b/release/scripts/startup/bl_operators/uvcalc_lightmap.py index d9cdb1794c2..52548817620 100644 --- a/release/scripts/startup/bl_operators/uvcalc_lightmap.py +++ b/release/scripts/startup/bl_operators/uvcalc_lightmap.py @@ -36,7 +36,7 @@ class prettyface(object): def __init__(self, data): self.has_parent = False - self.rot = False # only used for triables + self.rot = False # only used for triangles self.xoff = 0 self.yoff = 0 @@ -157,7 +157,7 @@ class prettyface(object): angles_co.sort() I = [i for a, i in angles_co] - # fuv = f.uv + #~ fuv = f.uv fuv = f.id_data.uv_textures.active.data[f.index].uv # XXX25 if self.rot: @@ -200,8 +200,8 @@ def lightmap_uvpack(meshes, ''' BOX_DIV if the maximum division of the UV map that a box may be consolidated into. - Basicly, a lower value will be slower but waist less space - and a higher value will have more clumpy boxes but more waisted space + Basically, a lower value will be slower but waist less space + and a higher value will have more clumpy boxes but more wasted space ''' import time from math import sqrt @@ -321,7 +321,7 @@ def lightmap_uvpack(meshes, lengths.append(curr_len) curr_len = curr_len / 2.0 - # Dont allow boxes smaller then the margin + # Don't allow boxes smaller then the margin # since we contract on the margin, boxes that are smaller will create errors # print(curr_len, side_len/MARGIN_DIV) if curr_len / 4.0 < side_len / PREF_MARGIN_DIV: @@ -371,9 +371,9 @@ def lightmap_uvpack(meshes, print("...done") # Since the boxes are sized in powers of 2, we can neatly group them into bigger squares - # this is done hierarchily, so that we may avoid running the pack function + # this is done hierarchically, so that we may avoid running the pack function # on many thousands of boxes, (under 1k is best) because it would get slow. - # Using an off and even dict us usefull because they are packed differently + # Using an off and even dict us useful because they are packed differently # where w/h are the same, their packed in groups of 4 # where they are different they are packed in pairs # @@ -393,14 +393,14 @@ def lightmap_uvpack(meshes, # Count the number of boxes consolidated, only used for stats. c = 0 - # This is tricky. the total area of all packed boxes, then squt that to get an estimated size + # This is tricky. the total area of all packed boxes, then sqrt() that to get an estimated size # this is used then converted into out INT space so we can compare it with # the ints assigned to the boxes size - # and divided by BOX_DIV, basicly if BOX_DIV is 8 - # ...then the maximum box consolidataion (recursive grouping) will have a max width & height + # and divided by BOX_DIV, basically if BOX_DIV is 8 + # ...then the maximum box consolidation (recursive grouping) will have a max width & height # ...1/8th of the UV size. # ...limiting this is needed or you end up with bug unused texture spaces - # ...however if its too high, boxpacking is way too slow for high poly meshes. + # ...however if its too high, box-packing is way too slow for high poly meshes. float_to_int_factor = lengths_to_ints[0][0] if float_to_int_factor > 0: max_int_dimension = int(((side_len / float_to_int_factor)) / PREF_BOX_DIV) @@ -409,7 +409,7 @@ def lightmap_uvpack(meshes, max_int_dimension = 0.0 # wont be used ok = False - # RECURSIVE prettyface grouping + # RECURSIVE pretty face grouping while ok: ok = False @@ -456,7 +456,7 @@ def lightmap_uvpack(meshes, pretty_faces = [pf for pf in pretty_faces if not pf.has_parent] - # spin every second prettyface + # spin every second pretty-face # if there all vertical you get less efficiently used texture space i = len(pretty_faces) d = 0 diff --git a/release/scripts/startup/bl_operators/uvcalc_smart_project.py b/release/scripts/startup/bl_operators/uvcalc_smart_project.py index 5985a37a0c9..1248fc24ed7 100644 --- a/release/scripts/startup/bl_operators/uvcalc_smart_project.py +++ b/release/scripts/startup/bl_operators/uvcalc_smart_project.py @@ -34,7 +34,7 @@ USER_FILL_HOLES_QUALITY = None def pointInTri2D(v, v1, v2, v3): key = v1.x, v1.y, v2.x, v2.y, v3.x, v3.y - # Commented because its slower to do the bounds check, we should realy cache the bounds info for each face. + # Commented because its slower to do the bounds check, we should really cache the bounds info for each face. ''' # BOUNDS CHECK xmin= 1000000 @@ -119,7 +119,7 @@ def boundsEdgeLoop(edges): """ # Turns the islands into a list of unpordered edges (Non internal) -# Onlt for UV's +# Only for UV's # only returns outline edges for intersection tests. and unique points. def island2Edge(island): @@ -141,7 +141,7 @@ def island2Edge(island): else: i1= vIdx; i2= vIdx-1 - try: edges[ f_uvkey[i1], f_uvkey[i2] ] *= 0 # sets eny edge with more then 1 user to 0 are not returned. + try: edges[ f_uvkey[i1], f_uvkey[i2] ] *= 0 # sets any edge with more then 1 user to 0 are not returned. except: edges[ f_uvkey[i1], f_uvkey[i2] ] = (f.uv[i1] - f.uv[i2]).length, # If 2 are the same then they will be together, but full [a,b] order is not correct. @@ -162,10 +162,10 @@ def island2Edge(island): return length_sorted_edges, [v.to_3d() for v in unique_points.values()] # ========================= NOT WORKING???? -# Find if a points inside an edge loop, un-orderd. +# Find if a points inside an edge loop, un-ordered. # pt is and x/y # edges are a non ordered loop of edges. -# #offsets are the edge x and y offset. +# offsets are the edge x and y offset. """ def pointInEdges(pt, edges): # @@ -223,7 +223,7 @@ def islandIntersectUvIsland(source, target, SourceOffset): if pointInIsland(pv+SourceOffset, target[0]): return 2 # SOURCE INSIDE TARGET - # 2 test for a part of the target being totaly inside the source. + # 2 test for a part of the target being totally inside the source. for pv in target[7]: if pointInIsland(pv-SourceOffset, source[0]): return 3 # PART OF TARGET INSIDE SOURCE. @@ -242,7 +242,7 @@ def testNewVecLs2DRotIsBetter(vecs, mat=-1, bestAreaSoFar = -1): for i, v in enumerate(vecs): - # Do this allong the way + # Do this along the way if mat != -1: v = vecs[i] = mat * v x= v.x @@ -252,7 +252,7 @@ def testNewVecLs2DRotIsBetter(vecs, mat=-1, bestAreaSoFar = -1): if x>maxx: maxx= x if y>maxy: maxy= y - # Spesific to this algo, bail out if we get bigger then the current area + # Specific to this algo, bail out if we get bigger then the current area if bestAreaSoFar != -1 and (maxx-minx) * (maxy-miny) > bestAreaSoFar: return (BIG_NUM, None), None w = maxx-minx @@ -262,7 +262,7 @@ def testNewVecLs2DRotIsBetter(vecs, mat=-1, bestAreaSoFar = -1): def optiRotateUvIsland(faces): global currentArea - # Bestfit Rotation + # Best-fit Rotation def best2dRotation(uvVecs, MAT1, MAT2): global currentArea @@ -318,7 +318,7 @@ def optiRotateUvIsland(faces): currentArea = newAreaPos # 45d done - # Testcase different rotations and find the onfe that best fits in a square + # Testcase different rotations and find the one that best fits in a square for ROTMAT in RotMatStepRotation: uvVecs = best2dRotation(uvVecs, ROTMAT[0], ROTMAT[1]) @@ -409,7 +409,7 @@ def mergeUvIslands(islandList): BREAK= False while areaIslandIdx < len(decoratedIslandListAreaSort) and not BREAK: sourceIsland = decoratedIslandListAreaSort[areaIslandIdx] - # Alredy packed? + # Already packed? if not sourceIsland[0]: areaIslandIdx+=1 else: @@ -420,7 +420,7 @@ def mergeUvIslands(islandList): BREAK= True break - # Now we have 2 islands, is the efficience of the islands lowers theres an + # Now we have 2 islands, if the efficiency of the islands lowers theres an # increasing likely hood that we can fit merge into the bigger UV island. # this ensures a tight fit. @@ -435,12 +435,12 @@ def mergeUvIslands(islandList): pass else: - # ([island, totFaceArea, efficiency, islandArea, w,h]) - # Waisted space on target is greater then UV bounding island area. + #~ ([island, totFaceArea, efficiency, islandArea, w,h]) + # Wasted space on target is greater then UV bounding island area. - # if targetIsland[3] > (sourceIsland[2]) and\ # - # print USER_FREE_SPACE_TO_TEST_QUALITY + #~ if targetIsland[3] > (sourceIsland[2]) and\ # + #~ print USER_FREE_SPACE_TO_TEST_QUALITY if targetIsland[2] > (sourceIsland[1] * USER_FREE_SPACE_TO_TEST_QUALITY) and\ targetIsland[4] > sourceIsland[4] and\ targetIsland[5] > sourceIsland[5]: @@ -456,7 +456,7 @@ def mergeUvIslands(islandList): boxLeft = 0 - # Distllllance we can move between whilst staying inside the targets bounds. + # Distance we can move between whilst staying inside the targets bounds. testWidth = targetIsland[4] - sourceIsland[4] testHeight = targetIsland[5] - sourceIsland[5] @@ -474,25 +474,25 @@ def mergeUvIslands(islandList): boxLeft = 0 # Start 1 back so we can jump into the loop. boxBottom= 0 #-yIncrement - ##testcount= 0 + #~ testcount= 0 while boxBottom <= testHeight: # Should we use this? - not needed for now. - #if Window.GetKeyQualifiers() & ctrl: - # BREAK= True - # break + #~ if Window.GetKeyQualifiers() & ctrl: + #~ BREAK= True + #~ break ##testcount+=1 #print 'Testing intersect' Intersect = islandIntersectUvIsland(sourceIsland, targetIsland, Vector((boxLeft, boxBottom))) #print 'Done', Intersect - if Intersect == 1: # Line intersect, dont bother with this any more + if Intersect == 1: # Line intersect, don't bother with this any more pass if Intersect == 2: # Source inside target ''' We have an intersection, if we are inside the target - then move us 1 whole width accross, + then move us 1 whole width across, Its possible this is a bad idea since 2 skinny Angular faces could join without 1 whole move, but its a lot more optimal to speed this up since we have already tested for it. @@ -500,7 +500,7 @@ def mergeUvIslands(islandList): It gives about 10% speedup with minimal errors. ''' #print 'ass' - # Move the test allong its width + SMALL_NUM + # Move the test along its width + SMALL_NUM #boxLeft += sourceIsland[4] + SMALL_NUM boxLeft += sourceIsland[4] elif Intersect == 0: # No intersection?? Place it. @@ -551,7 +551,7 @@ def mergeUvIslands(islandList): break - # INCREMENR NEXT LOCATION + # INCREMENT NEXT LOCATION if boxLeft > testWidth: boxBottom += yIncrement boxLeft = 0.0 @@ -572,8 +572,8 @@ def mergeUvIslands(islandList): # Takes groups of faces. assumes face groups are UV groups. def getUvIslands(faceGroups, me): - # Get seams so we dont cross over seams - edge_seams = {} # shoudl be a set + # Get seams so we don't cross over seams + edge_seams = {} # should be a set for ed in me.edges: if ed.use_seam: edge_seams[ed.key] = None # dummy var- use sets! @@ -609,7 +609,7 @@ def getUvIslands(faceGroups, me): # Modes # 0 - face not yet touched. # 1 - added to island list, and need to search - # 2 - touched and searched - dont touch again. + # 2 - touched and searched - don't touch again. face_modes = [0] * len(faces) # initialize zero - untested. face_modes[0] = 1 # start the search with face 1 @@ -633,7 +633,7 @@ def getUvIslands(faceGroups, me): face_modes[ii] = ok = 1 # mark as searched newIsland.append(faces[ii]) - # mark as searched, dont look again. + # mark as searched, don't look again. face_modes[i] = 2 islandList.append(newIsland) @@ -664,8 +664,8 @@ def packIslands(islandList): # Now we have UV islands, we need to pack them. - # Make a synchronised list with the islands - # so we can box pak the islands. + # Make a synchronized list with the islands + # so we can box pack the islands. packBoxes = [] # Keep a list of X/Y offset so we can save time by writing the @@ -716,14 +716,14 @@ def packIslands(islandList): # print 'Box Packing Time:', time.time() - time1 #if len(pa ckedLs) != len(islandList): - # raise "Error packed boxes differes from original length" + # raise "Error packed boxes differs from original length" #print '\tWriting Packed Data to faces' #XXX Window.DrawProgressBar(0.8, 'Writing Packed Data to faces') # Sort by ID, so there in sync again islandIdx = len(islandList) - # Having these here avoids devide by 0 + # Having these here avoids divide by 0 if islandIdx: if USER_STRETCH_ASPECT: @@ -845,9 +845,9 @@ def main(context, time.sleep(10) ''' -#XXX if not Draw.PupBlock(ob % len(obList), pup_block): -#XXX return -#XXX del ob +#~ XXX if not Draw.PupBlock(ob % len(obList), pup_block): +#~ XXX return +#~ XXX del ob # Convert from being button types @@ -859,10 +859,10 @@ def main(context, is_editmode = (context.active_object.mode == 'EDIT') if is_editmode: bpy.ops.object.mode_set(mode='OBJECT') - # Assume face select mode! an annoying hack to toggle face select mode because Mesh dosent like faceSelectMode. + # Assume face select mode! an annoying hack to toggle face select mode because Mesh doesn't like faceSelectMode. if USER_SHARE_SPACE: - # Sort by data name so we get consistant results + # Sort by data name so we get consistent results obList.sort(key = lambda ob: ob.data.name) collected_islandList= [] @@ -870,7 +870,7 @@ def main(context, time1 = time.time() - # Tag as False se we dont operate on the same mesh twice. + # Tag as False so we don't operate on the same mesh twice. #XXX bpy.data.meshes.tag = False for me in bpy.data.meshes: me.tag = False @@ -885,7 +885,7 @@ def main(context, # Tag as used me.tag = True - if not me.uv_textures: # Mesh has no UV Coords, dont bother. + if not me.uv_textures: # Mesh has no UV Coords, don't bother. me.uv_textures.new() uv_layer = me.uv_textures.active.data @@ -902,7 +902,7 @@ def main(context, #XXX Window.DrawProgressBar(0.1, 'SmartProj UV Unwrapper, mapping "%s", %i faces.' % (me.name, len(meshFaces))) # ======= - # Generate a projection list from face normals, this is ment to be smart :) + # Generate a projection list from face normals, this is meant to be smart :) # make a list of face props that are in sync with meshFaces # Make a Face List that is sorted by area. @@ -928,7 +928,7 @@ def main(context, # Initialize projectVecs if USER_VIEW_INIT: # Generate Projection - projectVecs = [Vector(Window.GetViewVector()) * ob.matrix_world.inverted().to_3x3()] # We add to this allong the way + projectVecs = [Vector(Window.GetViewVector()) * ob.matrix_world.inverted().to_3x3()] # We add to this along the way else: projectVecs = [] @@ -936,7 +936,7 @@ def main(context, newProjectMeshFaces = [] # Popping stuffs it up. - # Predent that the most unique angke is ages away to start the loop off + # Pretend that the most unique angle is ages away to start the loop off mostUniqueAngle = -1.0 # This is popped @@ -950,7 +950,7 @@ def main(context, # add all the faces that are close. for fIdx in range(len(tempMeshFaces)-1, -1, -1): - # Use half the angle limit so we dont overweight faces towards this + # Use half the angle limit so we don't overweight faces towards this # normal and hog all the faces. if newProjectVec.dot(tempMeshFaces[fIdx].no) > USER_PROJECTION_LIMIT_HALF_CONVERTED: newProjectMeshFaces.append(tempMeshFaces.pop(fIdx)) diff --git a/release/scripts/startup/bl_operators/vertexpaint_dirt.py b/release/scripts/startup/bl_operators/vertexpaint_dirt.py index 4c78adb7161..ce4942ae238 100644 --- a/release/scripts/startup/bl_operators/vertexpaint_dirt.py +++ b/release/scripts/startup/bl_operators/vertexpaint_dirt.py @@ -16,7 +16,7 @@ # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -# ***** END GPL LICENCE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # -------------------------------------------------------------------------- # <pep8 compliant> @@ -69,7 +69,7 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, vec /= tot_con - # angle is the acos of the dot product between vert and connected verts normals + # angle is the acos() of the dot product between vert and connected verts normals ang = acos(no.dot(vec)) # enforce min/max diff --git a/release/scripts/startup/bl_operators/view3d.py b/release/scripts/startup/bl_operators/view3d.py index 05b53219119..315b7e5c4fc 100644 --- a/release/scripts/startup/bl_operators/view3d.py +++ b/release/scripts/startup/bl_operators/view3d.py @@ -33,7 +33,7 @@ class VIEW3D_OT_edit_mesh_extrude_individual_move(Operator): totface = mesh.total_face_sel totedge = mesh.total_edge_sel - # totvert = mesh.total_vert_sel + #~ totvert = mesh.total_vert_sel if select_mode[2] and totface == 1: bpy.ops.mesh.extrude_region_move('INVOKE_REGION_WIN', @@ -65,7 +65,7 @@ class VIEW3D_OT_edit_mesh_extrude_move(Operator): totface = mesh.total_face_sel totedge = mesh.total_edge_sel - # totvert = mesh.total_vert_sel + #~ totvert = mesh.total_vert_sel if totface >= 1: bpy.ops.mesh.extrude_region_move('INVOKE_REGION_WIN', diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py index 85e79914ce3..a539e2693c1 100644 --- a/release/scripts/startup/bl_operators/wm.py +++ b/release/scripts/startup/bl_operators/wm.py @@ -70,7 +70,7 @@ def context_path_validate(context, data_path): # One of the items in the rna path is None, just ignore this value = Ellipsis else: - # We have a real error in the rna path, dont ignore that + # We have a real error in the rna path, don't ignore that raise return value @@ -103,7 +103,7 @@ def operator_value_is_undo(value): def operator_path_is_undo(context, data_path): # note that if we have data paths that use strings this could fail - # luckily we dont do this! + # luckily we don't do this! # # When we cant find the data owner assume no undo is needed. data_path_head, data_path_sep, data_path_tail = data_path.rpartition(".") @@ -425,7 +425,7 @@ class WM_OT_context_cycle_enum(Operator): rna_struct_str, rna_prop_str = data_path.rsplit('.', 1) i = rna_prop_str.find('[') - # just incse we get "context.foo.bar[0]" + # just in case we get "context.foo.bar[0]" if i != -1: rna_prop_str = rna_prop_str[0:i] @@ -820,8 +820,7 @@ class WM_OT_doc_view(Operator): class_name = rna_parent.identifier rna_parent = rna_parent.base - # It so happens that epydoc nests these, not sphinx - # class_name_full = self._nested_class_string(class_name) + #~ class_name_full = self._nested_class_string(class_name) url = ("%s/bpy.types.%s.html#bpy.types.%s.%s" % (self._prefix, class_name, class_name, class_prop)) @@ -1014,7 +1013,7 @@ class WM_OT_properties_edit(Operator): item = eval("context.%s" % data_path) # setup defaults - prop_ui = rna_idprop_ui_prop_get(item, self.property, False) # dont create + prop_ui = rna_idprop_ui_prop_get(item, self.property, False) # don't create if prop_ui: self.min = prop_ui.get("min", -1000000000) self.max = prop_ui.get("max", 1000000000) @@ -1162,7 +1161,7 @@ class WM_OT_copy_prev_settings(Operator): elif not os.path.isdir(path_src): self.report({'ERROR'}, "Source path %r exists" % path_src) else: - shutil.copytree(path_src, path_dst) + shutil.copytree(path_src, path_dst, symlinks=True) # in 2.57 and earlier windows installers, system scripts were copied # into the configuration directory, don't want to copy those @@ -1171,7 +1170,7 @@ class WM_OT_copy_prev_settings(Operator): shutil.rmtree(os.path.join(path_dst, 'scripts')) shutil.rmtree(os.path.join(path_dst, 'plugins')) - # dont loose users work if they open the splash later. + # don't loose users work if they open the splash later. if bpy.data.is_saved is bpy.data.is_dirty is False: bpy.ops.wm.read_homefile() else: @@ -1372,9 +1371,9 @@ class WM_OT_keyitem_add(Operator): km = context.keymap if km.is_modal: - km.keymap_items.new_modal("", 'A', 'PRESS') # kmi + km.keymap_items.new_modal("", 'A', 'PRESS') #~ kmi else: - km.keymap_items.new("none", 'A', 'PRESS') # kmi + km.keymap_items.new("none", 'A', 'PRESS') #~ kmi # clear filter and expand keymap so we can see the newly added item if context.space_data.filter_text != "": @@ -1556,7 +1555,7 @@ class WM_OT_addon_install(Operator): pyfile = self.filepath if self.target == 'DEFAULT': - # dont use bpy.utils.script_paths("addons") because we may not be able to write to it. + # don't use bpy.utils.script_paths("addons") because we may not be able to write to it. path_addons = bpy.utils.user_resource('SCRIPTS', "addons", create=True) else: path_addons = bpy.context.user_preferences.filepaths.script_directory @@ -1637,7 +1636,7 @@ class WM_OT_addon_install(Operator): addons_new.discard("modules") # disable any addons we may have enabled previously and removed. - # this is unlikely but do just incase. bug [#23978] + # this is unlikely but do just in case. bug [#23978] for new_addon in addons_new: addon_utils.disable(new_addon) @@ -1652,11 +1651,11 @@ class WM_OT_addon_install(Operator): context.window_manager.addon_search = info["name"] break - # incase a new module path was created to install this addon. + # in case a new module path was created to install this addon. bpy.utils.refresh_script_paths() # TODO, should not be a warning. - # self.report({'WARNING'}, "File installed to '%s'\n" % path_dest) + #~ self.report({'WARNING'}, "File installed to '%s'\n" % path_dest) return {'FINISHED'} def invoke(self, context, event): @@ -1699,7 +1698,7 @@ class WM_OT_addon_remove(Operator): self.report('WARNING', "Addon path %r could not be found" % path) return {'CANCELLED'} - # incase its enabled + # in case its enabled addon_utils.disable(self.module) import shutil diff --git a/release/scripts/startup/bl_ui/properties_animviz.py b/release/scripts/startup/bl_ui/properties_animviz.py index 3b33a7ccc61..93feb8adc7a 100644 --- a/release/scripts/startup/bl_ui/properties_animviz.py +++ b/release/scripts/startup/bl_ui/properties_animviz.py @@ -21,8 +21,8 @@ # Generic Panels (Independent of DataType) # NOTE: -# The specialised panel types are derived in their respective UI modules -# dont register these classes since they are only helpers. +# The specialized panel types are derived in their respective UI modules +# don't register these classes since they are only helpers. class MotionPathButtonsPanel(): diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py index e4744fdb04f..5dadcba2621 100644 --- a/release/scripts/startup/bl_ui/properties_data_armature.py +++ b/release/scripts/startup/bl_ui/properties_data_armature.py @@ -214,7 +214,7 @@ class DATA_PT_pose_library(ArmatureButtonsPanel, Panel): layout.prop(pose_marker_active, "name") -# TODO: this panel will soon be depreceated too +# TODO: this panel will soon be deprecated deprecated too class DATA_PT_ghost(ArmatureButtonsPanel, Panel): bl_label = "Ghost" @@ -301,7 +301,7 @@ class DATA_PT_motion_paths(MotionPathButtonsPanel, Panel): @classmethod def poll(cls, context): - # XXX: include posemode check? + # XXX: include pose-mode check? return (context.object) and (context.armature) def draw(self, context): @@ -324,7 +324,7 @@ class DATA_PT_onion_skinning(OnionSkinButtonsPanel): # , Panel): # inherit from @classmethod def poll(cls, context): - # XXX: include posemode check? + # XXX: include pose-mode check? return (context.object) and (context.armature) def draw(self, context): diff --git a/release/scripts/startup/bl_ui/properties_data_bone.py b/release/scripts/startup/bl_ui/properties_data_bone.py index b3eaf88d5bf..807e5e63bc5 100644 --- a/release/scripts/startup/bl_ui/properties_data_bone.py +++ b/release/scripts/startup/bl_ui/properties_data_bone.py @@ -189,7 +189,7 @@ class BONE_PT_display(BoneButtonsPanel, Panel): return context.bone def draw(self, context): - # note. this works ok in editmode but isnt + # note. this works ok in edit-mode but isn't # all that useful so disabling for now. layout = self.layout diff --git a/release/scripts/startup/bl_ui/properties_data_curve.py b/release/scripts/startup/bl_ui/properties_data_curve.py index 2e0b36a7a75..02e13966c48 100644 --- a/release/scripts/startup/bl_ui/properties_data_curve.py +++ b/release/scripts/startup/bl_ui/properties_data_curve.py @@ -259,10 +259,11 @@ class DATA_PT_active_spline(CurveButtonsPanelActive, Panel): if not is_surf: split = layout.split() col = split.column() - col.active = (curve.dimensions == '3D') col.label(text="Interpolation:") - col.prop(act_spline, "tilt_interpolation", text="Tilt") + colsub = col.column() + colsub.active = (curve.dimensions == '3D') + colsub.prop(act_spline, "tilt_interpolation", text="Tilt") col.prop(act_spline, "radius_interpolation", text="Radius") layout.prop(act_spline, "use_smooth") diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py index 5b00402520e..62cb735fda9 100644 --- a/release/scripts/startup/bl_ui/properties_material.py +++ b/release/scripts/startup/bl_ui/properties_material.py @@ -87,7 +87,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel): @classmethod def poll(cls, context): - # An exception, dont call the parent poll func because + # An exception, don't call the parent poll func because # this manages materials for all engine types engine = context.scene.render.engine @@ -537,7 +537,7 @@ class MATERIAL_PT_halo(MaterialButtonsPanel, Panel): def draw(self, context): layout = self.layout - mat = context.material # dont use node material + mat = context.material # don't use node material halo = mat.halo def number_but(layout, toggle, number, name, color): @@ -595,7 +595,7 @@ class MATERIAL_PT_flare(MaterialButtonsPanel, Panel): def draw(self, context): layout = self.layout - mat = context.material # dont use node material + mat = context.material # don't use node material halo = mat.halo layout.active = halo.use_flare_mode @@ -622,7 +622,7 @@ class MATERIAL_PT_game_settings(MaterialButtonsPanel, bpy.types.Panel): def draw(self, context): layout = self.layout - game = context.material.game_settings # dont use node material + game = context.material.game_settings # don't use node material row = layout.row() row.prop(game, "use_backface_culling") @@ -653,7 +653,7 @@ class MATERIAL_PT_physics(MaterialButtonsPanel, bpy.types.Panel): layout = self.layout layout.active = context.material.game_settings.physics - phys = context.material.physics # dont use node material + phys = context.material.physics # don't use node material split = layout.split() row = split.row() @@ -686,7 +686,7 @@ class MATERIAL_PT_strand(MaterialButtonsPanel, Panel): def draw(self, context): layout = self.layout - mat = context.material # dont use node material + mat = context.material # don't use node material tan = mat.strand split = layout.split() @@ -862,7 +862,7 @@ class MATERIAL_PT_volume_density(VolumeButtonsPanel, Panel): def draw(self, context): layout = self.layout - vol = context.material.volume # dont use node material + vol = context.material.volume # don't use node material row = layout.row() row.prop(vol, "density") @@ -876,7 +876,7 @@ class MATERIAL_PT_volume_shading(VolumeButtonsPanel, Panel): def draw(self, context): layout = self.layout - vol = context.material.volume # dont use node material + vol = context.material.volume # don't use node material split = layout.split() @@ -901,7 +901,7 @@ class MATERIAL_PT_volume_lighting(VolumeButtonsPanel, Panel): def draw(self, context): layout = self.layout - vol = context.material.volume # dont use node material + vol = context.material.volume # don't use node material split = layout.split() @@ -942,7 +942,7 @@ class MATERIAL_PT_volume_transp(VolumeButtonsPanel, Panel): def draw(self, context): layout = self.layout - mat = context.material # dont use node material + mat = context.material # don't use node material layout.prop(mat, "transparency_method", expand=True) @@ -954,7 +954,7 @@ class MATERIAL_PT_volume_integration(VolumeButtonsPanel, Panel): def draw(self, context): layout = self.layout - vol = context.material.volume # dont use node material + vol = context.material.volume # don't use node material split = layout.split() diff --git a/release/scripts/startup/bl_ui/properties_object_constraint.py b/release/scripts/startup/bl_ui/properties_object_constraint.py index 05fac2026a0..dc19f58ca35 100644 --- a/release/scripts/startup/bl_ui/properties_object_constraint.py +++ b/release/scripts/startup/bl_ui/properties_object_constraint.py @@ -658,7 +658,7 @@ class ConstraintButtonsPanel(): row.label(text="Source to Destination Mapping:") # note: chr(187) is the ASCII arrow ( >> ). Blender Text Editor can't - # open it. Thus we are using the hardcoded value instead. + # open it. Thus we are using the hard-coded value instead. row = col.row() row.prop(con, "map_to_x_from", expand=False, text="") row.label(text=" %s X" % chr(187)) diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py index eceefc70b5c..0e7fccae8df 100644 --- a/release/scripts/startup/bl_ui/properties_particle.py +++ b/release/scripts/startup/bl_ui/properties_particle.py @@ -405,9 +405,12 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel, Panel): layout.enabled = particle_panel_enabled(context, psys) - row = layout.row() - row.label(text="Initial Rotation:") - row.prop(part, "use_dynamic_rotation") + layout.prop(part, "use_dynamic_rotation") + + if part.use_dynamic_rotation: + layout.label(text="Initial Rotation Axis:") + else: + layout.label(text="Rotation Axis:") split = layout.split() @@ -419,12 +422,17 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel, Panel): col.prop(part, "phase_factor", slider=True) col.prop(part, "phase_factor_random", text="Random", slider=True) - col = layout.column() - col.label(text="Angular Velocity:") - col.row().prop(part, "angular_velocity_mode", expand=True) - - if part.angular_velocity_mode != 'NONE': - col.prop(part, "angular_velocity_factor", text="") + if part.type != 'HAIR': + col = layout.column() + if part.use_dynamic_rotation: + col.label(text="Initial Angular Velocity:") + else: + col.label(text="Angular Velocity:") + sub = col.row(align=True) + sub.prop(part, "angular_velocity_mode", text="") + subsub = sub.column() + subsub.active = part.angular_velocity_mode != 'NONE' + subsub.prop(part, "angular_velocity_factor", text="") class PARTICLE_PT_physics(ParticleButtonsPanel, Panel): @@ -832,7 +840,9 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel): elif part.render_type == 'OBJECT': col.prop(part, "dupli_object") - col.prop(part, "use_global_dupli") + sub = col.row() + sub.prop(part, "use_global_dupli") + sub.prop(part, "use_rotation_dupli") elif part.render_type == 'GROUP': col.prop(part, "dupli_group") split = layout.split() @@ -841,13 +851,14 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel): col.prop(part, "use_whole_group") sub = col.column() sub.active = (part.use_whole_group is False) + sub.prop(part, "use_group_pick_random") sub.prop(part, "use_group_count") col = split.column() sub = col.column() sub.active = (part.use_whole_group is False) sub.prop(part, "use_global_dupli") - sub.prop(part, "use_group_pick_random") + sub.prop(part, "use_rotation_dupli") if part.use_group_count and not part.use_whole_group: row = layout.row() diff --git a/release/scripts/startup/bl_ui/properties_physics_common.py b/release/scripts/startup/bl_ui/properties_physics_common.py index 204e25d9f01..64dad98d99a 100644 --- a/release/scripts/startup/bl_ui/properties_physics_common.py +++ b/release/scripts/startup/bl_ui/properties_physics_common.py @@ -76,7 +76,7 @@ class PHYSICS_PT_add(PhysicButtonsPanel, Panel): physics_add(self, col, context.smoke, "Smoke", 'SMOKE', 'MOD_SMOKE', True) -#cachetype can be 'PSYS' 'HAIR' 'SMOKE' etc +# cache-type can be 'PSYS' 'HAIR' 'SMOKE' etc def point_cache_ui(self, context, cache, enabled, cachetype): layout = self.layout diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py index 34f5a948ee7..73947c21a80 100644 --- a/release/scripts/startup/bl_ui/properties_texture.py +++ b/release/scripts/startup/bl_ui/properties_texture.py @@ -927,9 +927,9 @@ class TEXTURE_PT_influence(TextureSlotPanel, Panel): factor_but(col, "use_map_warp", "warp_factor", "Warp") factor_but(col, "use_map_displacement", "displacement_factor", "Displace") - #sub = col.column() - #sub.active = tex.use_map_translucency or tex.map_emit or tex.map_alpha or tex.map_raymir or tex.map_hardness or tex.map_ambient or tex.map_specularity or tex.map_reflection or tex.map_mirror - #sub.prop(tex, "default_value", text="Amount", slider=True) + #~ sub = col.column() + #~ sub.active = tex.use_map_translucency or tex.map_emit or tex.map_alpha or tex.map_raymir or tex.map_hardness or tex.map_ambient or tex.map_specularity or tex.map_reflection or tex.map_mirror + #~ sub.prop(tex, "default_value", text="Amount", slider=True) elif idblock.type == 'HALO': layout.label(text="Halo:") @@ -1014,7 +1014,7 @@ class TEXTURE_PT_influence(TextureSlotPanel, Panel): col = split.column() col.prop(tex, "blend_type", text="Blend") col.prop(tex, "use_rgb_to_intensity") - # color is used on grayscale textures even when use_rgb_to_intensity is disabled. + # color is used on gray-scale textures even when use_rgb_to_intensity is disabled. col.prop(tex, "color", text="") col = split.column() @@ -1027,14 +1027,14 @@ class TEXTURE_PT_influence(TextureSlotPanel, Panel): if isinstance(idblock, bpy.types.Material): layout.label(text="Bump Mapping:") - # only show bump settings if activated but not for normalmap images + # only show bump settings if activated but not for normal-map images row = layout.row() sub = row.row() sub.active = (tex.use_map_normal or tex.use_map_warp) and not (tex.texture.type == 'IMAGE' and (tex.texture.use_normal_map or tex.texture.use_derivative_map)) sub.prop(tex, "bump_method", text="Method") - # the space setting is supported for: derivmaps + bumpmaps (DEFAULT,BEST_QUALITY), not for normalmaps + # the space setting is supported for: derivative-maps + bump-maps (DEFAULT,BEST_QUALITY), not for normal-maps sub = row.row() sub.active = (tex.use_map_normal or tex.use_map_warp) and not (tex.texture.type == 'IMAGE' and tex.texture.use_normal_map) and ((tex.bump_method in {'BUMP_DEFAULT', 'BUMP_BEST_QUALITY'}) or (tex.texture.type == 'IMAGE' and tex.texture.use_derivative_map)) sub.prop(tex, "bump_objectspace", text="Space") diff --git a/release/scripts/startup/bl_ui/space_logic.py b/release/scripts/startup/bl_ui/space_logic.py index 869a91124d3..1ae8095fab3 100644 --- a/release/scripts/startup/bl_ui/space_logic.py +++ b/release/scripts/startup/bl_ui/space_logic.py @@ -45,7 +45,7 @@ class LOGIC_PT_properties(Panel): row = box.row() row.prop(prop, "name", text="") row.prop(prop, "type", text="") - row.prop(prop, "value", text="", toggle=True) # we dont care about the type. rna will display correctly + row.prop(prop, "value", text="", toggle=True) # we don't care about the type. rna will display correctly row.prop(prop, "show_debug", text="", toggle=True, icon='INFO') row.operator("object.game_property_remove", text="", icon='X', emboss=False).index = i diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py index b03e7b8c59c..2e957effccd 100644 --- a/release/scripts/startup/bl_ui/space_sequencer.py +++ b/release/scripts/startup/bl_ui/space_sequencer.py @@ -60,7 +60,6 @@ class SEQUENCER_HT_header(Header): layout.separator() layout.operator("sequencer.refresh_all") - layout.template_running_jobs() elif st.view_type == 'SEQUENCER_PREVIEW': layout.separator() layout.operator("sequencer.refresh_all") @@ -76,6 +75,8 @@ class SEQUENCER_HT_header(Header): row.prop(ed, "overlay_frame", text="") row.prop(ed, "overlay_lock", text="", icon='LOCKED') + layout.template_running_jobs() + class SEQUENCER_MT_view_toggle(Menu): bl_label = "View Type" diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index 1ec6cc39164..96a08e57157 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -426,8 +426,8 @@ class USERPREF_PT_system(Panel): col.label(text="Anisotropic Filtering") col.prop(system, "anisotropic_filter", text="") col.prop(system, "use_vertex_buffer_objects") - #Anti-aliasing is disabled as it breaks broder/lasso select - #col.prop(system, "use_antialiasing") + # Anti-aliasing is disabled as it breaks border/lasso select + #~ col.prop(system, "use_antialiasing") col.label(text="Window Draw Method:") col.prop(system, "window_draw_method", text="") col.label(text="Text Draw Options:") diff --git a/release/scripts/startup/bl_ui/space_userpref_keymap.py b/release/scripts/startup/bl_ui/space_userpref_keymap.py index c2e3a145f36..2c537efa61b 100644 --- a/release/scripts/startup/bl_ui/space_userpref_keymap.py +++ b/release/scripts/startup/bl_ui/space_userpref_keymap.py @@ -262,7 +262,7 @@ class InputKeyMapPanel: row = subcol.row(align=True) - #row.prop_search(wm.keyconfigs, "active", wm, "keyconfigs", text="Key Config:") + #~ row.prop_search(wm.keyconfigs, "active", wm, "keyconfigs", text="Key Config:") text = bpy.path.display_name(context.window_manager.keyconfigs.active.name) if not text: text = "Blender (default)" @@ -270,8 +270,8 @@ class InputKeyMapPanel: row.operator("wm.keyconfig_preset_add", text="", icon="ZOOMIN") row.operator("wm.keyconfig_preset_add", text="", icon="ZOOMOUT").remove_active = True -# layout.context_pointer_set("keyconfig", wm.keyconfigs.active) -# row.operator("wm.keyconfig_remove", text="", icon='X') + #~ layout.context_pointer_set("keyconfig", wm.keyconfigs.active) + #~ row.operator("wm.keyconfig_remove", text="", icon='X') row.prop(context.space_data, "filter_text", icon="VIEWZOOM") diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 2cf512b6639..7b905f9c6fc 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -54,10 +54,11 @@ class VIEW3D_HT_header(Header): else: sub.menu("VIEW3D_MT_object") - row = layout.row() + # Contains buttons like Mode, Pivot, Manipulator, Layer, Mesh Select Mode... - row.template_header_3D() - + layout.template_header_3D() + + row = layout.row() if obj: # Particle edit if obj.mode == 'PARTICLE_EDIT': @@ -985,6 +986,7 @@ class VIEW3D_MT_make_links(Menu): layout.operator("object.join_uvs") # stupid place to add this! + class VIEW3D_MT_object_game(Menu): bl_label = "Game" @@ -1140,7 +1142,7 @@ class VIEW3D_MT_sculpt(Menu): layout.prop(sculpt, "use_threaded", text="Threaded Sculpt") layout.prop(sculpt, "show_brush") - # TODO, make availabel from paint menu! + # TODO, make available from paint menu! layout.prop(tool_settings, "sculpt_paint_use_unified_size", text="Unify Size") layout.prop(tool_settings, "sculpt_paint_use_unified_strength", text="Unify Strength") @@ -1411,7 +1413,7 @@ class BoneOptions: data_path_iter = "selected_bones" opt_suffix = "" options.append("lock") - else: # posemode + else: # pose-mode bone_props = bpy.types.Bone.bl_rna.properties data_path_iter = "selected_pose_bones" opt_suffix = "bone." @@ -2180,7 +2182,7 @@ class VIEW3D_PT_view3d_meshdisplay(Panel): @classmethod def poll(cls, context): - # The active object check is needed because of localmode + # The active object check is needed because of local-mode return (context.active_object and (context.mode == 'EDIT_MESH')) def draw(self, context): @@ -2243,7 +2245,7 @@ class VIEW3D_PT_background_image(Panel): @classmethod def poll(cls, context): view = context.space_data - # bg = context.space_data.background_image + #~ bg = context.space_data.background_image return (view) def draw_header(self, context): diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py index e322a6dcd13..a78992d4a07 100644 --- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py +++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py @@ -63,7 +63,7 @@ def draw_gpencil_tools(context, layout): row.prop(context.tool_settings, "use_grease_pencil_sessions") -# ********** default tools for objectmode **************** +# ********** default tools for object-mode **************** class VIEW3D_PT_tools_objectmode(View3DPanel, Panel): bl_context = "objectmode" @@ -385,7 +385,7 @@ class VIEW3D_PT_tools_latticeedit(View3DPanel, Panel): draw_gpencil_tools(context, layout) -# ********** default tools for posemode **************** +# ********** default tools for pose-mode **************** class VIEW3D_PT_tools_posemode(View3DPanel, Panel): @@ -484,16 +484,18 @@ class VIEW3D_PT_tools_brush(PaintPanel, Panel): # XXX This needs a check if psys is editable. if context.particle_edit_object: + tool = settings.tool + # XXX Select Particle System layout.column().prop(settings, "tool", expand=True) - if settings.tool != 'NONE': + if tool != 'NONE': col = layout.column() col.prop(brush, "size", slider=True) - if settings.tool != 'ADD': + if tool != 'ADD': col.prop(brush, "strength", slider=True) - if settings.tool == 'ADD': + if tool == 'ADD': col.prop(brush, "count") col = layout.column() col.prop(settings, "use_default_interpolate") @@ -501,15 +503,16 @@ class VIEW3D_PT_tools_brush(PaintPanel, Panel): sub.active = settings.use_default_interpolate sub.prop(brush, "steps", slider=True) sub.prop(settings, "default_key_count", slider=True) - elif settings.tool == 'LENGTH': + elif tool == 'LENGTH': layout.prop(brush, "length_mode", expand=True) - elif settings.tool == 'PUFF': + elif tool == 'PUFF': layout.prop(brush, "puff_mode", expand=True) layout.prop(brush, "use_puff_volume") # Sculpt Mode # elif context.sculpt_object and brush: + tool = brush.sculpt_tool col = layout.column() @@ -526,12 +529,12 @@ class VIEW3D_PT_tools_brush(PaintPanel, Panel): row.prop(brush, "use_pressure_size", toggle=True, text="") - if brush.sculpt_tool not in {'SNAKE_HOOK', 'GRAB', 'ROTATE'}: + if tool not in {'SNAKE_HOOK', 'GRAB', 'ROTATE'}: col.separator() row = col.row(align=True) - if brush.use_space and brush.sculpt_tool not in {'SMOOTH'}: + if brush.use_space and tool != 'SMOOTH': if brush.use_space_atten: row.prop(brush, "use_space_atten", toggle=True, text="", icon='LOCKED') else: @@ -540,26 +543,26 @@ class VIEW3D_PT_tools_brush(PaintPanel, Panel): row.prop(brush, "strength", text="Strength", slider=True) row.prop(brush, "use_pressure_strength", text="") - if brush.sculpt_tool not in {'SMOOTH'}: + if tool != 'SMOOTH': col.separator() row = col.row(align=True) row.prop(brush, "auto_smooth_factor", slider=True) row.prop(brush, "use_inverse_smooth_pressure", toggle=True, text="") - if brush.sculpt_tool in {'GRAB', 'SNAKE_HOOK'}: + if tool in {'GRAB', 'SNAKE_HOOK'}: col.separator() row = col.row(align=True) row.prop(brush, "normal_weight", slider=True) - if brush.sculpt_tool in {'CREASE', 'BLOB'}: + if tool in {'CREASE', 'BLOB'}: col.separator() row = col.row(align=True) row.prop(brush, "crease_pinch_factor", slider=True, text="Pinch") - if brush.sculpt_tool not in {'PINCH', 'INFLATE', 'SMOOTH'}: + if tool not in {'PINCH', 'INFLATE', 'SMOOTH'}: row = col.row(align=True) col.separator() @@ -571,8 +574,8 @@ class VIEW3D_PT_tools_brush(PaintPanel, Panel): row.prop(brush, "sculpt_plane", text="") - #if brush.sculpt_tool in {'CLAY', 'CLAY_TUBES', 'FLATTEN', 'FILL', 'SCRAPE'}: - if brush.sculpt_tool in {'CLAY', 'FLATTEN', 'FILL', 'SCRAPE'}: + #if tool in {'CLAY', 'CLAY_TUBES', 'FLATTEN', 'FILL', 'SCRAPE'}: + if tool in {'CLAY', 'FLATTEN', 'FILL', 'SCRAPE'}: row = col.row(align=True) row.prop(brush, "plane_offset", slider=True) row.prop(brush, "use_offset_pressure", text="") @@ -585,7 +588,7 @@ class VIEW3D_PT_tools_brush(PaintPanel, Panel): row.active = brush.use_plane_trim row.prop(brush, "plane_trim", slider=True, text="Distance") - if brush.sculpt_tool == 'LAYER': + if tool == 'LAYER': row = col.row() row.prop(brush, "height", slider=True, text="Height") @@ -597,12 +600,12 @@ class VIEW3D_PT_tools_brush(PaintPanel, Panel): col.separator() col.row().prop(brush, "direction", expand=True) - if brush.sculpt_tool in {'DRAW', 'CREASE', 'BLOB', 'INFLATE', 'LAYER', 'CLAY'}: + if tool in {'DRAW', 'CREASE', 'BLOB', 'INFLATE', 'LAYER', 'CLAY'}: col.separator() col.prop(brush, "use_accumulate") - if brush.sculpt_tool == 'LAYER': + if tool == 'LAYER': col.separator() ob = context.sculpt_object @@ -1040,7 +1043,7 @@ class VIEW3D_PT_tools_brush_appearance(PaintPanel, Panel): row = col.row(align=True) row.prop(brush, "icon_filepath", text="") -# ********** default tools for weightpaint **************** +# ********** default tools for weight-paint **************** class VIEW3D_PT_tools_weightpaint(View3DPanel, Panel): @@ -1094,9 +1097,9 @@ class VIEW3D_PT_tools_weightpaint_options(View3DPanel, Panel): # col.prop(wpaint, "mul", text="") # Also missing now: -# Soft, Vgroup, X-Mirror and "Clear" Operator. +# Soft, Vertex-Group, X-Mirror and "Clear" Operator. -# ********** default tools for vertexpaint **************** +# ********** default tools for vertex-paint **************** class VIEW3D_PT_tools_vertexpaint(View3DPanel, Panel): @@ -1125,7 +1128,7 @@ class VIEW3D_PT_tools_vertexpaint(View3DPanel, Panel): # col.label(text="Multiply:") # col.prop(vpaint, "mul", text="") -# ********** default tools for texturepaint **************** +# ********** default tools for texture-paint **************** class VIEW3D_PT_tools_projectpaint(View3DPanel, Panel): diff --git a/release/scripts/templates/driver_functions.py b/release/scripts/templates/driver_functions.py new file mode 100644 index 00000000000..db9d4fb4678 --- /dev/null +++ b/release/scripts/templates/driver_functions.py @@ -0,0 +1,34 @@ +# This script defines functions to be used directly in drivers expressions to +# extend the builtin set of python functions. +# +# This can be executed on manually or set to 'Register' to +# initialize thefunctions on file load. + + +# two sample functions +def invert(f): + """ Simple function call: + + invert(val) + """ + return 1.0 - f + + +uuid_store = {} + +def slow_value(value, fac, uuid): + """ Delay the value by a factor, use a unique string to allow + use in multiple drivers without conflict: + + slow_value(val, 0.5, "my_value") + """ + value_prev = uuid_store.get(uuid, value) + uuid_store[uuid] = value_new = (value_prev * fac) + (value * (1.0 - fac)) + return value_new + + +import bpy + +# Add variable defined in this script into the drivers namespace. +bpy.app.driver_namespace["invert"] = invert +bpy.app.driver_namespace["slow_value"] = slow_value diff --git a/release/scripts/templates/gamelogic_module.py b/release/scripts/templates/gamelogic_module.py index fcc8a8839c9..88c8cf0d75b 100644 --- a/release/scripts/templates/gamelogic_module.py +++ b/release/scripts/templates/gamelogic_module.py @@ -8,7 +8,7 @@ import bge # variables defined here will only be set once when the -# module is first imported. Set object spesific vars +# module is first imported. Set object specific vars # inside the function if you intend to use the module # with multiple objects. diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c index 851c6542de0..5161761cf09 100644 --- a/source/blender/blenfont/intern/blf_font.c +++ b/source/blender/blenfont/intern/blf_font.c @@ -217,7 +217,7 @@ void blf_font_buffer(FontBLF *font, const char *str) unsigned int i= 0; GlyphBLF **glyph_ascii_table= font->glyph_cache->glyph_ascii_table; - /* buffer spesific vars*/ + /* buffer specific vars*/ const unsigned char b_col_char[4]= {font->b_col[0] * 255, font->b_col[1] * 255, font->b_col[2] * 255, diff --git a/source/blender/blenfont/intern/blf_lang.c b/source/blender/blenfont/intern/blf_lang.c index 0a102884969..ec9501c06a6 100644 --- a/source/blender/blenfont/intern/blf_lang.c +++ b/source/blender/blenfont/intern/blf_lang.c @@ -94,6 +94,7 @@ static const char *locales[] = { "greek", "el_GR", "korean", "ko_KR", "nepali", "ne_NP", + "persian", "fa_PE", }; void BLF_lang_init(void) diff --git a/source/blender/blenkernel/BKE_animsys.h b/source/blender/blenkernel/BKE_animsys.h index bf619d76e68..cf49c479fe3 100644 --- a/source/blender/blenkernel/BKE_animsys.h +++ b/source/blender/blenkernel/BKE_animsys.h @@ -146,7 +146,7 @@ void BKE_animsys_evaluate_animdata(struct Scene *scene, struct ID *id, struct An void BKE_animsys_evaluate_all_animation(struct Main *main, struct Scene *scene, float ctime); -/* ------------ Specialised API --------------- */ +/* ------------ Specialized API --------------- */ /* There are a few special tools which require these following functions. They are NOT to be used * for standard animation evaluation UNDER ANY CIRCUMSTANCES! * diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index f6910fede8e..e01586cb7d0 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -43,8 +43,8 @@ extern "C" { /* these lines are grep'd, watch out for our not-so-awesome regex * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ -#define BLENDER_VERSION 259 -#define BLENDER_SUBVERSION 4 +#define BLENDER_VERSION 260 +#define BLENDER_SUBVERSION 0 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 @@ -53,7 +53,7 @@ extern "C" { /* can be left blank, otherwise a,b,c... etc with no quotes */ #define BLENDER_VERSION_CHAR /* alpha/beta/rc/release, docs use this */ -#define BLENDER_VERSION_CYCLE rc +#define BLENDER_VERSION_CYCLE release struct ListBase; struct MemFile; diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index f8463bab55f..89733f1623c 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -84,7 +84,7 @@ typedef struct SculptSession { int modifiers_active; /* object is deformed with some modifiers */ float (*orig_cos)[3]; /* coords of undeformed mesh */ float (*deform_cos)[3]; /* coords of deformed mesh but without stroke displacement */ - float (*deform_imats)[3][3]; /* crazyspace deformation matricies */ + float (*deform_imats)[3][3]; /* crazyspace deformation matrices */ /* Partial redraw */ int partial_redraw; diff --git a/source/blender/blenkernel/BKE_utildefines.h b/source/blender/blenkernel/BKE_utildefines.h index 87684e4895d..f65b937a54b 100644 --- a/source/blender/blenkernel/BKE_utildefines.h +++ b/source/blender/blenkernel/BKE_utildefines.h @@ -29,7 +29,7 @@ /** \file BKE_utildefines.h * \ingroup bke - * \brief blender format spesific macros + * \brief blender format specific macros * \note generic defines should go in BLI_utildefines.h */ diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index c52bcbadf35..b3742d43176 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -64,6 +64,7 @@ #ifdef WITH_GAMEENGINE #include "BKE_navmesh_conversion.h" +static DerivedMesh *navmesh_dm_createNavMeshForVisualization(DerivedMesh *dm); #endif #include "BLO_sys_types.h" // for intptr_t support @@ -77,8 +78,6 @@ extern GLubyte stipple_quarttone[128]; /* glutil.c, bad level data */ -static DerivedMesh *navmesh_dm_createNavMeshForVisualization(DerivedMesh *dm); - /////////////////////////////////// /////////////////////////////////// diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index cd2c272a1c2..da6dd5bd39d 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -1430,6 +1430,16 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p VECCOPY(vec, obmat[3]); obmat[3][0] = obmat[3][1] = obmat[3][2] = 0.0f; + + /* particle rotation uses x-axis as the aligned axis, so pre-rotate the object accordingly */ + if((part->draw & PART_DRAW_ROTATE_OB) == 0) { + float xvec[3], q[4]; + xvec[0] = -1.f; + xvec[1] = xvec[2] = 0; + vec_to_quat(q, xvec, ob->trackflag, ob->upflag); + quat_to_mat4(obmat, q); + obmat[3][3]= 1.0f; + } /* Normal particles and cached hair live in global space so we need to * remove the real emitter's transformation before 2nd order duplication. @@ -1448,7 +1458,7 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p copy_m4_m4(mat, tmat); if(part->draw & PART_DRAW_GLOBAL_OB) - VECADD(mat[3], mat[3], vec); + add_v3_v3v3(mat[3], mat[3], vec); dob= new_dupli_object(lb, ob, mat, ob->lay, counter, GS(id->name) == ID_GR ? OB_DUPLIGROUP : OB_DUPLIPARTS, animated); copy_m4_m4(dob->omat, oldobmat); diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c index 1ec573c853a..260b51bc321 100644 --- a/source/blender/blenkernel/intern/cloth.c +++ b/source/blender/blenkernel/intern/cloth.c @@ -974,7 +974,7 @@ static void cloth_from_mesh ( ClothModifierData *clmd, DerivedMesh *dm ) * SPRING NETWORK BUILDING IMPLEMENTATION BEGIN ***************************************************************************************/ -// be carefull: implicit solver has to be resettet when using this one! +// be careful: implicit solver has to be resettet when using this one! // --> only for implicit handling of this spring! int cloth_add_spring ( ClothModifierData *clmd, unsigned int indexA, unsigned int indexB, float restlength, int spring_type) { diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index 591e0b6a8d2..6dbea2c9ab6 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -1067,7 +1067,7 @@ static void trackto_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *ta cob->matrix[2][2]=size[2]; /* targetmat[2] instead of ownermat[2] is passed to vectomat - * for backwards compatability it seems... (Aligorith) + * for backwards compatibility it seems... (Aligorith) */ sub_v3_v3v3(vec, cob->matrix[3], ct->matrix[3]); vectomat(vec, ct->matrix[2], @@ -2104,7 +2104,7 @@ static void actcon_new_data (void *cdata) { bActionConstraint *data= (bActionConstraint *)cdata; - /* set type to 20 (Loc X), as 0 is Rot X for backwards compatability */ + /* set type to 20 (Loc X), as 0 is Rot X for backwards compatibility */ data->type = 20; } @@ -2161,7 +2161,7 @@ static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraint constraint_target_to_mat4(ct->tar, ct->subtarget, tempmat, CONSTRAINT_SPACE_WORLD, ct->space, con->headtail); /* determine where in transform range target is */ - /* data->type is mapped as follows for backwards compatability: + /* data->type is mapped as follows for backwards compatibility: * 00,01,02 - rotation (it used to be like this) * 10,11,12 - scaling * 20,21,22 - location @@ -4351,7 +4351,7 @@ short proxylocked_constraints_owner (Object *ob, bPoseChannel *pchan) * constraints either had one or no targets. It used to be called during the main constraint solving * loop, but is now only used for the remaining cases for a few constraints. * - * None of the actual calculations of the matricies should be done here! Also, this function is + * None of the actual calculations of the matrices should be done here! Also, this function is * not to be used by any new constraints, particularly any that have multiple targets. */ void get_constraint_target_matrix (struct Scene *scene, bConstraint *con, int n, short ownertype, void *ownerdata, float mat[][4], float ctime) diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index e2326b005c1..0303f580e67 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -705,7 +705,7 @@ void bezt_add_to_cfra_elem (ListBase *lb, BezTriple *bezt) /* ***************************** Samples Utilities ******************************* */ /* Some utilities for working with FPoints (i.e. 'sampled' animation curve data, such as - * data imported from BVH/Mocap files), which are specialised for use with high density datasets, + * data imported from BVH/Mocap files), which are specialized for use with high density datasets, * which BezTriples/Keyframe data are ill equipped to do. */ diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c index 4c8d0cf998d..9c01b35b91a 100644 --- a/source/blender/blenkernel/intern/font.c +++ b/source/blender/blenkernel/intern/font.c @@ -546,7 +546,7 @@ static void buildchar(Main *bmain, Curve *cu, unsigned long character, CharInfo nu2->knotsu = nu2->knotsv = NULL; nu2->flag= CU_SMOOTH; nu2->charidx = charidx; - if (info->mat_nr) { + if (info->mat_nr > 0) { nu2->mat_nr= info->mat_nr-1; } else { diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 06ca7b7b509..fa493315d4b 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -185,7 +185,7 @@ bGPDlayer *gpencil_layer_addnew (bGPdata *gpd) /* auto-name */ strcpy(gpl->info, "GP_Layer"); - BLI_uniquename(&gpd->layers, gpl, "GP_Layer", '.', offsetof(bGPDlayer, info[0]), sizeof(gpl->info)); + BLI_uniquename(&gpd->layers, gpl, "GP_Layer", '.', offsetof(bGPDlayer, info), sizeof(gpl->info)); /* make this one the active one */ gpencil_layer_setactive(gpd, gpl); diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 91f3c7a22ba..609f6cd38f1 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -1034,12 +1034,14 @@ static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver) /* first bone target */ dtar= &dvar->targets[0]; dtar->id= (ID *)idriver->ob; + dtar->idtype= ID_OB; if (idriver->name[0]) BLI_strncpy(dtar->pchan_name, idriver->name, sizeof(dtar->pchan_name)); /* second bone target (name was stored in same var as the first one) */ dtar= &dvar->targets[1]; dtar->id= (ID *)idriver->ob; + dtar->idtype= ID_OB; if (idriver->name[0]) // xxx... for safety BLI_strncpy(dtar->pchan_name, idriver->name+DRIVER_NAME_OFFS, sizeof(dtar->pchan_name)); } @@ -1051,6 +1053,7 @@ static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver) /* only requires a single target */ dtar= &dvar->targets[0]; dtar->id= (ID *)idriver->ob; + dtar->idtype= ID_OB; if (idriver->name[0]) BLI_strncpy(dtar->pchan_name, idriver->name, sizeof(dtar->pchan_name)); dtar->transChan= adrcode_to_dtar_transchan(idriver->adrcode); @@ -1065,6 +1068,7 @@ static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver) /* only requires single target */ dtar= &dvar->targets[0]; dtar->id= (ID *)idriver->ob; + dtar->idtype= ID_OB; dtar->transChan= adrcode_to_dtar_transchan(idriver->adrcode); } } diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 538e0c98796..299de70e003 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -1106,8 +1106,17 @@ int object_remove_material_slot(Object *ob) short *totcolp; short a, actcol; - if(ob==NULL || ob->totcol==0) return FALSE; - + if (ob==NULL || ob->totcol==0) { + return FALSE; + } + + /* this should never happen and used to crash */ + if (ob->actcol <= 0) { + printf("%s: invalid material index %d, report a bug!\n", __func__, ob->actcol); + BLI_assert(0); + return FALSE; + } + /* take a mesh/curve/mball as starting point, remove 1 index, * AND with all objects that share the ob->data * @@ -1120,10 +1129,8 @@ int object_remove_material_slot(Object *ob) if(*matarar==NULL) return FALSE; /* we delete the actcol */ - if(ob->totcol) { - mao= (*matarar)[ob->actcol-1]; - if(mao) mao->id.us--; - } + mao= (*matarar)[ob->actcol-1]; + if(mao) mao->id.us--; for(a=ob->actcol; a<ob->totcol; a++) (*matarar)[a-1]= (*matarar)[a]; diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 806a7871948..8669c4e0efd 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -4384,33 +4384,50 @@ void psys_get_dupli_path_transform(ParticleSimulationData *sim, ParticleData *pa psys_particle_on_emitter(psmd,sim->psys->part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc,nor,0,0,0,0); else psys_particle_on_emitter(psmd,PART_FROM_FACE,cpa->num,DMCACHE_ISCHILD,cpa->fuv,cpa->foffset,loc,nor,0,0,0,0); - - copy_m3_m4(nmat, ob->imat); - transpose_m3(nmat); - mul_m3_v3(nmat, nor); - normalize_v3(nor); - - /* make sure that we get a proper side vector */ - if(fabs(dot_v3v3(nor,vec))>0.999999) { - if(fabs(dot_v3v3(nor,xvec))>0.999999) { - nor[0] = 0.0f; - nor[1] = 1.0f; - nor[2] = 0.0f; + + if(psys->part->rotmode == PART_ROT_VEL) { + copy_m3_m4(nmat, ob->imat); + transpose_m3(nmat); + mul_m3_v3(nmat, nor); + normalize_v3(nor); + + /* make sure that we get a proper side vector */ + if(fabs(dot_v3v3(nor,vec))>0.999999) { + if(fabs(dot_v3v3(nor,xvec))>0.999999) { + nor[0] = 0.0f; + nor[1] = 1.0f; + nor[2] = 0.0f; + } + else { + nor[0] = 1.0f; + nor[1] = 0.0f; + nor[2] = 0.0f; + } } - else { - nor[0] = 1.0f; - nor[1] = 0.0f; - nor[2] = 0.0f; + cross_v3_v3v3(side, nor, vec); + normalize_v3(side); + + /* rotate side vector around vec */ + if(psys->part->phasefac != 0) { + float q_phase[4]; + float phasefac = psys->part->phasefac; + if(psys->part->randphasefac != 0.0f) + phasefac += psys->part->randphasefac * PSYS_FRAND((pa-psys->particles) + 20); + axis_angle_to_quat( q_phase, vec, phasefac*(float)M_PI); + + mul_qt_v3(q_phase, side); } - } - cross_v3_v3v3(side, nor, vec); - normalize_v3(side); - cross_v3_v3v3(nor, vec, side); - unit_m4(mat); - VECCOPY(mat[0], vec); - VECCOPY(mat[1], side); - VECCOPY(mat[2], nor); + cross_v3_v3v3(nor, vec, side); + + unit_m4(mat); + VECCOPY(mat[0], vec); + VECCOPY(mat[1], side); + VECCOPY(mat[2], nor); + } + else { + quat_to_mat4(mat, pa->state.rot); + } *scale= len; } diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 6b601ed4b1a..7b2d621aff2 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -1607,8 +1607,8 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P } - /* -velocity */ - if(part->randfac != 0.0f){ + /* -velocity (boids need this even if there's no random velocity) */ + if(part->randfac != 0.0f || (part->phystype==PART_PHYS_BOIDS && pa->boid)){ r_vel[0] = 2.0f * (PSYS_FRAND(p + 10) - 0.5f); r_vel[1] = 2.0f * (PSYS_FRAND(p + 11) - 0.5f); r_vel[2] = 2.0f * (PSYS_FRAND(p + 12) - 0.5f); diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index fb69db17b97..bc5bc87b1fa 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -910,7 +910,7 @@ static int ptcache_path(PTCacheID *pid, char *filename) else if (G.relbase_valid || lib) { char file[MAX_PTCACHE_PATH]; /* we dont want the dir, only the file */ - BLI_split_dirfile(blendfilename, NULL, file); + BLI_split_dirfile(blendfilename, NULL, file, 0, sizeof(file)); i = strlen(file); /* remove .blend */ diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index d8d6ed6ea6d..943066537d5 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -827,7 +827,7 @@ static void do_cross_effect_float(float facf0, float facf1, int x, int y, } } -/* carefull: also used by speed effect! */ +/* careful: also used by speed effect! */ static struct ImBuf* do_cross_effect( SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra), diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 5a2c53f5b9b..00534400cf1 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3647,7 +3647,7 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo /* we only need 1 element to store the filename */ strip->stripdata= se= MEM_callocN(sizeof(StripElem), "stripelem"); - BLI_split_dirfile(seq_load->path, strip->dir, se->name); + BLI_split_dirfile(seq_load->path, strip->dir, se->name, sizeof(strip->dir), sizeof(se->name)); seq->scene_sound = sound_add_scene_sound(scene, seq, seq_load->start_frame, seq_load->start_frame + strip->len, 0); @@ -3706,7 +3706,7 @@ Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo /* we only need 1 element for MOVIE strips */ strip->stripdata= se= MEM_callocN(sizeof(StripElem), "stripelem"); - BLI_split_dirfile(seq_load->path, strip->dir, se->name); + BLI_split_dirfile(seq_load->path, strip->dir, se->name, sizeof(strip->dir), sizeof(se->name)); calc_sequence_disp(scene, seq); diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c index 88f72c33802..65b4a21d0ee 100644 --- a/source/blender/blenkernel/intern/softbody.c +++ b/source/blender/blenkernel/intern/softbody.c @@ -2818,7 +2818,7 @@ static void softbody_calc_forces(Scene *scene, Object *ob, float forcetime, floa if (ob->softflag & OB_SB_FACECOLL) scan_for_ext_face_forces(ob,timenow); /* finish matrix and solve */ -#if (0) // remove onl linking for now .. still i am not sure .. the jacobian can be usefull .. so keep that BM +#if (0) // remove onl linking for now .. still i am not sure .. the jacobian can be useful .. so keep that BM if(nl_flags & NLF_SOLVE){ //double sct,sst=PIL_check_seconds_timer(); for(a=sb->totpoint, bp= sb->bpoint; a>0; a--, bp++) { @@ -3540,7 +3540,7 @@ static void lattice_to_softbody(Scene *scene, Object *ob) } } - /* create some helper edges to enable SB lattice to be usefull at all */ + /* create some helper edges to enable SB lattice to be useful at all */ if (ob->softflag & OB_SB_EDGES){ makelatticesprings(lt,ob->soft->bspring,ob->softflag & OB_SB_QUADS,ob); build_bps_springlist(ob); /* link bps to springs */ diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index f2d92154c66..07df12d5468 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -63,6 +63,10 @@ #include "BKE_sequencer.h" #include "BKE_scene.h" +// evil quiet NaN definition +static const int NAN_INT = 0x7FC00000; +#define NAN_FLT *((float*)(&NAN_INT)) + #ifdef WITH_AUDASPACE // evil global ;-) static int sound_cfra; @@ -295,7 +299,10 @@ void sound_cache(struct bSound* sound) AUD_unload(sound->cache); sound->cache = AUD_bufferSound(sound->handle); - sound->playback_handle = sound->cache; + if(sound->cache) + sound->playback_handle = sound->cache; + else + sound->playback_handle = sound->handle; } void sound_cache_notifying(struct Main* main, struct bSound* sound) @@ -332,6 +339,8 @@ void sound_load(struct Main *bmain, struct bSound* sound) sound->playback_handle = NULL; } + sound_free_waveform(sound); + // XXX unused currently #if 0 switch(sound->type) @@ -625,7 +634,7 @@ float sound_sync_scene(struct Scene *scene) else return AUD_getPosition(scene->sound_scene_handle); } - return 0.0f; + return NAN_FLT; } int sound_scene_playing(struct Scene *scene) @@ -782,7 +791,7 @@ static void sound_start_play_scene(struct Scene *UNUSED(scene)) {} void sound_play_scene(struct Scene *UNUSED(scene)) {} void sound_stop_scene(struct Scene *UNUSED(scene)) {} void sound_seek_scene(struct Main *UNUSED(bmain), struct Scene *UNUSED(scene)) {} -float sound_sync_scene(struct Scene *UNUSED(scene)) { return 0.0f; } +float sound_sync_scene(struct Scene *UNUSED(scene)) { return NAN_FLT; } int sound_scene_playing(struct Scene *UNUSED(scene)) { return -1; } int sound_read_sound_buffer(struct bSound* UNUSED(sound), float* UNUSED(buffer), int UNUSED(length), float UNUSED(start), float UNUSED(end)) { return 0; } void sound_read_waveform(struct bSound* sound) { (void)sound; } diff --git a/source/blender/blenlib/BLI_path_util.h b/source/blender/blenlib/BLI_path_util.h index 81fc8a50db6..4f7f7b482b5 100644 --- a/source/blender/blenlib/BLI_path_util.h +++ b/source/blender/blenlib/BLI_path_util.h @@ -103,7 +103,7 @@ void BLI_setenv_if_new(const char *env, const char* val); void BLI_make_file_string(const char *relabase, char *string, const char *dir, const char *file); void BLI_make_exist(char *dir); void BLI_make_existing_file(const char *name); -void BLI_split_dirfile(const char *string, char *dir, char *file); +void BLI_split_dirfile(const char *string, char *dir, char *file, const size_t dirlen, const size_t filelen); void BLI_join_dirfile(char *string, const size_t maxlen, const char *dir, const char *file); char *BLI_path_basename(char *path); int BKE_rebase_path(char *abs, size_t abs_len, char *rel, size_t rel_len, const char *base_dir, const char *src_dir, const char *dest_dir); diff --git a/source/blender/blenlib/BLI_string.h b/source/blender/blenlib/BLI_string.h index c53ce9dced5..3ac8dba106a 100644 --- a/source/blender/blenlib/BLI_string.h +++ b/source/blender/blenlib/BLI_string.h @@ -147,6 +147,10 @@ void BLI_ascii_strtoupper(char *str, int len); char *BLI_strncpy_utf8(char *dst, const char *src, size_t maxncpy); int BLI_utf8_invalid_byte(const char *str, int length); int BLI_utf8_invalid_strip(char *str, int length); + /* copied from glib */ +char *BLI_str_find_prev_char_utf8(const char *str, const char *p); +char *BLI_str_find_next_char_utf8(const char *p, const char *end); +char *BLI_str_prev_char_utf8(const char *p); #ifdef __cplusplus } diff --git a/source/blender/blenlib/intern/bpath.c b/source/blender/blenlib/intern/bpath.c index 5219b05b65a..65b9ba9ea4a 100644 --- a/source/blender/blenlib/intern/bpath.c +++ b/source/blender/blenlib/intern/bpath.c @@ -447,7 +447,7 @@ static void seq_setpath(struct BPathIterator *bpi, const char *path) if (SEQ_HAS_PATH(seq)) { if (ELEM3(seq->type, SEQ_IMAGE, SEQ_MOVIE, SEQ_SOUND)) { - BLI_split_dirfile(path, seq->strip->dir, seq->strip->stripdata->name); + BLI_split_dirfile(path, seq->strip->dir, seq->strip->stripdata->name, sizeof(seq->strip->dir), sizeof(seq->strip->stripdata->name)); } else { /* simple case */ @@ -967,7 +967,7 @@ void findMissingFiles(Main *bmain, const char *str) //XXX waitcursor( 1 ); - BLI_split_dirfile(str, dirname, NULL); + BLI_split_dirfile(str, dirname, NULL, sizeof(dirname), 0); BLI_bpathIterator_init(&bpi, bmain, bmain->name, 0); diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c index 8adede3337c..21f91ce8f14 100644 --- a/source/blender/blenlib/intern/path_util.c +++ b/source/blender/blenlib/intern/path_util.c @@ -894,7 +894,7 @@ static int get_path_local(char *targetpath, const char *folder_name, const char } /* use argv[0] (bprogname) to get the path to the executable */ - BLI_split_dirfile(bprogname, bprogdir, NULL); + BLI_split_dirfile(bprogname, bprogdir, NULL, sizeof(bprogdir), 0); /* try EXECUTABLE_DIR/2.5x/folder_name - new default directory for local blender installed files */ if(test_path(targetpath, bprogdir, blender_version_decimal(ver), relfolder)) @@ -966,7 +966,7 @@ static int get_path_system(char *targetpath, const char *folder_name, const char char bprogdir[FILE_MAX]; /* use argv[0] (bprogname) to get the path to the executable */ - BLI_split_dirfile(bprogname, bprogdir, NULL); + BLI_split_dirfile(bprogname, bprogdir, NULL, sizeof(bprogdir), 0); if(folder_name) { if (subfolder_name) { @@ -1411,40 +1411,60 @@ int BLI_replace_extension(char *path, size_t maxlen, const char *ext) * - dosnt use CWD, or deal with relative paths. * - Only fill's in *dir and *file when they are non NULL * */ -void BLI_split_dirfile(const char *string, char *dir, char *file) +void BLI_split_dirfile(const char *string, char *dir, char *file, const size_t dirlen, const size_t filelen) { char *lslash_str = BLI_last_slash(string); - int lslash= lslash_str ? (int)(lslash_str - string) + 1 : 0; + size_t lslash= lslash_str ? (size_t)(lslash_str - string) + 1 : 0; if (dir) { if (lslash) { - BLI_strncpy( dir, string, lslash + 1); /* +1 to include the slash and the last char */ - } else { + BLI_strncpy( dir, string, MIN2(dirlen, lslash + 1)); /* +1 to include the slash and the last char */ + } + else { dir[0] = '\0'; } } if (file) { - strcpy( file, string+lslash); + BLI_strncpy(file, string+lslash, filelen); } } /* simple appending of filename to dir, does not check for valid path! */ -void BLI_join_dirfile(char *string, const size_t maxlen, const char *dir, const char *file) +void BLI_join_dirfile(char *dst, const size_t maxlen, const char *dir, const char *file) { - int sl_dir; - - if(string != dir) /* compare pointers */ - BLI_strncpy(string, dir, maxlen); + size_t dirlen= BLI_strnlen(dir, maxlen); + + if (dst != dir) { + if(dirlen == maxlen) { + memcpy(dst, dir, dirlen); + dst[dirlen - 1]= '\0'; + return; /* dir fills the path */ + } + else { + memcpy(dst, dir, dirlen + 1); + } + } + + if (dirlen + 1 >= maxlen) { + return; /* fills the path */ + } - if (!file) + /* inline BLI_add_slash */ + if (dst[dirlen - 1] != SEP) { + dst[dirlen++]= SEP; + dst[dirlen ]= '\0'; + } + + if (dirlen >= maxlen) { + return; /* fills the path */ + } + + if (file == NULL) { return; - - sl_dir= BLI_add_slash(string); - - if (sl_dir <FILE_MAX) { - BLI_strncpy(string + sl_dir, file, maxlen - sl_dir); } + + BLI_strncpy(dst + dirlen, file, maxlen - dirlen); } /* like pythons os.path.basename( ) */ @@ -1496,7 +1516,7 @@ int BKE_rebase_path(char *abs, size_t abs_len, char *rel, size_t rel_len, const if (rel) rel[0]= 0; - BLI_split_dirfile(base_dir, blend_dir, NULL); + BLI_split_dirfile(base_dir, blend_dir, NULL, sizeof(blend_dir), 0); if (src_dir[0]=='\0') return 0; @@ -1507,7 +1527,7 @@ int BKE_rebase_path(char *abs, size_t abs_len, char *rel, size_t rel_len, const BLI_path_abs(path, base_dir); /* get the directory part */ - BLI_split_dirfile(path, dir, base); + BLI_split_dirfile(path, dir, base, sizeof(dir), sizeof(base)); len= strlen(blend_dir); @@ -1584,19 +1604,11 @@ char *BLI_last_slash(const char *string) int BLI_add_slash(char *string) { int len = strlen(string); -#ifdef WIN32 - if (len==0 || string[len-1]!='\\') { - string[len] = '\\'; + if (len==0 || string[len-1] != SEP) { + string[len] = SEP; string[len+1] = '\0'; return len+1; } -#else - if (len==0 || string[len-1]!='/') { - string[len] = '/'; - string[len+1] = '\0'; - return len+1; - } -#endif return len; } @@ -1605,11 +1617,7 @@ void BLI_del_slash(char *string) { int len = strlen(string); while (len) { -#ifdef WIN32 - if (string[len-1]=='\\') { -#else - if (string[len-1]=='/') { -#endif + if (string[len-1] == SEP) { string[len-1] = '\0'; len--; } else { @@ -1673,7 +1681,7 @@ void BLI_where_am_i(char *fullname, const size_t maxlen, const char *name) #ifdef WITH_BINRELOC - /* linux uses binreloc since argv[0] is not relyable, call br_init( NULL ) first */ + /* linux uses binreloc since argv[0] is not reliable, call br_init( NULL ) first */ path = br_find_exe( NULL ); if (path) { BLI_strncpy(fullname, path, maxlen); diff --git a/source/blender/blenlib/intern/string_utf8.c b/source/blender/blenlib/intern/string_utf8.c index 961a41690f7..dc6cb0ef228 100644 --- a/source/blender/blenlib/intern/string_utf8.c +++ b/source/blender/blenlib/intern/string_utf8.c @@ -183,3 +183,83 @@ char *BLI_strncpy_utf8(char *dst, const char *src, size_t maxncpy) return dst_r; } +/* copied from glib */ +/** + * g_utf8_find_prev_char: + * @str: pointer to the beginning of a UTF-8 encoded string + * @p: pointer to some position within @str + * + * Given a position @p with a UTF-8 encoded string @str, find the start + * of the previous UTF-8 character starting before @p. Returns %NULL if no + * UTF-8 characters are present in @str before @p. + * + * @p does not have to be at the beginning of a UTF-8 character. No check + * is made to see if the character found is actually valid other than + * it starts with an appropriate byte. + * + * Return value: a pointer to the found character or %NULL. + **/ +char * BLI_str_find_prev_char_utf8(const char *str, const char *p) +{ + for (--p; p >= str; --p) { + if ((*p & 0xc0) != 0x80) { + return (char *)p; + } + } + return NULL; +} + +/** + * g_utf8_find_next_char: + * @p: a pointer to a position within a UTF-8 encoded string + * @end: a pointer to the byte following the end of the string, + * or %NULL to indicate that the string is nul-terminated. + * + * Finds the start of the next UTF-8 character in the string after @p. + * + * @p does not have to be at the beginning of a UTF-8 character. No check + * is made to see if the character found is actually valid other than + * it starts with an appropriate byte. + * + * Return value: a pointer to the found character or %NULL + **/ +char *BLI_str_find_next_char_utf8(const char *p, const char *end) +{ + if (*p) { + if (end) { + for (++p; p < end && (*p & 0xc0) == 0x80; ++p) { + /* do nothing */ + } + } + else { + for (++p; (*p & 0xc0) == 0x80; ++p) { + /* do nothing */ + } + } + } + return (p == end) ? NULL : (char *)p; +} + +/** + * g_utf8_prev_char: + * @p: a pointer to a position within a UTF-8 encoded string + * + * Finds the previous UTF-8 character in the string before @p. + * + * @p does not have to be at the beginning of a UTF-8 character. No check + * is made to see if the character found is actually valid other than + * it starts with an appropriate byte. If @p might be the first + * character of the string, you must use g_utf8_find_prev_char() instead. + * + * Return value: a pointer to the found character. + **/ +char *BLI_str_prev_char_utf8(const char *p) +{ + while (1) { + p--; + if ((*p & 0xc0) != 0x80) { + return (char *)p; + } + } +} +/* end glib copy */ diff --git a/source/blender/blenlib/intern/winstuff.c b/source/blender/blenlib/intern/winstuff.c index 3b14abb0bee..9594197ef90 100644 --- a/source/blender/blenlib/intern/winstuff.c +++ b/source/blender/blenlib/intern/winstuff.c @@ -53,11 +53,10 @@ int BLI_getInstallationDir( char * str ) { char dir[FILE_MAXDIR]; - char file[FILE_MAXFILE]; int a; GetModuleFileName(NULL,str,FILE_MAXDIR+FILE_MAXFILE); - BLI_split_dirfile(str,dir,file); /* shouldn't be relative */ + BLI_split_dirfile(str, dir, NULL, sizeof(dir), 0); /* shouldn't be relative */ a = strlen(dir); if(dir[a-1] == '\\') dir[a-1]=0; diff --git a/source/blender/blenloader/BLO_readfile.h b/source/blender/blenloader/BLO_readfile.h index 47931477728..e7be98d955d 100644 --- a/source/blender/blenloader/BLO_readfile.h +++ b/source/blender/blenloader/BLO_readfile.h @@ -204,7 +204,7 @@ BLO_blendhandle_close( #define GROUP_MAX 32 -int BLO_has_bfile_extension(char *str); +int BLO_has_bfile_extension(const char *str); /* return ok when a blenderfile, in dir is the filename, * in group the type of libdata diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index a7234c107da..a5977a2fda0 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -1049,7 +1049,7 @@ void blo_freefiledata(FileData *fd) /* ************ DIV ****************** */ -int BLO_has_bfile_extension(char *str) +int BLO_has_bfile_extension(const char *str) { return (BLI_testextensie(str, ".ble") || BLI_testextensie(str, ".blend") || BLI_testextensie(str, ".blend.gz")); } @@ -7257,6 +7257,19 @@ void convert_tface_mt(FileData *fd, Main *main) } } +static void do_versions_nodetree_image_default_alpha_output(bNodeTree *ntree) +{ + bNode *node; + bNodeSocket *sock; + for (node=ntree->nodes.first; node; node=node->next) { + if (ELEM(node->type, CMP_NODE_IMAGE, CMP_NODE_R_LAYERS)) { + /* default Image output value should have 0 alpha */ + sock = node->outputs.first; + ((bNodeSocketValueRGBA*)sock->default_value)->value[3] = 0.0f; + } + } +} + static void do_versions(FileData *fd, Library *lib, Main *main) { /* WATCH IT!!!: pointers from libdata have not been converted */ @@ -12334,6 +12347,38 @@ static void do_versions(FileData *fd, Library *lib, Main *main) /* put compatibility code here until next subversion bump */ { + { + /* set default alpha value of Image outputs in image and render layer nodes to 0 */ + Scene *sce; + bNodeTree *ntree; + + for (sce=main->scene.first; sce; sce=sce->id.next) { + /* there are files with invalid audio_channels value, the real cause + is unknown, but we fix it here anyway to avoid crashes */ + if(sce->r.ffcodecdata.audio_channels == 0) + sce->r.ffcodecdata.audio_channels = 2; + + if (sce->nodetree) + do_versions_nodetree_image_default_alpha_output(sce->nodetree); + } + + for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next) + do_versions_nodetree_image_default_alpha_output(ntree); + } + + { + /* support old particle dupliobject rotation settings */ + ParticleSettings *part; + + for (part=main->particle.first; part; part=part->id.next) { + if(ELEM(part->ren_as, PART_DRAW_OB, PART_DRAW_GR)) { + part->draw |= PART_DRAW_ROTATE_OB; + + if(part->rotmode == 0) + part->rotmode = PART_ROT_VEL; + } + } + } } /* default values in Freestyle settings */ @@ -13500,7 +13545,7 @@ static void give_base_to_objects(Main *mainvar, Scene *sce, Library *lib, const if( ob->id.flag & LIB_INDIRECT ) { /* IF below is quite confusing! - if we are appending, but this object wasnt just added allong with a group, + if we are appending, but this object wasnt just added along with a group, then this is already used indirectly in the scene somewhere else and we didnt just append it. (ob->id.flag & LIB_PRE_EXISTING)==0 means that this is a newly appended object - Campbell */ diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 415d3b141bf..616da17d30e 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -2876,8 +2876,8 @@ int BLO_write_file(Main *mainvar, const char *filepath, int write_flags, ReportL if(write_flags & G_FILE_RELATIVE_REMAP) { char dir1[FILE_MAXDIR+FILE_MAXFILE]; char dir2[FILE_MAXDIR+FILE_MAXFILE]; - BLI_split_dirfile(filepath, dir1, NULL); - BLI_split_dirfile(mainvar->name, dir2, NULL); + BLI_split_dirfile(filepath, dir1, NULL, sizeof(dir1), 0); + BLI_split_dirfile(mainvar->name, dir2, NULL, sizeof(dir2), 0); /* just incase there is some subtle difference */ BLI_cleanup_dir(mainvar->name, dir1); diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 61f1b1dfa08..f3a6e2371bb 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -962,30 +962,32 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , for (unsigned int j = 0; j < matBinds.getCount(); j++) { const COLLADAFW::UniqueId & matuid = matBinds[j].getReferencedMaterial(); const COLLADAFW::Effect *ef = (COLLADAFW::Effect *) (FW_object_map[matuid]); - const COLLADAFW::CommonEffectPointerArray& commonEffects = ef->getCommonEffects(); - COLLADAFW::EffectCommon *efc = commonEffects[0]; - if((animType->material & MATERIAL_SHININESS) != 0){ - const COLLADAFW::FloatOrParam *shin = &(efc->getShininess()); - const COLLADAFW::UniqueId& listid = shin->getAnimationList(); - Assign_float_animations( listid, AnimCurves , "specular_hardness" ); - } + if (ef != NULL) { /* can be NULL [#28909] */ + const COLLADAFW::CommonEffectPointerArray& commonEffects = ef->getCommonEffects(); + COLLADAFW::EffectCommon *efc = commonEffects[0]; + if((animType->material & MATERIAL_SHININESS) != 0){ + const COLLADAFW::FloatOrParam *shin = &(efc->getShininess()); + const COLLADAFW::UniqueId& listid = shin->getAnimationList(); + Assign_float_animations( listid, AnimCurves , "specular_hardness" ); + } - if((animType->material & MATERIAL_IOR) != 0){ - const COLLADAFW::FloatOrParam *ior = &(efc->getIndexOfRefraction()); - const COLLADAFW::UniqueId& listid = ior->getAnimationList(); - Assign_float_animations( listid, AnimCurves , "raytrace_transparency.ior" ); - } + if((animType->material & MATERIAL_IOR) != 0){ + const COLLADAFW::FloatOrParam *ior = &(efc->getIndexOfRefraction()); + const COLLADAFW::UniqueId& listid = ior->getAnimationList(); + Assign_float_animations( listid, AnimCurves , "raytrace_transparency.ior" ); + } - if((animType->material & MATERIAL_SPEC_COLOR) != 0){ - const COLLADAFW::ColorOrTexture *cot = &(efc->getSpecular()); - const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); - Assign_color_animations( listid, AnimCurves , "specular_color" ); - } + if((animType->material & MATERIAL_SPEC_COLOR) != 0){ + const COLLADAFW::ColorOrTexture *cot = &(efc->getSpecular()); + const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); + Assign_color_animations( listid, AnimCurves , "specular_color" ); + } - if((animType->material & MATERIAL_DIFF_COLOR) != 0){ - const COLLADAFW::ColorOrTexture *cot = &(efc->getDiffuse()); - const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); - Assign_color_animations( listid, AnimCurves , "diffuse_color" ); + if((animType->material & MATERIAL_DIFF_COLOR) != 0){ + const COLLADAFW::ColorOrTexture *cot = &(efc->getDiffuse()); + const COLLADAFW::UniqueId& listid = cot->getColor().getAnimationList(); + Assign_color_animations( listid, AnimCurves , "diffuse_color" ); + } } } } @@ -1051,14 +1053,16 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD for (unsigned int j = 0; j < matBinds.getCount(); j++) { const COLLADAFW::UniqueId & matuid = matBinds[j].getReferencedMaterial(); const COLLADAFW::Effect *ef = (COLLADAFW::Effect *) (FW_object_map[matuid]); - const COLLADAFW::CommonEffectPointerArray& commonEffects = ef->getCommonEffects(); - if(!commonEffects.empty()) { - COLLADAFW::EffectCommon *efc = commonEffects[0]; - types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); - types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); - types->material = setAnimType(&(efc->getDiffuse().getColor()),(types->material), MATERIAL_DIFF_COLOR); - // types->material = setAnimType(&(efc->get()),(types->material), MATERIAL_TRANSPARENCY); - types->material = setAnimType(&(efc->getIndexOfRefraction()),(types->material), MATERIAL_IOR); + if (ef != NULL) { /* can be NULL [#28909] */ + const COLLADAFW::CommonEffectPointerArray& commonEffects = ef->getCommonEffects(); + if(!commonEffects.empty()) { + COLLADAFW::EffectCommon *efc = commonEffects[0]; + types->material = setAnimType(&(efc->getShininess()),(types->material), MATERIAL_SHININESS); + types->material = setAnimType(&(efc->getSpecular().getColor()),(types->material), MATERIAL_SPEC_COLOR); + types->material = setAnimType(&(efc->getDiffuse().getColor()),(types->material), MATERIAL_DIFF_COLOR); + // types->material = setAnimType(&(efc->get()),(types->material), MATERIAL_TRANSPARENCY); + types->material = setAnimType(&(efc->getIndexOfRefraction()),(types->material), MATERIAL_IOR); + } } } } @@ -1067,10 +1071,10 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD int AnimationImporter::setAnimType ( const COLLADAFW::Animatable * prop , int types, int addition) { - const COLLADAFW::UniqueId& listid = prop->getAnimationList(); - if (animlist_map.find(listid) != animlist_map.end()) - return types|addition; - else return types; + const COLLADAFW::UniqueId& listid = prop->getAnimationList(); + if (animlist_map.find(listid) != animlist_map.end()) + return types|addition; + else return types; } // Is not used anymore. diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index e98f551a097..056d74aabfb 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -884,7 +884,7 @@ bool DocumentImporter::writeImage( const COLLADAFW::Image* image ) char dir[FILE_MAX]; char full_path[FILE_MAX]; - BLI_split_dirfile(filename, dir, NULL); + BLI_split_dirfile(filename, dir, NULL, sizeof(dir), 0); BLI_join_dirfile(full_path, sizeof(full_path), dir, filepath.c_str()); Image *ima = BKE_add_image_file(full_path); if (!ima) { diff --git a/source/blender/collada/ImageExporter.cpp b/source/blender/collada/ImageExporter.cpp index 747f3c783d7..53c43677c18 100644 --- a/source/blender/collada/ImageExporter.cpp +++ b/source/blender/collada/ImageExporter.cpp @@ -97,7 +97,7 @@ void ImagesExporter::operator()(Material *ma, Object *ob) char src[FILE_MAX]; char dir[FILE_MAX]; - BLI_split_dirfile(this->export_settings->filepath, dir, NULL); + BLI_split_dirfile(this->export_settings->filepath, dir, NULL, sizeof(dir), 0); BKE_rebase_path(abs, sizeof(abs), rel, sizeof(rel), G.main->name, image->name, dir); diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index b92d587839b..198862e480d 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -2452,7 +2452,7 @@ void ED_keymap_animchannels(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_enable", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_disable", WKEY, KM_PRESS, KM_ALT, 0); - /* settings - specialised hotkeys */ + /* settings - specialized hotkeys */ WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0); /* expand/collapse */ diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index eafc47dd47d..16047161a67 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -362,7 +362,8 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac) _doSubChannels=2; \ else {\ filter_mode |= ANIMFILTER_TMP_PEEK; \ - } + } \ + (void) _doSubChannels; /* ... standard sub-channel filtering can go on here now ... */ #define END_ANIMFILTER_SUBCHANNELS \ filter_mode = _filter; \ diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index d8257c524c1..1f2ef79e091 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -264,9 +264,16 @@ static void text_update_edited(bContext *C, Scene *scene, Object *obedit, int re EditFont *ef= cu->editfont; cu->curinfo = ef->textbufinfo[cu->pos?cu->pos-1:0]; - if(obedit->totcol>0) + if(obedit->totcol > 0) { obedit->actcol= ef->textbufinfo[cu->pos?cu->pos-1:0].mat_nr; + /* since this array is calloc'd, it can be 0 even though we try ensure + * (mat_nr > 0) almost everywhere */ + if (obedit->actcol < 1) { + obedit->actcol= 1; + } + } + if(mode == FO_EDIT) update_string(cu); @@ -1700,10 +1707,7 @@ static int open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) } path = (font && strcmp(font->name, FO_BUILTIN_NAME) != 0)? font->name: U.fontdir; - - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - + if(RNA_property_is_set(op->ptr, "filepath")) return open_exec(C, op); diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c index a3343496be7..d6540630276 100644 --- a/source/blender/editors/datafiles/splash.png.c +++ b/source/blender/editors/datafiles/splash.png.c @@ -1,6405 +1,4857 @@ /* DataToC output of file <splash_png> */ -int datatoc_splash_png_size= 204738; +int datatoc_splash_png_size= 155257; char datatoc_splash_png[]= { -137, 80, - 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 1,245, 0, 0, 1, 26, 8, 6, 0, 0, 0, 8, 90,206, 70, 0, - 0, 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218, -157, 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, - 16, 74,136, 33,161,217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33, -162,142,131,163,136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, - 72, 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, - 1, 0,248,126, 60, 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1, -128,132, 1,192,116,145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, - 99, 98,227, 0, 80, 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, - 68, 0,104, 59, 0,172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0, -192,206, 16, 11,178, 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60, -241, 43,174, 16,231, 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, - 54, 97, 2, 97,154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174, -206,206, 54,142,182, 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, - 26,128, 59, 6,128,109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, - 60, 60, 69,161,144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252, -247,245,224,190,226, 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11, -255,252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255, -100,226,223, 44,251, 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0, -242,187,111,193,212, 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, - 46, 84,202,179, 63,199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, - 66, 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104, -134,147,112, 14, 46,194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98, -138, 88, 35,142, 8, 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, - 72, 29,242, 61,114, 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185, -168, 55, 26,132, 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, - 67,199, 48,192,232, 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, - 3,187,137,245, 99,207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, - 36, 52, 17,218, 9, 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, - 18,143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, - 44,169,155, 52, 72, 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, - 91, 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168, -161, 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, - 23,104,247,105,175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199, -136,103, 40, 25,155, 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, - 85, 88, 42,182, 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143, -169, 94, 83,125,174, 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, - 84, 63,164,126, 89,253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13, -171,134,117,129, 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243, -148,102, 63, 7,227,152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, - 92,107,170,150,151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, - 92, 39, 71,103,143,206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191, -110,167,238,152,158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, - 12, 36, 6,219, 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145, -185,209, 60,163,213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, - 82, 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, - 96, 90,120, 90, 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173, -157,173, 37,214,187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219, -174,182,109,182,125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, - 29,126,115,180,114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, - 41,196,105,157, 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, - 74,116,245,113, 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, - 51,115,208,195,200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87, -173,215,176,183,165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183, -203, 79,195,111,158, 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248, -122,124, 33,191,142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144, -173, 33,247,231,152,206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142, -112,136, 88, 26,209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, - 46,106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252, -237,243,135,226,157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, - 78, 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, - 30, 78,242, 72, 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, - 22,154,118, 32,109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178, -254,197,110,139,183, 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87, -102,191,205,137,202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, - 87, 45, 29, 88,230,189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171, -237, 87,151,174,126,189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, - 88, 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153, -220,148,180,169,171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, - 86,180,237,245,246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84, -244, 84,250, 84, 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, - 1, 85, 77,213,102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, - 7, 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141, -156,198,226, 35,112, 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66, -154,242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, - 84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111, -239,186, 16,116,225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234, -116,234, 60,254,147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189, -121,241, 22,255,214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238, -173,188, 79,188, 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6, -133,131,207,254,145,245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207, -100,207, 38,158, 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253, -234,192,235, 25,175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, - 32,127, 40,255,104,249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, - 71, 68, 0,255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, - 24, 0, 0, 0, 7,116, 73, 77, 69, 7,219, 8, 10, 15, 54, 11,254,114,226, 41, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189, -121,212,101,103, 89, 39,250,123,167, 61,156,225, 27,106, 72, 85, 66, 37, 49,149,129,132,132, 41, 21, 6, 1, 21, 72, 33,160,226, -132,137, 99, 59,155,216,186,188,182,182,146, 92,180, 23,246,242, 98, 19,187,111,115,219,123,181, 37, 42, 44,245,218, 10, 81,161, -165,175,136, 41, 71,104, 90, 66, 42, 4,130, 16, 8,169, 36, 36, 33, 73,205,223,116,134,189,223,225,254,241, 60,239,217,251,156, -250,230,250,190,202,224,254,173,117,214, 55,156,115,246,222,239,244,204, 3,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, - 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104, -208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26,156, 19,168,115,124, 63,193,175, 12,192,126, 33,176, 27, 64, 15, - 64,201,255,111,208,160, 65,131, 6, 13, 26, 60, 11, 32, 0, 72, 33,112,217,187,127,234,250, 63,121,248,247,127,226,232,163,127, -116,211,137,223,249, 55,111,250,239,137, 18, 7,106,159,105,208,160, 65,131, 6, 13, 26, 60,195, 53,117, 1, 32,121,199, 15,191, -242,157,183,126,215, 53, 63, 56, 83, 12,218, 83,211,173,252,218, 87, 92,250,252,111, 63,112,201,193,187, 62,255,208,147, 79,156, - 26,126, 9, 64,104,152,123,131, 6, 13, 26, 52,104,240,204,102,234, 18, 64,235,205,215,180,223,250,154,221,226,154,226,232, 81, -216,147, 39,224,251, 22, 23, 92,113,225,236, 13,215, 95,243,150,163,167,230,212,189, 15, 28,255, 12,128,126,195,216, 27, 52,104, -208,160, 65,131,103,182,166,158,254,237,125, 39,158,188,234,130,244, 69, 47,186,108,247, 94,148, 30,126,225, 20,252, 98, 15,157, -243,118,234,111,189,254,197,223, 48,147, 39,151,127,244,174, 35,159, 6,112,162, 97,236, 13, 26, 52,104,208,160,193, 51,147,169, - 3,128, 8,192,194,159,126,234,216,189, 78, 23, 59,191,254,170,189, 87, 24,101,224,122,139,240,167, 79, 3, 89, 27,175,122,245, - 85, 87, 29,188,106,223,107,255,254,222, 47, 63,124,122,169, 60,210, 44, 81,131, 6, 13, 26, 52,104,176,126,237,249, 92,223, 47, - 3, 48, 13, 96,223, 91,175,155,254,161,223,254, 87,215,253,248,174, 86,146, 21, 75, 67, 64, 25,136,125, 23,195,236,219,135,167, -158, 56, 49,255,243,191,241,145,255,240,223, 14,125,233,183, 0, 44,240,247,195, 51,121, 50, 67, 8, 7, 0,204,242,159, 71,132, - 16,207,105,161,228, 95,218,120, 27, 52,104,208,160, 97,234,203, 67, 2,152, 2,176,231,146, 89,245,173,255,227,103, 95,246,243, - 87, 93, 48,179,183,236,149, 0, 60,176,247, 34, 36, 23, 93, 12, 27, 60,222,249,190,255,249, 7,191,242,187,127,247,203, 0, 30, -229,231, 61,107,198, 30, 66,216, 15, 96,255, 58, 63,126, 74, 8,113,120,157,215,189, 19,192, 65,254,243, 86, 33,196,109,207,113, -166,254,156, 24, 47, 11, 39, 7, 89, 64, 57, 80,123,235, 48,128, 35, 0,238, 16, 66,156,218,130,251, 76, 94, 31, 91,189, 7, 27, - 52,104,240, 47, 27,250, 44,152,178, 7,208, 61,127,202,188,240,162, 89,179,211, 5, 41,198, 36, 5, 1, 72, 41,132,143,255, 17, -244, 37,168,209,187, 26, 64,171, 95,248,254,191,253,240, 67,127,245,127,190,245,234,111,191,114,239,212,140, 45, 3,112,234, 56, -202,118, 27,106,199,121,120,199,205,223,240,131, 47,223,127,193,243,127,240, 93,119,252,226,241,249,226,227, 91,196,216,111, 0, -240,174, 13, 16, 99, 0,184, 3,192, 33, 33,196,237,205,182,121,206, 88, 25,110,224,215, 74, 2, 94, 20, 88,222, 19, 66,184,157, - 5,151,179, 97,238, 7, 0,220,185,137,239, 29, 2,240,134,102,213, 26, 52,104,176, 29, 76, 93, 0, 16,221, 84, 30,248,175, 63, -248,146, 95,251,150, 23, 93,248,218, 86, 75, 39, 65, 40, 64, 8, 64, 10, 64,242,239, 90,209,223, 74,142,222, 19, 74,211,255,132, - 0,132, 4,164, 68, 0,130, 11,194,123,173, 33, 71,255, 23,240,174, 68,232, 11,188,249,141, 87,190,226,240,243,127,242,207,126, -242,215,255,252, 29, 31,249,228, 99,239, 3, 48,196,185, 55,197,223, 0,224,134, 16,194, 13, 0,110,220, 10,205,173,193,211,138, -187, 55,248,249,155, 0, 28, 12, 33,220,216,104,205, 13, 26, 52,120,174,105,234,187,127,239, 71,175,125,247, 13,175,218,255,117, -182,231, 0, 47, 32, 36, 23,139, 11, 18, 8,130,148,121,207,172, 55,176,134,238, 1,120, 15, 40, 5, 33, 88,117, 15, 0,132, 16, - 82, 10,133, 16, 70, 90, 61,177,236,128, 0, 1,219, 43,113,209, 69,187,118,255,233,127,252,161,255,231,127,255,173, 67,151,255, -198,159,124,242, 63, 0, 56,182, 69, 90,123,212,132,176,134,182, 86,255,251,206, 16,194, 27, 26,198,254,156,193, 97,144, 37,230, -176, 16,226, 16,107,242,179,188,214, 55,213,246,192,126, 0, 31, 8, 33, 92,183, 69,107,127, 59,200,188,191, 22,154,125,214,160, - 65,131,237,211,212, 83, 35,246,191,254,202,243, 94,134,165, 18,174, 63, 0,188, 39, 38, 29, 45,235,177, 24,108,252, 27, 1, 80, - 18, 98,215, 30,210,210,125, 0,164, 7, 60, 91,241,133,228, 75, 7, 64, 6,192, 59,210,246,157, 27,197,231,219,161, 69,203, 24, -249, 95,126,241, 91,126,238,101,151, 95,248,194, 31,127,215,159,191,109, 88,250,123,183,130,177, 11, 33, 86, 53,109,178,118,254, - 46, 84,102,218, 3, 76,236,111,107,182,208,179, 26,183, 3,184,125, 57,205,155,153,246, 29, 0,238, 8, 33,188,135,215, 59, 50, -246,173, 90,251, 59,162, 16,209,160, 65,131, 6, 91, 1,185,137,239,168, 97, 25, 78,252,197,125,143,126, 18,114,128, 52, 41,145, -182,128, 36, 15,252,242,213,239, 89,128,145, 67,192, 21, 64,214, 33,147,187, 39,166, 29,198,216,112, 9,248, 2,240, 3, 32, 12, -249,239, 1, 16, 74, 98,240, 33, 0,193,195,186, 0, 63,116,248,129,183, 94,123,240,158,247,253,235, 15,189,240,226,217,239, 4, -177,125,185,157,147, 36,132,184, 3,228,211,172,107, 76, 55, 52,219,231, 89,141, 55, 8, 33,110, 94,143, 41, 93, 8,113,243,132, - 70,125, 75, 51,125, 13, 26, 52,120,174,104,234, 0,112,226, 71,127,247,190,119,252,213,167, 31,249,206, 43, 46,158,186, 88, 0, -210,135,224,153, 4,194, 5, 10, 45,235, 15,173,188,246,194, 93, 47,184,241,235, 95,188,223,232, 84,122,239,217,223, 14, 98,236, -195, 37, 8, 45, 32,246, 93, 3,185,227, 10,160,181, 7,194,116, 1, 87, 32, 12,143, 35,244,190,138,112,226,139,128,235, 3, 50, - 7,224,224,131,130, 95, 42,240,130,171, 47,188,232,163,191,253, 99,191,247,166,159,126,175,250,236,145,147,127,134, 42,120,111, -187, 24,251,145, 16,194, 29, 53,141,237,192, 86, 92,119,153,136,232,195, 91, 20,105, 93,143,240,223, 84,186,217, 86, 92,227, 92, -140,119,226, 57,215,117,189, 77,104,200,183,163, 10,174,156, 13, 33, 28,104,124,235, 13, 26, 52,120, 46, 48,117, 7, 96, 9,192, - 23, 62,112,120,254,221, 56, 60,159, 99,249, 34, 54, 59,127,232,245, 23,253,216,155,175,187,230,252, 68, 26,233,124, 32,211,123, -127, 8, 12,151, 0, 55, 15,249,252,215, 64, 94,245,189,144,231, 93,113, 38,209,141,191, 44, 29,131,123,242,159,224, 31,255, 71, - 8,145,146,214, 46, 4,108,191,192,249,123,119, 77,127,248, 63,255,240,111,190,234, 71,127,235,228,227, 39, 7,127,139,173,243, -177,175,132, 45,201,195,102,198,118, 19,107,251, 7,150,121,255, 8, 42,211,240,169, 21,174,241,174,218,119,239, 16, 66,220, 94, -187,238, 77,152,136,232,230,107,222,182,158,232,253, 16,194, 77,172,141,238,223,232,115,109,199,120, 87, 25,235, 45,124,221,217, -218,199,183, 43, 82,124,146,129,207, 54,228,163, 65,131, 6,207, 5,166,238, 1, 12, 0, 88, 80, 81, 24,133,154, 7,157,153,234, - 11,222,247, 83,175,248,149, 31,126,237, 21,175,245, 5, 96,157, 7,202, 33, 66,127, 17,176, 3, 64, 7,152, 55,253, 18,228,254, -235,215,190, 91,123, 55,212,165,111,129,152,121, 1,252,231,223, 11, 72, 71, 74,185, 0,108,191,192, 69,151,158,191,235,189,111, -255,238, 95,127,227, 47,252,254,119, 2,248,202, 54, 51,245, 58, 33,223,148,118, 25, 66, 56, 8,224, 3,107, 48,133,253,172, 21, -222,180, 74,180,117,204,173, 6,128, 67,156,162,245,158, 85, 44, 8,251, 65,169, 89, 7,216,156,188, 18,243,125, 15, 86,118, 45, -196,231,186, 33,132,240,134,115, 56,222,229,198,122,103,195, 88, 27, 52,104,208,224,236,153,122,100,220, 37,191,234,138,181,186, -250,121,217, 91,254,224, 39, 94,115,219,181, 87,238,185,220,246, 61,188, 43, 73, 51, 47, 45, 32, 28, 68, 2,232,111,121, 23,228, -190,151,143, 46,214, 47, 44,238,122,248, 40,254,242,115, 79,226,244, 66, 31, 70, 9, 92,249,188, 25,124,243, 11, 46,192, 37,123, -102, 0, 0,114,231,165, 16, 47,250,105,184,207,254, 6, 96, 52,201, 22, 82,194, 47, 13,240,141,215, 95,245,210, 31,252,166, 23, -254,216, 31,252,229,125,239,196, 54,165,187, 49,195,187, 97, 66, 35,220,232, 53,110, 96, 6, 55,169, 1, 30,170, 9, 9,117,109, -118, 63,170, 72,251,195,107, 8, 27, 31,168,105,214,119,212, 52,203, 3, 19,207,125, 83, 8,225,200, 10,133, 98,222,181, 12, 67, -175, 95, 43, 62,219,129,101,198,113,174,198, 59, 59,193,208, 79,213,158,111,255, 54,158,149,131,107,104,238,103,179,175,182,220, -253,210,160, 65,131,127,153, 16, 91,116,141, 0, 96,250,135, 94,187,231,231,254,243,119,127,237,219,118,116,178,188, 40, 2, 5, -200, 21, 3,102,247, 0,202, 57,168,111,248, 73,168, 23,253,171,209,151,191,244,228,105,188,253, 79,239,197,103,143, 47,160,155, - 24, 36, 70, 82, 0,124, 89, 34,241, 22,223,250,138, 75,240, 51,175,191, 26,137, 38, 11,191,255,234,189,240,247,191, 15,232,236, - 70,236,210,170,147, 4, 15,124,241,241, 39,175,248,158,223,120, 19,128,207,129, 92, 4,171, 17,210, 91, 80, 43, 62, 35,132, 16, -235, 32,188,147, 26,236, 27, 38,253,178,171, 85, 88, 99,191,239,221, 53,102,116, 4,192,205,203,249,118,151,209,110, 15, 11, 33, -174, 91,229, 94,117, 6,124,243, 36, 83,224,123,127,160,198, 60, 78, 1,184,180,254, 57, 54,185,191,103,130,105,221, 56,233, 71, - 95, 69,243,222,182,241,174, 48,214, 35,124,207, 59, 38,215,106, 59,152, 98, 8,225, 65,140,251,237,175,219,164,149,230,206, 9, -107,207,114,214,134, 35,188,150,183, 55,165,119, 27, 52,104,112, 46, 52,245, 73,134,126,201,175,126,207, 21,191,122,235,155,174, -249,126,233, 53,138, 97, 73, 12,221,218,202, 56, 31, 60,176,251, 82,168,231,127,251,232,203, 79,206, 45,225, 7,126,231, 19,120, -112, 96, 49,211,202,209,215, 10,137, 81,200,149,128,201, 18, 8,103,241,254,255,117, 4, 74, 74,252,155,131,215,144,198,190,247, - 69,240,143,236, 1,220, 18,160, 51, 64, 0,190, 40,112,201,165,187,247,190,229, 53,151,188,241,195, 31,127,232, 11,168, 50,228, -215, 75,108,111, 89, 67, 67,155,100, 40, 55,111, 34,208,234, 61, 19,218,229,138,185,206, 66,136, 67,108,222,142, 26,233,129, 16, -194, 77,107,248,195, 15, 9, 33,110, 92,225,122, 71, 66, 8,183,214, 24, 74,204,193,174, 51,196, 91, 38,152,202,178,121,248,181, -103,187,251,105, 28,239,145,149,174,183, 77, 12,125, 50,190, 96,171,170, 10,174,228, 62,216,207,235,113, 75, 8,225, 57, 95,110, -184, 65,131, 6,207, 12,166, 46, 0,136, 61, 93,117,253, 31,223,244,178,255,244,186,151, 92,240, 98, 59, 0,172, 40, 1, 63,164, -126,108,137, 24,125, 50,148,125,168, 43, 94, 3,164,221,209, 5,254,253,127,255, 28, 62,245,196,105,160,219,197,201, 69, 11, 72, - 7, 41,128,174, 18,184,184,173,113, 65,174,177,107,186,131, 15,254,175, 7,241,218,203,207,195, 75, 46, 62, 15,144, 18,242,194, -215,194,127,254,247,129, 93, 23, 1,193,195, 11, 1,157,165,184,241,245, 47, 59,248,225,143, 63,244, 94, 0, 39,177, 49, 19,252, -122, 75,198,222,142, 77,228, 22,215,106,139,215,181,218, 85,153,143, 16,226, 48,151, 38,189,165, 38, 92,172,198, 76,110, 94,227, -122,135, 66, 8,135, 49,110,234,142,207, 55, 89, 42,245,182,213,158,175,246,108, 55, 61, 77,227,189,237, 92,153,168,121, 44,245, -253,113,120,139, 74, 5,199,186,242,117, 51,126,189, 6,253,104,111,134, 16,246,175, 20, 7,209,160, 65,131, 6,117,108, 38,191, - 59, 6,197,117,222,122, 96,250,231,239,249,119,175,253,211,215, 93,189,247,197, 69,207,193,195, 17, 67,151,160, 10,114, 74, 0, - 90, 80, 5, 57, 45, 33,119, 95, 51,186,200,209,185, 30,254,224,211, 95, 1,178, 22,165,185, 41, 9, 40, 5, 15,137,185,129,195, -103,143,246,112,247,209, 30,138, 32, 96,149,194,223,124,241,104,245, 0,221,139, 40,232, 14,150,159, 38, 0,214,227,202, 11,103, - 46, 5,112, 62,182,175, 81,205, 13,172, 69,110, 52, 64,171,206,224, 78,109,128, 41, 28,154,184,247,138, 12, 98,157,102,218,195, - 43, 60,211,193, 9, 6,187,158,231,187,227,105, 26,239,145,115, 85,127,159, 93, 8,147,230,242,179, 97,174,167, 0,220, 10,114, -125, 92, 39,132,184, 81, 8,113, 91,237,117,163, 16, 98, 7,127,166, 46,180,220,196,130, 87,131, 6, 13, 26,108,169,166, 30,205, -237, 23,188,237,219,246,253,202, 59,191,249,133, 63,161,188, 70, 81, 56, 64,121, 50,177, 7, 64,120,129,160, 4, 32, 37, 87,139, -243,128,206, 32,218, 23,140, 46,244,212, 66, 31,189, 65, 9,180,179, 74, 78,136,186,181,164,250,177,199, 23, 75,220, 85, 88, 92, - 61,165,177, 48,176,213, 67,100,211, 0, 20, 48,236, 65,228, 93, 4, 4,192,149,184, 96,111,231,188, 52,145,123,135,133,255,194, - 6,199,117,235, 42,239,237,103, 38,181,159, 53,168, 81,244,247, 6,180,197,131, 43, 48, 86,172, 67,187, 30,211, 26, 87, 8, 32, - 91,175,229,224,200, 42, 99,220,208,181, 38,159,237, 28,142,247,156,228,134,179,224, 54, 25, 59,112,235,217,228,166,243,119,215, - 83,236,230,182, 16,194, 33,140,187, 56,222,181,134, 32,213,160, 65,131, 6, 27, 98,234, 2, 0,166, 51,249,170,247,253,200, 85, -191,254, 29,215, 94,244,106, 59, 4,202,196,145,102,238, 2, 80, 4,232, 84,160,239,188, 55, 16, 18, 90,142, 50,216, 5, 0,132, - 42,126,109, 54, 79, 32,141,129, 15,160, 90,241, 33,140,234,189, 35, 0,240,212, 8,102,161, 95,226,222, 65, 31,111, 49,245, 84, -120, 15,132, 2,176, 67, 64, 76, 65, 8,170, 82,215,105,235,214,158,169,108,246, 43,199,123, 27,178, 64,172,199,103,201,126,213, - 91, 80,181,231,188, 19,192,122,131,165,234,209,205,251, 57,240,107, 51,152, 93, 69, 3, 60, 27,108,138, 9,243,103, 15,156,227, -241,110, 59, 83,103,134,126,231,196, 56,110, 62,151, 29,250,216, 29,113, 43, 42,211,255,254, 16,194, 13,147,129,129, 13, 26, 52, -104,176, 81,166, 30, 77,217,230,107, 47,206,190,239,143,126,236,218,219, 46,217, 51,125, 94, 49, 12, 64,166,136,161,151, 30,178, - 8,208, 45,137,119,255,221, 3,159,185,100, 42,155,249,246, 3, 23, 94, 92, 4, 80,163, 23,161,128,114, 17, 97,225, 97,136,157, -151, 2, 0,158,183,163,139,111,187,108, 15, 62,120,255, 49, 64,107,192, 10,170,251, 30, 27,192,128, 25,187, 16, 24,204, 45,225, -202, 61, 83, 21,209,237,157, 2, 6,243, 64, 49,205, 31,246, 8, 85,104,156,196, 54,152,223, 89,123, 66,141,200,174, 39,120,109, - 57,230,180,145, 94,238, 79, 7, 78,109,193,103,159, 77,227, 93, 15, 67,191,245,105,106,185, 91,175, 98,135,103,211, 60, 54,104, -208,224,153,201,212,163,185,253,188,159, 62,184,231, 23,223,249, 77, 87,255,111,211,121,154, 20, 30, 64,155, 53,231,194,195,120, -160, 76,129, 95,250,255, 62,247,225, 95,251,243,175,124,240,195, 63,253,194,183,129, 10,191,145, 95, 93, 0,208, 18,225,196,103, -129,175,185,158,153, 36,240,246,111,189, 10, 31,188,255, 9, 96, 80, 2, 73, 82,241, 98,199,119, 13, 30, 88, 90,194, 27,175,216, -135,111,126,225,190,138,240,206,127, 25, 33, 12, 33, 92, 57,210,236,133, 8, 88, 92, 28,246,143,206, 15, 22,182, 81,123,186,141, -171,155, 69,220,128,141, 71, 66, 31,193,230, 43,211, 61, 27,243,151,159,109,227,157,100,232,183, 63, 93,209,231, 66,136, 83, 19, -193,141, 7,209, 52, 17,106,208,160,193, 38,153,186, 0, 32,148,196, 21,191,243, 67, 87,252,151, 31,121,229,165,111,116, 37, 80, -104, 1,164, 10,240, 30,161,239,145,106,224,216,160, 24,252,204,127,187,231,119,223,255,201, 83,127, 4,192, 63,188, 48,124, 10, - 34, 92, 25, 2, 32, 34, 83,207,187,240,143,124, 2,234,202, 31, 0,218,187, 1, 0,215,125,205,110,124,232,230, 87,227, 7,222, -123, 23, 22,231, 7, 64,150,145, 63, 61, 4,160, 44,129,126, 15,111,186,124, 47,126,255,167, 94,141, 52,154,223, 93, 1,255,192, -159, 65,164, 25, 32,200,143, 31,188, 3,164,196, 99, 79,204, 31, 27, 20,254, 24,182, 47, 80, 14, 32,159,243,193, 26,145,221,176, -246,245, 47, 44, 69,233, 89, 51, 94,238,198, 54,201,208,159,238,168,243,166, 16, 77,131, 6, 13,214, 13,185, 6, 83, 63,239,189, - 63,242,252,223,252,145, 87, 93,250,198,162, 4, 92, 91, 3,185,161, 44,240, 37,143, 52,147,184,239,241,185,167, 94,247,174,143, -191,227,253,159, 60,245, 95, 1, 60, 12,224,241, 47, 29, 91,248, 34,164, 0, 28,247, 87, 81, 2,208,100,130,183,247,253,246,216, - 77,190,237,197,251,240,207,255,238, 13,248,213,183, 92,131, 23,205,166,200, 66,137, 41,233,240, 29,151,237,194,251,255,245,215, -225, 67,191,248, 58,156, 55,157,143, 62,239,191,252,231, 8,167, 30, 6, 76, 78,109,219, 17, 0,235, 0, 41,240,197, 71, 79, 63, - 2,234,179,238,159, 97,243,188, 82,212,249,179,253,249, 14, 62, 75,199,187, 18, 67,191,233, 25,198,208, 27, 52,104,208, 96,203, - 52,117, 92,181, 39,121,237, 91,175,126,222,245,182,239,129,174, 6, 18, 9, 20, 30,114, 96,161, 59, 18, 31,189,247,201,251,191, -247, 61,159,254,143,167,122,254, 99, 0, 78,128, 26,189,100,127,245,169, 19,119,157,126, 83,241,163,221,118,162,189,103, 59,188, - 0,208,106, 35,124,229, 31,225,103,254, 8,242,202,239, 31,221,231,162, 93, 93,252,242,183,188, 0,183,188,249, 74,156, 94, 28, - 66,107,137,217,118,122,198,243,248,199, 63, 1,247,207,127, 8,228,109,146, 58,164, 66,240, 30,194, 57,184,193, 0, 31,252,135, -123,254, 39,168, 30,253,118, 50,245,205,248, 53,199, 76,168,219, 85,245,236, 44,112,164,246,124,235,234, 62,199,249,219,207,214, -241, 62,155, 24,250,102,131, 24, 27, 52,104,208,104,234,227, 12,255, 5,251,242,203,219,169,129,247,160,232,246, 94, 9, 93, 88, - 32, 5,110,187,243, 11,135,222,244,238,195,255,246, 84,207,255, 13,128,167, 0,204, 1, 40, 0,148, 15, 28, 47,238,250,232,253, - 79,220,171, 52, 16, 56, 21, 77, 72, 50,197,139,246, 52,252, 63,255, 33,220,189,255, 23, 80,140,187,191,141,146,216, 61,157,159, -201,208, 93, 1,255,192, 29,240,119,189, 19, 34,205, 32,148, 34,127,189, 73,129,178,132,146,192, 23,191,120,244,201, 15,126,252, -145, 67,160,218,239,219,194,212, 39, 90,124,110,132,200, 78,166,137,221,244, 12,219, 7,245,231,155,229,114,166,155,213,210,159, - 13,227,125, 86, 48,116, 46,221, 59, 41,124, 53,104,208,160,193,166,152,186,250,196, 3,139, 95, 58, 81,148, 54,105, 75, 36,165, - 71,162,128,129, 10,225,103,239,184,231,143,111,253,127,143,252, 10,128,207, 0, 56,206, 26,122, 12,111, 43, 1, 60,245,159, 62, -252,224, 29,253,210, 67,149, 22, 40, 61,105,235,177, 40, 77,187,139,240,208, 71, 97,255,238,103,224, 31,251, 24,208, 95, 65,137, - 27, 46, 32, 60,117, 47,236,199,126, 1,254,190,219,129, 44, 7,148, 38, 95,186, 0, 32, 52,196,176, 4, 84,192,187,222,255,241, - 15, 2,248, 50,223,127,203,153,122, 45,111,185,142,117,165, 23,113, 26, 82,157, 32,223,178,134,166,123,174,113, 7,198,125,183, -183,172, 99, 46,110,121, 22,143,119, 37,134,126, 24,171,215, 44, 88, 83,232, 11, 33,220, 82,123, 29,156,152,179,141,238,183,122, - 80,230, 41, 52,121,234, 13, 26, 52, 88, 3,171,154,223,159,152,119,159,250,241, 63, 60,124,219,207,190,238,242, 27,102,219,102, -250,254, 19,139,143,253,214, 95, 63,244,225,127,124, 96,241, 47, 0, 60, 1,224, 52,107,231,117, 38,234, 0,244,239,126,108,240, -145,255,251,239, 31, 60,248,182, 55, 95,249, 6,183, 80, 80,241,153, 84, 85, 33,108,173,105,192,206,195,125,234,215,224,147, 14, -176,227, 10,200,153,203, 0,149, 1,161,132,159,127, 4, 56,126, 63, 48, 56, 5,152, 4,104,239,168, 81, 60, 0, 94, 1,133,128, -106, 43,124,228,175, 31,252,252, 31,254,213,151,254, 24,100,122, 47,183, 65, 59, 63,136, 51,251,139,159,194,198, 34,223,111,198, -120,237,245, 59,185,205,232,161,117,220,255, 6,102,150,219, 18,112,198, 81,214,183,213,152,200,193, 16,194,123,150,211, 88,107, - 41, 95,179,207,214,241,174,194,208,223,112,150,110,130,253, 19,140,248,214,154,213,226, 0,215, 58,184,125,173, 92,243, 90, 27, -221,250, 28,223,214,116,111,107,208,160,193,217, 48,245, 18,192,201, 15,221, 51,247,222, 15,221,115,247,157, 0,186, 32,191,249, -147, 32, 83,251, 34,127,102,178,172, 88,236,183,254,228,173,127,244,192,187, 15,156, 63,125,201,245, 47, 61,255,178, 98,110, 0, - 49,157, 1,169, 24, 85,140,131, 49, 16,198, 80, 81,154,147,247,193, 29,251,244,232,114, 66, 42,106,216,210,238, 78, 80, 60, 0, -133, 71,240, 41, 76, 98,112,228,129, 99,167,126,224,215,255,226,215, 89, 75,239, 99,141, 14,109, 43, 16,209,205,180,106,189,121, - 35, 68,150,171,165,221,140,170, 19, 90,100,116,135,152,240, 31,158, 96, 14, 81,152, 56, 80, 99, 16,219,137,219, 49,222, 6,245, - 38,214, 52,111,175, 61,219, 65,102,132,179,172,137,159,194, 10, 62,248,103,242,120,121, 92,203,185, 4, 62,176,129,173,112,199, - 38,114,215, 15,178,192,116,132,231, 96,185,218,239,147,173,114, 1, 42, 3,220,164,178, 53,104,208,224,172,152,186, 99,198,109, -153,137, 75,254,223,144, 95, 14, 43, 55, 77,177, 0, 22, 3,112,223, 13,191,117,207,255,241, 55,111,123,197, 59, 95,122,249,174, -231,149,167, 7,192, 84, 10,145,129,106,189, 71,173, 93, 40, 32,201, 87,207, 67, 11, 0,188, 7,134, 30,126,110,128,228,130,243, -240,248, 19,115,139, 55,252,242,159,221,118,114,161,252, 88, 77,200,216,110, 28,102,134,190,225,160, 37, 33,196,237,181, 2, 54, -179,117, 66,255,116,111, 4,214,214,111,100,237,122,255, 10,154,103,221, 74,113, 35,214,104,132,243, 76, 30,239, 50,216,168,123, -224,208, 89,220,107, 63,214, 31,103,112,251, 57, 16,232, 26, 52,104,240, 28,129, 92,131,141, 90,144,191,252, 20,168,243,217,105, - 0, 61,254,127, 88,227,187, 67, 0,115,167,122,254,239,191,254,215,254,233,237, 31,189,231,137,251, 77,162,161,230,134,240,167, - 45, 48,112,181,171, 8,142,144,159,120,197,154,240, 14, 64,225, 16,230, 28,112,178,143,100,199, 14,124,238,193,249, 39,223,240, -115,127,242,142,123, 30,153,255,115,126,182, 30,182, 47,234,253, 16, 19,215, 27,185, 17,199,217,212,255,190, 29, 84, 94,246,118, -172, 47, 7,249, 14,144, 41,123,219, 43,154,113, 83,152,235,214,184,215, 33, 80,219,211,195,207,246,241,158, 99, 68,127,253,122, -247,206, 29, 32,119,192,205,141,217,189, 65,131, 6,235,166,227,219,124,125, 5,160,197, 90,218,213,191,240, 29, 23,253,248,219, -223,120,213,183,206, 78, 39,218, 15, 61,156,150, 64,174, 33, 98,141,120, 89,123,156, 16, 0, 7, 4, 27,128,190,131, 44, 45,148, -145,232, 59,224, 55, 63,246,228,223,189,253,247,238,126, 79,233,195,167, 80,165,210,217,103,227, 2,176, 41,120, 82, 75, 60, 2, -234,110,118,232,105,124,174,104, 14,175,247, 68, 63,180,206,110,112,207,186,241, 62, 77,235,190, 31,103,198, 38, 28, 6,153,219, - 27, 70,222,160, 65,131,103, 28, 83,143,140, 61, 3, 48, 13, 96,239, 11,246,164,175,255,217,183,236,255,246,239, 58,112,209,203, -119,116,181, 65,144,220, 19, 93,114, 49, 25,126,176, 0,200,224, 71,202,250,226,192,251,143,124,230,241,251,126,251,208, 67, 31, -254,219, 47, 44,252, 37,128,199,216,114,208,127,182, 50,244, 6, 13, 26, 52,104,208,224,217,198,212,227,125, 18, 0,109, 0, 83, - 0,246,238,153, 82, 47,121,211,181,179, 47,127,235,139, 47,122,217,213,207,155, 58,191,157,170,118,166, 69, 34,149,146,222, 33, - 12,157, 45,122,133,239, 61,124,116,225,216, 7, 62,251,232, 61,135,238, 62,117,215, 3,199,139,195, 0, 30, 7, 48, 15,242,161, -111, 91, 78,122,131, 6, 13, 26, 52,104,208, 48,245,213,239, 37, 1,164, 32,147,124, 11, 20, 81,191, 3,192,158, 78, 42,118,182, - 19, 57,149,105,153, 20,206,219,197, 34, 44, 44, 12,252, 9, 0, 71, 65, 38,246,121,144,223,124, 9,107, 7,234, 53,104,208,160, - 65,131, 6, 13, 83, 63,135,204,221,176,246, 30, 95, 26,163,238,235, 0,107,224, 37,191, 10,102,228,182, 97,230, 13, 26, 52,104, -208,160,193, 51,135,169, 79,222, 63, 50,249,248,179,206,212, 67,237,103,195,200, 27, 52,104,208,160, 65,131,103, 48, 83, 95,237, -121, 26, 38,222,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, - 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, - 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6,219, 4,129, 61,175,217,250, 34, 47, 90, 3, 66, 2,240, 64,105, - 55,247,253, 68, 87,127, 59, 13, 40, 11, 56, 15, 40, 9,244, 6,244,153, 86, 14, 72, 9,168, 4,176, 5,127,216, 3,189, 18, 40, - 7,213,181, 52, 95,107,185,238,241,189,193,248,125, 1,186, 71,150,210, 24,116, 2, 20, 3,160, 40,169, 64,173, 50, 84,212,214, - 6, 64, 11, 42, 96, 11,126,207, 76, 92,111, 43,231, 51,201,232,153, 92, 65,227, 21, 18,232, 47, 0,222, 80,155, 90, 33,168,170, -254,206, 29, 84,131,207,228,128, 49, 72, 18, 9, 59,244,240,197,144,230,212, 91,160, 44,129, 84, 1, 75, 3,154,171, 76, 3,131, -130,202,253,216, 1, 77,148, 0,215,241,243, 52, 7,174,160,255,235, 4,232,247,233,111,239,105,254, 61,207,173,231, 53,175,255, -190,217, 61,240, 92,129,201,128, 96,129,153,157, 64,111,137,246,108,175, 15,180,218,192,226, 28,208,153, 6,138, 30,205,107,111, - 9,176,150, 94, 43,237,131, 73,212, 63,107, 52,144,231, 64,210,162, 53,141,173,140,125, 0, 22,230,105,221,215,187, 63,205, 50, -247,146,146,206, 96, 44, 17,117,182,235,218,158,198,107,191,241,117,176,222,227,227,247,223,143,235,175,123, 57,254,230, 31, 62, - 6, 60,246,200,250,232, 2, 31, 61,132,101,230, 44,158, 25, 7, 58, 27, 40, 1,169,249, 12,243,103,138,193,242,115,189,218, 60, -107, 13, 8, 77,103,221,215,104, 74, 81,123, 6,163,199,207, 5,106,159,117,126,229,245,173,237,153,214,129,203,209, 59,252, 0, -221, 71, 27, 96,215, 14, 32,215, 64,223, 2,143, 62, 85,209,183,205,210, 85,111, 0,215,167,253, 56,183, 64,255,155,234,210,222, - 20,154,126,159, 59, 69,159, 47, 65,115, 39, 4,125,103,106, 22,152, 63, 69, 99,204,114, 96,137,247,181, 45,137, 86,187, 65,228, - 46,213, 62,153,234, 2,195, 33,128,100,252,125, 41,129, 97, 1,100, 93, 32, 12,137,174,197,249,137, 52,200,110, 19,253,168,207, - 71,233,137,214,217,115, 68,171, 76, 2, 76, 79, 3, 89, 66,180,183,215, 7,122,139,244,127, 9,162,245, 58, 3,242, 4, 8,142, -190, 51,112, 21, 95,141,223,243, 30, 24, 12, 1,163,128,114, 8,244, 6, 80,232, 92,244, 43, 91,250,176,173, 12, 72, 83, 32,111, -209,164, 41,193,197, 94, 55,208, 76, 77, 74, 98,172,163,191,249,187, 82,208,228,123, 87, 93, 79, 41,250,124,176,180, 11, 74, 15, - 12,123,213,119,149, 4,181,119,229,131,165, 38,238, 85,127, 54,239,233,149, 26, 98,222, 74, 3,174, 4,116, 74, 19, 8, 0, 90, - 86,125,225, 44, 19,139, 86, 27, 48, 18,232, 15, 55, 54,206,245,194, 51, 69,208,160, 69, 85,154,132,152,164, 69, 4, 36, 53,192, -236, 20,176,107, 6,112, 2, 83,179, 83, 48,105,138, 78,150,224,130,238, 14,120,239, 48, 53,213, 69,174, 13,160, 36, 74, 1,122, - 86, 33,105,141,250, 5,207, 93,159,152, 75,176,192, 48,208,198, 42, 74,154, 56,157,144, 64, 16, 60, 80, 6, 90,131,200, 52, 4, - 63,151,102, 6, 34, 64,189,115, 3,175,153, 16,213,154, 42,201, 4,207,111,236,240,249,103, 97, 51,190, 52, 1,138, 33, 48,187, - 19,152,159, 7,218,109, 34,198,105, 14, 44,205, 19, 67,159,155,163,255,207, 47, 2,153, 33,162,178,220, 88,151, 99, 52,241,172, -196,249, 84, 9, 49,245, 60,161,207, 7,150,215,149,166,125,235, 2, 19,214,117,158, 65, 81, 59, 35, 0, 93, 79, 73,250,185,209, - 51, 61,137,172,139, 29, 47,121, 62,190,233,107, 95,133,139,247, 93,128,151, 92,122, 25,222,255,145, 59,129,175, 60,180,194, 30, -224,113, 56,193,231, 52, 16,109,241,158,247,151, 27,239,215,232, 89,184, 84,138,207,189, 4, 96,121,174, 34, 3, 14,203,143, 65, -202,229,207, 96,100, 2, 44,171,142,209, 20,207,215, 29,209, 28, 81,123, 14, 81,171,149, 25,136,158,173, 50,117, 87,188,225,149, -216, 55,179, 19, 95,125,224, 33,192, 11,192, 50,179, 49, 9,112,252, 36, 80, 22, 27,159,251, 52,161,123, 59, 79,175, 78,155,246, - 66,105,233,119, 47,233,186, 73,198,140, 98, 30, 80, 45, 26,160,183, 68, 19, 58,109, 98,220,253, 62, 48, 51, 75,243, 59, 24, 0, - 42,163, 57, 24, 20, 52,199,176,128,110,211,251,129, 5,127,107,137,150, 8, 79,239, 39, 45,154, 19,239, 42,250, 93,148,145,176, -210,251,170, 70,147,207,246, 28, 74,162,125,240,174,198, 27, 52,205,111,164,175,194,159, 27, 58,211,202,136,191, 24, 3,148,142, -133, 23, 71,124,211,243, 79,193,130,148,117,244, 25,235,129, 86, 90,209,135, 68,211,124, 13,150,104,141, 22,151, 0,153, 1, 58, -217, 98,166,110, 52, 73,110, 83, 93, 98, 52, 89,139, 78,163, 47, 55, 38,213,155,154,150,113,198,225, 18,172, 9,242, 97,142, 31, - 19,146, 25, 78, 1, 56, 55,126, 64, 19,102,196,166, 38,221, 43,150,206,108,121,230, 61, 66,124, 6, 69,247, 25, 70,173,212, 19, - 97, 84,124,128,165, 4, 82,131,233,171, 46,198,174,189,187,177,112,114,142, 62,123, 54,139,109, 50,218, 96,126, 98,190,152, 38, -193, 75, 34,208,146,159, 79, 25, 32,213, 64, 59,199,174,169, 41,116, 59, 57,164, 48, 72,117,130,221,121, 7,222, 58, 76,229, 57, - 4, 72,152,203,146, 20, 62, 4, 20,142, 55,135, 0,109,144,193,128, 54, 84, 96,105, 80, 5,210, 10, 18, 69, 19, 82, 88, 34,144, -195, 33, 63, 27,207, 63,226, 51,241,188, 26, 65,115, 36,248, 64, 11, 65,147,157,112,207, 30, 9, 18,178,228, 58,153, 66,212,140, - 20,191,140, 28, 95,223, 85,133, 0,205, 19, 23,173, 6,231,136,145,107, 69,251, 55, 8,160,219, 2,134,125, 98,220, 11,139, 36, - 0,246, 23,128, 86,151, 24,123,183, 11,204, 47,208,153, 89, 92, 32,162, 90, 22, 43, 11,186, 82, 84, 47, 8, 98,108, 82,240, 61, - 19, 58,119, 73, 77, 8, 82,154, 9,153,160,121,119,229,218,243,183, 18, 99,139,140,125, 76,216, 92, 31,212, 75,175,193,171, 95, -246, 82,156,127,233, 37,208,207,219,137,185, 2,248,142, 87,190, 12, 51, 59,102, 49,232, 15, 48, 59,211,197, 37,187,207,195,103, - 62,243,185, 51,247,126,212,108, 60, 0, 25, 42, 33, 67,177, 42, 39, 88,178,156,124, 30, 33,232,156, 71, 11,159,103,109, 76, 50, - 51, 89, 85, 75,183,227,170,120,156, 15, 85, 19,234, 77,100,232,188,215,189,171,180,244,184,255,227,125,227, 89, 17,188, 47, 86, -153,187, 19, 65,224,171, 95,250, 74, 37, 80, 35, 16,253,156,155, 7,250,131,205, 9,196, 66,208,120,179, 22, 32, 12,208, 63, 13, -136,132,158,211, 6, 32, 55, 76,163, 53,224, 11, 58,115, 66,145,130,212,105, 3,193, 0,253, 69, 64,166, 52,238, 97, 65, 22,132, -194, 3,153, 34, 70,159,104,182,208, 1,240, 3,162, 25, 70, 19,225,113,172, 93, 2, 52,126,103,129,162, 24,127, 95, 37,204,244, - 37,189, 63, 44, 42,165,101,179, 86, 33,147, 1,157, 14, 41,153,138,133, 26, 95, 83, 18, 35,255, 48,252,203,122,206,198,217,162, -228,189,165, 21,208, 50, 52,247,115,139,180, 62,145,127,132, 0, 36,105,197,144,132, 36, 75,155, 43,217,154,225, 1, 59, 4,172, - 2,130,170, 4,131, 16,160,183,216,158, 65,147, 24, 15,134, 7, 61,116,232,210,100,174,151,225, 13, 61,153,146,213, 4, 97, 49, - 41, 49,190,222, 18, 96, 23, 43, 83,165, 94,197,100, 25,255, 63, 50,179,240, 97,140,230,150,149,190,211, 31, 2,166,164, 49, 56, - 95,227, 11, 44,185, 74, 77, 7, 63, 8,132, 16,112,108,105, 0,244,203,179,159, 63, 45,232,103,185,220, 56,226,125,217, 12,158, -101,180, 49,243, 12, 59,186, 57,118,228, 45, 12,221, 16,137,202, 32,132,130, 11, 64,102, 52,156, 4,114,149, 96,105,232, 97,132, -198,206,118, 27, 30, 14,189,185, 5, 58, 88, 96,169, 48, 97,105,189,112,244, 28, 33, 84,204, 48, 75,129,165, 97, 69,192, 38,101, -174,232, 34, 1,152,241,250, 74,147, 49, 44, 17,103,220,183, 39,240, 26,219,117, 16, 36,157,215, 23, 13, 8, 9,216,231,177,242, -119,172, 29,215,108,109,237,255,219,141,200, 7,140, 38,162,215, 27, 18,227, 94, 90,168,126,182,235,140,188, 79,103,100,105, 1, -104,231,116,112, 53,239, 45,187,140,182, 88,103,182, 33, 18, 64, 79, 68,184, 45,201,173, 18,173, 37,245,253, 47, 5,237,219, 44, - 95,223, 57,156,156,195,213,204,254,107,201, 7, 47,185, 18, 95,187,111, 47,174,250,154,125,208,198, 64, 10,133,223, 93,248, 71, -180, 90,109,244,123,125,120, 15, 44, 44, 14,177,184,184, 0,180,103,128,211, 79,158,121,145,200,152, 81,147,209,156,175,230,123, - 37, 39,162,243, 36, 16,148,182,178,210,149,126,229,207,215,199, 85,223, 75, 35,147,176,174,148,131, 58, 61,113,252,249, 96, 1, -175,171,117, 26,185,168,252,184,213, 99, 53, 28,121,164,114, 97,214,233,206, 70,247,175,214,192,142, 61,192,220,177,138, 65, 58, -144,146,165, 88,200,142, 90,184,101,197, 8, 69,181,238,129,191, 19, 21, 31, 33,129, 84, 0,133, 1,100, 73,230, 96,128,172,122, -138,207,169,244, 36, 72,150, 53, 58, 16,215,173,176,149, 18, 81,176,229,161,254,126,152,120, 63, 77,170,239,109,202, 5,204,252, -103,166,195, 22,137, 41,114, 55,198,131,101,249, 30,113, 47,157,141, 66,182, 25,198, 94, 12,137,142, 11,144,176,191,180, 64,252, - 45,142,185,100, 26, 17, 93,174,174, 32, 1,107,169, 79,251,201,150, 68, 3,134, 5,241, 93,222,151, 91,167,169,107, 77,230,129, -118,206, 27, 56, 84, 62,184,192,155, 82,201,117, 74, 92,158,181, 80, 81, 17, 74,161,201, 7,209,105,209,239,118, 88, 73, 85,107, - 73,174,241, 96, 73, 65, 23, 11,108,118, 91,237,144,120, 71,207,106, 45,253, 46, 88, 43,138, 38, 35,207,215, 45, 74, 12,143,158, -130, 59,118,146,124,116,103,101,233,144, 44,233,218,149,205,155,237, 46,155, 1, 19,250,188, 80,232,116, 50,236,105,229, 8, 65, - 32,211, 6, 65, 8, 40, 8,116,187,109, 20, 69,137, 92, 75, 88,235, 96,164, 70,225, 75, 88, 31,224,124,192,208, 89,146,136,123, - 5,141,175, 28, 18,179,141, 82,171,103,198,238, 1, 12, 29, 32,108,181,150,214,146,164,169, 36, 19, 75, 95,249, 15,203,104,170, - 21,100, 85,128,228,107, 50, 69, 43,216, 60,191,218,218,141, 76,157,178,230,152,148, 36, 56, 24,189,242, 62,138,102,210, 51,172, - 28,231,128,161,167,124, 64, 61,107,145,214, 3,121, 70, 26, 87,194,254,208, 84, 1, 69, 77,115,239,228,180,111,146,148,215,193, -144,182, 82,186, 51,173, 87, 62, 48,115,246,164,237, 40, 65,231, 43, 18, 92, 35, 73,106,183,174,102, 45, 96,247, 72,159,199, 63, -236,173, 95,235,153, 20, 34, 54,193,208,209,202,112,222,197,123,112,253,181, 47,133, 84, 18, 40, 61,172,183,184,176,211,193,253, -143, 63,134,233,172, 13,231, 28,250, 75, 61,220,253,224,151,113,242,209,199,136, 67, 78,238,139,145,182, 43,170,222,142,163, 88, - 14, 63,238,243,142, 46, 9,107,137, 70,200,168,197,176,150,166, 4, 9, 79,235,177, 86, 76,154,127,101, 77,217, 40,121, 93, 74, - 95,249, 61, 71,123,149,233,159,175, 53,152,148,172,109,173, 71,211,246,172,249, 59, 55,238,110, 92,139, 6,207,204, 18,109,112, - 14,216,247, 60, 96,182, 5, 28, 63, 77,174, 29, 37,137, 49,200, 26,141,147,129,253,177,108, 5, 17,146,155, 91, 74, 87,209,197, - 0, 0, 32, 0, 73, 68, 65, 84, 91, 64,164, 76,135, 44,157, 99, 33, 88,160,103, 97, 74,176, 98,148,105, 32,176, 63,221, 59,154, -223, 44, 39, 70, 21, 93, 36,142, 77,198,113,191,134, 64, 52,192,242,121,174,191,239,253, 72, 97, 66, 89,174,233,174, 88,214, 85, - 3, 73, 99, 73,216, 21, 21, 45, 36,139,189,113, 75,144, 96,186, 20,194,185,119,241,149, 76, 67, 3,211,222,162, 36, 6, 45, 37, -173,137, 2,209,144, 52,231,253,164,200,162, 42, 68,245,188, 49,158, 42,225, 88, 51,200, 45,212,212,173, 37, 77, 53, 41,136,185, -199,255, 73,150, 6, 53, 7,119,181,176,190, 96,157,178, 32,115,162,103,102, 23,253,231, 0,153,155,149,220,216,243, 45, 43,133, -105,140,205,192,106,196,202, 90, 18, 38, 34,145,140,140,119,181,192,166,141,162, 55, 24,215, 16,150,115, 75, 56, 75,139,108, 12, -187, 9, 36,178,212,160,231, 45, 90, 82, 35,176, 58,210,110,231, 80, 2,104,165, 6, 67,235,160,181,198,192,150,104,235, 12,115, - 69, 31, 74,177, 25, 63,106,124,182,168, 44, 23,253,146,214, 48,176,198, 62, 12,204,208,253,153,166,225,146, 41,171,172,153, 42, - 13, 31,170,210,159, 25,195, 80,128, 2, 13, 97,104, 44,171,238,129, 72, 68,121,190,181, 1,116,151,168,121,137,229,131,133, 38, - 25, 58, 91, 20,105, 78,129,181,205, 3,103, 33,212,250,154,181, 31, 0, 18, 67,218, 76,198, 65, 44,194,144,116,173, 13,249,194, - 90, 6,152,103,159,122, 57,164, 57,239,245,105,223,235, 9, 70, 53, 50, 33, 79,104,161,163,128, 70, 11, 68,119,121,167, 13, 12, -248,187,169,168,108,196,253,254,198,181,158,209, 51,212,230,114,131,152,210, 64, 49, 24,192, 7,192,200, 4,195, 65, 31, 90, 73, - 28,190,235,203, 16, 65,160,103, 45,180, 82,120,224,190, 71, 72,123,145,171,156,109,137, 51, 25,108, 60,219, 90,147,127,119, 4, - 14,132,115,254, 76,237,125, 61,150,155,229,222,183,182, 90, 7, 35,171,253, 20,233, 81,253, 94,206, 87,110, 65, 37,207,124,142, -173,222,127,251,158,135, 23, 92,121, 41,250,118,128,135, 62,241, 89,224,241,199, 89,144, 40,128,192,227,205,178,106, 14,163, 11, - 82,241, 89,106,101,180, 63, 18,205,214,194, 1,187, 18, 88,115, 22,236, 62,163,224, 30,214,204, 19,118,201,241,225, 46, 11, 64, -118, 56,182, 74, 0,105, 27, 56,122,188,178, 52, 90, 0,130,125,240,138, 15,203,136, 31, 88,114, 9,196, 56, 40, 36,213, 26, 70, -235,213,228, 17, 54,186,218, 20,161,224,247,116,165, 28, 14, 88, 27, 78, 21,157, 69,233, 55, 47,160,110,194,240, 10, 68,107, 15, -206,124,118,128,207,100, 89,173,143,201,128,225,128, 20,132, 97, 65,214, 12, 45,136, 38,179,177, 18,185, 33, 75,114, 12,236, 75, - 59, 52,239,173,108, 27, 2,229, 70,129, 41,178,242, 61, 7, 79, 27,194,241,131, 75, 54,189,174, 71,244,138, 82,148,247, 85, 48, -138,102,230, 55,100,191,143, 97, 13, 92, 49, 99, 89,175,251, 84,235, 51,163,225,253, 26, 95,150,158, 36,167,250,207,237, 56,167, - 43, 73,140, 89,194, 17,145, 45, 54,141, 11,200,156,152,119,106, 20, 0,129,194, 23,232,152, 12, 50, 0,105,150, 34, 75,114,136, - 0, 72, 41, 49,180, 14, 18, 2, 65, 6, 72,225,177, 48,191, 68,146,112,105,129,254, 82,229,187, 73, 21,109, 44, 40, 58,216, 90, -179, 84, 30, 38,226, 21,216,159, 43, 88,155,143, 18,111,124, 9,144,214,168,120, 95, 68,134, 94,128,136,247,106,218,146,143, 26, - 0, 7, 57, 6, 73, 17,182,237, 22, 73,223, 74, 2,189, 30, 61, 91,183, 11,236,222,197,153, 10,110,124, 13,235,107,236,183,241, - 0, 75, 89, 89,150, 0, 10,232, 18, 28,116, 89, 14,137,145, 7,102,232,195, 33,141, 97, 56, 4, 90, 45,142, 56,102,243, 90,150, - 80, 20,108,180, 56, 24, 38,160,137,170, 2,212,140,162,117, 80, 81, 19,172,197,130,104,205, 62,182,232, 35, 68, 21, 92, 51,236, -175, 79, 67, 93,201,173,128, 13,134, 38,180, 50, 96,215, 30, 20, 74, 96, 71, 42, 49,219,157, 70,175,223,199,112, 56,196, 35, 39, -158,192, 87,189, 2,144,225,248, 98,129,199, 22, 22, 17,220, 2,176, 56,207, 22, 9,185,178,182, 94,223, 99,117, 31,169,209, 36, -240,107, 65, 86, 38,189,134,185,123,179,154,153, 16,149,229,174,100,171,100, 12, 68, 4,107,159, 49, 6,194,251,241,159,194,173, - 62,135,209, 7,190,209,224, 80,182, 40,236,190,232,124, 60,126,122, 14,229,227,199,198,227,139,226, 53, 11,214, 4, 93,180, 90, - 70,171,130,169, 4,112, 41,232, 25,139,130,246,111, 12,246,147,130,104,133,103, 6, 26,216,109,167, 2,251,231, 29,199, 33,149, - 64,154,209, 61, 74, 14,128, 83,134,232,129,209,116,246,133, 96,166,165,232, 59,153,193, 40,235, 70, 9,122, 30, 25, 5, 83, 67, -180, 57, 97, 6, 30,199,164, 65, 1,117, 41,251,255,163, 79,124,204, 69, 5, 14,238, 27,112,180,184, 59,119, 26,185,172,187, 2, -153,183,248,101, 92,133,214,210,217,215,154, 63,227,121,252,188,215,250,253,138,255, 69,225,220, 59,162, 21,146,227,159,134, 44, - 12,155,214, 22,251,212,173, 37,127,183, 97, 34, 54, 23, 72, 75, 25, 29, 6, 11, 12, 2, 75,253,122,121,173, 73,235, 74, 18,206, - 19,250,136, 97,166,141, 2,152, 31,208,134,105,165,181,168,245, 80,105, 17,253,130, 36,154,224,151,247, 75,174, 37, 89,173,246, -121,187,194,207,115, 5, 15, 34, 30,253, 62,208,109,211,191, 74, 15,159, 1,131,210, 67, 25,137,212,104, 12,220, 0,185,153,169, -132,217, 76,163,191,216, 67, 22, 3, 47,250, 22,214, 7,154,183, 1,175, 89,180, 20,104, 13,244, 44, 75,125,156, 98,177, 82,234, - 79,157, 48, 46,231, 67,140, 38, 80, 37,233,160, 75, 77,218,100,212,250,215, 66, 97, 89,171,103,159,125, 61, 69, 40,254, 34, 52, -208,237,208,181, 91, 25,153,176,173, 29,215,210, 55,169, 97,110, 92,163,173, 91,144, 60, 73, 48,145,161, 23,236,124,237, 15,129, - 60, 37,201, 59, 79, 41, 29,168,157,147,175,207,104,122, 63, 30,246,186,102, 94,122,118,207,248,113,173,189,230,213,128, 4,125, -127,116,222, 98, 90,105, 56, 55,155,181,126,118,101,130,233,107, 46,195,193, 43,246, 99,110,176,132,196,164,120,228,241, 71, 49, - 40, 29, 74,239, 48,191, 20,240,245,151, 92,134,157, 83,211, 72,211, 20,206, 14,241,240,241,199,240,201,197, 62,249, 22, 87,242, -111,174,166, 89, 41, 89, 9,142, 81,120, 92, 78,131,158, 36,170, 27,213,190, 70,230,247,154,149,106,228, 6,169, 89,139,226,255, -198,126,174,131,200,104,156,233,203, 95, 15,230, 23,240,249, 79, 28, 30, 79,233, 93,110,204,206, 87,154,178,226,179, 37, 11,182, -126,121,178, 18, 9, 73, 90, 99,244,141,215,253,225,206, 3, 34, 39,191,186, 47, 57,162,190, 95, 99,218,158,211,109, 65,138, 92, - 89,140, 91,179,226, 62,137,231,101, 56,160,207, 37, 28,135, 98,107,251, 85, 72,122, 62, 88,142, 51,146, 53,134,206, 86, 25, 27, -170,207,198,185, 23, 53,247,137,139,238, 87, 22,114,207, 5,162,101, 65,215,246,173,214,213,218,142, 89,193,106,207, 28, 5,115, -233, 1, 47,145,188,232, 82, 92,123,241,101,248,167, 79,126, 10, 56,122,146,206,115,156,191,222,128,180,244, 98, 80,155,211,114, - 27, 82,218, 60, 75,127,253, 1,105, 42, 34, 0,150,165, 88, 23,216, 68, 51, 65,100, 12,107, 36,210, 0, 45,246,129,228, 44,133, -228,156,171,151,179, 79, 40, 99,115,132,214,100,222, 20,138,222, 51, 28,138,106, 20,249, 41,140, 33,237, 78,196,136,225,154,228, -191, 90, 0,208,102,165,184,115,145,118,165, 36, 77, 91,150,179, 79,209, 67,182, 51,132, 32,209, 74, 21,180,148, 80, 80,200, 84, - 10,201,129, 34, 89,146, 99, 80,150, 48,198, 64, 72, 1, 91,150, 72,147, 20, 71,142, 31, 39,237,188,215, 35, 51,187,117,227,254, -195,232,119, 93, 77,178,141,140,187, 30,225, 43,196,184,176,229,125,165,157,196,148,184, 98,184,126,191,226, 72,152, 9, 64,193, -154,144,240, 64,191,199,254, 39,254, 92, 98,104,147,187, 1, 89,130, 38, 92,241,180,221,182,112,125, 76, 50,158, 30, 19, 5,155, -122,154, 95, 80, 85, 10,149, 49, 52,110,149, 82, 60,136, 76,232,103, 43, 35, 77, 93,165, 36,236, 56, 87, 17,128, 24,157, 27,153, -118,212,202, 3, 11,119, 8,227, 65,113,129,231,167,180,100, 73,114,172, 37, 57, 54, 65,151,229,246,237,205, 52, 33,107,140, 96, -141,238,210,139,241,154,253,251,208,233,182, 48,219,157, 69,112, 30, 15, 28, 63,137, 79,125,238, 49,156, 14, 22,179,173, 14,118, -118,102,113,222,238,243,176,115,231, 44, 90,211, 83,104, 67,195,230, 10,199,164,165, 0,194,141, 70, 34, 7, 94,107,167,136,120, - 75,201,209,242, 28,139, 16,194,230, 77,175, 87, 93,138, 87,188,250,149,120,252,203, 95, 97,203, 17,223, 43,212,180,116,137, 42, -214, 33,132,181,125,245, 43, 9,238, 82, 87,214,192,141, 98, 88,172,108,145,138,231, 91,202,202, 37, 19, 2,113, 58,231,201, 26, - 20,221,114,222,113,160, 91, 12,126, 85,100,253,136,103,200,179,175, 95, 71, 75,105, 66,239, 69, 11,192, 40,138,155,173, 68, 25, -167,202, 37,170,218,139, 49,230,202,123, 32,105,115, 44, 9, 31, 86,193,177, 10, 66, 87,227,137,181, 1, 50, 14,248, 27, 22,108, -253,144,149, 37, 46, 94, 87,240,218, 72, 89,179, 90,249,181,231,127, 43,249,160,175,107,235, 76,136,150,219,115,245,117, 25,101, - 35, 13, 1,239,144, 95,188, 23, 74,120,156,252,194,131, 85,182, 82, 60,235, 49, 35, 75, 73, 10, 34,239,245, 0, 41,183, 73,127, -169, 75, 34,214, 2,105, 12,146, 67,165,161,197,232, 68,112,128, 79, 98,104, 80, 90,147,175, 49, 58,125,234,135,177,157,210, 6, - 44,107, 3, 75,217,228, 34, 2,144, 43,192,114,238,159, 99,194,103,153, 72,150, 49, 10,118,139, 35, 28,235, 38,148,237,198,176, -224, 40,244, 69, 0, 29,192, 8,120, 59,132, 85, 2, 11, 67, 1,151, 2,169, 73, 49,176, 5,218,121, 27,153, 49,176,174,207,177, - 85, 30, 90, 8,132, 52,193,241,185,121,168, 68,193,249, 64,115, 50, 55, 87,153,122, 67, 77,197,181, 27, 12,168,170, 23, 38,169, - 23,141,152,244,101,215, 53,144,181,180,145, 40, 92,148,236, 35, 29, 44,156,185,215,230, 23,232, 85, 87,167,108, 93, 61,183,103, -191,198,209, 55, 42,216, 71, 89, 22,227,207, 30,247,150,224, 98, 51, 66, 2, 97,192, 41,101,236, 75,207, 83, 50,147,165,172,169, -171,148, 35, 94,185,232, 71, 50, 17,185, 63,233,163,143,130,157,243,227,154,123, 56, 71, 62,194,245,104,232,140, 61,179, 93,236, -236,182, 1, 72, 12,122,125, 8,157,226,138, 93, 59,240,249, 47, 62,137,249,185, 30,220,244, 78,204, 78,119,209,233,228, 40, 16, -208, 73, 18,228, 23, 93,136, 52,203,161, 80,226,190,167, 78,110, 60, 26,217, 70,127,112, 89, 17,241,122,116,181,192,250,162,207, -151, 67,223,226,177,147,199,198, 93, 58, 30,103,186,240,228, 50, 86,129,245,222, 55, 42,241,147, 62,228,205,248,114,237,106, 26, - 36, 42,223,178,146,149,191, 28,168, 50, 42,100,140,137,225,224,221,200,220,125, 44,188,227, 41, 47,186,228,232,249,122, 16,109, -116,189,196,115, 27,153,176,170, 69,195, 39,181, 40,239, 52, 97, 87,138,102,193,150,231, 75,129, 76,240,162, 46,160,179,230, 31, -179,153,172, 37, 97, 64,162,218, 47, 49,248,110, 50,142,226, 92,159, 9, 76, 88, 92,244,132,159,125, 57, 30, 98,146, 42,198,192, -104, 44,222,125, 63, 30,168,143,181,174, 4, 71, 1,101, 88, 80,102,209,182,248,212, 87,130,115,149, 47, 38, 6,183, 36,138,136, - 91,154,176, 54,158,210,207, 78, 70, 82, 93,146, 80, 68,112,167, 77,154,122,150,144, 86,158,166, 28,136, 39, 41,114,216,129, 52, -243, 68,115,254,163, 35,255, 76, 2,146,250, 18,195, 26, 61,136,241, 27, 93, 85, 71, 91,205,180,183, 94,205,219,251, 42, 29,218, -215, 14,213,182,237, 33,174,118, 17,163, 84, 11,139,144,103,108,153, 87, 72,165, 66, 98, 12,116,106, 80, 12, 75, 20,195, 1, 68, -224,200, 79, 9, 44, 46, 45, 65, 74, 9,143,128,254,226, 2, 11, 64,156,131, 30, 56, 90, 84,200,113,115,250,122, 24,250,114,154, -201, 74, 69, 84,162,105,172,158,123,189,165,146,115,221, 1,124, 22,215,141,218,120,244,151,135, 64,204, 57,203,106,126, 83,206, -179,245,158,133, 34, 22, 34,149, 34,138,166,162,166,193,133,104,178,148,211, 37, 13,229, 3,231, 45,250, 59, 73,201,135, 89,183, -126,104, 78, 1, 84,130, 52,160, 80,211,204,117,204, 44,169,105,134,246,105,170,220, 23,235, 74, 4, 54,183, 66, 98,169, 44, 48, - 61,211,197, 84,154,194,100, 41,138,126, 15,255,124,236, 73,156, 56, 49, 15,184, 18, 75, 18,184,124,199, 94,152, 36, 67,107,170, -133,150,209, 16, 70,192, 11,131, 86,218,133,106, 39,120,234,248,137,141, 51,246, 80, 99,230,113, 79,202,122,142,120, 88,249,172, -215, 35,231, 39,247,227,233, 57, 44,124,229,171,172,157,170,106, 91, 69,159,180,168, 49,143,229, 74,108,136,117,156, 13, 95,123, -150,141,158,135,250, 24, 48, 49,134,169,221, 85, 65,174,120,109,231,200, 87, 29,159, 57, 97,230, 46,153,134,198, 26, 32,138, 9, -155, 81,100, 1,203,100, 37, 80,186, 88, 72,166, 22,189, 30,239,233, 10,218,251,157, 46,237,113, 25,200,130,162,216,106,226, 60, -199,219,200, 90, 96, 28, 75, 69, 90, 18, 51, 15,181,245, 84,236,231, 87,158,252,243, 96, 33,210, 22, 85,150,192,164, 53, 36,106, -235,126,157,180,105,171, 53,117, 41, 43,139, 75,100,220, 30,203,199,138,140,206, 18, 91,187, 12, 71,236,151, 37,205, 65, 89,146, - 59, 68, 49,115,137,149, 9,227,184,173, 37, 30,155,118,206, 17, 83,143,155, 78,178,223, 67, 73, 98,206,221,156, 24,238, 84,135, - 24,181, 49, 80, 51, 83, 8, 82, 35,105,231,208,105,138, 60, 53,208,218,160,155,182,144,167, 41,188,210,104, 39, 57, 84,150,192, -123, 9,145, 39, 8, 38,173, 22, 50,230, 54, 6, 80,192,151,102, 63, 81,158,112, 0,142, 34, 98,109,125,149, 86,101,237,120,144, -156,201,200,156,148,242,225, 88,206, 12,168,107,135, 16,190,242,219, 70, 62,178, 93,140, 61, 10, 17, 14, 52, 22,235,128,225, 0, -161,221, 6,124,128,215, 64,110, 52, 92,225,144,153, 4, 74, 25, 88, 81,194, 59,135, 65,105,225,157, 71,225, 28,158, 56,117,154, -221, 36,108, 10, 86,160,181,136,135,204,121,170, 78,182,158,192,146, 72, 40, 70,102,164, 85, 76,135,145, 97,197,234,100,145,216, - 10,241,204,170, 26,167, 57, 63, 55,237, 96, 20,188, 34, 36, 9,140,165, 37, 33,211,113,174,104, 12,228,209, 76,120, 50,195, 65, -115,108, 41, 50,138,136,143,228, 50,191, 50,173,254, 14, 37,125,182,232, 85,135, 63, 30,110,128,138,126, 4, 22,226, 66, 32,226, - 56,202,215,230,128, 48,241, 52,165,228,140, 24,150,160,241, 75, 84,197, 67,164,196, 87, 37,112,225,142, 14,230, 22,231,113,124, -241, 20, 62,251,232, 81,224,216, 34, 48, 40, 81,218, 18,143,244,150,176,167,221,198,212, 84, 23,202, 72,244, 22, 29,164, 1,118, - 77,207, 32, 19, 45, 12, 18,133,147, 39, 87, 96,236,145, 1,215,199, 60,242, 77,178,107, 34,254,172, 7,214, 45, 87,177, 47, 22, -154,138,230,231,181, 82,111, 99,208, 88,168,107,237,126,252,250,171, 69,240,175,154, 74,235, 55,185, 87,107, 26, 97,140,101,137, -140,254,188, 61,180,215, 6, 75,227, 2, 64, 20,198,227, 94, 83,181,160,227,193,144,246,117, 97, 57,232,149, 43,174, 41,158, 83, -235, 72, 16,136,174,174, 24,180, 8, 84, 1,109, 49,157, 44, 97,166,109,251,204,240, 57, 61, 51,225,243,161,146, 90,234, 28, 11, - 16, 37,187,173,130,160,152,170,146,105,170, 54,236, 94, 77, 86,175, 56,183,234, 26,216,237,175, 69, 85,103,226,245,245, 89,203, -244, 31, 3,253,226,126,205,146, 42,200, 50,102, 41,197,191, 77,139,232, 73, 43,163,201,145,150,178,126,207,154,169,155,140,152, -179, 72, 43,226,183,156, 36, 47, 88, 59,207, 18, 96,166, 77,149,182, 50,174,246,147, 25,116,186, 29,228,173, 14,114, 99,176, 51, -107, 97, 42, 75,208,209, 6,157, 36,195, 76,146, 34,209, 6,221, 36,135, 16,192,174,164,141, 60, 49,112,240,152, 78,114,104,101, - 16,180,132,206, 18, 56,161, 72,147,213,236,207,148,236,103,151,236,227, 28,153,255, 85,149, 11,238,107, 26,157,166,234,108, 84, - 25,140, 75,163, 46,119,192, 71, 49, 47,190,182,112,181,107,216,237, 76, 95, 81, 76,200, 11, 10, 18,113, 14,232,247,225,124, 64, -222,201, 81, 6,139,174, 78, 33, 37,112,122,176,132, 84,165,152, 31,246,161, 4,105,232,167,250, 75,176,206,195, 45, 46,144,134, - 88,122, 46,183, 91,115,119,104,205,230,102, 93,229,247,110, 84, 81, 94, 73,171,243,126, 60, 37, 49,154,228,156,123,230, 48,116, -128,181,236,146,230, 58,106,206, 46, 70,168, 70, 77,198,208, 70,208, 44, 61,199,207, 12,122,148,122, 40,234, 46,132, 1,205,113, -209,103,237, 62,212,222,175,229, 68,143, 42, 42,178, 85, 35,136, 42, 71, 56, 75,168,138, 84, 98,232, 25,158,183, 7,152, 91,170, -245, 62,136,230,240,132,204,158,144,103,250,254,183, 67,208,204,116,205,204, 44, 1, 55, 64,120,226, 36,190,252,197, 35,120,232, - 75,143,224,241,135,143, 1, 39,231,200, 26, 81,246,129,211,115, 40,150, 22,240,144,243,152,209, 41,132, 76, 32,181, 66,158, 25, - 12,134, 5,138,210, 98, 74,165,184,127,176, 72,197, 54,234,193, 86, 53, 98, 45,164,164,151,247, 16, 35, 66, 30,234,106,116, 37, - 68, 46,199, 52, 71, 74,128,172,162,191, 29, 87,251, 90,105, 63,142,238, 17, 42, 97, 52,230,164, 79, 6,142, 46,251,253, 45,204, -154,169, 51, 12, 37, 43,237, 91,212,202,212,206,159,174, 24,122,125, 14,116, 45, 98,220,203,170,250, 94, 96,229,199, 57, 14,238, -146, 20, 35,101,244,184,245, 35,230,154,199,223,163,198, 62,138,223,224, 10,135, 78,208, 30, 44,152, 94,106, 95, 41, 63,138,149, -147, 80,144,165,214, 59, 18, 20,180,167,136,122,237,171, 2, 63,224,115,161, 76,229,215,183, 88, 61,134, 96,108, 29,248,156,217, -115, 32,252,142,197,111, 69, 43,181, 92,159, 53,205,232, 42, 54, 32, 86, 51,141,213,248,164, 98, 43, 96,168, 2,228, 98, 28, 69, -214, 1,236, 86, 4,202,237,216, 9, 76,119, 41,221, 40, 36, 36,225,141, 24, 36,251, 64, 4, 7,190,181,217,148,222,105,115, 4, -123, 11, 59,166,167,208, 54, 45,116, 76,130, 78,146, 99, 38, 75,161, 32,161,165,161, 84, 45,157,162,163, 83,104,109, 0, 8,236, -109,205,162, 95, 14,161,164,196,116,210,130,112, 64, 46, 53,118,152, 22, 44, 60,114,147,194, 9, 1,167, 98,105, 82, 84,126,161, - 36,154,149, 5, 73,122,193,115,128, 29,170, 3, 28, 43,129, 73,206,135,177, 97,101, 63,124, 93, 35,151, 53,230,190,221,146, 96, - 12,166,138,229, 6, 93, 73, 11,172, 12,250, 58, 65,158, 26,204, 23, 3,180,148,129, 86, 26,189,114, 0, 5,137, 94, 89,160,231, - 10, 44, 21, 67,244, 23, 22,105,124, 67, 75, 25, 10, 69, 96,169, 56,169, 2,208, 16,106,105, 44,203,104, 55, 70, 19, 97,208,106, -109, 77,123,100,218, 20,227,129, 43, 81,235,113,254,220, 4,176,172, 7, 89,194, 37, 43, 89,160, 41, 89, 27, 47,125,165, 45,107, - 54,123,167, 6,163,200,220,140, 45, 64,142,211,134,162,115, 83,166,156, 26, 8,210, 76,226, 26,198, 26,225, 10,227, 65,108,130, - 53,126, 17, 53,164,218, 30, 11, 92,200,135,215,235, 5,215, 93,133, 99, 71, 30, 27, 39,108, 74,146,245, 37,112,160,216,185, 48, -203,199,234,129, 34, 84, 65, 84, 49,101, 42,112,122, 31, 64,251, 52,174,243,176,128, 91, 42,241, 72,217,199, 46,157,161,213,202, -160,180,198, 82,111, 8, 95, 6,244,122, 61, 40, 25,112,162, 4,196, 96, 8,161, 0, 17, 2,164,146, 16, 33,140,106,208, 8,128, -152,122,252, 41, 37, 4,107,233,228,117, 11, 92, 90,194, 46, 47, 32,123, 89, 85,153, 68,168, 52,214,114, 29, 1,103,129,131,126, -203, 9,139,214,106,154,226, 86, 50, 21, 89,115,149,229, 25,144,228, 36,168, 7,199,251,112, 21, 55,162, 99, 87, 66, 81,210,254, - 81,156, 50, 26,216,106, 81, 63,247,169,161, 57,137,150,167, 1, 23,255,138,166,124,239,171,207,215, 83,173, 6,158,175, 63,172, -138,214, 40, 78,145, 21,204, 27,130, 37,174,237, 74,178, 76,105, 95,179,160,138, 42, 64, 46,240,254, 23, 92,156,204, 59,122,238, -213,148,129, 49,235, 33,206, 61,125,241,126, 92, 91, 95, 47,125,143,138, 69,228, 97, 81,216,178,101,149,206, 22,106,244, 42, 6, -133, 58,191, 5, 76,189,213, 33,205, 91,176,201,182,224,218,224, 58,214,234,230, 42,115,218,144,223,124,231, 12,144,166, 72, 59, - 45,156,223,238,192, 8,137,110,146, 34, 55, 41,140,148,104,233, 12,146, 37,200,110,210,230, 30, 38, 26,137,212, 80, 8, 24,122, -135,220,228, 16,193,195, 7,143,204,164,240,206,194,134,128,142, 74, 49,116, 5,164, 18,104,155, 20, 94,122, 40,149, 0,218, 32, -128, 55, 99, 96,139,193,192, 81, 64, 94, 97,163,184, 72,230,139,210,113, 78,101, 96, 45,189, 88, 99,211, 76,254,244,235,207,147, -223,138, 13, 86, 39, 30, 37,231, 63, 39, 25, 16, 2,250,174, 68,233,135, 8,222, 99,161, 28, 32,192, 97, 97, 80, 96, 97, 56, 36, - 63,186,141, 1,140, 49,135, 54,208,239, 41, 91, 86, 60, 7,124,197,138,122,117,233,243,140,226, 63,107,152,127, 71,121,186, 98, -156,153,215,115,143,183, 58, 66,125,179,126,116, 37, 40,146, 52,145, 92,222, 54,106,238,204,128, 99, 99,161,161,163,130, 50,129, -173, 28, 14,180,151, 2,184,172,227,160,202,227,183,150, 53,255, 58,225,231,235, 21, 19,190,255,232,195,143,213,184,130, 39, 95, -162,136,101,132,121,203, 42,224,216,163, 79,156,217,224, 67,178,214, 21, 3,136,206, 69,151,188,229, 42,160,197,255,201, 9, 70, - 24,159,209,147, 0,228,150, 22,241, 21,111,209,129, 66,162, 83,244,150,122, 8,176, 56, 49,127, 18, 11,189, 1, 78, 91,143,144, -119, 32,134, 22,162, 28, 64, 72, 49,122, 73, 41,136,105,243,245, 4,107,239,145,161,143,121, 9,150,211,210,163, 63, 57,174,111, -244,191, 23,182, 86, 55,127, 45,183,211, 42, 12,215,218,202, 29,229,183,161, 97, 72,156,211, 68, 83,161,151, 86, 74,123, 68,112, -115,160,181, 50, 30,132, 32, 51,174,240, 84,239,161,197, 85,228,138,126,213, 56,100,224, 88,177, 97, 11,100,108,210, 18,215,208, -232,138,201,196, 98, 64,162, 86,237, 80,123,162,255, 49,122,219,250,170, 96, 82,180, 10, 38,130,178,164, 60,151,243, 45, 81, 53, - 3, 27,197,165,112,238,186,103,179,189,183, 85,214,206,102,172,135,171,197, 80,172,228,234, 25,197, 46, 76, 92, 51, 77,206,204, -178,218,140, 91, 37,242, 77, 37,198,104,170,186,230, 50,132,175, 30,165,251, 68,183, 72, 93, 80, 21,213,222, 61,123,166,238,184, - 48,134, 11,192,226, 0, 40,123, 76,192,121,161,179,188, 98,230,211, 93, 36, 89,134,243,167,103,177, 43,109, 33, 55, 9,180, 86, -200, 84,130, 76, 39,200,149,193, 16, 14, 45,147,195, 57, 7, 37, 37, 82,147,142, 36,146,118,154, 51,251, 8,208, 82,195, 8,129, -194,123,164, 73, 11, 1, 30, 66, 0,221,172, 5, 3, 9, 31, 60,140,144, 16, 74, 82,133, 72,163, 16, 98, 1, 4, 1,210,118,162, -143, 29,156,214,225, 37,117,123, 26, 22, 85,112,223,118,164, 1,181, 58,188,112,114,107,180,168, 72, 44, 4, 53, 74, 40, 3,241, -155, 97,240, 40,217,135,238,124,192,124, 49, 68,111,200, 18,118,212,246, 69,189, 46, 53,167,229, 32, 22,248,240, 92, 40,168, 86, -132,166,206,156, 39,137,195, 90,218,186,247, 85,249,210,200,216,227,117, 66,216,222,226, 48,235,133, 98,181, 32, 30, 28,149,208, -254, 94,236, 85,154, 89,146, 0, 94, 81,230,133,141, 37,141,107, 62,111, 88, 98,228,154,171, 98, 5,174, 2, 56, 28,156, 73,105, - 98, 77,246,186,144, 87,111, 0,130, 48,206, 36,141, 38, 51,102, 76,211, 42,202, 51,153, 69, 36,158,177,248,207,118,105, 39,102, - 29, 68,113,181,244,209,200,140,188,128,155, 63,141,135, 79, 44, 32,203,128,133,197, 37,244,251, 67, 44,245,135,152, 31, 20,104, -167, 9,140, 78,208, 23, 30,194,164, 16,101, 9, 17, 28,100,212,210,163,214, 30, 25, 59,207,199,228,207,101, 53, 34,163,137,118, -197,174,111,229, 68, 7,184,201, 0,186,141, 88,147,234, 41,153,103, 35,100,118, 90, 20,131,180,146,175, 95,114, 90, 87,154,178, - 73,157,211,135,203,114,109,250,194,130, 21,188, 7,242, 54, 51,116, 71,110,167, 97,193,193, 87, 28,180, 21, 75,125,219, 48, 94, -122, 57,106,233,178,150, 66, 44,216, 5, 36,185,225, 72, 52,179, 59, 69, 76, 94,161, 54,207,150,127,175,237,219, 24,241, 46, 80, - 5,154,122, 27,205, 50,164,148, 72,177,185,122,237, 41, 23,202, 81, 92,222, 54,210,192,216,140,201, 57,242, 83,151,182,150,165, -101, 43,154, 45, 5,119, 62,228,207,154,140,221,161,220, 88,101, 61,129,191,186,102,233,140,116, 83,131, 43,234, 49, 93,212, 28, - 55, 48, 44, 16,142,159,102, 75,160, 27, 55,201,199, 40,248, 88, 94,118, 88,108, 5, 83, 47,128,165, 30,181,126, 43, 57, 16, 66, - 37, 64, 59,161,158,222,173, 20,216, 57,133,206,244, 52,178, 44, 69, 87,167,232, 38, 41, 50,147, 67, 74,137, 41,221,130,148, 52, - 48, 41, 53, 49,226,224,145, 39, 45,100, 90,163,180, 14,173, 52,135,117,142,138, 68, 41, 67,210, 57, 4,148, 74, 32, 1, 20,174, - 64,162, 12, 32, 4,202,162, 68,146, 24,216, 96, 73, 40, 80, 10, 66, 8,100, 38, 65, 97, 29,164, 54,100, 49, 83,181,154,191, 73, -108, 52,226, 41,101,195,219,237,145,170, 35, 33, 84,172,113,197,110,101,103,227, 75,142, 27, 81, 43,178,138, 72,238,146, 6,135, -208, 31,160,148,192,176,223,135,133, 64,185,216,227,195,200,121,233,129,115,190, 77,204,139,101,109, 57,250,200, 60,119,118, 82, -182,170, 91, 61, 74, 95,242,227,126,187, 16,198, 53,176,213, 52, 3,132, 51,125,234,246,105,102,232, 38,163,136, 94, 45,184, 63, - 49,143, 51, 88,170,171, 16, 15,174, 16,156, 2,228,136,208,116,218, 68, 76, 3,155, 40, 53,215, 71, 8,174,106, 17, 42, 66,213, - 93,108, 50,176,107, 20,224, 52, 65,253,163, 0, 84, 23,152, 2,215,118, 79, 81,105,148, 43,105, 99,117,179,104,100, 14, 59,118, - 0,123,119, 3,211, 51, 85,247,193,179,217,199,134,107,243,199,186,243, 35,226,164,199,219, 39, 43,185,114,222,118,140,174,246, - 14,232,207,225,241, 99,115,120,180, 40,112,122,176,132,133,225, 0, 18, 2,109,163,209, 74, 52, 90,173, 54, 10,163,225, 77, 10, - 57,112, 16,190,224,216, 91,214,214,173, 29,211,206,151,251,253,140,192,116, 41, 42, 55, 83,204, 57, 7, 87, 72,180,181,253, 14, - 69,116, 66,201,229,251, 50, 76,106,125,235, 9,138, 90, 15,186, 45, 96,122,138,253,213, 43,180,206,141, 66,156, 20,180, 63, 28, -168, 6,194, 96,131,173,160,133, 39,173, 60, 12,170,184,130,148,179,135, 44,170,156,116,205,241, 37,134,115,180, 36, 11,191, 8, - 85, 30,186, 98,115,146, 16, 28,220,201, 46,190,148, 45,127, 49, 63,125,180, 48, 9,251,245, 61,247,122,183, 36, 96,143,178, 76, - 38,155,247,132,205, 9,172,154,221,170,130, 99, 5,134,182, 50,113, 7,206,163, 51,178,138, 43,136, 12, 86,230, 84, 71,133,106, - 29,211,239,150,235,210, 11,206,188, 50,168,170, 74,174, 69,211,235, 53, 45, 98,159, 0,165,201,194, 18,115,239, 53, 7,160,198, -114,176,147,110,208,146,255,231,220,216, 61,183, 38,250,221,215,122,156,171, 90,161,152,110, 14,116,186,152,218,177, 3, 70,105, - 76,155, 12, 59, 59,211,200, 37,249,122, 91, 38, 67,240, 30, 82, 10, 24,109, 70,231, 43, 51, 9, 9, 67,138, 11,170, 8,133,118, -222, 98, 95,187,130,150,128,226,180, 44, 13,133,196, 80,158, 99, 34, 52,188, 36, 13, 83, 11, 5,107, 29,180, 20,200,149,129, 4, - 73,133,198, 72, 4, 37,224,164,170, 77,172,224,224,140,104,246,148,219,103,178,148,177, 30, 52,155,154,214,219,223,122,197, 13, -202,196, 94, 11,210, 30, 29,232,144, 57, 54,221,244, 11, 64,120, 4, 71,145,145,228, 30,113, 24,165,189,136, 88, 20, 72,212, 90, -165,214,162, 93, 61, 63,223, 96, 56,190, 25,133, 24, 47, 56,179, 92,170,208, 74,155,185, 94,229, 43, 6,132,156, 99, 95,215, 25, -196, 93,233, 81,221,113,161, 21,132, 52, 16,165,135, 16, 6, 66, 88, 8, 17, 42,205, 65, 9, 98,232, 50, 80,217, 94,173, 72,178, -215,146, 8, 87, 89,176,182,207, 62,118, 45, 40,247, 52, 70,171,166, 73,197,112, 71,190,182,101, 74, 20,199,212,162,184,198, 38, -250, 99,125,213, 99,123,189,140, 57, 49,192,142, 89,114, 37,120, 22,224,138,226, 76, 33, 99,221,237,112,101,229,142,240,168, 10, -229, 8, 62, 63, 74,241,121,170, 69,242,174,184, 39,106,171, 81,244,129,185, 62,134,172, 57,181,181,129, 48, 10,237,180,141, 86, -150, 33, 75, 53,160, 20,138, 36,133, 76, 50,200, 2,180, 62,206, 87,126,117, 44,159, 85,182,236,218, 71,235,199,104,206, 67,173, -136, 13,199, 61,196, 20, 54, 53,177, 54,117,193, 26,162, 10,206,141,218,221, 86,100, 36,180,187, 85,160,177, 7, 91, 66, 87,177, - 10,148, 69,197,208,215, 43, 40,143, 4, 16,126,230,204,208,152, 90,121,197,240,118,119,137,201,117, 50,170, 23,162, 12,151,107, - 6,249,240, 71, 93, 48, 61, 23, 4,227,250,238, 54,140, 12,161,180, 15,202,106,205,135,190, 10,180, 19,172,169, 59, 77,110, 43, -173,216,239,206,116, 41,250,218, 71,230,123, 57, 30, 28,186,110,211, 54, 87,183,140,238,129, 81,116,185,170,210,234, 52,199, 14, - 8, 85, 21,176,241, 69, 85,242,222,130, 54,136,137,174, 1, 22,200,125,205, 93,182,214,186,203, 90, 42,239,168,149,176,226, 46, -139,241, 25, 56,118, 39,146, 7,201,252, 85,214, 82,222,150,161,157, 91,220, 79, 61,161,138,112,121, 70, 18,222,206, 25,236,216, -185, 11, 90, 40,236, 48, 57,102, 91, 93,120, 27,144, 37, 25,180, 84, 40,202, 18, 74, 10, 24,165,169, 71,188, 81,232, 36, 41, 32, - 21, 18,165,160,133,132, 54, 25, 20,183,235, 84, 82, 66, 9, 1, 37,104,118, 5, 2,130,144,144, 66, 82, 32, 88,209, 71, 38, 21, -213, 61,113, 37, 18,109,160,160,224,225,225, 3,208, 73, 18,142, 90,150, 48, 90,192, 10,201, 5,149, 56,215,210,163, 74, 41,112, -219,164,169,199, 75,186,179,180, 6, 68,194,106,106,229, 66, 19, 85,229, 54,123,238,192,230, 75,146, 34, 11, 46,208, 19,106,218, -114,172,108, 18,205,202, 81, 50, 44,216,124,220,227,224,150,122, 3,158, 88, 33, 78,170,113, 19,252,122,243,164,147,132,210,196, -178,156,152,194,176,120, 90,131,227, 4, 0,145,101,220, 62, 90, 67,176, 95, 85, 56, 91, 49,244,216,157, 79,164, 53,225, 53, 0, -221, 89,218,239,117,179,163, 97, 77,160,224, 28, 94,112, 68,112,198,205,120, 50,110,242, 2, 63,174,169, 71,194, 48,201, 88, 71, - 57,242, 76, 0,140, 24, 39,226,235,205,241, 23,172, 93,104, 78, 39, 90, 90,170, 58,134,153,132, 52, 66, 99,214, 39,208, 74,234, - 14, 56, 98,232,145,216,185, 80, 9,197, 1, 68,136,189,172,250, 88, 47,135, 50, 84, 25, 41,129,180, 47,161, 28, 80,120,148, 62, - 96, 40, 20,118,117, 58, 48, 38, 67,170, 20, 90, 38,197, 84,158,163,147,166, 8,137, 65,217,105, 65,232, 12,162, 95, 64,216, 98, - 77,134,190,252,220, 56,154,223,192,154,102,204,251,143,217, 32, 82,140, 51,244,122, 15, 4,205,117, 10,192,213, 45, 17,131,204, -216, 10,182, 81,147,253, 36, 2,107,149,206, 81,161,162,213, 26,242,212, 3,104,215,123, 63,195,245, 63,218,204,152,103,219,244, -179,149,144, 5, 74, 2,152,206,137,225,181, 51,170,179, 96,120, 78,178,132,198,110, 12, 87,242,228,159, 35, 33,137,173,125, 35, -225, 71, 80,170, 90, 44,171,235,202,154, 98, 21, 42, 77, 57, 6,247,169,104,134, 55, 20, 29, 31, 99, 89,234,110,169,141,210,203, -152,177,162,229,120,147, 29,231,120,227,136, 42, 11, 64,129, 4,223, 68,211, 92,248, 90,187,232,224, 73,171,246,178, 42,123,173, - 88,185, 90,143,160, 29,233,104, 61,214, 34,209,148,217, 98,106, 12, 61,222, 43,128,133,140,168, 20,214,232,248,196,254,218,186, -138,114,134, 35,220,211,100, 20,233,158,182, 58, 48,208,216,145,183, 96,180, 65, 97, 75,180,116,134,224, 28,188, 22,232,102,173, - 17,141,128,118, 72,148,129, 84, 10,109, 45,225, 3, 16,156,131, 82, 18,158,219,119, 90, 87, 2, 65,193,123, 7, 3, 1, 45,104, -113,134,101,129,160, 21,218,105, 11,165,181, 16, 10, 48, 72, 96,157,131,144, 2,218, 75,100,121,130, 65, 97,145,105,137, 12, 9, -150, 44,160, 82,133,190, 18, 40,130,175,124,232,177, 59, 78,146, 97,212, 33,104,171,177, 21,215,140,103,101,212,207,185,214,153, -104,136,170,102,122,220, 64,185,226, 40, 83,214,232, 5, 72, 32,136,145,184,138,183,131, 31,208,255, 23,123, 84,219,185, 92,134, - 56, 88, 84, 4,107,100,126, 95,175,101,193,144, 5, 71, 41, 0, 45,234, 0, 55, 92,220, 82, 38, 29, 0,224,242, 43,113,224,178, - 93,184,252,130,125,216,189,235, 60,180,119,207, 32, 72,133,188,149, 64, 35, 64,166, 9,140,214,200,164, 68, 57, 28, 98,105, 88, - 98,105,105,128,165,197, 62, 6, 11,139, 56,245,212, 81, 60,240,212, 19,248,220,157,159, 64,216,181, 27,232, 45, 64,216, 62,241, -159, 36, 39,193, 53,212,246,126, 12,172, 10,220, 21,170,237,169,174,190,178, 44, 96,113,191, 99, 87,144, 9,114,136,113,211,251, -114,149,166,226,128, 98,228,123,180,110,248,154, 98, 47,215,217,173,176, 44,128,197, 57,206,135, 15,244, 28,245,106,120,102,162, -187,217,154,231, 29, 85,101,199, 72, 91, 99, 55, 69,167,153,225,115,241, 29,167, 89, 11, 91,142,209,112,127, 6, 59,113, 62,180, -133, 40, 10, 20, 58,193, 92,111, 10,121,218, 70, 42, 91, 80, 90, 32,216, 2,153, 84,216, 51,179, 3, 30, 30, 51,137,196,233,222, - 9,244,237, 28,190,112,231,221, 85, 85,221,138,252,175,188, 79,226,126,134,173, 2,231, 70,194, 11,198, 43,210,141,206, 26, 11, - 66, 18, 92,223,130,199, 27,175, 56, 4,119,210, 66,173,210,218, 38, 49, 24,208,107, 43,161, 57,234, 92,129,220,163, 57, 19,139, - 52,229, 88, 16,238,236,167, 64,153, 27,113,189,235,139,223, 54,220,191,128,203,115,219, 90,159,134, 0, 96,177,168,252,196, 75, -220,192, 37,214,116,176, 19,238, 39,139,170,154,165,176, 53, 13,152,203, 27, 27, 91,149,130, 5,187,196,236, 38,186, 13,234,218, -222,140, 5, 6, 98,230, 67, 61, 3,162,240, 85, 79,119,205,189,225,203, 33,231,134,199,231, 2,209,199,184,255, 67,109,191,104, -189, 62, 58, 63,249,118,201, 65,130,182, 22, 16, 43,226,245,121, 31, 42, 93,197, 47,196,150,228, 19,117,254, 5,246,188, 38,108, -217, 38,105, 27, 74,137,104,117,144,236,154,198,121,217, 52,242, 52,129,145, 6, 10, 64,170, 18,104, 67, 62, 23,173, 12, 82,149, - 32,225, 46,107,153, 78, 32,133,131,230, 20, 51, 37, 2,172,245,112,142, 76,233,193, 59,104, 0,169,176,112, 90, 99, 56,164, 86, -161, 54, 0,131,194,162,103, 75,148, 46,192,122,135,158, 29, 2, 66, 34, 56, 7, 27, 44,140, 50, 40, 93,229,119, 28,148, 14,198, - 8,204,245,151, 0, 33,112,188, 63,128, 91, 90, 36,255,202,176,199, 11, 91, 80, 16, 82,105,207, 77,244,240,134,205,238,168, 76, - 94,145,144, 10, 49,206,204, 5,170,195,160,147,170,185,142,228,180,189,232,211, 44,107, 41,120,131, 33, 29,190,222, 18,109,210, -222, 96,107,159,123,106,150, 2,127, 98,106,202,137,211,192,112,105,211,130, 78, 93, 43, 75, 95,242, 34,124,215, 43, 95,138, 11, - 47,223,143,217,217, 22, 10, 33, 96, 2,176, 35, 85, 88,130,132, 81, 18,137, 54,232, 21, 5, 10,206,156, 8,182, 24,149,128,245, -222, 67,115, 52,110,139, 9,252,176,180,176, 46,224,171, 71, 79,227,200,103, 63,143, 15,220,125, 31,240,224, 17, 4,149, 2, 51, - 93,210, 34,132,172,122, 31,107,110,180, 48, 55, 79,135,222,121, 46, 11, 59,172, 24,133,224, 88,138,158,173,180,121,189, 12, 17, -168, 87,223, 27, 99,228, 24, 47, 81,186,158,152,132, 52, 33, 45, 75,103,212,238,181,158,166,153,178, 86, 6, 80,179,160,114,157, -185,180,117,157,192,212, 5,142,132,153, 89,204, 26,224, 50,205, 97,125,109, 47, 71,110, 86,173, 33,166,119, 66,236,189, 4,151, -159,191, 11, 59,179,105, 76,183, 58,164, 40, 74,141,139,206,111, 99,207,238, 41, 76, 79,105,124,245,196, 0, 15,125,233,126,124, -242,225, 47,224,201,143,127,102,148, 6, 29,106, 63,235,175,149,152, 61,213,176,151, 85,190,117, 61, 7, 28, 53, 38,175,184, 7, - 69,212,146,108,237,106,209,116, 26,153, 82,120, 6,196,140,212,215, 77, 74,218, 11,221,140, 54, 81, 82,211,176,235, 13,144, 44, -184,194,153,156, 8,131,208,112,174,168,180,200,250,216, 35, 45,113,142, 44, 66,139,220,205,173,223, 39,173, 93,150,228, 51, 15, -195, 51, 53,218,122,249,211,186,144, 6,216,113, 0, 0, 32, 0, 73, 68, 65, 84, 0,139,122,202,161,223, 56, 61,142,252, 41,182, -151, 45, 49, 94, 43, 32, 90, 59, 39, 91,228,198,204,160,224,171,226,105,158,153,172,225,235,153, 90,163,169,222,160,170,123,176, -217,120, 21,147,212,138, 75,213, 27,217,248,106,190, 99,138,118, 61,245,170, 54, 39, 91,163,169, 43,174,180,165,217,236, 62,213, -193,108,154,195,104,133, 76,167, 72, 36, 7,171,169, 28,131,178,143,110,214,130,132, 68,146, 72,164, 58, 65,154, 26, 40, 37,224, -172, 68,150,164, 8,193, 98, 88, 90,104, 37,161,133, 7,134, 67, 8, 37,144, 7, 18,137,212,192,162, 3,137, 69, 0, 93, 91,194, -106,129,167,132,128,242, 1, 46,145, 8, 33, 33,215,152, 4,132, 80, 8,214, 66,139,170,213,170,225, 26,197,211,121, 27,189,178, -143,118,106,176,132, 14,156, 92, 36,237,209,198,116, 38,253,204, 99,232,192,120,125,240, 51, 76,117,156, 6, 82,128, 2,170,130, - 39, 45, 44,101,223,160,228,239,229, 92, 72,162, 12,120,213, 85,251,241,137, 47, 28,225,198, 98,138, 3, 64, 98, 57,221, 45,126, -238,193, 2,153, 53, 91, 41, 9, 16, 97,194,247, 23, 53,198,104,238, 28, 88,172, 84,200, 58, 18,255, 55,127,207, 91,240,194, 87, - 30,192,174,221, 51,152,205,115,216,178, 68,175, 40,209, 27, 20, 16, 74,194, 14, 45, 78, 23, 20,229,154, 40, 9,167, 4,148, 20, - 80, 16,112, 69, 9, 64,160, 95, 18, 3, 30,246, 11,244, 11,139,233,233, 22, 90,173, 4, 45,157,160,173, 37, 94,122,197, 62,188, -241,234,139,240,198,111,250, 58, 60,122,114, 30,159,250,135,187,240, 63, 62,254,105, 98,226,129,245, 62,205, 53,178,157, 3,220, -176, 98,110,145, 81,106, 77, 81,240,182,172, 74,108,214, 25,250,100, 46,171,101,237,177,206,192, 39,127,174, 23,121, 14,236,217, - 81, 77,220,241, 99,213,189,157, 7,230,251,216, 80,173,241,210,210,158, 26,249,194,107,227, 81, 53, 33, 81,216,241,158, 15, 27, -221, 47, 39,158, 2,116, 23,253,221,187,176,100, 75,100,101,129, 52,105, 99,255,197,187,113,209,222, 54, 46,185,160,131, 68, 43, - 92,176,219,162,149,103, 80, 42,197,135, 30, 89, 4, 30,125,112,164,173,111,168,228,187,171, 89, 20,198,122, 88,212,153, 68, 70, -204, 78,233,138,254, 97,192,140, 92,144,245, 73,213,253,109,207, 0, 26, 18, 45, 65, 74, 19,173,158,153,162,137,153,206,128,190, -165,244, 94, 33, 33,181,132,105, 27, 4,142,179,233,232, 4, 82, 8,248, 16,144, 43,141,190,243,112,240, 48, 34, 67,233, 61, 20, -103, 32,149,214,193,194,195,141, 10, 45,113, 0,167,209,196,236, 68, 78,130,228,128, 11, 58, 45,183, 31,202,149,172, 26,158,232, -217,102,173,156,245,126,230,163, 66, 87,204, 20, 85,189,236,237,132,155, 52, 90, 51, 29,187, 75, 29,215,189,119,224,186, 32, 53, -225, 79,112,151, 72, 55,209, 52,108,163,207, 27,226,254,139, 41,214,190,178, 8, 25, 0, 46, 33,255,254,232,128,177,130, 80,163, - 29,103,239, 83,215, 20,184,130,118, 14,180, 53, 48,179, 3,157, 60, 71, 91,165,232, 36, 25,100, 80, 80, 2, 48, 58,133,115, 67, -180,211, 28, 74, 8, 36, 70, 33, 75, 82,164,121,134,196,208,198,161,121,160, 96, 8, 45, 61,130, 43,161,157,131, 48, 2, 29, 87, - 32,241, 14,137,247,112,174, 4, 66,137,204,121, 4,239,224,189, 69, 22,128,129,176, 84,117, 19, 64,225, 73, 62, 79,117, 2,129, - 0, 47,128, 84, 25,248, 16,160, 37,157, 56,163, 12,156, 35,159, 94,128, 64, 33, 20,249, 57,202,146,203,126,114,202,194,114,209, -174,107, 5,157,108,119,240,215,168,186, 19,251,123, 37,119, 64, 26, 6,242,201,104, 54, 3, 26,174,170,231, 56, 31, 52,213, 64, -170, 32,131,128,145, 26, 78, 6, 60,122,124, 14,111,126,245,245, 40,243, 33,230, 78,204,211, 70,178,150, 11, 88,184,179,219, 27, -245, 84,160, 24,171, 80, 14,168,226, 90,191, 87, 5,224, 69,134,222,158,166, 42,131,105,139, 59,151,197,210,147, 45,110,208, 67, - 27, 55,189,250,133,248,190,239,126, 11,190,235,166,239,193,203, 15,188, 16,211,221, 54,180, 36,166,122,186, 95, 96,169,176,208, -165,133,245, 30,169,243,120,252,196, 60,156, 23, 80, 70, 33, 88,135, 76, 27, 88,239, 49,149, 24,204,245, 10,164, 30, 72,148, 68, -123,166, 3, 47, 4,164, 13,200,179, 4,157,118,142, 32, 4, 84, 16,176,165,133,128, 64,146, 37,184,238,192, 53,248,186,175, 63, -128,125,187,166,241,240,201,163,232,159,236,209, 33, 95,232,147,191, 90,114, 81,141,216,235, 32,176,169,172,223,227, 52, 42, 81, - 69,219,151, 92, 3,115,185,148,190,216,183,187, 78,104,162, 86,161, 57,144,103, 61,105,151,173, 14,249, 77,181, 4,230, 22,104, -222,181, 28, 55, 53,111,116,191,198,212,200, 24,244, 23,235, 90,199,234,106, 58, 84, 65,180,214,158, 89, 78,120, 13,235,203, 40, -232,109,233, 36, 22,145,163, 61,211, 69, 75,165,216,217,157,193,215, 92,216,198,229, 23,239,128,145, 10,157, 86,138, 78,150, 64, - 36, 6,189,178,131,153,233, 93,120,176, 95, 34, 56,143,160, 13,194,249,251, 16, 46,216, 3,236,217, 75,193,144,171, 5,167,174, -227,249,144,232, 42, 0,176,157, 98,223, 11, 46,193,252,177, 57, 14,174,170, 9, 92,214, 82, 96,152,125, 6, 48,244,200,116,102, -218,180, 15, 90, 9, 55,200, 18, 72,186,109,164,105,130, 60, 33, 5,108,214,100,152, 54, 57,118,230,109, 36, 74, 97, 58,237,160, -107,114,104, 41, 49,155,117,208,209, 25,218,105,134, 92, 25, 76,165, 45,180,141,198,180, 54, 72,181, 70, 43, 77, 97,125, 64, 80, - 26,193,212, 44, 77,136,133, 99,120, 47,216,114,237,249, 95,238,181,153,177,123,112, 69,182,216,203,157,179,125,130,175,250, 40, -148,190, 58, 15,178, 86, 35, 34, 6, 28, 39,186,242,181,143,130,251,184, 10,166,224,130, 80, 37,151,181, 45,106, 41,103, 27, 85, - 10, 71,221,218, 98,156, 65,140, 97,137,149, 20, 45,231,252,151,213, 9, 9, 28,203,178,101,209,239,138,125,233, 83, 25, 96,218, - 72,167,167,176, 35,201,161,133,129, 81, 64,110, 50,164, 73,138,224, 45,140, 78,144,232, 12, 64,137, 86,218, 66,154,103,208, 34, - 64,170, 0, 33, 2,197,107,129, 34,181, 69, 8, 16, 92, 79,184, 35, 45,108, 0,210,224, 96,157, 67, 34, 5,242,210,162,112, 5, -116,172,168, 6,139,196,121,244, 80, 98, 80, 82, 62,163,210, 9,156, 45, 96,116,194, 38,252, 0,165, 53,164, 15, 48, 74,161,240, - 1, 90, 8, 24, 24, 20,176, 16, 82,160, 28,198, 98, 25,174,146,186,214, 27,120,162,107,121,140,114,139,234,153, 27,206,247, 84, - 19, 68, 55, 54,100,168,219,159,173,162, 96,148,152,199,108,248, 25,114, 14, 12,145, 18, 48, 10,137,210, 20,179, 0, 64, 10,129, - 32,129, 47,127,245, 97,204,205, 47, 49,243,103,109,127,104, 89, 82, 93,157,177,167, 47,191, 22,238,212,169,202,124, 86,214, 44, - 9,245,249,136,105, 67,101, 57,158,138, 17,209,153,229,142,125,117, 19,148,164, 74,132,211, 93, 96,122, 10, 47,122,249, 53,184, -241,187,223,138,239,249,174,215,227, 37, 87,237,199,190,110, 27,139, 46,160, 37, 4,130, 15, 24,148, 22, 67,235, 96,135, 22,139, - 3,139, 97,127,136,194, 5,180, 90, 57,102,167, 91,112,150, 52, 14, 93,150, 72, 76, 2, 39,128,254,176,128,148, 10,221,196, 64, - 6,129,118,158,227,210, 29,211,104, 75,133, 2, 2, 83,153, 65, 30, 4,230,188,195,233,162,192,210, 82, 15, 39, 7,125,188,237, -199,126, 9,223,247,147,223,139, 87, 92,123, 13,186,193,227,254,207,124,153, 36,250,165,211,212,108,168, 44,137,121, 42, 93, 69, -175, 71,255,123, 76,157, 26,153,233, 86,107,111, 43,170, 6, 27, 35,135,112, 45, 53, 80,202,181,247,154,229,146,154,243, 92,118, -213,139,101, 58,140,201,241,168,218,205,150, 51,117,174,202, 33,118, 27, 79, 59, 58,131,169,107, 13, 49,127, 12,243, 34, 71,123, -170,133,169, 36,199,243,206,159,198, 84, 59,193,244, 84,134, 32, 20,180, 81,200,140,134,208, 10, 58,107, 97,110,161,192,241,249, - 5,132, 52,197,215, 29,184, 12,215,126,205,126, 92,188,179, 11,209,206,112,226,244,252,217,165,243, 1, 68, 88,133, 64,114,241, - 5,216, 59, 53,139,227,115,115, 19,174, 42,206,189,198, 51,160,167,129,226,134, 89,221,156,220, 44,237,156,203,118, 27,164,105, -138,221, 89, 11,185,210,152, 77,186,152,201, 58,104, 39, 45,236,200,167, 97,164, 70, 55,233, 80, 77, 16,165,145, 40,131, 84, 39, - 80, 82, 32,145, 18, 25,167,121,182, 76,130, 34, 0,185, 73,209, 50, 25,114, 45,209, 54, 26, 66,105, 40,163, 81,218,192,101,132, -201, 50, 72, 76,239, 28,149,132,150, 53,215,137, 8,128,206, 41,138,222, 58, 78, 19,100, 41, 57,186,205,192,129,169,165,173,206, -156,228,134, 74,138,207, 17,184, 76,119, 44, 30, 21,107,119,184,130, 92, 25,145, 17, 59,191,241, 51, 20,121,200,168,153, 78,160, -116, 63, 97,185,200, 21,107,241,177, 65, 89, 96,103,126, 8, 20, 0,232,237, 89, 50,117,173, 73, 59,108,229,164, 89, 77,181, 49, -157,102,152, 78,219,208, 74, 66, 10, 32, 81, 26,214, 89,116,210, 46,188,119, 80, 10,152,106, 77, 35, 73, 21, 50, 99, 32,132,135, - 18, 20,196, 21, 64,233,109, 74, 10, 88, 91, 82,219,116, 9,104,231,144,115,161,142,196,123, 40,231, 49, 12,142,252,159,222, 66, -120, 65,193,119,222,195,133,152,173, 16,224,189, 67, 16, 26,130,163,180,165, 16, 80, 66, 64, 10, 9, 15,138, 34,148, 66,192, 33, -160,165, 19,244,157, 69, 16, 18, 46,148, 44, 40,176,100, 22, 56,204,119,173,195, 89,247, 7,249, 45,170,103,222,105, 19, 83, 83, -226,204,136,252,232, 48,140,154,156,229,102, 8, 14, 85,148,116, 44,138,144,155,209, 6,117, 66,192, 40,201, 21, 60, 5, 66, 16, - 72,210,148, 2,128, 53, 71,238,198, 90,195, 67,187, 70, 81, 24, 13,119,234, 4, 17, 57,203,117,246,235, 13, 71,226, 28,198,130, - 51, 43,205, 73, 43, 35,109, 60, 75, 43, 38,100,200, 84,184,235,162, 61,232, 25,131,239,127,195,155,241,154,131, 47,199,133, 23, -238,134,181, 1,137, 45,113,186, 95,224,177, 19,115,120,234,212, 34, 78,205,247,113,106,110, 17,110, 88,114,141,131,128,211,167, -230, 81, 14, 75,244, 22,250, 88, 90,234,195, 46,245,176, 48,116, 40, 29, 96, 18,131,197,133, 1,188,243,112, 11, 75,152, 31, 20, -152, 31, 20, 40,157, 69,191, 44,112,122, 48,196,209,165, 30, 22, 6, 67, 28,239,245,240,212,194, 18, 22,251, 67, 12, 6, 5,190, -242,200, 28,238,253,220,231,240,215, 31,254, 27,124,195, 55,126, 3, 46,191,106, 63, 46,127,254, 37,184,255,232, 49, 12,231,230, -184,108, 40,103, 33, 36,154,155,190,248, 42,168,170,180,220,184, 98, 29,146,252,168, 28,233, 4, 99,175,207,243, 90, 81,235,158, -250, 3,252,255,212,189, 89,175,165,217,121,223,247, 91,227, 59,236,225, 76, 85,213, 85,213, 35,217, 77,138,162, 72,145, 14,101, -201, 84, 36, 69, 52, 36, 68,146, 45, 89,138,146, 72,182,128, 36,178,157,139, 36,128,131, 0,185,200,167,200,125,130, 92,229, 19, -228,194,128, 1, 33,130,156,196,144, 5, 77, 16, 35,155,180, 40,138, 17,201,158,187,171,206,176,167,247, 93, 99, 46,214,122,207, -222, 85,221, 93,221, 93, 85,164,232, 13,116,215,116,234,212, 57,239, 94,107, 61,235,249, 63,255, 97,202,105,190,134,237, 30, 30, -163, 77,159, 79, 30, 48,238, 31,231,245,216,133, 76, 35,234, 41,120, 93,212,165, 44, 63,250, 53,231, 88,142,231, 75, 12, 45, 55, - 78, 58,132, 80,244,157,198, 85, 2,251,224, 64, 41,193,229,229,142,111, 94, 93,112,231,153, 57, 47,156,158,210,216,150, 59,207, -220,226,246,233, 13,210, 92,241,214, 59,231,143, 95,216,175,187,198, 76,124,231,138,243,222,146,191,243,106,189,252, 79,142,122, - 85,159, 45,197,223, 92,166,129,166, 16,126, 59, 3,167,179,170, 78,106,192, 42,230,139, 25,115,221,114,214,244,180,182,101,217, - 46,232,181,165, 55, 29,125,211,131,144,244,166,197, 40, 77,202,137,222,116, 52,198, 98,148, 70, 73,137, 20, 26, 37, 21,173,105, - 32,103,150,237,156, 86, 53, 12,209,177,108, 58,230,182,165,211, 22,131,132, 70, 50,230,234,217, 64,220,135,191,124,175, 47, 59, - 83,164, 43,236,173,158,135,109,229, 17,168,253, 62, 74,113, 79,130, 27,199,242,224,114,133,197,242, 52, 94, 43, 99,224,194, 59, - 16,123,153,166,115,251, 44,121,204, 1,115,126,178, 26,142, 31,127,109, 73,117,144,199, 46, 15,172,113, 15,228,149, 19, 74, 48, -133,233,152,138,134,196,248,132, 69, 93, 85,194, 69,223,194,124,129,109,123, 90, 85,230,227,173,214,244,182,131,148,232,154,150, -144, 35,139,182, 69, 43,141,181,170,214,161, 88,116,227,120,148,200, 8,161, 16, 49, 66,244, 88,107,209, 49, 96,115, 68, 74,133, - 26, 29, 34,102, 68, 76,200,148,138, 65, 13, 18,153, 33, 9, 65,139,192,147,174, 27,152, 84,187, 25,173, 12,141,212, 8, 33,105, -149,193, 87,196, 64, 0, 62, 39,172, 50,196, 28,112, 62,178,176, 13,187,232,113, 76, 27,113,178, 58,172,249,213, 31,118,187, 20, - 7,214,167, 79, 75, 22,215,117, 5, 9,201,234,189, 5,118,234,226,174,173, 42,171, 87,253,181,100,164,218, 51,118, 53, 4, 64, -234,122,115, 21,104,163,138, 60, 29, 48, 82,161,181,194,133, 88,173, 79,171, 6, 52,139,162, 25,125,212,248, 65,203, 34,245,154, - 24,165, 74,236, 3, 47, 14,195, 31,166,185,147,200,239,223, 85,154,106,188, 32, 4, 88,203,231,191,240, 89,126,250, 71, 94,230, -159,252,151,191,202,223,255,202,151,249,212, 39, 95,225,159,255,235,127,201, 43,207,127,146,182, 51, 92,109,183,188,123,185,229, -237,203, 45,126,181,101,179, 25,136, 49,193,206,115,113,239,138,203,149,195,111, 3,195,106,195,226,248, 6,166,233, 89,159,175, - 24, 99, 34,141, 25,219,247, 40,165,121,245,219,111,240,206, 91,247,216, 93, 94,241,238,189,251,140,227,136,219, 6,222,124,231, -156, 55,222,190,199,110, 53,178,189, 88,115,117,181,101,187,218,178,186, 92,225,199,196,255,246,191,252,239,165,198,238, 60,159, -249,194,223,162,233, 37,203,227, 57,127,235,179,159,194, 37,207,107, 95,251,102,121,175,142, 22,181,216,214,131, 76, 30,132,140, -184,240,160,245,228,135, 65,114,248,114, 72,136, 3,228,227,129,121,220,199, 41,166, 15,217,182, 10,234,184,169, 22,243, 28, 15, - 72,122,223,207, 78, 51, 61,216,169,107,189,151,169,165,136,216, 57,118, 77,203,172, 49,164,220,112,181,139, 88, 45, 81, 82,113, -111,200, 24, 37,240, 62,112,185, 9,124,245,219,175,242,236,145,226,206,242,152,110,185,224,232,120, 65,211, 24,206,102,115,222, - 22, 35, 87,111,220,127,252,142,113,114, 81,243,142,124,255, 98,127, 89, 74, 21,165,176, 7,177,185,153,167,255, 12,167,209,150, -209,251, 16,151,201, 3,220,244,245,223,111, 11,121,121, 94,213, 26,139, 14,180,164,209, 45,167, 77,203, 51,253, 49,203,238,136, -153,233, 56,153, 29, 99,164,162,181, 51,148,208,244,186, 69,203, 50, 91,159, 53,165,179, 23, 73,160,148, 70,203, 98, 0,102,165, -162,211, 13, 90,107,122,221,163,180,230,180, 61, 42,205,147,212, 8, 4,189,177,232, 36, 9, 42, 49,162,246, 55,181,244,125, 40, -236,147, 99,160, 81, 7, 17,174,213, 95, 34,196,125, 76,174, 86,133,247, 33,216,123,209, 91,189,151,185,169,170,163,215,106,159, -214,168,170, 35,169,169, 35,176, 92, 27, 41, 23,246,223,223,227,162,181, 82, 84,137,117,172, 30, 36,213,128,102,242,190,135,194, - 79, 48,146,235, 67,252, 0,245,123,178,162,110,171, 15,173,109, 97,121, 68, 99, 13,167, 93,135, 17, 10, 37, 37, 70,106,180,210, -228,156,105,180,194, 84,200,202, 72,137,212, 10, 69,164,209, 18, 5,152, 4, 70, 73,148,200,104, 4, 50, 70, 98,206, 68, 63, 34, - 83,198,198, 84,237, 33, 51, 58, 37,154, 92,228,175, 1,129, 65,224, 99, 64, 11,137, 65,178,145, 2, 41, 37, 93, 83, 24,170,141, -178, 52, 90, 97,109, 71,171, 45, 41, 7,180, 54, 24, 33,217, 69, 95,141,110,202,215,185, 9,158, 44, 4, 49, 30, 6,166, 76, 15, -244, 67,130, 90,230, 51,232,151, 37,172,198,213,226,250,164, 16,188,172,139, 39,248,247,122,124, 79, 93,220,212,145, 95,187, 98, - 29, 26, 22,136,122,131, 84,133, 1,111, 5,141,181,132,152, 17, 72, 4, 2, 41, 96, 8,161,106,217,107, 23, 57, 49,180,169,112, -241, 7,117,235,114,210, 63,203,125,242, 82, 22,251, 27,249,225,247, 33, 14,139,124,124, 47, 73, 70, 73,154, 79, 62,207,111,253, -252,127,200,207,124,229, 75,124,246, 71, 63, 69, 99, 53, 43, 23,136,110,228, 19,207,188,192,239,255,225,159,240,226,179,183,217, -109, 3,235,171, 45,171,171, 43,214, 23, 87,172,214,107,194,198,147,145,108, 86,107,118,155, 45, 18,133,146, 13,198,118, 28,205, - 23, 72,105,202,179, 8, 96,173, 37, 68,137,214, 13, 82, 25, 98, 16,196, 24,105,250, 5,218,182,220,127,251,109,182,155, 53,227, -118,195,119,222,120,157,113,179, 97,187, 90,115,113,255, 62,227,176,227,107, 95,255, 43,126,245, 63,249, 13,254,221, 87,255,140, - 63,254,163, 63,226, 19, 47, 61,207,118,181,197,246, 45,159,249,236,167,232,143,150,124,243,254, 5,108, 15, 66, 39,166, 27,248, - 4,249,153,154, 57, 16,252, 71, 43, 34,135,249, 2,211,129,117, 72,240,122, 28, 75,227, 67,251,217, 9, 98,156,230,144, 31,228, - 61,240,180,114, 11, 30, 9,191,107,132,150, 15,232,206,203,254,119,184, 97, 71,238,103, 56, 23,185, 90,101,118, 14,130, 20,215, -145, 5,231, 91,207,235,175, 95,112,255,254, 59, 12,126,199,243,103,183,184,243,236, 45, 82, 74,184,224,112,110, 96,166, 52,127, -121,255, 10,174, 86, 79,167,120, 60,188, 39,174,121, 20, 60,221,226,213,183,229,243, 47,142,203,251,117,116, 90,201,111, 51,184, -253, 12,156,157, 21,147,161,163,101, 41,226,203,234, 7,223, 22, 34,220,141,217,130, 59,139, 37,203,118,201,162, 91,208,105,203, -178, 93,160,132,196, 40, 67,111,122,180,212,100, 18, 74,234, 18,164,149, 5, 70,153,122,102, 75,140,178, 40,161, 48,186,197,167, -192,162,153,209,180, 29,173,105,139, 97,101,202,104,109,104,109, 91, 1, 37, 65,175, 44, 86,103,182, 89,145,235, 94,191, 30,195, -125,175, 94,125, 91, 57, 59, 21, 29,155, 28, 3, 83, 44,197,219,202,189,183,194,228, 27, 34,168,126, 3,149,221,174,204, 62,114, - 54, 23,120, 27, 87, 25,253,147, 68, 47,198,125,231, 31,211, 62,145,116,202,139,143,177,134,155,241,209,160,248, 73, 34, 60,241, - 54, 68,174,193,104,114,111, 46,150,170,181,177, 60,216, 32, 79, 60, 83, 55,186, 22,137,182, 46, 26,203,173,126,137,200, 18,173, - 21, 51,211,225, 98,196,106,141, 68,162,133, 64,107,115,173,249, 47,158, 5,138,150,128, 17, 5,114,215,201,163,132, 66, 40,208, -209, 49,134, 84,102,241,131, 67,121, 7,174, 16,154, 92,240,216, 84, 66, 28, 76, 40,100,185,136, 64, 86,110, 88, 6,180,182, 72, -173, 17, 82,163,165,164,237,218,194,184,111, 13, 50,107, 20, 2, 33, 50, 90,154,242,177, 64,204,137,153,177, 92,142, 59, 98,168, -115,151, 88,175,112,206,191,127,192,253,225,107,113, 82, 28,151, 76,117, 45, 10,225,201,225, 55, 31,202,194,252, 32,147,150,247, - 36, 70,213, 27,176,152,136, 41,213, 53,174, 47, 68, 51, 89, 9, 98, 5,177, 17,244,214,178,157,146,127, 66,222, 91,155, 78, 69, - 60,171,154,158,244,136,220, 98, 43, 15,228, 75,105, 47,231, 57, 36,119, 29, 90,133,190,207, 33,247,236, 79,253, 56,191,244,243, - 63,205,127,252,149, 47,115,124,251, 20,173, 52, 62, 70,222,190,191,226,106,189, 67,187,192,110, 28,121,241,238, 29, 82,148,228, - 0, 42,105,136, 18,163,151, 24,213,113,122,251, 46,253,108,142, 53, 11,158,123,225, 37,186,249, 17, 93,219,161,181,197,197,145, -101,219,210,216,150,147, 27,199,220,185,121,140,182,134,229,124,206,217,141, 19, 78,206, 78,232,102, 75,186,121,203, 75, 47,220, - 70, 53,115,220,214,177,217,238,208,210,178,243, 37, 14,116,189,219, 17,131,231,199,190,248, 89,180,142, 60,255,169, 23,249,194, - 23, 62, 13, 73,112,121,113,206,230, 98,133,178, 45,207,125,242, 5,238,206,123,254,237,159,254,121,217, 39, 20,130, 98,185, 81, - 15,229,178, 55, 62,225,108, 49, 31,204,203,159,212,189, 76, 86,167,143,107,187, 3,177,119,236,154,210, 22,167,206, 48,231,239, - 77, 7, 95,187, 79, 33,229,251,178,251,133,146,101, 31,134,145,171,203,115, 94,195, 51,134,129,232, 10,169,209,197,200,232, 18, -175,189,181, 98,189, 26, 73,110,197,189,237, 37,103,179, 25, 70, 25,150,199, 51, 46,206, 47,217, 12,107, 98, 12,252,197, 95,124, -183, 72, 55,159, 58,216,144, 14,230,156,226,201,231,247,211,179, 49, 61, 44, 79,232,111,158,225,219, 22,110, 28,151, 98,189,152, -195,141, 83, 88, 44,225,228,102, 65,247, 78, 78,145,203, 37,207,158,157,241,204, 98, 65,167, 37, 55,250, 57, 71,109, 79,163, 44, - 55,103,199, 72, 4,139,110, 9, 66, 32,208,116, 77, 15, 57,163,181, 68, 25,131,210, 10,211, 40, 76,211,144, 66, 68,106, 73,219, - 53, 4, 31,177, 74,145, 50,116,218,148,130,222,119, 36, 95, 81, 10,153, 17, 41,227,130, 43, 57, 30,169,228,114, 52,186,101, 23, - 29,163,172,233,144,168,247,111, 84,158, 22,244, 62, 21,236,107,219, 87, 81,214,181,119,101,198,191, 29,202,243,155,144,179,209, -149, 34, 46, 83, 57,191, 91,187,175,194,177,186,225,217,202, 25, 50,125, 81,127,184, 80,205,129,194,254, 74, 58, 65,226, 19,146, - 38, 68,205,136,248, 24,151,225,233, 60, 23, 7, 17,183, 83,108,173, 47, 40,247, 3, 72,221,193, 26,123,252,162,174,116,121, 48, - 71, 61,204,143, 88,206,103,197,214, 85, 40,230,141, 37,198, 72,111,139, 65,135, 86, 10, 37, 4, 90,107,140, 84, 24, 35,145, 57, -210,202,132,170, 51,111, 43, 51, 17,129, 16, 9,225, 67,209,219,239,182,164,209, 49,250, 1,181,115,164, 24, 81, 62,176,168,218, - 69, 19, 83, 33,211,145,145, 66,225,144, 8, 20,201, 88,178,148,196,156, 48,141, 69,169,210,169,182,125,139,214, 10, 35, 13, 34, -231, 50, 75,182,150,144,139,148, 66,107,195, 24, 28, 33, 69,118,185,186,126,185,106,197, 41,100,121,152,143,154, 47,247,243,125, -134,245,118, 91,160, 82, 45,159,112,198,200, 71, 95, 4,147, 79,242,244,163,168,173,243,236,164,228, 33,207,123,178,216,123,180, -199,148, 24,199,128,146,150, 60,214, 46,111,234,214,199,218, 13, 90, 9, 27, 87, 36, 28,143, 42, 46, 42,215,220,100, 81, 46, 1, -211,191,115,109,111,124, 16,105,121,120,200,125,238, 11,252, 23,191,241,203,252,204, 87,126,130,126,185,192,121,143,243, 17,231, - 60, 23,247,175,184,186,119,137,219, 5,118,187,128,209,134, 97,231,217, 92,174,105,237, 12,107, 91, 78,206, 78,185,253,204, 41, -207, 62,123,131,227,101, 79,223,181,156,157, 30,209,180,150, 89,215,114,227,198, 49,243,229, 12,221, 54, 44,143, 22,204,250,150, -166, 85,244,125,195,115,103,115, 60, 18,163, 52,125,219,112,251,198,146,101, 59,195,199,204,243,183,142,121,225,133,187,220,123, -103, 68, 36,193,201,226,148,179, 27,119,184,188,186,207, 59,235, 13,110,116, 44,151, 75, 86,171, 11,134,209, 49,155,205, 32, 11, - 86,235, 13,113, 28,145, 82,241,210,167, 63, 65,219, 89,190,249,245,111,212,141,239,247, 35,147,137, 72,248, 36,235,226,208,223, -253, 73,215,215,100,243, 58,133,154,240,144,111,252,196,149,184,134, 36,229,211, 33,130,190, 31,234,244,126,100,185,131,143, 17, - 57, 67,242,228,119,207,185, 60,191,226,117, 55,242,206,249, 37,140,150,139, 11,199,229,249, 21,227,120,133, 22,153,222, 24,214, -195,192,189,203,203, 18,111,224, 71, 82, 30,249, 63,254,252,235,228, 55,239,125,112,172,242, 19, 23,246, 10,197, 63,141, 78,180, -111,203,136,235,229,231, 65,105,210,201, 49,185, 81,208,245,229,178, 62,155, 21,255, 7, 91, 83, 49,151,199, 60,183, 56,225,133, -197, 49,187, 80, 72,201,119,251, 37,119, 23,167,144, 21, 39,179, 19, 0,206,102,167,136, 44,233,219, 25,182,111,216, 14, 27, 22, -199, 75, 80, 10,171, 45,109,107,201, 66, 33, 99,198,244,197,111, 68, 8,129,170,190, 33,182,209,116,179, 57, 57,229,154,178, 43, - 73, 41,149,166, 33, 69,180,212, 4, 18, 70, 27, 98,136,236,188,167,215,150, 44, 5,187, 84, 27,166, 41,161,240,105,159,143,241, -161,162,151, 38, 43,237, 84, 10,121,172,161, 77,219, 97, 79, 94,157,230,229,136,253,185, 29, 15, 18, 42,167,188,120, 33,246,190, - 12,178,169,112,125, 85, 24,201,131, 70, 38,214, 17,166,146,123,247,184,143,179,183,205,228,172, 55,133,143,229, 3,203,101,181, - 15,221,114, 15, 34,116,143, 87,212,117, 77,151,233, 42,137,171, 43,190,215,183,154, 25,141, 86,164, 84, 34, 79,203,108, 69, 34, -165,196, 42,131, 18,178,160,186,201, 51, 83, 2,171, 36, 86, 22, 35,215, 32, 5, 45, 16, 93, 33, 42,177, 25,112,110,100,187,219, - 18, 71,143,242,129,185,139,100, 33, 8, 46,211,139,253,244, 77, 10, 67, 20, 18, 33, 53,209, 90,132,182, 72,221,208,216,134, 36, - 20,166,181, 24, 85, 50,150,149,210, 8, 5, 50,171,218, 13, 58,164,208,248, 88,194, 32,124, 12,228, 12, 67,240,196,213,102, 47, - 33, 10, 97,127,107,123,212,124, 57,228,210, 89,239, 66,145,244, 76, 11, 74,126,143, 10,251, 52, 91, 59,156,189, 78,133, 61,213, -188,120, 97, 75,172,226,102, 87, 96,248, 41, 87,184, 46,178,236,253,126, 33, 6, 95, 55, 89,173,214, 62, 21,199,183, 71, 29,224, -211,124, 49,186,210,221, 77,112,243, 52,251, 61,244,255,158, 66, 24, 62,245, 57,126,253, 87,190,194, 47,255,226,207,240,220, 43, -119, 73, 33, 97, 26, 69, 74, 2,183, 26,217, 94,109,217, 94,108, 8, 33,145,178, 68,209,208,181,115,102,253,146,103,158,185, 69, -107, 27,148, 52,244,139,142, 69,219,209,181,134, 70, 25,206,142,103,220, 60,233,121,241,108,198,173,147,158,190, 85,204, 91,201, -173,163,150,121,219, 48,159,181,196, 44,232,117, 25, 17,205,172, 34,132,132, 16, 18,171, 20,243, 89, 67,107, 13,202,104,110, 46, - 58, 62,249,210, 29,206,135, 68, 51, 91,240, 35, 63,244, 50,219,171,128, 74,158,191,190,119,159,133, 49,204,218,142,221,176, 67, - 37,201,108, 62, 71,105, 93,247, 90, 66, 54,150, 23, 63,245, 18, 9,193,119,190,241, 87,213, 86, 50, 87,253,122, 53, 56,250, 65, -121, 29,242, 51,200,251, 98,212,204, 75, 39,104,186,253, 40, 74, 60, 20, 68,241, 52,214,245, 67,190, 11, 31,106,245, 58,113, 52, -142,230,132,113,203, 16, 70, 98, 26, 9,126,133,206,146,171,225, 62, 34,134, 2,185,103,135, 79, 9,231, 6,190,254,250,119,249, - 55,111,191,201,230, 91,247,224,242,252,233,146,210,228, 83, 30, 75, 52,182,140,182,142,142,225,249,103,160,237,120,246,238, 93, -152,117, 4,221, 34,102, 11,178, 52,165,144, 43, 1,205, 81, 57, 15,155, 5,167,182, 65,234,150,147,217, 17,183,250, 30,135,161, - 21,154,174,105,176,202, 50,107, 58,180,212,232,166, 67, 55, 10, 25, 5,203,147, 35,226,224,104,154,166, 20,110, 18, 70, 20, 8, - 62, 19, 80, 20,254,147,212,178, 4,107, 41, 10,177,217,104, 16,145,228, 35,155,113, 75, 14,129, 32, 18, 42, 75, 92,116,197,206, - 59,102,124,114,168,154,131, 30,181,192,249,186,158,198,167,200,134,159,210,207, 38, 98,170,213,251,117,173,196, 94,213,100,212, - 30,113,158,136,188,215,166, 57,105,207,121, 17,178,156,159,147,183,123,206, 5,158,143, 53, 54, 86, 86,200,126, 24,203, 30,137, -190,120,225, 7, 95, 57, 70,149, 91,165,244,199,191, 4, 79, 35,182,148,246, 36,217,107, 53, 76,222,171, 96, 30,122,118,143, 87, -212,167,194, 97,139, 55,240,252,236,132, 83, 59, 35,103,129, 84,146, 70,119, 24, 89,188,217, 5,146, 70,149, 25,186, 36,161,100, -198, 2, 70,100, 90,163,201, 34,161, 82, 66,229,140, 27, 7,164,143,228,209,179, 27, 7,196, 48, 96,119, 1,231, 10,244,174,146, - 64,103,232,180, 66, 43,131, 82,154,166,159,163,219, 30,154, 30,219,206, 80, 77,139,210, 6,217, 54, 8,107, 16,170, 28,222,212, - 57,187,136,197, 59, 62,196, 2, 9,133,156,137, 41, 33, 37, 92, 13,107,148,210,132, 16, 56, 31, 6,178,168, 93,167,243, 92,167, - 2, 61,106, 62, 22, 83,185,249,143,110, 95,208, 15, 33,104, 25,247, 48,230,211,218,252,211,141, 78,214, 64,137,201,207,123, 90, -176,153, 98,107,170, 39,248,169,118, 91,177,194, 66, 62,148, 13,144,235,101, 68,169, 26,180, 80, 25,150,155,243, 42,135, 10,143, -247,181, 77, 48,243, 4, 35, 29,189,200, 47,252,202, 79,243, 15,126,249,103,121,233, 51,159,192, 54,138,237,214,177, 27, 60,227, -214, 51,108, 71,220, 48, 18,156,199, 59,143, 18,150,229,226,132,179,179, 19,102,125, 75,223,155, 26,234,163,176,157,162,177,138, - 89,103, 88, 54,134,219, 39, 45, 39,139,158,190,105,144,170, 32, 38,157,149, 44, 91,141,150, 2, 37, 10,145, 42, 35,171,202,162, - 32, 8, 82,194,141,133,165,111, 20,189,213,228,148,139,188, 13, 73,215,104,158,187,125, 66,210,154,148, 51,139,229, 49,199,167, -183,136,235,129,111,191,243, 22, 86, 75,164, 84,188,179, 94,209, 40,193, 48, 14,228, 24,177,218,144,147, 68,104,205, 75,159,124, -129,115, 63,240,206,119, 94, 43, 93,194,118, 34,211, 72, 30,116,188,248, 1, 40,236,135, 23, 67, 83,209,184,190,169, 7,159, 46, -107, 68,240,224,200,231, 73,215,242, 7,196,179,126, 96,178,218,100,137,125,243, 6,159,249,212, 43,124,254,149, 31, 98,217, 88, -132,202, 92,172, 46, 25,253,150,139,221,134,215, 46,239,145,200, 24,101, 24, 82,224,171,175,191,205,155, 95,255, 14,187,111,125, - 7,214,171,167, 88,208,167,129, 41, 79,199,163, 98,130,218,103,115,184,123, 11,158,191, 13, 55,110,243,195, 55,158,229,164,233, - 72, 8, 62, 57, 63, 98,200,176, 52, 13, 27,219, 86, 6,182, 0, 59,227,110, 55, 99,214, 20,227, 36,163, 53, 74,104, 22, 77,139, -233,122, 22,182,135, 20,176,218, 34,164,161,237,117, 33,189,117,109, 49, 8,155,119, 53,147, 71,163,107,231, 77, 74, 72, 36, 89, - 56,132,148,165, 54,250, 34,215,146,178, 36, 18,134, 24,137, 68,164,128,221,232, 17, 66, 34, 73,228, 36, 24,115,153, 1,207,187, - 25, 91, 55,208, 54, 13, 90, 40,118, 58, 19, 69, 77,134, 20, 21, 9, 18,117,205, 61, 14,194,209,216,154, 36, 57,117,205,181,169, -240,149,196, 54, 89, 11, 78,222, 15,177,234,208,243, 4,207,219,189, 29,110,136,181,121,173, 99, 40, 37,106,167, 47,170,172,172, - 6,206,104, 85,246, 68,223, 22,102,189,209,133,100, 42,171,213,110, 62,200, 13,120,156,189,114,120,129,158,198,151,249,176, 99, -127,239,231,124, 60, 71,185,201, 54,112,110, 97, 54,199,231,140,173,118,121, 11, 91,102,233,160, 80,178,204,174, 11,153, 60,160, -149, 32,197, 68,223,154,226,176, 56, 56,176,170,100,159,123,200, 33,226,134, 1,225, 60,202,143,196,171, 13, 73,104,244, 54, 16, - 20, 12, 10, 90,161,217, 24,133, 54, 22,213,119, 68,221,210, 88,131, 64, 18,117,233,250, 11,244, 92,159,171, 12, 56, 38,213,151, - 32,235,162, 3,179,157, 98,220, 66,171, 52, 49, 6,182,206,211,155,134,149,171,198, 20,147,233, 73,160,204,100, 92,101, 41,199, -244,225,102, 18, 70, 86,143,225,201, 91,187,158,221,170,125,240, 25, 62,169,125,228,161, 22,252,240,247, 66,216,235,197, 1,220, - 37,232,227, 98, 60,147,124,149,172,181,123, 7,167,139, 77,249,179,144,247, 30,206, 91,247, 24,201, 24,239,243, 58,112,229,250, -185,255,252, 87,248,210, 79,253, 24,167,167,115, 98, 74, 92, 93,142,172,175,174, 72, 41,145, 35, 24,221, 18,182, 1,163, 91, 8, - 13,253,201, 13, 78, 79,230, 88,107,232, 27,203,124,102, 9, 33,147, 17,228, 36, 80,141,100,102, 44, 11,107, 80,100,156,139, 8, - 60, 66, 42, 92,128,139, 77, 34,101,207,172, 73,116, 86,178, 13,133, 21, 93,136,183,138,227,121, 33, 77, 22,133, 77, 66, 43,113, -157,227, 81, 87, 11,222, 39,122,107,248,210, 75, 55,216,141,129,123,219,200, 38, 30,211,205,231, 12,191,251, 59,136,148,137, 34, - 50,134,192,197,234,138, 69,191,100,244,145,198, 59,210,213, 21,110,216, 50, 63, 57,226, 23,126,254, 43, 92, 13,142, 87,255,228, -223, 61,232,155,126,237,199,249, 3,242,234,219,253,177, 48,173,143,113,138,118,116,149, 91,193,131,133, 75,235, 39, 91,199, 47, -127,178,116, 84, 95,255,198,251, 79,119,106,164,106,174, 26,222,137,127,214, 62,115,131,163,217, 18, 45, 21, 39,203, 99,186,174, - 33,249,196, 27,151,111,113,181,115,220,219,236,120,103,187, 99, 27, 61,241,254, 21,249,114, 11,227,138,252, 52, 45, 91, 63, 40, - 47,254,113, 29,197,160, 6,170,204,225,185,103,224,248, 4, 22, 55,144, 41, 51,235,231,184,221,154,231, 23, 55,184, 55,172,249, -100,211, 48, 2, 23,227,200,168,138,177, 80,223, 52,244, 70,163,133,198, 54,246, 90,154, 37,181,166,207,145,224, 29,182,233, 49, - 66, 33,165, 68, 38,137,238, 44, 70, 78,254, 4,245,172, 84, 16,115,192,200, 76, 96, 36,185,128, 18,153,156, 51, 46, 4,148, 46, -197,114, 28,124,149, 84, 41, 98, 40,157,173,173,166, 72, 67, 8,100,114,137,191,214,154, 24, 35,103,179, 35, 6, 63, 98,103, 22, - 45, 19,219,214,242,154, 53,165,136,174,135,114,238, 68, 87,214,216, 48,124,188,181, 53,186,125,231, 45,168, 49,218,181,171,138, - 53,143, 93,213,220,249,105, 29,155,154,111,161, 36, 12,235,178,254,213,129, 45,179, 79,251,153,121,116,160,230, 69, 17,116,237, - 70, 23, 10,154, 69,216, 59,202, 77,254,239,147, 10, 73,233, 58,210, 10, 31,127,191, 60,198,250,209,143,189,136,219,166, 20,170, -182,199,100,129,243,129,163,118,142,139, 17, 33,202, 77, 38,166,128, 50,134,144, 19,173,210,132,156,232, 40, 48, 88,223,116,104, - 50,209,121,164,146,248,237, 64,151, 33,248,192, 48, 12,100, 23,138,174, 63,120,140,173,174,117,141, 33, 54,179, 66, 24, 94, 30, - 99,154, 22,225, 61,169, 53, 40, 36,194,103, 98,215,209,166, 64,142,137, 36, 5, 86, 52,100, 34, 49, 70, 50, 9, 33, 53,201,101, -132, 40,209,167, 46,122, 2, 17,169, 5, 4, 69, 78, 1,143,195, 40,205,104,106, 96,193,218,239, 31,112, 76, 31,242, 6, 76,179, -210,112, 45, 93,188,246, 48,158,126, 93,174,244,213,204,224, 9, 11,166,169,129, 3,138, 7,201, 69,215,240,169, 45,115, 35, 29, -247,213,170,213,133, 32,212,232, 10, 37,197,226,209, 28, 14, 32, 97,107, 97, 92,237, 55,200, 19, 28,222,127,231,151,127,142, 47, -255,228,151,185,243,252, 41, 66, 10,134,157,103,125,181, 99,115,181, 65, 90, 89, 70,143,187, 17, 47, 18, 18,205, 51, 55,158, 69, -105, 75, 99, 53, 90, 9,140,209,204,122, 91, 46,216, 25,130,243,180, 70,176,104,203, 72, 39,230,196, 16, 51,110, 40, 12,126, 37, - 5,163,203,220,219, 4, 66,138, 88, 85, 51,134,180,198,167,196,213,170,100, 3, 68, 41, 8, 49,211,233, 4, 99, 66, 38,104,218, -226,182, 55, 84,114,103,204, 25, 25, 50,198, 20, 68,160,239, 90, 98, 18, 60,183,236, 80,252, 60,175,126,251,187, 12,155, 21, 62, -254, 53, 62, 58,180,182,164, 48,226,130, 39,196, 64, 8, 22, 55, 6,110,189,112,155,223,252,213, 95,226,127,221, 69,174,190,250, -141, 18, 82,225, 63, 42, 29,246,251,244,106,108, 53, 85,169, 95,151,169,135,223,122,245, 96,184,201,212,209,103,158,138,167,249, -115,119, 79, 57,233,230,252,249, 67, 69,189,228,123,132,253,207,107, 65,159, 32,205,219,139, 25,183,207,110,113,111,125,206, 11, -183,110, 35,141, 33, 69,143,209,207,208,154,134,119,183,107, 86,247,207,201,110,132,243,119,159,110,142,193,163, 10,250, 7,125, -172,109, 11, 55,229,131,158, 89, 99,203,236,252,198, 41, 60,247, 44,116,115,152, 29,131, 53,204,133,102,235, 29, 11,211, 50,132, -128,160,152,141,188,189, 94,177,176,109,137,170,165, 40, 57, 0,146,146, 92,121,207, 51, 77, 71,163,138,103,135,167, 40,128,112, - 35,130,140,214,138,182,107,139,202, 32,101,180,149,132,209, 87,115, 67,135, 38,144,180, 71,187,128, 19,174,120,128,120,143, 68, - 16,125,198, 79,173,111,146,196, 93,177, 97,142, 42,161,133,100, 23, 71, 90, 93, 28, 33,165, 44, 73,153, 90, 40,148, 46,210, 10, - 33, 51,164,142, 16, 2, 47,158,157,114, 62,236,216,180,150,232, 28, 92, 14,123,203,241,237,199,136,166,158, 26,153,107,187,214, -169,177, 58,144,109, 74,189,183,168,181,128, 59,184, 97,247,237, 62, 5,239,176,176,167, 74,134,155, 92, 31,175,155, 40, 11,210, - 85,219, 86,246,204,119,113,112, 78, 78,249, 28, 57,237, 77,196,198,239,237,216, 77, 63, 86, 33,105,219,186,233, 45, 56,199,209, - 98, 73,175, 53,224, 17,162,197, 84,200, 64, 73,141,243,158,214,180,196,232, 81,253,131,246, 16, 0, 0, 32, 0, 73, 68, 65, 84, -100,108, 83,158,174,115, 35, 70, 74, 84,202,152, 4, 94, 25,216,172, 8, 33, 96, 98, 68,133,132, 19, 13, 93, 83, 35, 82,173,102, -222, 22,189,228,242,228, 4, 21, 50, 62, 38,236,124, 86,130,128, 98, 66,180, 22, 81,137,108, 66,107, 76,166, 44, 38,138,214, 47, -186, 18, 50, 32,200,120,231, 16, 82,144,210, 30, 82,119, 57, 20,163,154, 12,173, 86,140, 94,237, 45, 14,145, 31,173, 83,159, 10, -187, 72,251, 91,227,245,162,227,193,159,123,249,228, 93,206,132,239, 75,185,191,113, 30,190,173, 74,150,247, 43,172, 96, 88,192, -162,169,193, 3,166,116,230,187,117,245,231, 30,203,223,247,169,166,136,141, 15, 6,133, 60,198,215,217,255,248,151,248,205,175, -252, 36,175,124,246, 69,180, 16, 12,206,227,198,192,250,114,139,119, 14,100, 41,232,243,126,129, 93,156,210,116, 45,120,137, 66, -211, 46, 12, 90, 72, 78,102, 22, 99, 20, 18, 65, 99, 52, 33, 43,206,179,192, 71,207,189,181,195, 84,147,157, 88, 67, 37,118,222, - 19, 66, 68, 68, 65,200,137, 97, 72, 12,163,103,116,145,229, 92, 23,232,190,149,184,109, 96,187, 13,132,172,104,231,134, 35,147, -203,218, 89, 11,180,146,244,141, 37,228, 98, 78,180,146, 30,163, 36,125,163, 88,180, 2,107, 53,214,104, 62,247,210, 13,142,102, - 13,247,239, 95,113,118,235, 22,171,139, 43, 94,191,255, 29, 70, 31, 72, 49, 34,149,192,168,128,237,122, 46,238,157,243,236, 75, -119,249,167,255,217, 47,241, 63,255,241,215, 14,230, 50, 63, 64,175, 36, 31, 66,146,216, 75, 27,167,174, 93, 60,253,127,246,213, -223,251, 3, 94, 61, 44,126, 7,200, 83, 70,151,194,174,245,117, 65, 23, 49,145,149,228, 91,111,190,195,173,217,155,220, 62,189, -137, 80,146, 24, 61, 57,192, 24, 2, 55,150, 71, 44,187,150,203, 55,222, 46, 33, 34,181,160,231,167,253,197,219, 26,142,180, 27, -247,197,226, 48, 20,228,250,251,234, 42,130,215, 66,120, 40,149,208,216, 2,253,206, 58, 56, 89,194,209,188,116,119,214, 22, 18, -150,131,165, 21, 32, 21, 66, 55,100,183,229,184,155,227,134, 45,207,119, 45,247,124,224,221,114,147, 39,137,140, 53,134,133,181, -116, 82,179, 11,142, 99,219, 97,155, 6, 17, 18,222,121,164, 84, 28,213,156,116,165, 37, 90,203, 98,171,225, 3, 86, 11,162,247, -228, 16,144, 58, 34, 6, 79, 34,163,165,160,217, 57, 6,145, 49, 25, 84,140, 5, 89, 22,130, 81,149,102,167,164,149, 54, 64, 98, -209,204, 8, 57,162, 77,195,224, 6, 90,101, 65, 39,134, 16, 88,116,115,188,223,146, 77, 67, 59,151, 92,185, 45,189,130, 43,173, - 88, 55,154, 75, 20,116,177,248,196,115, 5,222,194,246, 67,146, 28,141, 45,163,207, 41, 43, 33, 38, 16,110, 47, 3,155, 80,211, - 36, 30,156,233,216,218, 88,185,170, 77, 23,178,188, 23,227,186, 28,163,186,173,118,178,117,180,106,218,189, 95,188, 60,104,208, -166,189,108, 38,127, 18,185,255,185,146,123,118,253,211, 64,182, 62,228,245,241,103,234,186, 90, 94,246, 51,232, 91,154,147, 37, -189,210, 88,109,144, 66, 32, 69, 38,229, 76, 66, 84,189,122, 33, 7,168, 12,157, 76,184, 16,233,148,196, 20, 80, 8, 13, 40,165, - 80,126, 68,198,132,218,185, 50,178, 72, 96,148, 38, 26,141,233,122,218,182, 67,219,134,182,159, 97,140, 65, 90,131,182,134, 76, -174,188, 7, 77, 32,147, 83, 38, 73, 93, 33, 39, 73,200,165, 99, 79, 66,236, 51,147,153,204,190, 34, 57, 70,198,228,240, 62, 16, -115,172,235, 33,177,141, 99,241, 94,113,174,144,155,166,212,182,195, 44,229, 15,155, 77, 78, 86,131,217, 23,164, 97,210, 1,123, -246,176, 80,240,143,121, 29,211, 7, 26, 99, 5, 97, 44, 24,191, 63, 96, 67, 47,102, 69,191,106,155,114,156,185, 80, 14, 55, 31, -202,247, 18,135,242,119,198,106,103, 56, 86, 61,101, 13,122, 33,133,247, 18,241, 62,162, 70,249,215,127,251,183,248, 79,127,237, -239,114,231,185,155,184, 49,224,124, 32,250, 92,127,140,215,211, 7,133,225,120,126,196,114, 54,227,246,209,146,153,109,144,173, -194, 72,197,162, 49,204, 90, 85,227,196, 19,228,204,106,235, 24,221, 8, 34,147,125, 34, 10,193,213,182,132,183,196,152, 89,175, - 2,171,171, 29,231,235, 45,187,221,136, 15, 30, 31, 18, 82, 72,238,189,189,226,222,102, 7, 17,108,149,151,197,224, 8, 89,113, -113,233, 25,131, 99,244, 17, 55, 70, 92,242, 16, 51, 65, 8, 4,146,205,224,184,220, 56, 70,159,153, 55,146,209,121,180,146, 44, -250,134,219, 55, 23, 28,157,206,249,196, 11,183, 16,237, 2,171, 90,124,101,192,175,118, 91, 72,145, 70, 23,111,128,103,159,191, -193, 23,126,234,111,243,175,127,231,255,225, 7, 38,236,227,129,179, 73, 87,230,239,100,184, 84, 11,162, 76,188, 71,103,246, 81, - 15, 38,253, 1,247,151,135,127,127, 42,232,170,234,135,167,249,103,101, 49,139,201,135,161, 22, 77,177,139, 92,244,130,190,230, -141,183,166, 97,181,185, 66, 10, 88,239,182,252,233, 95,125, 23,222,126,245, 26,181,122,234, 5, 93,214,180,182,182,219, 95,124, -212,193, 65,158,115,189, 40, 85,207,110,161, 32, 12,251,125,212, 90, 80, 29, 28, 31,149,196,191,163,121,209,149,119,109, 41, 38, - 85, 1,137,110,176,148, 68,202,165, 44,137,131, 34,122,174,124,160,201,145,123,110,199,102,220,128,223, 33,117,135,147,154, 59, - 93,135,149,130,101, 99, 48,213, 67, 66,213,128, 43,163,138,217,212,188,183,215,130, 20, 50, 37, 60, 43, 71,114, 12, 5,132,168, -118,221,132,136, 30, 35, 65, 75,172,143,200,154,149, 33, 43,129, 75,138,124,205,229, 82, 70, 99,164, 68, 91, 67,219, 24, 18,169, -152,125, 9, 16, 66, 48,239, 91,156, 27,232,172, 45,102, 66,100,230,182, 37,166, 80, 56,181, 89,149, 99,218, 10, 98, 18,251,140, -243,198, 22,136,254,144,179,112,152, 45, 17,124,173, 77,121,111,216,162,197, 94, 58,145, 39,130,167,170,103,220,193,251, 56,212, -226, 63,233,190, 85,174,246,220,186,202,200, 84, 33,185, 54,181, 97,138,197,116,168,196, 40,155,242,107,217, 84, 50,221, 52,163, -143,229,189,119, 99,181,205, 86,149, 53,175, 31,207, 79,226,123, 90,212,219,190,232,109,251, 6,164, 70,181, 13,141,177,204,141, - 65,203,150,156, 34,141,105,176, 82, 19,146, 71,150,119,147,148, 2,141,132,133,166,116, 49, 66, 98,115, 70, 33,203, 51,244, 9, -147, 37, 42,122,162, 75, 88,109,112,198, 34,155, 14,211,207,104,141, 69, 89, 75, 59,235,137, 62,162,171,183,176, 8,177, 20,108, -169,145,100, 66, 77,132,147, 2, 54,209,163,108, 49, 70,201, 57, 18, 67, 66, 8, 65,140,169, 64, 72, 57,227, 98, 32, 36, 79, 68, -144,147,199,167,226, 74, 23, 83, 34,196,136,159,152,141, 83,210,148,143,133,240,246,145,141,187,210,158, 85,169, 38, 39,162,218, -169,167,248,152, 33, 5, 15,221,244, 98,253,122,140,173, 70, 7,213, 47,190, 95,212,244,188, 74,216,112,187,253, 92, 52,135,122, - 1,136, 48, 78, 58,244,176, 95,116,250, 33, 22,253, 20,245,247, 33, 68,160,230, 63,248, 18,255,245, 63,254,135,124,241,203,159, -195, 24,205,110, 44, 33, 7, 41,102,178,200,164,148,137, 33,145,131,164,177, 29, 55, 79,110,240,220,233, 41,203,197,140,227, 69, -139, 80,146,155,139,142,219,199, 29,157, 45,220, 8, 33, 96, 51, 68, 86,131, 99,227, 28,187,157,199,187,192,198,123,214,235, 29, -219,245,200,229,197,150,132, 33,197,196,118, 51,224,119,142,113, 23,217,173, 71,132, 78,197,215,223, 39,148, 22, 8, 13,227,110, - 96,116,158,205,122,139, 31, 28, 62, 10,182,155,145, 97, 28, 9, 33, 51, 14,129,245,214,177, 25, 60, 46, 41,114, 78, 4,239, 25, - 35,228,156,104,173, 40,121, 29, 25,122,173, 88,180,154,101,111, 89,246, 51,238, 62,123, 11, 59, 59,226,232,228,140,123,111,191, - 77, 12,145,166,177, 37, 60,207, 71, 94,120,225, 25, 62,255,147, 63,198,239,255,206,239,253,128,117,234, 53,255,122,146, 25,197, -176, 15,220, 73, 60,126,184,134,212,123,183, 51, 93,198,104,197,146, 51,188, 23, 62,133,189, 52, 72,215,131, 86,213,208, 27, 33, - 30, 44,236,126,196,125,231, 77, 94,253,206, 95,241,141,237, 21, 89, 57,122,107,113,206,241,199,175,127,135,237, 55,191, 5,126, -252,224, 98,254,137,151,249,244, 79,124,145,123,127,245,215,143,184,121,124,200,243,154, 46, 67,227,184,151, 80, 93,187,140,229, - 3,195,160, 90, 8,164, 44,207,162,105,192,206, 74,103,222,218, 18,176,210, 54, 85, 45,162,202,254, 77, 19, 81, 42, 17,108,203, - 11, 77,135,200,145,224, 7,124,138,164, 48,144,220,142,239,110, 86,228,113,139, 80,154,185, 2, 77, 65,152,132,182,180, 53, 23, -192, 72, 69,140,137,166, 51, 52, 2,102,115, 83,199,203,213,252,171,250, 83,229,148,209, 58, 33, 82,113,238, 36,102, 68, 12,228, - 24, 80, 49, 34,114,177,162,176, 2,180, 80, 64, 68, 8,137,110, 44, 70, 91, 76,107,208,141, 65, 27, 77, 22,208, 54, 77, 33, 76, - 75,129, 49,138, 24, 35, 93, 91, 96,247,242, 22, 75,188, 31, 49, 82,145,115,105,150, 78,187,142,251,195,128,106, 44, 81,203, 26, - 21, 61,141, 53,171, 23,186,182,149,116, 60, 49,217, 15, 50,237,179,219,155,183,196, 74, 98,156,194, 46,114,189,156, 38,202,179, - 14,126,239,177, 46,155, 82,208,175,199, 52,182,172,215,144, 10,154,137, 40,223,188, 16,123,189, 58,147,180,211,151,117,234,170, -211,155,169,121,244,166, 58,212, 81,211, 47,197,247, 62, 11,224,227, 21,245,190,173, 48,146, 41, 55,167, 89,143,178,134,179,174, - 47,129, 43, 74,208,155,142,148, 19,137, 92,154, 84, 33,144,100,218, 28,208, 57,128,200,180, 82, 33, 82, 36, 42, 69,147, 74, 97, -143,128, 30, 74, 81,237, 81,120,173, 80,243, 57,182,105,208,198, 18,148, 98,214,119,228, 24,209,173, 37,197, 90,144,116,177,129, -117,209,147,140, 33,121,143, 19,137, 49, 6,100,134, 40, 37,161,250,121,103, 37,137, 62, 84, 87,191,120, 93,184, 5,144,235,131, -207, 41,226, 98, 66,145,145, 66,176,217,212, 52,171,237, 88,180,222, 34,215, 91,216,227,220,236, 15,108,103,227, 19,144,228, 14, -217,237,135, 63,159,244,138,105,138, 91,181,101,145, 42, 85, 10,248,110, 40,139, 55, 84,134,168,171,172,244, 84, 11,119, 99,247, - 16,209,116,112, 79,183,225, 84,103, 85,227, 7,155, 69,156,254,228, 79,240, 63,252,246,175,242,210, 75,119, 42,241,180,204,187, -189,247,140, 33,226,118,129, 97,240,108, 46,183, 24,221,115,243,198, 45,158, 61, 61,225,232,168,165, 51,166,146, 67, 51,179, 70, - 33,165,192,197,200, 16, 51, 99,130,245,198,115,126, 57,176,221,121,134,209,179, 90, 13, 92, 93,110,217,172, 6,182,187, 1, 63, -122, 98, 78,108,199, 80,188,222, 47, 7,156, 27, 8,209, 17,125,201, 5,200, 62,161,148, 34, 69,201,102,181, 69, 74, 65, 74, 25, -183, 29, 24, 54, 35,155,203, 17,183,113,184,113, 96,231, 29, 41, 4,182,155,145,113, 44, 23, 9,171, 4,189,145,236,198,136,208, -146,152,114,229, 33, 85,243, 36, 37,105,172, 98,222, 27, 94,188,121, 68, 63,155, 33,237,156, 20, 5, 73, 4, 4,138,144, 18,219, -209,113,231,217, 51, 62,247, 19, 63,206, 31,252,159,255,247, 15, 86, 97,143,213, 1,239,253, 2,119, 30,231,101,236, 62,170, 52, - 85,130,230, 24,203, 33, 60,107,246,100, 35,173,247,178, 34,216, 39,103, 77, 45,182,172,126,245,213,212, 67, 92, 27,238,212,175, -115,181,227, 45,231,249,230,219,111,241,205,183,222,100,251,221, 55,201,227,250,209,223,195,122,197,223,254, 59,255, 17,183, 62, -253, 9,190,251,141,111, 60, 30,107, 93, 86, 5,201,244,181,235,135,252,248,167,203,178,214,165,136,207, 23,176, 60, 65, 30, 31, -145,151,179,131, 44,123, 85,138,130, 82,251,142, 51,133,210, 68, 9, 65,204,137, 24, 60, 97, 92,211,165, 76,218, 94,208, 4,199, -184,189,226,221,237, 10,198, 1,225, 7,192,243, 66, 51, 99,214, 47, 57,178, 13, 90, 74, 66,202,215, 33, 44,157, 22,116,115,195, -220, 42,218, 70,162,165,160,111, 37,186,122,150, 79,118, 4,201, 23,110, 74,218, 13,197,139,127, 8,197,162, 59, 23,200, 93, 9, -137,105, 12,198,180,216,182,197, 54, 22,213, 53, 40, 99,139, 47,137,181, 40,169,200,185,204,238,181, 42,132,232,198, 54,196,224, -209, 82,212, 16,180,132,175,239, 81, 18,197,253,115, 32,176,108, 91,132, 20, 8,163,112, 86, 22,228,176,235, 10,218, 41,227,158, -137, 46,170, 13,172, 72,117, 92,193, 94, 97, 20, 40, 5, 53,199,189, 93,175,212,165,232, 83, 73,193,147,235,219, 48, 22, 79, 14, - 95, 47, 9,186,202,214, 68,222, 7,124, 9, 91, 85, 32, 84, 51, 25, 81,244,233,169,218, 2, 79,151, 58,173,170, 11,103,189,236, -153, 74, 88,252, 62,116,233, 31,175,168,107, 93, 61,190, 21,204,106,234,143,214,204,103, 51, 52,146,185,181, 37,214, 84,148,141, - 55,201, 34,148,128,144, 3, 46, 7, 22,178, 60,160, 46,139,210, 77,231,140,164,108, 36,149,138,180,204, 38, 81,162,110,109,135, -237, 59,178,178,100, 37,209,198, 48,166, 64, 86,229, 96,148, 36,164, 54,136, 24,217,230,136, 82, 18,231,194,117,198,201,232, 61, - 89, 22,214,189,203, 9,157, 82,129,226, 67, 34,197, 2, 31,249, 80,224, 31,159, 28, 32, 8, 49, 17,115,192, 42, 69, 22,153,115, - 63, 98, 90,131, 27,171, 94,209,213,212, 41,255, 4,126,209, 79, 18, 35,120,248, 94, 72,249,224,165,224,176,184, 79, 9, 91, 50, - 23,107, 67, 31, 96,187,131,113,183, 47,212,147, 43,216,195, 29,255, 3,159, 99,234,212, 39, 56,182,182,108,215, 16,252,190,187, -249,217, 95,255, 69,126,235, 31,253,125,142,230, 61, 87,155, 29,219,245,192,110,112,108,119,158, 24, 51,195,102,100,183, 25,136, - 46,161,153,243,204,157,103,248,220, 39,110,114,231,164,165,181, 6,231, 19,177,118, 96, 62,129, 71,178,118,137, 55,223, 90,113, -117,185,101, 61, 4,134,144,216, 14,158,205,122,199,230,202,177, 91, 15,248,224, 24,183, 3,193, 7,198,113, 32,120, 71,116,129, - 24, 3, 57,149,241, 71,172, 58,252,148, 34,195,110,199,118,189, 99,216,141,172,207, 47, 16, 66,225,156, 35,249,177, 34, 53,144, -115,196,143, 14,165, 53,195,232, 10, 23, 67, 70,164, 80,180,179, 98,173,235,198, 72,211,106, 6, 95, 80, 39,170, 92,174,240,199, - 4,141, 49, 40,173,137,178,229,153,219, 55,217,110, 3,110,216,161,219,134, 97,189, 97, 12,137,231, 94,184,201,115,159,248, 36, -127,246,251,127,244, 24,216,245,191, 7,175,105, 86,220,170, 50,119,182,109,145,136,118,179,122, 24, 86,242,230, 4, 89,155,169, -176,137,125, 65,159, 58,225, 44,246,168,209,251, 25,238, 72,138,229,235,197,101,249,111, 28, 74, 33,248,160,103,167, 75, 44,232, - 55,183,107, 94,190,243, 44,127,253,245,175,239, 33,245, 71,237,205,198,150,175,185, 53,123,100, 97,114, 15,211, 15,141, 39, 38, -253,179, 86,165, 11,188,121,198,252,120,206,252,120,206,216, 88,178,177,213,209, 44,214, 17,218, 65, 54,192,100, 87,154, 98, 41, - 60,227,134,237,184, 97,117,117,159,221,246,156,215,238, 95,225, 55, 87,188,182,170, 5,189, 85, 28,205, 58,110,182, 61,199,205, -156,214,182, 40, 37, 64, 89,186,156,176, 82,211,181,146,229,204,208,181,197, 0,108,222, 42,186, 86, 33, 98,194, 54,170, 18,147, - 51,209, 7, 68, 78,196,245, 72,206,137,184,222,146, 71, 71,118, 30, 65, 46,231,182,110,139,153,152,209,116,205,140, 44, 21,221, -172, 67,100,133,181, 6, 41,101, 97,190, 91, 83,198,108, 85, 94,155, 98,192, 24, 75,162,132,112, 73, 81,124, 78, 93, 8,180,198, - 18,115, 44, 6, 98, 82, 18, 98, 36, 9, 73, 18,130,104,234, 57,118,212,150, 11,144,243,165,176,235, 41,173,208, 20,107,110,171, - 32,200,178,230,144, 85, 55,174,246, 50, 76,125,224,149,129,170,217, 21, 19,201,174, 22,236,209,213, 5, 85, 47,101, 82,148,130, -158,134, 18, 7,157, 43,220,126, 77,134, 22,251, 28, 7,228, 1,121,234,192,202,217,249, 3, 31,136, 39,100,193, 77,126, 8, 19, -195, 62, 61,110, 81,159,236, 64,219,190, 44,236,190, 41, 48,154, 82,220,232,122, 50, 25,171,219, 58,151,206, 40, 33,201, 57, 33, - 40,208,187,200, 25,159,224,140,200, 32, 51, 45, 18, 35, 4, 89, 42, 68,150,200,148, 17, 8, 68,206, 36,211,208,204,122,178,181, - 37,232, 72, 27,178,132, 70, 75, 92,138,164,156, 80,218, 20,233, 92,142, 32, 20,131,247,132, 84, 50,197,163, 47,182,177, 33, 38, -140, 16,101,159, 8,144, 46, 34,140, 4,153,241, 46,144,114, 34, 11, 73,240,158, 24, 2, 62, 7,132,144,164, 84, 82,186,102,178, - 33,228,196, 54, 87,150,231, 24,107, 30,111,252,155, 61,103, 31,238,162,141,222, 23,228,233,207, 38,184,127,136,101,118, 30,195, - 30,154, 63,204,182,126,212,231,152, 22, 96, 83,229, 46,170,250, 38, 95, 31,124,165,216,255,226,111,254, 26,191,240,107, 63, 71, -223, 88,222, 61, 95,177, 94,237, 24,135,192,118, 23,240, 99, 49, 0, 73, 49, 99,245, 12, 35, 91,142,143, 79,121,246,230, 9, 77, - 53,126,241, 46, 17, 66, 98, 12,153,213, 48, 18, 92, 34,184,200,253,203,129,119,207,215,220, 59, 95,179,190,220, 49, 12, 35,171, -243, 29,187,237,192,110,189,102,231, 6, 98,240,184,193,177,219,108, 9,163, 71, 32, 24,135, 13,227,110, 64, 25,197,176,217,162, -141, 41, 69,158, 76, 8,158, 97, 59,224,221, 64, 76, 9,231,119, 56, 55, 34, 20,228,236, 9, 99, 64,217,150, 97,187, 37,231, 76, - 38,147, 92,194,246,134,172, 45, 41, 22,109,104,132,162,121,175,227, 37,137, 68,107, 81,221,118, 51,179, 89,195,113,223,176,114, -208, 88,195,141,211, 37,235,130,221,227,189,195, 15, 35,194, 24, 94,124,249, 46,119,238, 62,199, 87,255,240, 79, 63,160,144,255, -123, 84,208, 31,190,127, 88, 83, 70,117,218, 20,173,175,148,229,240,173, 9,137,165,123,105, 74, 1,166, 66,213,147,167,245,225, - 75,240,225, 29,142,148, 31,192, 17, 72, 31,204, 90, 23,192,253,243, 82,208, 39, 8,246, 81,133, 93,235,253,197, 3, 30,204,224, -158,138,251, 84,224, 39,178,148, 22, 37, 11,226,248, 8,121, 60,227,120,214,211,118, 45, 94, 75, 22,198, 20,103, 53, 33,247,172, -107,113,192, 68,140,161, 60,155,213, 21, 92, 94,192, 59,239,146,175,118,140,111,190, 11,171, 53,187,243,251,229, 18,208,104,132, - 41, 49,167, 47, 46,207,138, 23,187,208, 72,105,145, 57,209, 91, 75,171, 4,139,185,165, 49,154,227,153,102,209,149, 46,189, 53, -146, 89,171, 17, 33,151,112,172, 92,208, 39,191, 29, 32, 38,194,197, 21, 41,248,242,252, 67,177,127, 45, 53,180, 65,182, 6,221, -244,101,162,208, 55,228,148,153, 29,117,228, 92,164,161, 77, 99,137, 41, 34,170,155,232,148,182, 23, 67,198, 71,143,182, 22,239, - 35, 81, 36,180, 82,248,148,208, 82,145, 36,140, 62,208, 24,197,152, 34, 43,239, 49, 82, 18,173,134, 93, 93, 7, 93, 91,189, 54, -100,121,206, 34,237,253, 54, 52,101,124, 17,198,130,130,140,245,207,146, 42, 90,114,101,107,224, 77, 61, 39,167,247, 74,230,234, -219, 94,211,218, 38,227, 26, 89,223,139, 41,187, 60,213,116, 52,217, 20,216,125, 50,234,210, 83, 8, 75, 40,159,127,116,123,111, -248,244,148, 92,243,100,253,223,245,122,127,239, 90,253,120,240,187,172, 29,122,215, 94,207,134,111, 44,230,164, 36,153,155,134, -144, 60,173, 52, 52,218,144, 43, 33, 45, 19,203, 27,149, 2, 22, 24,114,230,148, 18,119,106,116,131, 77, 32,132, 36, 10, 48, 33, - 35,173,161,233, 58,178,212,133,140, 97, 52, 57,197,210, 36, 42, 81, 50,235, 41, 40, 76, 36,145,133, 64,145, 25, 70,135,212,130, -113, 61, 16,157,135,152,104,164, 38,133,128,212, 18,124, 68, 24, 69,172, 51,110, 41, 51, 62,100,198,232,200, 41,225, 83, 68, 85, -253,253, 54,184, 98, 73, 26, 61,107,231, 56,110, 91, 54, 87,219,178,241,220,184,223,128,127,163, 7,168,126,176,115, 57,132,227, -167, 66, 29, 83, 9, 37,152,110,138,135, 7,214, 33,209,238, 81,159, 35,213,219,238, 68, 70, 65,215,195,178,144,127,126,241, 31, -254, 26, 63,251,247,126, 26,107, 13,171,237,192,213,197,142,171,119, 46,137, 41,163, 26, 77, 12, 17,239, 60,182,233,152, 47,122, -180,208,104, 97,144,141,194,214,113,105, 78, 5, 54,223,121,207,224, 3,195, 16,185, 28, 6,238, 95,172,216,238, 70,220,206,177, -217, 57, 86, 23, 23,236, 86, 27,114,242, 4,225,233,218, 6,211, 25,148, 82, 52,125,135,247,174, 54, 71,153,209, 5, 66,130, 76, - 70, 41,141,247, 99,185,249,167,200,224,118, 72, 36, 99,204,196, 16,112, 33, 32, 19,120, 95, 46,122,214, 26,164, 82, 12,219, 29, -237,220,226, 93, 68,106,139, 54, 18,211, 88,178, 47,198, 69,227,152,104,172, 38,102,232, 26, 67,170, 70, 70, 25,129, 86,154,163, -206, 50,107, 20,111, 94, 12,197,173,110,222,178, 25, 2,227,118,131, 27, 6,114,200, 36, 41,120,233,229,187,156,156,221,226,223, -254,233,255,123,176,115, 63,134,220,205,216, 58,135, 85,223,191,156,234, 7, 10, 93,189,244, 77, 14, 90,211,248, 71, 83,138,248, -196,241,152, 8, 75, 91, 87,153,198,149, 56,102,108,233,170,115,117, 33, 52,242,193,194,254, 97, 7,226,163,164,101,239, 87,160, -223,239, 2,192,161,173,241,251, 4, 55, 77, 36,190,195, 56,225,105, 68,160,229, 62, 76, 73, 29,252,158, 48,197,143,125, 62,135, -229,156,103,231, 61, 95, 60,157,113,199, 26,238, 52,150, 99,149,105, 51,220,167,186,130,229, 10,243,250, 88,216,244,155, 29, 92, - 92,193,197, 10,222, 57,135,221, 21,220,187, 40,138, 21, 95,231,198,203, 57,116,182, 56, 32,246, 51, 26,213,176,108,150, 88,163, -209, 90,161,132,102,222, 54,156,206, 52,243, 86,115,107, 97, 56,157, 25, 58,163, 88,106, 65,171,196,117,152,156,212, 16, 92,100, -112, 35,164,204,112, 85, 52,253,121,231,136,187, 1,157, 32,197,132,210, 22,221,119, 24,221, 96,186,242,115,178,160, 93,180, 4, -151,200, 6,172, 46,238,137, 82, 10,132,144,228, 92, 8,212,185, 74,100, 75,100,121,172, 1,118, 5,193,141, 41,225, 40,242, 59, - 41,139,171,103,202,153, 31, 62, 94,242,134, 27,137, 33,150,139,162, 82,123,155, 87, 33,106, 86,123,141, 36,213,166, 32, 41,209, - 23,162, 27, 53, 73, 45,248, 82,108,141, 41,235,210,135,242,113,162, 42, 12,130, 43,191,214,162,204,225,117,165,197,171,106, 94, -211,217,162, 22,162, 94, 24,162,171, 94, 38,234,192,190,117,202,218,144,149, 60, 39, 31,140,155,126, 82,208, 77,195,123, 4,107, - 85, 25,114,184,198, 63,122, 81,175,217,214,232,174,124,179,141,133,182, 45,100, 8, 93,216,202, 66, 10,172,178, 69, 38, 6,248, - 28, 81, 8,114,206,136, 92, 10,231, 82,137, 98, 9, 91,195,221,149,177,184,148,104,178, 36, 40, 73, 86, 6,169, 53, 65, 22,141, -114,204, 5,186,153, 76, 15,144,146, 44,192,199, 88,158,169,139,236,182, 91,116,134, 97,181,194,185, 1,157, 18,109,130, 93,112, - 36, 81,100,115,187,156, 80,185,104, 40, 99, 42, 8, 66,164, 72, 44, 38, 19,126, 23, 2, 62,122,172,182,184, 24,112, 49, 96,132, -228,254,110, 44,208,112,240, 48,248,239,157, 95,244,199, 38, 53, 29,192,228,135, 80,250,161, 51,216,225,143,215,142, 75,122,191, - 24, 14,255,254,251,125, 14, 45, 31,180,185,109,116,133, 53, 3,255,232,191,251,199,124,249,239,254, 56, 66, 10, 54,187, 66, 86, - 27,182, 3,126, 24,201, 72,114, 44,207,217,152,150,174,233, 88,118, 45,243,206, 98,149,162, 81,138,163,185, 65, 74,216,140,137, -139,157, 99,181, 25, 89,173, 70, 46, 87, 27, 46,175,182,172, 47, 55,108,174, 54,184,193,179,189,218,144,114, 68, 91, 73,215,105, -206, 78, 79,233,230, 45,177,118,118, 66, 64, 59,111, 57, 57, 91,114,116,180,164,157,245,204,231,109,153, 26, 12, 1,173, 53, 82, -105, 98, 8, 12,110,192,104, 67, 72,133,149, 47,201,104, 83,102,143, 46, 56,146,143, 8,138, 89, 70, 99, 53, 57,129,181, 13,218, - 74, 36, 26,219,107,132, 79, 56, 37,233,181, 70, 72, 65,240, 48,239, 20, 86,203,234,107, 81,160,206,222, 42,146,144,172,118,129, -227, 70,113,231,236,152,171,144,185,255,238, 91,144, 50,209, 39,146, 16,188,240,242, 93,222,220, 57,222,249,214,183,247,108,233, -143, 4,193,235,125,231, 8,223,223,162,174,171, 4, 72,176,119,239,210, 53,230,178,111,202, 33, 89, 52,172, 7,116, 99, 81,214, - 80, 78,229,224, 53, 77, 37,140, 86,222,134,154,172, 56,217, 67,159,143,114,226, 58, 52, 96,202,249,209, 28,148,235, 51, 81, 62, -136, 2,168,131, 75,132,170,249,217, 15,195,154,178,146,159,174, 61, 33,234, 97,207,164,104,169,123, 37, 86, 71, 52, 59, 43,185, - 24,198,150, 70,168,111,249,212,188, 71,137,204,204, 88, 82,246, 52, 82, 35, 85,226,237,161,100, 93, 20, 31, 12, 15,155, 17,214, - 99,201,143,184,218, 20,121,213,184,171, 69, 63,236,207,227,163, 57, 52, 6,161, 53, 89,107,110,206,102,156,205,110, 16,210,200, -113,115,132,209, 22,169, 5, 51, 93,236,143,159, 59,110, 57,158, 91,140,148, 28,155, 34,101,235,141, 66, 2,214, 8,198,173, 39, -164, 76, 10, 17,191,243,132,237,142, 52, 56,198, 97, 68,134, 88,209, 77,176,179, 35,162,177, 36,219, 32,109,131,182,229,204,110, -109,233,198, 91,107,241,201,151, 44,246,144, 48, 74, 21, 46, 19,144, 66, 32,167, 72, 8,190,102, 71, 21, 62, 66, 8, 1, 41, 36, - 46, 38,100,149, 52,134,156, 80,202,240,218,110, 75,206,133,100, 25, 99,220, 39, 82,198,253, 24, 5, 68, 33, 26,250, 58, 7, 23, -170, 92, 18,109, 83, 81,230,118,127,182,249,176, 39,186,201,138, 22, 73, 91,160,121, 79, 33,197, 37, 15,186, 50,218, 85,157,161, - 79,219, 48,109,235,252,190, 94, 68,115,101,243, 78,113,197, 70,236, 35, 90, 39, 39,184, 84, 77,104,158, 40,116,105,154,229,203, -247, 94, 80, 31,171,168,203, 26, 61,215,232,253, 28,204, 40,140, 49, 44,218, 2,187, 47, 77,143, 39,160,165,194, 5, 71,163, 44, - 46,249, 50, 43,215, 18,153, 18, 67, 10, 52, 74, 32, 16,180,218, 84, 41, 69,177, 50,148,202, 64,215,147,148,169, 4, 69, 65,174, - 10,176,156, 19, 89, 9,156,243, 36, 4,113, 44,249,217, 97,220,161,115, 34,143,174, 4,105, 92,173,200,162,232,209,149, 44, 76, -247, 40,192,202,140,143,153, 4,168, 92,179,215,115, 66, 10, 69, 8, 14, 41, 36, 57, 11, 16,146, 49, 12, 40, 33, 42, 11, 62,178, -114,190,220, 18,165,132,203, 45, 79, 53,128,224, 73,110,111,239, 55,163, 63,156,135, 79, 29,199,244,107,127,208,173, 79,139,225, - 48, 4,230, 3, 47, 10,245,192,189, 38,210, 37,126,227,191,249,175,248,209,159,248, 17, 66,202,108, 54, 35,187,173, 99,125,185, -197, 13, 1, 33, 53,255,226,143,255,128,119,223, 57,231,135, 63,253,105, 22,221,156,190,109, 49, 70, 49,111,123,158,191,187,228, -185,211, 25,173,149,196, 12, 87, 99,145,164, 93, 94, 14,236,134,145,113, 40,196,183, 68, 34,134,140,180,144,146,231,228,228,152, - 91,183, 79, 56,154,247,244,199, 29,179,101, 83, 58,145,197,140,174,181,156, 30,207,120,249,165, 27,116,179,134,101,107, 56, 58, -233, 11, 60,158, 18,253,172,229,232,104,198,209,217, 12, 55,122,198,113,192, 42, 77, 74,169, 92,242, 83,113,170, 75, 33, 21, 84, - 47,103,140,153,149,176, 10,153, 11,226, 36, 20,136,140,115,158,119,222,190,224,237, 55,222,229,106, 53,224, 83, 38,136,204,209, -172,225,116, 97,136, 49,179,113,153,182,209, 24, 45, 9,185,232,106, 82, 12,156, 44, 13, 74,181,172,119,153,205,230, 28,211, 52, -108,215, 91,186,174,229,243,159,255, 33,254,229, 63,255,221,131, 46,189, 50,119, 77,133,173,229, 65,183,152, 14,224,121,165,190, -255, 69,125,234, 92,197,193,148, 32, 79,197, 91,149,116,191,147,101, 41,242, 70,213,228,190,218,137,231,202,172,159, 58, 41, 57, - 29,176,149,215,225,253, 30,178,140,241,195,179,230,167,162,124, 8,161,127, 80, 81, 79, 15,117,234, 83,246,245,117,114, 76,189, - 68, 60, 28,190, 49,217, 49, 43,246,182,207,141, 41,228, 45,219,195,141, 19, 56, 62, 46, 68, 64, 91,207, 73,219, 66, 95,212, 39, -243,198,114,167,147, 44,148,193,103, 95,145,118,141,206,153, 83, 5,175, 93,108, 97,189, 43,251,107, 51,192,246,162, 64,239,163, -175, 73,145, 60,232,224,135, 42,235, 98,209, 35, 90, 67,163, 45,103,221, 17,173, 50,156,204, 78, 24,220, 64,163, 20,198, 52, 44, -187,150,103,142, 59,218,185,161,183,146,165, 41, 16,247, 92, 74,148, 20, 52,178,176,222,165, 20,236, 86, 14, 23, 60,195,213,134, -205,214, 49,120,199,214,121, 6,169, 25,141,197,156,156,225,108,139,154,117,228,166, 37,117, 22,165, 53,170, 83, 4,169, 42, 87, - 2, 68, 46, 36, 89,109, 4,110, 12,229,222,153, 50, 41, 70,114,202, 40,169, 74,209,206, 16,146, 32, 2,161,252, 69, 66,206,132, - 24,105, 85,203, 16, 35, 89,150,224, 18, 7,133,111, 21, 42,249, 55, 86,168, 61, 76, 5,180,114, 52, 76,253, 51,165,247, 73,103, -162,194,235,218, 20,251,221,209,237, 17,150,237,118,191,246, 38,235, 87,106, 55, 62, 93,152, 51,133,148, 39, 42,193,120, 74, 43, -204,106,210,204,213,200,214,184, 39,203, 77,232,231, 97,163,244,164,208,187,156, 28, 40,167, 53, 28,222, 3,193,127,188,153,186, -168, 80,159, 85,213,160, 62, 35, 91,203,210, 22,155,193,148, 18,141,148,236,188,163,179, 45, 57, 7, 20,162, 24, 20,196,136, 20, - 25,133,192,133,132,210, 26, 89, 18, 1,208, 82,145,149, 70,154, 14, 45, 21,194, 20,232, 93, 40, 81,185, 35, 69,170, 22, 98, 34, -231, 2,153,198,156,241,187, 21,126,181, 34, 12,142,148, 2,140, 59,178, 20, 52, 66,213,247, 81,128, 44,198, 10, 8,139, 34,151, - 46,159,140, 76, 25,169, 21, 49, 59,188, 80,197, 9, 79, 21,205, 37, 66, 16, 83, 36,231,204,214, 7,146,148,120, 41,201,209, 23, -104, 44,135,167,151, 3,156,158,194,225,122, 8, 49, 30,118,233,106, 10, 54,168,238,117, 66, 92, 91,232, 62, 80,196, 15, 97,202, -135,255, 51, 21,110, 55,250,154, 25,255,219,255,227,127,203,103,191,244, 67, 92,173, 71, 54,235,129,213,197,154,148, 5, 74, 42, - 84,107,144, 82,240,202,157, 23,249,230,171,175,146,183,129,231,238,222, 45,145,186, 73,208, 26,195,209,204,160, 43,187,125,187, -243,108,182, 35,187,109, 96,179,219,177, 93, 13,108,215, 35,227,206, 21,196, 71,102,194,224,153, 45,123,218,206,210,116, 37, 41, - 74, 27, 69,215,106,150, 71, 29, 71,203,134,227,147,142,211,101, 87,235, 76, 70, 40, 65,219,232,107,216,207,206, 12,183,110,204, -217,236, 28,141, 53,164, 24, 73, 89, 16,146, 39, 71,129, 79, 1,171,245,181,242, 65, 43, 69, 22, 1,173, 5,198, 42,114, 76,172, - 55, 87,188,251,246, 61,190,249,173,111,241,246,189,123,228,112,194, 91,239,188,197,159,126,237,235,188,253,250, 57,175,223,119, -108,178, 36,250,132,209, 2, 45, 4,179, 70,145,144,164, 44, 88,111,182, 40, 45,240, 94,208,205,122,238,223,187,143, 54, 6,101, - 20,155,213,142,211,103,142,249,161, 31,253, 2,127,244,127,253, 43,246,246,177,178, 22,109,189,191,249,139,135,138,247,148, 8, -246,253,236,210,101, 13,114,158, 12,105,186,166, 88,155,202, 50,234, 98, 57, 43,135,175,150, 48, 4,104,106,252,100,161, 32,215, -206,190,126,142, 48,148,143,203, 31,115,246, 56, 17,133,166, 3, 46,231,247,118,237,239,167, 48,121, 95,248,253, 96, 46,254, 65, -170,148,154, 33,129,109,144,207,222,166,187,115, 27,223, 26,154,231,239,194,209, 17,185,179,176, 92,148, 75, 75,219, 86, 8,190, -224,218,109,163,184, 99, 13, 89,148,144,148,153,180,196,228,232,114,102,244, 35,223,121,103, 5,235, 45,172,214, 69,165, 50,214, -174,157, 15,136, 59,158,183,112, 60, 3,173, 17, 89, 48, 95, 44, 48, 18,230,166,167, 51, 22,171, 91,250,166,101,222,180,156, 29, -181, 52,109,153,165,207, 91, 93,117,233, 25, 35, 36,173, 46,170,141, 20, 34, 97,240,116, 22,214,219,200,102, 53,176, 14,130,181, -208,140,237,130,173, 49,168,126, 78,104, 90,152,207, 8,214,208,245,229,188,110,122,139,208, 6,137, 2,161, 11, 74, 39, 36,126, -140, 68, 23,145, 58, 17,171,127,134,172,218,251, 12,136, 84, 26,174,152,203, 94,156,124, 66,114,245, 24,145, 90,178,245, 14,159, - 35, 57, 73, 86,222,145,195,193, 37,110, 74, 41,203, 83, 84,111,229,253,200,154,138, 54,249,146,200,122,145, 84, 21,154,207, 19, -131, 93,149, 61,213, 53,251,172,245,201,106, 54,184, 66,138,147,169,102,213,223, 42,163, 14, 83, 59,125, 65,105,114, 69, 40,144, -189,154, 52,241,182, 94, 48,235, 91, 55,233,231,159, 70, 19, 56,201, 74,165,126,176,210, 63,180, 94, 63,222, 76, 61,197,242, 64, -250,190,108,192,166, 72,219,140,144,180, 66, 35,117, 33, 59,204,108, 91,152,199,128, 86,250,186,227,141,117,163,105, 33,200, 34, - 35,181,166, 81,229,176,210, 82,161,108,131,208,117, 6, 83, 97,246,156, 33,107, 73, 16,133,185, 78,206, 36,191, 35, 58,135,173, - 49,151, 54,130,202, 69, 83,169,100,137,122, 53,186, 41, 35, 19, 99,105,148,197, 42, 89,200, 24, 33, 34,201, 36, 37, 25,221,128, -150,138,157, 47,238, 95, 69,108, 86, 72, 30, 84,205,186, 32,179,137,177,248,133, 79,190,240, 62,214,195, 85, 60, 26, 22,252, 94, -100, 78,127, 80,183, 62,253,155, 83,161,158, 76, 60,168,112, 97,245,103,102,116, 15,126, 93,239,215,165,191,223,204,189,126,175, -255,244,127,250,103,124,250,243,159, 96,189, 30, 73, 49,226,199,186, 17,115,198, 13,142,236, 51, 82,106,218,166,229,243,159,126, -133, 23,158,123, 14, 66,145,192, 44, 22, 45,199, 39, 61,189, 53, 37,216,200, 71, 46, 86,158,213,214,115,181, 29,217,108, 11,219, -118,216,248, 98,235, 43, 50, 74, 26,186,182, 65, 73,141,109, 53,243, 69,135,212, 69, 54, 54,235, 44,243, 70,179,104, 45,173,214, - 88,163,144,162, 16,216,250,198, 96,132,160,107, 45, 93,163,177, 82, 18, 98, 98,183,246, 88, 93,180,180, 41, 70, 82,200, 37,164, - 66, 89,150,139, 14, 55, 56,208,138, 93,220,210, 74,193, 56,236,248,235, 55,223,224, 27,175,189,137,115,130, 69,119, 74,202,146, -174,189,205,167,190,248, 57,140,232,145, 33, 51,140, 27,190,246,221,111,242,187,127,242, 85,126,255,207,254,156,215,190,253, 6, -139,155, 55,121,246,230,172,192,138, 62, 17,114, 96,240,137,243, 33,112,121,190, 41,132, 66,183, 37,230,178,158,118, 59,199,237, - 23,111, 50, 34,248,238, 95,252,101, 41,228, 90, 87,139, 74, 14, 32,121,177, 55, 47,250,155,122, 77,136, 65,174,157,205,209,178, -204, 43,115,101, 15, 55, 13,180,245, 18, 98,106, 71, 62,133, 8, 81,101, 94,162, 30,176, 57,215, 61,149,246,100,177,143,178,111, - 30, 62,224,166, 78, 61, 61,162,160, 95,255, 61,249,232,207,251,190,204,119, 3,243, 99,110,188,242, 9,126,248,246, 29,190,253, -181,191, 68,157, 29, 97,206,110,115, 98, 12, 27,219,151,238,124, 54, 47, 5,162,105,234,104, 66, 50,102,193, 12, 74,151,156, 18, -131, 27,145, 49,114,127,183,225,254,118,203,187,111, 92,130, 91,151, 46, 48,184, 71,191,183,198, 22,248,184,235,160,179, 8,171, -104,141,229, 70,183,224,164, 91,128, 16, 44,154,158,152, 50,243,217,156, 89,103, 48,189,229,120,102,174, 57,138,157, 81,104, 45, -208, 82, 48,207,165, 46,249, 16, 89,173, 3,110, 72, 92, 37, 73,150,134,119,101,135, 71, 34,186, 35,180,106, 80,182,193,152, 6, -219,245, 88,163,176,189, 98,244,133, 79, 33,148, 98, 76, 25,159, 5, 57, 39, 92,134,232,227, 53, 7, 69,146, 10, 89,174, 18, 34, -179, 20, 72, 41,138, 71, 72, 44,235, 33,231, 72,111, 90, 20, 10,153, 18, 46,197,194,127, 9,129,148, 51,126,234,188, 75,128, 67, - 69,125,234,154, 17,236,139,182,210,101, 77,181,213, 57,179,179,229,158, 28,235,154,149,170, 20,126,165, 10,107, 94,202, 2, 3, - 52, 85,195,158, 37,184,109,121,198,119,110,208,156, 29,163,250,134, 72, 53,230, 26,134,253, 40,114, 28, 10,223, 44, 85, 19,175, - 92,247,166,148,251, 11,166, 60,224,155, 60, 41,178,251,136, 46,253,227, 23,245,105,227,236,226,245, 77, 56, 91,195, 38, 68, 78, -251, 89, 97,192, 43,137,150, 26,159, 3,173,178,236,130, 43,146, 77, 33,137,169, 20, 0, 45, 96,222, 90,178,200,104,101, 48,218, -146, 84, 49,143,209,182, 33, 27,133, 20, 5, 34, 79, 90,144,124, 42,186,116, 9,195,232, 72, 34,209,110, 86,140,163,195, 8,129, -161, 28,204,198, 40,230, 82,146,234,173, 75, 26, 75,175, 13, 66,168, 66, 48,205, 25,165, 37,129,196, 38, 4, 58,165,217,166, 29, - 99, 40,183,185,109, 8,200, 20,113,201,177, 75,197,168, 38,196, 64,204,137,171,177,134, 11,140,190,220, 0,121,136, 96,118, 88, -200, 31,158,121,124,148,228,166,199,133,225, 15,217,235,135,240,250,196, 70, 57,212,211, 78, 48,210,225, 60,253,240,224,123,224, -123, 50,176,163, 0, 0, 32, 0, 73, 68, 65, 84,115,164,189,222, 83, 38,248,220, 23,249,103,255,253, 63,225,211,159,121,158,221, - 24, 73, 49,177,219, 56,164,148,104,173, 8, 46,224, 6,143,214,154,228, 19, 90, 27,218,166,132,237,100, 47, 88, 44, 91,238,156, -206, 57,154,183,180, 86,147, 82,102,179,173, 5,125, 28,217,237, 60,209, 21,166,188,146, 18,221, 72,154,214,150,204,230,222,114, -122, 54,199, 52,134,174,211,116,173, 98,217, 55,180, 70, 23,251, 86,171, 80,170,216, 65, 42, 41, 74,144,146, 16, 52, 74,161,180, -160,109,202,218, 72,128,214,138,221,232,203,104, 50,102, 98,246,164,144,241, 62,150, 28,247, 52,178,176, 13,243,126,198,253,213, -134,251,235,129,147,238, 22,183, 78,239,114, 60, 63, 99, 27, 50,175,159,191,198,215,223,254,255,184,120,253, 93,222,125,247, 91, - 52,218,224,162,103,227,182,133,212,233, 19,111, 93,173,184,247,250,134,175,191, 49,114, 30,203,220,178,213,162,192,156, 72, 98, - 18,196, 44,216, 92, 92,177,186, 56, 39,231,116,205,156,127,229, 51, 47,243,175,254,197,239,213, 53, 38,139,215,192,195,228,185, -148,254,102,139,186,148, 92, 7, 14, 40,138, 76,200,214, 20, 55,226, 30,134, 55,166,116,234,145,194, 70, 86,213,152,101,242,224, - 14,110,111,179, 58,249, 55,124, 20,168,242,208,233,112, 26, 33, 61, 60, 83,127,148, 3,226, 7, 21,246,135, 47, 2,147,243, 91, -215,193,236, 4, 94,121,158,159,121,238,121,250,254, 6,183, 94,254, 52,179,179, 51,190,112,242, 28,255, 38, 9,100, 63, 47, 35, - 60,211, 66,183, 4,219,178,180, 13,163,105,120, 70, 41,206,133,228,118,142,136,228,233, 1,233, 70, 24, 29,127,248,237,243, 82, -208,183, 97, 63, 51,127,228, 25, 44, 96, 62, 43,207, 91, 73,116,215,209, 41, 77,171, 13,141,180,204,236, 2,165, 36, 77,219, 50, -239,123,148, 81,180,141,166,239, 53, 86, 23,189,122, 57, 11, 4,115, 9,207, 14,130,185,147,156,135,192,189,181,227,124,204,140, - 89,178,217, 70, 92,130, 17,129,145, 2,221, 25,154,121,135, 54,154,153, 81, 72, 83,116,226,178,178,177, 99, 76, 24,163,113, 57, - 19, 82, 38,250,226,200, 72,206,252,255,196,189,105,143,100, 89,122,223,247, 59,219,221, 34, 34, 35,183, 90,123,157,238,153,238, -153,158,149,228,144,179,144,166,104,120,100,137,180, 32,201,162, 12,193,134, 97, 24,134, 13, 88,111,253, 9,244, 73,252,206, 48, -224, 55,130, 0, 3,150, 44,195, 16, 8,129, 34, 9,209,195,197,163, 25,206,210, 51,189, 86, 87, 85, 86, 85,102, 70,196, 93,206, -234, 23,231,220,140,172,154,154,149, 51,102, 2,133,206,174,206,234,138,136,123,239,121,158,231,255,252,151,228, 35, 9, 89, 12, -110, 60, 41, 41,164,150, 8,161, 80, 36, 98,146,196, 20,209, 82,150, 59, 39,226,136,136, 40,217, 20, 82,154, 75,146, 84,242, 24, - 50, 99,189, 92,239,144,178, 27,206,140, 28,201,217,174,178,236,186, 67, 89,205, 76,229, 62,104,171,178, 35,175,138, 29,111,217, -191, 27, 85,238, 99, 83, 28,232,138,163, 92,101, 8, 77, 69, 24,166, 76, 92,156,166,108,208,100, 10,212, 95,215,121,143,222,180, - 89,233,160, 18, 52,203,146, 98, 90,216,244,198,228, 95, 84,217,159,225,106,199,254, 51,162,107, 79,153, 64,205, 60,167, 37,167, -191,245, 25,250,119,238,253,156, 69, 61,148,142,218,134, 43,198,173,234, 26, 98,140,172,234, 38,239, 37, 83, 96, 97, 58,156,183, -153, 9, 95,170,137, 86, 57,142, 47, 23,118,141,198,160,181, 34,206,246,130,166, 34,136, 12,125,250,148,167,233,148, 98,182,116, - 77, 96,221,148,189,159, 99, 68, 90, 71,155, 66,209, 3, 43,144,217, 0, 36, 20,153, 81, 43, 21,149,169,152,164,192,200, 60,249, - 67, 98, 12, 62,243, 96,100,162,119, 3, 83, 76,196, 24,153, 98, 32,132,132,141,150, 62, 70, 76,138, 76,209, 51,134,192, 16, 2, -202, 72,236, 80,144,138, 84,178,117, 67,202,123,173,217, 60,227,122,227,243, 60,210,206,143, 43,236,241,175, 49, 49,137,178,195, -153, 95,135,247, 69,255,250,188,235, 23,159, 62,208,174, 31,124,115,131,162,203,205, 92,138,124,247, 27,191,206, 63,253,253,223, -229,213, 87,110,176,157, 44,206,102, 66,141,181, 33,155,196,184,128, 27, 61,206,122,188,139,153,232, 41, 43,110,223, 62, 98,217, -214,220, 57, 57,224, 83, 47, 31,113,247,176, 99,213, 86, 24, 35,241, 46,107,206,123,231,217,246, 19,211,224, 8, 4,170, 90,114, -124,208,113,120,188,100,213, 54,180,139,154,170,169, 88, 46, 27,218, 54,103,149, 47,154,108, 65, 89, 75, 73, 91,101, 98,150, 20, -100,199, 58,178, 44,199,199,116,245,207,148, 18, 74, 73, 92,202,122,220, 36, 4, 55,110, 46,104,186,134, 36, 53,253, 48,224,220, -136,212,146,187,119, 94,198,232, 21, 62,118,172,218, 99, 22,102,137,199,210, 79,151,188,247,248, 61,254,223,143,126,192,187,247, - 31,209, 15, 35,247,238,221,227,131,113,203, 73, 91,113,105,123, 98,176, 24, 41,176, 62,112,208,180, 28, 47,150,132,221,200,238, -177,231,157,119, 31,240,120, 28,240, 94,224, 37, 56, 23, 48, 90,242,240,163,135, 36,161,184,127,118,159,182,174,112,253, 68,187, -236, 88,159, 28,243,221,111,253,160,200,111, 74,150,121,186,122,170, 51,145,231,111,226,235, 11,159,132,143,206,246, 89,213, 93, - 57,184,116,225, 91,164,184, 55,174,145,101,234,105,230,103,164,202,174,134, 37,116,228,106, 29,180,219,100,114,211,245,103, 67, - 21, 11, 86,165,139,135,118,120, 26,141,146,215,166, 21,249, 12,249,109, 46,242,215, 73,162,215, 81,172,231,173,170, 4,249,253, -164,107, 13,133,169,242,158,188,238,224,228, 24, 78,143, 57, 61,121,129,170, 94,160,214, 71, 44,186, 53,178, 90, 50, 24,195, 74, - 26, 30, 8, 9,205,138,165,174,248,120,189,224,139,221,146, 94,213,124,177,169, 9,186,230,213, 74,209,187,145,102,154, 16,253, -200, 69, 63, 18,156,229,221,179,199,185,160,255,180,150,193, 85, 38, 41,179,168, 65,231,251,249,184,109, 57, 48, 45,135,221, 10, -173, 53,181,106,105,154, 6,105, 26,132,145, 28, 29, 54,212, 38,123, 64, 84,149,196,250, 64, 83, 41, 54, 54,176, 35,112,223, 89, - 30, 91, 71,232, 35,155, 33, 48,133,196,214,131,143,129,160, 52,149,150,212,117, 69, 85, 86, 83,149,206, 69, 84, 75,208, 85,222, - 97, 71, 37, 81, 41, 18, 18,244, 54,159,179,169,164, 60, 75, 41,179,147,238, 24,144, 74, 35, 34, 8,153,175,107, 76, 16, 9,120, - 60, 85,146,196, 96, 73, 34, 19,172, 31,185, 33,155, 28,134,148, 67,107, 36, 56,239,247, 92,142,124,216,228,243, 42,196, 61, 12, - 62, 35, 90, 41,229, 34, 77,218,123, 31,204, 16,126, 73,176,203,135, 74, 93,172, 96,155,252,123,166,202,223,155, 18, 29,237, 3, - 60,217,230,130,158,128,182,219, 19, 73,108,145,216,205, 8,147,174,243,253, 28,108, 81,166, 20,117,138, 44,197, 61,149,220,148, -168,178,244, 45,253, 53,247,237,193,210, 47,187,172,144,224,231,141, 94,245, 62,239, 22,188,133,113, 36,132, 37, 65, 64,239, 28, -139,170, 34,132,132, 19, 19, 66,234,171,152, 86, 23, 60,157,174,217, 57, 87,194, 95,242,244, 24, 72, 40, 41,137,192, 32, 2,141, - 82, 76, 50, 91,181,202, 36,136, 66, 34, 69,200, 77,127, 83,227,167,128, 84,134,169,105, 88, 41,137, 68, 96,129, 6,129, 39, 17, -241,212, 42,199, 52, 70, 60,141,212,108,253, 72, 74, 25,206,247, 5, 98,151, 82, 93,173,248, 34,137,232, 92,113,226,206,222,238, - 54,134,210, 0, 10, 90, 45,217,217, 80,172, 93, 21, 76,133,120,209,212,121, 10,121, 38,132,226, 41,232,123, 46,164,115,218,217, - 47,210,204,255,250, 62,252,122, 99,161,245, 62,160, 0,160, 57,129,221,195,189,139,157, 46,176,174, 44, 7,153,245, 79,191,174, - 57, 20,102,178,168, 47,126,145,255,241, 31,255, 46,183,110, 29,211, 91,135, 31, 61,206, 39,198,126,194,109, 39,188,145, 89, 87, -238, 28,166,174,233,218,142,174,109,185,113,178,230,112,209,112,220, 54, 28, 30,212, 84,198,224, 17,232, 4, 33,228, 6,175,173, - 53,245,168, 88, 24, 67,106, 34, 82, 24,186, 78,113,184,108, 56,232, 42,170, 42,223, 23,143,183, 83, 38,186, 10,129, 79, 9, 37, -196, 21,225, 73, 37, 24, 93,196,151, 38, 42,164,132, 15, 57,128, 66,144,208, 10, 34, 57, 37,106, 33, 12, 34,102, 78, 7, 73,178, - 88,100,120,116,220, 14,128,160, 94,156,114,121, 25,248,193,135,223,195, 37, 79,171, 12, 67,152, 24,253,196,197, 48, 50, 78,150, -139,209, 33,107,145,107,234,144, 96, 51,240,199, 37,142,164,171, 37,175, 30, 30,210,153,200,163,161,231,160,223,112, 99,169,177, -253,134, 16, 3, 15, 63,122,159,147,211,155, 44,215, 45, 71, 39, 43,142,150, 53,175,189,241, 49,254,236, 79,191,206,217,118,160, - 86,231,172,143, 15,120,116,239, 33, 47,188,246, 42, 44, 86,215,238,169, 6,252,144, 15, 16,255, 55,167,190,248,242,107,111,242, - 71,147,135,239,191, 95,228, 69,213,158,112, 38,202,247,190,248,197,171,178, 95, 79,117, 46,186,253, 46, 79,188,233,218, 1,182, -155,138,186, 34, 62, 69,144, 71,181, 80,207,200, 82,202,223,135,248,195, 58,243,164,159,150,246,120,255,252,103,172, 42,191,231, -125,222,253,247,219, 60, 81,167,107,140,104,231,243,239, 25,153,247,169, 55,215,121, 71,174,117,126,214, 23,199,124,242,228, 22, -232, 5, 13,138,164, 36, 71,109, 67,116,142,229,201, 9, 63,216,238,192, 77,156, 52, 29,199, 4, 30,122,248,213,229,154, 71,231, -231,188,209, 5,166,237, 19,190,149, 22,156,125,244, 4, 30,220,135,116, 93, 30,251, 51,156, 9,215, 87, 14,149,161,110,115,147, - 84,107,197,110, 26,169, 85,139,234,114, 51, 99, 67,160,211, 13,227, 20,193, 68, 78, 90,201,118, 8, 44, 59,205,217,214, 34, 36, -156, 91,143,177,158,225,194, 33, 82, 34,197,136,221,141,224, 5, 3,130, 86, 37,164, 49,180, 2,164, 20,200, 20,144, 8,132,203, -164, 82, 69, 64, 36,129, 10,185,216,134,148,168, 67,246,114, 8, 33,103,174, 11,153, 16, 73, 99,234,116, 69,171,240,110,142,185, - 78,153,199, 18, 21, 99, 24, 73, 72, 70, 63,224, 98, 66,167,196, 24, 2, 74, 64,171, 5, 27, 79,153,112,109,201, 97,151,215,140, -104, 10, 33, 83,139,189, 98,231,202,122, 88,194, 82, 61, 93,195, 18, 48, 21,109,250, 52, 27, 21,201,226,156, 90,238, 23, 89, 84, - 28,222,103,196,102,188, 78,208, 44, 50,205,249,114,212, 42,163, 83, 83,202,223, 55,203,226,102,167,247,168,130, 20, 16,171, 60, - 20,155,194, 9,208, 99,110, 22,254, 58,233,109,223,248,222, 95, 3,126,191,186,177, 34, 56,145, 59,117,109,168,171, 42, 59,168, -198, 72, 91, 25, 34,146, 74,202,236,170, 21, 34,181,174,112,193,210,152, 6, 37, 36,149,210, 24,153, 77,238, 43, 93,161,234,138, -170,174, 89, 29,174,243,218,195, 39, 98, 97, 54,134,152,163, 6,133,200,123, 32, 59,246, 28,232, 12,185, 10, 37,105,141, 38,200, -108, 21,216,153,154,136, 32,170,132, 84, 21, 3,145,182,105,114, 20, 38, 17, 97, 20, 46,192, 24, 29,117,221,112, 49, 58,108, 74, -136, 18,152,224,163, 39, 10,193, 24, 61, 62, 5, 42, 45, 56,159, 60,131,143, 25, 90,179,182, 72, 24, 10, 67, 86,215,249,230, 8, -101, 92, 84,197,107, 93,170, 61, 17, 67,166,253, 77, 38,197, 47,198,126,243, 58, 35,247,106,234, 41, 30,217,215, 39, 16, 31,224, -181,151,242,129,187,219,236,225,160, 84, 8,116,149,218, 19,152,230, 73,198, 21, 93,250, 39, 63,203,255,244,223,252,125,222,120, -229, 22,219,201,114,254,100,199,102, 51,144, 98, 66, 8,129,115,142,177,183,217,117,202, 71,218,166,227,244,198, 33, 55,142, 15, -184,181, 94,210, 40,157,225,240, 36, 24, 93, 98,103, 35,151,147,103,231, 60,155,237,196,102,176,236,172, 99,176,158,182, 82, 44, - 91, 67,215, 24, 26,147,239,157, 32, 4,181,145,116,181, 46,171, 89, 73,165, 36, 54,228,132,190,209, 7, 6, 31,136, 41, 49,249, -128, 43,228,153, 16, 83,118, 7,140,241, 74, 7, 79,177,165,204,134, 67,130, 85,173,185,232, 39, 36,112,180,108,232, 7,199,135, -247,222,225,223,189,243, 29,222,254,206, 7,220,127,231, 17, 31,220, 59,227,254, 59,143,120,244,131, 75,118,214,194,162,202, 16, -163,214,220, 94,118,156,222, 58, 64,174, 27,218,198,208,214, 13,151, 59,203,165,155,232, 83,226,114,178, 36, 2,147, 79, 52,166, -102,189, 62,101,177, 56, 98,185, 62,166, 58, 48,216,205,150,203,161,231,248,112,193,119,223,126,143,203,113,224,201, 56,176, 50, - 21, 70,107,218,174, 69, 25,248,224,131,179, 61,180, 28, 67,201,154,254,155,131,221,223,255,230, 95,101, 8, 82, 74,168,219, 92, - 89,175,152,227, 51,251,188,192,163,243,228,110,195,222,174,184,183, 25,134,119,236, 11, 90,138, 79,195,144, 66, 67, 91,158,157, -217,172,230, 89,119,184,121, 26,191,126, 30, 81,154, 3,127,173,248, 95, 73,151,100, 49, 39,161, 48,239,175,165,104,205,251,233, -122,149, 15,244,155,167,121,242, 58, 88,102, 79,246,118,149, 27,172,170,229,172, 90,240,198,106, 9, 70,163,144, 44, 5,168,174, -163, 50,146,203, 32,120,189,169,121,185,170,145,149,161,209,146, 49,192,205,197, 18, 45, 35, 74,213,220,172, 4,223,189,236,225, -252, 73,246,188,248, 73,123,252,231,125,117,217,205,147, 85, 11, 50,187, 23,118,218,100,166,123,179, 96,217,174, 80, 73, 97,234, - 26, 83,213,200, 90, 99,165, 36, 10,208,181, 34,144, 56, 27, 61,187,152,120,188,177, 52, 41,209,111, 39,130, 13, 92,156, 79,108, -138,137,147, 19, 49,135,170, 72, 56,212, 25,186, 87,228,218,134,183,172, 42,197,146,132,140,129,198, 36, 42,153, 57, 77,102, 12, - 44,140,192, 91,207,218, 72,140,204,126,244, 46, 38, 82,113,105, 75, 82, 96, 93, 86,184,120,103,145,210, 96,157,103, 8, 14, 65, -192, 71, 65,239, 7,124,153,166, 67, 74,140, 49,146, 82, 96,154,121, 65, 41,238, 67, 88,162,216,187, 18,218,130,166, 94, 31,172, -164,200,133, 54,201, 61, 50, 35,196, 30, 66,215,229, 92, 60, 92,228, 34,188, 94,228,169,186, 42, 1, 71, 77,125,205, 57, 80, 21, -179,174,148,163,185, 21,249,254, 81,229, 44,174,212,254, 60,158, 37,117,179,151, 68, 44, 36,202,170,202,175,111,190,150,166,161, -200,180,184, 10,181,255,105,214,182,207,221,228,206,190,180, 63,235,244,232,201,147,235,110,128,101,203,229, 56,209, 30, 24, 42, -173,242,123,149,121, 63,168, 0,173,178, 25,141, 86, 57,212, 66,154, 12,135, 68, 45, 89, 84, 13,222, 7, 24, 28, 71,235, 99, 98, - 76,180,117,205,214, 57, 68, 76,184,204,130, 64,106,133, 74, 16,123,203,186,233, 16,222, 33,149,166,149,217,112,163,142,142, 24, -115, 39, 86,215,154,201, 58, 60,176,208, 21,131,155, 64,231,189,102,239, 61, 19,160,117, 69, 31, 28,117,101,114,224,142,130,138, -132, 77, 33,195, 59, 17,140, 20,220,223, 77, 88,145, 88, 24,197,165,115,249,144,153,161,207,182,202,147,122,219,230,110,203,150, -174,173,160, 19,121,210,136, 57,179,215,164,189, 46,242, 23, 57,173,135, 31,227,152, 53,119,126,223,252, 22,212, 39,251,191, 55, - 20,226, 82,163,242,158, 73,213, 48,110,246,211, 79, 57, 52,255,251,255,252,107,124,226,213,219,124,244,232,156,243, 39, 3,227, -182,207,131,208,177,161, 63,223, 33,165,202, 82, 63, 64,169, 26,169, 53, 70, 27,214,109,131,136, 2, 76,158, 94,165,132,193,123, - 70,159, 3, 93,166, 41,224,188,203, 73,107, 62,178,106, 20,181,150, 24,149, 53,232,181,150, 4,159,211,247,124, 72, 87,207,164, -245, 1,169,100,182,246, 77, 17,231,178,193,140, 81,130, 90,102,235,225,193,103, 21,195,186, 49, 28,215,154, 39,222,161,162, 34, -164, 64,165, 20, 19, 2, 37, 35, 86, 36,162, 11,124,244,254, 19,222,122,233, 6,127,231, 87, 63,206, 7,175,221,225,243, 79,182, -108,207, 30,115,113,255, 62,255,230,222, 67,238, 95,236, 56, 62, 88,178,179, 83, 38,118, 93,244, 88,229,168, 94, 61,226,245,211, - 23, 0,201,232,122,142,154, 53,143,250,115,222,125,242, 17, 99,244,220, 89, 31,113,227,224,148, 23,143, 95,193, 52, 10,161, 36, - 93,183,128,148,208,169,195,138,158, 39, 31,124,200, 52, 90, 72,146,117,211,241,157, 71, 15,217,244, 59,186,229,130,113, 24,120, -235,205,143,243,199,127,244,151,133,195, 49, 75,169,228, 47, 75,163,246,156, 7, 92, 63,127,130,156,119,132,215,115,170,159, 82, -200,148,189,162,223,150,201,153, 12, 47, 87,250, 26, 23, 32,238, 51,218,159,125, 22, 26,253,244, 68, 42,126, 12, 74,117,253,229, - 94,127,173,243,189,174,100,137,227,140,251, 2,110,231,169,188, 20,253,102,193,167, 94, 57,229,155,125,226,173,227, 37,255, 97, -112,249, 16,215, 69,117, 80,215,249,185,111, 50,114,178,113,150,163,102,149,225,220,174,206,219,200, 36,249,204, 97, 71,140,137, -206,123,238,133,196, 75, 82,178,213,146,190,223,225,245, 1, 55, 87, 59, 52, 1,150, 7,112,120, 10, 15,166, 61, 82,240,211,126, -205, 70, 61,199,213,158,176, 15,180, 85, 77,165,178,106, 8, 33, 17,117, 13, 70,147, 42, 73, 31, 5,210, 38, 38, 13,187,173, 67, - 40,168, 98, 34,248, 64, 27, 2,143,135, 68,178, 30,119, 49, 50, 77, 14,225, 34,209, 7,164, 15,164, 41,178, 90,106, 84, 72, 24, -160, 85, 18,182, 30,161, 36, 85, 8,212, 74,113,128,160,237, 3,203,166,195, 74,129,104,243, 94, 60, 44, 20,151, 2, 6,159,152, - 72,104,163,216,141, 57,231, 67, 38,143,170, 27,252,118, 3, 66, 50,216,204,169, 48,218,144,130,163,213, 57,207,131,104,233, 84, - 94, 3,100, 87, 76,168,140,193,150,128,159, 43, 25, 89, 44,126,240,243,122,212,152,162, 8, 33,239,219,103, 7,195,186,228, 96, - 84,134, 43, 59, 87, 91,206,194,121,181, 97,212,158, 24,185,217,237, 99,136,107,179, 71,117,148,134,118,158,208,219,114,127,149, -123,202,135,125,202,219,108,136, 51, 27,210, 44,154,253,128,215,150,149,213,193, 34,251,159,136,226, 55,111,251, 34, 1,245,215, -182, 74,254,167, 6,115, 20,159,248,141,127,134,110,138,199,240,207,120,131, 93,193, 27, 2,140, 97, 20,130,163, 98, 25, 27, 82, -162,171,187, 76, 52,148, 25,182, 1,137, 81, 6,231, 45,139,170,197,152, 10,239, 29, 74,107,170,170, 66, 42,153,173, 61, 71,143, -119,129,152, 66,134,232,189,205,126, 3,198, 92, 73,213, 4,130, 78,105, 84,165,104,171,154, 88,188,182,149,202,190,193, 90, 41, -122, 60,190, 50, 56, 41,136, 82,224,203,244, 23,165,194,133, 84, 10,132,194,147, 24, 98, 68, 42, 65, 64, 49, 5, 71, 20, 96, 99, -196,123, 79, 4, 46,103, 59, 65, 55,199,244, 5, 24,124, 62,128, 76, 73, 65,211,114,207,190,212,213, 85,224, 12, 34,128,207,121, -200, 25,134,249, 5,234,220,159,149,160, 93,119,154,131,124,160,165,196,242,139,159,226,205, 79,127,146, 7,223,127,167, 4,107, - 20,214, 39,100,233, 76,244,229,192,200, 13,203, 87,255,209,239,241,197,175,124,150, 39, 23, 59,206, 30, 92, 48,141, 14, 33, 36, -139,163, 37, 82,192, 56, 58,148, 84,153,132, 40, 52,141,233, 88, 45, 23,220, 56, 92,177, 48, 6, 93, 73, 42, 45,179,172,176, 20, -228,201,122, 38,231,121,120, 57, 48, 12,150,144, 34, 93,173, 56, 57,104, 56, 89,214,116,149,166,174,179,129,139, 72, 96, 83, 68, -149,196,189, 90, 41, 92,202, 69, 62,165,132,143,145,169,172, 2,188, 15,153,171, 17, 2, 75,149, 77, 53,106, 9, 71,181, 64, 37, - 65, 91,107,140, 82, 28, 47,170,204, 50,247,217,184,232,171,119,143,185,191,245,124,251,189, 75,234,165,230,159,252,202, 43,188, -113, 99,141, 93,116,220,121,241, 5,110,117,135,252,173, 79,189,206, 73, 85,115,115,209,241,202,225, 1,111,223,127, 12,135, 13, - 55, 15, 14, 89, 54, 71,212,213,146,179,254, 12,235, 39,142, 22,167, 28,117, 71, 88, 59, 32,180,196,166,192,163,221, 37,253,180, -165, 51,154, 16, 18,170,170,105, 79,142, 88,159,172,121,244,209,123,220,127,248,144,179,237, 37,141, 82,216,232, 57,219,141, 28, -183, 53,218,212,172, 78,143, 56,239, 39, 30,199, 2,225, 45,234, 60, 57,110,182,240,242,139,121,215,187,219,254,116,132,178, 89, -226,248, 60,255,105, 93, 12, 83, 84, 93, 10,118,169, 20, 17,126,200,217,238,106,197, 83,149,123, 59, 93, 13,231, 87,171, 32, 81, -216,193,241,218, 58, 71,183, 69,195, 92, 98,140, 99, 40,207,197,143, 32,179, 25, 83,140, 61,194, 62, 6,152,244,252, 41,253, 89, - 7,184,249, 25, 48,229, 92,155, 9,125,130, 12,115,170, 98,164, 21,129,213, 33,191,243,137,187,208, 45,248,212,233, 1,163, 50, -124,108,125,204, 3, 93, 19, 40, 36, 40, 53, 59,226,105,106,165,184, 45, 13,171,186,197,106, 77, 40,159,109, 15, 8, 31,185,211, - 42, 30, 76,129, 35,165,121,140,228, 52, 70, 70,173, 57,145,130, 71,187,137,202, 40,190,179,221, 16,182, 27,112,187, 44, 95,155, -157, 27,137, 63,217, 29, 80,138,252,218,219,114,173,180,166,174, 52, 71, 85,203,141,118, 77, 83,119,232,182, 35,233,138,164,103, - 99, 26,137,175, 52, 91, 31, 25,109, 98, 40,124,150,201, 5,122, 23,176,189,195, 59,207,110,211, 51,238,118,216, 97,196, 13, 3, - 79, 54, 23,248, 48,176, 10,129, 54,122, 26,111,105,132,162,149,130, 54, 37,148, 11,168, 16, 80,253,150,195, 32,104,156,227, 80, - 36, 78,132,164, 78,176,144,146,227,153,188, 22, 18,163,205, 38,100, 81,130, 39, 27,205, 88,114, 38, 67,116, 83, 1, 99, 2,181, -132,173,179,212, 90,161, 99, 65, 85,147, 96, 91, 84, 34, 50, 37,166, 48,171, 38,202,125,161,138,124,208,198,124, 47,135, 82,228, -141,218,123,186,171, 98, 35,107,202,218,104,110, 78,187, 54,159,233,203, 54, 23, 86, 93, 96,117,235, 11,217,173,144,186, 42,185, -135,252, 83,122, 70,217, 81, 10,249,220, 44,198,107,164,198,114, 6,102,120,158,125,112,207, 12,205,147,114, 3,217, 85, 5, 61, - 48, 37,168,166,202,182,236,198,228, 65,108,158,226,141,250,177,104,175,166, 42,111,206,245,249, 65,252, 89,119,235,253,148,223, -100,183, 32,180,145, 39, 67,207,170,110, 88,181, 11,118,211, 68,103, 42, 98, 20,104,165, 8,201,227,130,167, 53, 13,162,216, 8, -106,221, 20, 94, 86, 96,219,111,113, 5, 58, 75, 50, 75, 96, 4, 30, 97, 76,238, 64, 67, 68,104, 67,136, 17, 45, 50, 44, 34,200, - 72,158,150, 58, 55, 19, 37, 3,120, 34, 81, 91,195, 16, 29,178,173,137,147, 39,146, 47,104, 26, 29,168, 72,136, 57, 64, 64,138, - 28, 3, 58,216, 17, 85, 12, 27,130, 29,242,231,111, 42,198,105,204, 55,198,124, 65,231, 32,138,142,253,174,164, 41, 83, 59,177, -200, 27,124,177, 19, 28,179,204, 69,216,125,135,104, 13,248,205, 47,103,224,242,215,118,235,222, 23,147, 5,205,246,235,127,193, - 95,118,119,246, 41,113,179,127, 65,152,181,190,236,157,242, 62,253, 43,124,249,171, 95,100,234, 29,231, 23, 59,236,224,233, 86, - 29,235,227, 5,187,157,205, 58,236,170,152, 5,249, 72,219,180, 28,173, 87, 88,155,216, 92, 58, 90, 93,161,141,206,241,182, 33, - 91, 75,246, 54, 50,249,136,240, 41,155,212,233,226, 52, 72, 34,250,136,151, 34, 39, 74,185, 12,143,139,226,167,158, 27, 68,152, - 98,134,211,189, 15, 76, 33,160,129,187, 11,195,214,121,108, 36,235,210,133,160,174, 36,166, 16, 39,183, 73, 82,213,249,129, 90, - 86,186,168, 51, 20, 42,229,176, 8, 93, 43,190,252,214, 93, 14,239, 58,132,155,248,151,223,251,144, 79,158, 30,178,104, 43,222, -126,239, 33, 7,171,142, 91,199, 45,159,251,204,139,124,233,238, 17, 95,127,255, 17, 31,127,245, 14,127,240,141,111,211, 85,138, -255,240,240,109,110,117,135,108,118,231,180,139, 53,141,214, 28,180, 43,130,219,240,253,199,247,248,246,238, 17,156,245, 48,129, -124,105,205,155,199, 7,188,122,114,151,203,199,231,220,188,123,139,110,125,155, 15,238,127,157,247, 31,111,121, 18, 2, 71,141, -225,184,209,188,254,202, 43,208, 86,188,124,231,136,255,234,239,253,109,198,205, 84,164,179, 9,239, 44,214, 58,126,243,197, 19, -222,221,142,220,187,127,198, 63,255,147, 63,229,251,127,242, 39,207,191, 31,230,201,126,158, 96,174,166, 61,251,244,228, 29,138, - 51, 87, 20,121, 79, 45, 96,191, 64,252, 81, 13,165,223, 67,153,243,200,152,138, 53,177, 42, 15,230,172,170,104,155, 61, 68, 63, -142,123, 39, 48, 51, 51,233,175,161, 87,222,231,226, 43,202, 68,227,226, 30, 77,212,250,153, 41,253, 57, 19,140, 47,137,130,161, -200,157,204,140,104, 85, 64,137,198,140, 64,183,162, 90, 47,104,215,199, 60, 30, 29,147, 94,209,170,136, 87, 45, 7,106,226,108, -102, 67,199, 0,228,102,224,165,234,152,191, 36,241,149,177,199, 87, 29, 15,189,231, 70,157, 21, 54, 46, 6,118,219, 68,155, 18, - 46, 4,150, 62,112, 33, 19, 77,128,247,135,129, 59,109,199,159, 61, 60,195,234,186,228, 41, 52,192,112,109,152,210,123, 53, 65, -224, 71, 35, 37, 77,243, 84, 35,181,214, 53,175, 44,142, 48, 90,211, 45, 14, 80,166,193, 10,137, 23,217, 37, 81,135,128,244,158, -158, 60, 45,214,129,108,186,148, 34,135, 33, 50, 4,136,214,147,236, 68,231, 61,151,155, 39,108,135,145,139, 96, 57, 89, 44, 48, - 65, 98,162, 64, 43,131,242, 19, 76,145, 74,107,100, 74,172, 72, 28,168,154, 62, 76,220,162,166, 9,128,205, 17,184, 49, 36,182, - 41,177, 6,188,148, 96, 2,187, 36,216,246, 57,138,117, 8, 16,165,198,121,176, 73,224,163,133,152,216, 38, 79, 35, 4, 67,136, - 57,249, 48, 72,182,113,226, 88, 73, 30, 90,143, 79,137,202, 40,172,191, 86,216, 92,200, 77,163, 36,103,116,212,234,202, 19, 38, -251,245, 87,153,244,166,203,120,189,185,132,195,155, 87,217, 33,121,184,241,217, 44,104, 94,139, 84,165, 33, 30, 11,241,120,156, -242,223,129,202, 30,244, 70,239,137,199,218,236, 25,237,115, 35, 60, 7, 21,213,106,111, 49, 27, 11,169,180,196,204, 94, 33, 71, -162, 88, 5,207, 16,126,167, 11, 2, 81, 66,106,132, 4,209,149, 84, 66,191,143,149,157,182,207, 41,234,214,230, 23,253,243, 70, -194, 57, 11, 99,121, 80,235,138,209, 84, 32, 39, 26,165,209,166, 33, 4, 79, 83, 53, 56,239,179,109, 32, 1, 37, 4,163,179, 44, -171,150,132,199,135,188, 43, 7,152,220,136, 49, 6, 65, 78,231, 97, 4,161, 36,202,228,110, 44,196, 68,165, 13, 82, 72,100, 74, - 40, 45,208, 90, 34,165, 36, 90, 15, 77,131,176,142,224, 70,236,178, 35, 13, 3,187,209, 83, 53, 21, 97,202, 19,172,212,154,224, - 66,118, 52,210, 26, 3,244,222, 17,230,157,135,169,193,123, 42,149,120, 56,236, 8, 66,130, 42,222,189,182,192, 47, 90,238, 77, -191, 98,249,240, 27,157,247,135, 49,236,147,116,150,139,124, 3,232, 42,103,241,206, 36,167,174,185,150,219,251, 75, 40,236,215, - 39,150,249,151,125,239,233,131, 83,235, 98,252,241, 52,148,249, 15,127,227,147, 28, 28, 46, 24,122, 71, 93, 85,196, 54,210,173, - 26,134, 41,224,125, 32,248,144,161,247, 49, 66,212,144, 36, 77, 91,209,181,154,227,101,199,201,186,161, 49, 10,173, 4,147,143, - 87, 62, 17, 25,164, 72,156,116, 21, 73,102,139,212,186,146, 44,235,236,212, 85, 43,144, 73,226, 93,222,125, 87, 38,179, 94,173, -207,170,133, 90,136,140,150, 26,133, 72,137, 86, 9,142, 27, 73, 31, 2, 62, 9,142, 69,162,145, 32,100,226, 50, 69, 84, 20, 60, -216, 57, 22,149,166, 89, 42,166, 8, 55,187,134, 70, 43,238,157,247, 84,141,226, 83, 55,150,124,226,101, 69,171, 37,223, 61,219, -240,199,223,127, 76,178,137,118,181,200,172,210,193,161,158,244,252,145, 11,156,172, 59,254,233,215,126,141,223,248,220, 39,248, -171, 15, 30,241, 23,127,254,109, 8, 19,127,241,216, 49,212,142,239, 61,252, 30,173, 54, 60,222, 92,112, 62, 76,121,157,211, 25, -208,129,248,120,195, 55, 31, 92,240,225, 75,151,124,246,228, 9, 97,218,112,252,194, 29, 62,241,218,167,249,236, 23, 86, 28, 30, - 53,156, 30, 85,124,236,100,193,113,171,217,218, 64,140, 9,119, 43,175, 9, 14,154,236, 3,177, 48,146,202, 72,158, 12,158, 99, - 27,249,170,150,252,195,127,240,219, 92,140,142, 15,207,123,254,234, 59, 31,242, 7,127,242,111,248,247,255,242, 15,114,241,126, - 22,189,126, 14,124,159,102, 78,198, 83,147, 50,224,126, 68, 81, 9, 49,167,254,173, 86, 87,220,162,252,255,141,249,126,130,167, - 7, 4,235,193,216,130, 94,197, 31,173, 6,185,190,150,250,113,164,161,167, 26,215, 31, 1, 81,207, 68,209,201,150,116,184, 17, -148,205, 16,122, 4,150, 29, 7,183,143,249,220,237, 35, 30, 76,142,182, 91,208, 72,131,174, 26,188,183,188, 46, 91,162,115, 60, - 22, 83,209, 53,231,117,195,247,118,143,249,220,193, 17, 31, 76, 19,157,245, 44,155,134,139,113, 96,170, 42, 86, 36,190,229, 19, -159, 58, 88,224, 67,100,212,138,208,247,244, 68,110, 24,205,187,110,226, 65,242,185,104,175,186, 60, 8,236,158,121, 15,234,153, -141,200,243,222,223,236, 3,128,130,186,227,184, 57, 0,109,232, 86, 39,128,200, 50, 49,165, 24,172,199, 8, 5,109,102,189,143, -206,102,146,127, 37,137, 33,114, 75, 36,250, 0,149,245, 56,159,101,118,143,206,207,168,172,227,124,216,178, 86, 18,101, 61, 85, - 91, 50,215,181, 66,248,136,209,138, 70,105, 90,165,104, 66, 64, 37,201, 43,170, 65,183, 6,233, 50, 87,105, 12,142, 74, 26,150, - 17, 92,217,109, 75,165,176, 9, 14,170,192,189,201, 33,148,100,176, 16,181, 33, 22,215, 60, 27, 71, 26,169,241,193,211,136,188, -130,105,141, 38, 18,217, 13,158,227, 74, 18,167,196,214, 63, 19,128,163, 75,246,192, 44,250,153,175,217,172,106,208, 6,213,182, - 4, 1, 75,221,210,175,142,178,185,213,220,224,166,178, 90,165,104,202,103,253,183, 47, 67,161,243, 57,223,125,178,249,140,191, - 90,125, 62,207,182, 53, 62,237,251, 62,133,189, 74,169, 42, 78,117,117,149,121, 78,211,144, 45,106,131,205,141, 71, 27, 96, 96, -111, 83, 60,199,246,174,171,140,112,205,107,178,177,217,115, 82,226,248,148, 25,154, 34, 30,253, 51,250,221, 47,198, 33, 77, 43, - 44,146,227,197, 65,102, 43,147,117,232, 62, 6,140, 52,132, 20,179,113,143,146,212, 82, 35,148, 68, 11,205,228, 28,198,232,108, - 56, 83,236, 10, 19, 18,235,178, 23,180, 49,249,165, 6, 33,209, 74,162,234,138, 78, 41, 92,136,212,198, 16,139,255,182, 48, 21, - 82, 10,122,159,205, 82,108, 49,213, 87,166,194, 21,178, 84, 10, 41,155, 36,248,108,136, 16, 98, 98, 76,146, 68,196, 9, 65, 31, - 34,194, 71,156,144, 92,122,139, 22, 2, 23,115,246, 58,163, 43, 45,180,156,147, 72,242, 1, 35, 74,182,239, 12,181,248,180,135, -229, 41, 36, 57, 81,172,183,116, 85, 76, 15,202, 69,255, 57,201, 16, 63, 53, 52,255,211,252,251, 51,191,255,247,254,219,127,130, -146, 96, 71, 79, 8,185,184,132, 72,201,176,167,216,233, 10,130,135,186,174, 89,173,150,220, 61, 93,115,178,234, 88, 45, 43,150, - 38,147,106,102,215, 80,151, 34, 33,164,156,167,160, 5,146, 68,163, 20,167,107,195,210,232, 28,211, 56,191,148,144, 81,155, 84, -248, 47,214, 7,100,138,184,152,167,250,144, 2, 33,230, 73, 40,133,200, 50, 6,100, 8, 28,196, 68, 37,160, 18,146,147,148,232, - 98,226, 72, 10,172,200, 83,129, 69, 48,110, 7, 78, 43,195,113, 83, 97, 18,124,235,108,199, 7,151, 35, 8,112, 8, 78, 15, 58, - 94, 59, 93,242, 36, 8, 92, 72,220,190,181, 4, 35,233, 55, 35,110,116, 60,222, 78,216,201, 51, 38,137, 49,134, 95,255,252,107, -188,122,186,166,221, 89,254,175,119, 63,228,163,221,150,147,174,166, 51,154, 86, 27, 86, 90,179, 37,145,106, 69,210, 18,121, 80, -241,249,211, 99, 94,190,121,194,209,141, 5,191,255,183, 94,231, 31,125,233, 99,124,233,205,219,124,254,229, 99, 62,125,123,141, - 20,130,203,193, 35, 82,126,126,124,136,236,172,103, 42,132, 64, 18,152, 74,177,168, 12,125, 16,124,112, 57,161, 82,228,229,211, - 37, 95,184,125,196, 75,119, 14,249,237, 47,126,129,127,252,251,191,199, 43, 47,189,196, 31,254,209,159, 34,144,121,109, 37, 4, - 34,101, 67,165,108, 2,146, 15, 32, 97, 52, 34,169,125,241, 87, 62, 79,217,209, 62,127,143, 61, 75, 38,173,203,208,160,119,123, -226, 82, 74, 48,244,207, 88,179, 22, 34,102,112,123,185,219,117,107,215,249,240,251,113, 30,239,215,139,254,179, 43,166, 31,154, -100,203,142, 83, 25, 56, 88,103,104,179,237,114,228,235,170,205, 59,204, 69, 67,234,106,110, 54, 13, 73,213,188,118,184, 38, 42, - 56,210, 25, 53, 56,172, 5, 15,109,228, 50,133,189,115,153,200,222, 2, 70, 72, 14, 98,162, 14,142, 46, 5,206,172,101,185,125, -140, 53, 21,223,159, 70,118, 33,114, 71, 73, 30,218,137, 35,165,232,157,167,247, 17, 29, 2,223, 24,167,124, 80,251, 30,118,187, -167, 19, 21, 37,251, 40, 80,226, 15, 15, 90,179,202,230,228, 6,172, 22,176, 94,243,194,209, 13,126,227,246,203, 28, 44, 22, 24, - 45,168,181,193,232, 26, 27, 50, 41, 46, 42, 69,240,137, 33, 6,162,148, 52, 82,208, 72,193, 97, 2, 23, 34,235,152,176,131,163, - 38,176, 59,127,130,187,124,130,157, 70,150, 9,218,182,166,105, 90, 58, 93,161,149,196,196, 72, 83, 27,140,128,133,169,232,128, -195,202,176,142, 9, 35, 5,173,148, 57, 72, 70, 10,234,226,190, 39,124,162, 49,138,160, 37, 23, 49,175, 52, 71,153,120,178, 29, -121,224, 3, 59,239,144, 36,164, 80,104, 33,104,116, 3,228,193,109,240, 1, 93,144, 58, 45, 36, 33,228,231,160, 83,154,243, 16, - 8,162, 64,234,161,228, 90, 36,153, 27, 37, 93,200,202,198,228,207,169, 93,242,202,250,152,151,186, 21, 47,214, 75, 94, 90, 30, -176,144,134,186,233,184,156,173,101,227,108,141, 88,216,240,148, 51, 91, 42, 82,140,168, 36,114, 13,152,189,231, 93,185, 47,180, -222,147,159, 37, 92,165, 13,134, 18, 24, 19,194,158, 61,175, 85, 70, 11, 40,171, 31, 63,149, 34, 31, 74,211, 88,254,124, 87, 21, -223, 6,246, 49,217,161,188,174, 57, 77,179,170,246,178, 82,165,158,178, 83,254,249,217,239,207, 22,135,144,242, 94,185,210,236, - 20,116,170,202,122,113, 93,229,240,148, 20,169, 10,116,110,148, 42,102, 5,142, 90,213, 72,149, 39,247,170, 64, 15, 33, 7, 40, -227,124,204, 97, 72, 73,225,139,105, 71,221,154, 43,179,131, 99,173, 24, 10, 6, 85,155, 42,147,169, 82,190,105,119, 62, 32,203, - 14, 61,197,204,160,244, 73, 16, 69, 42,103,135,196,249,128,149,121, 42,180, 41,225, 98, 96,112, 30, 75, 98,112, 19,125,132, 41, - 58, 70,239, 50, 51, 49,206,123, 22,181,183,192,140,215,189,126,227,158,253,152,174, 77, 70, 90,150,255,158,246,123,179,217,210, -112, 14,148,144,242,167,119,210,250, 37,126,125,236,111,255, 14, 95,254,245, 79, 51, 12,150,126,219, 19,124,196, 59, 79,211, 53, - 76,253,196, 52, 58,166,222, 18, 92, 64,146,189, 5,106, 99, 16, 66,178, 90,213,172,155,153, 37, 43, 24,124, 36,146,153,234,110, -138,217, 35, 71,230, 98,127,227,192,208, 26,141, 42,134, 44,145,108, 24,163, 77,182, 87,157, 51, 26,116, 10,248, 24,209, 50, 63, - 15,243, 80, 24, 99, 36,185,192,165,143,120,149, 27,142,205,232, 80, 17, 22, 49, 81,249,192,165, 4, 87, 25,140, 81,168,199, 59, -212,119, 30,243,238,195, 11, 76,163,185,209,182,180, 49,114,239,114,199,251,103, 61, 23, 86,178,168, 20,199,173,225,184, 51,220, - 92,104,188,183, 28,117, 29,186,210,108,206, 7,198, 41,112,255,114,228,209,229,192, 43, 39, 75,188,245,124,250,227,183,248,237, -207,189, 14, 23, 3,255,254,175, 62,100,125,208,177, 52, 11, 84,165,105,170,138, 86, 9, 94, 57, 92,242,214,221, 27,252,167, 95, -120,139,255,242,119,191,196, 87,191,240, 26,159,249,248, 29,234, 90, 35,132,160, 15,217,239,122,235, 2, 79,118, 30,239, 35,141, - 81, 28, 52,153, 65, 13,249, 51,234,173, 99,176,142, 16,242,120,172,132,100, 55, 57, 30,238,118,156,237, 34, 85,130,173,141, 56, -239,185,123,208,242, 91,159,127,157,255,225,191,254, 7, 44,239,190,193,191,251,183,255,182, 16,126,179,212, 79, 22, 85,134,136, - 69, 87, 94,210,165,196,204, 36,159,252, 15,155, 39, 92,215,125,167, 82,128, 6,151,155,214,113,147,121, 35,118,122,126,113, 14, - 97, 95,208,231,137,230,138,157,156,246,190, 14, 63,201,231,253,199,253,204,156,123,208,212,124,246,213, 91,180,135, 29, 47,156, - 46,233,186, 10, 86,203,172, 90,146,133,113,108, 12,193, 84, 44, 76,197,171,235, 5, 38, 2,133,215, 96, 68, 86,218,220,159, 70, - 46,230,134,196,185, 2,197,143,172,220, 72, 28,123,130,221,226,135,115,154,221, 57,198, 91,222,187,120,200, 71,214,113, 87, 26, -190, 49,140, 28, 33,121,111,178, 4,239,121, 24, 61,223, 26,122,108,178,121, 42,155,250,204,156, 62,223,101,244,110,126,255,243, - 25, 18,158,137, 70,174,202,100,183, 62,134,163, 31,132,194,155, 0, 0, 32, 0, 73, 68, 65, 84, 53, 28,159, 34,143,110,240,169, -197, 9, 55,186,138,155,221,146, 70, 85, 57,176, 76,230, 97,242,194,122,188,245, 68,153, 93, 50,149,128,133,128, 99,157, 67,173, - 84,200, 94, 19,135, 93,102,162, 55, 49, 51,217, 23,193, 99,140,102,165, 27,142, 23, 11,144,146,101, 33,193, 42, 41,104, 85,141, - 72, 80, 87,146, 42, 65,101, 20, 11,165,145, 90,228, 60, 5, 41, 48,117, 62,247,189, 82,140,165, 65,119, 74,176, 77,137,203,222, - 51,197, 68,111, 45, 65,228,186,161, 5, 68, 12, 40,137,170,107, 66, 18, 40,213, 48,197, 64, 37, 5,131,115, 72,165,168,149,193, - 11, 65, 91,213,212, 85,203, 40, 37,169,169,178,203,105, 93,103, 53,146, 49,176, 62,202,223,183, 75,100,187,226,173,122,193,186, - 94,209,180, 29,219,144, 56,238, 58, 90, 33, 16, 73,112, 25, 10,242, 58,175, 52, 68, 78,118, 76, 49, 92, 5, 11, 45,116,150,194, -202, 20, 73, 59,187, 63,136,230,251, 57,165,125,140, 43,169,144,250,124,174, 15, 59, 91, 92, 61,103,155,103, 81, 86, 87,133,141, -111,228,222, 91,106,230,109, 85, 38, 31,128, 46,236,229,199, 74,229,123,165,106,242,179,217, 84, 25,161,240, 49, 63,123, 34,223, - 51,191,152,162, 62,143, 88, 38, 91,243, 37, 32,181, 21, 62,164, 76,134,210, 85, 94,139, 5, 80, 74,224, 99, 68,146,168,171, 6, - 31,236, 85,252,222,228,125,254, 12,133,192,249,156,195, 27, 72,216, 16,104,170, 66, 34,136, 10,211,106, 22, 8,208, 26,149, 18, - 90,230,110, 41, 1, 21,130, 65,100, 73,205, 38,229, 41, 51, 10,153,181,232, 49,224, 93,204,156, 50, 37, 8, 62, 23,251, 33,120, - 92,202,204,236, 24, 35, 99,132, 62,120,250, 24, 72,200,204,240, 14,190, 4, 8,148, 64, 27, 93,244,145,136,124, 97,230,216,200, -196, 62,141, 71,138,167,243, 37,174, 23,247, 90,229,238,114,198,219,102, 59, 80, 37, 11, 73,162,252,172, 86,191, 56, 9,220, 79, -241,245,123,127,231,107,220,122,241, 6,155,203,158,224, 34,218, 24,172,245, 52,139, 54, 91,194,198,136,148, 26,163,107, 86,171, - 21, 74, 74,218,186, 97,189,236,184,115,210,178, 48, 38,135,163,196,196, 16, 34, 46,101,103,169,152, 50,193,173, 81,130,195,133, -230,164, 53, 40,169,136, 66, 32,149, 40, 9,158,217,182,210, 40, 65,109, 4, 38, 69,142,141, 32,200,132, 8,137, 74, 68, 84, 12, - 57,207, 33, 70,106,239,241,201,179,180,129, 42, 37, 86, 62,178,178,129,122, 10, 36, 45,216, 26,201,129, 79,172,133,196,104,193, -163,221, 64,255,193, 5,239,221, 59,103,221, 26, 94, 92,118,124,108,189,160,157, 50, 81,208, 40,137,140, 5, 1,104, 20,214, 58, - 46,118, 19, 39,109,205, 43, 71, 29,111,127,120,201,232, 2,219,205, 72,229, 28,255,201,167,238,242,189,139,158,155, 55,151,252, -222,151,223,228,226,252,146,127,253,103,239,240,192, 79, 60,217,246,120,225,120,235,206, 11,124,254,179,111,242,213, 47,125,146, - 47,127,238, 85, 78,215, 29, 66,230, 93,231,110,242, 92,236, 60,247, 46, 44,151, 59,203,131,139,137,243,222, 18, 98,160,149,176, - 16, 2,227, 97, 59,121, 54,193,211, 79, 62,251,229, 91,207,163,221,196,102,240,172, 42, 73,140,145,135,155,129,179,222, 49, 89, -135,179, 14,225, 60, 10,201,209,170,227, 51,175,223,229,229, 47,124,133,255,251,255,248,215, 57,175,161, 28, 44,210, 95,147,137, - 69,143, 8,165,224, 56,255,163,221,144,174,242, 2,124, 46,252, 70,102, 8, 81,201, 61,153,237, 39, 17,110,175,249, 84, 92, 65, -168,241,167, 40,234, 63,145,246,155,189,215,213,114,193,209, 65, 75,187,234,184,112, 9,173,107,182, 33, 97,141,202,197,113, 54, -172,215,138,187, 77,197, 82, 27, 42,165, 56, 82,134,148, 34, 75, 89,241,176, 31, 80, 82,241,161,183,249,144,181, 3,244,151,240, -248,156,203,243, 39, 12,110,100,229,123,118,195, 37, 38, 78,124,227,236, 35, 30,110,206, 73,211,192,125, 63,177, 19,130,247,188, -231,108,220,113, 47, 10, 30, 57,139,157,118,197, 83, 98,200,126,226,219,146,190,214,247,123, 9,148, 81,121,106, 83, 69, 69, 80, -155, 44,169,171, 91,184,125, 2,135, 43, 56, 92, 67,183, 34, 9,201,177, 50,124,108,181,200, 86,195, 82, 81, 25,147,215,137,214, -211,187, 28,103,172,188,167, 22,146, 78, 42,150,149, 34,166, 68, 39, 18, 49,101,237,183, 77,145,198,123, 52,130,131, 4,147,115, -172,148,230,176, 91, 16,165,164,107, 27, 84,101,168, 84, 38, 58,107,153,155,111, 33, 4,203,202,228,140,117,173,104,164, 70,182, - 21,210, 40, 82, 37,241, 90, 19, 73,104, 33,184, 0, 54, 36,198, 20,185,191,205, 6, 95, 83,185,222, 14,149, 45, 99, 5, 4,109, -202,252,148, 77,196,162,128,139, 24, 72, 66, 99,147, 66, 74, 69,212, 53,171,170,195, 55, 29, 72,141, 93, 28,146,154, 85, 38,149, -181, 11, 88,173,203,212,190, 0,221,241,114,187,228,160,238,216,121,139, 87,154,133,214, 12, 49,224,131,167, 82,146,179,164,114, - 79, 37,184, 82,103,164, 82,156, 59, 37,145,222, 49,140,142, 3, 2,227,197,112,141, 63,146,246, 5,125,230, 89,205, 77,239, 60, -237, 79, 37, 5,212,239, 19, 8,111,221, 57, 96,183, 29,185, 50,194, 87, 50, 15,139,241, 90,252,175,187,214,252, 94, 95, 51, 24, -189,207, 91,160,112, 96, 22, 93,177,204,205,218,251, 95, 92, 81,191,218,131,101, 61,168, 77,138,182,109,104,141, 97, 8,174,176, -210,179, 49,136, 80, 57,116, 37, 38,143,245, 46,203, 39, 84,254,164,146,144,196,148, 99,247,108, 76,164, 36, 72, 82, 17, 98,202, - 19,161, 84,116, 70,210, 8,129, 12, 1, 76,246,240,110,133, 32, 37,129, 18,137,209, 69,108,138, 36, 31,176,193,102,233, 84,200, - 12, 76, 31, 2,155,209, 34,101, 78,104, 27,125,222, 51,217, 16, 17,161,192, 61,209, 35, 82,214,173,167,232,114,184,203,149,193, -198,124, 65,253,222, 9,104,198,153, 99,186,182,159,190,214,149,137,107,197,125,142,168, 20,229,130,151,192,135,156,223, 91, 96, -200,182, 45, 17,128, 41, 67, 53,146, 31,195,120, 44,196, 12,253,243, 64,248, 58,235,111, 77,115,229,189,253,181,255,226, 63, 67, -104,201,246, 98,160,238, 26,148, 86, 8, 33,177,195,132,115, 33,239,193,155,134,227,163, 53, 70, 85,156, 28,175, 57, 62,104,185, -113,220,114,212, 84,104,157,229, 44, 83,204,122,241,236,230, 38, 48,228,130,189,106, 53,141,201,112,116, 16, 18, 49,127,160, 69, - 2, 74, 74,212, 2, 14, 4, 24, 18, 50, 9, 68, 8,136,224,145, 49,178,142,145,161, 36, 61,109,198,128, 72,145, 49, 6,156,207, - 28,137,218,122, 6, 34,113, 81,243,242, 54,240,250, 31, 93,112,120,182, 99,167, 34, 27,231, 9, 49,114,107,107, 57,254,104,200, - 65, 24,117, 69, 28, 29,195,251, 79,232, 14, 52, 71,171,134,203,126,100,107, 3, 90, 8, 30,109, 50, 83,255,243,183, 14,185, 85, - 73,254,224,155,223, 39, 4,203,189,203, 29, 34, 73,150, 46,241,237,203,158,117, 91,241,198,199, 95,230,226,209, 5,183,151, 43, -222,122,233, 22,191,249, 43,159,230, 63,254,205, 55,249,181, 55, 95,224,230,170,131, 36,152,166, 64, 63, 69,156, 13,140,147, 99, -180,129, 20,178, 83,225, 16, 60,126,242, 56,235, 24,156, 37,216,128,247,158, 71,195,196,229,104, 11, 63, 33,225, 98,164,119,142, - 77,111, 73, 2,148,150, 37,250,118, 71,163,225, 80, 42,154,224,233,148,194, 40,133,208,154,151,111,173,248,242,239,124,149,237, -110,199, 15,190,247, 1,194,231, 92,172,235,155,244, 31,245,253,243, 21, 23,215, 38,240,103, 85, 24, 63, 81, 57,119, 45,128,229, - 42,112, 35,253,252, 50,207,217,202,117,177,128,131, 37, 31,191,177, 36,162, 89, 87,154,182,170,232, 42, 73,139, 68,213,134,157, -115,133,160,151,145, 49,175, 21,183,140,226, 86, 85, 51,248,145, 86,106, 82, 10, 36, 60,223,239, 71,150,227,150,203,190,135,205, - 6, 30,239,224,209, 6, 46, 31,227, 54, 61,103,147,229,113,140,124,184, 27,153, 66, 36, 93,108,243, 52,223,181,123,244,161, 50, -153,103,144,138,202, 68,170,252,188,121, 91,224,221, 25,237,112,208, 28, 66,187,132,163,195,188, 46,168,107, 88,175,243,254,125, -181,200,103, 64,215,128, 94,102, 7, 77,211,240,235, 77,131, 17,137,174,170, 8, 49, 15, 66,186,100,109, 92,140, 19, 38,129, 73, - 17, 35, 4, 77,165, 88,215, 21,150, 68,240,145, 74,148,224,197,157,167,213, 2,124,192, 72,168,124,160,173, 27,124,140, 44, 22, - 11, 26,163, 80,218, 96,140,201, 4, 89, 45,105,140, 42,214,177, 53, 85,211, 32,181,193, 52, 21,178,169, 16,198,100, 8, 92,101, -165,209, 89, 12,184,144,232,173,231,113, 8,236, 92,150, 59, 63,112, 14,139, 32, 9,149,179, 61,100,102,187,123, 33,139,195,181, -160, 23,134, 90, 72, 62,112,158,195,170, 35,153,154, 74, 43,164, 89, 80,235,134,180, 56, 96, 68, 33,164, 38, 84, 93,254,108,139, -179, 31, 72,100,221,240,153,170, 34, 36, 56,104,187, 43, 41,172, 18,130,133,105, 48, 82,224,189, 99, 19, 11,193,115,174,238,222, -194,228,112,211, 68,232, 51,129,111, 58,223,228, 85,211, 60,160,165,107, 3,109,145, 86,103,114,231,108, 21,158,246,202, 13, 55, -101,116,119,242,248, 85,151,249, 72,115,162, 91, 44,240,123,242,123,191, 16,165,158, 94, 73,205, 69,221, 22,146,156, 42,197,104, -134,252,117,169, 3,222,255,130,139,250, 92,204, 38, 11, 50, 49,104,141,151, 2, 31, 66, 86, 10, 72, 67, 72,158,209,251, 60,173, -120, 95, 82,180,114, 34, 90, 18,185,152,251,152,161,216, 84,138,101,144, 32, 16,196, 20,105,180,161, 13, 25, 82,234,148,194, 59, -143, 16,130,152,242, 4,226,125, 44,196, 55,207, 48,141,140, 49,225, 93, 62, 52, 61, 48,186, 9, 37, 2,214,193, 16, 3, 82, 8, -108, 0, 79,160, 18,121,114,151,222,210, 17,209, 8,130,119,212, 9,172,205,136, 66,110, 39, 75,103,230, 66,129,212,195,190,235, -154, 97, 51,113, 45, 88,226,122, 65,159,255, 93,138,124,193,107,185, 15, 25, 80,133,229,232,109,134,142,116,185,168,243,206,164, - 49,207, 88, 10,234,171,154,158, 9, 53,146,159,201,111,182, 91,192,114,149, 15,143,148,192, 77,124,237,247,255, 46,253,206,102, - 21, 64,109,176, 83, 64, 72, 73,240,158,232,114,188,224,173, 27,167, 28, 45, 23, 32, 36,181,210, 28,175, 26,142, 22,217,163, 64, - 75,145, 45,100, 67, 42, 62, 15,146, 74,100, 55,191,202,100,243, 24, 83, 75,100, 97,156,202,236,239,154,247,197, 36, 38,151, 57, - 21,146,132, 73,137,206, 7,142,125, 98, 25, 18,139,201,115, 18, 4, 75, 23,168, 99, 96, 51, 57, 84,130,203,193,131, 11, 12, 17, -132, 79, 28,104,197, 99, 5,175,254,233, 71,164,119, 62, 32, 61,186,100,249,161,101, 57, 70,170, 23, 14,168,180,194,125,240, 17, -219,179,115,158, 92,230, 29,109,244,145,135, 15,119,232,206,224,132,224,114,152, 72, 82,113, 99,221,177,181,158, 15,183, 61,175, - 31, 29,240,205,123, 27, 30, 93, 92,162,128,239,124,248,128, 11,167,121,247,254, 5,231, 54,145,132,224,213, 87,238,240,210, 43, -183,249,213,207,190,202,167, 63,118,147,174,170,152, 92, 96, 24, 3,206,229,149,210,224, 60, 23,125,158,206,157,205, 28,129, 80, -154, 67, 81,228,142,227,232,184,247,100,203,131,221,200,163,126, 98,179,243, 76, 33,100,251,219,152,145, 54,153, 34,206, 5,162, -144,140,219,137,237,110, 96,165, 53,119, 14, 22,172,201,104,198, 52,121, 62, 60,159,184,152, 38, 94,191,181,230,247,127,251,215, -249,222,253, 7,188,253,237,119,178,154,228, 57,178,119,241,203,132,130,174,187,161,205,171,167,249,217,248,121,215, 79, 77,149, -167,178,131,108, 10,115,171,174,185,177,170,168,181,206,121,246, 69, 95, 29, 16, 60,158, 66, 41,232,249,254, 27,164,224, 99,149, -100,231, 29, 85, 76, 12, 33, 16,237,136, 14, 1,227, 7,190,123,185,195, 61,185,132,179,115,216, 60,129, 48,229, 52, 53,173,114, -243, 61, 31,172,162,192,160,155,190,132, 93, 85,249,161, 44,169, 84, 82,107,126,115,177, 98,155, 18, 95,170, 42,156,243, 8,165, -153,250, 77,110,102, 78, 78,120,241,246, 33, 39,183,142,145, 93,205, 96,170, 60,129,181, 85,254,187,148, 44,251,213, 61, 84,155, -164, 66, 41, 56,169, 52, 85,242, 57, 51,193, 77,140, 62,177,115, 3,219,209,103,211, 72,145, 72, 81,176,104,154,220,115,104,129, -141, 89, 11, 48, 12,129,147,165,102,112,145,165,214, 8, 59,161,154, 6, 63, 77, 44,154, 54,123,177, 87, 53, 93,173, 73, 82, 81, - 27,133, 80, 58,171, 91,218, 6,105, 12, 81, 74,218,166, 98,170, 12,162,210,168, 90, 19,106,149,157, 69,203, 78,124, 32, 48, 2, -143,167,137, 9,199,217,148,159, 23, 43, 53,136, 64, 37, 43,134,152,245,239,173, 4, 41, 13,145, 72,171, 20, 59,159, 56, 53,154, - 3,221,208, 72, 69, 83,119, 12, 50,175, 2,164, 54, 28, 40,197, 67, 83,151,122,124,109,178,141,129,207,180, 29, 86, 73, 86, 34, -195,236,139,148,104,234, 58,187,144,138,132, 50, 6, 67,228,195,105, 44,133,215,102, 37,152,117, 89,129,209,143, 48,218, 76, 12, - 29,124, 57,223,217, 75,129,139, 12,143, 68,254,239,178, 52,153,221,236, 47, 47,178,122, 99, 28, 96, 24,192, 91,194, 69,159, 51, - 68, 76,189,223,151,207,158, 10,243,148,159, 10,140, 47,197,222, 6,151, 18,202, 53, 79,234, 85, 65,114,103, 71, 80, 5, 8,245, - 75, 40,234,209, 23,230, 97,222, 27,219,161, 39,182, 13, 90,104,158,216,129, 86,231, 28, 93,102,242, 67,202, 89,233, 46,230,253, -121,150,209,150, 32, 0, 41, 9,178, 28,248, 34,187, 18, 69, 34, 11, 99,184, 41, 5,143, 98,164, 65, 34, 82,202,150,130,228,152, -214,157,181, 88,239,177,206,177,179, 19,194,123,122,239,136, 33, 19,191, 54,118, 32, 18, 11,105, 61, 91, 20,202, 20, 17, 30, 66, -176, 28,214,130,228, 5,135,194,209,137, 72,229, 61,235,152,144,118,202,121, 46,209,102, 70,163, 47,228,136, 57, 96, 32, 81,164, - 10, 51,177, 70,238, 33,120,173,247, 63, 35, 69,134,243,107,147,117,149,226, 26, 4, 32,114, 72, 66,254,115,133, 16, 65,164,132, -126,231, 31,187,154,216,229,190,160, 95, 5,194,252, 12,135,162,187,182,191,219,110, 88,254,230, 87,248,173, 95,253, 20,211, 84, - 26,165, 72, 78,175,139, 9,103, 3,222, 71,186,110,201,205,227, 53,151,151, 3, 50, 9, 42,165, 88,116, 21,149,222, 79, 95,214, -103,216,125, 62,183,179,199,135,162,109,178,212, 76, 23,159, 1,163,115,122, 91, 61,183, 40, 9,132, 72, 84, 36, 84,140, 28, 68, -208, 46,230,136, 99, 23,168,166, 68,114,158,122, 12,172,166,200, 98,242, 76,187, 9, 61, 56, 6,231, 25, 1, 55, 57,110, 28,117, -124,253,157, 71,188,251,253,239,243,231,246,130,182,223,241, 82, 92,113, 28, 87, 28, 76,129,111,159, 63,225,255,217,158,243,225, -176,225,242,114,195, 7, 83,228,206,122,201,147,222, 17,158,244,200, 16,185,148,176,176,158, 79, 28,173, 56,168, 53,105,242,124, -253,124, 71,136,154,203,139, 77,118, 40, 12, 30,107, 61, 47,156,158,114,118,185,161, 94, 53,124,252,238,154, 59,167, 43,214,109, -110,192,108,136, 88, 27,113, 33,146, 68,194, 58,207,118, 59,114,177,181,196, 34,217,105,107,197,232, 34,219, 97, 98, 24, 61, 46, - 70, 38, 27,184,236, 71,250,193, 50,140, 14, 27, 60, 42,102, 88, 82,136, 50, 5,250,148, 85, 28, 49,209,239, 38,166,237,200,170, -173,185,209, 85,244,143,243,251,120,114,185,227, 79,223,190,207,163,135, 27, 38, 41,120,243,238, 17, 95,248,194,103,121,231,236, - 9, 63,248,222,219,136, 57,123, 69,254,255, 80,216,159, 53,140, 17,207,176,238,127,214,194, 62, 79,232,166,206, 26,126,165,161, - 53,220,237,106,148,146, 68, 4, 83,140,217,207, 2, 65,239, 3,103,214,239,137, 76,101,189,117,146, 18,107,145,112,193,179,136, - 14, 25, 61,182,223, 16,237,196, 55, 63,186,128,199,143,114,198,249, 52,238,181,200,170,104,203,231,221,231, 48,230,130,222,111, -178,147, 85, 91,231,102,220, 84,252,206,193, 33,159,172, 58, 34,130,183,180, 66, 39,193,139,109,205,203, 6,206,124,100,168, 5, -111, 28, 29,240,202,241, 33, 90,183, 84,218,240,164,202,137,101, 68,177,255,156,230,231, 95, 23,167, 61, 45, 24, 99,228,118, 76, -172, 68,222,211, 39, 34,163, 29, 56,219, 78, 57, 2,181,236,133,181,202,136,155, 49, 21, 19,226, 42, 64,175,109, 4,155, 62,176, - 48, 18, 93,138,100,180,142,186,174, 8, 74, 32,170, 10, 37, 4, 65,107,164,201, 49,194,149, 81,200, 69,131,172, 12, 65, 27, 82, - 91,227,180,194, 40,137,109, 12, 67,202,205,250,133, 20,108,124,100, 72,145, 71, 62, 49, 88,143, 87,176, 29, 97, 23, 3,151, 66, - 18, 98, 78, 95,211, 66, 80,149,200,237, 24, 19,181, 42,225, 45, 49, 51,172,106, 99,168, 83,162,170, 13,222,122, 78,234,138, 42, -194, 11,181,225, 8,193,155, 50,113, 39, 56, 78,149,100, 45, 5,189,119, 56, 93, 17,195,196, 18, 65, 37, 52,173, 16,140, 34, 81, - 33,139,181,109, 34, 12, 3,223,158,118,244,187,203, 76, 94,180, 54,255, 26,134, 34,207,140,123,185, 89,165,242,112, 61, 7,192, -204, 82,184,201,231, 41,124,217,148, 28, 4,149, 73, 13, 90,149,123, 62,229, 51, 61,204,107,166,144,173,100, 43,246,238,135, 49, -230,154, 50,115, 77,124,220, 35,186, 54, 94, 65,247,121,184, 83,249,204, 15,215,184, 40, 74, 92,237,222,127, 9,147,122,121,129, -174, 64,241,210, 16,140, 98, 23, 45, 70,228,160, 22, 67,246,130, 31,131, 67,201, 66,164, 74, 30, 33,114,196, 94,109, 12,158, 28, -143, 55, 69,135, 20, 2,147,189,152, 56,109, 43,106, 41,217,133,136,241, 33,195,243, 49,129,119,164, 16,233,125,118, 43,147, 68, - 30,122,203,100, 7,156,207,233, 95,147,183, 4, 63,162,133, 96,176, 22,165, 42, 52, 46, 71,112,134,188,244,111,107,133,242,129, - 3,149,243,126,187,224, 57,210,138, 83, 2, 47, 74,201, 82, 6,238,187,140, 44,228, 2, 91,118, 33,178, 92,120,161, 74, 22,178, -216, 67, 52,130, 43,136,249,106, 82,159,245,238,243,142,189, 18,101, 98, 79,217, 34, 51,228,169,248,138, 84, 49,195, 49,110,182, - 69,140,251,162,222,204,122,201, 31, 1, 95, 54,101, 39,167,170,103,124,195, 99,238, 78,167, 1,136,188,240,201, 55,249,213,207, -189,145,185, 5,228,233,220,187,148,239,237,201, 19, 92,228, 96,217, 33,181, 70, 75, 69,215, 85,156, 28,118, 28, 53,154, 69, 49, - 86,240, 62, 50,134,136,247,137, 24, 18,181, 18, 28,180,134, 69,163,203,208,146, 89,234,137, 68, 42, 5, 74, 20, 34,180, 22,130, -138,196, 65, 72, 84, 33, 82,249, 68,116, 30, 19,161,241,137,106,138,132,148, 48, 54, 80, 5,193,194, 69,236,229,128,159, 44,155, -113, 66,251, 64, 60, 90, 48,164,200,159,252,225,215,249,232,222, 35,126, 48,246,124,119,154, 88,250,115, 78, 82, 98,225, 26, 22, -182,231, 27,118,203,219,195,150,209, 59, 90, 37,114,248,207,232, 57,117,137, 35, 99,184,115,216,162,106,201,106,200, 17,195,109, -109,208,222, 99,181,192,138, 6, 59, 12, 60,217,230,164,192,143,127,226, 46,175,188,122,194,205,227, 5,139,218,228, 9, 37, 68, - 38, 23,176, 62,146, 66, 64, 41, 65,112, 41, 31,178, 49,225, 93,206, 60, 88,180,154,182, 49, 89, 46, 84,154, 64,161, 4, 82, 8, -164,204,100, 78,161, 37, 74, 8,142, 14, 91,140,204, 76,246,101, 83,177,236, 12, 74, 72, 46,118,142,237,110, 32, 88,199,199,142, - 86, 52, 66, 50,158,239,104,140,224,219,247, 47,121,251,254, 3,108,121, 61, 30,137,233, 42,190,242,197,207,240,254,163, 39,188, -243,246, 59, 63, 84,208,127,121, 83,250, 51,127,145, 42,178, 80,193,207, 94,216,103,189,122,183,202,240,116, 85, 28,224,148,230, -102, 91,209, 41, 73, 37, 4,145,148, 3,157, 82,226,193,232,185,152, 27,234,170,200,222, 82, 66,198, 68,149, 28,167, 74, 96,199, -137, 46, 38, 6,231,249,223,191,123, 31,206, 31,237,245,199,179,182,127, 38, 23,150,184,103,198, 18,248, 49,108,243,255, 51,148, - 52,186,245, 33,111,173, 79,136,194,240,226,162, 70,167, 72,146,134,166,110, 89,152,196,102,130,117, 85,113, 88, 41,222, 88, 45, - 57,110, 23, 28,106,205, 73,211,112,223, 6,122,202,144, 48, 67,176, 51, 3, 58,132,220, 68, 12, 61,182,239,217,248,158,247, 54, -143, 89,226,120, 50, 90, 54, 46,177, 75, 2, 23,178,140,152, 36,145, 73, 16,164,162, 50, 26, 33, 53, 70, 81,162,172, 5,210, 64, - 35,178, 83,227, 36, 36,161,172,109,186,186, 70,154, 26,154, 26,165, 20, 65, 74,124, 93, 97,171, 12,195, 39,165,241,203, 38,219, - 17, 24,197,164, 21, 35,145, 73, 8, 54, 33, 50, 6,207, 37,137, 15,139,187,231, 35, 18,219, 9, 6, 59,241, 40, 9,100,176,140, - 54,114, 88,235, 98, 50, 37,209, 66,208,201,172, 78, 74, 49,225,129, 70, 40, 86, 82,228,248, 12, 1,134, 44,109,238,164,160, 53, -130, 90, 4,166, 0, 7, 58, 80,197,200,218, 79,220, 82,134,147,232, 89, 0, 55,147,224, 72,100, 23,184,149, 84, 52, 9, 68,242, - 28, 86, 42,167,114,110,206,121, 24, 38,164,247,164,217,131,221, 23,178,104, 40, 59,241,121,205,170,138,110,221, 21, 20,198, 22, -146,105,125, 45, 33,110,142, 37,158, 83,212,196,108, 97,107,138,148, 45,101, 36, 32,165,140,188,136,194,199,210,133,217, 78,225, - 86, 12,197,219,100, 30,228,102, 78,151,143, 25,225, 85, 5, 5, 16,242,169,200,237, 95, 78, 81,191,218,177,205,145,136,249, 67, -177, 90, 48, 17,152,130, 71, 81, 58,187, 16, 73,228,195, 58,196,108, 19,104, 67, 64, 25,195,224, 44, 70, 27, 36,138, 49,120, 42, - 45, 88,104,133,145,154, 24, 2, 90, 40, 38, 63,230, 32,151, 16,232,157,167, 34, 34, 99,226,131,221, 57, 83,244,164, 40,232,221, -142,157,243, 36, 17,168, 35,140,193, 19, 66, 36,122,139, 18,130, 42, 6, 42, 34, 73, 68, 26, 31,104,133,164,177, 19,173,144,172, -132,100,233, 39, 14,148,196, 36,184,237, 35, 15, 35,108, 66,122, 58, 87,189, 47,145,172, 46,114, 69,163,116, 37,206, 79,138,167, - 13,253,231, 29,251, 12, 21, 93,143, 5,156, 97, 60,165,242,133, 27,167,156,210, 21,203,254,125,150,188,204,100,166,166, 2,189, -200, 55,198,243,100,137,186,184,103, 41,145,161,160,107,210,135,103,191,190,242,213,175,240,137, 79,190,140,115, 30,103,195, 21, -146, 49,237, 38,236,232,105,154,138,151,111,157,102, 50,142,209,172,219,134, 27,135, 45,203,198,228,200, 85, 33, 25,125,192,167, - 68,163, 5,198, 72,106, 45,105,180,202, 69,173,120,236,199,226,207, 30, 82, 38,212,205,156, 4,145, 18,186,152,101,132, 24,145, -206,103, 93,108,140,212, 67, 36,141,158, 48, 89,170,222, 35, 54, 22, 51, 68,218,221,132, 25, 6, 46,157,229,116,217,146,110, 29, -240,231,127,241, 54, 15,254,234, 67, 54,187,145, 7, 33,178,182,129,255,115, 24,249, 87,219,135,124,142,137,151,150, 47,241,107, -171, 83,110,121, 71,140,158,101, 63, 34, 71,207,105, 76, 44,235,154, 87, 63,113,135,218,200,236, 53, 52, 6,134, 40, 16,173,161, - 94,183,156, 46, 27,110, 31, 53,188,250,210, 77,236,164, 88, 28, 29,240,242,171,167,188,112, 99,197,113,151, 49,135,221,232,152, -108, 96, 51, 76,108,139,115, 30, 62,102, 4,195, 23, 87, 44, 41, 88, 46, 42,150, 93,195,106, 81,179,236, 42,150,181,193,212, 58, -255,188, 72, 24,163,168,107, 67,221, 24, 14, 15, 90, 94, 56, 94,160,181,198,249,196, 65,171, 81, 82, 18, 4,156,157,109,153,134, -137,197,178,229,215, 94,185,137, 74,129,113,176,140,214,241,205, 7,231,108,199,158,139,237, 37,253,206, 34,162, 33,136,192,139, -183, 14,249,244, 91,111,241,191,253, 47,255, 34, 67,185, 60,237, 33,195, 53,250,200, 47,244, 76,144,215,238,249,171,221,100,250, -233, 25,238,186, 16,226, 22, 93, 38, 70, 45,234,188, 62,146, 34,203, 35, 4,156, 84,146, 70,107,180,202, 25, 2,147,119, 60,153, - 60,239, 88,155,243,176, 67,200,242, 84, 37,192, 59, 46,173,229,174,145,220,219,245, 40,231,248,112,179,229, 59,143, 47,185, 56, -219,228, 61,167, 20,185,160, 63,203, 25,240, 62, 79,116, 67,159,201,110,206,239,223, 99,183,132,163, 19, 42,165,121,171,109,144, - 85, 69, 72,134,182, 85, 76, 46,241,104,242,116, 74,208, 39,184, 89, 25,142,234, 26, 41,178,198,220,199,192,221,166,226,219,219, -205,222,247, 34,148,215,221, 15, 25,254,223,141,249,239,222,245,236,166, 29,231,214,241, 97,138, 60,118, 22,155, 4, 74, 42,148, -144, 24,165, 72, 49,161,148, 65, 10,205,132,160, 85, 50, 7,181,104,197, 20, 35,203, 90,226, 35,180,181,102,244,129,182, 50, 36, -153,243, 43,188,148, 8,173, 24,148,194,214, 6,140,194,105,201, 84, 12,166,166, 36,178,126,187,220,179, 81, 42, 70,145,232, 37, -156, 91,201, 35,151,232, 93, 96,227, 19,187,157,101, 20,137, 29, 2,239, 45, 42,122,106,153,153,226, 41, 38,100,242, 36,165, 72, - 33, 34,136, 36,231,137, 49, 81, 37, 79, 10,137,174,201,180,254,101,107, 48,209,161, 91,141, 8, 1,165, 36, 43, 63, 50,197,136, - 9, 14, 41, 43, 12, 35, 11, 17,208, 41, 33, 9, 24,169, 57, 81,137, 24, 45,210, 91,214,149,198,184,137,237,238, 17,219, 97,226, -141,174,226, 52,194,199, 14, 22, 52, 82,179, 90,180,152,186,161,151,197, 9,116,206, 68,143,177, 16,158, 51, 7, 33, 59,195,145, -207,254,144,138,107, 99,249,185,121,186,118,110, 47,225,148,101,152,107,187, 2,223,135, 18,215,170,247,205,102,136,185, 89,104, -179,185, 87,110,234,102, 20,188,172,122,221,236,198, 88, 76,118,230,181,112,226,151, 88,212,103,239, 92,101, 50,100,165, 51, 29, - 63, 33,136, 90,177, 11, 57, 33,104,231, 45,187,224,168, 11,148, 97, 99,200, 19, 11, 96,180, 33,164, 64, 18,217,110, 84, 8, 67, - 27, 1, 17,104,165,100,240, 83,142,147, 37, 96, 39, 75, 45, 37,113,154,120,108, 71,124,140, 60, 25,119,132, 24, 8, 62, 18,131, -163, 70, 50,133, 60, 41,117, 66,144,130, 43, 68, 45, 80,193, 97, 66,164,142,158, 54,122,140,144,116,222, 35,162,163, 81,138, 38, - 70, 66,138, 52, 74,241, 58, 9, 47, 2,247, 41,172, 69,235,179, 67,148,203,157,255,213,105, 40, 10,185,221, 22, 24,231, 58,185, - 2,114,199, 55,107,117,103, 24,134, 82,208, 99,129,244,187,106,239, 53, 28, 75, 19,225,228,149,124, 1, 89, 18,133, 92,137,250, -123,222, 65, 42,234,124, 19,142, 33,147, 65,126,196,215, 87,190,246,219,220,190,115, 74, 72,137,105,242, 72,173,114,156,234,228, - 73, 17, 94,188,123, 11,211,214,184, 40, 80, 82,114,235,112,193, 65,103,168,180, 70, 25, 93, 44, 99,243,155,175, 5,104,153,173, - 98,141,201, 42, 6, 31, 50,194, 33,201, 33, 43,179, 58, 34,250, 76,120,147, 33,171, 34,164, 15, 40,159,144, 62, 34, 99, 36,217, - 64,216, 58, 98, 63,145, 98, 36, 61,238, 81,151, 35,141, 75,212, 83,192,244, 61, 43,165, 56,190,125,204,187,222,243,207,255,213, - 31, 82, 77,129,197, 24, 24,183,150,205, 54,176, 14,137,175, 4,205,215,197,200,203,227, 64,167, 43,110, 45, 78,120,109,117,204, -189,221, 57,239,143, 27,150, 49, 49, 34, 88, 13, 96,146,100,177,108, 57,124,229, 20, 35,178,150,250, 34,134, 76,222,116, 17,173, - 18, 47,220, 61,228,213, 87,110,241,226,141, 37,181, 82,217, 29,213,121,206, 46, 39, 98,140, 89,122, 86, 24,150, 62,100, 59,219, - 24,178,245,237,162, 49, 28, 29, 52, 44, 23, 13,139,174, 66,203,108,247, 89,107, 81,162, 40,115, 81,151, 5,213,104, 42,195, 65, -219,228,117,145,115,220,174, 43, 86, 81,162,109,228,133, 69,195,127,244,218,109, 62,251,194, 17,211,100,209, 34,113, 57,120,254, -226,131, 71,124,251,163,119,217,108,123,222,184,241, 2,127,247,243,111,178, 17,112,118,177, 99,181,106, 57, 58,232,248,239,254, -254,239,241, 63,255,175,255,226, 74,158,155,126,217,211,250, 92,244,230,102,119,110,116,159,149,193, 61,175,168,107,160,106, 88, - 31,174,160,109, 81,181, 65,181, 53, 65, 23,143,136,178, 82, 58,139,154, 70, 75, 54, 46, 63, 95, 46,122, 38,155,232, 73, 76, 59, -187,223, 80,217,144, 97, 83, 27,248,224,114,224,254,227,129,239,159,143,188,255,228,130,139,203, 93,150,246,201, 50,141,205, 46, -117,206,255,176,253,238, 15,153,232, 40,136,134, 91,183,143,249,237,155,119, 72,186, 35,134,244,255,209,246, 38,191,150,101,215, -153,223,111, 55,167,185,237,235,227, 69,151, 17,217, 49,147, 20, 51, 37,153,106, 76,169, 40, 74,150, 68, 89,178, 74, 50, 92, 5, -215,192,240,200,255,131, 97,120,230,145,231, 5, 15, 12,123, 96, 24,112, 21,108,192, 48,224,129, 97,187, 44,168, 76, 74,114, 73, - 44, 50, 73,145,148, 72, 38,153,109,244,205,235,110,123,206,238, 61,216,251,190,251, 50,197,164, 26,144, 1, 4,162,121,209,188, -119,239, 57,103,237,181,214,247,253, 62, 82, 8, 72,213, 34,165,196, 83,226,160,221,154,221, 90,101,123,175, 20,164,224,169,132, -160, 15,150,153,117,172,186, 46,231,107,172,186,220,157,207,250,172,154, 95,173,243,239, 13,170, 92, 92, 26,133, 9,158,105,219, - 34,145,196,148, 24,212, 77, 22,170, 74,157,199,216, 34, 51, 33,188,208,120, 41, 89,198, 60, 13, 90,117,129,118,160,152,245, 30, -169, 20, 42, 70, 68, 91, 17,139, 69, 25, 9,125,147, 85,233,243, 40, 9, 40,146,172, 48, 73,226,132, 32,216,200, 10, 73, 74, 18, - 39, 83, 78,236, 52,121,245,228,188,103, 21, 96,217, 59,140,144,184, 4,206,121,180, 51,116,206, 82,135, 44, 34,139, 41,230,157, -125,112, 84, 34, 98,173, 5, 34,202, 90,100, 18, 52,210, 81, 37,145, 47, 27,160,138,137, 73, 12, 4,161,168,141,193,120, 75, 74, - 48, 20, 2,153, 28,163, 16,152,232,154, 58, 24,110, 84, 13, 35,183,162, 37, 49,244, 22, 29, 44,202,117,216,110,129, 13,142,137, -132,147,229,138,241,160,166,213, 21,173, 18, 12,181,100, 90, 73,246,154, 58,175,111,154,188, 86,184,188, 78, 55, 40,223,205,179, - 59,149,134,108, 35,100,219,120,215,131,223,194,103, 92,204,117,162,109,242,117, 39, 85,174,143,170, 52,134,178,172, 88, 55, 26, - 10,227,183,129, 93, 27,140,183, 15,219,213,238,230,112, 92, 93, 33,214,241,211, 46,234,148,253,130,208, 37,231, 86,129,177,229, - 96, 35,232,140, 5,157, 71,242,107,219,163,149,198,197,128,172, 52, 34, 9,250,224,137,228, 46,183,213,117, 22,210, 5,207, 88, - 39,150, 41,114, 32, 21,214,152,236, 97, 12,145,181, 51,152,232,209,222,176,182,150, 14,232, 76,199, 88, 8, 6, 74,177,180, 61, -149,212, 52, 66, 32,124,200, 63,166,132,243, 61, 3,149,119, 54, 10,168,131, 99, 15,137, 75, 9, 29, 28, 93,140,244, 62, 49, 70, - 82, 87, 13, 85, 8,236, 9,197,169, 12,204,131,202,111, 84, 42,124, 97,159,182, 34,135, 84,146,220,144,121, 68,158,194,214, 68, -186,185, 24,196,166,187,143, 91,121,189, 16, 91,164,103,218,228, 66,171,242,198, 54,133,153, 93,222,104,177,201,118,239, 63,185, -187,241, 54,139, 62,194,143,143,246,251,226, 31,254, 46, 85,163,233, 58, 71,138,217, 49,176,188, 88, 17, 34,236, 29,238,241,185, -215,111,163,165,198,133,132, 78,146,195,253, 1, 90, 72,132,144, 37,218, 54,223,116,141, 18, 12, 90,141, 86,130,186, 42, 59,249, -144,217,236,214,167,188,103,246,185, 91,143, 5, 42, 35, 67, 64,165,128,176, 30,225,178, 93, 74,184,128, 48,158,212, 57,150,243, - 21,189, 11,120,145, 48,179, 37,118,181, 66,122,136,222, 33,131,103, 52,153, 50,120,233,128,239,124,245,187,124,248,205,135,172, - 83,160, 78, 2, 29, 35, 79, 86,158,207, 10,197, 43, 85,197,211,149,227,105, 88,163,100, 71,131, 96,111,116,192,117, 52,149,183, -124, 79, 4,214,109,195, 9, 9,191, 50,236, 92,159, 34,142,198,132,186, 34,145, 80, 38,176, 91, 41,186,121,199,105,128,107, 7, - 99,148,206, 94,221,139,206,242,236,124,205,247, 63, 60,163,235, 28,107, 27,112, 54, 79, 37, 82,204,135,154, 16, 50, 1,177,173, - 43,166,147,134, 65,157, 15, 68, 66,200,252,241,152, 10,219, 62,146, 95, 21,145, 71,249, 46, 96, 35,216,152,184,247,112, 65,191, - 10, 60,120, 48,227,254,189,103,252,249, 95,189,205, 7,207,206,152, 45, 44, 55,119, 26,246,235,154,163,131, 9, 73, 43,126,238, -238, 17,186,217, 97,247,240, 58,255,209, 47,188,134,214,130,183,159, 93, 32,149,230,217,210,240,221,119, 31,243,243, 47, 93,231, -248,211, 63,195,159,124,249, 43, 31, 37,204,253, 52, 58,245,143,143,225, 55,202,119,119, 69,107, 18,127,140, 10, 94,106,104, 7, - 28,238,143, 24, 13, 90, 68, 91,163,180,194,164,180, 77,136,139,128,204,135,197, 59, 26,166,178,172,209,128,123,157, 35,108,160, - 33,155,233,128,119, 89,125,190, 92,100, 63,113,232,242, 56, 93, 52,185, 59, 55, 54,119, 79,222, 95,153,132,233, 43, 10,228, 43, -157,210,230,254,211, 10, 14,246,184, 51, 29,115,115,239, 0,106,201,163,222,146,170,154,161, 86, 60,178,158, 38, 88,230, 41, 50, - 86, 21, 82, 6,234,148,115, 38, 92, 12,136, 96,185, 88,175,248,206,147,115,152,149,207,107, 54,135,110,145, 5, 87, 33, 22,180, -115, 17,231, 14,244,101,241,181, 34,139, 2,155,170,201,152,101,145,175, 36,165, 42, 66,180, 36, 33, 73, 41,219, 72,173, 7, 71, -202, 49,213, 94,160, 10, 69,173, 71, 35, 43,129, 81,146, 80, 73, 86,165,128,172,125, 78,157, 11, 85, 69, 36, 97,149,190, 4, 9, - 7, 33,233,125,190,175, 29, 69, 35, 66,162, 79,130,245,218, 20,109, 84,192, 90,131,242,142,149, 51,168,232, 16,214,100, 26,104, -138,164,224,209, 41,209,245, 29, 58, 6,170,224,105,132,163, 9, 61, 83, 36, 45, 48,137,121,157, 53, 44,147,189,161,203,147,176, - 16, 28,117, 48, 84,206,101,231, 71, 74,244,174,231, 90,138, 56,187,228, 64,106, 6,206,144, 92, 79,116, 6,172, 69, 4,159, 19, -196,131, 97,119, 48,160, 15, 1, 65, 98,191, 30,208, 5,135,148, 50,195,110,180, 98,160, 21, 39,182,192, 98,184,194, 87, 80,229, -181, 23,101, 18,170, 84,185,126, 82,158,190,202, 82,120, 59,155, 15, 96,155,105,236,166, 16, 55,162, 68,181,214,219, 76, 3, 91, - 82,232, 90,189, 21,202,109,186,243, 77, 96,204,102,220,158,210, 37, 15,109,147, 64,248,211, 45,234,155,229,253,120,148,111,214, - 84,226,239, 66,184, 44,108,193,249, 60,122, 39,209,199,252, 66,166,148,195, 86, 98,138, 40, 52, 81, 36,130, 40,191,142, 17,157, - 18, 85, 8, 44, 82,162,242, 22, 99,122, 68, 74,248,224,136,165,155,122,102,215,244,222, 50,148, 42,239, 52, 67,100,162, 53,222, -247,200, 24, 25, 10, 65, 75, 62, 36, 72, 4, 49,120,170, 24,153, 58, 75,171, 27,156,181,232, 24,169,144,232,178,230, 78, 82, 17, -189,163,115,129, 97, 74,236, 42,197, 66, 9,230,126,227, 83, 44,249,209,193, 21, 53,123,121,179, 93,151, 11,111,111, 74,151,144, -242, 27,211, 86, 57,150,213,199, 45,102,179,173,202,232,165, 46, 73, 61,165,160, 19, 63,234,133,244, 41,243,228,125,252,123,198, -113,234, 79, 20,211,253,218,239,253, 22, 90, 75,124,136, 40, 41,177, 54, 98,123, 75,211,182,220,186,117,192,181,241,136,103,179, - 14, 25, 97,111, 90,177, 55,200, 33, 60, 82,100, 76,175,146,185,131,175,148, 64, 41,145,193, 41, 34,175, 85, 98,140, 5, 50,147, -139,151, 40, 86,142,252,251,249, 59, 33, 16,173, 39,244, 22,187,182,152,165,193,251, 64, 90, 91, 22,243, 62,167,231, 89,143,233, - 12, 23, 93, 15, 50, 50,235, 23,116,193, 51,216, 25, 83,239, 14,185,241,175,254,146,207,215, 53, 39,115,195,227, 51,195, 13, 39, -120,147,138,159, 19,138, 87, 15, 70,204,206,123,206, 26,112,195,134,239,164, 53,207, 87,103, 28, 70,201,167,135,183,249, 25, 53, -228,184, 64,112,118,218, 1,182,179,220,179,150,249,189, 25, 79,223,123,206,243,103,115, 46, 90,201,153, 84,188,122, 56,102,168, - 20,203,165,225,100,217,241,100,222,241,248,249, 34,251,133, 3,152,206,227, 66, 44, 70,137,172, 27, 24, 13, 42,118,199, 3,118, - 39, 45,131,186, 66, 43, 81,120, 70,145,206, 6, 58,235,233, 92, 22,240, 72,160, 77,208,219,128,183,129,197, 69,207,163,179, 37, - 23,179, 5, 15,159, 60,226,237,251,239,115,210,173,161,170,169,135, 19,244,206,136,119,151,150, 71, 1, 78,156,229,157,147, 37, - 43,227, 56,239, 60,198,122, 30, 44, 87, 60, 92, 27,144,130,231,103, 43,238,253,224,125,254,234,237,239,112,178,148,168,225,144, - 55,126,254, 13,190,246,231, 95,253,177,182, 54,241,147, 44,234,155,130, 30,210,214, 1, 10, 63,158, 42, 87,143,184,125,125, 2, -170,197, 87, 21,163,182,165, 45,221,146, 9, 27,145,104, 4, 19,105, 98,228, 88,230,195, 98, 68, 18,149, 96,105, 29,235,116,165, -131, 10, 33,119, 81,253, 42,227,159, 69, 25,159, 59,151,255,157, 13,251, 59,132,143,118,227, 90,110, 39, 3,162,236, 69, 21, 91, - 29, 77,165, 96, 56,230,100,103,135, 32, 43,188, 28, 82, 75,149,137,153, 85,205, 52, 37,116, 59,166,151, 31,150, 0, 0, 32, 0, - 73, 68, 65, 84, 68, 57,203,154,196,131,213,140,212, 45, 25, 36,203,136,132, 89,175,120,251,249, 41,103, 79,207,225,244, 28,204, - 34,143,248,157,223, 38,143,137, 43,150,192,166, 42,124, 11, 73, 40, 73,103, 85, 81,229, 87,178,202, 56,255, 16,208,170,130, 36, -112, 49,101, 16,151, 20, 68, 45, 25,106,133,208, 2, 47, 65, 10, 73,146,130, 46, 9,180, 86,244, 46, 3, 90,214, 17, 86,101, 28, -111, 99, 34,181, 13,222,231,189,242,178, 60, 51,214, 34, 15, 31,215, 49,178, 10, 89, 95,227,124, 94, 69,197,126,133, 11,249,192, -110, 92, 79,109, 13,206, 91,132,144,196,100, 81, 66,162,162,197,251,136,116, 61, 42, 6, 68,232,104,131,167, 1, 92, 48, 76, 19, - 88,179,100, 39,102, 58, 95,244, 22,101,215, 40,179, 38,121,135, 54, 29,149,115, 8,111, 17, 49, 48,241,158,224, 61,123, 82,242, -217,221,107,156, 46,207,105,189,167, 74,130,140,197,202,225,153, 83,221, 32, 82,100, 44, 53,109,193,187,106, 41,177, 49, 80, 41, -137, 11, 1, 37, 36, 59,117,195,233, 98, 85,130,137, 68, 46,210, 87, 69,151, 27,107,241,230,186, 81,133, 74,103,202,179,190,183, - 37,169,176,172, 28,219,122, 27, 10, 22, 92,238,196, 99,216, 10,165, 55,226, 99, 81,158,247,170, 68,105, 27,183, 61, 40,108,198, -239,136,172,143, 82,250,167, 88,212,181,222, 98,237, 98,202,106,208,210,117, 95, 22,187, 75,225,129, 33,149,194,110, 17,180,149, -102,237, 93, 73,118,203,129, 3, 74,128, 8, 14, 79, 22,182, 12,100, 66, 57,139, 41,222,192,133, 91,103, 36,108, 76, 92,248, 14, -235, 3,193, 27,214, 49,112,144,114,172,106, 8,129, 29,161, 72, 49,160,145,168, 80,216,190, 18,140,143,232, 8, 59, 90, 82,187, -144, 69,166, 41,191,245, 41, 4,156,204,187,238, 20, 34,227,186, 98, 46, 19, 58,229, 16,146, 71,193,103, 62,188,247,219, 44,242, - 20, 75,113,247,219,241, 9,105, 11,228, 15, 62,139, 37,172,221, 90, 24, 68, 33, 8,109, 34, 93, 55,227,149, 84, 70,237,227, 97, -126, 29,155, 58,255, 25,235,254,142,120,223,171,133, 60,254,200,194,254,230,239,255, 30,191,240,139,159,166,183,158, 80,110, 72, -211, 89,108,239,184,118,243,144,227,221, 49,141, 84, 44, 59,203,238,168,229, 96,212, 50,104,117, 86,189,139, 92, 8,107, 41,242, -186, 73, 10,116,233, 16,124,200, 5, 93,144, 49,167,174,160, 78, 19, 89, 9, 46, 55, 95, 91,200, 59,162,208, 91,170,181,195,134, - 64,176,185,192, 69,231, 73,189, 39, 25, 71,215, 25,122,219,115, 26, 29,115, 25,121,183, 91, 97,154,138,195, 79,223, 34, 62,152, -209,252,229, 35, 94, 29, 31,240,235,205,136,253,139, 53,225,169,231,200, 75,150, 83,201,122, 92,241,158,247, 40, 37,185, 23, 61, -231,227,134,119,149,224, 66,193,177, 82,140, 85,195,129, 28,178, 47, 43,118, 6, 3,166, 66,193,243, 21,247, 79,231, 92,191,189, -195,139,183,246, 56,184,177,203,145,208, 92,107,107,148, 75,216, 62,219, 35,133, 43, 89,238, 87,248, 17, 66, 10,234, 58,187, 3, -118,198, 3,246, 38, 67,246, 39, 13,131, 90,151,107, 59,255, 29, 23, 2, 49, 6, 66, 74,212, 82,146,124, 98,170, 18, 47,213, 53, - 79,103, 29, 31, 60, 56, 99, 54,155,227,188,229,112,111,196,231, 62,117,147,155,215,142,153, 14,119,217, 29, 78, 72, 69, 93,127, -231, 96,194,106,109,120,126,182,162,209,154, 51, 27, 88,199,196,193,225,152,221,189, 17,200, 12,117,154,159,204, 57,174, 27,246, - 38, 83,122,159,241,161,175,191,242, 2,191,248,239,252, 60, 95,249,202,159,125,100,191,254, 19, 47,232, 87, 21,240,155,164,171, -205, 84,235,111,163,202,141, 6,152,193,132,209,116,196,167,247, 6, 28, 14,106,118,107,205,245, 90, 49, 80,138,147,165,201, 15, - 78,103, 49, 46,146,148,230,104,216, 48, 80,130, 86,100,208,202,194,231, 96,161,188,251,235,243, 67,212,102,209, 25,190, 56, 82, -148,222, 78,202, 54,209,176, 31,103,214,111, 86, 7,170, 20,116, 41,178, 85,174,153,192,141, 99,216, 25,195,100,159,231, 85,205, -141,102, 68, 39, 4,123, 77,205,185,113, 56, 96, 71,193,137,181,248, 24,121,107,121,206,217,226,148, 39,103,231, 60,158,157,242, -214,163, 51,158, 62,124, 2,179,243,188, 46,251, 27,124,138,205, 1,191,220,198, 77,181, 77, 2, 67,208,167,128,144,130, 73, 53, -192,166, 68,163, 20,178, 76, 71, 68,138,136, 24,243, 72, 94, 66,244,130,145,202, 16, 40, 33, 37,169,146,132, 36,137, 74, 98,124, -202, 63,146,105,102, 46, 38, 58, 31, 17, 42, 23,241, 40,243, 10, 37,175,128, 99, 30,173,147, 19,212,164,247,172,124,160,235, 60, -209, 25,146,136,132,110, 13,206,144,130,205, 25,234, 66, 18,162, 45,169,184, 14, 21, 19,214, 27,218, 70, 66,176, 12,136, 4,223, - 83,153, 30,229, 3,209, 59,154, 20,113, 33,128, 55,200,224,136,166, 3,103, 17, 46, 79,236,156,235, 24, 34, 32, 56,132, 16, 57, - 47, 66,192,172, 95,229,116,199,226, 67, 15, 36,148, 80, 40, 18,158, 88, 66, 54, 5, 42,101,105, 70,231, 12, 29,177,120,230, 19, - 54, 6,150,214, 51,105,106, 22,222, 95, 97,244,139,220, 41,111, 28, 36,155,113,249,102,148,190, 17,198,165,194,160,135,237,245, -181,217,207,111,148,242, 87,121,241,226, 74, 81,247, 37, 20,198, 20,198,130,210,249,218,221, 96, 2, 67, 73, 51, 68,129,119, 63, -101,161, 92, 91,129, 87, 48, 29,230,125,238,168,217,226, 80,155,234,114, 92,128, 80,121,212,229,242,233,105,181,238,145, 85,131, -113, 6,161, 42, 70,186,194,186, 30, 17, 35, 50, 37,134, 41, 18, 17,212, 41,208, 71,199,202, 59,148, 80, 24,111, 89, 59,139,137, -145,148, 18,141,212, 76,131,197, 91,199, 80,107,134,192, 50, 6, 14, 85,141, 53,153, 24, 85,107,149,167, 5, 62,160,101, 22,105, -212,193, 51, 78, 20, 14, 61,151, 66, 5, 67,202, 76, 99, 18, 6,232, 82,204,227,254, 74,210,155,136,237,203,205, 31, 93, 17, 76, -168,252,117,171,143,189, 54,118, 51,122, 44, 63, 23,229, 77, 9, 69, 81,155,228,246,230,221, 60,232, 54,252, 71, 41,183,209,126, - 54, 67,117,127, 44,113,174, 41, 40,193,205,195, 74, 21,145, 71, 16, 31, 41,236,191,250,235, 95,224,248,250, 1, 62, 38,250,117, - 30,191, 59,147,245, 12,187, 59, 35,110,237, 78, 74,195,162,105,180,162,106, 84,222, 53, 35,112, 49,146, 82,188,124,206,233,130, -131,141, 41, 96, 93,192,197,108,187,202, 76,130, 13,140, 41, 79, 43, 68,140, 40,145,168, 82, 94, 45, 57,231,145,198,209,185,236, -231,118,214, 97,230, 61,177,239,113,171, 53,157,181,204,214,134,185,237, 89, 24,195,105,176,236,191,120,155,157,207,222,226, 43, -127,254, 13,222,250,139,251, 12,142, 21, 47,220,124,145, 23,118, 26,252,196,240,245, 39, 6, 33, 34,143, 71,112,126, 56,196, 95, -159, 50, 18, 2,150, 6, 81,107,226,193, 49, 15, 14,199,156,141, 43, 6, 71, 35, 26,169,209,109,141, 58, 24, 50,108, 27, 14,238, -236,178,127,123,143,118,210,210,122, 24,161,168,155, 10, 85, 41, 70,114,139,207,140, 49, 96, 67,164, 25, 86, 76,198, 13,215,246, -134,220,220, 27,113,109,119,196,193,116,192,100, 88, 51,110,106,180, 86,249,181, 8,145,152,242,136, 94, 10,201,180,209,236,141, -242,104,252,134,150,200,121,199,255,246,111,190, 75,112,145,122, 48, 96, 50, 30,241,194,241,148, 59,187, 35, 82, 76,188,253,195, - 71, 44,206, 47, 16, 62,112,234, 37,119, 38, 53,235,103, 75, 98, 31,217,213, 21, 55,246,134, 44, 58,207, 98,101,105, 27, 77,191, -178,200, 8,211,225,128,225,112,192,218, 71,108,200,195,162, 81, 91,241,218,171, 55,240,178,229,251,127,253,221,143, 20,242,191, - 79, 65,255,219,254,236,175,254,193,239,242,202,103, 62,203, 7,111,191,253, 9,171,162, 79, 56,164, 14, 91,216,221, 37, 76,134, -252,236,222,152, 73, 83, 19,132,100,164, 4, 74, 73,146, 8, 60,176, 41,143,203,215, 38,251,213,119,106,142,170, 28, 8,178,142, -145, 93,173, 8, 4,158, 47,138,255,184,187, 2, 19, 65,111,221, 35,162, 46,162,164, 79, 56,100, 92,213, 4,184, 50, 5, 31, 76, -144,119,239,114,243,238, 45,210,225, 17,118,178, 83,114,229,107,180,210,153, 1,159, 34,199,117,131, 35,160, 17,168, 20,121,104, -123, 78,251, 25,166,239, 88, 60, 62,229,236,222, 3,220,114, 1,203,213,143,159,190,109,178,224, 55,154,157,186,216,251, 66,118, - 4, 5, 41, 88,121,203, 78,221,162,132, 68,136, 92, 72, 66, 12,104, 85, 19, 69, 98,131,126, 10, 82, 49, 44,135,114,155, 68,110, - 10,149, 32, 59,234, 36, 65,102,124,240,218,102, 17,108, 42,207, 64, 81,236,136,202, 7,188,144,136, 50,117, 77,198,230,224,167, -222,129,239, 73,222, 18, 76,143,138,158, 24,115, 98,156, 19,130,228,123,156,207,137,107,222, 88, 76, 74,232,148, 8,201, 51, 66, -226,125,207, 40, 74,186, 16,169, 69, 34,152, 14,153, 32,218,142, 58,120,162,115,140,200,235,170, 97, 10,196, 4, 67, 85,177,246, -134, 86,230,152, 85, 73, 22,232,170,242,236, 81,100,194,168, 32,139,182,129,156,248,137,192,166,188,231,246,228, 6, 83, 8, 8, - 41, 98, 98,194,246,150, 73,211,240,104,181,162,169, 42,236,198,238, 38, 85, 41,172,113,155, 60, 88, 95, 81,158,214,114, 11,166, -145,106,155,247,177, 57, 52, 74,145,109,145,155,149,173, 40,249, 32, 27,101, 59,229,227,189,223,254, 61, 81,166,224,179, 85,110, - 28,155,186,248,229, 29,136,159,150,250,125, 88,252,122,169,202, 59,131,166,201,113,129, 27,127,173, 42,167, 27,228,149, 19,122, -218, 34, 38,171, 10,107, 28, 70, 10, 86,214, 16,188, 97, 90, 88,215, 3, 9, 42, 9, 38,194,179,136,129, 90, 72,214,193, 99,202, -232,109,217,175,243, 69,137, 64,250,142,118, 35,138, 43, 23,243, 68,192,204,244,140,235, 22, 17, 29,201,123,150,222,103, 7,124, -204, 35,185, 29,157,185,191, 31,190,242, 58,215, 46, 78, 73, 73,226,137,140,145, 88,160, 67, 32, 69,194,186,196, 66,101, 72, 78, - 40,202, 79,187, 25,167, 7,159,187,244,166,222,146,134, 40, 86, 6, 10,216,223, 23, 81,157, 43,132, 58,183, 81, 2,151, 55,126, -227,245, 18, 69,100, 81,169,237, 30,101,179,123,140, 41,119, 8, 27, 59,197,213, 7, 65, 83,127,212, 94, 1,219, 36,162,205,184, -176,124,224,183,254,201, 63,206, 56,221,144,112, 54, 95, 64,147,209, 0,129, 98,111,119,140,150, 10, 37, 21,141, 86, 72, 33, 75, - 87,158,227, 83,157,203,162,176, 90, 73,154, 90,150,162, 14, 62, 70, 58,159,149,236,133,220,139,137,145, 40,178, 47, 85,196,144, - 35,143,197,150,123,109, 66,192, 46, 76, 22, 9,245,142,213,202,176,156, 45, 56,159,175,152,245, 29, 51,103,145, 41, 18,157,101, -109,122, 92, 76,236,190,112,140, 62,222,225,255,253,163,175,113,241,112,201,247,186,142,212,172, 9, 56, 62,115,227, 22,111, 54, -137, 39,120,254,236,241, 26, 63, 55,156,159,175,169, 5, 48,110, 25,197,196, 99,179,160, 11,129,190,213,204,118, 71,156, 54,146, -147,169, 34,222, 30,179,216,169,176,149,162, 54,121,100, 41, 7, 53,205,184,166,110, 52, 35, 89, 49,172, 53,173,146,180, 62, 50, - 33, 49,110,107,166,147,150,107,135, 99,246, 39, 3,246,166, 3, 70,131, 26, 93,108,128, 90,201,178,126,141, 36,159,213,255, 82, - 8, 26,173,153, 12, 42,246,234,138,147,101,199, 35,165,248,242,215, 63, 32,133, 28,172,209,212, 53,195,129,226,217,188,103,185, -116, 12,147,228,116,102,153,205,206,120,180,154, 49, 11,137,111,254,240,251,124,240,236, 62, 39, 23, 39,188,251,240, 62,143, 31, -157, 48,191, 88, 48, 95,204, 57,123,122,206,163,135, 79, 57,125,126,206,197,197,140,231, 39, 39, 44,214, 29, 85,173, 8,174,167, -235, 12, 54, 9, 6,187,215,137,202,242,224,189,123,151, 0, 69,254,158, 69,253, 71,125,223,124,187,191,180,124,240,222, 7,208, -175,255,238, 5, 93,235,220, 1, 31,102,129,220,205,166,166,173, 50,238,116, 32, 37, 90, 87,120,231,240,222, 49, 95,153,188,230, - 27,100,178,216, 65,147,115, 35,234,148,232,125, 96,225,115,126,184, 57, 95,110, 35,135,109,233,188,170, 97,238,218, 69, 41,146, -155, 46,253,147,196,126, 82,228,191, 55,220,129, 23,142,121,243,198, 49,135,211, 67,218,193,136, 51,213,146, 68,158,208,205,234, -150,167, 40,166, 34,113, 18, 35, 67,239, 56,247, 14, 17, 19,111, 89,151, 31,204,125, 15, 23, 11,152,205,126,124, 66,221,230,245, -240, 30,212, 32,127,174, 65,102, 71, 64, 44,234,105, 37, 8,206,211, 14, 90, 66,112,104,169,177,193, 51,168,106, 20,153,236, 25, -188, 65, 11,149,215,103,185, 68, 19,108,160, 86, 50,219,172,109, 66, 40,137,136, 9, 93, 30,105, 61, 80, 33, 72,133, 0, 42, 76, -204,114,158,144, 15, 83, 90,103, 13, 11,189, 39, 57,159, 5,202,102,141,240, 14, 65,200,196, 59, 34,214, 5, 98,200, 17,170, 85, - 57,124,120, 41,192,245, 68,233,169, 19,120,231, 24,162, 89, 70,207,184, 30, 16,189, 67,235, 1,157,235, 25, 75,133,113,150,125, - 41,209,128, 70,160,133, 68,138,204, 37,168,164, 32, 68, 79, 85, 38, 9,163, 36,240, 66,228,175,131, 72, 31, 44, 72,141, 38, 17, - 81,185,112,147,138, 51, 89, 32, 98, 66,165,136,147,153,247,174, 8,244, 33,177,234, 13, 35, 93,115, 70,164, 74,121,122,145, 68, -177,153, 41,181, 85,160, 20, 23, 28,141,206, 98, 55, 41,182, 19, 42, 33, 62,122, 77,109,158,219,151, 93,186,222,142,211, 55,142, - 37, 23,114,189, 8,108,187,247, 80,108,112,107, 91,106, 72,209, 86,249,248, 83, 42,234, 74,231, 34, 30,200,114,125, 84, 62,177, -232,156,129,158,199, 21, 41,183, 8, 66,111, 21,130,177,132,164,152, 34,221, 79, 20,123, 67,222, 95, 91,107,105, 73,104,153, 71, - 64,144, 72, 41,228, 44,246,222,226,163,203, 14, 2, 2,131, 2,132,217, 67, 48,174,114,150,179, 46, 23, 56, 68,124, 25,239,235, - 20,105, 35,204,108,192,133,200, 72,128, 45,121,221,183, 79,159,179, 44,144,148, 81,132, 69,121, 23, 12,130, 25,137,133, 16, 44, -125,190, 32,214, 65,112,238,242, 41,249, 50,150, 53, 94, 21,192,197,210, 89,171,141, 68, 49, 67,248, 83, 17,187, 37,114, 52,235, -102, 36, 35,139,176, 78, 94, 17,207,249, 66,170, 43, 88, 81,124, 25,185,200, 43,116,174,116,133,207,189,177, 91,136, 43, 66, 62, -228,246,128,193,214,162,243,251,255,233, 31, 98,186, 28, 44,225, 92, 32,186,192,238,206, 36,159,193,146,164,109,107, 14,134, 45, -195, 90, 83,215,217,141, 16,203, 80,161,210, 32,146,160,105,178,133, 45,199, 80, 71, 92, 12, 24, 31, 8, 41, 71,168, 38,145,178, -133, 80,230,216,220,232,179, 18, 28, 4,222,121, 92, 8, 8, 31, 57, 95,245, 44,214, 22,103, 29,171,222,240,164,235,120,188, 94, -115, 97,123,214, 9, 92, 37, 56,235, 58,150,214, 16, 43,197,203, 47,189,192,201, 98,205,215,254,215,111, 32, 6,146,186, 18, 52, -119,246,249,186,142, 28, 72,184, 62,217,227,243,215,111,242, 89,147,247,204,223,127,106, 8, 35, 80,141, 98, 60, 25,179,127,112, -204, 75,135,199,188,116,227,144,113,165, 9, 90,114,237,230, 14,211,189, 17,207, 47, 86, 72,227, 72,215,166, 84, 71, 99, 70,147, -134,145, 84, 84, 97, 43,142, 22, 62,162, 67,162,173, 85,254,248,184,165, 29,214, 12,219,154,166, 86,217,238, 87, 28,142, 46,101, -191,120, 12,161,192,167, 4, 77,165,169,106,133, 20,138,243,147,158, 7,167, 11,118,247, 7,156,156,175, 49,103, 11,170,170,230, -151,111,236,241,198,241,148,135, 23, 29, 51, 99,120,116,190,224, 7,247, 63,224,157,179,167, 44,187, 30,223,205,232,215, 38, 15, - 98, 18,132,228,115,183, 20, 12,203,213,138,179,229,140,179,197, 57, 23,171, 57,103,139,115, 78,215, 51,158,207,207,184, 88, 94, -240,222,179, 71, 60, 57,125,198,129, 24,146, 82,228,197,151, 94,230,223,252,201,159,254, 72,251,122,250, 49,133, 94,252, 29,138, - 61,139, 89, 46,156,159, 52,221,251, 81,140,133,241, 4,142,247, 47, 73, 93,183,171, 42, 91,122,145,116, 36,250,190,207,217, 0, -120, 30,117,219, 16,142, 78, 40, 38,141,100,110, 3, 41, 69,154,148,144,214,243,238,179,115, 46, 51, 77, 47,177,155, 50,143,224, -155,122,171, 92, 86,242, 71, 79,193, 54,201, 92, 41,193,104, 10,135,187,220,190,118,147,233,104, 23,163, 52,162, 26, 48,208, 21, - 23,190,116,114,222, 17,180, 98,153,224,209,122,141,171, 26,190,231, 45, 31,244,235,124,162,247,174,196,124,174,243, 14,253,111, -211,199, 84, 58,123,158,147, 7, 74, 38,134, 93,231,102,106,227,190,145, 18, 19,242, 65, 77,132,192,176, 25,210,185, 30,169, 21, - 34, 69, 26, 85,147, 66, 94, 51, 58, 23,114,132,181, 84,185,185,241,145, 86,103,129, 43, 34,195,193,214, 33, 18,123, 75, 16,153, -246,104,215, 46, 11, 92,125, 32,134,132, 36, 18, 58,131, 95,175,243,218,109,221, 33, 66, 79,112,150, 16, 60,193, 58, 2,129,228, - 18,142,172,175, 81, 50, 93, 90, 12,125,112, 89,180,236, 28, 49, 69, 26, 50,113,174, 10, 17,157, 32, 9,141,136, 14,180,162,139, -130,166, 16, 2, 13,130, 70,105,230,209, 83, 41,133, 41, 13, 76, 16,138, 4, 52,222,177,146,154, 58, 88, 92,180, 40,153, 93, 58, - 97,147,213, 65,194,136, 76, 43, 13,100,124,109, 37,242, 33, 65,165,242,185,166, 72, 77,100,105, 29, 61, 25,128,165,180,102, 34, - 37,149,210,140,128,186,174,104,148,206,221,127, 42, 66, 56, 87,158,223,186, 52, 85,233, 10, 54,124,147, 13,162,244, 86, 32,183, -177, 76,166,184,213,157,108,224, 67,186, 8,235, 54, 72,114, 85, 72,114,118, 85,252,244,153,191,207,170,251, 9, 23,245,170,134, -122,152, 11, 77,211,108, 59,197,182,222, 6,202,167, 43,116,164, 13, 98, 79,177, 21,127,197, 77, 23, 26, 47,141,248, 89,168, 16, - 57,146, 9, 85, 41,116,244, 4, 23, 80, 49,226, 98,230,100, 43, 41, 89,118, 75,100, 74,180, 41,177,178,134,155,186,206,187,250, -224,217,211, 53, 34,194,210, 57,166,170,166,143,150,228, 2, 77, 65, 67, 6,231,240,198, 16,146,160, 46,225, 35, 73,194,158,212, -204,125,126, 19,155, 4, 39,197,114, 23,145, 88, 41,104,149,224,153, 79, 44,125,196,169,172, 88, 78,137,220,145, 75,181, 85,178, -167,210, 29, 43,182,156,235,203,184, 74, 93, 10, 58,249,231, 37, 41,232,114, 85,177,185, 24,160, 88,221, 82, 81, 12, 23,177, 81, -239, 33,169,226,111, 47,175,175, 42,212,169, 75,235, 91, 9,153, 73, 42, 95,116,155,220,223, 16,248,204,239,255, 7,124,254,115, -159,230,226,124,133,174, 43,136, 25, 12,147,130, 96,119, 60,100, 52,108,217, 27,182, 28,140, 26,154, 70,149,125,176,192,167,132, -136,100,116, 36, 89, 36,183,233,212,125,204, 16, 26, 98,188, 92,253, 9, 41,168, 68, 14,222,169, 68,217,239, 9,208, 62, 18, 67, -164,235,115, 32,137, 89, 90,170, 69, 71, 88, 25,132,181, 44, 58, 75,111, 45, 74,228,220,251,211,174,103,213,119, 57,132,103,210, -242,194,155, 47,242, 23, 95,121, 11,255,175, 79,216,105,160,185,214,210, 87,160,158,206,249,225,122,205,119,194,146,163, 73,195, -241,235,159,226, 55, 62,253, 38, 95,184, 46, 56, 28, 40,102,149,228,177, 8,132,228, 56,237,215,116, 54, 32,146,162, 70,176,190, -232, 89,156, 46,152, 55, 53,211, 59,135,140,174, 77,208,149, 66, 70, 8,179, 30,177,242,132, 62, 91,212,130, 11, 36, 34,177,146, -184, 70,163, 27,141,174,213, 37, 77, 48, 21,149,127,138, 9,235, 2,179,222,177,234,242,148, 66, 73,137, 82,146,189,241,128,247, -159,102,202,156,112, 6, 85,107,174,239,141,104, 22,145,167,203,158,135,103, 51,254,242,222, 51,158,159, 93, 96,157,167,110, 91, - 22,231,115, 30,159, 95,100,228,104, 74,204,215, 61, 54,122,198, 74,179,182,129, 85,112, 24,239, 49, 49, 11,150, 58,239, 89,245, -249, 64,112, 54, 95,241,131,231, 11,124,223, 19, 19,204, 23, 61,251, 42, 59, 19,170,113,203,151,126,251, 55,248,211, 47,255,233, -223, 40,232,252, 67, 88,241, 31, 47,238, 87, 57,241, 63,142, 25,223, 78,224,230, 33,236,142,178,216,118, 80, 65,128,164, 5, 85, -204, 29,166,113,129,150,200,147,181,229, 91,103,102, 11,136, 41,207,150,147, 36,120,169,202, 99,230,117,103,121,235,225,156,228, - 74,254,244, 38, 17,173, 42, 99,209, 16,202, 90,176, 60,131, 62, 30,125,250,241,157,250,100, 47, 7,172, 92,191,201,231,118,247, -121, 97, 58,229,246,100, 66, 91,124,226,247,205,106,203,151,112, 22,103,123, 80,138,133, 47,241,157, 17, 88,157,230, 46,219,153, -252,255,157, 45, 63, 6,136,250, 4,171,176, 32, 79, 66,243,252, 59, 23,121,155, 69,154, 84,242, 18, 84, 21,148,192,200, 72,240, -185,161, 9,209,163,117,133,148,185,203,148, 34,147,228, 66,240, 52,149, 98,237, 92, 97, 33, 68,214, 38,175,107, 86,189, 37, 57, -143,174, 43, 98,116, 68,227,179,107,207,122,100,136, 8,219, 35, 41, 2, 97,107,137, 46,107,137,172,237, 72, 27, 93,141, 16, 89, - 52,231,109,137,255,149,184,148,133,118,189,207, 59,118,235, 60, 54,250,146,171, 18, 49,174,167, 18,146, 62, 4, 26,145,136, 50, - 35, 93, 91,169,168,165,162,139,158, 29,169, 88,199, 44,108, 91, 69,135,143, 1,169,179,224,109,229, 45,161,106, 72,209, 97,144, - 68, 33,104, 82, 98, 22, 61, 41, 69, 66,140,116,209,229, 41, 79, 10,120, 66, 57,124,230,103,148, 66, 98,163, 69, 36,129,141, 1, -169, 4, 38, 36, 90, 37, 25, 11, 65, 43, 21, 83, 37, 25, 40,137, 21,137,105,147, 51, 60, 76, 42,224,154,250, 74, 33,142, 92,201, - 1,185,146,183, 46, 75,179,235,220,150, 62,154,200,236,252, 65,137, 87,173, 84, 17, 94,151,110, 93,108, 60,242, 64, 23,242,129, - 78,144,163, 92,131, 67,255, 68,133,113,170,201,167,197,205, 56,160, 85,249, 11,219, 20,163,171, 39,242, 90,111,189,217,165,225, - 68,139,162,236, 43, 76,115, 27,144, 56,134, 90,178, 19, 5,115, 11,199, 98,197,168,110, 51, 76,205, 25,164,108,216, 19,154,167, -221,146,157,170,162,179,134,144,224, 72,215,216, 16,153, 8, 24,171,154,174,236, 89, 14,116,205,210, 91,118,208,204,177,172, 67, - 68,133,136, 38, 43, 42,165,246, 44, 13,184, 74,163, 98,226,185,235,144,149,102, 29, 50,225,105, 71, 42,102,228, 83,145, 36,135, - 20, 88, 34,123,173,102,209, 59,162, 86, 89,229, 62,110, 96,105,182,147,139, 80, 96, 49,169,124,157,254,202, 14, 79,149, 31,211, - 21, 79,162, 17, 48,186,178,155,217, 16,235, 98,177, 58,216,176,213,189, 13, 11, 41,206,232,252,111,153,152, 39, 35,148, 92,236, -170,164,106, 73,189,125, 52, 71,113,249,190,189,121,231, 38, 49, 65, 59,108, 16, 90, 98, 93, 32,153,128,115,185, 91, 81,149,204, -160,147,178,247,174,149, 40, 78,164, 44, 56, 49, 62,162,138,201, 89,108,222,234, 50,136,137, 69,176,185,137,154, 23,136,156, 52, -152, 4, 82,230, 49,161,244, 33,171, 86, 59,131,155, 25, 84,111, 11,203,191,104, 79, 66,192, 6, 71,159, 18,125,111,176,206, 32, -108, 32,166,192, 94,219,242,176,115,252,233,187, 15,185,253, 70,197,200, 66, 67, 66,156,172, 56, 57, 26,113,231,229,215, 89,156, - 61,225,191,139, 29, 47,135, 57,191,110, 87, 28, 31,222,230, 75,117,203, 23,206,159,243,131,229,115,238,173, 35, 95, 94, 95,112, - 18, 3, 79, 42,201,207,238, 28, 51,158, 52,168,107, 19,246, 14,247,152, 30,140,144, 74, 98, 66,194, 45, 58,170,149,195,150,117, - 4, 54,167,186, 5, 45,112,149, 36, 21, 26,156, 14, 9,225, 35,158, 72, 40,112,165,232,193,185,196,122, 29, 80, 36, 68,157,201, - 93, 49, 74,222,190,191, 32,185, 72,171, 96, 58,108,121,218,121,236, 78,205, 63,123,105,194,119,204,138,127,241,116,129,143, 62, - 31,168, 26,197,155,159,191,203,247,191,255, 61,238, 61, 95,114,115, 84,241,107,135, 55, 96, 26,249,198,124,206,176,110,217,175, - 7,220,222,191,198,141,233,148,115,111,121,124,126,142,241,134, 85,183,228, 83, 71, 13, 7,163, 29, 46, 86, 75,158,246, 11,246, -116, 67, 45, 34,157, 2, 21, 2,194, 68,190,248, 43,175,241, 95,255, 45, 29,122,250, 17,123,247,159,152, 5,174,109,217,185,123, -141, 52, 26, 35,134, 3,122,173,241, 41, 17,130,227,161, 75,220,174, 61,206, 67,231, 28, 30, 79,146,101,229,197, 71, 57, 16, 17, -248,234,188, 76, 2, 93,159,159, 47,178,192,155,218, 9,248, 46,239,215,171,186, 60, 92, 55,172, 8,121,217,204,255, 77, 21,190, -206, 35,247,107, 59, 48,157, 66, 91,115,176, 59,101, 58, 24, 34,133,228,184,170,232,206,230,249,243, 89,207, 11,167,163,221, 10, -135,165,132,174,227,118, 93,113,214,238,178,182, 43,234,182,194, 74, 9,135, 83,120,210,125,242, 42,162,169,175,156,144,178, 32, - 12,116, 1,159,100,245, 51,115, 67, 14, 68,175, 97,217, 97,125,228, 98,144,223,161,131,225,148, 69,183,196,200,142,189,241, 1, -189, 89,210, 52, 67,132, 23,172, 18,168,186, 97, 57,207,182, 71,173, 43,250,232, 81, 73,210, 69,143,181, 61,131, 74, 99,157,165, - 81, 67,186,213, 18,165, 21,237,176,194,175, 59,162,179, 72,145,240,214, 33,149, 36,164,128, 3,188,181,101, 5,144,175,152,222, - 25,180,200, 90,136,149,235,240,222,145, 80,116,209,160, 82,142, 16,237,172, 97,208,140, 9,101, 84,190, 38,209, 6, 11, 85,139, -148,208, 91,195,245,193,148,179,110,206,158,144,172, 98, 96, 32, 20, 94,128,179, 61, 75,165,217,169, 26, 30,117,107,118,155, 66, -243, 75, 48,147, 2,233, 61, 81,105,188,136,248, 62,215, 0, 71,194,199, 72, 93,215,152,148,178,255, 30,193,146,148,209,204, 74, - 81,167,200, 16,113,169, 37,104,154,124,184, 59,239, 35, 71,117, 13, 82,226,101, 96,169,134, 4,105,179,253,176, 41, 5,217, 95, -205, 89,151, 91,139,166,247, 31, 93,169, 92,118,249, 62, 83, 70, 55,251,246,141,152,122,115,237,106,153, 39,189,227, 97,190,134, -157,253,136, 44,250, 39,243,173, 46,133, 56,216,140, 36,213,117, 25,161,139,143, 65, 25,202,233,164,119,249, 11,118,229,215, 38, - 92, 25, 71,196,178,128,245, 68,217,162,116, 69,178,145, 29,237,104,172,162,247, 29,187,186, 34,106, 65,111, 87, 64, 98, 42, 20, -143, 86,107, 14,116, 22,125,116,166,131, 42, 39, 13,137,166, 98, 32,171,242,224,137, 52, 90,208,123, 71, 29, 35, 78, 64,231,125, - 14,134,145, 18,150,134,117,163,209,192, 89,128,161,208,168, 16,168, 10,157,163,147, 10,161, 21, 9,193, 72, 87,132, 4,159,169, -106, 46, 66,224,212,184,172, 20, 29, 54,249,164, 54,172,179, 26,119,163,162,189,138,105,213, 34, 23,225, 88, 66, 0,130,206,150, -154, 77, 97,151, 41,167, 59,169,226,139,244, 97,235, 93, 44,118,176, 75, 76,108, 36,191,222,182,252,219, 67,189, 45,248,151, 1, - 26,155,255, 75,111, 11,122, 57, 83, 93,187,125,227,242,115,202, 18, 18, 81, 38, 83,249, 66,148, 81, 18,124, 22, 31,110,180, 67, - 66,228, 63,171,149,184, 76,221,173,149,200, 16, 37,178,117,205,167, 88, 2,177,242, 9, 53,164,148,247,237, 72,162,207, 73,122, -193, 6,154,148,149,238,110,237,208,197,121, 96, 0,227, 29,198, 88,214,125,199,172,235,145, 36,132,179, 4,235,145, 36,130,150, - 12,199, 3,190,255,193, 3,150, 95,153,243,149, 99,201,254,169,229,215,247, 26, 94,126, 97,200,226,241,130,123, 23,223,224, 66, -193,162,210,236, 69,248,111,215,107,126,121,239,144,234,180,227,101, 85,243,185,163,215,249,247,142,111,242, 79,102,167,124,227, -102, 67,251,230, 13,142,238,238,229,123,208, 37,116,165, 17, 62,208,135, 60,102, 84, 2,210, 40,147,181, 36, 2,233, 50, 75, 32, -200,124,125, 87,100,155, 86, 21, 34,149,143,216,232,115, 98, 96,217,217,133, 62,226,109,158, 56, 33, 37, 33,230,108,131,211,251, -107,162,244, 60,239, 61,222, 59, 30,159,207,184,251,133, 23,137, 55,119,184,247,214,135, 92,172,151, 8, 1,163,166,229,104,111, -143,221, 81,195,209,222, 17,191,249,233,138,100,214,236, 79, 15, 56,237, 46, 88,167,196,163,231,103, 44,141,231,165,211,231,188, -118,237,144,233,222, 33,203,126,193,186, 55,220,222, 61,224,213,163,235,188,124, 48,226,193,197,138, 47,255,240,175, 88, 44,102, -188,176,183,199,139,251,135,220, 58, 56,228,240,250,148,187,135, 19,254,229,255,244,207,249, 79,254,179,255, 28,212, 0, 49, 26, -195,225,136,116,112,200, 63,190,113,196, 31,175, 86,172,159, 61, 39,157,156, 34,158, 94,128, 89,126,180, 99,223, 57, 34, 29,236, -192,221, 87,152,142, 15,153, 47,158,230,103,195,226, 28,206,230,136,211, 11,146, 89,253,232,226,165, 53,140, 39,164,209,152,235, -147, 17,170, 25,162,129,185,115,124, 24, 18, 67, 25, 89, 88,203,164,146, 84,193,241,212,194,131,133,217, 10,143, 98, 42,211,171, -152,243,202, 77,202,247,150, 47, 72,207,203,123,178, 20,207,166,222,118,237, 27, 56,147,214, 63,218, 68,162, 91, 24,239,194,241, - 97,193,211, 14, 25, 55, 99, 8,142,224, 61, 86, 64,139,100, 32,122, 88, 92,228,117,195,168,133, 33, 48, 57, 6,215,241, 11, 56, -154,233,132,199,243, 57, 71, 85,102, 21, 84,214,242,221, 90, 93,106, 1, 62,241, 91, 40, 48,169,148,242, 93,162, 54, 63, 47, 33, - 80,107,155,153,226,203,242,111, 52, 26,172,193, 84,146,147,144, 88, 37,207,141,122,138,175,107,116,183,160,210, 53,201,174, 24, - 84, 99,122,215,209, 70,143, 80, 21,189, 51,180,117, 3, 66, 50, 95,175, 51, 11, 62,130, 49, 29,109,221, 98,102, 39,212,170, 66, -167,200,234,124, 65, 91, 85, 16, 61, 94,120,208,224,173,199,135,136, 23, 57, 26,123,105, 13,149,140,244, 33,101,107,170,144,120, - 99,208, 2,214, 49,139,102,149,172,177,193, 18,173,103,183, 25,211,187, 53,168,134, 54,145,117, 57,101,135, 46,128, 97, 51,228, -172, 95, 49, 84, 21, 42, 37, 66,232,216,169, 6,244,174, 39,169,154, 67, 41,121,226,179,102,228, 3,179,102, 87, 41,198,213,144, -222,245, 72,221, 16,146,197, 27, 79,163, 21, 3, 33, 24,164, 68,175, 53,203,228,233, 99, 6, 64, 61,245, 57,155,161,119, 33,247, -156, 74, 80,213,154,129, 74,232,242, 30,117, 40,174,143, 91,158,216, 28, 46,165,133,160,209,146,245,160,212,191, 88,220, 80,161, -216,208, 54,220, 17, 95, 66, 88, 16, 91,167,211,149,237,108, 22, 81, 39,104,138, 48,206, 22, 58,233,230, 97,107, 74, 30,251, 16, - 88,235,143,220, 71,250, 39,214,165,235, 42, 95,240,114,131,195, 43,224,251, 13,150, 81, 95, 17,108, 41,149,139,212,166,160,199, -114, 2,217,132,204,199, 50,158, 42,187,136, 42, 70,218, 20, 24, 7, 65,165, 36,131, 24,136, 62, 65,144, 25, 50, 32, 4, 34,244, - 84, 41, 34,131,160, 22, 42,243,199,147, 97, 52,152, 32,172,101,210, 14,153,247,107,122, 60, 45,249,180,219,165,200,210, 5,180, -150,224, 36, 38, 56,168, 36,195, 16, 89, 58,193, 72, 75, 98,202,221,110,160,198, 43, 50,208,161,124,205,193, 39,218,170,198,132, -132,142,240,218,209, 30,223,158,173, 89,251, 8, 85, 81,165,143, 70,208, 25, 96, 8, 39,167,249,141, 33,150,132,182, 43, 29,187, -240,101, 98,225,183,158, 93, 87, 70,246,233,138, 48,103,211,161, 75,181,101,206,203, 2,248, 31,214,249, 71,239,182,135,136,232, - 63, 86,220, 47,211, 92,138,186,210,211, 12, 27, 86,171, 14,129, 32,132,136,148, 18, 93, 85,236,239,141, 57,156,180, 8, 20,139, -165,101,111,218,208,200, 68, 72,130,222,101,194, 94, 45, 36, 82,201,156,208, 86,171, 2,224, 74,248,152, 5,144, 98,227,212, 75, - 9,173, 4,141,148,185,179, 21,121,196,143,150, 44, 66,192, 11,129, 41,125, 94, 21,242,158, 90,250,192,220,121, 22,222,229,235, - 64,128, 23,162,164,210, 38, 26, 33, 57, 24, 79,248, 63,191,254, 13,190,141,135,168,120, 42, 96,231, 73,207,219, 11,135,172, 4, -183,251,196,235,119,134,132, 23,135, 60,141,134, 83, 60,127,254,244, 41,175,190,112, 23,185,127,141,231,131, 49,191,220, 56,210, -221, 99, 62,247, 75,183, 25, 76, 26,164,202,236,233,229,220, 18, 66,192, 46, 45, 62, 69, 42, 93,132, 69, 77,118, 17, 68,178,207, - 55,166,148, 1, 81,229, 44, 38, 67,162,242,137,202,231,151,184,243, 1, 73,202,160, 64, 9, 52, 32, 43,129,247,145,206, 68,158, -252,245, 41, 73,192,169,243,172,141, 35,120,199, 98,214,115,255,225, 25,221,221, 3,228,189, 39, 8,225,144,149, 98,160,106,142, - 71, 53,196,196,181,227, 3, 30, 61,126,192,151,127,240,152,127,181,250, 0,166, 21,105,238,192, 68, 82, 31, 56,101,201,215,213, - 51,196, 72, 80,239, 84, 12,106,193,236, 91,239,103,152, 73,163,152,214, 10,173, 5,183,246,106,174, 13, 70, 8,235,216, 25,213, - 52,195, 10,223,123,126,254,149, 91,136,207,126, 6, 66, 5,147,154, 52,154,240,251,215, 95,228,165,155,251,252,202,179,115,254, -120,176,139, 60, 56,130,151, 61,156, 60, 37, 61,155,195,222, 8, 14,143,224,213,207,209,220,125,145,255,242,103,142,233,164,226, -191, 57, 89,177, 62, 93,192,179, 25,156, 63,207, 66,185,147,247, 51, 94,117,118, 10, 31,220,223, 10,196, 84, 11,215, 15, 17,109, -205,180, 25,114, 52,174,121,190,182,188, 60,104,152, 42, 65,237,123, 4,154,181,113,156, 57,120,104,220,182, 40,199, 84,208,170, - 62,251,207, 29,127,147,162,216,212,249,255,218,216, 65,175, 10,211, 54, 31,251,248, 97,163,169,115, 76,241,222, 46,236,142,203, -122,113, 8, 82,114, 84,122, 20,210,154,189,170,162,119, 61,181, 93,100,117,253,201, 9,248,105,102,212,175, 78,184, 59,222, 71, - 72,201,249,252,156,170,105,153,154,142,211, 4, 66, 68,126,161,213,188, 53, 30,100,219,106,138,159,220,173, 39,147,119,233,212, - 32, 29,196, 10, 82, 93,148,252, 85,214,238,200, 30,150, 5,104, 82, 87,176,232, 8,181,163, 75, 3,238,185, 51,110,178,203,194, - 44, 57, 30,237,230, 46,218, 5, 6,109,131, 15,158,196,146,182, 26,229,144, 19, 20,109,221,210,151,204,119, 85, 85,244,235, 37, - 33,121,146,242,248, 24, 24, 15, 6, 56,211,101,177,172, 86, 88,111, 73, 49,147,229, 36,176,234, 87,232,130, 76,207, 26, 40,240, -193,210,199,136, 45,224,175,144, 34, 43,211,179, 87, 55, 80, 43, 46,130,161,173,134,156, 23, 68,110,171, 5, 93,136, 92, 75, 61, - 67,165, 57,214, 48,168, 26,162, 51,172, 83,228,238, 96,135,123,221,140, 93,221,208, 0,139,224,178, 94, 39, 4,214, 66,225,132, -100,238,214, 52, 74, 65,114,204,141, 5, 33,104,125, 98, 34, 68,225,115, 4, 36,138,152, 2, 39, 33, 49,172, 20,115,227,209,165, - 41,233, 93,224,168, 85, 12,148,102, 21, 34, 73, 43,134, 72, 28,112, 60,168,232,188,192, 9,197, 17,145,199,194, 97,199, 5,243, -109, 77,110, 96,253, 21, 6,131,190, 98,125,107,175, 76,178,117,181,117,100,196,144,175,177, 88, 30,126,151,126,119, 7,163, 42, - 23,253, 72, 78, 40,116, 91, 56,210, 79,102,167, 94,215,249,147,145, 5,111, 23, 74,145,222,200,253, 55, 5,168,100,173, 99,220, - 71, 99, 68, 55,157,251,229,136,126,115,106,206, 6,192,253, 86,115, 80, 73, 6, 82,179,171, 96,164, 52, 62,198, 60,194, 41,151, -119,159,114,186,215,133, 15, 12,180,102,183, 82,132, 16, 9,206,208, 42, 77, 42, 59,197,113, 85,115, 98,214, 52, 73,177, 32, 17, - 83,226,220, 71,162,138, 12, 19,184,152,112,192, 48, 38, 42, 20, 49, 70, 98, 76, 24, 18,170, 4, 14, 36, 37, 49, 82,177,142, 9, - 47,193, 75,208, 40,214,222, 49,173, 43,102, 73,176,211,182, 24, 41,168,218,150,144, 34,114, 48,202, 67, 11,145,133, 51,200, 66, - 18, 74,155, 99,153, 36,135, 9,151,179,150,204, 69, 42,219,221, 74,184,203,134,229,185,121,120, 73,145,145,131, 66,228, 3,148, -139, 91, 27, 68, 42,188,104,121,165,160, 95,198, 18,114,169,156,127,233, 75,191,205,111,254,234, 27, 88,159, 48,198, 17, 93,194, -152,140,214, 77, 81, 48, 29, 15, 81, 82, 34, 81,140, 91,141,143, 57, 64,199,135,236,237, 20, 5,214,162,181,100, 84,201,178, 42, - 74,244, 62,251,211, 33,149, 21,126, 22,183, 84, 50,211, 4, 19,153,190,167,138,237,205, 27,207,197,210,176,234, 45,157,179,156, -116, 29,235, 62, 35,132,141,181,216, 34, 44, 75, 49, 11, 26,155, 16,184,241,210, 29,186,221, 17,255,226,255,250, 43,208,240, 51, - 63,191, 79,115,179,225,161,177,124,127,230, 89,107,248,208, 37,218,169, 98, 48, 81,180,131, 38,187, 37, 4,200, 97,197, 7,222, -242, 78,116,252, 69, 35,153,221, 28,179, 35, 4,235,185,207,228, 80, 23, 48,198,225, 59,139,232, 29, 77,163,169, 43,133,174, 43, -164, 86,164,178, 31,139, 2,108, 74,185, 3,137,153,161,160,108, 96, 16,160, 9, 57, 93, 14, 27,144, 49, 80, 9, 73, 43, 4, 35, -169,104,170,124, 48,248,224,201,140,175,127,235, 67, 22, 11,143,136,137,241,168,193,244,134,139,211, 83,158,127,248,152,250,238, - 33,107, 47,169,147, 38, 73,141,241,134,139,222, 49,190,190, 71, 88,246, 16, 61,223,254,230, 3, 88,120, 68, 35,248,204,157, 29, -222,120,241,128,134,187, 93,191, 0, 0, 32, 0, 73, 68, 65, 84,209,181, 1, 95,248,185, 59,252,230, 47,191,201,235, 71, 67,134, -201, 51,214,130,179,148,168, 43, 73,248, 97,143, 59,247,152, 29,201,201,204,241,108,181,224,162,159, 49,115,142,123,114,194, 55, - 58,199,183, 87,142,112,227, 85, 30,174,122, 24, 76, 65,183,188, 60, 30,209, 74,193,247, 47,230,156,186,132,208, 45,236, 28,194, -120,138, 56,190,142,248,165,223,134, 47,124, 1,174, 95,227,159,222,217,231,119,247,107, 34,130,175,158,172, 89, 93,172,115,129, - 57, 62,128,155, 55, 33,141,225,229,207,242,123,199,183, 16,119,238,114, 54,191, 40,137,107, 35, 24,104,118, 39, 19,142,106,205, -194, 69,142, 42,197, 60,194,142,244, 12, 8,236,198,196,158,150, 28,214,130, 51, 23,232, 72,217,218,149, 34,204,215, 96, 75, 84, -102,252, 17,251,233, 31,103, 1,253,248,199,154, 26,244, 0,142,246,225,230, 81,238,164, 7, 99,168,219,203, 17,248, 69,112, 28, -235,138,107, 42,130,235,168,157,225,251, 39,143,120,244,195, 71, 48, 63,207,247,243,176,134,166,229, 77,145,152, 11, 73, 31, 35, -199,209,115, 46, 20,187,193, 48, 77,145, 69,136,156, 44,139,255,248,147, 44,109,151, 24,209, 2,189,145, 37,135, 23, 85,244, 51, -114, 75, 41, 35, 71, 18,231, 17, 48,224, 3, 73, 38, 2,145,117,200,217,235, 43,219,163,164,166,247,166,208, 53, 45, 90, 10,172, -235, 50, 56, 9, 79,103,123, 20, 2, 19, 12, 34,230, 88, 87, 31, 13,117,221,178, 54, 75, 82,140, 24,223,229,251, 58, 37,124,176, - 56,239,113,201,209, 23,226,219,202, 57, 86,166,195, 16,233, 92,207,154,136, 66,210, 71,207,202, 90, 22, 41, 33,163, 96,229,243, - 24,125, 80, 55,116, 54, 79,122,171, 70,115, 97, 35,149,212,172,146,192,104,205, 68,130, 18, 57,175,189, 18,130,101,140, 28,170, -138, 62,197,156,110,167, 52, 30, 65, 39, 53, 22,232,149, 68,232, 26, 39, 20,125, 10, 56,173, 56, 11,145,186,174,120, 28,139,210, - 93,105,206, 80, 56,169, 17,186,162,139,137, 74,107,100,211, 48, 80, 26, 41, 21, 38,229,120,112,173, 21, 90, 85,212, 85, 69, 82, - 16,189,166,170,242,223, 75, 33,242, 60, 93, 9,241,146, 34, 95, 3,133,160,122, 41,204,220,172, 99, 55,190,245,206, 22,213,113, - 17, 51,167,114, 77, 75, 89, 18,255,202,239,233,162,181, 18, 50,231,131,164,242,140,239,186,159, 80, 81,223, 40,218,235,225,182, -216,140,155, 60, 66,175,171, 92,172,140, 47,157,119, 17,107, 85,165,176, 95, 21, 11,144, 50,174,177,239,243, 39,105,182, 97, 48, -243, 32,120,161,150,140,100, 6, 56, 16, 35,141, 84,244, 49, 20,225, 85,182,152, 61,237, 61, 85,157,199,239, 3, 89, 35,131,207, -158,202,152,199, 55, 67, 37, 88, 57,207,173,175, 62,224,244,246, 20, 68,226,129, 11,104, 33,136, 73, 82, 75, 24,132, 92,164,100, -217,177, 8, 41,177, 41, 49,212,249,112,146,164,196, 39, 65, 7, 24,157,139,157,148, 26, 27, 35, 97, 48,160, 82,217,242,229,128, - 65,173, 17, 49, 50, 26, 12, 88,123,143,108,106, 82, 83,109, 71,131,170,236,182, 85,241, 65, 92, 82, 40,227, 54, 70, 53,168, 60, -177,144,234,146, 35,158,105, 68,122, 27, 52,176, 41,212,155,172, 93, 91,156, 4, 50, 94, 9,136,217,180,255, 27, 47,125,238,102, - 94,121,227, 13,222,124,243, 21,186,222, 98,251,128,119,129,126,109, 25,142, 91,130, 73,212, 77,205,164,174,185,190, 55,160,174, -244,101, 67,180,185, 88, 99, 74,200, 4,149, 18, 52, 58, 99,119, 67, 76, 24,159, 21,199,130, 12,116, 80, 50, 83,230,148,206,244, - 57, 17, 83, 22,168,148,233,140,142,145,100, 60, 43,235,112, 46,176,114,158,182,136, 67,102,166, 99,101, 13, 85,240,212, 33,145, - 20,168, 65,205,141,215, 94,226,249,147,231,124,253,171, 15, 80, 93,226,217, 69,199,252, 81,135,185, 8,224, 18,171,161,132, 93, -201, 91,239,244,252,127,125,199,100,209,241, 90,130,131, 70,243, 43, 14, 62, 53,222,225, 83,215, 14,217,215,146, 7,167,115,190, -118,178, 96,120, 52, 36,106, 56,233, 13,231, 93, 30,169, 78, 7,117, 70,186,214, 21, 82,203,140,218, 20,224, 73, 57, 38,213,101, -145,159,179,249, 33, 90,155,136,238, 29,218,120,164,241, 25,125, 27,161, 65,210,232,138,193,160,162,109, 20,111,157, 44,121,248, -151, 15,243,219,227,160,173, 43, 6,195,138,174,179, 68,227,152, 45, 46,120,244,188, 35, 13,224,173,119,223, 99,237, 12,149,206, -235,152,195,187, 71,188,112, 48,228, 83,135, 59,220,251,171, 31,240,248, 91,115,196,163,200,231,126,238,128,189,241,132,167,231, - 75, 94,216,221,229,230,193,117, 6,205,136,215,175,221,224,223,127,225, 21, 94,220,155,242, 95,253,206, 23,185,117,171,165,211, - 75, 94,191, 62,101,181,178,156, 34,153,254,236,231,208, 59,215,185,254,153, 91,248,113, 11,173,198,116,134, 31,222,123, 8,103, -207,192,116,172,237,130,238,244, 25,223,126,250, 4,218,125,120,241, 53,196,203, 47,193,249,138,223,189,251, 10,191,189, 51, 64, - 41,201,195,247, 30,241,215,127,252,255,176,227,134,252,239,127,242, 53,222,255, 55,127, 4, 15,239,193, 7,223,133, 39, 15,225, -241, 83, 24, 78,248,252,157, 99,110, 29, 31,240, 84,142, 56, 25,142,242, 56, 81, 10, 24,143, 56, 84,154, 86,105,116,130, 69,140, -204,186, 53,187, 10,110, 10,193, 68, 72, 38, 90, 49,214, 26,131,231,241, 34, 67,103,152,247,121,199,216,123, 62,121, 41,254,119, -209, 7,105,216,221,133,221,157, 92,204, 15,246,114,119, 62,154, 22, 43,220,230,123,190,175, 30, 44,206,137,235, 5,179,229,140, -239, 63,123,194,119,190,249,126,222,167, 27,123,249,245,220, 29, 12, 49,192,216,173,184,214,182,188,103, 58, 38, 49,235, 71, 30, - 59,199,190,148,188, 62,150,116, 82,179, 58, 93,125,178, 96, 78,136,210,202,216,252, 99,148,121,194,167,171,252, 60, 73,174,164, -124,153, 92, 68, 76,200, 98,229, 77,100, 44,130, 96, 45, 29,129, 36, 96,105, 59,148,136,184, 20,177,222,210, 59,203,194,245,164, - 20, 48,206, 97,189,197, 38, 71, 76,240,193,249, 35,140,239,233, 76,199,217,242,130, 16, 3,115, 51,167,213, 89, 68, 55, 91,207, -145, 66, 49,239, 23,216, 82,208,151,102,141, 11,129,117,244,172,157,199,166,140,141, 62,247,142,189,186,225,190,143, 84, 90,243, -190,144, 28,212, 53, 78, 10,164,172,216, 27, 15, 89, 38,201,220,123,218,170,166, 71,208, 75, 77, 35, 36,170,174,217,209, 53, 21, - 16,148, 68,145, 88,136, 68,171, 43,140, 82,172, 98,164, 43,137,115, 65, 8,134,237,128,170, 4, 81, 5, 85,179,138,138,132,226, - 89, 72, 28,140, 70, 60,240, 18,161,234,236,203,175, 42,246, 70, 3,246,135, 35,166,163,150, 86, 87, 8,169,233,147, 98, 41, 5, -136,138, 97,219, 18, 85, 77, 18,146, 65,213, 96,138, 5, 41, 74,193, 34, 74,106, 37, 89,167,132,212, 13, 73,203, 44,156,214,242, -138, 56, 83,228,203, 51,165,178,103, 87,185, 94,250, 43,161, 64, 27, 16,205,230,251,165,112,165, 60,215, 71,131,124, 16, 24, 15, -243, 97,116, 58,253, 9,193,103,218, 77,151, 46,183,157,186, 13,249,228, 32,203,130,191, 45,187, 3,185, 41, 74,229, 4, 19,202, -206,221,150, 46, 61, 27, 9,183, 88,198,162,146,191,181,215,112,189, 82,236,169,138, 70, 10,132, 84, 68, 18,163, 74, 97, 98,202, -136,209, 4, 81, 9, 92, 72,200,148,176,214,100, 75, 81,132,206, 90, 70, 74,211,165,196,218, 58,254,249,241,148, 95,208,154, 83, -107,217,169,242,233,110, 82,105, 22, 73,208,200,204, 20, 94, 23,161, 22, 54,135,199, 40,221,208,199, 98, 37,168,170,156,199,142, -196,107, 77,165, 52, 15,173,167,213, 53, 74,231,155,108,169, 51,112, 66, 21, 47,207, 88, 43,218,182, 65, 43,133,241,101,191,151, -194, 21,107, 91,121,253, 54,184,216,164, 41,225,184,133,243,190, 73,228, 17, 91,202, 80, 74,249, 66,216,172, 60, 76, 1,102,184, - 50,206, 55, 87, 64, 5,206,110,109,118, 73, 92, 62, 48,126,237, 55,126,141, 91, 47, 94,231,244,100,133, 53,174, 12, 0, 36,135, -187, 59, 84, 72,170,170, 66, 42,193,241, 94,139, 86, 42,199,224, 74,177, 9,222, 3, 1,109,165,168,107,133,146, 89, 33,103, 67, - 86,150,250, 13,127, 64,230,112, 23,165,179,157, 77, 36, 72, 62, 18,173,203, 29,108,130, 36,242, 65,224, 98,237,104, 98,194,164, -192,220, 24, 22,235,158, 89,103, 50,198, 23, 88,120,143,175, 5,131,189, 29,118,111, 30,241,189, 63,253, 38, 60, 49, 92,219,211, - 60, 63,241,176,220,172, 54,128,219, 45,175,189,113,141,120,183,230,248,238,132,111,181,146,217, 78,195,123,181,230, 94,114, 44, -136,236,118, 61,215,214,142, 55,215,158, 21,137, 46, 6,206,231, 29,170,213, 84,149, 66, 41,197,100, 80,163,155, 10, 93,105,146, -146, 89,140,227, 3,193, 7,156,245,244,107,139, 95,187, 60,233,176, 17,209,123,228,202, 94, 22,117,233, 98,222,183,105, 69,213, -214, 84,163, 6, 89, 73,190,119,190,226,247,133,226, 78,210,188,123,209, 33, 85, 62, 52,121, 27,152, 45, 45,122,103,151,207,238, - 13, 8,195,150,119,238, 61, 99,103,178,195,171, 47,189,198,139,215,110, 48,104, 36, 39,193,243,205,127,253, 45,222,126,126,193, -108, 79,193, 99,207,123, 99,203,237,151,174,115,182,187,207,129, 89,242,103,127,241,109,158,199, 14,221,140,152, 12, 71,188,127, -246,156,217,233,156,221,221, 3,238,254,193,239, 48,112, 2, 87, 89,174,255,234, 63,226,181, 95,124,157, 95,249,244,173,156,108, - 54,106, 8,179, 57, 95, 60,108,248, 63,254,232,203,112,255, 1, 60, 63,103, 33, 60,143,134, 7,252,199, 95,252, 18,255,225, 23, -127,142,191,220,157, 98, 3,136,199,207,248,244,160,101, 80,105,212,108,198,219, 31,190, 3,207,239,243,245,175,124,133,103,223, -254,183,240,193,135,112,239,125,184,127, 31,222,125, 7, 30,124, 8,181,231,129,209,160, 42,254,218, 3,178,134,106, 0, 50,128, - 51,204,164, 96, 12,116,193, 97,189,199,132,192,126,138, 52,193, 51,208,154,186, 76,138,130, 49,188,179, 48,136,101,135,176,203, -156, 29, 16,255,129, 5,189,157,192,116, 7,142,142,224,112, 15,118,167, 57, 17,174,170,243,189,169,212,118,146,232,201, 35,254, -245,138,116,118,206,179, 39,167, 60,252,225, 3, 78,159, 62,207,113,198,155, 78,123, 52,229,238,141,125,166,193,177, 55, 28,240, -204, 89,172,115,104, 33, 24, 9,120,102,122,106, 33, 24, 70,199,189,222,179,114, 14, 35,225,165, 95,124,147,139,247,239,127, 66, - 72, 83, 4,217,148,117, 93, 68,196, 10,145, 28,162, 82,136,122,128,232, 3,162,213, 8, 41,179,218, 60, 8,132, 22,136, 68, 62, -100,134,128, 8, 1,239, 3, 54, 58, 58, 18, 43,223, 97,188, 35, 68,143, 18,146, 69,183,196,147, 29, 42,243,245,146,181,239, 49, -222,240,116,181, 98,110, 12, 51,219,241,112,117,206, 78,221,242,108,118, 74, 76, 1, 37, 4, 15,206, 79, 25, 85, 13, 11,211,179, - 48, 29, 11,235,152,185,158,153, 49,184, 36,120,152, 34, 70, 86,236, 53, 19,118,171, 1,175,238, 29,209,161, 57, 26, 14,249,161, -210,200,186,197, 70,152, 69, 65,211,180,120,161, 89, 8,205,209,112,196,181,166,230,238,206, 4, 89, 85,172, 82, 98,183,105, 72, -229,223, 51, 49,160,149, 98, 17, 3, 81,215,204,137, 56,169, 56, 24,142, 25,214, 53,149,168,104,155, 33,171, 24, 89,196,196,185, -174, 24, 75,201, 7,214, 51,210,154,147, 20,177,186,230,184,170, 57,108,235,204, 50,145, 85, 78,252,211,154,251, 33,224, 84,197, -169,170,168, 18, 8,149, 1, 72,125,146, 76,235, 1,231, 36, 90, 33,137, 90, 51,208, 21,161,110,242,189,228, 2, 76, 38,249, 61, -171, 84,169,119, 5, 76,227,227, 86, 72,157,210,150,105,210,151,131,217,198,158,188, 73,120,187,244,176,151,213, 74,219, 20, 65, - 83,147,107,234,112,248, 19, 40,234,149,206,212, 56, 89,216,180,155,136,186, 90,230,177,252, 64,103,146,220,160, 64, 79,122, 83, -186, 75,185,245, 91,127,100,180, 84,124,236,155,110,176,213, 4,155,184,211, 84, 52, 82,102,177,130,148, 52, 72,156,204, 78,176, - 70, 72, 66, 74,172, 66, 98,230, 3, 35, 1, 71,131, 33, 51,231, 88, 24,203, 81, 51,224,162,239,105,165,100,208,182,124, 38,101, - 11,146,214, 21, 54, 5,166,186, 97,149, 18, 90, 43,214, 33, 17, 93, 96,168, 4,201,120,124, 85, 80,130,189,161,105,106,170,166, - 37,166,128, 67, 32,154, 6, 23, 28, 23, 49,113,125,178,203,179,181,161,214, 21, 85, 57, 13,207, 75, 64,140, 75,129, 90,215, 56, -235, 72, 8,140, 42,106, 8, 31,182,150, 62, 45,182,157,123,173,182,142, 0,138,143,189, 45,147,144,226,223,207,227,151,114,112, - 74,177, 0,108,202, 9, 14, 87,224, 4, 27, 95,100, 25,213,139, 34, 79, 23,197,211, 24, 2,191,243,207,254,128,241,116,200,217, -243, 25,198,250, 34, 66,203,118,172,182,105, 24,181, 21,215, 38, 67,246,134, 21, 82, 40, 72,121,114,145, 16,217,171, 94,176,139, -147,129,190,196, 97,251,148,215, 26, 41,165,252, 22, 42, 65,173, 36, 18,121,137,171, 36, 68,116, 17, 68,198, 16, 49, 9, 86,214, -179,232, 44,117, 8,244, 93, 46,232,115,103,241,206,161, 73, 44,100,226, 73,231,105,106,201,241,222, 62,231,167,103,252,203,255, -241, 93,150, 83,120, 98, 34,141,137, 12, 10, 96,139, 62,194, 58, 48,184,213,240,250,193, 46,135, 77, 11, 66,112, 56,157, 48, 29, -143,184,243,234,235,196,227,107, 60,105, 27,222,183,134,209,254, 14,225,238, 62,119,111,239,113,112, 52,101, 48,108, 80, 82,178, - 51,106,208, 77,141,174, 20, 66,231,208, 26,159, 34,174,115,196,149, 37,174, 12,126,222,145,150, 6,107, 60, 51,239, 48,107,143, -180, 17, 21, 2,202,165, 12,179, 16,217,242, 71,163,145,173,102, 69,228,222,202,113,227,133, 9,213,237, 9,103,227,134,106, 82, -227, 67,226,230,235, 59,124,246,223,125,129, 63,252,252, 29, 94,121,237, 24,127,180,135,221,191,193,209, 11,183,248,210,231,110, -241, 75, 47,237,243, 76,104, 46,230, 11,222,249,193, 61,186,241,132,223,250,167,191,129,255,212, 46,253,222, 46,255,253, 43, 47, -240,250,193,148,231,159,122,137,119, 30,126,192, 95,255,223,143,184,111,159,177,236, 79, 89,137,200,159,127,233, 55,105, 63,117, - 11, 53,172,241,175,221,193,188,241, 6,135, 55,247,249,229, 91, 83, 94,155, 84,164,139, 37,255,203,255,240, 63, 51,121,248,136, -201,206, 17,235,135,239,240,224, 7, 79,224,198, 62,124,246,243,252,225,175,254, 10,255,197, 63,186,195,167, 38, 21,223,123,239, -140, 15,254,237, 55,225,222,183,248,225,122, 78, 67,205,215, 58,135, 9, 1, 49,154, 66, 43,243, 14,127,181,248,168,122,222, 89, -196,253,251,136,217, 41, 23,201, 49,244,129,107, 90, 82,251, 14, 84,141, 75, 57,186,249, 52, 70,186, 16,208, 49,210,117, 6,133, -103, 95,101, 65,146,117, 54,243,199,173,227,195,139, 53,110,113,145,149,236, 49,254,195,176,182, 59, 59,176, 59,229,238, 43,183, -217,191,126,157, 52, 26, 97, 54,177,152,226,138,208, 53,138, 18, 4,211,193,249, 2,158,156,192,249, 9,204,231,217,131,255,241, - 17,190,247,204,116,195,206,160,166,149, 10, 3, 88,103,216,197,243, 36, 36,174, 87,154, 41,145,115,107, 57,104, 53,149,245,156, -173, 58,226,176,198,232, 17, 92,156,255,205,102, 93, 74, 68,242, 8,106,132,220, 88, 85,213,150,113, 81,235,252,241,148,138,147, - 74, 34, 76,143,208, 10, 17, 74, 81, 71, 32,156, 71, 24, 79,212,255, 63,105,111,246,107,105,118,158,247,253,214,248, 13,123, 56, -243,169, 83, 85, 93, 93, 93,172,174,158, 56,153, 45,137, 10, 41, 51,178, 33,193,130, 36, 35,145, 97,192,210,133, 12, 36,200,159, -146,155,228, 46,119, 9,144, 32, 72,174,236, 4, 50, 34, 40,242,144, 72,182,168, 33, 20,105, 81,162, 68,145,236,185,217,213, 93, -243,169, 51,236,233,155,214,148,139,245,157, 58, 69,138,162,100,251, 0,141, 70, 55,186,107,239,179,135,245,190,235,125,159,231, -249, 9,252,186,167, 75,145,158,192,178,239, 88,199,129,197,208,240,120,185,100, 29, 7, 78,251, 53,139,211, 5, 67, 18,244,109, - 79,127,182, 33,124,252,132,199,143, 31,211,214, 5,235, 97,224,254, 98,201,188, 40,120,176, 94, 48,196,200,241,224,120,216, 14, -156,119,129,141,146,172,148, 38,152, 10,165, 43,190, 48,219,195,214, 51,122,169,216,155,206,241,170,192,235,130,199, 33, 81, 84, - 53, 66,107, 30,247, 29,167,194,176, 37,224,106, 89,241,210,116, 66,101,242, 69,170, 46, 74, 58,151,215,114, 46, 69, 74, 41, 51, -162, 59,193,134,200,160, 13,115, 99,159, 89,248,148, 49,164,148, 24,132,160, 11, 18,133,224, 81, 74, 76,164, 98,153, 18,103,202, -160, 99,224,192,150,204,170, 10, 63,154,219,210,200,182, 40,147,226,254,152, 26,249, 24,201, 92,192,169,208, 76, 77, 73,212,138, - 90, 91,162, 52,204,109,201, 32, 52, 93, 20, 76,116,137, 85, 2, 35, 21,190, 40, 17, 66,147,252,144,207,237, 62, 60,103, 87, 22, -151,235, 81, 57, 94,116,195,184,254,185, 72,103, 29, 87,121, 25, 42,147,158,241,211,233,250, 49, 42, 88,193,164,248, 17, 66,185, - 11,203, 68,248, 49, 66,141,231, 23,253, 33, 94,230,209,198,209,195,105,213,248,224, 64, 61, 25,159,116, 28,119,228,234,178, 51, - 49,227, 46,193,143, 41,107, 23,202,213, 66,231,241,124,140,208, 12,212,219, 5, 49, 4,202,162,192,142, 35,185,141,136,153,181, -173, 52, 33, 4,124,138,148, 35, 23,253,220,123,226, 38,113,213, 26,122,163,184,223, 52, 92, 43, 13, 78, 66,215, 52,217,163,143, - 68,141,120,155, 53, 1,161, 20, 93,204,106, 72, 10, 69,179,118, 56,171,168,186,142, 6,216,169,106,150, 67,207, 68,102,155,158, -181, 10, 57,120,142,173,196, 72, 75,231, 58,174,204,107,150,173,103, 9,180, 74, 82,203,188,195,201,147, 9,143, 49,138, 74,192, - 12,203, 61, 95,228,219,132, 43, 51,129,169, 24, 45, 11,197,197,222,123, 28,193, 91,147,247, 99,155, 54, 91, 4,149,189,108,128, -226, 56,126,187,236, 0,198, 46,126,180, 21,170,254,185,200,247,113,255,166,100,110, 0,100,238, 0,165, 54,212,165,193,150, 5, -206, 53, 12, 33,210,119, 13,222, 11,246,111, 79,241, 33, 17,197, 40, 16,148,163,109, 45,137,156,229, 78, 78,111,138, 49, 71,196, - 94,172,137,196, 24,177,120, 17, 56, 18,158, 77, 13,199,226, 54,138,221, 32,162,165,192, 27,149,227, 98, 35,249,182,236,125,238, -234,157,207,116, 52, 45,104,122,207,208,123,102,209, 83,171, 18,167,224,183,126,239,109,184, 62, 82,186,250, 72,159, 18,189,146, -212, 34,177,159,224,245,168, 88,252,155,167, 60,184,125, 78,115, 84,115, 62,209,220,222,154,115,104,167,108, 25,139,173, 42,142, -174,237,211, 41,193,244,234, 22,187, 19,203,238,188,162,117,158,224, 19, 58,197,188,222, 82, 57,137, 42,250,172,234,239, 58,143, -223,244,132,243, 6,183,106, 9,231, 93, 14,242, 16,153,210,244, 84,104, 90,155,113,141,170,200,116, 41,161,198, 23,164,243,180, - 70, 50, 36,201, 79,207, 74,254,197,147, 13,167,107,207,237,195, 57,183,141,224,177,145, 92,157, 27, 10,169, 57,237, 60, 79,124, -226,113, 18,232, 74, 17, 62, 94,242,218, 43, 87,216,149,154, 7,149,226, 65,167,249,142, 87, 60, 57, 59,165,251,246,135,184,193, -243,107,175,189,194,230, 51, 91, 20,127,244, 93,222,191,255,152, 95,249,213, 95,230,119,204,255, 67,247,203,255,152,111, 61, 56, - 97,251, 11,159,226, 5, 35, 48,117,102,220,171, 62,112, 48, 51,124,244,212,241,251,159,172, 49,181,160,148,112,171,168,232,154, -158,170,180,188,250,226,171,124,237,168,131,207,253, 4, 92,187,193,111,173,122,190,240,237, 7,124,252,209, 61,190,250,141, 63, - 64,188,245, 33,105,113, 6,243, 45,190,254,218, 9,236, 94,131,249, 30,136, 9,226,232, 54, 76,102,164,191, 0,158,220,191, 44, -182,133, 37,109, 29,192,222,156,157,232, 56,220,156,113, 93, 12, 28, 39,193,188,208,252,222, 96,115,115, 58, 56,218,206,115,191, -235,192, 37, 78, 54, 17, 49,145,188, 94, 22, 20, 50,127,250,223, 93,173,105, 78, 79,114, 24,199, 15,121,226,255, 86, 22,187,194, -230,209,250,209, 21,174, 95, 59, 98, 94, 84,188, 52,219, 70, 73,195, 7,205,146,191,236,154, 49, 23,194,141, 65, 89,125, 46,232, - 79, 22,176,218, 60, 83,254,255,181, 63, 41, 66,223,241,193,202, 48, 0,243,233, 20, 33, 18,203, 0,187, 42,210, 12, 29, 70, 23, -148, 69,129,118, 29,239,133, 0,147,146,229,119, 63,204,254,245,209,238, 36, 46,206, 93,123,121,108,139, 64, 22,202,217, 81, 51, -163,244, 88, 27,100, 22, 46, 63,107, 44, 58, 64, 34,214, 93,118,202,248, 46,143,110,209, 48, 47,225,120, 1,147,154,212,247,184, -145, 50,150,146,200,254,105,171, 25, 78, 61, 41,102, 49,150, 96,153, 85,247,139,243,188,167,247,158,230,207,207,104,182,247, 96, - 94,179,120,188,130,249, 4,140,203, 83,179,114,108, 54,172, 1, 85,242, 70, 57,227,139,135, 7,232, 50, 43,253,159, 58,201,147, - 20, 81,198, 64,211, 82, 87, 51, 30,187, 22,133, 34, 20, 19, 8, 3, 94,104,142, 38,134,165,207, 72, 85, 77, 36,197,108,185,117, - 73, 97,147, 35,197, 64, 45, 37, 70, 74, 66,244, 20, 72,132,200,185,246, 3, 9, 31, 3, 86, 42,246,100,129, 65,240, 81,227,216, - 37, 67,112,172,148,196,224,169,139, 2,157,160,247, 30,173, 84, 94,112, 40, 77,240, 30,161, 5, 97, 32, 51,214,129,119, 82,100, - 27, 48, 90,179,173, 20, 66, 42,100,130, 38,122,118,202, 2,161, 13, 11, 55, 80,150, 59, 48,244, 76,221, 64,168, 21, 46, 57,220, -217, 41,241, 98,172,126,177,197,121,150,221,226,243,100, 85, 91, 88,119, 80,155,108,143, 30, 5,186,153,246, 57,134,142,197,144, -111,235,253,144,255,157, 16, 63,116, 83, 47,198,253,204,133, 2, 42,134, 31,159,237, 30,227, 24,214,160,242,200, 76,219,203,226, - 93,154,252, 38, 22,118,140, 36, 29,201,100, 70, 94,198,221,121,127, 73, 29,187, 16,210,149,227, 23,172, 52,249, 3, 17, 3,141, - 84, 28,213,134,235,117,222,111, 12,249,227,137, 85, 26, 41, 4, 67,140,204,140,101, 17, 2,143,250,129,137, 50,184,193, 83, 90, -133, 1,134,224,113, 62,142, 35, 19, 16,163, 13,162, 77,144,164,200, 65, 41, 49, 82, 22, 5,231,206,161, 98, 96, 45,198,238, 47, - 74,210, 40,244, 48, 73, 32,173, 33,218, 12, 80, 88, 43,141, 87,154,101, 31, 16,202,176,244,145, 82,105, 22,163,173,192, 9, 80, - 34, 97,133, 38,198,200,148,200,126, 97,232, 99,228, 70, 33, 89,123,184, 54, 55, 44,252,184, 87, 49, 69,126,205,211, 5, 8, 96, -228, 61,219, 2, 98,159, 85,193, 50, 93,134,244,168,209,187,142, 24, 51,244,229,101,166,188,240, 16,117, 94,105,164, 52,222,210, - 71,167,129, 22,207,156, 8,255,248,159,254, 23, 12,222,179, 90,118,128, 96,107,107,130,182, 5, 90,105, 68,202,227,187,137, 45, -217,223,158, 80, 24, 3, 40,204, 40,120, 19, 36,196,184, 47, 55, 58,135, 88, 36,192,143, 52, 54, 57, 42,222,165,202,169,124, 82, -228, 36, 57,141, 64,250,128, 28,124, 30, 63,197,113,229, 50, 56, 54,103, 13,195,186,161, 89,119,104, 63, 32, 99, 34,117, 14,239, - 50,208,165,176,134,195,195,109, 78,151, 11,190,246,135, 79, 71,229,232,152,214,151, 98,230,103, 55,129, 69, 72,124, 52, 36, 62, -155, 36,111,244,146, 79,249,196,108,227,136,235, 13,199, 97,197,251,199, 79, 40,148,197,163,168,102, 5, 7, 91, 37,193, 74, 86, -157,227,100,209,177,233, 28, 69, 8,204, 71, 11, 97, 24, 60,125, 63,176, 90, 15, 52,171,142,245,241,154,254,100,195,234,201,138, -205,249,154,184, 25, 80,157, 71,251, 72,223,123,150, 74, 83, 86,134,114, 98, 81,181, 33, 21,138, 88, 72,156, 20, 44,181,226, 79, - 31,119, 60, 58, 93,227,155,129,147,143, 22, 28,157,183, 44,134,196,199,117,193, 50, 65,209, 58,110,198,192, 31, 55,158,150,200, -102, 24,248,179,251,107, 14,118,106,206,159,182,124,175, 13,116,198,112,243,133, 43,188,118,235, 26,119, 23, 3,183,203, 9,127, -119,119,194, 55, 79, 26,126,251,172,229,219, 31, 63, 96,239,214, 45,236,207,254, 44,211,237,146,159,120,229,144,151, 42,205,237, -185,161, 52, 18,221, 5,132, 15,252,230,127,255, 63,243,254,255,254,239, 40,223,124,131, 23,125,196, 8,201,222,203,183, 25, 40, - 57, 57, 94,114, 79,150,184,107, 55, 88, 40,141,120,112, 23,222,251, 14,127,242,173,111,242,239,191,241, 53,120,235, 61,232,187, - 92,112,250, 13,220,191, 15, 67,139,152,150,136,233, 54,162, 40, 97,235, 8,113,116,132, 40, 4, 98,136,136, 43,215, 16, 47,221, -130,163, 35,196,214, 54,251,229,156,219,211, 25, 34, 70, 14, 38, 5,195,232,120, 57,189,136, 80,245, 62, 31, 90,237, 0, 9, 30, -111, 6, 94,180,128,115,188,127,186,224, 27,143, 22, 99,196,178,255, 43,226,178,191,241,198,110, 44, 76,199,189,249,124,202, 11, - 59, 7,124,250,240,136,169, 45, 16, 70, 50, 23,134,123,174,103,240, 29,172,155,204, 49,127,122,158, 85,237,205, 58,143,217,255, - 54, 28,140, 32, 73, 74,115,115,103,134,240,158, 46,146,209,171, 2, 74,109, 9,222,115,104, 60,223,216, 12,132, 16, 97,213,102, - 43, 92,159,109,174,194, 94, 68, 55, 22, 16, 37,162, 48, 8,165,161, 40, 17,133, 69, 76, 42,132, 80,200,210,230,219,120,204,107, - 68,145, 98,182,130, 42,131, 8, 14,169, 12,194,245,185,225, 30,134,252, 29,238, 6,196,102,200, 24,212, 38, 34, 86, 77,190,201, -175, 55,136,193,195,166, 69,156,158,229,191, 55, 61, 98, 61,254,222,189, 3, 53,142,251,117,157,181, 82,166,132,157,233, 24, 40, -118, 33, 16,172,242,164,177,172,184, 53,219,230, 43,123,115, 76, 97,217, 41, 70,124,110, 18, 60,118,129,101, 28, 56, 13,137,117, -200,122,171,228,134,103,231,219,171, 90, 81, 68,129, 45, 50, 53, 51,166,200,150, 86, 68,159, 11,160,140,158, 73,138, 20, 74,178, -114, 61,101, 18, 88,149,107,203, 38, 6, 80, 22, 73,194, 74,131, 78, 33,143,223,125, 36, 42, 69, 76, 89, 56, 56,144,216, 33,178, - 91, 25,132, 72,104,161, 81, 66,228,210,229, 19, 90, 37, 62,232, 29, 33,196, 44, 10,148, 10, 33, 36, 47,149, 37, 9,112, 49, 18, -165,196,142,154, 42,167, 12,171, 20,113, 72,138, 20,145, 9,250,232,169,149,193,248, 1, 69, 98, 75, 68,194,168,119,146, 74,230, -193,181, 20,185, 14,111,150,227,216,113, 76,165, 51,230, 50,247,196,152, 92, 7,244,232,131, 23,227,133,109, 24,158, 43,234, 90, -143, 51,252,231,162, 37,148,248,155, 35, 11,165,204, 99,224,194, 94,142,127, 43,123,201, 12,103,140,109, 92,143,193, 15, 73,102, - 53,230,197,152,232, 34,194, 34,230,113, 27,117, 49, 62, 65,149, 71,105,227,174,254,213,210, 48,173, 42,144, 18, 35, 50, 47,216, -201,156, 57,174,148,166, 13,142, 90,105,254,112,209,210,118,142,235,181,230, 60,120,116,128, 74, 74,218,222,129,200,145,156,143, -219,129, 82,231, 78,103,209, 57,148,209,217,182, 16, 19,149, 82, 56, 4,201, 5,246, 73,156,105, 73,236,122,124,140,172, 72, 20, - 36,144, 26, 95, 85, 56,239, 40,116, 65,135,162, 75,153,108,118, 38,192,167,144,149,222, 33, 3, 51,134, 20, 40,165, 98,187, 16, -180,189,163, 82,145,160, 4,123, 82,240,184,201, 98,191,225,162, 75, 75, 33,107, 20,194, 40,124,209, 58, 31, 86, 23,175,101, 84, -185, 99,144,207, 29, 89, 23,169,115,105, 76,123, 9,227,205, 93,143,111,188, 26, 95,227,174,203, 77,216, 56, 97, 81, 63,249,101, -126,233, 75,159, 97,213,246, 44,158, 46, 73,200,188,186, 81,153,133,190,183, 51,165,180, 5,243, 89,193,188, 42,145,163,210, 84, - 34, 32,141,164, 35,149, 85,168, 86,103,113,136, 72, 41, 7,173,140,141, 68, 26,189,155, 82,200, 49,152, 38,131, 10, 98,200,196, -187, 97,240,153,130,231, 2,237,224, 56, 61,223,176,105, 58,220,224,113, 62,143, 87,205,248,103,201, 4,251,123, 83,138,157, 45, -254,240,123, 31, 51, 91,123,206, 69,204, 13, 99, 28, 87, 16,110, 20,107,142,222,240,247, 8,124,107,136,148, 7,138, 67,171,248, -194, 65,197,203,147, 25,135, 9, 68,116, 68, 31,112, 62,225, 18,172,218,129,229,170,101,209,244,136,224,217, 45, 12,211, 50,231, - 27,120,151,247,231, 67,215,211, 54, 61, 67,219,179, 92, 54, 60, 89, 55, 44,186, 30, 98,196, 36,129, 34,145, 72,180, 49,145,148, -194,100, 3, 63,201, 72, 82,169,112,243,130,149, 86,188, 88,192, 23,107,195,225,142,229,212, 42,238, 46, 7, 78, 14, 39,204, 39, -150,193, 7,134,179,142,173, 39, 75,222, 30, 9, 78,201,193,103,125,224,231,118, 43, 30,118, 29, 77, 10,236,213, 5,213,149, 57, -219,251,115,234,170,230,211, 51,195,235,237,192,187,239,221,229,119, 99,201,245,175,124,133,151,175,237,179,175, 4, 7, 90,112, - 85,195, 47, 76, 5,247,158,174,184,251,135,111,243,245,255,237,255,228,247,255,135,127,203,209, 52, 81, 87,146, 15,255,199,175, - 82,117, 31, 49,125,245, 53,206,128,191, 76, 80, 29,204,120,241,149, 67,142,136,124,251,155,127, 8,127,241, 29,120,114, 31,119, -255, 62,226,116,253, 3, 80,160,252,201,144,136,197, 89,222,111,207, 10,196,214, 17,170, 40,249, 71, 55, 95,224,239,221,121,157, -171,135,215,120,239,251,119, 17, 33,241,147, 71, 59, 28, 23, 91, 28,104,205,142, 18, 24, 99,209, 41,175,116,154,224, 56, 30, 28, -196, 1, 81, 76, 16, 59,219,121,106,178, 92, 34,218,200,251,167, 75,222,122,248,148,251,103, 27, 68,212,136, 43,123,136,214,255, - 64,244,241,143, 23,194,217, 44,130,187,114, 0, 71,251,176,181, 13, 69,137,179, 83,238,204,166, 40,173, 48, 82,161, 8,232,190, -225,254,201, 73, 46,226,143,206, 96,125, 14, 87,175,194,147,167, 63,158,140, 88,215,207,133,130, 36,152, 84, 60,238, 61,135,211, -154, 46, 69, 62, 51,181, 60,241, 16,195,192, 65, 33,121,212,229,203,195,208,182,163,104, 42, 55,240, 66,171,204,105, 40,107, 68, - 85, 32,172,201,227,244,249, 12,153, 4,162,178,200, 20, 17, 69, 46, 92, 66, 8,132,136, 72, 45,145,214, 34, 92, 14, 45, 82, 49, - 34,147,207,134,164, 4, 50, 70,228,186, 65,246,153,167, 32,124, 64,182, 77, 46,238,155, 14,209,118,185,240, 55,185,105, 19, 62, - 32,100, 1, 87,174,114,227,104,135,163,107,123, 28,237,205, 41,107,195, 82, 87,136,178, 64,236, 76, 17, 91,219,168,249,156,106, -107,155, 80, 22,164,162,120,246,154,191, 86, 88, 14, 38, 53, 82, 42,134,144,198,115, 56,129, 75,156,134,200,189,161,203,151, 62, - 55, 18,244,136,144, 2,109,130, 59,181, 65,199,156, 24, 90, 8, 40, 83,196,117, 13,237,208, 97, 99, 64,165,196,208,247,204,132, -160, 0,108,244, 84, 66, 50,144, 24,162,103,199, 88,124, 12, 56, 33,184,219, 39,206,156,199,227, 51,161, 14,232, 7,199, 3,239, -216, 79,145, 93,107, 41,165, 70,166,152, 97, 48, 4,158,180, 3,167,206,225, 66, 32, 41,137, 82,154, 47, 84, 21, 37, 89,255, 85, -168,156,216, 87, 22, 19, 42,169, 24,156, 67,217, 60,105,216,160,152, 25,141,140, 48,179, 53, 41,180, 28,136, 64,109, 21,251,165, -101,207, 74,162, 80,244, 62,145,252,152, 65,146,252,152,210, 55,214, 70,173, 70,173, 90,186,140, 10, 30, 70,132,112, 14,236,135, -162,120,174,168, 95, 40,238,210,115,217, 80, 63,142,109,252,188, 5, 68,141,183,113,165, 47, 11,186, 85,227, 19, 10,121,167, 22, -195,229,168,190, 40,176, 55,174, 19, 86,203, 17, 88,114,193, 88, 38, 63,190, 26, 21,219, 77,151,159, 71, 81,112,125,103, 70,141, - 96, 90,228, 49, 85, 31, 7, 10, 12, 46, 69,172, 22, 88, 20,143,188,195,137,192,227, 33, 98,100,226, 69, 85,176,118,158, 46, 4, -172, 16, 8,149,133, 86, 59,133, 97, 25, 2,141, 11,204,166, 85,142,241, 84,138, 66, 10, 54, 41,209,135, 64, 73,162,213, 2,235, - 3,105,200,183, 92,149, 2, 58, 10,158, 36, 79, 82, 2,165, 13, 31,244, 30, 33, 21, 15,135,158, 94, 41,206,164,204,190, 71,160, - 25,195, 86,124, 76, 28,105,141, 78, 17, 37, 34, 69, 76,148,192, 58, 69,174, 25,197, 11,219, 53,247,125, 34,117, 67, 46,196, 23, - 54,136,139,244, 33,153, 35, 31,145, 41, 23,118,105,242,107, 27,199, 27,119, 26,111,235, 23, 35,246, 36,126, 16,109, 43,121, 6, -202,201, 34,186,252, 33,124,253,211,175,241,147, 95,184,195,211, 39, 27,154, 77,135, 82,138,174,113,184,198,209,181,158,201,180, -230,214,254, 22,187,149,165, 48, 38, 55, 42, 58,119,174, 81, 36,122, 23,241, 49, 97, 20,148, 54,243,212, 99, 74, 12, 99,164,156, - 18,185, 24,199,139, 29,224, 40,242,115, 62,211,152, 92, 12, 52,206,103,158,186,143,244, 93,207,226,188,165, 25, 28, 68,207,224, - 60, 93, 55,228,141,142,200, 1, 14,251,187,219,172,207, 23,220,251,131, 39,168, 82,112,220,197, 60,141,136, 2,218,231,242,236, -159,159,187,238, 42,238, 29, 89,222, 42, 4,195, 78,201, 83, 1,167, 34, 51,220, 85,240, 20,194,160,133,162, 64, 96, 84,166, 85, - 29,108, 85,236,110,215, 20,165,205, 72,202, 68,166,170,141,152,198,204,216,137,156,183, 89,205,155, 4,168,148, 70, 68,120,110, - 98,156,148, 56,161, 8, 42,191, 15,186,208, 24, 37, 41,140, 96, 57,102,227,123,145,216, 19,137, 15,143, 55,188,110, 3,219, 49, -208, 5,136, 66,176, 16, 18,171, 4,125, 76, 92, 73,240,138, 17,184,110,224,107, 70, 49, 49,134, 55, 15, 74, 14, 38, 26, 81, 20, - 76,247,167,124,254,250, 14,179,171, 51,222,155,238,243,237,233, 54,147,189, 9,159,214,137,185, 27, 48,109, 71,179,110,120,122, -182, 70, 60, 94,112,179, 86,184,205,154,117,179,102,209, 4, 78,222, 31, 16,175, 78,248,169,191,115, 19,117,125,143, 43, 47, 31, - 32,164,224,222,247,143,249,232,253, 7,156, 63,124, 72,124,248, 33,203, 7,199,136,126,200, 99,217, 8,130,248, 67,240, 22, 63, -202, 54, 92, 46, 10,201,129,173,249,197, 59, 55,216,169, 11,254,217,160,240,135, 87, 16,187,219, 60,146, 5,164, 64, 37, 13, 83, -109,184, 58, 41, 41, 68,164, 16, 1,209, 59, 62,218,172, 16,218, 34,182,246, 96,114,128,216,158,163,106, 11, 50, 33,154, 11,128, -209,152,203,208,244,192,128,248, 17,103,150,184,208,254, 76, 39, 57,218,245,224, 16, 14,247,178, 77,109,103, 43,219,211,138, 18, -180,166, 87,150, 79, 9,137,148,121,122, 38, 82,226,244,252,152,251, 79, 78,224,238,147, 28,158,227, 60,156,158,253,248,130,190, -189,199,252,179, 47,209, 47, 54,121,202,160, 68,214,121,204, 38, 68,149, 49,167, 31,246, 3, 3,217,122, 26, 19,156,247, 61,125, - 31, 16,198, 16,156, 3, 23, 16, 86,231,255,183,158, 34,234, 18, 68, 68,212,249,134,107, 10,139,157, 90,180, 15,204, 39, 37, 59, - 66, 80, 72,197, 16, 3, 90, 10,132,144,200,110,200, 43,175, 24, 81,147, 2, 57,228,226,167, 0,213, 69, 84,148, 40, 76,182,173, -186,132,114, 9,233, 61, 50,133, 92,244,131, 64, 42,141, 40, 45, 98,178,141,216,218, 98,111, 86,240, 51,219, 21,183,108,193,157, -121, 77, 97, 44,161, 44, 56,223,223,167,158,239,176, 85, 87,236, 84, 53, 62,121,164, 52,227,170, 77,160,132,230,166,209,236, 21, - 38,163,175,147, 64,132, 72,146,146,227,182,227, 27,235, 53, 41, 14,224,218,172, 77,232, 86, 99,124,238, 64, 43, 18, 47, 6,207, -158, 86, 36,223, 81,199,132,107,214, 44,134,142,171, 41,103, 59,216,152, 87,176,132, 76,127, 44, 0,235, 7,180,202,142,149, 97, - 20, 94,159,196,200,159,175,215, 52, 82,147,146,224, 65,223, 81,168,130,227, 24,242, 20,163,239,216,150, 17,225, 29, 49, 56,226, -208,211,224,249,214,217,146,110,252,188, 79,149, 66, 1,187, 66, 81, 26,149,203,154,212, 8, 33, 33,120,130,174,208, 35,108,204, -105,139,141,142,101, 20, 76,132, 64,132,129,153, 45,136,110,160, 84,144,198,122, 87, 40, 40,149,196,106, 73,144,138, 96,116, 22, -204, 73,159,235,231,152,240,137, 24,217, 42, 93, 51, 6,190,141,122, 54,149,243, 74,126,112,252, 30, 46,114,216,185, 76,189,249, - 91, 89, 64,200, 35, 22, 57,222,192, 47, 30, 68,140,129, 41,221,152,166,211,249, 60, 82, 10,145,176, 89,229,142,204,135, 75,114, -155, 27, 50, 39,118,221,193,122,117,169, 6,175, 75,182,167, 5, 59, 69,145, 5,108, 72, 10, 85,176,137, 61, 70, 10,140, 52, 36, - 18,231,222,177, 14,142, 70, 8, 92, 23,209,210, 51, 55,146,117,140, 44,187,241,131,170, 37, 49,101,244,101,101, 77, 30,205, 11, -193, 68,105,150, 49, 32,200, 59,228, 42,101,171, 28, 33, 80,196, 64,138,153,237,221, 39,193, 32,243,248,229, 97,132, 61, 45,249, -190, 11,120, 83,114, 50,244,184,232,113, 73,162,136,180, 49,162,147,224, 64,129,213, 17,145, 2,115, 1, 83,107, 96, 24,152, 75, - 5, 8,206, 18,124,170,182,116, 74,209, 92, 88,253,144, 63, 56, 59,212,242,146,102,119, 33, 46,212, 35,201,229,194,218, 38,198, -155,186,146,185,240, 95, 8,242,146, 24,173, 46,126,132,188,100,242, 67,177,176, 0, 0, 32, 0, 73, 68, 65, 84,171,216,237, 87, - 95,229,149, 87, 94,100,189,238,243,205,184,207,169,105,222, 7,124,151,168, 39, 37,175,223,216,101, 90, 91,172,214, 4,145, 15, -138,156,155, 76, 30,177, 75, 40, 68,246, 62,167,209,206,230, 99, 32,196,244,236,105, 10,153, 15, 49, 59,178,141, 7, 23, 17, 33, - 16,198,176,149,228, 2, 67,231, 56,105, 6, 78,154,158, 85,223,115,188,110,216,120,135, 31, 60, 25,101,223,227,165,100,182,187, -205,253,183,238,145,214,142, 91, 42,115, 1,174, 32, 88,196, 68,120,158, 29,112,193, 55,190, 83,192,142,201,130, 45,163,184,215, - 37, 62,238, 2,107, 19, 88, 9, 40,167, 19,236,124, 11, 61,159,176,189, 93, 51,159,150,204,107,195,254,180,100, 54, 41,209, 70, -227,147,192,187, 72,219, 13,217,187, 30, 99, 14,149, 9,145,206, 69,186,206, 17,124,198, 90,202,152, 50, 40,104,116, 8, 12,128, - 83, 25, 91,151,164, 96,183,233,169, 63, 58, 33,189,245, 9,233,235,239, 48,251,179,143,216,187,191,224,197,162, 96,103,171,226, -228,147, 53,205,163, 5,161,113,116, 10, 82,145,227,104, 95,148,138, 69, 76,252,249,137,167,209,130,182,115,148, 90, 96,218,200, -253,214,243,193,202,241,241,144,248,176,135, 79,148, 33, 86,150, 97, 8,220,238, 59,118,154,158, 97,177,225,227,227,117,182,218, -101,172, 32, 46, 86,172,194,130,122,191,224, 75,191,252, 38,191,254,243,111,242,223,124,254, 53,182,174,110,225,172,102,249,222, - 35, 62,249,224, 33,215, 53,124,110, 82,241,133,249, 54, 47,204, 20,223, 93, 5,104, 55,136,232, 17, 38,219, 19, 47,139,122, 68, -212,183,145,111,126, 30,113,243, 14,226,250,203,136,217, 14, 87,183, 38,204, 69,226, 74, 23,120,176, 92,243,139, 7, 87,184,187, - 94, 66, 72,108,136,188,161, 53, 59, 50, 97, 83,160,242, 30, 25, 91,222, 58, 59, 71,110,214,136,178, 66,216, 2,129, 34, 13, 27, - 68,223, 32,106, 11,123, 51,132,169,248,213,215,142,184,179, 59,225,237,167, 13, 12,221, 95, 29,185, 23, 83,120,225, 42,236, 29, -192,213,189,188,239,221,154,230,208,142,162, 26,225, 40,105,252, 30,121, 30, 56,199, 81,136,152, 52,112,126,246,152,175,126,114, - 31, 30, 62,201,222,247,191,233,146,243, 12,153,236,232,165,133,179,179,124,174,198,139,232,102, 69, 83, 88, 86,206,211, 39,104, -218, 64,167, 18, 27, 31,233,135,192, 6,143, 31, 28,116, 1,107,243,249,144,180, 65, 16, 80, 42,239,165,139, 82, 19, 29, 28, 78, -205,232, 26, 82,185,200,133,200,220, 42,218,148,115, 33,235, 81,232,162,146, 66,181, 29, 42, 73,180, 11,104,105,208, 4,246,109, -193, 63, 60,156,241,230, 94,205, 11,181,229,227, 38,162, 2,168,120, 97,213, 53, 72, 99, 17,214, 32,117,133,212,185,153,248,233, -173,130, 29, 83, 80,105,205, 34, 38,116,105,169,103,115, 30, 71,129,214, 37,133,204,194,229, 76, 18, 21,244,126, 0,105, 72,113, - 96, 11,184, 94, 20, 8, 55, 80, 11, 73,232, 91, 78,219,134,223, 61, 57,165, 27,214, 57,133,175, 89,193,226, 41,180,163,173,111, -232, 32,244,152,232,217, 52, 27,186,161,165,239,214, 12, 67,199, 86,191, 70,186,128, 13,137,105,200, 23,132, 42, 9,118,132,196, - 39, 48, 33,210,251,142,132,228, 81,240,172,147,224,173,229, 26,107,167, 36,223,147,144,212,202,176,246, 29,219, 74,179,118,142, -208,110,104, 86, 13,222, 53, 4,153,120,178, 94,114,127,221,177, 28, 28,173,115, 36, 18,221,208, 51, 16,216, 54, 6, 43, 50,251, -194,146,176, 66,146,180, 33, 6,207, 41,146,227, 48, 48, 17, 32,117,137, 26, 28,115, 35,144,193, 67,215, 83, 88, 75,240, 45,117, - 2,111, 20,201, 71, 42,149, 47,212,165, 21,153,211, 82,216,231, 44,201, 2,250,238,178,102,106,149,195,134, 24, 51, 11, 98, 78, -116,253,171,234,247, 24, 47, 63,132,127, 93, 1,151,250, 7, 49,159, 66, 92, 42,241, 34,151, 66,185, 11,216,251,133, 71,218,218, -203, 28, 91,247, 67,143,225, 70, 41,127, 24,159,112,235,114,178, 82, 85, 66, 93, 82,138,200, 81, 97,152,154, 18,129,100, 21, 28, - 83, 93, 18,162,160, 79, 16, 68,192, 10, 88,184,200, 39,141,231, 90, 37, 25, 66,224, 44, 68,204, 16, 88,201,172,202,143, 46,199, -196,182, 73,228, 24,117,165,242,196, 54,146, 83,191,144, 20, 66,210,199, 72, 17, 3, 67, 18,116, 74, 33,164,196,143,201,125,149, -135,115, 45,153,134,200, 67, 15, 75,165, 88, 71, 55, 22, 85,129, 75,129, 77,136, 52,209, 35,146,103,146, 18, 83, 9, 53,185, 24, - 22,193,161,165,194,199,200,164,180,108, 27,205,169,200,138,218,149, 45,242, 37, 83,141, 10,179,231,221, 1, 41,230,155,188,139, -121, 23,200, 5,185, 45, 94,194, 99,226, 69,214,251,120,180,153, 81,189,102,244,200,219,189, 8, 67,128,159,249,202,207,176,123, -101,155, 16, 35, 67, 31,104, 22, 13,235,245, 6,107, 11, 78, 78, 87,104, 59,225,229, 27,187,148, 54, 51,212,165, 84,132,152,242, - 91, 68, 64,164,236,213, 45, 74,133, 30,195, 88,252,152,177, 28, 71,155,218, 5,232, 69, 32,198, 36,169,152, 5,112,206,209, 53, - 61,193,121,196, 16, 88,121,207,113,235, 88, 53, 29,184,192, 89,219,225,130, 99, 19, 3, 27, 96, 45,160,222,154,178, 17,137, 63, -125,235, 17,111,117,249, 80,148, 74,242,229,160,248,251,104,254,126, 97,120, 67, 73,222, 43, 4,189, 25,111, 70,175,207, 96, 90, -141, 47,166, 6,145, 8, 14,180, 85,212,133, 97,111, 58, 99, 50,155,161,203,146, 80,228,195, 72, 11,193,150,177, 84,133, 65, 42, - 69,240,137,166,117,156, 44,214,156,158,183,108,250, 17, 11,219, 57,214,155,129,245,166, 99,221,117,185, 1,145, 18, 45, 37,133, -145, 24, 96, 82,106,182,119, 10,230, 51, 75,112,142, 39,247, 31,176,127,218, 33,124,226,129,244, 57,203,190,239,153,111, 58,246, -118,118, 8, 50,241, 72,129,216,169,209, 86,209, 38,193,118,130,166, 79,220, 95, 5,214, 49, 81, 78, 44,122,183,230,212, 11, 30, -184,196,162,143, 60,237, 60,199, 3,120, 33,179,251, 66, 64,104, 3,251,131,203, 97, 56, 72,206,238, 29, 83, 27, 69,187,104, 49, - 51,139,220,169,217,189,118,157, 95,248, 71, 95,230,205,159,124,153,159,191,177,203,180,214,252,243, 63,249,128,111,125,245,235, - 60,125,255, 67,110,148,130, 89,105,153,134,132,145, 5,201, 88,222,242, 61,190,139, 99, 97, 79,185,176, 43,133,188,253, 58, 63, -247,139,191,194,111,255,183,255, 21,159,253,244, 27,252,235,165, 69, 62,249, 4,249,206,159, 35,131,197, 37,195,106,211, 96,165, -228,108, 24,104, 99,142, 66,150,209,113,147,200, 92, 38, 84, 28, 48, 41,178,105,214, 60,238,123,220,147,115,196,189,251, 89,251, -169, 20, 82, 36,132,212,224, 59,196,131, 83,254,201,157, 67,126,253,181, 79,243,217,253, 3, 22, 69,226,131,133,131,144, 16,113, -140,225,156, 78,224,230, 17, 95,186,253, 41,234,157, 93,202,233, 22, 43, 61,238,126,149,186, 12,250, 96,188,241,251,142,161, 93, -211, 54, 27, 30,156,159,240,205,239,223,135,227,211,156,124,199,143,192, 27,255,184, 9,102,211,252, 96, 90,157, 27, 71,168,205, -112, 57, 65, 27,157, 56,105,240, 52,222, 99, 70,139,174,208,130, 42, 64,111, 36,133,128,163,210, 96,129,118,228,153,239, 20,154, -198, 69,182, 74,203,174, 49,180, 68,166,214,112,210,122,230,133,204,118,232,144, 87, 99,186,203,152, 85,147, 6,140,210,152,102, -192, 24,205, 87, 74,203, 94, 97, 50, 61, 86, 74,182,181,228,113,155, 80,165, 70,111,213,168,178, 70,238,214,200, 73,141,156,150, -200, 74,241,159,239, 20,220, 41, 45, 59, 90, 19, 17, 72,171, 25,132,100, 72,112,234,179, 21, 24,153,168,164,193,225,240,193,101, - 86,215,144,119,240,141, 31, 8,125,203, 21, 41, 56, 91, 28,211, 14, 61,191,127,239, 46,199, 79,143,225,244, 4,214,107, 56, 63, -207, 1, 66, 93, 63, 38,255, 13,208,108,120,218,246,124, 60,180,124, 48, 12, 52,155, 6, 57,116,236,196,136, 9,129, 9,137, 77, - 12, 28,232,146, 74, 8,186,148,152, 11, 73,163, 36, 38,230,128,160,211, 24,248, 78,151, 88,107,131, 14, 3, 66, 23, 8, 1,165, -144, 8, 98,230,235, 36,193, 16, 60,171,117,203, 39,203,150,187,103, 13, 79, 66,196,247, 3,221,224,216,145,146,174,237,153, 24, -197,224, 3,167,125,207,129, 18, 28, 22, 26,163,178,128, 88,105,201,105,128, 37, 34, 35,192,165,196,198,136, 22, 48, 12, 29, 69, - 24, 72, 82, 48,193, 81,134,192,106,240, 76,146,200,131, 28,173,242, 25, 21, 18,149, 18, 4,161,112, 74, 93, 78, 95,149,185,140, -145, 45,108, 62,211, 47,146,233,194, 0, 46,252, 71,196,196,234, 25, 76,203,252, 66,119,237,229,135, 54, 93, 40,247,210,229,248, -253, 98,132, 44,212,179, 66,146, 71,201,207, 41,223, 47,190, 76,207,212,219,163, 80,172, 30, 57,228, 85,206, 54,182,194, 34,133, -100, 57, 12,148,214,162,144,172,253,128,212, 22,237, 7, 90, 20, 18,135,150,146, 24, 34, 15, 59,152, 72, 65,233, 29,143, 82,182, -190, 45, 7, 7,117, 73,227, 28,214, 40,146,135, 70, 36, 42,165,233, 72,104,149,139,211,202,123,106,107,136, 74,162, 9,248,212, -114, 98, 20,120,143, 73, 30, 33, 52,190,233, 9, 19, 65, 45, 28,101, 7,141, 46,178, 86, 0, 96,104,137, 49, 91,250, 22,195,192, -182, 22, 92,179, 53,141,247, 28, 26, 67,231, 4, 62, 4, 14, 39, 83, 22, 67,135, 19,130, 93, 4,167, 69,205, 52,118, 44,170, 34, -199,199,202,220,209,225, 47,112,146,163,107, 64,143,183, 1,127, 33, 56,140, 57,176, 70,170, 60,138, 30,252, 8,204, 9,227,127, - 99,243, 62, 93,155,172,220, 21,121,106,226,135,252,129,152, 78, 11,214,139, 14,165, 21,214,232,124,214,140,161, 54, 77,231,217, -155,149, 8, 41,242,197,223, 11,162, 72,200,152,211,247,130,143,120, 35,178, 48, 19,137,210, 18, 39,178, 15, 61,164,188, 2, 8, - 49, 61,235,220, 37, 9, 27, 35,161,243,136, 16,177, 72, 54,193, 51, 12,129,101,211,211,199, 49, 39, 93,102, 6,242,128,160,141, - 61, 19, 41,217,191,126,200,123, 31,220, 67, 7,216, 70,240,189,141, 3, 31,249, 30,145,162, 77,252, 92,165,184, 89,106,126,197, - 41,126,242,214,140,119,222,218,112, 60, 43, 81, 47,189,192,227,110,195,102,112,156,116, 29, 31, 30,247,108,149,138,106,156,100, - 4, 34,221,208, 35, 86,146, 97, 8,132,222,179, 95,151, 76, 71,123, 99,219, 6, 78, 78, 27, 62,186,119,198,122,211, 94,222, 76, -165, 96,232, 7, 26,215, 49,116, 29, 94, 41,114, 34,124, 22,216,108,205, 75, 14, 94,220, 98,182, 55,101,182, 59,225,189,239, 63, -230,131,166,167, 85,112,211,193, 67, 25, 25, 74,193,206,102,224, 86,227, 41,191,115,151, 87,215, 13,175,237,212,204, 94, 63,226, -254,213,146, 73,227,216, 44, 7, 30, 13,240,141,100,120, 49, 42,190, 60, 53,252,191, 14,222, 63,239,169, 35, 20, 70, 50, 31, 60, -122, 82,128, 80, 24,173,184, 35, 21, 55,182, 21,133, 51,136, 85,195,241, 91,239,114,235,198, 62, 47,224,120,242,201, 99,218, 43, - 19,234,218,160, 10, 69, 81, 22, 28,159, 44,249,151,119,159,242,207,127,251,247,120,244,241,146, 23,182, 13, 7,135, 91, 24, 93, - 82, 20, 37,178, 27, 56,239,214,156,198, 68,220,218,193,220, 82, 4, 25, 72, 79, 31, 33, 94,126, 19,110,190, 4,251, 47,114,116, -117,151,205,147, 51,126,227,255,250, 29,244,239,126, 23,241,197,151, 16, 71,215,217, 81, 2,183, 92, 96,164,226,165,162,100, 49, -116, 28, 3, 41,120,196,208, 34,101,139,223, 24,106, 91, 32,130, 99, 66,100,123,189,164, 89,158, 19,143, 79,136,253,154,116,251, - 83,196,157, 3, 82, 89,145,108, 73,178,134,223,120,239, 1, 87,240, 28,204,118,248, 94,235,179,183,252,188,132,176, 70, 40, 75, - 58,218,129,189,125, 38,102,194,223,217,219,101,145,114, 72,213,191,109,150,121,189,103, 71,226,149,243,153,118,181, 88, 66,227, -184,191,217,100,199, 73,234,199,181,225,104, 31, 13,241,111,127, 86,254, 40, 46,250, 98, 1,187,123,151,156,134,209, 6,156,198, -113,238, 48, 4, 10,157,149,236,107, 55,112, 93, 27, 6,173, 56,137,137,155, 19,141, 31, 4, 49,207, 16,185, 82, 21,108, 6,199, -138,236, 78,153, 0,117,101,232, 99, 98, 72, 41, 63,101, 31,145, 87,246,144, 82, 83, 76, 44,184,129,212,244,220, 26, 6,110,232, -204, 55, 80, 2, 54, 46,112,173,176,212,187,150,184, 55,131,189, 25, 87,170,154,164, 5,167, 67, 75,227, 29,175, 18,249,172, 81, -212, 90,114, 84,148, 60,117, 29, 79,162,199, 3, 31,116, 3,167,162,196,168, 60,133, 91,135, 13, 73, 38,214,109, 3,222, 33, 54, - 27,146, 80,172, 55, 45,223,148,145,111,202,209, 86,146, 2, 44,250, 49,179, 99,156,244, 14, 25,226, 50,238,184,242,244, 81, 11, - 88,174,159,157,177,119,165,102,119,219,210, 6,193,190,206, 4, 54,141,160,137,142, 82, 26,166, 82,112, 46, 20,197, 24,202,213, -111, 22, 24,171,217, 69,179,113, 3, 24,131, 14,142, 32, 4, 94,106, 22, 17, 90,198,137,243,176, 33, 40,152, 71, 73, 39, 5,219, - 17, 58, 33,217,158,151, 28,247,145,131,121,205,227,214, 97, 11,197, 64,164,239, 55, 44, 84, 32,161,169,116, 73,215, 12,156, 10, -197,137,157,161,147,103, 75, 90,124,236, 65, 41,170, 36,232, 98,100, 87, 6,156, 27, 48, 74,178, 85, 26, 78, 6,199,150,132,165, -119, 20,104, 38, 6, 22, 36,154, 16,144,182, 32,166, 0,194,254,224,103,105,185, 25,131,141,234, 60, 17,170, 74,112,254,185,162, -174,245, 37, 41,230,199,141,221,167,117,142, 33, 44,170, 92, 32, 46,126, 6, 46,139, 77,188,192,201,245, 99,228,233, 88,236,237, -115, 93,174,243,151,227,126,212, 37,108, 4,153,173, 90,106, 84,193, 63,103,159,219,132,200,196,234,204, 47,209, 50,231,175,248, - 33, 91,179,188,167, 65,176,171, 21, 69, 33, 89, 15, 25, 8,163,141,160,245,254, 89,202,253,178,115,168,202, 82,185,136, 55, 30, - 6,205,153,114,108,219,140, 51,108, 83,196, 40,197, 34, 95, 71,153,105, 65,131,198,182, 3,219,192, 70,107,214,193, 51, 67,243, -168,237, 8, 93, 71, 61,155,114, 26, 37,108,250,203, 72, 86, 9, 52, 27,176,138,224, 35,239,159,173,248,220, 86,126,209, 39,232, - 49, 38, 87, 50, 49, 22,173, 10, 78,104,217, 45, 19, 77, 47, 51,115, 5, 46, 51,224,155,110,220,157, 95, 28, 42,242,146,250, 22, -228,232, 58, 24, 27, 34, 41,243,239,234,135,252, 62, 68,159, 91,118,171,243,123,164,220,104,253,241,104,107, 41,173,225,228,108, -131, 27, 11,188,214, 6,151, 2,162, 44, 40, 37, 20,101,206, 6,200,251,242, 11,105, 68, 78, 82,235, 98,192, 17,145, 61, 88,173, -144, 57, 69, 6,169, 50,139,152,144,111,238,217, 46, 47, 81, 49,195, 94,116, 2,163, 36, 90,107,188, 8,184, 16,232, 55, 30,223, - 56,232, 29,125,240, 24, 33, 88,165,196, 10, 40,172,225,104, 58,101,111,127,139, 63,250,147,239,241,221, 38,239,208, 16, 49,255, -174, 83, 77,223, 58,254,213,185,203,193,241,107,207, 59,231, 3, 47,110,107,138, 39, 13,146,123,220,216,153,242,194,214, 46,250, -250, 14,223,219,121,204,100,182,197,164,174, 41,102, 83, 14,143,118, 88,117, 67,222, 16,109,122,154, 36,232,132,192, 9, 24,122, -207,217,162,225,238,253, 19, 30, 62, 56,103,240, 29, 41,100,108,167,136, 17, 31, 99,166,167,249,132, 64,179,232, 5, 82, 25,148, -130,253,189,138,122,119, 74, 49, 45,113, 41,113,214, 42,110, 79,247,248,254,233, 83, 30,184,150, 77,219, 32,140,164, 25,122,174, - 4, 69,179, 56,102,111, 19, 88,196,134,217, 39, 11, 78, 95,152, 96,103,154, 35, 83,112, 16,225,198, 85,197,181,101, 79,215, 5, -126,213, 74,254,167, 85,207, 73,227, 25, 6,216, 41, 36,147, 66,113, 22,224, 80, 11, 62, 59, 51, 28,213,138, 19, 1,111, 63, 78, -124,229,240, 21, 22,201,113, 32, 18,159,217, 46,249,227, 69,203,195,239,220, 99,231,232, 42,211,123,103, 92,145,130,111,126,247, - 33,119, 80,108,109, 91,116, 93,176, 85, 79, 49, 66,211,173,150,220,125,252,144, 83, 93,177,116, 41,239, 67,203,154,161, 56,128, - 47,127, 38, 39, 89,181, 27,196,215,254,128,223,248,238,130,127,241,134, 66, 93,217,197,124,233, 14,162,156,176, 91,207, 57, 16, -154,137, 86,163,169, 38,208, 13,158,207, 19,217,154,239, 66,154, 51,167, 37,173,206,169,162,195,132, 0,203,115, 94, 63, 95,241, -180,237,137, 6,194, 98, 65,252,222,251,196,219,142,120,253, 6, 73,193, 23, 95,186,195, 27,183,111,241,199, 31,188, 75,255,240, - 29,238, 29,247,136,170,134, 74,147,216,206,201,150,211, 41,111, 76,106,110,109,111, 97,133,228, 74, 97, 40, 69,143, 90,231,176, - 70,218,113,127,123,190,202,141,239,249, 58, 23,115,158, 43,200, 74,130, 48, 57,103,253, 63,164,168,255,117, 63,171,213,104,253, -213, 35,255, 66, 17, 92,204,199,156, 17,244, 46,177, 45, 3,229, 78,205,227,245,192,190,149,220,172, 18, 15,186, 64, 39, 20, 83, - 18,133, 53, 28,167,196, 43,133,193, 42,184,110, 53,171, 33,240,168, 25,152,151,130,166,143, 72, 31, 81,218,160,171,146, 91,243, - 41, 66,107,164, 31,136,147,158, 47, 9,207,203, 74,161, 6,199,241,178,227,233,186,231, 35,239,153, 86, 21,177, 40,198, 44,144, -128, 68,163,180, 34, 16,121, 81, 68, 38, 90, 82,250,196,169, 95,178,173, 13,157,115, 28, 7,184,231, 65,153,136,111,219,108, 68, -233, 90,210,122,141,104,123, 82,215, 67,231, 16,195, 64,146,238, 50,228,231, 7, 64, 95, 41,171, 92,203,145,148,103, 60,108, 70, - 32,141,119,224, 70, 43,244, 72, 59,139,210,241,180, 53,220,175, 19, 6,184,154,224, 64, 41,206,165, 34,166, 68, 47,179,125,248, - 52, 37, 26,160,172,166,232,216, 17, 92,139, 80, 37,131, 15,120,157, 39,199,103, 67,135, 21,154,117, 28,178, 86,201,214,176, 13, -203, 85, 67,225,123, 54, 2,156,213, 48, 68, 68,101, 57, 67,240, 74, 93,240, 46,153,123,209,171,130,223, 91,116,212, 90,243,134, - 13,188, 39, 36,235, 16, 9, 33,176, 85,206,240,205,130,189, 98,134,175, 39, 16, 3, 59, 4,154,205, 19,166, 90, 67, 12,172, 99, -100, 79, 43,156,207,154, 45,159, 28, 43, 31,241, 14, 10, 41,243,250, 66,233,209,185, 60, 54, 62,113, 12,173,113,125, 46,238, 90, - 67,219, 65,122,254,166,110,245,165,100,254,199, 21,245,161, 1,202, 92, 52,158,221,180, 61, 88, 55,250,163,199, 4, 57, 63, 90, -180,188,191, 28, 5, 95,220,200, 47, 10,248,133,218,254,226,159,155,238,242,198,127,193, 13, 30,233, 99,239,169,130, 23,165,160, -151,146, 2,216,196,152,119, 55, 82, 18, 99,196,249,129, 18,197, 82,122,212,136, 46, 91, 43,197, 68, 6, 76,161,105,157,231,110, - 19,120, 97, 2,170,247,172,140,162, 38,146, 76, 66,171,114,132,132, 64, 37, 36, 29,176,140,145,235, 90, 35,131,167,198, 32,133, -231,201,232, 10,159, 40,205, 58, 4, 10,161,120, 52, 64,116, 29,181,116,153,204, 19,251, 49,190,207, 65, 10, 40, 97,121,226,122, -190, 48,175, 88,123,199, 84, 40, 38, 90,161,180,201,163, 94, 44, 50, 5, 10, 37,168,124,226,250, 86,201,112, 62,176,190,120,103, -124,155,247,127,171, 46,127,232,149, 29,189,178, 49, 63, 25, 63,118, 84,202, 94,142, 6,227,184,147,143,163, 40,206,199, 75,149, -114, 24,217,237,162,196, 22, 10,171,243, 72,189,158, 78,114, 40,221, 38,147,209,246,171,154,157,189, 41,125, 15,165,209, 8,145, -105,108, 81,100, 43, 91,206, 97,143,196, 33,208,235, 72, 29, 21, 33,138,203,129,140,144, 99, 10, 98, 22,229,136,148,208, 82,100, -123,188,204, 35, 41, 25, 19,209,103,222,186, 86,130, 3,165, 57, 47, 10, 68, 8, 44, 82,162,142,145,101,190, 18, 83,212, 5,235, -243, 13,220, 95,147, 60, 76,181,102,221, 15,208,132,252, 90, 92, 55,240, 73, 15, 27, 15, 6,190,190, 47,248, 58, 1,156,227,102, - 1, 7,139, 21,221,217,154, 73,253,152,178, 46,217,155,111,243,229,207,221,225,240,133, 93,202,218,242,232,124,195,233,186,101, -181,233, 41,180,165,174, 74,162,148,116,131,227,120,213,240,240,116,201,134, 72, 16,146, 36, 21,169,119,248,161, 35, 70,151,127, - 55, 52,146,148,119,237, 86,211,167, 72,155, 18,109,140, 20, 18,190,249,246, 99,206,122,248,164,154,210,238, 22, 84,174,103,221, -221,167, 90, 31,227,156,227, 95,135,129,217,162,225,197,162,228, 17, 37,187, 15,158, 50,105,246, 17,100,112,140, 83,138,161,208, - 28, 79, 44,198, 5, 78,149,224,205,157,130,223,250,218,125, 30,108,224, 63,187,190,155,149,181, 17,124, 8,124,126, 90,179, 61, -181,156,165,200,245, 98,135,201,178,230,201,122,224,157,227,115, 68, 20,156,189,243, 17, 15,222,251,152, 15,138,119,121,225,215, -126, 25,172,161, 45, 75, 44,150, 29,237,248,240,163, 5,205,249,134,237,253, 41, 91,123, 91,252,254, 87,255,130,116,117,159,120, -243, 8,130,161, 22,240,202,151,222,228,245,254,152,223,252, 95,190,133,253,114,201,144, 2,123, 63,127, 3, 89, 87,236,206,175, -176, 78, 9,163, 52, 71,202,176,103,115, 26,100, 66,226,186, 53, 47,138,158,117, 12, 28, 30, 93,163,156, 84,184,190,231,236,195, -111,179,186,127,151,243,216,211,222, 95,114,173, 46, 41,129, 79,111,237,240,173,197, 25,161, 91, 17, 82,128,243, 39,188,121,245, - 5,190,116,176,203, 92, 72,124,140,252,230,251,223,231,230, 36,112,183, 79,121,154,110, 20,105,108, 34,136, 48, 87, 10,171, 5, - 58, 6,122,215,241,165,208,240, 71,235,101,158,132, 61, 61,207, 86,181,229, 34, 79, 32, 11,251, 35,188,230,233,111, 62, 27,255, -182, 63,110,200,244,182, 49,145,115, 90,104, 58, 9,125, 31,185, 82, 41,156,149,156,181,158, 93, 23,153,106,201,218, 7, 54, 30, -180,213, 57, 71,170, 46,185,182,189,207, 78, 49,229,102,109,185,163, 4,106,241, 24, 21, 28,127,201, 10,173, 36,115,223,161,181, -198,214, 53, 73, 90,166, 69,238,127,103,117,205,212, 27,110,196,158,228, 28, 19, 99,168,103, 64, 31,120,219,195,220, 40,130, 86, -108,155,130,137,177, 12, 36, 58, 41,217, 55,134, 67, 45,209, 93, 62,215,116, 72,116,222, 51, 12,145,223,121,218,227, 68, 68, 15, -103,132,229, 26,180, 37,185,129,120,129, 4,149,144,250,241,117, 13, 54,251,250, 47, 34, 80, 69, 49,174, 25,199,139, 78,231, 71, - 29, 86,186, 4,128, 93,136, 36, 92,255, 44,170, 91, 4,184,219,182,212,133, 96, 54,230,158, 8,163,145, 49, 48,232,130, 20, 61, - 43, 33,233,181,161,141,145,132,164, 81, 5,123,186, 99,225,122, 30,217,154, 57,145, 77,202, 77,213,169,239,199,245,229,152,226, - 41, 13, 76, 74,250, 30,146,177,104, 4, 11,163, 81, 9,130, 82,108,138,154,159, 80,146,149,144, 44,132,160, 78,176,107, 20,143, - 66,228,101,173,121,170, 12,119,125,203,186, 83,204,170,154, 71,171, 99,136, 29, 71, 55, 95,103,245,238,159, 81, 81, 16,125, 71, - 10,137, 90,102, 65, 93,242,207, 16,152,204,180,228,110,227, 71,200,149,186, 36,184, 21,163,142,162,200,164,200,103, 7,110, 63, - 66,139,132,122,174,168, 59,127,201,123,253,113, 63, 77,155, 51,133,229, 15,141,151, 28, 16,187, 60,154,127,158, 15, 59,118, 35, - 57, 5,135,203,177, 19, 33,171,149, 13,121,199, 36,199, 55,243, 25,169, 73,141,108,227, 13, 84, 19, 84, 72,156, 7,199,118,204, -233, 78, 90, 89, 54, 41, 82,138, 12, 5,152,218,146,251,155, 37,203, 24,185, 82, 27,190,127, 49, 82,211,112,220,122, 98, 18, 92, - 41, 21, 79, 26,232,230,137, 93, 18,139,148,173, 74, 87,101,230,232,106, 33,241, 8, 28,145,131, 42,119,115, 33, 64, 69, 46,244, - 86,107,122,151,241,138, 61,137,211, 16,152, 23,138, 7, 35,183,153, 97, 4,181,172, 54,207,252,248,161,105, 57, 50,138,183,151, - 45, 95,152,215,212, 85,129, 79,129,153,153,208,184,236, 19,245, 82, 83, 70,207,141,201,156, 7,205,134, 45, 35, 40, 5, 60, 93, -181, 80, 87, 89,160, 83,106, 8,213, 72,124, 35,135,212,244, 99,177,246, 9, 38,228, 27,184, 30, 21,240, 23,171,142,139,177,129, - 31,121,211,186,200,157,177, 41,153,212,147,156,250,230, 19,182,146,112,158, 24,134,129,162, 40, 57,188,178,203,223,253,204,117, -164,210, 36,145, 69, 26, 46,145,233,106, 82,144,124, 78,140, 43, 10, 73, 8, 41,111, 0, 18, 72, 41,179,121, 33, 64, 34,142,230, -134,244, 44, 80, 71, 2,106,220, 27,102,198,120,100, 54,218,139,125,132, 38,100, 40, 79, 14,227, 20,204, 68, 66, 8,137, 45, 43, -142,143,207,121,251,126,199,204, 10,166,133, 98,157, 70, 49,225, 69, 97,247, 23, 1, 1, 33,123,244,111,215,224, 36, 15,151,129, - 79, 98,226,221, 90,113,133,192, 21, 25,217, 44,207,168,239, 62,230,211,211,130, 23, 74,205,164, 42,176, 74, 50, 49,134,162,180, -204,234, 2,107, 52,206,141, 80, 26, 21,243,168,174,168, 32, 37,130, 50,248, 21,200, 62,161, 99,200, 62,124, 4, 49, 6, 98,231, -240,235,158,197,201,154,132,224,241,249,138,234,253,123,156, 76, 42,238, 79,246, 57,156,148,220,153, 77,249,120, 50,229,252,227, -125,228,174,163, 57,237, 88, 29, 9,222,245, 3,159, 58,152,243, 7, 83,205, 71,255,235,255,199,250,147, 99,170,249, 22,113, 62, - 33, 20, 37, 87,175,239,112,227,206, 14,157,128,247, 31, 44,120,177, 42,217,185, 49,231,188,247, 76, 66, 66,185,200, 63, 56,172, -153, 36,208, 62,113, 69,229,176,141,118,106,249,211,147,150, 38, 70, 86,171,134,214,105,218,135, 13,215,127,234, 38, 79, 11,195, - 45,109,120,233,229, 27,220, 83,146,189,190,225,218,235, 45,103,143, 30, 48, 63, 60, 66, 77, 12,182,123, 68,122,119,159, 52,109, -184,117,235, 58,169, 56,224,181,197, 61, 42,161,248,149,127,122,155,213,100,155,101, 40,152,238, 28,208, 3,171,224,121, 41, 4, - 42, 5, 91, 74, 51,179, 80,203,132, 78,142, 85,232,104,135,134, 36, 11,166,214, 82,149, 5,231, 85,201,176,253, 18, 31,156, 46, -249,252,201, 35, 90, 35,248,189,199,199,252,194,213, 61,190, 33,160, 76, 18,191, 60,193,223,127, 64,216,221,167,174, 37,197,225, - 54,161,152,210,233,146, 55, 14, 15,153,107,216,234, 29,223,110,251, 81,185,238, 73, 66,243,238,224,249,169,118,193,141, 80,211, -250, 14,227, 29,177, 95,231, 93,249,201, 34,171,172,155,238, 7,241,166, 74,254,208, 63,251,191, 18,110,243, 31,157, 43,127,241, -103, 14,249, 49,151,163, 76,233, 74, 93,242,120,227, 40, 10,197, 84,128, 76,137, 32, 4, 87, 38, 5,171,113, 63, 43,172,162,212, -150,235,179,125,246,118,182,185,105, 44,183, 66,131,177, 37,221,234,132,253, 98,139,143, 54, 11, 14,148,193,147, 24, 16, 76,234, -130, 66, 25,170, 66,161,164,229, 72, 43,174,166,130, 32, 27,172,138,244, 1,110,109, 77, 16,177,227, 65, 93,208, 88,240,218,144, -140,161,141,129,181, 79, 60,236, 58,110,148, 2, 75,228, 64, 43, 54,110,192, 13,158,213,162, 69, 63, 62,135, 20,114, 60, 47, 25, - 42, 21,184, 12,203, 73,189, 71,104, 77,234, 7,114, 12, 12,249,251, 90, 75, 8,125,222, 19, 95,212, 5, 61,234,178,180,186, 76, -208,188,200,216,186, 40, 96,195, 0, 91, 19, 24, 2, 31,172, 29, 98,170,249,194,164,226, 97,204,251,241, 34,102,230,135, 19, 10, - 27, 2,131,202,158,140, 45, 47, 88, 75,197, 92, 72,222,117,145, 37,137,164,244,136,184,214,121,109,172,199, 6, 67,251, 92,224, -171,154, 32,192, 35,176, 82, 33,148,100,219,148,120,224, 84, 91, 78,253,192, 34, 68,246,203, 9,149,144,120, 35, 57,117, 45,199, - 99,156,107, 72,142,123,235, 83,110,137,196, 98,121,130,191,251, 22,110,179, 4, 60,173, 79, 92,213,153, 8, 89, 5,129,151,130, - 33, 66,239, 2,167, 62,159, 59,249, 66,246,156, 88, 58,166,220,252, 92, 76,132,205,115,214,242,190,135,117,243, 67,150, 54,239, -255,102, 17,200, 5, 12,228, 34, 10,209,140,240, 3, 51,142,135,109,145,255,122,214, 28,164,188,203, 29,134,203,255,103, 24,227, -238, 10, 9,171, 53,204,103, 25,217, 88,141, 0,152, 16,115, 8,141, 28,129,241, 50,145, 82, 96,170, 44, 51, 45, 41,148, 70, 11, - 8, 98,132,133,164, 64,235, 2, 66, 73,206, 66,224,254,102,160, 31, 65, 49,155, 33, 50, 83,146, 62, 69, 54, 81, 16,164,160,113, -145,121,105, 80, 18,106, 99,105,147, 96,183,208,248, 81,249, 46,149,102,229, 61, 67, 8, 57, 13, 45,194, 32,115,177,121, 48, 12, - 4,153,253,216, 69, 82, 60,246,185,211,234, 47, 20,215, 23,182, 61, 55, 22,121, 33, 24,156,103,219,100, 91,220,142,177, 84,198, -114,238, 58,172, 50, 36, 33,136, 33, 96,146,100, 16, 96,165,192, 73,129,219,180, 92,153, 84,156, 54, 45, 68,216,154, 22,244,221, -144,181, 10,105, 92, 81,232,231, 4,117, 62,140, 30,244,139,214, 54, 94,134,212, 92,208,239, 82,204,227, 44,109,161,237,248,236, -155,159, 97,190, 55,231,244,248, 28, 31, 96, 50,157,178, 60, 89, 81, 79, 38, 92,217,219,226,221, 79,214,188,112,101, 62,142,202, -101,166,177,141,193, 85,125,200, 25, 1, 89,148, 47, 40,108, 78, 40,147, 34,143,233,253,168,198,245, 33,226, 67,194,187,108,105, - 84,241, 66,249, 30,192, 7, 66,235,232,154,129,174, 15,196,193,227, 82,100, 21, 28,201,199,108,135,139,145,171,251,187, 28, 28, -238,242,206,219,239,243,222, 73,195,178,117,172,134, 17, 81,219,135,188, 12, 59, 30,133,138, 25,223, 4,103, 14, 38, 18,185, 93, -225,251, 56,106, 57, 37,243, 90, 83, 25,203,164,158, 34,181, 37, 84, 22,105, 53,189, 15, 28,159,183,244,157,163, 42, 53,211, 73, -137,210, 18,239, 60,109,215,211,245,217, 98, 39,180, 34, 70, 75,194, 18,140, 70, 10,205,118, 81,115,125,190,205,225,100,206,196, -148, 76,149, 97,191, 40, 41,146, 68,205, 45,178, 46,105,107,139,208, 2,206,150, 76, 39, 19,110, 29,212, 52,202,208,238, 77, 16, -170, 96, 82, 22, 84,243, 18, 61,155,178,127, 56,229,202,225,148, 99, 49,229,251,201,210,204,106,228,225, 46,147,171,115,156, 86, - 60, 10,112,114,222, 99,181,165,124,113,155,117, 59,112,122,210, 48,108, 28,243, 29,131,248,232,148,151,246,167,136, 0, 86,231, - 56, 76,149, 18, 47, 84,130,155, 83,195, 7,143, 60, 11, 57,103,101,225, 74, 33,216,185,122,200, 78,105,104, 3,248,178, 32, 77, -166, 32, 38,108, 85, 37,219,135, 59, 60,126,186,226,159,124,230,243,252,131,255,242,167, 57,122,227, 14,213,233, 19,134,167, 31, -243,130, 45,137,102,194,244,240, 6,147,131, 79,177,127,227, 58,182,174,152, 78, 39,204, 37, 28,106,195, 22,138,173, 34,113,160, - 52,179, 24,208,190,103,238, 6, 78, 22, 43,246, 82, 71, 85,212,180,211, 41,117,239,249,104,240,220, 48, 5,119, 69,226,134,138, -188,148, 4,223, 76,138, 95,170, 45,239,161,144, 66, 35,241, 8, 23,120,176, 25,216,173, 5,247,134,129,148, 36,183,235,138, 93, - 91,177,109, 44,239, 56, 79, 24, 57,214,194,121, 98,236,249,254,114,205, 46, 61,186,239, 89,117, 11,254,229,135,143,224,254,113, - 30,133,187, 31,218,125,203, 81,159, 18, 70,190,130, 28,187, 84,255,159, 0,136,121, 54, 69,139,151,205,118, 28,207,138, 36,168, -172, 34,133,132, 23,130,237,164,120,109,111,194, 79,237,109,241,234,124,202,212, 72, 2,130, 86, 9,182,180,225,198,116,198,220, -150,236,213, 19, 94, 41, 11, 74,109,216,149,146,169,202,126,117, 45, 45,219,214, 98,149, 98, 87, 89,166,166,224,160,168,216,211, - 21,187, 41,114,104, 44, 7,186,100, 91, 21, 76, 80, 76, 76,205,188,156, 48,177,154,235, 86,179, 63,157,113,168, 37,187, 2,182, - 84, 68,118, 29,133,115, 44,215,107,142,130, 71,227,217,180, 61,199,231, 13,127,113,186,100,117,214,142, 22,219, 1, 17,179,240, -239, 50, 66,220, 95,254,174,207,191, 30,241,121, 29, 86,200, 89, 26,207, 24, 23, 98,244,105,143,103, 91,161, 47, 99,195, 73, 96, - 44,194,103, 55, 65, 72,112, 10,196,145,124,104,165,198, 11,129, 23, 57, 41,206,169,172, 53,216,140, 60, 17,139, 96, 41, 19, 8, -205,146,144,111,231,114,116, 4,153,139, 32,151,145,241, 33,115,214, 71,146,144,148, 36,152,146,137, 50,217,222,172, 52,115,169, -121, 34, 52,218, 90, 10, 91,162,144, 60, 9,158,162,172,184, 35, 5,247,146,128, 48, 48,183, 37, 65, 89,170,208, 99,250, 6,101, - 13,209,123,172, 72, 56,145,181, 71, 49, 4,150, 33, 19,244,136,137, 39,109,164, 75, 99,232,140, 80,227, 45,125, 20,204, 41,123, -185,106, 45,205, 88, 43, 85,182,185,141,103,244,127,218, 79, 61,201, 5,164, 75,204,127,226, 14,203,119,238,229, 20, 36,115,161, -146, 31, 59, 43,173, 71, 47,233,216, 93,116, 49,171, 29,235, 45,216,173,145,186, 32, 94,164,165,117, 62, 23,253,114,228,141,203, - 44,246, 58,243, 1, 71, 34,137,200,169, 15,108, 9, 65, 82,154,193, 59, 64,176,240,158, 62, 68,102, 82,178,136, 9, 41,229,248, - 98,141,117, 78, 93,140,254, 5,223,111, 19, 91, 86,176,155, 2, 83, 11, 79, 7,199,212, 90, 54, 41, 49, 9,238,242,134, 43, 5, - 40, 79, 10,154,211,152,152, 26,147,131,108,148,160,197,211, 15,130,190, 16,185,177,121,102, 51, 35,219,199,116, 22, 5,246, 33, -239,168,139,152,232, 4, 48,116,212, 69,205,248,209,205, 89, 11, 70, 83,199, 72, 7,236, 1, 15,132,160, 78, 61,159,155,105, 60, -154, 10, 79,179, 59,201,187,100, 3,119,151, 21,125,232, 47, 87, 32,210, 65,127,177, 79,231, 50,138,183,176,227,141,126,180, 46, -132,113, 74, 82, 88, 54,171, 14, 63,238,232,125,219,211,156,181,172,155,134, 33,120,166,243, 9,235,179,200,241,249, 6, 43, 4, - 82, 10,172,214,232,145,196,102, 20,156,167, 8, 93,196, 26, 49, 58, 81, 69,158, 96,165,252,181, 14, 41, 63,156,140,217, 38,231, - 70, 12,171,243,158,228, 60,214, 5,116, 4, 55, 4,206, 7, 71, 59, 12, 52,222,161, 60,164,152,144, 66, 48, 51,134, 43,202,178, -131,228,221, 71, 11, 58, 61,126,177, 87, 62, 63, 0,140,184, 89,178,109,109, 29, 97, 42, 97,237,225,173, 13,113, 94,160, 42,147, -117, 1, 41, 49, 51, 5, 91, 85, 69, 93, 20,244,193,113,114,182,121,150,213,227, 55, 3,194, 69,156, 82, 76,230,142, 9, 16,189, -199, 24, 73, 89, 25,166,157,165, 25, 34,102, 42,232, 6,139, 76,150, 98, 54,231,149,121,193,107,179,138, 74, 8, 66,231,104, 87, - 93, 78,206,219,177,120, 13,117,173,153, 76,118,152, 78, 45,190,141, 52,205,128,144,112,125,215,240, 66, 50, 28, 92, 41,120,184, -242,156,135,192,233,178,163,233, 60,199, 77,192, 27,197,193,139, 7,108, 29, 84, 76,182, 11,234,144, 16,189,167, 43, 4,147,173, - 57,202, 57,190,119,188,230,233,131, 37,171,147,150,183,255,213,191,227,149,255,238,191,230,255,248,247,111, 33,222, 62,231,103, -127,233, 85, 84, 44, 16, 86, 19, 67,194, 68,216,171, 53,191,254,197,107,124,245, 91, 15, 56,108,175, 80, 46,159, 98, 30, 46,240, -181,229,112,174, 49, 30,150,201, 80, 94, 55, 12,141,101,253,228, 41,191,246,153, 79,241,185,219,135,252,179,255,251, 27,188,247, -206,219,156,223,250, 60,101, 45, 57,223,222,102, 90,109, 35,119,182,153,204, 10,202,105,129, 34,209,172, 91,180,154, 50, 44, 55, - 40, 25,217, 18,134,210, 13, 24, 63, 32,137, 12,174,227, 85,237,249,131,183, 63,228,211,119, 63,160,252,212,171, 44,119, 95,226, -203, 74, 48,173, 44, 95,188,249, 50,230,250,117, 86,237, 57,243, 79,238,242,213,179,142,191,183, 83,241,241,149, 25, 31, 60,109, -145, 74,225,106,203,191, 57,107,152,118,138,175,236, 40,174, 85, 91, 68,173, 80,205,154, 45, 37, 57,142,153, 51,145, 98, 78, 72, - 91,106,197,111,156,159, 49, 77,176, 56, 89,193,217, 57,162,235, 72,234, 71,156,105,126,212,164, 92, 68,178,186, 17,190, 97,117, -190,160,180,253, 95,109, 4,254, 67,111,234, 23, 66,186, 8,187,159,189,195,233, 71, 79,152,138,192, 68,107,174,238, 90, 94,153, -205, 56,170,103, 36,169, 56,242, 1,193, 57, 83, 34,131, 79,108, 27,201,204, 42, 84,138, 36, 37,217, 83, 10, 29, 2,186, 40, 8, - 17,246,148, 39,186,129,151,132,200, 35,114,215, 51,137,130,210,123,102,182,196, 4, 79,169, 20, 69, 89, 99, 38,134, 48, 68,154, -245,130,217,100,135,232, 61,125,223,208,108,214,180, 93,203, 98,211,242,198,224,121,176,110,120,228, 60,167, 90,243,205,174, 99, -224,255,103,237, 77, 98, 36, 77,243,243,190,223,187,126, 91, 44,153,145, 75, 85, 86, 85,215,210, 93,221, 51, 61,156,157, 67, 14, - 57, 36, 37, 82,150,185,192, 48, 33, 27,180, 1, 95,228,131, 47, 6,124, 48, 4, 24,240, 73,128,225,139, 1,195,128,125,240,193, - 7,249, 98, 2,186,200, 2, 40,203, 20, 32,153,139, 8, 82,148, 72,145, 34,197,153, 86,207,116,207,244, 82,221, 85,213,149,149, -107,100,196,183,189,155, 15,239,151, 85, 77,114,108,211, 26,246,169,208,221,200,202,140,140,248,254,219,243,252,158,200,199, 62, - 48,196,145,170,148, 19,188,230, 83,181, 23, 72, 83,190,247,167,145, 17, 9, 16,222, 79,209,203, 58, 11,124, 39,253,128,144,110, - 0, 0, 32, 0, 73, 68, 65, 84,198, 12,169,203, 53, 35, 76, 27, 99, 83, 78, 19, 85,200, 53, 67, 76,153, 24,184,108,243, 27, 2, -148,146, 48,122,190, 73,207,144, 4, 95, 89,104,230, 82, 51, 18,104,148,161, 11,129, 30, 48, 74,115, 21, 34,131, 86, 28, 6, 8, - 41,178, 22,138,129,172,157, 17, 74, 17, 98,204,104,221,232,166,237,114,145, 79,198,170,129,137,204,183,150,138,215,141, 97, 68, -177, 86,154,195, 8, 87, 90,114,144, 4, 79,148,224,142,153,115, 25, 70,222, 46,231,220,102,195, 99, 96, 29, 34, 42,118,220,212, - 37,224,121,214,109,184,103, 11,210,152,104, 19,132, 16, 72, 65, 48, 34,145, 24,158,143, 25, 16,148,195,185, 66,174, 35, 74,102, -235, 85, 93,101,149,187, 45, 50,187,228,250,197, 45,203, 23, 37,235, 7, 11,116,169,203, 23,201, 49,111,254,212, 15, 99,181,226, -226,248, 98,162,209, 77, 44,243,248,169,172,206, 76,230,200, 19,108, 59,100,161,211,124, 6, 77,141, 44,116, 86, 92,247, 35, 92, -173,243,215,190, 78,114, 19, 47,211,192,230, 70, 49,196, 12,239,111,167, 80,148,150, 72,231, 35, 1, 88, 15,158, 83,239,115,122, -155,204,211,101, 10, 57, 95, 55,143,149, 83, 41,157,160, 30, 82,234,140, 1,148,153, 73,110,148, 96, 27, 34,123, 74, 50,151,154, -109,244,236, 72,137,146,240,201,198,211,163,208, 18,206,131, 32, 34,169,180, 98,136,226,101,247, 45, 39, 50, 73,152,168,120, 46, -163, 20,215,253,200,253,166,102,183, 40,232, 17, 84, 66,162,148,164,139,137,218, 24, 98,140, 12,193, 83,105,203,214,141,212,133, -162,241,142,135,210, 32,146,224, 10,201,171, 74,177,171, 37, 94, 8, 62, 95, 20,124, 36, 5, 97, 24,115, 55,231,166,224, 23, 89, -230,155, 57, 62,223,133,220,148,171,172,124,166, 84,185,248,194,250,246,214,219,223,230,151,126,233,231,216,180, 46,131, 85,124, - 98,216, 14, 92,182, 3,149, 45,121,248,218, 13,118,155,130,222, 7, 8, 57,101,205, 76, 64, 35, 73,162, 31, 60, 91, 23,104, 93, -194, 74,137, 53,249, 53, 12, 36, 98, 72,140, 33, 48,186, 56, 61, 88, 50, 39,158, 20,233,221, 52,149,247,158,147,118,228,162,115, -180, 62,131,102, 46,199,108, 99, 25,198,158,232, 3,115,101, 89, 52,101, 22,211,125,243, 99, 94,187, 10,236,123,193,221, 91, 5, -143,174,223, 27,149,124,153,206, 86,146,207, 58, 33,193,131, 18,154,252,250,213,141,226, 70, 83, 48, 43, 11, 14,235, 57,165, 54, - 40,107,176,214, 18,133,192,143,142, 97,219,211,110, 91,132, 53,212,149, 69, 10,232, 6,199,229,118, 96, 24, 29,163,243, 68,159, -208, 66, 82,207, 53,133,209, 84,139,146,215, 15,231, 28, 29, 52, 44, 22, 21, 85,109,176, 69,206, 92, 55,141,102,119,111,134, 20, -145, 79,158,108, 88, 46, 74,234,218, 80, 87, 6, 99, 21,139, 66,113,179, 80,236, 91,195,172,210,232,198,176,179, 44,217,158,245, -180,219,158,110,219,161, 43,205,108,183,192, 26,137,114,129,184,245, 96, 37,221,186,227,234,209, 25,103,127,248, 61,254,232,111, -255, 35,174,126,243,219,168,143, 71,222,252,143,191,204,235, 95,125,192, 31,254,218,111,240,214, 63,120,155,215,191,112,151, 54, - 70, 46, 98,160,182,130,170,176, 88,173,208, 11,195,229, 7, 29, 95,118,138, 97,188,162,171, 74,116,109,249,162, 27, 24,147, 32, -218, 2,105, 45, 97,127,151, 79,198,145, 95,253, 59,255, 59,199,127,237,231, 40, 94,249, 12,183,239, 29,177, 58,184,193,108,181, -135,106, 26,154,101,197,172,177,212, 86,103,122,160,247,232,209, 81, 14,158, 57, 30,237, 28,115,109, 56, 48, 5, 59,163,103,214, -181,236,246, 35,111,218,130,207, 55,115,142, 46, 79,249,209,122,198, 23,234, 25,111, 44, 86,188,214, 44, 89, 21, 13, 69,217,112, - 65,100,102, 5,172,118,216,111,102,220, 61,216,229,196, 40,130,206,205,126,144,154, 31,155,207,168, 4,120,239,113, 49,208, 59, -199,199,235,109, 14, 91, 57,187,130,203, 22,113,118, 65, 26, 60,195,101,159,183, 59, 50,175,156,196, 4,208,249,127, 12,171,178, - 19, 58,187, 48, 25, 82,163, 77,126,182,125, 90, 36,252,255,245,143,148, 47, 79,145,159, 38,226,148, 22, 10, 75,119,182,201,124, -245, 36, 56,216,169,120, 56,111,184,211,204,153, 43,141, 85,134, 72, 98,207,150, 92, 5,207,188,208, 52, 82, 82, 40,195,162,108, -168, 35,236, 38, 65,153, 28,209, 71,124, 20, 84,202,176, 40,106,106, 99,153,233,130,133, 20,212, 50, 79,150,141,176,148,202, 80, -151,115, 36, 54,171,250, 83,162,158,175,168,202, 57,133, 45, 41,164,160,180,150, 89, 89,178,154,213,220, 60,216,227,230,193, 46, -183,247,151, 28,220, 62,228,232,112,193,155,183,110,114,127, 94,242,198,254, 42,111,193,148,102, 43, 18,201, 65,210, 50, 39,103, -126,159,130,254,231,252,252,113, 90,183,199,148, 7,174,235,201, 61,168,140,201, 86,102,154,162,205,203,215,109,130,200,160, 12, -226,186, 41, 51,121, 53, 30,147,160, 52,138, 66, 41,198, 24,137, 19,235,100,155, 34, 66,107,198, 16, 49, 69,197,133,243, 28,218, - 2,132,164, 81,138,185,178,108,100,230,151,100,198,135,153,232,158,229, 11,160, 87,146,138,207, 21, 13, 91,169,179,218, 62, 9, -180, 86,236, 34,121, 79,192,171,218,210, 11, 65, 43, 20, 23,227,128,156,182,202, 3,144,148,101, 37, 37,167,126,228, 94, 81,225, -124,160, 52, 5, 78,106,182, 33,226,141, 70, 26, 67,151, 96,144, 18, 79, 34, 12,110,154,250, 38, 79,122, 97,242,107,164,174,183, -216,230,229, 16,169, 36, 86, 10,130,209, 63, 96, 81,151, 19,143, 56,193,201,199,207,184,248,222,211, 9,101, 39,255,244, 77, 74, -234,151,197, 93,201,172, 50,245,125, 22,169, 44, 22,160, 4,105,116,176,238, 50, 37, 39,201, 9,123, 23,114,135, 44, 21,140,158, -202, 74,132,130,185,214,180,206,103,228,235,208, 35, 83,190,131,131,228,233,118,224,108, 66,143, 18, 32,133,144,115,192,211,244, -166, 49,246,133,170, 92, 10, 73,175,114, 13,168,117, 66, 41, 77,129,100, 87,103, 2,207,214, 7,110,106,195,165,119, 92,186,200, - 43,165,224, 59,237,200, 16, 37,141,200, 69,189, 83,137,116,253,206, 82,217, 7,253,162,129,241,147,234,220,121, 80,130, 82,102, - 20,226, 43,205, 12,161, 20, 34, 6, 42,109,112, 49, 32, 17,184, 24,241,126,164, 52,154, 98, 28, 89, 37,193, 54, 38,110, 21,154, - 93, 45,105, 99, 98, 68,114, 71, 75, 78, 82, 96, 12,129,171,160,178, 40,143,240, 50, 16,199, 95,175,228,253,203, 53,141, 79,121, - 69, 86,218, 23,144,130, 95,248,247,127,129,187,175, 30,177, 94,119,180,219, 22, 55,142,140, 19,225,109,103,177, 64, 72,197,106, - 86, 49,159, 23, 64,166,227, 73, 33, 24, 66,162, 31, 61, 67,240, 88, 18,221,144, 3, 92,140,150, 36, 9, 33, 10, 66,140,196,152, -178, 47, 61, 68, 34,249,207, 17,129,144, 80,164,108,183,233,187,145,181, 11,108, 83,196, 13,142, 34,230,200,213, 49,100,238,128, - 78,153,141,220, 1,191,246,214, 35, 68, 23, 41, 37,136, 33,113, 62, 70,190,114,183,225, 39,238,204,248,185,210,240, 83,175,214, -188,118, 88,210, 61,172,216,155, 75, 78,199, 8,165, 64, 42,197,172, 52,212, 70, 50,183,150,253,197, 46, 50, 66, 81, 87,216,178, - 64, 11, 73,236,115,116,106,136,129,166,170, 88,148, 6, 23, 2, 39,235,142,227,179, 13,237,101, 71,215, 13,120,159, 83,241, 12, - 18,165, 65, 25,133,109, 10,230,149,193,216,220, 56, 6, 35, 73,149, 70,107, 56,220,105,176,133,102,177, 83, 83,149,134, 40, 21, - 74,201, 28,202,151, 18,133,139,148, 61, 36, 33, 24,172, 64, 43,201,106,127,198,114, 89,226,189, 39, 8,193,191,250,149,223,229, -189,111, 62,226,198, 98,135,245, 39,151,124,247, 15,255,132,239,254,238,159,240,123,255,203, 31,243,248,183, 62,200,233,119, 40, - 36, 1, 22,145, 31,254,233, 31,226,222,143,127,158, 94, 25,126,235,215,255, 25, 7,183,143,184,212,138,221, 90, 83,219,108, 13, -221,169, 44, 39,251, 13,247, 14,231,204,223, 63, 99, 45, 34,135,165,102, 39, 68, 46,158, 93,177, 45, 11,234, 89, 65,219,123,214, -169,192,124,229,171,148, 70,177,218,171,152,151, 6,163, 20,218,228,207,122,109,196,139, 39,182,117,158,114, 24,144,219,145,153, -246, 28, 10,201, 13, 93,240,197,162,226,168, 42,121, 80, 46,184,191,115,131, 7,119, 30,242,224,246,125,142,118,110,113,115,182, -207,222,114,159,157,131, 61,234,162,166,218,205, 81,153, 85, 80,244, 30,134,228,152, 23, 5, 55,155, 37,141, 49,236, 23,146,247, - 7, 15, 72, 66,138, 52,140, 28, 25,195,156,196,243, 97,195, 63, 60, 59, 39, 73,248,194,162,164, 22,158,139,147,233,110,238, 70, - 16, 2, 33,114, 40, 19, 58,175, 43,179,216, 52,252,121, 32,135, 41,243,218,211, 76,159,111, 61,177, 33,162,255,139, 23,245, 79, -107,139, 94,168,233,203,188, 54, 45,154, 12,194, 41,243,234,118,183, 48,220,168, 13, 71,166,100, 89, 20,204, 76,137, 4,106,165, - 8,164,156, 82,153, 50,169,177,138, 17,225, 6,172,243, 84,222, 81, 41,203, 24, 35, 85, 81, 33,133,164, 48, 10, 37, 36, 18, 65, - 74,130, 74,107,164, 0,107, 42,170,229, 14, 66, 90,116,105,145,218, 98,154, 6,101, 76,230,195,199,136, 20, 57,153, 82, 41, 77, - 89, 55,104,101, 41,139,146,217,124,151,133,169,185,189, 60, 96,175,106,216,173, 27,238,204,230,216,194,240,112,103, 65,242,129, - 79, 4,164,249, 33,209,119,153,143, 30, 35,233,251, 20,116,241,233,194,206,167,132,188,215,156, 20,117,189,158,143, 47, 99, 70, -175, 29, 60, 90,252,169,190, 64, 76, 95,188,117, 17,167, 37, 46, 38, 26,153,208, 90, 35,164,230,156,140,204,141, 49, 23, 79, 23, - 35,117, 89,210, 37,197, 40, 36, 27, 20,133,212,204,164, 96, 43,212,196, 9, 17,211, 10,126, 66,112,203,130, 59,182,224,105,130, - 91, 90, 83,107,197, 59, 18,238,170,130,103, 4,142,164,224,189, 16, 88, 41, 77,157, 18,167,198,114, 11,120,230, 51,151, 69, 24, -201,101,146,252, 84, 85,225,130,231,245, 89,195,190,150, 84, 86,243,165,217,140,189,186,225, 94, 97,121, 88,215,156,166,200, 37, -146,116,157,228, 70,200, 53, 48, 94,231,128,144,201,173,215,129, 95,218, 66,146, 36,242,249,246, 7, 43,234, 33,228, 78, 75, 76, -119,246, 52, 37,241,148, 38,119,184, 97,202, 85, 15, 33, 23,255,235,187,210, 56, 78,111,244,204,114,167, 29,178,186,187, 31,243, -135, 69, 77, 10, 63,171, 94, 78,235,165, 69, 68, 88,104, 77, 39, 97, 97, 45,235,209, 49, 51,154,110, 74, 20,218, 6,143,210,138, -139,126,186,133,167,188, 14, 15, 62, 76,112, 28,253, 18,126, 35, 68, 22,124, 69, 8, 99,164,148,217,163,222,135, 64, 35, 5,109, -140, 40,160, 19, 76,111,116,193, 71,193,115,168, 36, 39, 67, 96,144, 2, 23,179, 55, 49, 75,193, 95, 6,138, 76,161,228, 83,145, -141, 47,188,168,103,189,231, 51,203, 25,125,138, 84, 74,224,147,160, 16, 80, 75,141,115,142, 82,105,180,204,162,182,165, 82, 24, - 50,145, 46, 41,145,255, 10, 37,153,135,196, 25,130, 61,173,168,148,230, 56, 74,156,152,254,174,126,200,239,114,165,114,160,139, -148, 89,128,120,189,194,113,126,210, 61,100,229,100, 88,204,248,202, 23, 31, 50,244,158,174,115, 4,231,240, 19,250, 85,164,196, -195,215,142,152,213, 5, 59,179, 34,115,117, 2, 72, 45, 9, 33,178, 25, 29,151, 87,158,110, 12,164,152,111, 65,102,250, 62, 37, -146, 20, 18,129,196,232, 34, 99,200,104, 74,145, 34, 86, 64,149, 50, 38, 22, 31,216,142,158,245, 24, 24, 59,135,115,142, 2,120, -238, 60,235, 20, 72,222,209,199,192,108, 49,231, 81,187,229,215,255,201, 7, 60,146,129,247,206, 28, 31, 92, 57,134, 51,207,199, -207, 29, 31, 94,246, 28, 24,184,245,165, 59,252,200,195,215, 41,142, 14,184,163, 3, 63, 84, 43,126, 98, 94,177, 42, 18,181, 16, -164, 4,203,210,114,179,217,161,158,205, 40, 22, 53, 86,233,204,100,146,249,119, 22, 2, 44,230, 53,135,179, 18, 66,224,252,116, -195,241,211, 51,182,235, 43,252, 48,226,188, 35, 57,143, 74,137,224, 61,206,193, 48, 38, 98,161,137, 74,210, 43, 65, 42, 13,205, -178, 64,156,111, 40,254,245, 19,222,189, 88,227, 17, 72,151, 72,218, 80,104,157, 5,133, 36,132,139,200, 36,136,133,202, 41,130, -217, 9,136,213,138,157,155,115,102,251, 53, 95,254,201,207,241,141, 47,191,198,215,239, 46,217,185,183,199, 87,190,244, 6,255, -252, 95,109,217, 14, 11,228,113, 64,208, 79, 69, 29, 22,111,214,232,162,228,225,205, 5, 95,255,252, 17, 15,126,244,179, 60,223, -175,216, 43, 53,149, 75, 84, 74,162,173, 70, 22,146, 7,187, 37,197, 97, 69, 58,168, 89,188,187,229,234,124,160,235, 70,254,232, -120,160,154, 43,124,136,140,235, 17, 51, 4,118, 18,148,203, 18,229, 19,138, 68, 97, 36,113, 59,146,188, 71, 38,137,116, 1,209, -142,212,253, 72,108,183,104, 34,183,133,230,205,178,225, 70, 89,112,179,110, 88,205,102,212,203, 5,229,206, 28, 93, 26,172,178, - 24, 4,182, 44, 49,179, 10,213,212,232,202,162,171, 2, 85, 20, 88,107, 88,120,205,111, 15,129,207, 53, 13,101,213, 80,107,139, - 72,145, 66,120,158, 62,187, 36,125,112,204, 7,255,215,247,216,185,111, 24,199,150,199, 23, 23,188,211,122,126,246, 96,151, 47, -238, 30,242,234,206,146, 15, 82,160,221,110, 50,222,118,162, 41, 10, 49,185, 69,234, 10,154,102,138, 48,253,148, 86,136, 41, 2, -238,122, 82, 20,249, 62,154,113,157, 67,254, 44,253, 69, 7,159,235, 33, 71, 22, 57,113,171,106, 96, 94,231, 7,180,214, 44,172, - 98,169, 36,123, 11,131, 1, 30, 86, 53,145,108,169, 45,165, 32,166, 56,125,174, 96,244,217,109,161,200,216,106, 43, 4,115,105, -176, 73, 98,173, 38,133,152, 83, 19,125,100,219,181,108,251, 43, 68,116, 8, 4, 82, 40,164,136, 24, 85, 32, 85, 66, 8,131, 42, - 12, 56,151, 49,206, 82,230,144, 24,231, 16, 90,163,109,129, 68, 99,108,133,178, 21,214, 52,216,170, 65,106,141, 45, 42,138,162, - 38, 42,195, 65, 61,103, 67, 98, 89, 21,124,243,108, 64,223,219,197,159,158,229,154,108, 20,233, 26, 64, 38,167, 9, 94,235,191, - 24,126,220,232, 28,212, 99,228,196, 43,153,238,235, 98,138,245,142,113, 18,253,102, 56, 24, 70,210, 38,184, 97, 45,181, 53, 12, - 82,146, 84, 14,185, 84,202, 18,100,110, 70,163, 84,196, 32,152, 87,150,109, 18, 84, 74, 19,164,160, 81, 6, 33, 5,133,146,116, -241, 90,155, 52, 21,118,165,153, 11,197,171, 69,197, 73,204,191,155,165,178,108, 17,116, 40, 66,146,220,144,138, 36,178, 88,120, - 30, 35, 31, 2,165, 41, 9,228, 96, 46,165, 21, 59, 82,114,171, 50,220,211, 37, 91, 4, 51,105,216, 74,197, 74,149, 12, 74, 83, - 40,205,205,178,102, 16,130,211, 48,109, 42, 70,247, 82,139,161,204, 20,179, 42, 94,164,222,161, 45, 74, 25,146, 82, 4, 85,254, - 37,228,169, 95,175, 76,174,253,155, 77, 61, 21,177,235, 28,239, 79,197,203,169,201,203,221,141, 89, 24, 81,152,233,126, 49, 21, -160, 41, 44, 5,145,253,206, 47, 86, 11, 50,175,151,157, 53,204,180,230,187,155, 45,243, 66,179, 52,134, 53,153, 94,212,198, 64, - 7,116, 78,112, 17, 2, 98, 12,153,169,155, 34, 47,118, 52, 98,250, 30,194,212,125, 43, 5, 62, 32, 75,205,166, 31,153,149,138, -218, 26,146,247, 44, 11,203,214,123,218,224, 9,192, 54, 38,138,152, 56, 13,137,237, 48, 78, 65, 41,215, 30,252, 63,251, 65,158, - 86, 38, 76, 63,127,120,201,163,126, 60, 70,110, 53, 22, 71, 98, 71, 74,118, 76,193,102,220, 98,180,129, 48, 16,164,193, 6, 79, - 99,114, 51, 82, 41, 73, 36,161,149, 68, 75,197, 73, 74,236, 33,121, 26, 3, 43,109,176,181,228,233,224,167,201,156, 60,141, 79, - 62,234, 23, 98, 69,145,166,135,213, 84,153,125,142,171,187,120,118,204, 87,127,236,135,113, 99, 94,135,199, 4, 33, 36, 54, 93, -143,235, 3,139,221, 37,187,243, 38, 39, 1, 78,248,211,124, 51,207, 2,184,182,243,116,131,207, 73,142, 49,162, 84,142, 61, 84, -211, 41, 98,188,158,210, 67,164,154, 4, 40,253,132,142, 44, 82, 78,243, 75,131,231,162, 27,113,221, 64,233, 61,142,200,198, 59, -182,126,200, 27, 38, 91,112,120,231, 38,207,187,150, 63,126,247,241,116,190, 73, 83,124,108,130, 70, 48,158,120,254,205, 89,207, - 31,111,174, 8,203, 72, 89, 85,188,243,241, 83,202,229,140,163, 89,195,254,238, 62, 7,209,115, 11,248, 92,221,176, 55, 91, 98, -171, 26, 91, 26,202,194, 98, 11,149,213,185, 8,162, 15,220,152, 87, 28, 46, 75, 84, 72,156,157,181,156, 95,158,211,119, 67, 78, -132,242, 25, 23,156, 98, 32,198,252,190, 12, 41,226,198,196, 0,244, 72, 22,115,203,124,102,184, 58,121,206, 91, 31,124,196,163, - 16, 56,187,234,185,120,118,198,187,223, 62, 97,126, 50,240,222,224,217, 45, 53, 58,129, 83,137,160, 97,227, 3, 94,100, 11, 91, - 2,124, 18,140, 82, 49,147,146,135,115,195,106, 89,179,191,204,119,208,159,255,107,175,243, 31,253,228, 3,126,242,139,183, 88, -251,199, 60,126,255, 2,137,227,175,252,215, 63,199,143,191,114,192, 50,228,237, 87,153,224,187, 23, 29,231,143, 79, 57, 18,154, -198, 72, 76,109, 16, 38, 71, 69, 26,165,184,122,187, 69,188,239, 49, 79, 7,206, 79, 47,232,195, 5,118, 54, 67, 95,110,177,155, -150,230,170,231, 48, 36,106,163,120,181,150,124,205, 74, 62,155, 34,175,199,192, 43, 41,242,211,179,146,215,140,224,118, 33,185, -242, 3,201,195,129,210,220, 87,134, 90,231,237,200,162,154, 97,234, 18, 89, 24, 68, 93, 34,173, 65, 40,137, 72, 18, 33,115,244, -174,104, 42,196,162, 0,171,145, 90, 33,149, 68, 43,197,225,178,225,212, 5,222,108,106,246,139,138, 91,166,228, 63,251,247,126, -140,159, 53, 21,127,239,234,156,120, 88,243,157,147,142, 63,252,232,146,119,158,174, 73,223, 59,231, 27,111,222,229, 70, 85,211, -166,200, 31, 5,199,152, 52,244, 30, 49,246,249, 4,165, 64, 20, 5,114, 81,243,250,174,197, 91,155,197,174, 62,188, 12, 18,145, - 50,175,129,175,201,142,110,204,214, 55,247,255, 67, 48,167,116,142, 41,109,106,216,153,229,130, 94,217,188, 58, 45, 21, 43,171, - 40,132,228,103, 87, 21,135, 2, 94, 45, 11,130,148,200, 24, 41,164,198,165,152,131, 26, 73,196,224,185,232,182,180, 33,144, 82, - 30, 52,124, 10,104, 18, 82,105, 84,136,156, 15, 3, 2,193,218,245,140, 33,112, 25, 70, 92,138, 68,239,208, 74, 99,141, 37,165, -136,110, 26, 68,200, 14, 22, 97, 44, 20, 10,161, 20,201, 59,132,202, 9,139, 66, 8,164, 84,153, 68,109, 43, 32, 33,172, 70, 74, - 69, 82,154,164, 20, 90, 25,182, 8, 74, 83,208,138,200,157, 18,196,122,203,113, 31,241,101, 69,242,144, 76, 65,180, 53, 41,138, -108,115,150, 6,172, 68, 76, 91,222, 63, 79,233,211, 47,239,200,105, 42,224, 70,189,200,137,167,152, 10,237, 20, 20, 99,203,146, -160, 21, 86,106,154,210, 18,165, 66, 75, 67,105, 52, 87, 99,162, 49,134, 36,179,184, 13, 4,115,109,137,133, 69, 36,155,183, 33, - 74, 81, 73, 75, 75,160, 81,146,203,148,240,198,144,194,116,198,156,148, 79,181, 50, 84, 41,112, 46, 4,149, 54, 52, 34,242, 84, - 40,246,101, 22,167, 5, 96, 76, 2, 39, 37, 59, 82,242, 28, 8, 41, 32,148, 69, 16,105, 80,220, 22,154, 55,230, 11, 62,244, 35, - 75, 85,176,197,177,178, 11, 62,113, 61,171,114,198, 58, 65, 79, 98, 71, 75,122,105, 88, 71,159, 27,153,110,152, 26,163,105,237, - 46, 5, 66, 23, 40,109, 40,180,196,203, 44,162,147, 50,253, 37, 8,229,174,189,155,117, 57, 69,135,166, 79,201,237,139, 23,222, -194,151,164, 32,145,249,239,238,218,214, 96,115, 81, 15,254,165,216, 44, 77,121,226,253,244,239,146,135, 82,179,144,130,211,126, -224,235,111,126,142,243, 71,143,248, 36, 37,106, 43, 57,117,217, 50,225,250,200,243,216,177, 91, 20,156,140, 46, 79,174, 74,229, - 78, 79,126,106,101, 99,213,203,239,187, 80, 68, 23, 40, 76, 14,162,217,211,129,193, 90,206,219,204, 11, 54, 90,178, 29, 61,117, -130, 51, 36, 55,172,224,217,116,147,207, 96, 23,253, 41,110,190,250, 62,183,180,235,117,146,134,232, 9,253,192, 31,159,110,248, -252,193, 18,105, 52, 79,182,107,246,170, 26,215,247,152,162, 98, 24,174, 16,186,196,122, 15,182,164,247, 89,201, 95,105,141,247, - 57,208,224,116,116,220, 16,154, 45, 9,147,200, 97, 20, 35, 80, 68, 24, 38,223,250,181, 53,240,251, 61,127, 12,153,206, 4, 88, - 43, 1,205,213, 69, 32, 78, 83,202,188, 44,233, 59, 79,112,129, 16, 67, 6,172,132, 72,165, 37,227,224, 81, 50,177, 29, 60,155, -193,177,222, 58,116, 27,217, 93, 20,212, 70,226, 67,194,170,156, 84, 38,175, 51,129, 72,116, 41, 7,168, 68,160, 21,130,128,160, -209, 57, 77,105,150, 96, 45, 4, 43,165, 24,130,100, 85, 20,108,250, 54,247,129, 68,202,202,226,214, 87,217,214,135, 7, 27,225, -142,205, 10,119, 18, 44, 53, 92,193,229,123, 29,191,117,252, 1,247,127,102,203, 7, 62,112,218,119, 28, 23,138, 55, 23, 59, 12, - 85,195,221,221, 5,183,186, 17, 37, 20,167, 68, 68,128, 69,109, 49, 70,177,141,145,203,148,137,178,115, 33,144, 33,209,141, 30, - 70,135,244, 9, 27, 34, 82, 41,164, 16, 83,202, 85, 66,248, 97,202,156,246,244,222,177,137, 3,108,103, 92,218,132,208, 13,255, -242, 60, 17, 67,164, 54, 6, 33,225,160, 40,217, 21, 35, 95, 60,118,252,195, 63,254, 61,126, 39, 58,110,127,253,135,152,223,152, - 99,154,130,164, 53,203,202,210, 21, 5, 99, 74, 68,173, 9, 62,243,248, 69, 20,164,144, 25, 28,131,212,148, 18,202,251, 13,175, -222,126,149,255,230,103,255,115,206,223, 57,230,119,199,192,177, 10,108,149, 68,196,136, 1,194, 24, 56,253,149,223,231, 79,254, -231,223,231,183, 80,252,213,255,224, 62,191,248, 95,252, 13,230,159, 57,152,214,152,130,219, 63,126, 3,126,244, 16, 98,228,205, -206,227,207,122,190,245,127,188,197,193,189, 67,218,222, 79, 28, 1,137,117, 26, 61, 72, 74, 41, 40,102, 51, 68, 61, 67, 76,228, -200,250,170, 67, 94,108,185, 85,150, 60, 25, 19,115, 37,169,181,162, 68, 48,223,153,163,119,102,136,114,194, 23,199, 4,163,200, - 19, 72, 57,137, 52,108, 49,173, 58, 65, 76, 42,100, 17, 37,210, 40, 30,116,154,187,171,125, 60, 9, 71,194,141,240,247,255,241, - 31,240,175,135, 62, 7,144, 72,133, 44, 21,194, 42, 36, 37,241, 48,241,203,223,250, 46,255,195,143,126,134,181, 54,108, 66,132, -189, 5,194, 42,210, 39, 37,162,189, 36,181, 27,192, 19,235,130,103,193,114, 41, 4,204, 42, 4,146,212, 78, 32,154, 97,132,226, -122, 16,136,223,159, 16,247,255,182,118,215, 21,203,195, 57, 93,146,220,222,169,137, 72, 78, 17,108, 66, 70, 98, 43,153, 27,183, -175, 47, 53, 7,149, 97,134,193, 5,120,220,118,148,117, 69, 55,108,153,219, 18, 43, 2,155,161,231,180,109,249,216, 15,156,219, -134,187,141,100,140, 30,145, 52, 79, 66,207,118, 27, 16, 66,178, 50, 37,207,198, 30, 69, 68, 4,143, 8, 3, 39,192,205,114,134, -211,185,161,211,245, 44,247,245,171, 26,233, 2, 30,137,138,145,224, 71,164, 85, 48, 90, 82,202, 91, 9,193, 20,196,148, 34,178, -172, 72, 49, 98,154,138, 24,242, 48, 23,181, 99, 87, 72, 68, 81,177, 34,178,213,138,163,242,140, 47,204, 12,143, 29,156, 13, 35, - 66,106, 46,124, 96,140,224,194, 4,240,217, 76, 1, 60,166, 32, 13, 49,115, 78, 94, 12,138, 38, 59,163, 82,132,178,196, 54, 5, -152,130,170,202,110, 33,172,166, 2,182,218, 80,106,141,139,158, 3,157, 73, 17, 86, 91, 74,107,115, 70,133, 82,172,180, 70,107, - 3, 8, 10, 41,144, 82, 19,133,162, 34,114, 28, 18, 21,137, 82,229,230, 98, 95, 23, 92, 12, 14, 77, 68,135, 64, 48, 10,229, 50, -113,242,129,214, 60,119, 35,162, 44,152, 69,176, 9,190, 23, 35,175,105,120, 39, 38,142,164,164, 6,158,197,200,109,224, 17,208, - 76,224, 27,162, 71, 34,248, 90, 93,114,219,104,206,188,227, 78, 81,115,236, 28, 11,179,195, 24, 71,110,207, 86, 92, 12, 27,118, -140, 69,104, 67, 43,224, 78,225,185,223,236,115,188,217, 82,204, 12,111, 61,223, 18,165, 70, 12, 46, 71,217, 18, 40,129, 82, 40, - 14,136,160, 18,131,212,127, 9,147,250,167,163, 12,109,153, 63, 0,122,234,180,124,152,248,180, 83, 60,166,184, 78, 12,155, 80, -176,106,154, 28,211,100,123, 99,154, 52,167,238, 48,139,240,166,197,147, 15,168,210, 50, 83,138,211,205, 26,173, 52, 94, 73,188, - 80, 92, 37, 40,147,162,149,176,246,145,171, 97,164, 16, 34,231, 18, 95,159,203,164,192, 22,138, 48, 38, 48, 10, 37,196, 11,135, - 4, 70, 17,134,145,206, 37,118,172,164, 78, 57,181,205,167, 72,244,121,157,213, 35,152,201,200, 73,159, 88,143, 97,106, 24,228, -203,117,126,186, 78, 81,147, 47, 15, 72, 82, 76,234, 73, 61, 53, 0,185, 38,141,201, 51, 55,146, 89,105,114, 67, 33,166,147,247, -208, 83, 26, 75,240,142, 78, 8,230, 72,198, 24,209, 54,195,254, 21,146, 32, 52, 90, 66, 23, 35,143, 99, 64, 10,205, 19, 38, 11, - 70, 63,117,117,147,157,231,229, 42,241,207,110, 87, 66,214, 22,148,134, 31,255, 43, 63, 65,140,208, 94,181,116,109, 75,187,237, - 40,138,130,161, 31, 80,210,178,183,191,195,173,221,134,224, 35,150,140, 56,236, 92,164, 29, 3, 97,140, 92,181,142,209, 7, 54, -206, 83,151, 58,135,183,136, 44,164,243, 41,209,133,124, 23, 43,132, 96, 12,137, 33,229, 48, 28,231, 35, 54, 69,108,231, 24,122, - 71, 57, 56, 86, 81, 32, 37, 84, 64,116,129, 24, 50,242,240,193,141, 67,222,251,224, 17,239,157, 92,241,122, 23,121,254, 73,128, -117,128,165,130,199, 14,250,200, 44,129, 38,113,184, 48,216, 16,168, 14, 42,214,231,125,158,104, 54,103,180,209,241,165, 47,125, -137, 27,111,188,194,182, 48, 92,110, 91,170, 4,203,101,195,124, 86, 80, 89,195,210, 40,118,203,130,189,121,137,150,146,161,115, -116,151, 45,169,235, 41, 68,182,134, 25,157,225, 14,122, 90, 20,232,148,208, 50, 82,132,132, 30, 28,202, 57, 70,239,105,235,154, -205,108, 70, 82, 21,171, 24,216,155, 27, 78,188, 64, 12, 61,103,238,138,127,122,118,142, 25,215,188,251,157, 15,233,223,126, 76, -251, 27,223,228,157,247, 79,248,253,223,121,143,187, 23,145,117,109,184, 24, 29, 73, 75,180,149,248, 49,135,197, 92, 33,216, 2, - 49,102,151,136,239, 28, 91,153,120, 63, 37,250, 82, 19, 77,129,145, 26,143, 96,140,129,113, 12,188,242,230, 29,254,229,123,239, - 99, 30,141, 60,250,246, 57,255,244,127,251, 67,126,225,111,254, 8, 98,178,194,166, 33,226,175, 6, 82, 76, 25, 7, 92, 26,110, -125,227, 30,205,221, 29,246, 63,187, 98,247,181, 93,230, 71, 11,138, 69,133, 80, 18, 93,106,180, 80, 40,163, 81,133, 38, 78, 13, -243,198,121,198,152,185, 2,135, 83, 20,239,222,124, 78,185, 63, 71, 86, 57,194, 22,159, 72, 99, 36,174, 59,146,115,164,174, 39, - 57,135,176, 42,127,212, 11, 77,242,137, 56, 6, 92, 63, 18,188,199, 71,159,243,173, 75,131,170, 11,236,254,146,195,197, 46, 55, - 69,197,126,165,113, 54,242,180, 31,137,195, 72,252,206, 25,137,192,189,253,146,191,253,181, 47,243, 57,101,249,213,147, 99,174, -124,204, 83, 94, 85,228, 38,216, 84,224,122, 68,187,165,247,242,101, 64,134, 49, 8, 49,129, 61, 72, 19,123,252, 58,222,242, 83, - 39, 68,173,255,252,132,121,157,139, 81, 90,104,230,168,229,140,207,237,204,120,184,187, 96,111,209, 80, 88,205, 65, 83,240, 60, - 66,144,137, 74, 27,172, 12,252,120, 83, 49,183, 42, 67, 84,124,158,194,207,183, 3, 49, 68, 6, 55, 82,144,159, 63,111, 11,120, -171,218,227,222,124,201,221,253,219, 24,109,179, 64,109, 24, 56,139, 35, 67,244,180,192,198, 15, 92,185,142, 77,116,108, 82, 2, -107, 89, 43, 65,221, 52,216,162, 64,218,124, 42, 10, 49, 76,196,115, 8,163, 35, 77, 27,197,224,186,252,222, 16,146, 20, 28, 66, - 24,146,202,226, 87, 89,214, 89,189,164, 44,113,130,225, 68,107, 9, 68,162, 46,217, 4, 71,176, 22, 93, 85, 72, 43,121, 80, 87, -152,218,240, 96, 94,113,119, 86,112,123, 81, 49, 8,201,225, 94,205,185,158,234,133,212,249,249,101,235,151, 89,225,218,192,124, -206,237,221,138,195,186,164,153, 21,172, 26,195,194, 90,118, 11,197,110,101,217,151, 26, 37, 51, 91, 98,161, 11,230, 69, 73, 97, - 20, 51, 91, 17, 68,100, 49, 21, 72,133,100,174,114,240,151,151,154, 65, 8, 46, 93,100,174,115, 2,227,220,102,232, 76,235, 70, -106,149,127,239, 27,239,169,100,118,242, 52, 36, 28,146,221, 20, 25, 66,126,110,245, 66,240,154,214,188, 59,140,220,183, 5,199, - 33,178,163, 36,149, 82,156, 35,185, 15,124,148, 2,114, 10, 2,251,233,106, 70, 29, 97, 97, 21,115, 99,240, 66, 80,153, 76,180, -171, 76, 65, 31, 60, 11, 83,209,138, 68,166,241,123,140,214,184, 40,153,171, 68,151, 12, 43, 3,167, 67,200,246,241, 24,121,189, -106,216, 81,146, 90, 10,110, 74,201,162, 40,177, 66,253,128, 69, 93, 79,235,165,235, 44,118, 57, 81,129,196,148,223,157,166, 34, -173, 39,240,252, 11, 68,172,123,121,167, 26,211, 68, 26,242, 83,138, 88,238,170,178,170,217,230, 73, 83,128, 42,203, 44,136, 52, - 5, 59, 90, 65, 89,224,164,101,140,137, 70, 91,158,120, 71, 23, 34,193, 22,132,190,207,228,159, 77,159,191, 23, 99,144,133,196, -162, 40,172,197, 39, 71,140,137,125, 83,208,199,136, 85,138,224, 60,193, 7,118,180, 96, 16,208,133,128,137,130,109,242,148,211, - 26,204, 36, 56, 29, 60,173,144,249,254,239,252, 20, 65,153,160,170,242,207, 48, 78,105, 76, 97,122, 16, 88, 59,145,244,166,230, - 71,100,111,230,170,177, 36,159,216, 45, 10, 90, 55, 96,101, 86,226,187,233,181, 49, 86, 51,142,142,178, 52,136, 0, 73, 78,164, -163,152, 94,172, 78,157,146,252,193, 38,135, 3,188, 72,107,187, 22, 38, 94, 43, 39,191,223,237,170, 46,167,219,191,224, 75, 95, -255, 42,101, 83,208,111,123,218,245, 38, 99, 5,180, 65, 70,193,197,249,134,162,156, 51, 95,212,204, 27,141, 84,130,118, 72,244, - 62,208,247, 1, 23,161,247,142,182,119, 88,171,184,123,208, 32,200,247,248,156,214, 22,179,149, 45, 68, 90, 31,232, 67, 64, 8, -145,197,250, 46,160,131,167,234, 51,107,125, 24, 28,125, 8, 60,139,142, 62, 70, 26, 41, 25, 82, 98, 37, 21,175,220, 62,228,195, -199, 79,184,250,246, 57,247,172,228,246,107, 37,162, 86,188,118, 88,112,187, 11,252, 59,243,130,207,110,115, 51,240,229,160,216, - 93, 74, 52,176,187, 44, 16, 8,246, 2, 92, 68,199, 16,224,141, 55,239,243,218,103,110,113,220, 58,174,250, 1, 91, 21, 20,133, -166, 41, 52,133, 82,236, 46, 43,234,202, 98,164,160,219, 14,108,215, 45,105, 24, 49, 66, 80, 26,141,145, 18,155, 18, 50,100,171, -158,140, 9, 69,206,153, 55, 17, 52, 17,213, 57,180,119,136, 33, 97, 48,244,197,140,131,253, 93, 98, 57, 39,154,138, 43, 13,101, -123,201,237, 30,158,186,142,195,214,113,233, 6, 94,237, 19,207, 66,135,252,246,187, 92,125,247, 9,255,228, 55,254, 57, 79, 30, -117, 60,122,188,229,195, 62,208, 91,141,208,146, 46,130, 12,158,174,117,124,180, 30,248,206,105,199, 58, 37,164,150,124,102,101, -241, 66,147,140,230,208, 9,182, 50, 49, 68,197,236, 51,175,242,229,159,126,157,195, 7, 37,238,189, 51,254,207,255,233, 55,249, -233,191,241, 21,164, 80,184,179,129,177,115, 4, 41, 80, 66,162, 76, 78,181,147, 11,139, 40, 52,178,204,235,240, 24,179,203,196, -141,121,122, 39,228, 7,125, 18,137, 97, 12, 92, 56,135, 46, 13, 61,176, 50, 57, 4,104, 86, 91,244,117,218,152, 75,132,103, 91, -134,247,143,241, 31,126,194,248,201, 49,227,232, 16, 49, 32,166,160,161,216,142,248,193,227,186,158,182,235,184,188,220,224,198, - 1, 93, 40,164,209, 8,173,161,208,116,222,211, 38,193, 85, 10,196,148, 40, 45,168,186,228,188,214, 68, 45, 56,247,240,209,211, - 71,252,183,111,125,151,231,103, 93, 46, 30,243, 69, 86, 52, 47, 26,196,238, 46,236,237,193,124,137,120,126, 9,174,205,197, 68, - 76,226,223,186,156,232,141,226,229, 42,254,211, 27,184, 79,255,249,186,200,235, 38,175,150, 15, 14, 88,204,107,126,226,104,151, -251,243, 57, 55,155,134, 90, 27,118,148,228,196, 7, 90, 1,253, 20,203,176, 39, 36,187, 5,220, 84,185, 9, 47,133,224,184, 31, -248, 23,207,214, 84, 74,240, 30,145,161,168,248, 94,189,226,247,203, 21,174, 90,240, 87,239,222,227,160,168, 88, 53,187,196,144, -232, 72, 28,183, 3,155,152,136, 41,224, 98, 96, 27, 3,231,126,196, 9,193, 58, 38,188, 18,216,186,196, 24,203, 40, 35, 42, 9, -134, 20,137, 50, 15, 55,227, 56, 18,194, 72, 26,122, 82,136,200, 20, 73,110, 64, 40,155, 61,255, 73, 65, 85,101,207,182,148, 36, -163,242, 57, 74, 11,164, 81,180, 33,209, 7,199, 32, 37, 99, 76,180,201,179, 99, 42,148, 49,220,169, 42,180,206,246,180, 85, 61, - 99, 85, 88, 6, 45,169,235,130, 81,104,196,188, 33,212, 85,174, 37,139, 6, 22, 85, 22, 15,214, 5,119, 87, 51,144,154,210, 42, - 42, 99,137, 72,246, 75, 75,161, 13, 23, 94,176, 83, 91,108,212, 84, 69,241,162,168,121, 18,141,170,112, 49,167, 74, 90,153,165, - 95, 73,106,208, 2,147,160, 46, 10,182,227,136,143, 9,143, 32, 6,135, 16,138, 75, 63,144, 98, 96,144,137,198,185,156,149, 78, -100, 39, 5,108,206,240,100, 38, 18, 46, 36, 54, 66,112,168, 13,143,253,192,131,178,225,210, 59, 82,138, 44,129,143, 8,184,224, - 16, 62,113, 71, 27, 14,165,226,176,214,168,144,144,198,190, 8,146,140,147, 91,170, 52,150,203, 16, 88, 25,195,218,141, 84,182, -100,240, 30, 41, 18,103,163, 67, 39,176, 82,115, 44, 2,171,178,226,117,163, 9,202, 98,148,226, 64, 9,148,212, 52,133,100, 33, -220, 15,170,126,159,146,217,132,205,147,185,158,176,175,218,188, 12, 88, 86, 58,123, 62,153,140,253,253,116,131,239, 93,158,212, -245, 52,237, 42, 61, 77,187,215,201,110,217,248,159, 1, 16,144,148, 66,148,138,186,176,180,218,160,149,194, 40,205,229,116,243, -174,180,229,185,243,132,190,195,206, 23,140,235,171, 73,192,150,183, 0, 73, 43, 42, 33, 72, 41,210, 40,137, 16, 18, 99, 36,189, - 15,153,123,110, 52, 12, 35,235, 40,184, 91,105, 46, 93,160, 86,138,153, 84,156,199,196, 92, 75,206, 98,224,196,101,228, 96, 34, -195, 83,242, 14,138, 44,240,211,122, 42,188,241, 83,170,127,159,109, 35, 34,253, 41,110,244,105, 23,121, 56,171, 24, 68, 94,255, -244,221,128, 22, 9,161, 50,227,184,237,123, 10, 99, 81,225,165,176, 47,251,230, 51,135,121,144,138,167,222,113, 25, 36, 65,155, -220, 16,197,137, 12,120,205, 7, 78,225,251,223,255,164,156,110, 86,112,247,238,125,118,247,119, 25,122, 71,244, 14, 31, 34,221, - 48, 98,180, 33,196, 72,221,204,152, 47, 22, 28,173, 26,148,140,249, 53,117,105,186,149, 7,146,136, 8, 37, 9, 99,192, 88,197, -178, 54,140, 33,101,180,233,148, 19, 45,128,113,186, 1, 54,147,222,192,133,144, 93, 61, 41, 18,134,192,170, 15,120, 23,152,161, -216, 79,145, 48, 6,130,132, 74, 43, 86,203, 57,223,124,250,148,183, 30, 95,240,137,243,188,211,122, 78, 54,158,167,223,107,121, -114,191,224,116,166,249, 23, 91, 79,120,189,224, 96, 71, 50,215,154,102,167,228,167,230, 11, 22, 46, 81,140,129, 98, 49,167,243, - 45, 85,185,195, 27, 15,111, 48, 70,193,232, 19,125,202,177,177,213,100,127,156,205,107,234,202,162,148,196,199, 68,215,122, 92, -223,147, 98,156,208,182,145, 20, 34, 41,166,172,128, 23,153,160,167,132,202,182, 62,173, 40,181, 98,111,165,121, 77, 69, 22, 51, -203,237,189,134,207,220,222, 97, 86, 89, 62,142,134,214,214,236,220,184,133,187,119, 31,127,239, 53, 14,191,242, 25,110,126,254, - 13,206, 84,197, 59,103,199, 60, 59, 89,243,215,247,102,252,163,139, 13,225,233, 39, 12, 79, 62, 66,187,200, 86, 20,156, 78, 97, - 29,214, 69, 62,217,122,222,189, 26,120, 54, 58, 58, 37,249,252, 94,193,225, 60, 55, 37,167, 81,113, 94, 72,238,161, 56, 51,138, -155,135, 51,110,223, 95,113,227,243,247, 89,252,252, 23,216,251,236,138, 95,254,239,255, 1,221,255,248, 29, 94,251,165, 55, 17, -133, 66,207, 44, 74,171, 44, 65,185,214,184,196, 12, 49, 74,189,167, 61,105,249,224,116,195,105, 55, 16, 58,199,213,186, 99,187, -238,216, 58, 79, 31, 35,163,204,186, 2,124,224, 42, 37,230, 70, 97,138,108,191,137,125, 96,120,116,193,240,225,115,210, 59,223, -130,211,143, 8,237, 37,177,191, 66, 10,133, 8, 16,186, 14,223, 13,244,219,142,171, 77,203,135,151,151,124,216,109,144,193, 33, -133,204,205, 65, 97,137, 34, 49,106,197, 38, 6,206, 60,244,147,194,186, 20,145, 7,171, 25, 71,243,130, 7, 51, 67,159, 50,151, -240,164, 11,121,157,254,252, 12,179,103,219,153, 0, 0, 32, 0, 73, 68, 65, 84, 49, 43, 97,103,143,159, 63, 92,241,239,222,188, -193,157,198,242,237, 56, 64, 81,231,207, 75, 31,167,103,153,206,195,198,162,225,206,209, 62,159, 59,152,243,113,159,207, 49, 88, -253, 50, 90, 90,216, 60,180, 44,151,176, 83,103,235,221,238,140,175,222,220, 97,223, 88,142,170,134,156,105, 24,168,116,129, 13, -129,142,196,137,207, 91,139, 43,159, 83,233,110,218,140,191, 62, 27, 6,254,238,227, 45, 79,202, 25, 79,246, 15, 57,221,185,201, -191,169,119,121, 82,204, 17,186,228,111,222,187,205,151,202,154, 31,154,205, 57,136, 9,233, 19, 9,129,151, 35,155, 33,208, 19, - 8, 34, 39, 87,110, 93,224, 60, 70,174,132,160, 37,159,152,102,133,161, 52,134,181,243,200, 24,241,131,231,249,230,138, 20, 2, -109,219, 18,131,199,140, 35,113, 26, 46,210,181,232, 87,233,108,113, 20, 57,200,200,123,159,173,107,218, 48, 58,207,152, 18, 27, - 53, 97, 70, 68, 94,217,123, 41,217,181,118, 18,170,105,118,170, 25, 93,138, 20,166, 96,223, 22,244, 18,150,179, 37, 74,165,220, - 88, 47,102,217,150,166, 52,187,243,134, 59, 85,201,210, 40,202,166,162,214, 6,109, 21,179,162,100, 20, 9, 37, 53,135, 77,157, -239,225,182,194, 40, 48,214, 96,117, 73,161, 12, 99,154, 68,189, 34,163,176,209, 37, 86, 73,186, 16,209,218,112, 53,120, 74, 35, - 16, 73,146, 66,142,220,214, 36,174, 82,164, 77,145,185,243, 24,161,153,145, 61,255,187, 41, 32,146, 71, 7, 79, 18, 96,137,244, - 67,203, 24, 34, 71,218,242,214,176,229, 72, 25,106, 41,120,199,121, 98,138,144, 2, 70, 75,110,203,204, 71,185, 95, 22,116, 74, - 82, 2, 35,137,153,210,180, 74,178,212, 37,155,228, 89,105, 77, 39, 4, 43,107, 57, 31, 29, 51, 93,240,164,237, 49, 66,210,225, - 9, 74,241,229, 89,197,158, 12, 68, 81, 80,106,201, 61, 35,153, 27,131,146,145, 50, 9, 46,199,248, 3, 22,117, 37, 95,168, 15, - 51,133,199,194,188,252, 83,118,131, 23, 89,175,144,167, 71, 33,242,250, 87,132,188,110,105,202,252,223,221,148, 34, 22,166,105, -189, 42, 51,196,134, 41, 98, 78, 68, 82,105,136, 90, 35,140,101, 84,154,115,231,152, 23, 21,206, 88,158, 13, 91,234,178,202,201, - 97,125,151, 39,231,179,171, 92,120,165,162, 40, 53, 67,136, 20, 34,145,132,192, 74,232, 92, 96, 33, 37,165,146,116,237, 0, 82, - 18, 58,199,211, 49,242,234,220,208, 69,207,241,152,184, 89, 91,158,185, 17,159, 12,107, 4,209,249,252,179,251,144, 27,150, 48, -137,253,226,132,245, 75,188, 92,205, 15, 33,223, 46, 99,122,169,250, 28,243, 42,207,169,196,145, 53, 92,141, 35,149, 54,108, 6, -151, 85,241,215,255,111, 8,140,211,170,135, 16,113, 82,230,104, 83,145, 85,153, 35,137, 62, 36,182, 99,151,155, 38, 61, 61,104, -220,164, 69,232,253, 68,156, 11,127, 6,126, 33,166,252,250,200,219,223,252, 22, 63,245, 11, 63,195,246,226,138, 52, 53, 40,222, -123, 78, 54, 27, 98,128,189,249,146,229,114,198,206,220, 82,200,124, 90, 24, 93,162, 29, 3,227, 24, 25, 7,207,186, 27, 8, 46, -210,133,192,162,182, 72, 18,133,146,217,191, 42,193,165, 68,140, 89, 13,111, 98,100, 41, 35,229,148,191, 62,159,236,110,201, 69, -116, 10, 44, 98,162, 65, 48, 79,129,149, 84, 25,146, 49,171,120,247,248,140,254,108,205,158, 18,172,162, 96,150, 2,103, 49,191, -201,174, 62,232, 72, 67,100,125,225,121,123, 27, 57,173, 18,106,105, 56,186,125,132,159,215,168, 24,185,217,148,220, 48, 21,242, -236,130, 81, 23, 52, 82,177,152, 87,116, 33, 16, 66, 36,141, 14, 21,161,170, 11,202, 74,163,181,202, 33, 54, 33, 50,116, 14,239, - 60, 49, 4,162,115,140, 46,160, 98, 14, 91, 40,144,152, 36,104,180,166, 50,154, 89, 89, 80,151,134, 29, 35,184,111, 10,246, 18, -180, 38,195, 33,206, 29, 92,249,132, 85,145,164,225,162,247, 20,109, 96,121, 99,206,193, 43, 11,110,190,121,196, 63,246, 43,254, -214,195,187, 20,119,143,120,253,141,251, 44,191,250, 5, 62, 60, 89, 83,110,207,217,188,255, 33,227,157,187,204,166,165,205,249, -232,121,127, 51, 34,198,136,142,145, 89, 89,176,168, 12, 27, 4,239, 14,145, 11, 31, 89,203,196,122,240, 28, 84,138,203, 33,114, -188, 25, 25,125,228, 11, 63,241, 26,223,248,197, 31,230,141,255,228,115, 96, 18,197, 65,133,174, 52,114, 74,193, 74, 27, 71, 58, -235, 9,103, 61,227, 89,203,230,233,150,167,167, 27,190,117,185,230,100,112, 60, 31, 71,130,130, 86, 11,156, 72,244, 10,130, 18, -184,148, 19,249,132, 82, 52,149,101, 32,178, 25, 61, 93,244,172,183, 45,177,219, 32,151, 13, 65,130,223,221, 37,218, 2, 49,145, -214,198,237,150,243,110,203,201,176,229, 73,244,188,221,173, 57, 9, 35, 49, 70, 26,107,241,147,186,216, 25, 69, 23,225, 34, 37, -206, 93,224, 50,228,109,153,214,185,209,223, 49,154,185, 54,220,108, 26,238, 26,197,235,171,154,219,251, 75,158, 8,197, 92, 65, -247,228,148, 95,124,245, 85,238,214, 21,231,179,125,254,228,234, 60, 47, 23, 11, 3,149,134,170, 70,204,106,168, 10,238,172, 22, -252,200,209, 1,183,119,246,112,181,228,249, 58,193,238, 14,234,230, 33,105,190,128, 41,209,140,163, 61, 40, 43, 22,139, 57,251, -214,176, 44, 13, 7,186, 32, 76,155,132, 66, 26, 68,138, 8,165,240,209,241,193,232,179,240,110, 8, 28,247,145,141, 72,180, 90, -241, 39,209,114,182,127,139, 7, 55,110,178,191,123,131,122,182, 75, 40, 26, 70,169, 16, 69,195,207,148,150,219,101, 65,147, 4, -157,243, 44,181,102,219,181,156, 12, 61,207,186,237,148,254,156, 8, 49, 48,184,145,205,232,120, 22, 28,163,213,244, 66, 82, 89, -131, 11,142,194,106, 78,182, 27, 58, 63,114,225, 19,103,253, 21,231,109,230,209,111, 93,135, 26,187,140,144,158, 54,111, 72,147, -167, 93,161,136,211,102, 54,105, 67, 76,137, 81, 66,235, 61, 66, 26,206,156, 35, 73,193,152, 34,181, 41,178,204,204,150, 84, 82, -211, 73,129, 45, 42,146, 27, 9, 85,205,202, 88,182, 62, 81, 23, 37,187, 69, 69, 8,145,253,170,102, 86, 84,188, 54,179,148,218, -178,103, 45,179, 20,152,149, 13,115, 83, 51,151,130,170,168,168, 76,137,181,150,202, 20, 24,171,209,194,100,122,162,146, 89, 56, -175, 20, 74,192, 76, 11,172,212,140,201, 51,164,196, 66, 74,250,148,155,213,130,200,136,199, 8, 73,105, 52,253, 56, 32, 99,164, -115, 35, 11, 33,168, 98,196, 71,199, 46,145,245, 56, 80, 2,115, 1, 46, 4,116, 74,244,192,211,209,113, 66,228, 32, 69,158, 6, -143,136, 9, 29, 28, 62, 9, 84, 12,200, 16, 89,145,248,242,172,230,147,118,100,215, 26,164,146,204, 76,201, 57,129, 27,186, 98, - 67,100, 71, 91,122, 36,134,136,155,116, 59, 33,229,199,244,198, 7,182, 34,159, 23, 31,106, 73,101, 44,251, 70,112,168,178, 5, - 86,147,120,197, 20, 92, 6, 79,173,126, 16, 75,155,214,211, 52, 46,167,123, 72, 9,123, 77, 46,192, 70,102,133,187,152, 10,250, -181,229, 75, 78,124,242,232,178,207, 96, 53,135, 38, 43, 24, 25,167,152, 81,107,243,218,125,188, 70,154, 78,225,240,246, 26,219, -167, 25, 34, 12, 50,162,138,134,173,119, 12, 8,132,208,140,227,196,240, 53, 22,174,218,169,128, 14, 80,104,102, 86, 35, 82,162, - 81,138,243,214,101,229,168, 75, 44,106,201,133,203,118,188,212,141, 16, 61,169, 48,156,141, 9,165, 37,143, 93,226,204, 37,156, -212,156,250, 64, 76, 42,111, 24,194, 52,205,244,253, 75, 23,166,156,238,112, 87,221,196, 18, 30,243,125, 45, 77,247,245, 16, 95, -198,210,138,196,149, 75, 57, 71,103,202,118,175,124,164, 13,121,123, 81, 39,193,243,232,209, 66,231, 84, 43,145,104,125,190,177, -182, 41,113, 21, 35,165, 86, 12, 62,228,149, 23,233,101, 68,235,181, 29, 68, 76, 14,132, 79, 11,124,226, 53, 14,113,218,146, 4, -193, 55,254,250, 79,226, 67, 36,248,108, 79, 83, 19, 36,168, 41, 74,148, 18,136, 24, 81,218,162,181, 34, 9, 69, 41, 21, 70,100, - 64, 66, 27, 61, 93,239,217,217, 45,168, 43, 69,231, 2, 82,230, 12,245,152, 82,238,231,162, 32,133,132,139, 1,231, 67,254,123, -166,181,150,138, 80,138,108,237,155, 43, 69,233,227,139,181,148,179, 6,107, 36,118,217,224, 70,135, 62, 61,103, 30, 35, 23,196, -220, 40,204, 20,213, 66,211, 25,160,150, 72, 45,176, 43,141,147, 2,243,180,227, 96, 79,225,110, 28, 49, 47, 13, 95,190,121,151, - 84,214,168, 24, 24, 90,135, 24, 2,139, 85, 67, 16, 10, 81, 26, 6, 31,208, 62, 78, 10,127,137, 86, 18, 17,114,247, 62,250, 72, -235,242,125, 51,184,140,185,181, 8,102, 66,113, 88,228,169, 99, 71, 27,246,170,146,121, 99,153, 55, 6,157, 34,214,106,170,166, - 98,167,201,202, 97, 73,100,159,158,131,246,146,221,227, 19,194,197, 57,188,255, 62, 23,107,199,108, 53, 39,117,158,149,146, 60, -158,149,140, 71, 13,199, 7,187,220,216,155,241,240, 11, 15,249,238,222, 17,171, 31,249, 28,162,212,184, 4,110,240, 92,180,142, - 95,249, 95,255, 62,223,254,239,126,157,253,111,188,193,113,204,211, 81,135,100, 59,169,104, 43, 33,184, 81,105,164, 20, 92,133, -204, 14, 88, 85,130,177, 29, 56,233, 35,175,172, 74,132, 22,164,148,232,149,228,163,199,107, 62,250,131,199,204,149,160,125,186, -225,248,233, 37, 39,235,150,239,156, 95,241,157,171, 45,199, 93,196, 37, 69,235, 35,114,166,152, 85, 10,109,228, 68,137,142, 88, - 41, 24,149,160, 49, 58, 91,141,165,164, 23,137, 77,136,156, 8,232, 45,108,202,130,171,131, 61, 78, 87, 11,134,217,156,203,186, -228, 98, 28,121,228,122,190, 53,246,124,100, 13, 31,147,184, 20, 21,149,130,243,162, 36, 26, 67,165, 20,131, 72,140, 66,240, 36, - 4,206, 66,228,147, 24,241, 62,177, 14, 14,164,193,136,124,103,221,177, 37,183,181,197,150, 37, 66, 42, 90, 34,179, 89,193,110, - 83,112,146, 4, 15, 54,199,252,135,175, 63,228,187, 23,167,252,222, 56, 66,114,136,113, 34, 48, 54, 37, 95,219,217,225,181,121, -195, 81,179, 32,200,146,203, 36,248,163,164, 9,171,134,175,223,186,195,231,143, 14, 89,206,231, 60, 45, 74, 88,236,228, 38,190, -176,204,165,162,182,154,185,148, 44, 16, 20, 41,161, 68,222, 24,100,146, 64,226,216,143,124,188,245,136,194,194,106, 23,102, 21, -207,237,146, 39,178,225,104,117,196,103,119, 15, 89, 53, 11,172,169,176, 69, 69, 93,228, 59,244, 95, 41,243,109,122,150, 96,112, - 35, 75,169,112, 67, 79,232,122,158,182,231, 28,187, 22,136,180, 67,207,118,236,249,240,124,203, 39,253, 64,231, 60,107, 63,208, - 69, 71, 63,142,212, 34,241,193,243, 99, 46,219, 43,158, 94,156,240,237,231,199, 60,186, 90, 51, 36,199, 89,191,229,241,213, 37, -142, 68,215, 93, 97, 98,192,232,146, 36, 18, 41, 10,146,206,185,222, 81, 43,162, 18,244,193,211,143,158,160, 53,155, 24,104,133, -167,243, 30, 33, 21, 26,137, 81, 38,235,105,116,193, 76, 23,104, 37,193,150, 8, 18, 73,106, 86,117,195, 16,179, 21,214, 90,131, -149,138,157,194,224,131,228,179,117, 69,210, 10, 93, 52, 44,108,153,217,235,198,114, 80,204, 24,165, 36, 10,153,111,224, 82, 33, -141,196,232, 2, 68,194, 24,133,115, 30, 37, 21, 82, 10, 80,145, 74,104,100,130, 49,230,137,187, 36,210,197,144,197,164, 34, 17, -189,195, 72, 56, 29, 71, 68,138,196, 20, 8,126,164, 74, 1,231, 71,118,132,192, 50, 18, 93, 96,166, 61,114, 76,140,222,179, 91, - 90, 54, 93,135, 35,177, 39, 18, 42,230, 51,163,242, 45,218, 7,180, 16,236, 8,137, 75,158,251,214,228,239, 89, 40,214, 4,110, -233,146, 45, 1,153, 36,157, 0, 43, 50, 28, 42,248,136, 54,134,222, 7,222, 27, 61,129,136, 16,146, 87, 74,147,183,129, 49,127, - 93,157, 18,165,144, 28, 20, 37, 41, 38,124, 12,184, 24,255, 45,213,239, 47, 60,231,211,138,249, 26,184, 31,167,137, 92, 76,106, -115,169, 94,218,189,226,132,126,189, 46, 44,133,252, 84,148, 94,156,176,140, 83,254,186,155,252,136,106, 42, 76, 46, 76, 80,155, -172, 6, 38,116,236,175,238, 80,232,154,199, 93, 59,121,179, 37,168, 42,103,188, 67,190,237, 63,217,228,244,154,202,226,122,199, -253,165,229,116,112,204, 4, 8, 31,120,101, 97, 88,247, 14,237, 18, 51, 11,103,151,227,139,168,211,161, 44,120, 60, 42, 80,146, -214,251,169, 72, 93,223,210, 84, 86,237,183,221, 20, 65,219,101, 37,255, 48, 64,169,114, 52,173,239,115,168, 72,159,149,251,249, -136, 18, 94, 42,239,123, 15, 54,241,193,165,228, 11, 59,138,231,219,158,193,104,252,182,229,158,157,115, 76,164, 64, 48, 70,135, - 79,224,199, 72,178, 26, 23, 18, 70,101,143,106,240,158,253, 82, 81, 68,201, 91,151, 25,115,187,238,251, 28,143,187,105,243, 93, - 16, 50,233,101,216,252,249, 45,139,203, 86,194,245,243, 53,213,178, 65,105,201,217,211,211,140, 75, 4, 62, 58,123,142,210,134, -102,194,183,174, 7,199,174,206, 54, 17,143, 98, 8, 16,146,160, 82,138,113, 8, 44,102,150,109, 55, 82, 89,197,162, 22, 47, 50, -217, 67, 8,116, 41,223, 97, 23, 82, 80, 41,201,149, 11,217,169,104, 21, 38, 9,140, 24,169, 10, 3, 11, 65,232, 6,234,168,209, - 34, 81, 11,133,217,157,115,239,106,197, 27,186, 38,205, 45,191,109,182,152,194,176,135,226,131,224, 89,223, 46,233, 93,224, 94, -128,181,130, 78, 9, 86, 11,203, 65, 8, 84, 9,202,197,138,249,182, 99,121,176,143,106, 22, 60, 13, 61,197,241, 25, 39, 66, 32, - 23, 53,213,222,156, 27,119,246, 24,182, 61,227,224,184, 90,183,164,193,160,129, 66,107, 94, 89, 45, 72, 81,242, 52, 10,124,234, -176, 12,212, 81,176, 82, 37, 15, 22, 11,230,117,153, 47, 81,133, 70,206, 11,212,126,141,112,145,174, 29, 57,181,160,241,148, 46, - 71, 34,142,155, 45,233,108,195,205, 51,199,113,215,209, 17,185,241,232, 17, 23, 31, 63, 97,185,127,192, 23,159, 28,243,171,139, - 57,143,126,248,179,236,237, 6,102, 8,206, 90,199,205, 82,179,237, 60, 90, 11,158,117,158, 15, 79,182,252,246,223,250,187,164, -113, 11, 88,126,237,191,252, 59,240,230, 14,219,255,234, 63,229, 55, 69,228,222,221,125,190,182, 99,185, 41, 4,171, 2, 46,199, -196, 70, 9, 22, 90, 82,218,188,133,120,190,241,252,206, 71,151,124,182,201,123,211,143, 46,182,124,240,124,192,104,201,179,231, -103, 52, 9,168, 4,207, 93,228,121,136,180, 1,122,145, 16,120,218,157, 25,183, 10,112, 2, 10, 23, 80, 90,230, 16, 13, 23,112, - 70,241,209, 85,207, 92, 9,172,150,212, 70,179,117,129,103,131, 99,225, 19,214, 7, 80,146,153, 53, 60,171, 13,189, 89,208, 46, - 42,186, 39,167, 60, 31, 19, 85, 33,104, 77, 67, 21, 3, 79,229,140,253, 90,242,110,155,120,146, 34, 53, 18,127,177, 97, 99, 13, -109,136,120,224, 60,105,162,174, 89, 39, 71,140, 5, 59, 74,176,180, 69,118,144,196,128,183, 5,190,149, 68,231, 48, 49,112,171, -105,248,229,167,103,244,127,244, 7,252,189,243, 1,209, 84, 48, 95,146, 70, 16, 58,191,247,247,173,198,104,141, 23,146,111,246, - 61,231, 33,230, 48,214,249, 46, 95,187,123, 23, 33, 5, 71,253,192,219,103, 23,180, 67, 55, 9,131, 35, 46,140,180, 99,228, 44, - 70,118,108,102, 93,204,133, 98, 19, 34, 81, 36,174,124,207, 99, 12,172, 10,246,139,154, 93, 99, 48,170, 98, 71, 9,140, 84, 52, -186,194,106, 67, 81, 53,212, 19, 28, 81, 38,207,129, 20,124,219, 69,238,110,175,184, 37, 11, 36,146,110, 28, 72,131,227,188,221, -240,241,122, 77, 27, 7, 78,183, 1, 82,224,124,240,140,231,107,100,140,200,182, 39,236, 47, 56, 5, 46, 27,203, 91, 49, 98,156, -199,120, 48,253,136,105, 59,204,106,201,219, 82, 83, 55, 5,133, 72, 60, 42, 37,159,193,162, 22,145, 33, 4,172,182, 44,118,110, - 32, 6, 72,186, 96, 28, 28,222, 57,194,164,111,186,220,174,113, 42,159,222,144,154,146, 72, 80, 2, 41, 18, 30,195, 18,137,176, - 6, 53, 58,208,138,133, 15, 60,243, 3, 6,193, 66, 36,156, 51,204, 82, 98, 8,121,176,104, 22, 26,169, 20, 77,240, 36, 99, 48, - 34,159, 29, 27, 83, 77, 48,155,200,210,148,108,125,255, 66, 7,132, 75,104,105,240,113,164, 44, 52,206, 37,164, 76, 8, 15, 27, - 6, 42, 1, 58, 9, 28,137, 62, 58,144,150, 16, 28, 18,168,148,225,188, 27, 88,166,196,113,112,164,113, 64, 43,129, 9,129, 82, - 71, 66, 76, 52, 62,208,165,196, 14, 5,107, 61,178,227, 4,155,171, 11, 10,109,177, 41,111,121,181, 72, 84,228, 36, 55, 77, 22, - 74,175,240,236,136, 18, 81, 86, 28, 36,184,240,158,215,237,156,247, 92,207, 74,151,108, 36,236, 11,193, 59, 67, 98, 17, 61, 66, - 73,234, 4,143,198,192,158,182, 60, 1,132,239, 57,176,138, 62, 56,140,148, 92,245, 91,230, 82, 18, 99, 96,219,245, 8, 41,120, - 67,106, 30,199,241,223, 98, 82,215,250,165,239,156, 9,239, 87, 78,247,114, 59, 17,151,122,151, 39, 65,239, 94, 78,168, 76,114, - 97, 55,249, 64, 69,122,233,255,108, 39, 11, 86,156,214,198,101,145, 85,170, 90,229,253,195, 68,174,194,170, 60,133,207,114,128, -198,195,155, 15,120,124,117, 78,136, 1,188, 67, 74, 75, 66, 65,187,201, 19,115, 55,192, 48, 32,165, 98, 81, 21,216,148, 81,168, -181, 21,236,105, 56,235, 71,102, 74,130, 27,233,187,172,220, 37,133,236, 37,213, 58,223,207, 84,190, 99,167, 52,169,247,205, 36, - 22,136,211,244,173, 85, 62, 19, 88, 13,114,130,204,139, 73, 92, 99,204,116,110,152,176,185,195,116,175,187,158,214,123,143, 19, -137,199,157, 71,151,138,183, 62, 89, 83, 87,138, 15, 47, 90,180,209,104, 41, 8, 42, 11, 82, 70, 37,208, 66,224, 66, 38,185, 21, - 82,225,137,204, 80, 12,209,211, 88, 69, 67, 98, 75,206, 59,199,231,108,230,204,225, 23,147,160, 47,190,180,223,201,233,116, 18, - 4, 71,175, 28,113,112,235,144,118,155, 69, 50,193, 71,182,125,139, 17,154,131,213, 33,123, 7, 75,102, 77, 65,112,137,194,106, - 84,132,166,212,200, 49,112, 57, 6,124, 74,180, 67,192,185, 72, 83,107,148, 20,104, 57,173,223, 17,120,242,135, 53,166,148,131, -247,144, 68, 1,137,188,174,213, 58, 79,235,248,152,161, 62,133,194,214, 6, 45, 53,101,169,249,191, 89,123,179, 88,203,210,243, - 60,239,249,167, 53,238,233, 76,117,106,174,174,174,234,110,246, 64,145, 77,138,148, 40, 91,178,132,152, 6, 18,197, 73, 46, 20, - 7, 65, 4,196,185, 73,128, 32,185, 8, 2,248, 46,176,238,156, 27, 35,200,125,144, 92, 4,112,132, 12,130,108, 40,138,172, 33, -214, 16, 73,164, 73, 90, 36,155,221,173,110,178,187,171,107, 62,243,217,227, 26,254, 41, 23,255, 58, 85, 69,137, 18, 20,197,167, -177,113, 80, 5,116,157,179,246, 94,123,127,255,247,125,239,251,188,178, 54,204,109, 36, 28, 28,227,181, 96,145, 75,124,109,216, -100, 18, 95, 72, 30, 73,207,246, 40,103,119,167,100, 57,206, 24, 95,158,178,181, 61,229,114, 85,115,185,183,188, 81,111, 51, 13, -145, 93, 93, 48,186,177, 13,166, 96,220,246,100,173, 99, 45, 5,179,237,154,171,151,183, 40, 75,147, 0, 99, 77, 75, 92,246,200, -206, 83, 74, 69,169, 36, 69,132,222,167,209,158, 16,138, 76, 24,246, 71, 35, 46,239, 77,153,108,215,148,163,156, 98, 82,144,207, - 10,178,210, 80, 76, 43,138,113, 73, 17, 34,198, 58,100,239, 56, 95,172,217, 57,106, 48, 46,242,193,193, 33,242,124, 69,238, 5, -166, 52, 92, 11,240,242,227, 5,223,113,199,184,137, 96,218, 45,184,255,219,127,128,207,182, 89, 29,172,216, 44, 26,214,235,150, -223,254, 95,126,149,143,254,209,239,113,239,215,191,145, 52, 13, 72, 2, 38,233, 60,142, 27, 62,250,103,127, 72,248,167, 95,167, -236, 63,229,214,157,171,124,121,183,100, 87,107,254,120,229, 56,232, 2,158,200,165, 82,209,161, 56,149,138,199, 66,114,127, 99, -121,180,238, 89, 53, 30,109, 36, 94, 66, 44, 32,138, 72, 75,160, 35,224,100,128,152,196,139,215,239,236,145, 95,153,114,164,115, - 62, 61,119,252,225,183, 62,230,206,254,132,222, 71,158, 90, 79,171, 69, 74,226,206, 4,247,159,204,105, 93, 74, 88,180,189,101, -221, 89, 66,111, 25, 75, 65,166, 4,185,144,244,121,154,250,185,178, 32,232, 12,171, 51, 84,157, 97,235,146,179,141,101,113,190, -100,213,119,228, 85,198,131,243,158, 77, 20,172, 93,135, 15,145,163, 69,135,146,146,181,210, 56,149,225,163,100,119, 54,166,145, -130,105, 94,208, 33, 57,246, 17, 43, 5, 79,150, 45, 71,189,101,172, 20, 71, 82,241,222, 89,139,232,186,228,145,207, 52,140,170, - 4, 95, 57, 93,115,165,144,236, 85, 5, 7,155,134,119, 87,107,172,237, 17, 82,241, 70, 53,226,181,233, 4, 41, 37, 66, 73, 86, -173,229, 64, 12,217, 7, 62, 21, 84, 21,159,239,202,107, 37,105,133,224, 8,136, 66, 50, 42, 74,246,234,154,207, 86, 19,238, 78, -119,208, 67,224,138, 70, 82, 12,194,178, 92,105,156, 15, 8, 33,200,134,157,117,227, 61, 15, 87, 11, 94,145, 1,215,245,220, 8, -145,213, 98,206,124,115,198,251, 71, 79,248, 96,126,206,199, 39, 27,206,155,142,229,233, 28,123,118, 68,180, 29, 97,179, 33,246, - 45, 97,177, 76,143,249,138,112,190,196, 47,214,248,243, 57,174,239,241,222,225, 86,107,220,217, 25,253,241, 9,253, 98,197,241, -162,225, 97, 72, 57, 26, 45,129,237,188,164, 35,164,172,141,224, 17, 70,211,122, 79, 23, 28,115,239,105,133,224,164,107, 88,217, - 30, 97, 20,189, 28, 38,124,153, 65,101, 25,121,102,104,165,160, 42, 43,180,148,172,165,167, 50, 25, 27,239,208, 89,137, 84, 34, - 33, 94,181,166,202, 4,179,172,196,135,128,202,138,164, 90,143,142,186, 26, 35, 98,192, 6,207,118, 85, 99,173, 69, 68, 65,150, -231,244, 46, 29, 44, 83,109, 25, 36, 70, 18, 92,231, 80,120,140,136,180,193,211, 58, 75, 22, 61,189, 16,104,103, 19, 63,159,136, - 12,142,198, 53, 52,182, 39,118,107,108, 84,212,222,146, 73, 71, 17, 2, 51,151, 92, 90,151,132, 96,227, 44,179, 0, 10, 79,244, -129,245,186, 37, 23,129,232,146, 56,249, 10,130, 55,180,227, 21,165,248,146,209, 92,215,134, 27, 69, 70, 21, 34, 91, 38,231,178, -150,156,217,150,151,202, 17,139,104,217, 86,134,143,219,158,155,133,226, 60, 70, 74, 4,143, 86, 61,133, 84,124, 18, 28, 69,140, - 92, 54, 6, 31, 4,187, 90, 38,212,109, 12,105, 13, 32, 82,131,183, 29, 3, 62, 6,148,253,235, 20,117, 53,136,182,226, 11, 68, -223,160,158, 71, 94,118,131, 23,189, 27,186,235,206,191,128,140, 29,138, 77, 28,188, 52,222,167,248,193,139,241,240, 5,125, 77, -229, 41,147, 92, 13,130,187,186, 30, 22, 12, 42, 1, 7, 68,242, 63,126,218,181,216,126,232,204,163, 32,186,254, 57,201,237,240, - 60, 33,103,125,131, 44, 10,148,137,216,206,177,167, 21, 49,120,250, 33,138,180, 68, 17,131,163,233,124, 26,223, 55,131, 29, 76, -233,225, 80, 49, 88,195,244, 16, 29,171,196,112, 24, 25,104,121, 82, 36, 80,142,237,210, 65, 38,134,164, 13, 8,126,128,234, 12, -120, 63, 63, 8, 78, 46,216,235, 74,190, 16,254, 18, 88, 46, 82, 80,203,201,241,138,185,143, 60, 92,118,204,170, 12,231,122,148, - 84, 8, 33, 89,117,150, 74,167,209,247,210, 59, 42, 33, 89, 13,182, 47, 25,160, 11,145,157, 44, 41, 81,173,190, 56, 68,168,244, -179,109, 24,216,240,242, 57,138, 49,166,157,244,124, 60,225,237,215,239,178,217,180, 4,231,240, 49,146, 9,195, 89,179,100, 90, - 86,124,241,205, 91, 52,157,199,185,152,246,223, 50, 37,177, 17, 2,110,128,205,152, 76,226, 58, 71,219,121, 84, 62,184, 23,124, -196, 1,173, 13, 52,222, 33, 7, 38,188, 38, 82, 75, 65,227, 3, 75, 31,169,135,221,144, 18,176, 81, 96, 50,133,206, 52, 54,147, - 8,173,200, 50, 77, 63, 46,121,122,255,152,147,186, 32,142,199,156,103,138,121, 38,209,185,161, 45, 12,182, 46,240,101, 78, 99, - 20,125,136,156,183, 45,139,224,120,208, 52, 44,124,203,229,122, 11,218,134, 88, 87,228,187, 35,124,227,185,228, 35, 93,174,232, - 37,228,117, 78, 89,230,104,163,144, 33, 64,107, 81,214,161,122,143,110, 92, 58,128,173, 45,110, 72,120,141,218,144, 85, 57, 59, -147,146,108,156,161, 42,157,118,178, 90, 18, 43,133, 50, 18,165,210,107,165, 4, 72,165,168, 66, 36, 39, 18, 58,203,172,177,172, -207,206,185,172, 11, 20,145, 85,111,137,202,113, 52,171,120,237, 23,254, 22,111,254,212, 91,188,252,133, 55, 57,222,116, 60,249, -230,215, 56,248,232, 67,222,251, 23,223,166,253,253, 57, 33, 13,228,210,154, 34, 33, 65,136, 67, 60,208,197,247,213,247,142,121, -247,159,124,139, 3,113, 66,244,138,239,127,248,132,211, 63,253,148,187,183, 47, 35, 28,172,165,160,137,176,238,147, 45, 78, 75, -104, 91,203,253,195, 5, 34, 70,158,156,110,168, 8,116, 77,199,166,117, 68, 37,240, 34,114,181,214,252,189, 47,222,224,149,137, -225,105, 27,248, 80,107, 30,223,185,204,111,170,130,223, 89, 5,190,254,233,146, 91, 59, 53, 50,120,172,130,211,165,103,165, 37, - 78, 68,214,173,195,123,143, 36, 98,100,122,109,173, 20,116, 33,160,165,224,112,227, 88,123, 88, 72,201, 34, 51, 44,182,198, 28, - 8,201, 83, 12, 70, 26,158,108, 90,106, 33,217,116, 45, 58,203,217, 52, 3,225, 47, 4, 50, 34,219,165,228,218,172, 38,100, 25, -178, 40,113, 90, 97,165,102,174,224, 97, 19, 8, 66,177, 17,145,163,182,229,149,170,224,104,112,146,252,196, 36,231,118,145,115, - 67,102, 60, 52, 57,162,206,185,191,106,152,202, 2,111, 45, 55, 98,203,184,239,184,148,103,160, 52, 55,243, 28, 73,164,105, 59, -222,221,108, 88,134,128,176, 61,149, 20,104, 15, 27, 41,184,162, 20,103, 66, 17, 85,198,125, 23,168,114,195, 38, 40,138,220, 48, - 42, 38,232,188, 66, 75, 69,192,208,250, 64,102, 12, 2,129,247, 22,109, 36, 74, 39, 87,197,166,105,112,214,113,238, 26,150,221, -154,247,238,191,199, 72, 10, 30,158, 61,229,227,147,199,124,114,124,204,119, 78,206,248,224, 96, 65,152,207,137,237,130,184,216, -164, 60,243, 1,249, 28, 95, 0,177,198, 16,240, 65, 18, 36,120, 41, 9, 3,174,195, 7,247,156, 46,237, 61,174,235,105,219,200, - 19,219, 17, 8,104,145, 88, 25,203,190,193,232,156,181,235, 9, 82,208, 11,193,113,179,162, 23,145,179,222,177,192,211,116,233, -231,134,204, 36,239,184, 41,232,181,162,136, 18,165, 37, 94, 72,140,144,180, 50,129, 90,156,181,136,152,116, 79,224,201,117,142, - 17, 9,239,108,132, 78,201,153, 89, 65,173, 19, 61, 51, 55, 26,163,100, 90,193, 41,205,102,211,162,181, 26, 0,158,105, 84, 77, -244,180,109, 79,244,145,133,237, 81, 62,209, 54,181,119, 56, 33,145,125,135, 14, 1, 17, 3,181, 8,244, 93,159,250, 79,191,193, -218, 64,230, 27,172,181,108, 11,216,142, 9,249, 61,139,130, 16, 2,187, 82,224,189,103, 18,160, 20,129, 76,120, 88, 54,188, 94, - 74,222, 86,146,187, 69,198,142, 52, 92, 49,154,155, 89,197,101,147,244, 60, 19,101,200, 66, 18,240,109,103, 57,103,222, 50,145, -154, 3,219,242,242,168,230,163,174,227, 90,158,241,104,217, 16,148,228, 3,107, 25,133,192, 90, 10, 94, 45, 52, 70, 5, 86, 33, -176,133,160,150,146, 86,192, 76, 72,174,102, 5, 77, 76,248,142, 59,229,232,175, 81,212,165,252, 33,114,239,179,204, 91,173,135, -157,114, 42,248,183, 62,255, 50,243,163,249, 15, 51,224,187, 48, 20,195,129,231, 46,101,242,118,196,161, 8,184, 97,223, 91, 22, - 73, 49, 94, 94,140,224,229, 32,198, 19,168, 60, 79,172,117,161,136,182, 75, 16,123,103, 81, 66, 18, 69, 76,123,236,174, 75,249, -200,171, 21,224,137, 22, 46,103,146,177,150,180, 81, 16,188,227,192,121,118,178,140, 96, 83,190,239,225,106,243, 60,205, 76,136, - 84, 0,171,122,208, 5,196,231, 96,156, 48,116,192, 65, 12, 34, 57,255, 92, 52,199,160,182, 15, 46,173, 36, 20, 41, 11, 93, 12, -215,135,228,153, 41,253,162, 99,183, 3, 90,246, 34, 59, 55,244,176, 89, 66,231,120,108, 35, 91,101,134, 18,130, 34, 10, 70, 42, -237,169, 69,239,201,133,192,185,200, 88, 43,150,195, 13,166,149, 36,120, 40,117,196, 68,193,218, 15,188,247, 56,188, 94, 34,197, -159,166, 53, 73,120, 22, 5,185,190,255,128, 87, 63,247, 38,121,150,209,173, 26,178, 44,231,115,159,125,147, 7, 15, 30, 18, 93, -224,230,173, 27, 44, 22, 29,101,149, 2, 97,178, 76,147,105,201, 38,122,162, 75, 66, 26, 41, 35,174, 75, 59, 91, 31, 82,216, 75, - 80,113, 24,141,201, 20,150, 35, 21,106, 80, 72,119, 33, 97,111, 51, 41,216, 49, 9,113, 42,226, 16,101,172, 36, 85,166, 89,155, - 36, 12, 68, 75,186, 81,206,159,220, 63,230,211,205,130, 42, 6,214,125, 67, 71,160,141,129, 40, 37,107, 17, 89, 74,146,120, 69, - 10,142,133,103,225, 98,194, 84,146, 34, 46,139,178,194, 4, 65,233, 33, 76, 75, 70, 42,199, 40, 73, 27, 3,217,186,199,108, 85, -137,100, 38, 37, 2,208,157,199,204, 91,212,188, 37,156,174,209,157,101, 76,100, 44, 52,133,214,120,173,113, 70, 34, 50,133, 53, - 10,151,168, 52,196,182, 71,103, 10, 97, 20, 81, 74,132, 82, 72, 69, 42,244,101, 70, 81,231, 20, 69,193,254,107, 55,152, 92,219, - 98,182,232,217,139,146,251, 49, 18,191,252, 58,175,189,121, 21, 45, 20,162, 42,153, 92,153,146,141,183, 17, 93,228,225,241, 33, -155,143,151, 4, 28, 1,193,115,170,182,127,246, 16, 67,137, 7,137, 64,242,232, 27, 15,249,250, 63,253, 54,159,252,230,119,121, -252,123,223,227, 91,239,191,207,207,126,245,109, 92,227,152,175, 59,214, 79,151,228, 71, 11,126,229,127,250,101, 14,191,245, 14, -155,119,223, 39,223,157,177, 62, 95, 50, 63,111, 6,203,141,192, 9,193,153,202,169,162,229,245,189, 49, 95, 59, 89,243, 63, 31, - 54,124, 48,132, 13,233, 76,163,198, 57,241,214, 54,247, 39, 37,183,125, 96,177,232,104,242,140,243, 85,199, 92,102,136,214, 99, -178, 68,137,195, 59, 74,163,105,136, 8, 4,199, 93,143, 53,112,224, 20,231,117,205,122, 84,242, 56, 51,220, 31,229, 28,103, 5, -227, 73,206,104, 58,225, 32,192,178,237,176,243,115, 86, 46, 80, 25, 69,239, 58, 10,229,168,132,166, 54,134, 66, 27,162,150,220, -219, 4, 30, 58,135,146, 57,167, 38,103,187,172,216,213,169, 27, 26,153, 12,175, 4,119,243,146,253,178, 64,106,205, 86,145, 51, - 18,201, 42,187, 95,143,201,180,230,149,113,205, 36, 47,217, 31,215,148,218, 80,200, 12, 27,225,254,106,193, 19,107, 89,132,200, -202,123,118,242, 18, 75, 96,173, 32, 70,137,149, 10,175, 52,103, 82,115, 42, 53,175,151, 5,159,203, 51,238,148, 53, 51, 97,112, - 82, 34,148,193,105, 69, 8,145,198,167,166,192,123, 75, 8, 61,193,167, 81,190,239, 58, 86,221,146,229,234,156,147,239,191,203, -103,174, 94,226,143, 62,125,204, 59,143,142,120,239,116,201,123, 7,199, 28,159,157, 67,183, 33, 10, 71,108, 59, 34, 63,204, 91, -127, 33, 82,235,217,232, 58,132,231,143, 11,183,250,197, 93,116, 81,220,189,239, 89,197,192,131,181, 35, 55,130,214, 91,206,109, - 75,144,130,149,183, 68, 36,143, 54,115,172, 16, 60,106,214,172,162, 39, 6,112, 66, 16, 68, 98, 58, 40,147, 17, 68, 64, 75,133, -200, 52,113, 72,124, 68,107, 86, 33, 32,135, 96, 43,149,105,108,235, 24,103, 57,153, 76,204,248,220,100, 56,111, 41,139,156,145, - 49,195, 86, 54, 75,107,172, 16,200,180, 65,105,141, 50,154, 24, 61,182, 79,133, 89,196, 64,183,238, 16, 17,214,253, 6, 25, 61, - 39,157, 69,135,148,230,185, 27,147,144,176, 22, 2, 17, 29,222, 90, 84,112,132, 24, 41,125, 96, 26, 60,165, 20, 76,130,167, 6, - 74,169,152,136, 84,231,106, 18,226,122, 23, 40, 17,204,136,220,201, 50,238,102,154,109,101,216, 42, 71,236,154,154,151, 70, 83, -246,138, 41, 38,194,180, 26,145, 73,137,150,130,113,145, 81, 41, 67,239, 3, 69, 76,147,213,153,202, 56,114, 61, 91,218,176,116, -142,243, 62,242,129,237, 56,141,240, 52, 6,198, 49, 48, 27,228,104,183,170,130, 16, 5, 19,149,177,165, 12, 59,166,162, 9,158, -207, 84, 51,118,140, 70,248,191,142,250,253,153,208,234,197,162, 62,180, 47,106,176,176, 33,152, 63, 57, 75,133,171,117, 47,140, -156,197, 11,123,119, 1,190, 75,194, 20, 25,147,120,142, 0,186, 74, 49,114, 91,227, 84,248, 7,131, 62, 49,133,195,199,182,135, -178,130, 96,169,162, 99, 52,100,165, 79, 99,160,233, 91, 38, 70,209,217, 62, 9,216, 66, 72, 59,245,144,212,141, 74, 42, 66,232, - 17, 81, 50, 35,208,216,164, 82, 60,237, 44,222,250,148,225,173, 92, 74,251, 42,203,103, 96,154,164, 68, 31,186,110, 35,146,138, -127,224,185, 99,195,115, 2, 94, 28, 10,189, 24,162,240,218,102, 32,202, 57,112,195,168,222, 69, 40,205, 51,150,123, 18,171,197, -231,246, 56, 63, 48,166,189,133,188,100, 82, 42,148, 79, 52,182, 82, 41,162,183, 88, 33, 49, 33,177,212, 55,206,179,157,105,172, - 76, 41, 94, 94, 10,102, 81, 80, 69,207,147,139, 72, 82, 23,210, 59,187,247,131,203, 64,254, 57,112, 70,190, 61,227,230,237,155, -116, 93, 67,211,108, 56, 62, 60,167,183, 45,222, 11, 66,200,113,125, 96, 52, 41,201, 11, 77, 46, 37, 82,165, 53,132, 37, 34, 66, - 26, 5,249, 16,159,197,185, 71, 98, 18,217, 9,153, 68,249, 17, 42,117,161,221,139, 76, 85,154,168,184,232,137, 81,146,105,153, -242,198,133, 72, 97, 20, 46, 89,115,188, 73, 40,211, 62, 83, 28, 29,173,152, 68,205,164,168,104,148,164, 42, 38,136,170,100, 60, -154,146,107, 77,102, 12, 70,128, 42, 50, 10,169,240, 90, 64,150, 83,153,156, 75, 89,129,247,158,124, 92, 33, 71, 5,178, 80, 84, -251, 35, 74,169, 48, 33, 82,180,142, 48,201, 16, 90,161, 98,130,238, 25,231,201, 26,139, 89, 89,100,215, 36,245,171,212,140,132, - 98, 90, 24,178, 92,177,214,146, 53, 73, 28, 22, 50,133, 68,144,109, 28,213,253,115,196, 36,195,103, 26,151, 15,200,211,224, 49, -157,199, 28,204, 81, 43, 11,215,167,232, 89, 77,121,125,135,124,107,204,150,211, 92,113,145,122,209,144, 61, 90,146,159,244,248, - 15, 14, 56,179, 61,227, 75, 19,222,250,220, 43,236,255,141,215,248, 65,213,225,254,244,152, 56,252, 39, 0,161,114, 68,108,249, - 7,255,233, 23,248,227,119, 22, 8,223, 13, 61,187, 76,145,184, 72, 4, 26, 30,117,252,237,255,224, 75,108,154,150,205,241,138, - 98, 57, 71,111,230,124,229,141,187,220,249,177, 59,212,183,111,210, 89,135, 11,130,102,216,223,197, 62,105, 47,100,111,249,181, - 63,250, 38,149,174,248, 71,135,158,249,178,195, 91,139,111, 45,221,186,167, 93,117, 8,155, 50,193,139, 42,231,111,142, 4, 71, - 94,112,214,123,150,235, 22,163, 36,163, 82,226,101,196, 74,197, 82,128,244,145,141,117,156,119,142, 69, 11,199, 85,198, 81,102, -120,164, 36, 79,144, 92, 53,138,191, 49,202,184,189, 83, 51,173,115,150, 94,240, 3, 97, 56, 90,174, 97, 53,231,160,153,115, 41, -215, 20, 17,148,201,208, 70, 17, 98, 96, 29, 35,153,144,156,249,200,227,229,156,187,121,150,150, 20,166,224,238,168, 96, 17, 18, -244,100,171, 44,217,173, 10, 74, 83,208, 42, 77,235, 83,225,216, 42, 74,118,137,212, 89,134,150, 26,149,143, 82, 98,154,209, 28, -117, 14,173, 51, 22, 49, 34, 72, 22, 84, 27, 3, 27,161,137, 3, 14,121,172, 52, 39, 66,210,168,130, 45, 37,121, 43,147,108,153, -130, 66, 24,118, 76, 70, 46,147,122,255,160,237, 88,218, 14,223,247,156,247, 13, 27,219,114,214, 52,116,109,203,106,181,228,225, -201, 99,142, 78,142,120,116,240, 20, 58,199,225, 39,143,225,201, 99,226,242,156,216,109, 82, 19, 19, 2, 81,133,225,192, 30, 94, - 40,222,127,182,152,243,194,116,231,135,163, 84, 46, 30, 23, 41,168,238,226, 97, 19,186,249,163,243,142,127,117, 62, 71, 2,173, -183, 28,186, 13, 79,109,203,169,183, 44,188,229,180,111,232,189,163,245,150, 60, 43,113, 3,231,189,146,233, 64, 56, 49,134, 77, -215,165,224, 24, 2, 77,140, 72, 4, 46, 6,164, 46,112,174, 35,203,179,100, 15,149,146, 66, 43,172,143,148, 69,158, 4,134, 17, -170, 44, 27,166,141,138, 92, 25,162,212, 4, 36,173, 13, 8, 23,105,250,134,205,166,165,239, 45, 49,244,201,135,142, 39,122,143, -119,150,169,209,136, 16, 88,251,142, 82, 72, 68,240,248,190, 69,138, 64,231, 58,180, 15, 72,231,200,134, 98, 45, 66,100, 91,164, - 73,107, 37,161,148,146,145,148,204, 98,138,161,222,146,134,155,245,132,153,206,153, 20, 21, 91,227, 41, 35,149,177, 55,217, 99, - 55, 31, 49, 85, 25, 87,183, 46,145,133,136, 70, 50, 45, 42,108, 76,113,211, 82, 72, 78,241,136, 8, 31,119, 27,154, 24, 89, 17, - 88, 71,193,119, 54, 27,130,208, 60,244, 61, 45,130,147, 16, 24, 33,120,171,206,217, 56,203, 75,101, 73, 64,177,109, 10,142,250, -134, 55, 71,187,116,161,227,122,189,195,189,118,245,215, 84,191,251, 33, 17,236, 17, 13,114,221, 0, 0, 32, 0, 73, 68, 65, 84, -226, 54,113, 46, 41,219,141,121, 62,166,190, 40, 38,249, 16, 69,122,225,235,116,225, 5,181,248, 32,132,243,118,160, 3,248, 68, -122, 26, 15,100, 33, 53,208,231, 46,166, 3, 97, 56, 12, 72, 65, 78, 10, 57,176, 93,203,158,214, 28,246,237, 16, 81, 60,116,166, -171, 53,204, 87,208, 89, 38,117,218,255,120,160,145,130,104, 61, 74, 73,186, 62, 36,142,114,136,116,157, 69,170,152,210,221,130, - 29,124,170,102,136,105,189, 32,198,169,139, 25, 86, 42,136, 66, 12,227,250,161, 19,238,251,116,141,189, 75,187,236, 48, 76, 38, - 98, 76,235, 9,157, 63,139, 9,140,109,178,192,141,148,162,247, 33, 9,251,172,135,104,193,201,180, 20, 90, 45, 56, 93, 90, 84, - 93, 32, 69,226,141, 71, 9, 19, 20, 14,143,139,158, 32, 34, 42,200, 36,110, 19,130, 60,192,177,237,113, 90,113, 89,195, 97,231, -159,171,244,197,160,107,136,195, 26,228, 5,104,253,163, 15, 63,226,179, 63,249,227, 9, 9,233, 3,173,239,137, 65,144,235,140, -157,221, 61,242, 34,167, 42, 50,198,101, 78,110, 20, 34,130, 80, 2, 61,252,123, 33, 68,178, 66,167,216, 85, 23,136,131,100,162, -115, 46, 69,125,170,212, 63,154,139,179,161,136,233,252, 18, 35, 35, 45, 40, 5,100, 74, 83,168,228,245,246,131,240, 74, 12,216, - 80,149, 25, 22, 89, 70,191,182,212, 58, 97, 92,215,221, 6, 27, 60,189,107, 19,220,196,123,148,201,185,122,229, 38,211,122,198, -100, 54,227,242,246, 30,179,170,198, 8, 67,173, 13, 35, 33,153,236, 78, 40,140, 70,219,136, 44, 13,126, 0,207,100, 82,224, 51, -153,130,185, 66, 68,217,128,233, 60,210, 38, 84,107, 52, 10,101, 82, 54,187,201, 85,202, 73, 55, 10, 35,192, 32, 41,140, 66,231, - 26,187,233,153, 29,116,240,104, 5,109,143, 47, 21, 20, 26,169,147,175, 93, 54, 1,185,238, 16,147,114, 72,235, 3,129,194, 92, - 25,147,141, 12,246,116, 69, 55,239,105, 30,156,112, 37, 56, 94,201, 13,227, 66, 51,207, 53, 87,246, 39,188,245,153, 59,132,105, - 75,245,214,132,203,111,223, 68,124,110,159, 47,254,199, 63,199, 23,126,226, 10,127,255,239,254, 44, 89,222,240,237,111,126,130, - 28, 60, 6,233,221,147,182,239,146,192,233,201,199,236,190,246, 42, 58,244,200,222,167, 4, 47, 37,209, 90,178, 38, 38,176,144, -119,116, 65,112,190, 88, 34,176,248,213,138,222, 90,156,204,249,181,143, 62,193,127,242,125,194, 39, 31, 19, 30, 63, 34, 60,252, -148,112,178, 32, 60, 58,160,107, 2, 99,239,249, 79,174, 22,124,241,202,148,173,105,206,135, 75, 71,179,108,112, 66,160,165, 71, - 32, 56,247,145, 50,194,201,166, 73, 34,178, 16, 88, 91,193,169, 80,180, 90,178,118,129,214,121,254,118,173,249,185,253,146,215, -102, 25, 61,138,211, 32,120,191,113, 56,173, 57,148, 38, 9,180,150,167, 24,215,147, 69, 64,102, 88, 37, 89,245,176,238,122,116, -111,169,136, 56,219, 49, 82,129,109, 19, 41,178, 12,239, 36,186,200,145,217, 8, 35, 13,101, 85,209,184,200, 89, 20,120,147, 49, - 14,142,203,163,154, 82, 41,164, 54,152, 40, 81, 90, 35,133, 64, 72,195, 19,239,145,210,240, 88, 4,148,144,116, 41, 35, 47, 29, -200,149,166,208,249,128, 39,141,188, 82,100,188, 42, 35,123, 72,138, 44,167,150,130, 17,146, 67,219,241,131,166,229,164,223,112, -220,119,124,212, 44,121,186, 89,114,116, 62,231,241,147, 39, 60,190,255,132,179,123, 15, 89, 31, 29,192,106, 9, 7, 39,131,246, - 40, 29,158,163, 74,107, 71, 84, 24,232,152,241, 47, 12, 74,249,255, 82,224,253, 11,223,159,141,227, 93,143,235, 58,238,109, 60, -223, 94,174,105, 68,228,219,203, 13, 39, 6, 30,186,200,121,148,144,231,228, 91,151,232, 84,202, 81,232,133,194, 5,143, 82,138, -121,223,225,148,196, 59,199,121,219, 64,132, 54, 56,132,179,200,152, 68,164,209, 90, 54, 62, 48, 46,203,244, 60,155, 68,111,204, -148, 76,177,164,190,199,199, 72,136, 2, 33, 37, 82, 36,253,135,183,145,179,118,205,178,235, 89, 7,203,218,182, 52, 33,176,218, -172,232,250,158,211,102,131, 11,158,243,182,195,117, 29, 83, 13,190,239,145,206,146,135,128,237, 58, 42,161, 32,132, 20,144,131, - 64, 17,153, 74, 65,231, 29,219, 66,160,165, 96, 36, 36, 59, 58, 99, 58,154,178, 95,212, 76,243, 17, 85, 81,145,231, 35,234, 98, - 76,105, 74,242,188,102,183,170,153,228, 57,179,186, 70, 56,199,100, 60,166, 48, 57, 10, 65, 41, 82,116,120, 16,137,115,242,196, -245,212,198,176,112,145, 54, 6,126,176,110, 25, 73,201,119,108, 71,140,105,149, 32,130,227,117, 99,232,156,227,237,209,132, 15, -218,150, 61,169,177,193,242,198,100,155, 15, 55, 43, 62, 51,222,229,187,103, 7,252,248,222,149,255, 31,150,182,240,124,124,251, -108, 44,159, 13,194,176, 11,116, 42, 67, 76,222,133, 26, 62, 14,133, 94,136, 84,236,132,120, 62, 32,106,237, 96, 63, 75,169, 73, -148, 58,221,176, 82,253, 48, 74,118, 24,141,251,206, 83,233,228,121, 63,233, 82, 33,151,128,240, 73,248, 64,103, 97,221,128,111, -233, 84,218,223, 33, 20,219, 3, 12, 69,249,200, 88, 72, 22, 33,125,208,117,109, 32, 10,255,124,140,222,117,105, 5,112, 1,212, -201,139,212,133, 63,139, 50, 29,138, 54,131, 98,191,115,207,119,234,132,193,242, 22,158,157,164,211,255, 51,168,250, 93, 76,138, -120, 37,233,219, 33,231,188,237,159,219,226,164,127,190,247,206, 37,139, 54,114,212, 56,164, 12,212, 8, 54,222,145,107,133, 33, -162, 93,160, 23,129, 12,137,141,224,162,195, 40, 69,219, 57,162, 16, 52, 65,208, 55,125,250,157,220,102,152, 46,252,217,193,220, - 96, 24,216,155,113,249,242, 21,144,130,233,100, 11,219,116,140,235, 17,123,151,118,168, 70, 57, 91,147, 2,136, 24,165,159, 49, -131,252,160,103, 80, 67,208, 11, 2,156, 15, 68, 23,177,189, 35,120,200,242,148,128, 55,214, 34, 9,229, 34,100, 82,166,167,139, -148,140,214,133,200,169,117, 4, 17, 49, 33,210,251, 64, 39, 65,169,100,157, 49, 74, 97,234,156,229,167,135, 28, 46,150,172, 68, -164, 87,154, 94, 27,114,157,113,119,251, 18,183,182,246,169, 39,219, 76,102, 51,174, 94,221,229,141,187,215,249,201,183,110,145, - 77,167,212, 91, 83,246, 71, 53,178,117,100,147,146, 50,203,160,115,104,163, 17,179,196,149, 86, 90, 17, 10,153, 44,121, 17,164, -243,136, 65, 71,208, 35,240, 90,130, 78,153,241,218, 40,140,145, 20, 82, 81, 74, 40,163, 72, 0, 27, 31,121,231,196,113,184, 95, -210,198, 21,253,147, 19,186, 71,167,248,117,139, 40, 51, 68,110,144, 34, 32,164, 70,230, 26, 25, 34,162, 75,239, 5, 17, 98,250, -187, 42, 71,204,114,244,245, 49,249,172, 68, 25, 69,172, 37, 49,151, 72, 9, 7,167, 43, 58, 89, 82,141,102,136,106,196,143,239, -141,249,207,189,227, 11, 46,242,155, 31,220,231, 35, 17,120,237, 43,183,217,125,185, 96,116,189,100, 45, 3,156,244, 40,224,171, -255,240,231,249,151,255,195, 59,124,231, 87,190,206,171,127,231,243, 20,206,162, 67, 64,134, 64,101, 45, 7, 77,143,127,250, 41, - 31,254,234,183,216,236,103,216,245,146,157,245, 9,187,243, 83,182,207, 14, 16,177,227,126, 16, 92,157,108,115,125, 52,166, 48, - 25,186,219,240,213,246,140, 59,221,130,141, 50, 60, 93, 52,188, 62,202,185, 57, 46,248, 90, 11,191, 83,228,168, 33, 71,104, 99, - 10,140, 49,196, 40,240,235, 53,210, 57, 92,107, 57,183, 61, 93,159,172,138,197, 98,141, 88,110,232,187,192,219,181,230,213,105, - 65,110, 52, 39,125,228, 55, 14, 27,150, 4, 76,157,145, 85, 37, 93,208,220, 59, 58,228,252,228, 0,225, 26,136, 17, 43, 20, 62, - 6,214,109, 79,227,122, 70, 64,180, 61,133,134,138,180,139,205,140, 36,203,106,234,178,164, 55,134,141,147,136,178,164,172, 70, - 4, 23,152,106,205, 56,215, 84, 58,199, 40,147, 24, 11,121, 18,226,158,186, 64, 39, 53,231,209,115,210,247, 20,164, 3,209,102, -200,189,184,156,101,156, 73,201, 76, 41,150, 81, 48,149,145,215,178, 20,222,179, 21, 61, 75,215,179, 10,142, 7,182,227,215, 79, -207, 56,177, 27,150,139, 57,113,177, 72,141,200,201, 25,177,109, 97,125,142,144, 33,133, 96,245, 3,179, 67,166,136,105,140, 68, -244,225,133, 83,114,130,217, 64,248, 43,125,124,255,168, 34, 31,254,146,226,238,242, 12,167, 75,156, 16, 56,105,120, 98,114,206, - 46, 93,226, 81, 94,115, 54,222,101,119,186,203,108,119, 31, 47, 36, 50,175, 88,106, 73,231, 45,182,239,105,186, 22, 99, 12,193, - 57,154,152,178, 36,186,118,131,183, 22,221,119, 8,151,162,108, 51,239,144, 17, 86, 93, 71,149, 25,182,124,164, 9, 30, 33, 37, - 89,219, 13, 33, 43,142, 82,128,243, 14, 47, 37,116, 9, 39, 61,119, 61,139,232,120,218,119,184, 64, 58, 68,132, 72, 46, 2,219, - 72, 70, 2,218,174,199,250, 84,107,174,229,134,130,136,114,158,145, 78,246, 75,233,147, 48, 80, 18,153, 42,141,140,130,189,114, - 4, 17,246,171, 41,187,229,132,253,233, 30,120,207,184,218, 66,153,156,158,200,118, 61,195, 71,136,202,144,143,106,118, 77,193, -168, 30, 97, 16, 20,121, 73, 32,173, 76,147, 36, 77,162, 17,116,125, 79, 67,164, 18,146,135,182, 67, 16,121,220,116, 76,144,252, -174,179, 67, 51,155,106,233, 76, 74,238,249,192,127,180,179,205,135,253,134,175, 20, 21,167, 10,246,178,130,247,230,167,252,244, -246, 62,239,109,150,252,196,222, 85,126,235,224,225,191, 38,246,251, 51, 16,141, 25,184,237, 67,215, 13, 67,142,164,122,110,233, -202,205,115, 97,220,139, 7,128,126,192,154, 74,157,210,140, 80,169,216, 5, 63, 76, 1,178, 36,170, 67,160,180, 98, 44,147, 7, -247,172,237,168, 68, 26, 3, 27,159,130, 71,112,126, 16,135, 13, 30,242, 24,241, 81,242, 90,145,161, 73, 5,232, 40, 68,116,112, -236,104,201, 88, 72,142, 93,155,198, 87, 23, 42,241, 48,164, 50,169, 60,173, 8,172, 27,210,214, 6, 73,129, 15,233,141,166, 72, - 42,255,174, 31,236,119,109,242,224,251, 54, 21,244, 23,167, 27, 58, 79,227, 35,165,211,225, 70,203,231,192, 26, 49, 8, 1, 47, -212,243,118,216,215, 91, 7, 93, 67,140,146,243, 85,199,198,192, 52,164,147,164, 28,222,137, 54,198, 52, 60,144, 49,217,110,172, - 67,239,237,241,157,165,227, 53,229, 56,246, 49,121,240,237,176, 99,151, 60,103,209,191,240,245,224,253, 31,240, 99, 95,126, 27, -162,160, 91, 55, 52, 93, 75, 12,112,114,188, 32, 56,205,229,253, 41, 50,138,164,110,207, 82,184, 9, 49,237,246,189,136, 88,231, - 81, 33,210,181, 46,105, 1, 69,234,180,145,145,202,104,106,157,186, 25, 31, 35, 27,235,159,229,255,246, 62,157,180, 54,222, 51, -239, 35,185, 74,123,248, 16, 97,233, 28, 77,136,120,163,104,148, 98,215,148,232,233,140,107,245, 4, 47, 12, 74,101,140, 77,201, - 91,147, 45,234, 24, 57, 62, 61,161, 95, 47,144, 62,224, 54,150,178,183, 76, 16, 92,158, 86, 76, 47, 79,241,163,156,172,177,140, -148, 34,100,169,135, 21,153, 70,150, 25,162, 48,132, 33,198, 81, 93,160,252,125, 28,130, 43, 36, 82, 43,116, 72, 7, 12,161, 69, - 50, 63,132,136, 70,144, 41,137,138, 17,233, 61, 15,207, 44,246,220,226, 99, 78,254,210, 22, 71, 33,195, 44, 55,184,239, 31,208, -172, 91,226,162, 69, 54, 29,172, 59,226,162, 33, 62,221,224, 30, 29, 33, 90, 75, 92, 54, 72,169,209,181, 70, 79, 42, 86,179,130, -197, 86,193,114, 82,225, 70, 37, 22,193,193,201,138,213,233, 41, 70, 6, 68, 94,242, 31,206, 74,174,232,140, 42, 42, 38,120,238, -105, 69, 94, 20,140,119, 46, 49,189,122,137, 27,175,220,226,246, 87,238,144,125,249, 37,254,179, 66,243,210,207,222,225,105,181, -224,157,255,254,143,248,147,223,120,151,207,127,229, 22,255,227, 63,249, 29,142,190,249, 1,211,109,197,150, 44,120,245,213,125, -174,120,203, 79, 42,193, 87,203, 49,111, 86, 51,102,249,136,135, 70,179, 46, 39,124,245,165, 43,188,117,117,143,219, 87,118,184, -148,143,248,169,157,171,188, 49,221,230,229,224,248,189,222,242,255, 60, 60, 69,202,130,127,220, 75, 78, 51,197,189,113,201,189, -237, 17, 31,205,106,244,164, 98, 60, 42,208, 42,163, 95,108, 56, 63, 95,128,136, 40, 29,185,225, 54,124, 81, 9,222,232, 87, 92, - 19,158,243, 78,176, 18,146,167, 22,254,217,131, 13, 31,158,174,233,137,200,113,201,206,172,228,242,168,166, 18, 37, 11, 20, 31, -157,159,115,182,217,160, 67, 67,215,183, 40,231, 19,238,183,235,217,207, 37,165, 72,110, 11, 39,101,138, 90, 21,145,133, 11,228, - 82,160,133,164,115, 22,215, 7,140,132,105, 93, 83, 73, 67,149, 41,114,149, 72,123, 81,192,153, 13,116, 49,221,215, 22, 40,149, - 98, 41, 36, 75, 36, 47,231, 25,175, 21, 53, 39, 81, 98, 5, 92,215,138, 93, 37, 57,113,129,195, 16,249,183, 71, 99, 58,151,238, -199, 39, 1,190,190, 90,178, 21, 45,135,135, 39,233,253,127,190, 30,216, 26, 46, 9,111, 59,143,232,134,184,228,139, 28,114,169, -147, 94, 98,208,246,136, 48,172, 38, 73, 90,158, 11,144,231, 95,244,248, 75, 11,187,214,196, 34, 35,150, 37, 33, 31, 19,242,138, - 80,143, 8,245,132,176, 53,195, 95,217,199,223,186,140,187,178,143,187,126, 11, 55,221,198,141,118,233,138, 17, 55,242,146,237, - 73,133,208, 6,235, 3,167,203, 6,103, 91, 68,244, 24,231,232,135, 88,236,190,217,224,125,106,128,100,183, 38,244, 45, 83, 34, -218,182, 20, 49,160, 9, 72,215,147,133, 68,165, 28, 41, 77,215,247,168,220, 16,218,110, 88, 69,166,130,231, 87, 29, 70, 40,230, -237,134,181,237, 57,179, 13,202, 7,100,244, 20, 65,240,165, 50,227,181,170,224, 70, 89, 48, 53,130, 50, 66,215, 56,148,128,137, - 18, 76,149, 98, 44, 53,106,200,166, 24,101, 25,219,121, 77,129,160,154,108, 39, 52,116, 86,176, 83,207, 64, 42,182,234,105,154, -234,148, 19,108,244,228,229,132, 50,171, 88, 71,203,104, 60,101, 84, 86, 76,165,162, 30,143, 17,222,145,149,229, 51,108,118,136, -129, 60,203,211,164,161,239,176,222,179,118,150, 35,223,209, 6,199,161,235,153,119,158,223,107, 27,162,179,105, 10, 3,140,165, -100, 25,225, 31,236, 76,248,229,179, 37,191,184,181,197,159,180, 13, 87,165,226,126,219,240, 51,219,251,252,225,114,206,151,234, - 41,255,114,121,202,191,121,227,206,191,166,148,182, 11, 16,188,139, 41,199, 91,188,128,145, 45,179,231, 9,108, 65, 13,187,105, -249,188,219,247,110,240,153,155,231,184,216,222,131,242, 84, 49,176,233, 3, 85, 85,160,131, 39,148, 37,141,119,196,102,195, 56, -207, 57,219,180,228, 82,176,177,142, 92, 11,172,181,100, 34, 69,126,166,159,153, 65, 88,131,148,236, 23,146, 54, 66,239, 29,185, -130,235, 74,243,212, 5,178, 40,208, 56,240, 58, 21,226, 63,155, 62,183, 57, 79,227,248,233,236,249,117,108, 6,150,123,166,211, -206,126,211, 63,247,226, 67,218,203,255,168, 44, 21,111, 65,141,135,160, 23,255, 67,214, 54,138,148, 18,151,186,127, 9, 34, 7, - 29,210,239, 0, 16, 59, 32,227,248,112,133,218,139, 92,178,130,221,188,160, 42, 13, 83,224,208,123, 64, 82, 2,141, 81,168,195, - 67,126, 66, 73, 22, 62,114,213,120, 30,106,153, 18,220, 46,172,117,127,193,215, 39,247,238,115,247,206, 93,188,116, 24,163, 80, - 66,113, 54,159, 51,221,154,114,112,176,230,234,229, 9, 40,137,136,130,177, 17, 44, 8,184, 76, 17,219, 52,134,180, 49, 32,181, - 72, 1, 36, 34, 29,220,188, 77,138,239,165, 76,250, 66, 41, 32, 87, 41,172, 38,196, 52, 94, 35,132,164,234,143,158,115, 11, 15, -186,158,206, 57,114,160, 48,146,210, 24,150, 34,242,250, 94,205,149, 60, 35,168,136, 50,154,229,201,146,147,179, 99, 26, 21,217, - 22, 5, 63, 51,221,166, 46, 75,182, 46,141,209,163, 28,217, 69,108,105,136, 70,210, 58,199,165,221, 9,106,119, 76, 53,239, 89, - 57,203,121, 8,228, 49, 32,137,104,163, 80,133, 30,244, 21, 32,181, 67, 12,150, 74, 37, 4,194,250,180, 22, 25,226, 99,133, 15, -105,250,137, 74,163,238,232, 9,153,230,223,248,220,140,227, 71,107,138,203, 91,204,246, 74,158, 78, 86, 60, 62,172,177,149, 37, -211,145, 8, 92,162,227,180,105,185,254,210, 62,157,236,249,214, 31,124,135,187, 69, 75, 49,170,200,166, 19,140, 74,153,235, 31, -182, 13, 7, 25,124,235,227,251,100, 85,141, 81,146,163,245,138, 27, 59,151,144, 1,166,221, 49, 71,118,143,203, 82,161, 0, 17, - 2,215,102, 99,108,132,166,245, 44, 59, 75,159, 37,182,194,127,153,149, 76, 17,252,164,146,228, 63,253, 83,252,224,115, 43,234, -227, 67, 54, 31,126,143, 95,124, 99,151,229,106, 13,167,115, 94,223,209,236,230, 37, 86, 73,176,145,220, 36, 91,209,182,140,188, - 33, 34, 97, 58,230,234,222,140, 81,153, 19, 4,236, 8, 69, 17,210, 65,108,164, 4, 63,119,220,240,251,173,227,151, 63,124,140, - 95,156,227,110,222,132,151,247, 97, 84, 32,164,224, 88, 75,222,172, 43,222,190, 50,130, 43, 99, 62,125,103,206,131, 39,247,153, -246,107, 94, 25,101,236,196, 64, 94, 84,220,113, 29, 31,206,159,242,127,124,175,225, 35,149,232,100, 58,147,196,160,216,180, 26, -145,101,108,215, 57, 87, 94,185,206,102,123,130, 59,188,196,236,248, 35,246,215, 11,114,215,242, 56, 43,248,104, 25,153, 24,197, - 90, 20, 68,165,200,138, 60,241,190,157, 37, 68,201, 44, 51,116,222,178,233, 28, 83,173,200,202,140, 3,219,225,188, 64, 27,201, - 90,192, 72, 41, 64, 49, 95,109,208,178, 96, 37, 90, 78,176,236,100, 5, 51, 41, 89, 57,207, 29,109,240,209,113,179,204, 57,160, -229, 82,208,140,149,230,172,111,121,173,204,112, 68,126,165,177, 60,104, 58,246, 11,197,217,186,101,108, 20,244, 61,213,100,196, -230,124,158,166,120,157, 27,178, 28,210,174, 42, 14,152,103, 49,196,184, 70, 13,194, 5,162,145, 63, 84,164, 5, 36, 46,190,115, -127,174,120,191, 88,192,127, 84, 65, 39,207,146,190,167,168, 17, 87,174,240,229,235,151, 41,178, 49, 31,135,192,227,205, 26, 17, - 93,226,238, 3,152, 10, 17, 83,116,109,180,142,168, 3,149,146,136, 34,167,111, 28, 90, 70,150,237,146,245,106, 78,219,183, 76, - 67, 67, 57,217,162,105,150, 88,219,130,144, 8, 2,210,123,116,240,212, 82, 80,111,230, 20, 58,103, 25, 28,151, 90,199, 90,103, -180,202,160, 17, 44,108, 79, 37, 20,174,235, 25, 27,205,122,189,192, 75, 1, 93, 64, 11,201,252,252,156, 85,136,172,250,134,162, -119, 72,239, 16,120,246,137,220, 44, 74, 10, 37, 81, 49,176, 4,156,118, 52,163,140,104, 35, 99, 97, 24,229,154, 45, 93,226,189, -103, 42, 20, 54,146,220, 42,179, 75, 4,239,240,163, 29,172,235,144,229,104, 64,177, 26,148, 78, 77,204,246,100,139,229,102, 73, - 94, 84,132,168,201,164,129, 76, 49,174,199,216,182,101, 50,174, 17, 46,164,120, 89, 36, 89, 38,177, 93,159, 8,155,218, 48, 95, -156,178,244, 61,171,174,225, 9,145,123,155,150,247,205,208, 60,102, 25,248,228,192, 90,153,146,255,250,210, 22,255,237,193, 41, -255,221,141,171,252,227,167,135,252,253,237, 41,247,108,207,141,114,196,255,122,112,192,191,119,233, 18,255,124,121,206,191,123, -233, 26,191,127,248, 20,197,206,221, 95, 34, 31,216,225, 38, 27,196, 96,234, 57,149, 44,252, 21,198, 57, 90,167, 16,147, 11, 75, - 26, 47,140,213, 61,207,169,112, 23,208,149, 11,113,221,179, 64, 4,159, 58, 94,235, 83, 39, 92, 21,100,163,154, 24, 35,151, 71, - 37, 85, 8,200, 92,147,245, 14, 19,192, 32,152,219, 62,177,197, 67, 36, 58,139,119,201,228,227, 90,151, 14, 23, 82, 38, 21, 57, -201, 74,214, 10,197, 37,173, 89, 74,168,133,102,233, 29, 19,173,105,188,163,139,146, 77, 8,233,116,244,103, 89,233,145,244, 4, -247,107,200,202, 84,152,241,233,119,189,232,212,173, 79,187,180, 24, 6,205,192,160, 48, 15, 46, 61,135,179,173,244,221, 13, 7, - 13, 72, 99,125,212, 48, 13, 48,195,140,203, 13,227,254,152,126,143,224, 94, 88,111, 12,138,124, 21, 89, 55, 29,135, 86,241, 82, -161,120,106, 29, 82,169,148, 74, 23, 19,205,205, 13, 7,129,167,173,227,212,246, 44, 93,196,218,144,198,250,222, 15,215,240,163, -191,238,189,247, 33,175,252,216,103, 40,234,146,172,168,184,125,247, 37, 66, 23,147,208, 79, 73,102,211,154, 66, 43, 2,130, 60, - 87, 73,188, 31,160, 15,150,174, 77, 98, 63,231,211,148, 48,248,128,141,129, 73,101,104,123,143,144, 2, 45, 34, 82,165,209,123, -231, 35,185, 86,212, 90,210,184,144,124,236, 33,210,249,192, 73,219, 19, 34, 84,185, 73,147, 1,163,120,184,105,185, 34, 97,247, -251,167,156, 29,156,210,172, 55,188, 90, 21,252,120, 61,229,198,254, 22,179,237, 9,123,121,201, 40, 42,140,117,112,214, 34,231, - 27,138,121, 71,239, 35,125,231,169,124,164,152, 84,132, 92,113, 26, 29,143, 36,204, 53, 24, 45, 17, 90,162,202,156, 40, 85, 90, -209,132,180,139,198, 70, 2, 73, 39,128,124, 30, 81,160,132, 64, 41,133, 48, 73,193, 27,149, 74,196,191,253, 49,163,203, 99,230, - 81, 97, 90,199,189,243, 6,191,182, 72, 37, 41,242,140,160, 12,148, 21,217,229, 93,102,151,198,232,155, 59,236,237,238,241,222, -135,223,231,192, 40,158, 68,248,211,249,156,127,241,209, 39,252,223,191,252, 33,223,253,173,143,121,242,221,115,238,127,235, 41, - 63,248,230, 1,143,191, 51,231,189,175, 61,225,221,211, 35,238, 77, 36,127, 18, 35, 47,111,111, 17,235,146,249,143,221,162, 51, -134,217,155,183, 17,215,118,161,168, 57, 63,239,153, 20,138,151,115,195,142, 0, 35, 4, 65, 74, 44,176,223, 54,188, 28,160, 78, - 87,136, 48,146,219,163, 41, 69,158, 92, 23,214,167, 52,177, 72,160, 19,145, 21, 2,103, 50,182,171,130, 40, 18, 71,193,104,197, - 40,207, 48,133,230, 20,201,147, 40,249,194,213, 25,183, 38, 99,122, 10, 38,235, 6,113,186,100,125,180, 68,228,134,185,139,108, -103,138, 91,165,225,202,164, 96,186, 91,161,119,118, 24,159, 58,110,133,134, 92,105,100,140, 16, 5, 83, 1, 69,220,240,253,195, -167,248,205, 28, 86,235, 20, 61,217,123,106, 36,219, 66, 82,107,193,164,202,248,210,229, 9, 63, 87, 78,121,115,179, 65,207, 15, -120,180, 90,240,125, 31, 49,194, 18,237, 6, 17, 3,189,117,196, 24,113, 94, 80,122,203,117, 26,110,216,158,171,194, 83,216, 13, -125, 51,103, 79,151, 84, 50,114,110, 29,211,188, 2, 34,167,235,142,162,200,152,247,150,117, 8,188, 57,158,240,199, 77,207, 79, -140,106, 76,150,113, 24, 2,159, 41, 11, 58, 27,184,149,101, 84, 69, 77,229,122,174, 22, 21,235,232,169,179,156, 83,103,217,209, -154,153,146,132,216,177,105, 61, 75,235,120,228, 67,154, 84,246, 22, 86, 77,106, 30,130,123,158, 14, 23,211, 71,133,208,105,133, - 39,244,112, 95, 94,136, 36, 7,221,132, 4,100, 8, 63,252,231,103,154,138, 23, 10,191, 76, 66, 89, 97, 52,236, 94, 38, 78,167, -112,247, 54,188,242, 38,255,254,235, 95,228,165, 91, 55, 25,143,119, 57,245,112, 96,138,164,198, 71, 19,116, 70,140,142, 32,100, - 42,122, 74, 16,186,150,118,179,132,213, 57,151,148,199, 45, 78, 56, 61, 63,224,119, 30, 61,162,136, 61,149,150,204,155, 21, 82, - 43, 54,109, 75, 41,192,119, 27,100,215,176, 75,100,199,187,148,150, 40, 21,187,182, 39, 71,176, 45, 5,165,179,232,190, 65,199, -200,194,183,172,251,134, 85,187,193,246,142,195,243, 51, 54, 77,199,217,249, 9,125,211,176,238,214,136,174,167,196, 81,186,158, - 50, 4,222, 30, 21, 84, 74, 81, 75,137, 33, 50, 70,144, 9,207, 30,138, 59,153,228,229, 66,179, 47, 4,183,117,198,231,138, 17, -149,183,188, 85, 76,168,198, 59, 92, 67, 83,142,182, 80, 49, 80, 84, 51,164,209,104,147, 51, 46, 70, 72,149,161,243,156,206, 91, -242,170, 6,165,168,181, 65,228,134, 74, 25, 60, 80,215, 37,222, 38,237, 72,146,140, 37,139, 31, 64,223,245, 4,215,163,162,224, -160,155, 51, 15, 61,143,154, 5, 31,250, 72,211, 54, 4, 33,137, 46, 37, 38, 34,224, 23, 70, 25, 95,223, 88,254,171,253, 75,252, -195,199,143,249,111,174, 92,229, 55,207,230,188, 90,230,252,243,179, 57,255,206,238, 46,191,219,172,248, 74, 61,225,187,109,195, -207,236,239,163, 24,223,249, 37,134,228,234,103, 40, 87, 31, 82,241,177,253, 95,173,176,135, 11, 5,248,144,141,174,228,179,177, -119, 42,218,242,121,161, 18,164,221,180,148,207,147,217,132, 76,105,109, 98,144, 71,215, 37, 91,101,129,145,146,206,167,206, 38, -119, 1,105, 36, 65, 8,106,239,232,108, 79, 31, 34,113, 16,233, 41,231, 9, 46, 32,227,160, 7,158, 47,210, 1,165, 11,168, 42, -137,164,158,120,203,174,212, 52, 70,176,140,130, 22,207, 18, 48, 58,121,149,125, 55,168,216, 95,188,222, 11,218,221,197,186, 32, - 12,192,157, 16,134, 34, 62, 4,212, 68,159, 58, 96, 51,232, 0,156, 75,133,120, 50,133, 73,145,242,162,155, 52,129, 64,103, 3, -144, 39, 41,250, 25,186,236, 52, 22,143,195,212,162, 75, 7,132,100,190, 76,207, 87,140,207,179,157, 61,220, 91,119,188, 58,206, -121,208, 58,218,144,246,236,243, 62, 32,124,100,222, 59,244,176,159, 62,105,147, 24, 48,177,224, 47,226,129,254,226,215,244,149, -183, 94, 99,182,183, 77, 57, 74,251, 69,173, 76,242, 23, 11,157,212,168, 6,252,144,128,100,148,120, 54,146,111,173,195,217, 56, -128, 51, 34, 46, 68,188, 79,162,188,186,214,140,139, 11,223,182, 24, 50, 34, 4, 82, 8,250, 24,217, 88,139,141,145,214,185,103, - 33, 18,142,136, 25,124,169, 79,206, 27, 78, 91, 75, 89, 23,108, 13,177,186,181, 82,148,101, 78,221,123,132, 23,200,117, 79,214, -121,124,215,226,251, 64,167, 33, 40, 73, 62, 42,168,148,196, 52, 14, 19, 4,186,179, 20,227,138, 32, 21, 15, 6, 64,210, 44, 55, -216, 16, 17,117,145,196,107, 34, 9,245,144, 98,200,102, 18, 16, 99, 18,238,137,132,193,149,198, 36,196,170,148,200,152, 70,184, -253,172,128,227,142,145, 48,132, 43, 35,212, 89, 75,253,141, 71,212, 55, 50,194,106, 73,189,238, 9, 27,216,222, 42,216,158, 21, -148, 85,142,237, 29,110,171,224,165,215,111, 48, 63, 92,179,152,207, 57, 56, 60,226,254, 59,103,184, 24,113,235,126,176, 26, 41, - 2,142, 56, 60, 56,237,176, 77,203,222,103,239,210,188,121,155,241,237,109,102, 90,240, 55,103, 35, 94,149,138,167,125, 75, 62, -169,216,185, 49, 99,186, 63, 33,107, 60,223,118,142,243,174,167,115,158,105, 81,240,165,124,130,107, 23, 24, 37, 8, 58,226, 46, - 95, 35,247, 45, 74,192,218,182, 60, 42, 10,158,110,206,233, 92,199,166, 89, 51,239, 90,142,188,227,220, 11, 58, 36,167,173,165, -223,244, 84, 85,198,121,107, 57,207, 52,215,246, 42,182,170,140,105,109, 88, 96, 56, 12,146, 71,239,127, 3,115,126, 68,190, 17, -184,147,134,251, 66,113,117,148,115,187,204,120,121, 39, 71,100,138, 75, 59, 53, 91, 78,145,183, 93,250, 40,146, 2, 47,224, 84, -106,102, 89,205,229,190,165,223, 28, 51,251,228, 29, 86,135,247, 40,124,129,237, 28, 58,128, 80,146,215, 13,236,201,136, 89, 55, - 28, 62,125,200,159,156, 46,248,160,235, 41,130, 77,136, 99,107,105, 90,203,198, 10,246, 84,207,181,216,243,102,132,219, 72,118, -109, 2, 47, 85, 82, 37,102,119, 8, 72, 21, 57, 93,174,153, 55, 61,107,111, 17, 94,178, 83, 87,188, 61, 29, 35,165,226,199,202, -146, 81,149, 49, 69, 32,155, 13,143,150, 75,214,222, 49,210,154, 49,142,135,206,210, 44, 78, 41,148, 97,175, 40,184, 92,213, 68, - 33,120,119,189,230,188,233, 56,179, 61, 31,110,154,180,186,115, 46,233,138,194, 48,241,107,125,170,222,147,113,250,174, 50,132, - 73, 66, 64, 97,116, 18, 87, 14, 17,199, 23,133, 91, 13, 69, 93, 93, 24,145, 46,254, 14, 80, 90, 35,140, 70, 78,119, 16,251,123, -136, 59,183,224,245, 55,225,218, 13,184,250, 18,236,221,228,238,238,117, 62,191,191,197,116, 84, 80, 22,134,211,206,242,201,226, - 20,188, 37, 70, 71,236,122,194,102, 77, 88,159, 17,150, 11,226,227,199,132,213, 25,241,195,143, 56,222, 44,248,238, 71, 31,113, -255,244,128,239,190,127, 15,119, 58,231,112,221,112,180, 88,147, 27,120,112,124, 76, 17,122, 14,142, 78,152,224,216, 18,145,157, -102, 67, 38, 21,133,128,202,246, 76,165, 70, 18, 40, 92, 64,185,158, 16, 28, 85,179,102,215, 89,122,103, 25,183, 13,133,235,152, -250,150,151,155, 21,175, 7,207,155, 50,240,122,215,242,213, 76, 51,113, 45, 55,137,236,234, 68,104,219, 86,154, 26,216,213, 5, -149,115,236,133,200,109,173,184,161, 4,175,168,130,151, 76,206,181,124, 76, 25, 5, 87,202, 45, 84, 86,176, 43, 11,172,150,236, - 25, 3, 85,157,146, 25,235, 26, 83, 22, 88, 4, 58, 87, 24,173,145,131,102,204, 72,129,212, 89,170, 33, 33, 82, 21, 9,243, 26, - 69,250,188,216,180, 61, 82, 43,122,107,217, 52, 45, 17, 79,192,209,249,150,165,237, 88,118,107, 14,188,231, 7,203, 22,111, 45, - 65,184, 36,202, 13, 22,132, 66, 70,248,185,209,152,223, 89,110,248, 47,118,183,249,223, 79,231,252,244,180,228,107,231, 27,254, -222,222, 46,191,124, 50,231,239,110,111,241,141,126,195, 79,143,198,252, 95,243, 51, 20,147,151,127, 9, 61, 40,217, 7, 16, 26, -153, 74,163,104,147,253,165,138,202, 63, 87,216,229,160,198, 20, 50,117,118, 46,166,150, 77,136,231,106,241,190, 29,238,198,193, - 43,205,176, 87, 87, 67,216,184, 76, 79,230,222, 40, 25,234,199, 82,160,140,164, 9,145, 82, 73,198, 42,112,210, 36,144,128,247, - 17, 33, 35,177, 11,207,206, 35,193, 37,186,220,179, 29,126,232,152,152,140, 69, 27,217, 26,167,200,187,131,181, 99,100, 20,157, -144,228,153, 34, 72,129, 68,146, 27, 69,215,118, 63,250,122, 47,196,125, 74,167,195,142,144,207,135, 88,201, 83, 4,114, 56,180, -244,118, 64,222, 14,172,119,100, 2,225,244,205,160,210,203, 6, 40,204,144, 51,159,107, 38, 10, 58,149, 14, 63, 25, 17, 47, 84, -218,129,203,240,156, 0,199,112,224,146, 98,144,175, 40,158, 6,199, 37, 35,217, 81,146, 67,235,217,143,176, 12, 48, 65, 96,173, -103, 17,161,233, 2, 34, 4, 98,102,210,193,227,226,223,252, 11,190,158, 84, 21,159,189,243, 18, 16, 89,175, 54,116,155, 6,231, - 60,101, 93,179,119,105,130, 12,130, 44, 55,212, 70,167, 4,164, 16,201,134, 32, 16, 31, 99,234,134, 92, 68, 32,153,212, 6,103, - 61,253,224,248,203,179,164, 24,143, 34, 21, 65, 49,176,124,146, 35, 39,117,233,193, 71, 58,235,233,250,192,249,198,114,180,234, -152,175,187, 52,234, 30,229,124,239,225, 49, 79,219,142, 85,140,108,156,227,241,102,195,185, 0, 21, 60,217,118, 69,147, 27,178, -189,154,234,198, 14,242,165,109,182, 62,115,153,226,198, 14, 98,167,166,120,105,139, 77,149,161,131,164, 28, 21, 60, 94,183,148, - 70,112,100, 29,171, 16, 17,101, 78, 81,164,113,100, 16, 67,204,164, 2,171,161,147, 18,127, 1,202, 41,116,202, 8,207,146,134, - 68, 9,129, 46, 53,147, 50,103, 60,183,244,203, 13, 92,174,104,103, 21,197,237,109,202, 73,137,253,100,201,225,161, 32, 8, 69, -115,214, 48,177, 29,217, 52,167,239, 28, 75, 23, 40,182, 42,110,189,113,157,197,227, 57,255,234,183,222,199,125,216,224,214, 61, -110, 40,229, 23,126,226,100,100, 75,247,159, 56,111,152,127,237, 62,229,205,138,171,119,175,242,153,222, 51,126,247, 4,117,222, -178,127,222, 49, 89,109,184,150,193,205,121,203,229, 16,248,172, 48,188, 90,140,184, 51,154,242,242,213, 61,202,233,132,221, 98, -151,157, 87, 95,226,234,181,107, 92, 63, 92,146,119,150, 32, 10, 94,255,249, 47, 51, 89, 69,190,181,110,249,188,202,200,219,150, -223, 62, 59,229,228,248,152,135, 15, 62,225,254, 71,223,231,193,135,127,202,175,127,227,187, 92,159,237,144, 21, 25, 81, 39,192, - 74, 84,138,168, 52, 42, 74,158,116,129,167,197,152,240,107,255, 27,246,221,111, 34,154, 99,100, 95, 33,246,118,248,183,174, 20, - 92,159, 22,236, 26,144, 54,208,244,144, 91,139,142, 17,235, 28,157, 86, 72, 36, 91, 50,114,107, 50,226,243,245,132,219, 85,205, -151,138,140, 75,199,159,194,226, 9,247,142, 78, 57,235, 34, 51,235,224,120,206,251,143,239,241,235,159, 60,228,119,143,214,248, - 62,176,136,130,220, 91, 38, 50,162, 20, 92,201, 97, 11,197, 77, 34,159, 81, 25,123, 66, 82,233,156, 66,104, 38,166, 2, 33, 9, -121,198,178,143,172, 17, 92,157,141,184, 52, 25,179,157,101,236,150, 5, 74, 40,174,103, 25,123,185,193, 7,207,121,179,228,201, -124, 78, 29, 61, 27,223,211,245, 61,206,121,206,219, 53,125, 12,196, 24,152, 72, 65, 93,105, 74, 60,149,239, 8,182,227,157,174, - 29,236,178,253,224,178, 25,194,171,242, 28,246,182,224,202, 46, 76, 70, 48,173, 17, 85, 9, 89,134, 48, 5, 66,167,213,131, 80, - 73,247,241,172,144, 59,135, 26, 18,177,245, 80,208,117, 85,160,198, 91,200,235, 87,145,175,220, 69,220,190,131,184,126, 23, 49, -189,130, 24,109, 67, 61, 67,100, 5, 72,137, 81,138, 27, 82, 83,106, 65,179, 90,243,240,232,132, 7,167, 79,137, 39,135,196,131, - 35,226,209, 9, 60, 57, 32, 30,158, 19,159, 30, 19,207, 78,137,199, 39,196,213, 2, 78, 78,136,231,115,154,163,179,212,104,185, - 14,214, 61,221,124,197,227,249,134,211,206,114,127,177, 97,164, 2,211, 16, 40,154,142, 81,174, 49, 49, 48,138, 1, 33,135, 84, -200, 0, 27,215, 99,164,161,114, 29,193, 59, 74,101, 24,117, 13,133, 84,212, 62,240,182, 50,188,102,114,110,168,156, 61, 41,184, - 82,148,236, 11,195, 29,165,185, 45, 52,175,161,216, 87,154,207,232,130,155, 89,205,110,136,220,150, 57,147, 16,184,161,115,182, -132, 34, 71, 50,173,102, 24, 4,117, 62, 3, 34,121, 94, 33, 76,198,184,168, 64,107, 76, 89, 16,164,162, 71, 32,181, 68,152,180, - 34,246, 8,138,204, 96,148, 65, 9,153,112,194, 68,230,182,167,245,158, 24,211, 52,108,221,117,104,173, 89,174, 86,244,193,179, -106,215,232,224, 88,180,107, 62,217,204, 33, 90, 54,209,243,209,217, 25,143,172, 39,244,158, 16,210,106, 37, 70, 73, 84,154, 27, -198,144,101,154,183,138,140,239,181, 45, 63, 89,231,252,105,215,241,246,164,230,183,206,151,252,194,206, 22,255,231,209, 25, 63, -191,189,197,175,157, 44,248,197, 27,151,135,162, 78,120,238,109,144,131,141, 44, 27, 10,186, 16, 9, 90,242, 87, 17, 85, 6,159, -246,204,113, 40, 28, 23,124,120, 6, 49, 71,176, 63, 44,144,123, 81,129,221,167,195,132,168,198,212,211,138,141,115,236,141, 42, -188, 79,128,130,105,150,130, 68,142,150,107,114, 96,221, 56, 92,151,196, 86,105,172, 45,137, 93,155,130, 96,252, 0, 89, 89,183, - 32, 3, 93, 7,251,147,156, 32, 5,199, 93,228,165, 73, 70, 47, 83,146, 88,144,130,177, 16,108,124,100,221,165, 40,209, 31, 25, - 87,122, 49,141,232,125,154, 60,200,144,174, 71, 12, 45,126,116,233,201,179,131,143,223,133,231, 93,126,240, 73,137,127,209,113, -203,129, 31,175, 21,228,154,237, 12, 22, 46,178,149, 9,234, 76,178,236, 6,225, 92, 74, 32, 72, 1, 57,241,197, 3,196,176,202, - 80, 17,239, 60,109, 4, 17, 36, 70, 68, 14, 99, 68,133,192,177,183,228, 90,114,218,245,180, 33, 32,163, 32, 51, 17,223,251,212, -173,255,168,107,188, 96, 4, 61,120,204, 91, 95,248, 28,163,233, 24,188, 71,162,121,114,248,104,208, 58,100,108,207,106,182, 70, -121, 26, 30, 12,231, 18,165, 5,189,141,207, 94,234,222, 5,214,182, 99,213, 88,164, 6,219, 6,156,135, 34,229,148, 38,170,152, - 72,236,240,214,122, 70, 42, 57,169,227,112,141,109,111, 17,192,122,227,112, 3,113,204,122,207,238, 86,197,162,241,204,231, 75, - 30,247, 61,243, 81, 73,190, 55,193,111, 23, 92,185,182,141, 40, 13,187, 47, 95,162,188,190, 13, 59, 37,155,182,231,147,147, 57, -199, 71,115, 30,156, 47,121,178, 89,115, 30, 2,203, 0,123,179, 10,165,224, 97,223,113,214,122, 62, 58,183,156,116,112,115,167, - 76,113,178, 98, 48, 52, 8,153,222,220, 82,208,137, 20, 3, 28, 11,147,166, 44,133, 70,101, 6,145, 25,188,148,100, 59, 5, 38, - 87,104,231, 40, 15, 86,152,101,159, 14, 0,153, 34,191, 54,161, 13,208,156,247,216,190,225,254,123, 31,114,115,225,169,175,111, - 35, 8,220, 91,121, 86, 86,113,235,141, 91,180,249,152, 7,239,253,224, 89,151,158, 30,138, 4,122, 77, 15, 8, 8, 52,130, 53, -199, 95,251,148,211,218,241,234, 43, 55, 48,227,196, 65, 8,181, 98,147, 43,186,220,160, 34,140, 60, 84, 66,160,103, 53, 98,127, - 66, 48, 25,178,208,112,109, 10, 70,164,108,237,195, 5, 90,101, 68,149,163,119,119,248,212, 20, 60,169, 39,252,157,207,191,204, -246, 75, 47,243, 73, 52,220, 47,115,186,173, 45,150,213, 22,171,106,196,141, 75, 99,222, 63,123,202,175,127,247, 29,126,245,227, -202,128, 32,160, 0, 0, 32, 0, 73, 68, 65, 84, 7,124,245,165, 59, 84, 69,198,163,222,243,237,133,227,221,206,211,245, 14,166, - 21,188,243, 77,196,227, 71, 8,191,225,120,114,139,217,108,196,213, 12,214,125,224,253,121,207,102,213, 50, 81,130,176,106, 88, -180,107,122,157,225, 98,164,170, 43,114,173,153, 25,195,165,178,102, 87, 41, 94, 26,111, 33,122, 75,190, 62,166, 57,123,196,239, - 61,120,196, 31, 60,121,200,111,124,250,136,251, 77, 64,138, 36,128,148, 67, 66,217, 76, 5,110, 41,201, 37, 4, 87,116,198,171, - 89,197, 94, 62,162, 30,111,145,229, 5, 85, 94, 33,141,102, 82,214,156, 5,207, 90, 75, 38, 69,141,204, 52, 99, 83,160, 77, 10, - 28,217,205,147,207,124,229, 60, 62, 4, 86, 49,249,237,181,210, 16,225, 90,150, 83,232,140, 76, 8, 58,151,160, 39, 99, 41,216, - 82,234,255,229,236,205, 98, 52, 77,207,243,188,235, 93,190,237, 95,107,239,174,238,233,233,238, 89,201,225,112, 68,138,164, 40, - 75, 98,168,213,202,130,196, 65,156, 88,200,102, 69,112, 16, 64, 8, 16,228, 44, 1,124, 66,192,201,137,207, 28, 32, 1,146,200, -128, 3, 40,113, 2, 91, 32, 98, 71,118, 44, 75,150, 21,209,220, 68,114, 72,206, 62,189, 76,239,181, 87,253,219,183,190, 91, 14, -222,175,186,123,134,155,236, 2,126, 84,117,119,161,250,223,234,123,222,231,121,238,251,186,217, 81, 10,213,180, 12,132,229,237, -186,141,109,141, 76, 98, 78,195,112, 13,198, 83,216, 88,139, 81,174,147,205,232, 4, 26, 78,249, 11,107, 57, 47,108,140, 25, 76, - 51,142,165, 64,166, 89,188,169, 4, 53, 29,163, 54,182, 25,188,252, 60,159,120,249,101, 94,125,245,167,152, 95,189, 76,184,254, - 34,234,202, 85,244,245,231, 81, 59, 87, 80,147, 29,228,120, 3,161, 52, 34, 73, 16, 82, 61,177,231, 54, 53,101, 83,243,156,175, -169,231,199, 28, 31,239,241, 79,223,122, 19,110,125, 0,123,199, 80,206, 96, 81, 18,108, 67,112, 29,161,173,163, 96,237,169, 6, - 40, 60, 93, 7, 92,191,146,116, 29,194,116, 96, 90,124, 80, 44, 2,188, 58,204,184,156,167,100,125,150, 70,166, 83, 50,169,112, -222,146,244,209,210,214,199,119,122,174, 51,164,109,201,210,140,145, 74,184,144,102, 76,133,100, 59,201, 24, 34,152,232,148,137, -212,228, 74, 49,206,198,228, 18,182,134, 27,108,138,148, 66, 37, 12, 68,194, 16, 65,138,100,154,230, 72, 23, 24,164, 5, 69, 82, -144,168,148, 44,159,162,116,130,146,241, 57,209,249, 16,153, 42, 66,154,129,140,155,215,144, 36, 24,169, 8, 64,235,124, 44,226, -198, 68,144, 40, 2,235, 61,199,229, 10,227, 5,149, 49,164, 50,238,207,165, 15,212,101, 69,227, 45,117,221, 34,130,231,184, 62, -101, 97, 13,173,173,217,107, 74, 58,215, 49,146,146,155,203,146,198, 58,188,148,132,198, 16,180,130,208,114,162, 19,158,215, 9, - 7,174,229, 83,217,136,111, 85, 13,175,165, 25,239, 52, 13,159,155, 12,249,191,143,206,248, 43, 23,182,248,221,131, 99,254,234, -238, 54,191,123,103, 15,197,228,218,151, 30,239,181,207,241,175,169,234, 45, 20, 42,182, 87,169,254,137, 35,219, 15, 41, 54,206, -119,235,198,199, 23, 86,208,123,175,195, 19,127,251, 99, 59, 91,255,103, 5, 66,231, 80, 20,108,108,174,177, 83,196, 12,221, 52, - 31,176, 62, 24, 49, 25,229, 56,161, 9, 4, 58,227,233,172,137,204,119,223,171,200,203,182,247, 95,244,227,240,178,142,130,181, -206,130,212,148, 4,106,175,185, 58,148,212, 8,106, 4,195,158, 77,126,210, 5, 20,208, 56, 27,173,112,222,253, 24,240, 78,191, - 74,120,140,120,237,119, 94,162,159, 60, 72, 17,213,239,189,248,235,241, 27,252,233,142,191, 63,241, 33, 99, 10, 93, 93, 59,158, - 29, 74, 22,109, 96,213,122, 66,214, 7,192,208,131,105, 68, 63, 50, 87,231, 85, 38, 60, 41,242, 33,208,121,143,149,208,244,193, - 25,181,131,137,214,204,218, 14,153, 42,180, 11, 92, 72, 36, 75,239,113, 56, 48,242, 7,215, 12, 31,149, 73,108,174,241,210,199, - 95, 68, 41, 77, 49, 40, 80, 34, 33,205,115,108,227,144, 73,202,250, 90,193, 36, 79,250,194, 30, 98, 10, 27,158,166,117, 88,225, -105, 26, 67,211, 57,108, 99, 35, 87, 31,143,237, 28,203, 30,100,146, 75,193, 86, 30,139,143,146,145, 41, 46,132, 96, 51,141, 8, -200, 32, 4, 77,107,209, 90,145, 17, 69, 88,153, 80,172, 15, 50,172, 11,236,205, 74, 18,165, 9,233,144, 98,107,202,231,174, 95, -228,217, 11,235,220,153, 87,188, 89,214,140, 70,209,235, 51,239, 12, 75, 99, 48, 62, 80, 19, 56,177,129, 54, 85,124, 80,182,220, - 42, 43, 92, 34,216, 26, 23, 84,222, 83,249,192,229,245, 1,163, 60,146,175,188,232, 81,172, 33, 62, 93,149,241,156,185,192, 92, - 72,150, 82,210,106, 77,208, 10,159,164,184, 68, 81, 37,146, 71,139, 26,115,255,132, 97,145, 66,221, 33,239, 45, 73, 79, 13, 90, - 56, 76,170, 73,183, 11,144,158,211,155, 7,172,150, 71,220,124,116,151,231,221,136,201,230, 4,175, 60,195,105, 78,174, 20,207, -188,112,145,171,159,125, 14,207, 17, 15,222,217,195,145,227, 46,104,124,161,120,249,175,253, 69,126,227, 55,126,142,223,250,207, -126,137, 63,186,188,206,103,127,237,243, 60,248,211,155,156,125,235,251,252,225,226,148, 7,211,109,190,126,188, 0,223,241,135, -183, 30,241,198,195, 99,190,242,214, 13,222,153,207, 56,116, 49, 64, 35,117, 34, 34, 59,235,142,174,170,152, 61, 56,230,225,141, - 91,220, 63,188,203,172, 90, 48,115, 29,135,141,164, 29, 13,241,121,194,160,241, 36,235, 5,183, 27,207, 89,219, 69,142,148, 10, -180,217,132, 79,125,236, 5, 54,167, 59,188,111, 2,255,117, 6,227,195, 35,190, 38, 70,220, 91, 5, 94,239, 28,167,214, 16,234, - 25,225,224, 30,226,213,207,194,231,126,137,191,246,197,207,243,189,189, 25,223, 45,225, 52,207,113,149,229,230, 73,203,124,213, -178,142, 97, 77, 39,176, 40,185,107, 91, 6,217,128, 86,194, 40, 77,153,166, 26, 41, 96,152, 15,113, 82,145,228, 3,200,199, 12, -164, 96, 61,180, 28,183, 21,207,109, 79,120,105,119,157,207, 62,187,195,206,214, 58,175, 76, 7,204,140,101, 77, 9,174,167, 25, - 47, 36, 57,207, 38, 5, 23,139, 33,195,225, 4,157,230,120, 47, 16, 66,160,243, 28,129,128,222,150, 54, 24,164, 92, 28, 79, 25, -228,154,113,150, 50, 74, 53, 3, 45,153, 68, 21, 40, 37,240,168,118, 40,165, 49, 42, 33, 79,115, 6, 89,138, 78, 52,235,195,132, - 4,197,133, 60,229,229, 52,101, 67, 10, 84,103,168,131,197,250, 64,237, 3, 39, 58,139,157,121, 49,238, 25, 29, 27,144, 15, 96, -184, 14,131, 53, 80, 5,159, 31,141,121, 46, 79,153,166, 5,163, 44,225,134, 84,145,121,144, 36,168, 65,138,202, 51,210,205,117, -254,141, 11, 23,248,249,231, 94,230,194,133, 93,174, 76, 47,115, 43,159,146, 76,182,208, 58, 67, 43,133, 84, 10,233, 37, 82, 4, - 68, 83, 34,140,129,217, 30,156, 60, 64, 28,220,133,131, 7,188,243,254,123,188,113,235, 22,239,222,190, 11,135,143, 96,177,136, -141,137,233, 89, 36, 61, 49,244,252, 26, 25,254, 28,189,158,240, 62,174,173,178,140,124,115,194,120,156, 83, 46, 99,147,179, 61, - 28, 18,100, 92,153,106,161, 48,222, 19,165,110,113,216, 11, 1,167, 18, 50, 33, 41, 84,194, 24,197, 84,105, 82,149,144, 11, 73, - 34, 69,204,136, 72, 11,180,135, 60, 31,160,101,130, 78, 50,178,116,138, 82,146,172,216, 70, 39, 89, 4, 67,233,140, 68,231,232, - 36, 69, 39, 3,116, 62, 0,227, 80,121, 14, 89,134,212,154,144, 36, 40, 33,240, 34,174,126, 91, 4,171,224, 34,237,219, 71,158, - 99, 23, 34,153,239,164, 92,209, 4,208, 40, 78,218, 37, 45,209,198,108,186,142, 16,160,108, 42,172,181,212,166,229,164,158,145, - 72,205,202, 86, 28,155, 18, 37, 28,169,212,156,153,134,111,159,214,184,198,197,130,158,165, 96, 12, 97, 48,192,181, 49, 18,252, - 51,131, 17,127,127, 85,241,159,110,173,243, 59,167,167,252, 59,147, 53,190,124,114,198,191,191,190,198,223, 59,216,231,183,175, - 94,225,111,223,127,200,111, 63,127, 13,193,245, 95, 13,116, 13,232,252,113,199, 27,187,192, 52, 22,119,149,246, 34, 48, 34, 33, -237,233, 24,207, 31, 39,156,179,150, 39,218,250, 62, 4, 70,165,113, 44,253,244, 1, 32,190, 83,162,162,114,178, 1, 91,107,252, -236,218, 56,146,178,242,130,245,241, 6,153, 20, 81, 10,154, 72,230,203, 51,142, 23, 53,111,220,189, 19, 1,250,174, 15,135,233, -120,146,140, 38,125,196,196,218,250,137, 74, 61,201,216,152,228, 52,109,111, 21,200, 5,117, 31, 46,103,122,129, 86,181,172,227, -232,190,106,126,252,227, 27,228,209,190,199,135,207, 37,143,191, 62,247,129,123, 27,159, 7,251,145,174, 56, 27,197, 16, 28,157, -146, 41,137, 77, 19, 92, 99,144,153,194, 11, 17,119,223,222,163, 18, 21,179,225, 77, 27,253, 51,210, 63, 9,199, 57,159, 80, 60, - 29,178, 35, 50,178, 73, 70, 46, 20, 99,160, 72, 4, 11, 19,208,192, 18,207, 98,213, 33,117,136,194, 55,249,147, 31,231,127,245, - 55,254, 58, 91,187,235,172,230, 21,213,210, 96,203, 22, 65,194,213,107,187, 92,187,184,206,206, 70, 30,173,248, 46,208, 57, 71, -217, 57,102,179,134,206, 89, 14, 14,151, 52, 62, 16,188,167,173, 76, 68, 67,138,128,206, 36,215,118,198,108,140,115, 46,141, 19, -106,235, 9, 61, 89,202, 7, 72,130,167,181, 14, 27, 60,243,170,195, 4,200,165, 96,185,108,162, 74,117, 99,128,107, 13,124,103, -143,159,255,133,143,115, 79,122, 30,182,142,129, 55,152,163, 5, 15,171,150,195,174, 35, 47, 82, 62,249,252, 22,137,140, 32,140, -101,101,185,119,188,194, 54, 6, 43,161,154, 55,164,153, 34, 75, 83,190,240, 83,207, 32,147, 24, 42, 50,202, 82,210, 52, 33, 32, - 72,100,244,133,203,214,226,107,195, 73,217,177,183, 50,172,156,199, 17,131, 94, 38, 90,177,145,197, 0, 27, 41, 4,239,175,106, -230,239,157,145,221,127,196,171,121,202, 39, 46,172, 83, 92, 25,146,140, 51,194,131, 37, 85,145, 97,159, 29, 51,219,159,179,247, -250, 45,234,197,156, 66, 74, 62,243,234, 39,209,215, 54, 73, 47, 76, 57,182,142, 71,166,227,254, 89, 75, 82,151,236, 90,195,239, -126,253, 3, 94,122,113,135,195, 58,230,149,255,235, 87, 39, 12,115, 77, 3,252, 63, 55,207,120,176,106, 9, 85, 69,168, 43,218, -179, 35,194,235,239,240,220,231, 94, 98,224, 44, 95,251, 95,190, 79, 69,135, 66, 60,161,196, 95, 29,242,243,159,221, 33,155,142, - 96,186,206,188,172,217,120,230, 25,190,246,213,175,114,252,250,119,162,237,121, 48,226,139,175,188,198,197,151, 63,206,120,109, -139,170,156,113,227,224, 17,167,203, 51,106,229,185,127, 88, 51,188,184,205,231, 95,249, 36,172,111, 51, 48, 53,191,109,106,178, -214,241,245,197,156,255,166,216, 37, 76,135,228,120, 6, 18,190,119,120,138, 56, 61,224,123,127,245, 87,216,185,182,193,223,250, -211, 59,252, 79,239, 30,146,140,134,108,100, 9, 63, 55, 25, 32, 23, 21,175, 77, 37, 63,163, 19,210, 89,201,236,224,144,253, 44, -165, 73, 19,158, 25,228, 4,231, 16, 66, 98,165,160,171, 26,230,120,222,173, 91, 14,202, 21,123,173,225,164,109, 89, 27, 12,249, -194,230, 26, 71,213,130,177, 82, 72,107, 57, 62, 59,162,109, 74,174, 16,248,124, 62, 38, 79,114, 10,157, 50,154,110,129, 76,177, -193, 83,219,134, 90, 72,218, 52,225, 56, 4,190,221, 85,140,135, 3,108,154,179, 51, 46,240, 62, 48, 12,113,197, 52,206, 18,142, -202,150,183,155,134,195,210,176, 32,112,214,182,164,210,179, 22, 36,185, 2,235, 61,163, 4,158,243,158,103, 85,202, 56, 85,204, -234,138,239,174, 74,246,186,138, 47,175, 42, 58,231, 8, 73, 66, 72,114,130, 46,122, 32,151, 36,168,148,207,227,121,105, 90,240, -188,150,156, 86, 37,243,106,201,172, 58,101,191,238,248,238,170, 66,121,251,120,212,254,249,201, 58,159, 26,141,120,254,210,117, -198,131, 2,147,104,222, 61, 61,227,110,217,114,218, 25, 22, 77,205,161,115,184,230, 12,187, 60,195,204, 43,236,209, 25,246,240, - 33,118,178,137,179,101,236,137, 58, 27,107,182,181, 31, 86,200,255, 57,125,239, 63,170,207, 3, 16,151, 47,178,117,237, 18,215, -243,156, 11,243, 5,207,121, 79,158,167,172,165, 25,235, 58, 97,172, 19, 84,112,196,129,159,196, 57,131, 82, 17, 39,158, 73,205, - 80,104,118,101,194, 68, 39,100, 34, 68,236,180,233, 72,148, 6,227,208,249, 0,165,242, 8,109,209, 26,130, 66,166, 89,252,218, -152,199, 90, 29,172, 69,140,167,224,226, 66, 75,168, 72, 33, 68, 39, 88, 66,236,192,149,192, 33, 56, 1, 78,148,231,216, 65,173, - 35, 29,175,108, 12, 3, 33,104,172, 35,193, 19,172,163,234, 90, 12, 14,108, 84,229,111, 10,193,220, 52, 76,116, 70,103, 91, 62, - 88,158,176,165,115, 90,223, 48,146,158,214, 91, 2,129,131,106,201,239, 31,158,113,235,160,198,121,135,207, 51, 66,112,132,233, -152,224, 28,122, 99,141,207, 78,214,112, 66,241, 31, 93,121,142,255,126,111,143,191,190,187,203,223, 61, 57,226, 63,220,220,230, - 43,139, 5,127,121,235, 34,255,231,193, 62,255,197,149,203,252,239, 15, 30,245,101, 87,141, 98, 65, 20, 61, 14, 53,205, 97, 52, -130, 76,245,216,215, 65, 31, 88,210, 23, 21,107,127,252, 43,124,254,239,143,191,173,151,108, 42, 27,139,179,232,231,182,231, 5, -253,156,239, 62,204,120, 81,199,116,168,221,193, 24,161,115,214, 7, 99, 74,211,161,146,140, 86,104,182, 39, 41,139,230, 17,151, -119,119,120,120,231, 94,124, 51,153, 94,124,103, 1,209,244,224, 23,243,228,190, 8, 29,207, 4, 1,230,214, 19,180, 36,145,146, - 85,229, 24,165, 26,219, 89, 42, 47,158, 0,115,126,210,129, 5, 98, 55, 46, 68, 60, 21,132,167,222,185, 45, 17,135,123,190, 82, - 80,242,169,231,225,220,218,214, 64, 40, 64,200, 72, 92,243,113,204, 51, 32,198,204,154, 92, 65, 3,173,177, 40,149,226,154,158, -200,236,207, 45,105, 93,188, 31, 90,127,100,138, 96, 80, 78,147,104,193,161,243,172, 7,201, 64,192,178,127, 9,178, 92,210,214, -238,201,110,254,252,240,245, 35, 62,222,248,254,247,249,165,139, 95, 96,178, 54,192,217,146,249,209, 49,222,194,157,219, 2,235, - 2,163, 98,135, 52, 81, 72, 9, 34, 8,242, 62,196, 36, 24, 71, 62,201,209, 61, 53, 47,209,178,247,211,199,149,201,225, 89,141, -181, 17,212,179, 51,201, 88,116, 14,173,100,188, 96, 43,193, 64,107,132, 15, 36, 18, 58,235,232, 44,140, 70, 25, 4,207,122,150, -224,179,156,147,181,146,255,235,107,239,242,173, 7, 55, 49, 4,142,218,154,129,214,108, 14, 71,228, 50, 67,231, 41,139,163, 37, -195,201, 24, 33, 37,131, 81,130, 22,146, 70, 72, 78, 15, 78,104, 22,139,232, 58, 84, 18,153, 42,190,240,201, 43,209, 77,145, 9, -164,148, 88, 31,122, 65, 28, 88, 37,105, 83, 73, 85, 75,200, 21,174,141,235, 5,235, 5,173,115, 44,141,162, 72, 97,146, 43,252, -250, 6,249,238, 26, 73,119,133, 27,123, 43,110,188,113,200,231, 15, 13,215,118,167, 20,187,129,201,237, 57, 62,129,209, 48, 99, -247,167, 95,196, 55, 29, 77, 8,148,193, 50,108, 91,244,131, 19,100,158, 98, 69, 28, 63, 94,200, 53,137,151,252,230, 23, 95,228, -209,202, 32, 71,146, 89,166, 88,174,103, 12,148, 98,101, 45,131, 75, 19, 46, 47, 90,174,135,130, 45,189,141,224, 10, 27,191,246, - 51,188, 51, 43,105,170,138,255,224,111,190,200,124, 85,178, 44, 27,156,235, 96, 80,112,244, 15,255, 5,237,149, 43, 28,252,179, -215, 17, 87, 78, 16,163,130,157,151,174,115,248,250,119,158,160, 66,171, 21,255,228, 91, 95,197,125,235,171,216,203, 87,113,179, - 85,164,130,209,224,187, 94,211,245,240, 1, 55,206,142,248,212,171, 63,207,229,221, 11,180,235,107, 12,165,224, 89,224,139,123, -111,115,147,231,201, 70, 35,180, 13,184,151,174, 33,222,168,249,239,254,217,187,252,229, 87,118,249, 59,239, 30, 96,219, 14,225, - 44, 51,165,249,167, 39, 51, 46,102, 57,133, 83,124,236, 74,206, 51,151,214,185,168, 53,223,126,247, 77,182, 54,118,152,121,207, -133,209,128, 82,198, 14, 89, 21, 25,157,181,116,198,210,228, 19,156,168, 89, 75, 11,174,140, 52,167, 50,112, 97, 48, 65, 3,243, -176, 98,115,125,155,180, 42,184,140,194,119, 53,169,119,100,162,183,216,246, 57,243,193, 25, 72, 83, 66,103, 56, 9, 29,161,103, -115,111, 56,143,233, 44,178, 79, 62, 20, 46,176,240, 29, 77,127,206,214,120, 78, 59, 71,112,150,210, 56,146, 52,163,114, 14, 17, - 20, 99, 60,155,195, 33,211, 44,163,109, 13,149,202, 64,181,188, 97, 60,198,247, 90,156,115, 55, 80,240,100, 56,214, 70, 3,118, - 16,124, 58,207,216, 21,146,113,162, 72,139, 33,165,183, 20, 98,131,183,155, 99,132,214, 72,162, 96, 75,107,205,165,241,144,204, -121, 46,122, 24,121, 16, 85,205,101,235,185,215, 46, 16, 93,195,237,211,135, 84,135, 39,188,183,172,120,111,255, 4,149,128,169, -154,168,140, 95,156,112,174,210,249, 97,172,120,241, 19,138,118,248,136, 7, 62,252,168,127,111, 3,179,178,230,142,243,200,182, - 67, 89,195,101, 41,209,137,166, 9,130,179,166, 35, 65,160,149, 34,113,158, 84, 71,226,104,176, 30,165, 3, 66,122,132,140, 36, - 75,231, 3, 9,146, 36, 29, 18,108,131, 74, 7, 8,153, 18, 66,136,235, 5,145, 34,164, 67, 40, 5,198, 68,127,191,236, 31, 89, -154, 64, 83,130,206,145, 82,225, 93, 11, 40,130,181,136,158,143, 17, 2, 49, 92, 71, 43, 86,157,167, 9,129, 89,103,232, 84,204, -101, 95,153, 24, 36,212,118, 45,198, 70,226, 94,133,165,232,101,139,247,156, 97,164, 82,238, 87, 51,102,245,146, 84, 42, 62,168, -207,208, 66,112, 22, 28,101, 91,210, 25,203,235,103, 11,110, 63, 92,224,187,152, 65, 18, 86, 51,194,100,147,176,170,160,200,176, -167, 51,190, 97, 60, 63,187, 53,229,111, 62,186,203,127,187,115,137,191,189,255,136,223,218,186,192,223, 61, 57,226, 55, 55, 47, -240,229,195, 71,252,187, 91,155,252,157,253, 99,126,227,210, 46,138,209,115, 95,194,119,177,155,117, 54, 94,232, 7,195,152, 23, - 46, 68, 44,234,231,187,117,215,211,211,126, 82, 81,255,145, 65, 48,105, 52, 42,247,140,111, 66,140, 23,140, 49,160,154,193,176, - 96, 99,178,206, 88, 4, 58, 33,120,118,247, 42,137, 82, 20,197, 0,145, 38,140, 6, 25,203,198, 80,117, 13,206,195, 73,240,125, - 18, 27, 79,132,126,193,245, 33, 49,231,161, 37, 46,142,204, 73, 40, 3,164,131, 20,239, 2, 77, 27,177,166, 85, 99, 49,153,142, - 99,122,111,250,209,116,127,197,210, 58,250,199,165,140,143,253, 60, 4, 69,246, 48,115, 84,175, 72,127, 42,181,174,231,199,208, - 17,239,131, 15, 63, 8,122, 73,116, 20,102,232, 12,167, 85,159, 95, 46,216, 45, 4, 71,173,103, 43,133, 60, 17, 17,119,159,193, - 56, 81, 84,166,143,179,125,122,167,254,209,131, 84,162, 49, 45, 84,193,177,155,104,150, 62,208,122, 71,234, 37,171,208,197, 34, - 37, 60,104, 98,148,172,251,241, 35,248, 59,111,191,207,167,126,238,103, 25,142, 10,118, 54,214, 73,178, 12,103, 96,243,194, 26, - 73,162,201, 18,141, 18,146, 60,141, 99, 48, 2, 88, 23,250, 61,116,212,104,139, 62,197,206,135,120,225,132,128, 23,176,168, 13, -165, 13, 84, 33,208,250,152,230, 38,129,129,150, 88, 23,176,190,119, 10,218,248,124,183, 54,224,157, 64,229, 41,149,130, 47,127, -229,117,190,118,231, 38,167,109,203,237,179, 37,169,144,108,143, 70,116,206,144, 74, 5, 2,150,101, 73, 87,213, 52,166, 99, 57, - 43,169,140,101, 53, 95, 32, 16,188,246,234,115,124,246,181,231,216,125,102, 7,165, 36,182,115, 76,134, 25, 82,168, 40,133,176, -177,163,213, 90,245,246, 59, 79, 75,136,108,111, 2, 66,120, 52,129, 68,123,164,128, 65, 42, 25,166,130,253,147,150,121, 11, 42, - 83, 36, 91, 3,212,229, 9,179, 44, 99, 88, 40,242, 97,138,203, 4,170,181,100, 37,100, 13,164, 85, 75,162, 3,162, 72,104,206, - 42, 86,119, 78, 57,123,247, 30,195,195, 37,195,221, 33, 94, 9, 38,169, 98,154,105,214,165,228, 84, 9, 78,133,100,238,161,242, -129,131,206, 81,181, 14, 21, 4, 63,181, 57,100, 60,204,184, 58, 29, 48, 65, 49,237, 28,239, 46, 44,143, 42,207,137, 87,212, 94, - 81, 76,167,232,193,152,201,231, 95, 99,109, 52,225,149,159,126,137,245,221, 93,142,110,220,230,180, 58,163,104, 20, 7,181,197, -250,238, 9,255, 27,112,203, 57,214,212,184,182,194,183, 29,206, 70,107,142,111, 43,252,254, 62, 15,125,205, 67,161,121, 36, 20, -186,110,248,189,217, 25,223,156, 47,216,117, 21, 74, 15,200, 58,195, 39, 22, 11,218, 79,127,140,175,220,221,231,247,254,223, 63, -160,222,187, 11,123,119, 16,123,247,225,225, 7,136,211,135,212,203, 83,110, 39, 99,126,126,107,196,118,154,144, 2,215, 77, 66, - 53, 59,225,127,120,247,117, 94, 28,111,210,165,113,109,227, 66, 96,225, 28,251, 58, 97,101, 3,206, 71,254,193,206,184, 32, 15, - 32,180, 96,101, 44,153, 82,132,224, 81,214, 50,234,106,138,224, 80, 2,132,105, 81, 34, 65, 40,137,237, 58,140,119, 24,235, 88, -152,150,219,109,205, 94, 91, 99, 85, 66,161, 37,222,244,217, 11,198,145,166,138,202, 6,150,117,139, 50, 6,233, 91, 70,190, 33, -119, 29,151,165, 99,214,118, 40,161,120,175, 92, 33, 72,120,102, 52, 96, 71, 39,180,120,142,218,134, 63,154,205,120,189,105,159, -100, 60, 52,117,212,228,232,132,103,242, 2,225, 45,175,201,192,179, 90,144, 73, 9,198,177, 46, 37, 39,198,240,103,139,146, 67, -235, 80, 42,160,210, 20,157, 15,217,205, 11,174,101,154, 23,210, 9, 69,185, 96,179, 53, 76,150, 43,166, 77,197,165,174, 99,125, -126,196,206,170, 34,239, 58, 46, 34, 40,138,140, 71,171, 50, 94,123,123, 11,220, 15,116,213, 79,251,223,127,194, 77,126, 4,110, -243,248,179,214,136, 62,162, 22, 41, 17,222, 16, 74, 67,125, 86,179,119, 54, 99, 71, 64,235, 28, 71,193,209, 52,142, 36,141,185, -243,206,217,152,220, 71,143,208,150, 18, 47, 37, 99, 1, 67,149, 34,108, 67,174, 83, 68,240,136, 16, 80, 74,161,180,198,155, 14, -165,211,248,255, 42, 13, 66, 69, 56,143, 78, 30,175, 73, 67, 79, 50, 21, 8,130, 51, 8,165, 9, 62, 32,164,196, 57,135,119, 29, - 72,133,107, 27, 42,215,178,232, 90,142, 92, 71,165, 21, 43,211, 97,156,101, 86, 87,212,214, 48,175, 75, 90, 99, 56, 94,157,114, - 86, 47,113, 93, 76, 13,205,164,162,243,158,198, 25, 58, 91, 71, 62,153,141,211,202,224, 28,243,186, 98, 86,118, 60,168, 27,190, -117,127,134,171, 75,124,215,197,233,136,245, 4,215,198,201,185, 51, 80,164, 8, 27,120, 40, 2,191,144, 42,254,215,179, 57,255, -229,133,203,252,131,249, 41,127,105,178,206, 31,207,102,124,122, 48,224,125,239,249,226,120,200,239, 60,122,216,239,212,207,119, -232, 66,199, 87, 40, 43,162, 10, 83,233, 39,123,225, 44,235, 81,174,254, 39,238, 99,127,116, 81,239, 49,168, 42, 34, 95,133, 76, -158, 40,202,243,130, 43, 91, 35,156,235,152, 12, 70, 60, 63,216, 96,168, 82, 54, 46,108,176,190, 49, 97, 56,202,169, 92, 32,209, - 2,141,102, 81, 87,180,206,210,150,203, 88,212,211,254,196,123, 14,157,193, 61,177,111,133,168, 48, 71, 38,209,246, 41, 4,100, - 58,138, 78,179, 62,116, 70,136, 72,116,115, 54,118,194,217, 8, 46,108,194,120,210,155, 68,237, 19,113,153, 16,113,167, 46,228, - 19, 12, 46,125,222,186,232,223,222, 46, 64,222, 71,173,202,143,232, 17,156, 3,153,227, 68,212, 45,100, 82,162,164,199, 42,193, -118,166, 24,249,192, 44, 4,174,104, 1, 38,112,220, 24,130,147, 79,118,233,231,187,245,115, 84,237,121, 56, 75, 15, 87,223, 72, - 51, 14, 86,134, 81, 34, 24, 1,123,101,199, 52, 81,120,239,104, 90, 8,231, 62,254,243,215,246,199,124,172,239,110,113,245,185, -171, 28, 30,159,209,118, 22,235,162, 53,195, 7, 98,161,245,129, 60,213, 81,200,229, 3,109,239,130, 8, 38,250,194,131, 7,153, -136, 40,228,203, 20, 78, 8,188,141,135, 68, 21, 4,173,245,116,198,163, 19, 25,227,101,125,164,205,121, 41,113, 82,112,218,121, - 26, 36, 22,129, 81, 26,169, 5, 70, 4,246, 30,156, 98,219,142,141,124,192, 70,158,145,234, 24,178, 32,133, 68, 8,197,201,106, -201,170,109,232, 92, 71,211, 52, 52,109,131,176,130,203, 59, 59, 92,187,180,197,178, 54,220,188,125,192,173, 27,247,121,120,255, -128,147,147,134,139,187, 19,166,131,140,166,179, 4, 60,169,142,118,186, 32,192, 17,217,251,238, 28, 84, 67, 32,147,144, 73, 65, -145, 18,243,236, 19,201,234,246, 25,234,168, 36,109, 3,173, 13, 24,231,168, 51,197, 65, 90,176,187, 54,192, 6,129,210,144,109, -174,193, 89, 64,172, 26,228, 78, 70,216, 26,226,157,195, 46, 27,138,105,193, 96,154,197, 29,108,174, 24, 37, 41,131, 32, 72, 31, -174,152, 47,150,124,235,205, 7,248, 89,205,222,237, 19,150,143, 78, 80,171,146,176,114,236, 92, 24, 81,100,154,149, 11,116, 85, -199,119,206,106,238,204, 42,188,146, 12, 6, 57, 27,163,148, 53, 9, 83, 13,133, 51,252,133,181,130, 23, 54,166, 20,105, 66,121, -237, 89, 84, 39, 88,203, 4,207,174, 13,217,185,176,195,238, 51,151,152, 92,216,198, 14,167,204,100, 17,119,138,182,251, 16, 74, -244, 49, 63,252,240,144,166, 44,121,235,108,201, 31,180, 53,223, 52,146, 67, 33, 25, 89,199,206, 56, 97, 83, 6,198,153,226,149, -179, 51,174,143,135,108,109, 92,100,111, 56,197,222,125, 31, 30, 62,130,114, 9,143, 30, 33,142, 14,145,237, 9,121,217,241,146, - 30,145, 90,143, 50,142,113, 93,241, 41, 5, 55,170, 37, 95,105, 21, 23, 7, 9,251,198,114,199, 7,206, 42, 71,139,100, 17, 34, -187,123,144, 72, 70, 90, 35,137,191,255,169, 16,148,182,163, 51,134,196,180, 12,130, 39, 13, 17,141,235,157,197, 56,135,117,142, -218,118,236, 45, 79, 40,125,199, 94, 87,115,234, 13,123,171,154,205, 52, 69, 56, 71, 98, 12, 74,107,172,113,236,173,150,204,155, -146,196, 25,214, 77,139,176,158,173, 96, 88,115,134, 13, 33,120, 80, 46,168,108, 75, 73, 74,174,225, 97, 83, 49, 43, 87,188, 63, - 59,225,171,243, 83,154,122, 21,187,197,166,238, 29, 65, 30,145,103, 12,165, 68, 4,199,101, 60,133,130,129,183, 36, 33,240,230, -106,193, 55, 22, 53,111,119, 45,210,117, 72,157,162, 84,194,122,154,176,155,142, 25,203,132,237, 84,115, 17,201,150, 82,172, 15, - 10, 10,149,162, 59, 19, 41,154,190,141, 54,208, 76, 50, 29,143,112,227, 1, 71, 70, 34,122, 97,240,143, 42,236, 63,224,131,255, - 17, 30,120,249,209, 98,175, 53,164,186, 39,223, 41,240, 50, 14, 37,234, 54, 34,184,157,225, 65,211,114,203, 72, 86, 4,190,223, - 6, 58, 97, 88,217, 88,124,141,115,184,224, 64,169, 88, 12,165, 64, 6, 72,137,144,171, 92, 72,164, 80,104, 2, 34,196,107,153, -210, 89,244,134, 88, 19, 15, 18, 62,230,117, 8,235,162, 41, 85, 74,130,105,192,199,159, 39,164, 36,116,109, 63,232,140,164, 58, -111, 44,222, 26,218,224, 40, 77,199,158,181,236, 57, 75,109, 45,149,139,120, 91, 33, 98,166,124,213,149,156,214, 51, 78, 76,195, -254,114, 70,235, 13,141,119,145,246,169, 37,137,243,204,109, 36,148, 58, 60, 74, 40,108,215,178,242, 14, 17, 60,137,240,220,173, - 58, 90,215, 18, 76, 31,196,163, 1,157, 18,154, 14,145,100, 80, 25,196,184, 64,212, 13,183,117,202,127,188,177,206,255,120,176, -207,191, 54,200,248,227,101,201,181, 60,101,134, 39,183, 29,255,240,228,132, 79, 76,167, 40, 38,207,127,233,113,135,238,109,244, -154, 43, 31,187,201,243,142, 80,244, 5,160,237,250, 83,229,191, 98, 81,215,242, 73,241, 13, 1, 17, 92,124, 20,215, 47,241,241, - 75, 27,124,226,153, 23,184, 52,221,226,165,173, 93,158, 25,111, 34,114,205,181,237,117, 86,222,210,153,192,104, 50, 32, 40,205, -131,131, 67,214,199, 99,110,159, 29, 96, 86,125,234, 88,103,226,207, 14, 42, 30, 58,240,209,190,117,238,137, 23,196, 19,155, 82, -253,247,137,184,140, 10, 34,118,242, 90, 70, 53,250,170,141,127, 63, 30,193,120, 8, 69,191, 46, 88,244, 39,235,243, 81, 55, 50, -254,172,115,225, 95,146, 63,225,212, 43,221,191,145, 93,188, 63, 79, 67,100, 30, 63, 31, 30, 66,252,217, 90, 4, 70, 69, 84, 87, -174,245, 9, 97,151,181, 70,121,207,134,138, 2,158,121,235, 34, 97,142,240,100, 5,114, 14,146,120,124,104,178,208, 70,162,220, - 84, 11,150, 33,230,239,166,137, 96,213, 6,188, 10, 76,148,160, 13,125, 34,158, 23, 63, 20, 23,251,244,199,205,239,191,195, 23, -255,173, 95, 97, 99, 50,100, 89, 54, 49,181,169,179,116,141,137,193, 10, 66,145, 38, 9,131, 76, 71,202,174, 13,125, 94, 76, 64, -247, 2, 63,173, 98, 82,152, 84, 18,215,249,216,125, 3,193,249, 56,198, 31,166, 12,138,148,198,249,199,254,112, 47, 4,101,231, -104,250,116,218,243, 19,123,227, 29, 89,170, 8, 33,161, 59,171, 65,138, 24, 24,163, 53, 73, 63,142, 12,193, 33,148,100,160, 52, - 74,105, 6,217,128,141,181, 45, 70,147, 49,235,147,156,189,253, 51, 30, 62, 58, 0, 41, 41,242,156,166,233,176,193, 82,163,216, -221, 26,225,131, 71, 17, 80, 74,162,117, 68,224, 57,231,232,140,165, 53, 54,134,163,244,145,188, 82, 4,180, 20,104, 17, 51,230, -147, 66,177, 56,108, 24,165,146,237, 92,113, 57, 75,240, 14, 94,155, 36,108, 21,154, 3, 27,240, 62,142,234,241, 30, 70,154,230, -210, 4, 51,200, 9, 89,130, 30, 21,136,237, 9, 97,154, 35,134, 9,153,243, 80,183, 4,235, 88,168,192,187, 66,112,253,229, 29, -214,114,201,149,205,130,143,125,108,139,112, 92,177, 38, 2, 97, 99,196,126, 23,120,111,105,120,115,222, 50, 51,129,221,164, 99, -224, 29,207,155, 57,203,147, 67,158, 75,115,182,117,202,115, 4, 46, 21,145,184,101,141,225,189,178, 68, 59,199,154, 15, 12,132, - 98, 82,228, 20,137,100, 45,207,216, 42, 82, 46, 76, 6, 12, 54, 38, 28, 39, 99, 12, 22,223,118, 63,144, 4,198,226, 12,230, 51, -186,170, 36,156,158, 16,164,163,194,243,234,112,196, 90,146, 80, 32, 73, 19,141,106, 59,210, 97,194, 48, 36,220,169,142,225,228, - 36,254,238,104, 13,139, 5,161,172,185,115,188, 79,222,204,217,182,138, 20, 40,178,140,137,119,108,183, 43, 30, 46, 79,185,217, -118, 28, 90,203,101,239,216, 54, 13,223,245,130,147,182,230,154,106,153, 91,197, 51,169, 36, 85, 26,109, 3,214, 25,172,243, 28, -149, 11, 26,111,217, 49, 29,162,109, 81,222, 48, 91,205, 16, 33,112,216,173,120,103,254,136, 42, 4,238, 45, 78,121, 48, 63,226, -102,181,162,170,150, 72, 17,176,171, 37,251,213,130,179,206,241, 96,118,130, 13,158, 77,211,209,181, 45,181, 51, 76,188,193,135, -192, 26,129,196,118,100,182,161,241,112,228,106,206, 26,195,119,246,239,242,181, 71,247,249,254,236,152,114,177,128, 85, 5, 39, - 11, 88,172, 98,151,222, 58,200, 51,108,128, 81,154,241, 65,215,113,217, 55,184,186,102,102, 12, 15,218,154,127, 81,150, 72,211, - 34,130, 67, 57,131,212, 25, 87,211,140,105,158,147,250,192, 40, 75,217, 29, 20,108, 37, 3,134,131, 28,229, 37, 88,131,176, 6, -111, 59,172,181,100,105, 74,161, 21,147,193,136,106,154,115, 38,250, 61,126, 80,209, 77,209, 95,167, 62, 90,204,197,211, 94,248, -159,112, 67,107,132,146,113, 74,231, 69,236,137,212,147, 97,188, 8, 14,124, 64,184,216,136,148,139, 6, 23, 60,123,157,231, 65, -219, 17,122,108,107,227,162, 69,239,156,176, 23, 3,158, 2,107, 74, 19, 76,135, 14, 14, 37, 53, 88, 23, 83,191, 67, 76,100, 59, - 47,238, 16, 16, 82, 19,188, 69, 4,240,214, 32, 84,130,183, 13, 8,133,235,237,213, 65, 42, 92,215,225,123, 79, 73,227, 90,170, -174,228,160,173,184,225, 91,218, 52,227,172, 89,225,172,165, 54,134, 89,189,192,226,153,155,150,133,235,184,187, 92,177,244,130, -121,185,140,217,101, 34,170,107,103,222, 48,214, 26, 23, 60, 2,201,170,169,168,112, 24,239, 80, 66,114, 84, 55,200, 34,225,168, - 1,239,187,184,254,241, 50, 70, 69, 75,141,176, 6, 38, 3,196,217, 2,177, 62,229, 25,219,242,181,206,240,249, 34,231,173,206, -178, 50, 53, 55,140,163,236, 58, 30, 24,207, 84, 4,190,182, 56, 65,177,118,237, 75, 36,170, 7,195,232,152,231,157,232,120, 83, -250,195,227, 93, 99,162,255,208,152,127,181, 0,152,180,207, 92,215, 17, 82, 35,242, 49, 92,186,204,175,190,252, 9, 94,189,250, - 50,105, 54, 96,123,123,155, 75,235,155,120, 18,158,189,180, 78, 35, 36,237,170,102, 48,202,105,173, 71, 42, 73, 38,115,234,174, -197, 55, 45,167,222,198, 39,227,220,158,161,101, 31,129,218, 39,191,185,238,201,232, 95,245, 34,183,200,246,140,111,184,243,119, -176,212, 49,113, 45, 81,113, 12,223,118,209,214,103, 2, 44, 87, 96,234, 15,171,216,149, 0,145,244,157,115,255,174, 21, 60,225, -183,107,221,115,220, 93, 47,158,179, 63,228,249,136,246,182,221, 97,202,172,243, 60,167, 21, 19,165, 24, 4,137, 14, 81,220,230, -140, 99, 34, 36,163, 4, 78,218,126,243,117, 14,245,177,246,169,207, 79, 17,250, 68,191, 43, 62, 15,101, 8,176,169,160,108, 2, -109, 48,100, 58,193,153, 62,128,230, 39,116,234, 0,107,155,235,188,242,202,139, 4, 41, 72,115,205,198,120, 72,231, 2,182,243, - 12, 38, 3, 46,175,143, 81, 90,160, 84,204, 74,246,189, 67,210,248,128,150, 17,214,160, 50,137, 12, 49, 94, 85,246,246, 16, 84, -188,127,137, 76,200,242,120, 40,136, 83, 50, 65, 32,224, 2, 72, 33,226, 83, 74,160, 72, 53,227, 60, 69,202, 64, 58, 76, 57,126, -112,138, 18, 10, 37,101, 20,188, 16,185, 5, 74,106, 70,249,144,193, 96,192,179,187,151,248,245,159,249, 56,155, 27, 99,246,143, - 22, 28,157,206, 24, 78, 70,140, 39, 35,202,178,162,115, 29, 27, 59,219,236, 92,218,196, 56, 79,145, 39,140,138,148, 36,145, 24, - 27, 21,175,214,122, 66,159, 36,230, 93, 92, 25, 9, 31,176, 54,178, 18,206,175, 87, 74, 9,150,165,165,107, 2,249, 32,137, 57, -209, 90,146, 56,203,254,157, 83,228,170,229,221, 59,103,156,236,159,177,153, 41, 90, 25,184, 51,144,188,227, 36,199, 78,114, 88, - 59,110,189,115,143, 71,247,246, 56,156,149,148,214, 82,183,150,170, 53, 36,211, 1, 11, 1,223,190,241,136,236,246, 13, 62,247, -252, 37,254,198, 87,222,230,209, 59,183,105,131,103, 88,149, 36,121,198,123,179,134, 3,165, 56, 10,129,195, 32,248,181,171, 5, -191,126,109,155,183, 31, 60,228,155, 15,110,242, 79,238,222, 35,168, 0, 94,112, 57,139,194,179,251, 7,199,220, 95, 44, 24, 59, -199,192, 88,148,233,200, 2,140,181,230, 74, 62,224,103,183,175,176,150,167,180,137,198,111, 13, 56, 45,214,177,178, 32,212,154, - 96, 10,144,105, 47,191,139,204,242, 48, 59, 37,156, 30, 18,116,198,107,215, 95,100,153, 77,216, 17,142, 76, 69,173,132, 74, 20, -171,214, 82,174,206,184, 89,183,132,229, 28,202,138,160,227,117, 39,216,128, 43, 27,190,183,127, 68, 48, 51, 46,167, 5, 35, 60, -197,104,140, 91,157, 50, 59,222,227,247, 15,143,120,239,116,193,221,206,242,229,131, 7, 60, 76, 50, 78, 44,220, 53,134, 55,218, -142, 63, 41, 27,254,164,178,188, 42, 12,202, 59,230,229,138,247,203,134,133, 89,226,219,154,172,107,152,205, 23, 20, 74,242,246, -242,140,119,206, 78, 56,237, 12,247,151,103,188,123, 52,227,189,211, 19,110,221,220,227,224,116,197,189,147, 67, 6,218, 18, 92, -199, 89,181,192,154, 21, 89, 91,225, 77, 67,144,144, 4,135,145, 10,237, 29,185,247,132,174, 70, 59, 3,166,194,116, 13,111,150, -103,204,170, 25, 77, 85,225,202, 10,206,106, 68, 91,193,193,105,116,233,204, 74, 68,103,160,169, 48,153,100,133, 96, 89,151,188, - 93, 54,188, 55, 91,240, 94,181,226,187,203, 21,194,180, 8,103, 17,109,131,116, 6, 41, 3, 23,138, 2,229, 2, 90, 72, 10, 31, -120, 46, 75, 89, 83, 58,226,175,149, 66,167, 41,190,109,168, 93,139, 21, 14,225, 29,211, 98, 68,162, 37,195, 44,229, 76, 8,150, - 66, 64,145, 65, 58, 64, 36, 3, 68, 26,217,242,194,187, 15,129,109,158,190,233, 31, 2,184,121,220,173, 39,125, 81,239,127,199, - 63,180, 44, 12, 1, 17,250, 70, 40,213,143,243, 49,132,239,192,122,188,131,163,101,199, 28, 71,129,196, 27, 75,135,196, 58,199, - 80, 41,202,174,166,243,150,156,136, 69,238,156, 65, 17,245, 8, 65, 4,148, 84,216,166,126,172,213,242,166,137,235, 63,215, 70, - 1,154,179, 56,215, 98, 93, 3, 82,198, 3,159,169,113,128, 17,158,186,171, 57,107, 87, 84,206,114, 11,199,126, 87,113, 96,106, -206, 90, 75,101,106,142,154,101,100,181,183, 37,165,183,156,214, 53,149,117,172,130,195,121,137, 12,129,153, 53, 52,182,139, 61, -241,249, 52,136, 64, 16,158,178,139,142,158,101,137,101, 66,182, 0, 0, 32, 0, 73, 68, 65, 84,221, 50,144,138, 34, 4, 76,170, -153, 45,226,227, 15,244, 73,154, 26, 68, 62, 64,204,150,136,173, 41,226,224,132,114,109,194,199, 21,188,141, 70,116, 21,211, 44, -163,180, 29, 59, 50,229,253,114,198, 80, 69,131,171, 98,227,249, 47,209,217, 39, 59,117,161, 99, 1,234,122,111,186,137, 72, 70, -234, 85, 28, 19,201,126, 7,126, 14,148,249,151,234,214,243, 88, 72,133,131, 98,130,152,174,243,201,171,151,120,118,243, 25,132, - 78, 80, 42,225,226,214, 26,193,121,116, 8,204,235,142, 34, 19,104,173,168,106, 75, 72, 5,243, 85, 75, 85,119,120, 99, 25,164, -146, 91,179,167,226, 8,207, 5,120,178,127,171,157,135,151,156,219,191,242, 65,111, 13,147,125, 26, 90,159, 43,158,244,143, 57, - 75,122, 92, 99,136,187,250,197, 18,202, 50,222, 62, 10,107,145, 50,190,179,147, 36, 30,126,206,139, 56,125,145, 63,143,167, 85, -105,156, 24,164,242, 7, 11,187,148,224, 53, 11,103, 89, 79, 18, 54,165, 32, 11, 17, 62,227, 9,236, 8,193,153, 11,140, 3, 56, - 33,217,212,146, 35,215,119,253,231,157,250,227,207,189, 69,174, 47,244,174, 47,252, 57, 34,238,151, 91, 67,154, 43,180, 82, 49, -158,150,222, 3,255,231, 0, 16,188,251,221,183,248,236,175,254, 2,219,235, 19,164,146,204, 87, 45,211,233,144,147,147, 25,243, -211, 37,181, 9, 72, 21, 59,210,104, 3, 11, 49,158, 84, 42,138, 92,147,100, 18,225,162, 11,221,138,152,188,150,104,141, 22, 10, -111, 61, 74,198, 16,149,170, 54,120,231,113,206,211,117, 30,173, 37, 74, 62,185, 13,243,140, 76,235,152, 1, 36, 20,109, 29, 40, - 23,101,223, 97, 4,178, 36,165, 72, 7,140, 39, 19, 38,211,117,158,123,254, 25, 62,247,242, 46,139,147,146,111,188,127,135,116, -144, 81,140, 6,180,109,199, 98, 85, 49,152, 12,185,120,113,155,225,184,192,247,187,251,213, 50, 94,168, 7, 89, 18,197,123, 62, - 18,242,140,141, 5,221,121,143,235, 85,253,198, 58,156, 11, 72, 41, 73,180, 34, 77, 52,227, 65, 74,146, 42,208,113, 60, 88, 87, - 29,109,211,113,116,255,144, 91, 55,239,176, 56, 61,225,224,225,125,110,223,219,231,237,219, 15,248,214, 91, 31,112,156,175,177, - 51, 46,152, 37,154,183, 66,194,151,191,250, 45,190,254, 63,255, 9, 95,189,241, 46,255,232, 15, 94,231, 31,253,227,111, 35, 86, -199,188,124,249, 58, 39,251,167,252,155,175,190, 76, 33, 52,191,255,213,111,112,229,234,101, 62,251,185, 23,248,245,237, 33,127, - 38,128, 11, 67,202,165,229,229, 73,134, 82,154, 95, 30,166, 56, 31,248,238,253, 3,188, 53,124,236,234, 85,220,100,131, 67, 2, -218, 25,238, 86, 45,167,171,146,235,197,152, 32, 4, 3, 33, 49, 38,134,136,164, 82,242,233,141, 93, 46,236,236,176, 57, 28,115, -211, 90,110,184, 12, 49,154, 64,161, 48, 58,193,111, 20, 20, 91,235,236, 92,219,129,209, 58, 45, 26, 86, 22,164, 37, 4,201,228, -217,103,185, 62, 78, 25, 11, 73,103, 59, 18,173,217, 47, 87, 44,155,150,133,149,124,176,154, 69,104,211,108, 21,131, 44,130, 36, -120,219, 31,236, 4,111,207, 86, 92, 80, 13, 27, 74,211, 85, 37,143, 22,135,252,189,123, 71,188,249, 96, 70,117, 60,231,232,224, - 16,237,107, 46, 54,103, 44,110,220,160,109,103,160, 4, 66, 39, 8,219,242,237,229,140,163,166,230,165, 34,227, 15,110,189,135, -246,129,213,252,152,211,249,130,155, 85,203, 91,243, 5,239,150, 21, 95,155,151,188,126,182,228,221,121,205,131,217,146,217,106, -137,107,107,156,109,169,170,146,155,243,154,253,182, 37,152,138, 60,213,236, 74,201, 84,128,113,150,160, 20,170,107, 81,214,112, -236, 45, 27,166,161, 67, 64,215, 50,111,151,212,139,138, 85, 85, 33,124, 0,231, 16, 94,192,188,129,118, 5, 93,141,176, 29, 84, - 37,156,158, 33, 14,143,240,103, 11,192,227,203,138,122,181,164, 92, 44, 16,139, 5, 98,181,132,186, 66, 46, 22,136,174, 69, 9, -195,202,117,172,107,141,144, 9, 74,192, 69, 45,217, 17,158,161, 76,145, 90, 18,234,146, 96, 29, 70,128,212,138, 81,154, 33,128, - 66,105, 10,165,113,161,195,100,138,153,241,136, 44,129, 97, 6,163, 17, 66,166, 72,149, 34,113, 72,231, 62, 4,181,209, 79, 21, -118,253,195, 10,187,142, 35,115,126, 72,136,140,112, 46,214, 20, 41, 99,167, 46,162, 72, 48,142,203, 29,162,234,192, 5,170, 85, -203,253,202,176,232, 12, 34, 4,130, 12,204,155, 38,114,230, 3,116,109, 75,227, 12,185, 15,184,224,232,188, 65,122,168,187, 42, -166, 45, 58,135,235,106,156,233, 98, 65,247,142,174, 94, 17,132,199, 88,139, 13,142,206, 89, 90,111,113,222,177,104, 86,148,109, -195,153, 45,217, 55, 45,111,119, 75,110, 54, 43,110,149, 53,119,203,154,210,118,220,238, 58,150,173,161,242,142, 86, 73,102,171, - 18, 43,161,179, 22,101, 35,236,108,209,212,148,222,227,181,228, 65, 85,115, 49, 75, 56,181,134,182,173,177, 33,224,149, 64,219, -232,199, 55,214, 49, 85, 10, 33, 96,179, 72,217,171, 76, 20, 81,123,143, 48, 22,108, 28,193,203,249, 10,177, 54, 69, 30,204, 56, - 77, 20, 98, 49,199, 14,134,172,230,115,188,210,156, 52,115,100,154, 49, 11,158,114,121,134, 98,116,237, 75,232,243, 78,189, 79, - 87,235,179,101,177, 29,212, 77,236,222,109, 63,218, 78, 84,180,141,105,126, 44,192,228, 7, 62,178, 52,238,184, 19, 21, 79,132, -227, 33,131,233, 26,175, 93,190,198,100,109, 28, 35, 59, 61, 12, 6, 57,178, 23, 64,248,186, 69, 43,201, 96,152, 97,156,229,204, -121,170,101, 75, 23, 12, 78,192,114,181,228,160, 93, 96,170,174,183,204,201, 39,209,169,231,176, 27,211, 19,230,210, 34, 22,239, -252,188, 8,247, 59, 23,165,123,206,125,218, 43, 80,251,125,181, 51, 31,142,150,253, 97,235, 4, 21,161,251, 72,221, 23,243, 36, - 58, 6, 92,128, 81,209,231,201,247,197,190,238,126,112,212,237, 92, 31, 75,171,217, 78, 20,195, 30,206,210,187,238, 48, 6,118, - 18,193,125,239, 24,186, 64, 30, 60, 71, 82,224,186,167,118,233,231,157,250,211, 74,246,126,109, 18,124,192,132, 56,238, 86,104, -108,176,113,244, 29,252, 19,220,237,159, 51,170,113,184, 54,225,226,181, 93,138, 36,199, 56,195,254,253, 35,188, 51, 12, 6, 35, - 28, 48,155, 55,120, 4,147,113,134, 16,130,245, 34, 65, 8, 65,158,107,148, 82,100,153, 36,207, 20,193,157, 3,102, 4, 89, 46, - 73, 19, 69,150, 69, 14,130, 53,158,209, 80, 19,130, 64, 72, 17, 71,102, 65, 60, 30,225,159,199,218, 7,235,217,159,149,125, 34, -159, 96, 48, 25, 50,154, 76, 24, 77,198,140, 38, 99,146, 60, 69,167, 5,173,177,236,205, 86,204, 77, 96, 48, 28,130, 20, 72, 47, - 73,146,132,233,250,152, 52, 77,104, 27,195,236,116,193,219,239,191,203,255,246, 71, 95,231, 79,254,244, 13, 82, 20,235, 59,107, -140,139,244,241,232,207, 67,175,118,117, 44,202,142,186, 49,148,165,161,169, 45,214,248, 72,197,235,237, 55, 39,173,231, 99,157, -225,170,246,188, 25, 60,243,170,102,181,170, 89,149, 21,117,187, 36, 81, 9,243,213, 25, 15, 14,247,216,223,127,196,173,218,241, - 96, 1,126,123,196, 34, 75,176,207, 60, 75,158,150, 28,190,254,128,240, 65, 75, 56,171,184,251,157, 61, 62,243,133, 87,184,242, -252, 46, 97,125,192,157,121, 69,125,122, 76, 97,106,222,185,117,159, 7,143, 30,242,245, 59, 15, 57,122,255, 30,215,240,252,123, - 47, 61, 67, 45,224, 31,191,243,128, 71,139, 57,111,207,106,158,219,216,228, 23, 63,243,113, 54, 94,125,158,181,235,187,220,244, -130,123,247,238,240,193,131, 91,124,112,114, 76,131,103, 39, 31,240, 64,167, 44,218, 21, 50,209,188, 52, 93, 39, 77,115,106,107, -248, 78,215,241,102, 82,176,157,101, 92,209,130,157,196,144,143, 51,198,211, 9,195,124,192,246,198,144,193, 48,101,161, 83,124, -231,193, 25,102, 23,183, 25,232, 49, 74,122, 74,165,104,234,154,253,174, 99,229, 53,221,149,171, 28, 79, 47,210,118,115,120,120, - 16,131, 69, 92, 31, 22,226, 61,190,159,144,188,109, 91,218,106,201,205,182,228,255, 40, 87,124,103,105,113,243, 6,247,193, 28, -127, 56,199,220, 93, 49, 95,149, 96,170,216,217,248, 14, 49, 63, 70, 78,214,216, 30,111,241, 59, 95,248, 4,191,252,169,151, 48, -173,231, 96,126,204,219,251, 51, 62,184,247,128,123,103, 43,238,122,193,163,166,165,105, 44,214, 54,177,115,107, 27,108, 23,133, -130,206,251, 88, 32,188,165, 92,173,216,107, 2,147, 84, 50,192,209,248,142, 11, 66, 82,123,143, 22, 2,235, 12, 83,211,178, 82, - 9,109, 53,231, 65, 85,179, 10,129,174, 92,113, 58,171, 98, 55,142,138, 81,163,161,111, 8, 62,186,211, 54, 22,177, 92,192,124, - 14,179,121,108, 44, 22, 53, 98, 54, 67,156,157, 32,142, 79, 16,199,199,200,197, 2,121,186,128,197,130,185,109,153,153, 10,133, - 98,135,192,181, 52, 35,181, 22,209,182,248,206, 97, 8, 56,111, 73,149, 34, 17,138, 34, 73, 73,133, 66,121, 79,234, 3,206, 59, - 38,227,156,113,145,240,252,120,192, 11,107, 3,214,166, 5,227, 34, 97,222, 4,148,245,113, 59,233,253,227, 66,158,126,164,200, -235,167, 58,122, 33, 68, 44,210,166,239,212,205, 83,227,119, 23, 67, 78, 68,136,157,186,112,253, 4,247, 60,184, 38, 8, 68, 87, - 65, 42, 17,109, 77,217, 6,246,219,134,147,186,101,148,234,200,205,234, 26,154, 0,141, 49,204,113,164, 33,208, 56, 67, 27, 2, -166,107,113, 34,208,118, 53, 22, 79,101, 27,156,107,113,214, 96,189,197,184, 14,227, 13,101, 87, 81,217, 22,231, 58,246,218,138, -131,122,198, 7,109,201,237,106,197,183,109,205,222,114,201, 55, 79, 87, 44, 92,199, 65, 89,115, 38,224,208,121, 78,172, 67,107, - 69, 89,150,168, 52,199, 6,139,113,158, 78, 9,150,141,195, 56,207,178, 50, 28, 25,199,153,241,140,173,101, 32, 28, 86, 40, 90, -103, 81, 46,166,146, 90,239, 25,234,120, 65,203,164, 96, 36, 21, 75,239, 89, 90, 19, 15, 62, 68,160,152,148, 14,129, 66,182, 75, -212,100,140,154, 45, 81, 89,138,182, 14, 53,202,145,117,137, 74, 52,170,142, 60,125,169, 51, 20,235,207,127, 9,219,119,234,231, -230,131,208, 7,172,208,231,131, 43, 25,139,177,234,247,235, 42, 60,137, 88, 85,242, 9,159,252, 71, 89,192,164, 4,153,197, 93, -118, 58,132, 98,128, 72, 83, 6,195, 28,145,164, 76, 82, 77,146,102, 40, 25,240, 1,114,173,145, 74,144, 9,176,166,163, 89, 53, -204,106, 71,219, 25,206, 22, 37, 42,213,180,171, 6,176, 28,148,115,234,170,137,221,177, 13,177,112,203,190,115, 69, 64, 48,125, -242,141,140,209,167, 73,127,191,125,136, 35,167,208, 31, 52,252,249,232,186, 39,196,157,123,224,127,220, 58,129,126, 77,145, 21, -189, 50, 61,196,195,129,214, 79,146,215, 68,191, 14, 16,231,251,240,143,118,252,113, 70, 53,214, 30, 47, 21,218,129,246,113,188, -123,190,122, 95, 35, 78, 70, 74,239, 25, 10,207,105,119,142,138,181,125,132,107, 95,118, 30, 47,181,206, 95,147, 94, 84,231,125, -244,104,170, 62,207, 62,244,135, 55,255,231, 63,148,221,248,254, 13, 94,249,204,107,168, 76, 51, 46, 10,234,182,195, 89,199,114, - 49,103, 99,115, 74,158,198, 85,205, 48, 75, 98,200,139, 32, 10,224,132, 32, 81, 2, 27, 4,206, 6,130,140,170,101,173, 98, 24, - 74,146, 38,164, 89,138, 76, 52, 74, 9,130, 9,113, 56,212,196,200, 93, 99, 60,198,216,120,190, 10,158,217,178,163,174, 61,213, -178, 67, 41,201,104, 24,139,119,146, 37,188,120,125,155,151, 46,111, 16, 84,138, 15,129, 68, 73,164,144,172,170, 21,243,147, 5, - 82, 10,100, 34, 56,124,116,192,247,110,188,195, 31,127,247,109,254,236,246, 45,190,242,246, 45,110,126,103, 15, 62,168,225,118, -205,141,113,205,199, 47, 93, 98, 99,125, 68,170,162,187, 91,247,178,146,198, 56, 58,227,112, 30,154,198,210, 54,142,198,246,201, -193, 90,146, 41, 77, 55, 84,124,122,163, 96,120,161,224,238, 32, 97,184, 53, 98,124,101,131,236,165, 75, 36,207, 93, 33,108,173, -145,138, 1,251,167,167,188,251,206, 1,109, 17,120, 20, 18,214,150,150,236,194,148, 3, 37, 25, 60,127,157,171,215,183,121,246, - 51, 59,124,230, 87, 94,226,211,191,246,113, 78,148,229,238,193, 1,239,223,126,200,183, 30, 60, 68, 33,248,173,201, 38, 27, 94, -240,207, 27,203,157,170, 65,234,140,201,197, 75,216,205, 41,199, 90,211, 77, 11,154,139, 91, 36,151, 47,113, 89,167, 20, 71, 21, -223, 60,171,121,243,254, 41,239,221,186, 71,215, 89,178,245, 77,222, 42, 87,236, 47, 79,169,234,138,249,114,142,150,130, 85,158, - 83,213, 75,164,181,220, 48, 29,223,181, 6,165, 7,228,222,179, 46, 61, 3,215,210,106,201, 95, 26, 13,249, 43,211,117, 94, 82, - 18,167, 21, 42,151, 44,172,224,250,100,200, 56, 87, 84,197,132, 3, 18,142, 90,207,253,106, 73,105, 45,109, 91, 51, 89,219, 34, - 75, 4,114,178,201,194,204, 8, 71,199,208, 57,130,238,233,118, 66,224,165,161, 89, 54,188, 57, 95,242,237, 69,201,161, 83, 56, - 65, 20, 82,174, 41,252,105,212,231,167, 43,207, 79,229,154,191,184, 94,240,252, 98,197,205,186, 4, 28, 87,159,189,198,199, 71, - 3,214, 18,205,223,122,235, 30,183,131,136,187,202,163, 57,193,119,120, 20, 94,107,156, 15,209,137,210, 69, 30,130,243,254, 49, -201,207, 3,193, 69, 17, 21, 78,112,156,164, 92, 25, 42,118,131,199, 58,203, 24, 65,107, 58,134, 4,156,115,100,166, 97, 30, 60, -167,222, 51, 63,155,115,186,168,232,218, 22,119,178,138,214,170, 44,229,213, 11, 5,255,246,165,117, 62, 62, 29,243,198,241,234, -113,108,234,227,142,214,244,130,221,182,133,182,142, 28,143,208, 7,184,244,187,101, 89,199, 8, 95,121, 82, 34, 59, 67,233, 26, - 82, 37, 24,219,142,245,166, 66, 57,143,243,150,186, 45, 9, 50, 32,157, 39,149, 2, 45, 64, 11,141, 12, 30, 41, 37,133,146,108, - 38, 41,159, 24, 12, 25, 39, 9,211,108,192,122, 62, 96,146, 40,126,122,115,194,199,198, 3,214,181,224,200, 58,146, 0,169,247, -164,125, 97, 79,250,219,211, 29,187,240, 81,148, 38,180, 64, 24,158,100,190, 59, 31,129, 55,206, 61, 1,210, 40,137,176,145, 61, - 32, 68, 28,249,147,104,132,141, 13,143, 16, 81, 84,214,117,158, 71,171, 14,105, 59,202,206, 50, 8,130,149, 8, 88,235, 56,117, -142, 3, 1, 71,182,163,146,146,135, 85,201,137,112,172,154, 21, 51,239,104,218,150,189,174,193,155,134, 67,215, 98,141,161, 82, -138,101,219,114,191, 46,185, 85, 46,248, 32, 56,190,113,186,226,131,206,112, 99, 94,243,192, 58, 26,231, 89,213,150, 86, 6,170, -101,133, 79, 83, 26,239, 73, 8, 56, 41,169, 77, 71, 25, 4, 74, 40,142, 86, 13,235, 89,194,126,109, 40,155,134,182, 53,108,103, -146, 19,103,216,148, 26, 97, 45,155, 74,209, 66,212,191, 16, 83, 30,231,206, 16, 2,212,214,113,185, 72,120,127,209, 64,211, 69, -205, 53, 30,233, 4, 82,216,184,202, 59, 93,160,130, 64,167, 26,109, 12, 74, 43,116, 8,104, 23, 35,175,149,148,200, 85,133, 98, -218,239,212,221, 57,253, 77,197, 66,224,252,147, 0, 17,210, 94,237,221,227, 93,117, 74,246,252, 69,214,175, 94, 64, 95,216,164, - 29, 15, 97,107, 19, 6, 99,184,120, 33,126,189,181, 9,147, 53, 24,140, 98,145, 77,147,136, 60,204, 18,228, 56, 35, 77, 18,100, -112,140,117, 26,177,125,185,102, 58, 28, 49, 29, 23, 76,166, 41,174,181, 56,111, 32,120,188,132,106,181,192,244,172,220,163,211, - 25, 85, 83,114, 80,205,152,213, 21,198, 7, 66,119,190, 15,239, 85,225, 69, 10, 77,251,132,134,148,232, 88,212,181,142, 43,134, -244,169,241,187,238, 59,247, 68,199,125,134,210,177,168, 43,249,227,167, 17,185,142, 43, 5,124, 20,212,233, 60, 22,246, 44,233, - 45,117, 34,138,239,206, 73, 76,173,123, 34,182,251, 8, 51,255,149,188,160, 8,176,239, 59, 46, 41,141, 2,150,253, 47,241, 88, - 8, 18, 33, 72,165,164,240,240, 64, 75,130, 0, 90,251,228, 96, 96, 31,171, 84,122,111,190,232, 21, 27, 34, 78, 16,148, 2, 93, -244,147, 8, 27, 31,223,191, 76,172,110, 34,217,183, 29, 47,189, 16,225, 22, 87,118, 54, 57, 91, 84,156, 29, 31,225,131,138,135, -177, 60, 99, 88,100,212,181, 33,200, 88,212,109, 32, 90,209,164,192,123, 17,247,228,113,225, 69,162, 20,214,250, 30, 69, 31,199, -219,182,207,137, 15,222,211, 57,135,107, 28,131, 97, 26,247,218, 65, 16, 28,228, 89,194,104,152, 51, 26, 23, 92,216, 25,179,181, - 49,224, 51, 47,237,240, 51,215, 54, 89, 53,134,251, 71, 75, 30, 62, 60,160,106, 58,190,249,230,247,185,127,116,196,239,127,239, - 29,254,236,143,223,226,235,223,187,193, 27,119, 30,112,255,222,156,178,181,180,231,118,205, 81, 30,133,136,135, 6,127,167, 38, -127, 38,229,202,181, 93, 38,195, 2, 25,226,240,197, 19,207,141, 65,200,232,149,117,145,124,165,164, 68,101,154, 97,161, 25, 23, - 41, 27,121,194,239,189,183,207,215,111, 28, 49,187,121,196,217,173, 67, 56, 94,177, 60, 89,224,131, 35,153, 20,236, 92,219, 98, -114,253, 42,255,249, 47,190,134,218,220,101, 49,157,160,101,224,167, 82,197,219, 69, 65, 54, 72,185,250,242, 46,249, 51, 23,144, - 23,183,185, 57,235,248,211, 15, 30,240,255,157,214,124, 93,140,120,127,178,203,175,188,250, 34, 47, 92,222,228, 52, 31,242, 72, -228,108, 77,167, 60,251,201, 23,153,236,110,112, 40, 20,157,245, 12, 11,205, 32,207,120,118,152,241,153, 66,176, 88,214,124,251, -100,193,221,166, 98,103,103,141,245,103, 47, 51,188,180,205, 88,143,120,189,236,184,175,167,188,176,181,205, 21, 41, 89, 10,193, -119, 66,224,123,214,177, 39, 21, 73, 26,149,220,169, 20,180,213, 18, 99,106, 26, 23,248,205,233, 58,207, 12, 71, 92, 72, 50,238, -217,142, 3,231, 24, 42,152, 52,150,141,249,138,105, 98,145,131,117,110,216,138,169, 74,233,108,135,242,142,253,147, 3,134,211, - 77,130,113, 44,101,130, 93,206, 8, 85, 5, 62, 16,186, 38,142,225,173,193,227,241, 66,226,250, 11,179,147, 26,145, 74,134,163, -132, 38, 11,140, 22,129, 79,108,228,252,226,245,117, 62,183, 57,102,146, 37,172,117, 14,177, 90,241,126,115,198, 63, 95, 88, 78, -207, 22,124, 99,190,136, 86,167,181,141, 8,183,240, 16,186, 50, 90,243, 44,120,215, 60, 41,228, 66,196, 46,253, 41,149, 63,196, - 97,165,235, 90,198,227,156,165,113,236,138,128,116,134,169,177, 52,174, 37,224,153,183, 45,117,107,168,173,101,182,108,168,170, - 22,233, 44,141,233, 16,198, 32,138,156,255,228,202, 22,191,188,115,129, 65,170,248, 86,219,208,204,234, 15, 77,205,196, 71, 35, - 85, 85, 44,228,231, 2, 52, 33,163,128, 86, 90,139,176, 29,162, 44, 17,199, 75, 14,143, 79, 57,105,102,236,132,142,177,237,232, -154, 18,159, 38, 24,107, 8,109, 69, 22, 60,174, 51, 72,161, 48,222, 32,132,100,173, 24,179,158, 23, 12,178,130,141,124, 76,167, - 20,195,100,192,246,112,157, 11,105,193,115,195, 33,151, 7, 57,207, 72,205, 21,165, 41,148,228,106,158,179,150,165,124,122, 52, -101,223, 91, 18, 33, 80, 61,131, 94,156,119,235,177,245,142,161, 72, 46, 10,173, 63,164,144,151, 18,153,196, 68, 68,233,125,252, -218,121, 68,255,119,162,235, 34,202,214,185, 24,113,237, 61, 39, 93,199, 94,231,249, 32, 56,110,159, 54, 60,244,134,165, 20,124, -208,118,220,110, 27,110,215, 45,247,188,225, 86,215,241,102,101,120,171,108,184,163, 2,183,156,225, 77,211,114,100, 44,111,152, -142, 7,117,201, 91,182,227, 86, 91,243,118,109,120,163, 49,156, 25,203,204,122,218, 16,237,171,198, 56, 80,130,214, 70,203,173, - 49, 6,135,103,222,121,230, 62,142,241, 59,235,121,104, 12,153, 20,204,154,150,206, 90, 66, 99, 17,198,177,108, 60,151, 7,138, -220, 88,174,103, 41, 82, 4,182,149,194,123,207, 26,208,244,152, 97,107, 61,169,128,101,221,225,125, 96,225, 44,194,199, 60, 18, - 9, 40, 99, 81,157, 69, 21,154, 68, 41,116,213,162, 85,194, 21, 87,211,233,148,169,177,248,186,137,223,163, 20,250, 7, 9,113, -221, 15, 94,208,117, 15, 71,144, 50,178,141, 95,185,196,245,205,109,154,206, 51,206, 83,234, 45,199,162,118, 28,214, 11,214,147, -130, 36, 45, 40,155,134,253,178,138,251,219,164, 23,220,233, 39,251,248, 60, 21, 76,178, 20,130,195,132,142, 73,146,162,148,100, -152, 11, 76,103, 8,170,163,177,142, 84,129,112,134,164, 72, 73, 4,180, 18,238, 29, 44, 34, 67,128, 64,189,234,240,222,199, 67, -195,121,116,105, 63,198, 66,167, 79, 30,131, 1,114, 31,139, 91, 34,227,247, 75, 29,139,126,154,210,211, 81,158, 20,251, 85, 10, -117,253,100,223,254,195, 62,170, 6, 54,198,125,225,238,159, 39,213,167,174,229,253,253,176,253, 33, 33,113, 31,166,237, 61,245, -244, 18, 60, 95,175, 75, 62,145, 23, 92,215, 25,203, 16, 24, 11,193,179, 66, 62,246, 9, 19, 60,117, 15,140,185,228, 44, 15,206, - 87, 26,231,135,132,199, 63,183, 31,197,235, 2, 54, 55,226,255,189, 42,123,112, 77,143,158,173,254, 37,133,142,137,132, 32,185, -251,149,239,114,243,133,231, 41, 62,247, 26,243,213,138,143,189,244, 12,207, 93,191,196, 91,111,222,226,240,209, 35,218,178, 35, -207, 52,137,210,168, 10, 6,195, 4,103, 3,149, 51,100, 65, 70,217,130,146,228,121, 18,109,107, 62,110, 78, 91, 23,213,169,198, - 65,145, 73,140,240, 36,137, 70,117,158,144, 71,181,184,214,138,113,145, 80,202, 8,170,137, 23, 60, 65,219, 57,210, 68,243, 15, -254,240,255,103,236,189,122, 44, 75,179,244,188,231,115,219, 30, 27, 54,125,102,121,215,213,102,218, 84,147,163,129,208, 50, 35, - 18,148, 4,112, 40, 8,188,162, 0,253, 2,233, 94, 16,248, 19,116, 33, 72, 0, 37, 8,208,141, 64, 2, 26,104, 64,129, 24, 81, -131,230,104, 60,167, 77, 85, 23,171,170,203,102,101, 86,250, 12,115, 34,142,219,246, 51,186,248,118,102, 86,119, 87,207,116, 0, -129,116,129,140,115, 78,236,179,215,183,214,122,223,231,253,128, 71, 39, 71, 76, 71, 83, 30,159,156,115,111,185,224,189,187, 71, -168, 76,114,177,204,217,153,149, 44,214, 61,156, 14,207,125, 54,252,124,142, 91, 72, 21,201,190,198,238,229,248,191,163,224,110, -199, 31,255,249,207,121,225,249,231,152,190, 85,176, 63,202, 49, 34,178, 21,148,210,104,229, 98,104, 71, 22, 16, 74,160, 4,104, -163, 72,149, 68, 75,129,244,158,221,182,163,237,122, 78, 23, 39, 32, 21, 75,219, 99,235, 53,235,143, 54, 24,149,178,116,130, 43, -223,125,145,231, 94,185,200,215, 38, 91,110,221, 60,229,202,209,154,107,103,154,174, 18,156, 94,154,242,200, 42,230,235,142,223, - 53,158,159,228, 9,122,182,195,235,105,201,205,180,224,197, 36,229, 63,157,106,236,170,226,167,199,143,113,101,193,229,209, 14, -197, 60, 99,238, 45, 63,217, 70, 26,222,200,193,244,108, 77, 85,102,212, 57,180, 23, 74, 46, 79, 83,246,130,103,190, 51,230,162, -150,124,250,193, 29,146,229,130,195,124,204,120,118,129,236,194, 8, 89, 55,184,237, 26,181,233,232,131, 39,164,130, 84, 41,232, - 29,143,117, 73,147,195,105,211, 48, 49,129, 44, 73, 16, 46, 16, 68,100, 46,116, 4,230, 8,246,139,132,139, 89,134,116, 61,119, - 78, 62,101,103,239, 50,231,222,227,148, 33,145,158,170,171,121,247,147,247,105,199, 59, 96, 12,242,229, 87,241,117, 13,139,199, -120, 93,198,108,108, 41, 16, 85,141, 48,131,227,164,238,193,158, 99,117, 74,155,101, 8, 7,114,170,153,207, 19, 46,229, 41,115, -147,160, 9,220,214,154,151,172,227,181, 7,199,188,189, 94,242, 39,155,171, 96, 70, 8,147, 32,144,112,227,121,152, 78, 9,119, -238, 17, 54, 21,161, 89, 71,189,116, 15,193,200,167, 14,209, 95, 1,170,180, 29, 98,186,195, 6,152, 72,197, 18,129,219, 52,156, - 26, 25, 59, 87, 21,145,212, 77,213,227,250,142, 41,113,250,120,199,250,168,212,238, 44,178,106,121, 49, 73, 73,133, 66,234,132, -209,104,194,249,100, 77, 88,213, 67, 2,223,175,129,189, 12,112,172,224, 60, 65,201,167,118, 66, 7, 56,107,177, 52,116,231, 13, - 31,173,207,248, 95,238, 60,230,251, 38,227,198,108,204,120, 62, 34,155,142,120, 46, 27, 83,181, 53,185, 74,232,251,150, 30, 79, -146,231,160, 12,217,240, 61, 77, 90, 48,245, 30,235, 29,227,180, 32, 45, 39,216,205,217, 48,114, 15,136,113,193, 15, 66, 32, 67, - 80, 8,197,186,107,120,171,157,114,212, 52,188,183, 92,242,110,221,162,250, 14,101, 45,194,254, 82,222,251,151, 14, 72, 79, 1, -156,157,125,154, 1, 47,158,208, 63, 59,139,120,146, 11, 31, 60, 33,209,241,121,246,131, 32,174,247,172,155, 26, 13, 84,149,228, -241,195, 21,186,200,208, 50, 6, 45, 41, 41,144,168,152, 1,159, 70, 71,147, 16, 17, 61, 13,110,216,178,134, 1, 1,237,241, 77, -143,183, 30, 55,220,175, 92, 18, 35, 91,179,210,208, 5, 71,130,100, 21, 98, 79, 22,128,160, 4,222,246,172,147, 4,223, 58, 8, - 29, 75, 25, 87,216, 50,145,144,106,194,166, 67,164,138,157,214,242, 66,106,208,125,203,142,202, 16,222, 71,200,216,112,235, 47, -132, 36,211,112,180,106, 16,193,115, 57, 87,220,173, 19, 68, 84,101, 32,123,144, 74,163,140, 68,123,152,102,130,203, 74,243,237, - 82,209, 88,199,117,111,105, 83,201, 81,102,184,185,174,185,189,110, 81,140,174,253,211,191, 85,181,174, 6, 96, 74, 8,112,237, -128,231,246,102,180, 54,176, 91,150,228,166, 36, 51, 25,123,229,132, 76,104,114, 19, 57,189,163,212,144,200, 64, 97, 4,171,110, -216,121, 11, 65, 98,146,184, 71, 21,130, 34, 49,104, 9, 55,118,118, 48,105, 74,162, 2, 93,215, 83,164,146, 92, 43,166,165,198, -216, 64,179,109, 25, 25, 65,187,172, 88,111,207, 73,180,102, 81,109,185,119,118,134,237, 61,146,200,227,133, 39,161, 32, 67,241, -106,219, 33, 18,181,137,197, 45, 77, 24, 84, 80,207, 70,237,121, 22,191,134,161, 83,183,253,112,120, 81, 80, 87,241, 74,251,155, -198,240,194, 67, 57,138,190,171, 50,139, 69, 60, 77, 6,117,123, 22,197,135,102, 80,199,123, 23,213,158, 95, 86,156, 63, 25,251, - 59,207,117,173,240, 66,178, 12,129,145, 15, 84, 2, 82, 33,162, 94, 81, 64, 41, 4,159,217,150, 92, 73, 54, 82, 70, 92, 42, 3, -100,199,250, 95,180,184,205,119,153, 92, 60,164, 28,141,169,165,142, 83, 11, 61,232,225,131,143, 73,115, 90, 71,135,192, 47, 24, - 82,252,175, 30,234,228, 83, 63, 10, 31,254,236, 67, 94,255,230,155, 36, 89,202, 98, 91, 49, 46, 50,186, 16, 80,105, 66,181, 90, - 35,179,148,253,157, 49,227, 60, 65, 34,152, 36, 2,173, 37,163, 68, 81, 91,143,148,112, 48, 54,113,191, 45, 5, 10, 65,110, 52, - 58,213,200,129, 62, 55, 78,163, 32, 46,114,155, 21,125,231,168,182,150,117,211,177,222,118,212, 85,199,182,234,168,250,158,122, -211,211, 11,207,189, 59,199,252,139,191,126,155,101,181,166, 76, 13, 82, 64, 19, 98,218,215, 40, 51, 84, 46,208,235, 64, 48,192, -202, 69, 49,100, 42,163, 8,244,118, 27, 51,143, 39, 17, 88, 65, 42,224,221,138, 59,101,197,139, 87,174,112, 97,103,196, 36, 79, -227,132, 32, 49,164, 70,162, 7, 26, 34, 34,196,188,119,249,196,109,232,217, 54, 29,171,166, 37, 49, 16,188,164,107,123,200, 83, -244,197, 93, 46,124,239, 53,190,113,117,151,127,244,141, 27,220,187, 48,231,115, 41,233,203,148,139, 23,167,124,195,247,124,235, -213, 67,174, 78,225, 38, 41,123, 99,205,181, 89,193,238,106,197, 79,110, 63, 70, 20, 35, 94,191,177,195, 27, 99, 77, 18,122, 14, -131,229,110,232,184,103, 52,243,249,152,221,197,134,211,211, 37,201, 39,119,169,174, 92, 68,118,142, 63,255,171,183,249,248,143, -127,136, 93,181,220,125,120,196,173, 7,247,249,224,103,239,115,243,237,119,184,113,225, 58,203,109,207,103,143,239,243,211,155, - 55, 41,109,199,165,249, 30, 19,163,113,137,198,104, 67, 90,102,116, 94,160,205, 96,121, 37,144,116, 53,127,184,173, 57,205, 39, - 60,144, 57,191,111, 5, 63, 72, 20,183,109,203,187,109,203, 81, 93, 49,174, 59,246,132, 98, 90, 24,102,227, 9,135,105, 70, 38, - 37, 69, 89,210, 7,197, 44, 79, 57, 24, 21,232,190,227,130, 16,248, 36,103,163, 50,152,149,132,211, 37,228,134, 16, 20, 1,133, - 23,150, 32, 19,188, 84,241,179,111,162, 0,108, 91, 19,132, 96,156, 37,236,149,154,203,133,225,165, 81,206,149,157, 25,175,205, -114, 38, 46,176,168, 90, 94, 15,144,159,159,243,197,250, 28, 49,153,198,131,130, 50, 8,149,192,222, 30,228, 41,225,172,138,185, -225, 10,188,139,200,226, 32, 69,108, 24,190,252,118,207,198, 48, 74, 56, 13,138, 60,151,180,109,143, 87,154,186,106,113, 74,209, -247, 14,217,117,132,174,167,116,129,189,214, 33,109, 64, 90,199,194,134,104, 25,235, 45,251, 99,133, 73, 19,254,109,183,229,199, -173,139,158,228, 22, 4, 81,161, 46,126,185, 75,127, 34,149, 25,108,159, 66,240,180, 91,127, 10,144,241, 50,110,251,250,158,202, -121,110,182, 13,239,156,158,242,163,227, 51,206,214, 21,174,217,210,119, 61,133, 18,145,251, 32, 5, 86,104,172,209, 88,165,145, - 69, 70,151,165,104,147,146,100, 25, 34,196, 52,179, 92, 70, 63, 56,222, 51, 53,138, 84, 4,174,148, 35,198,202,112, 99,103,159, -203,163, 9,151,203,140,189, 36,101,207,104,238, 12, 9,213,191,124,223,252, 21,223,187,247, 40,239,145, 90,199,209,177,181,113, -179,107,237, 32,184,211,207,244, 7,246, 73,138,167, 4, 27,179, 38,188,235,241,189,197,225,113,193, 98,117, 66, 31,160,239, 28, -189,209,116, 70,210, 41, 73, 43, 36, 45,208, 10, 65, 27, 2,173, 20,180, 66,208, 13,177,207,164,134, 38,209, 72,161,216,155,141, -120,177, 76,121,109, 90,114,163, 24,113,161, 72,121, 62, 49, 92,202, 52,107, 2, 85,158,209, 11, 65, 72,211,232,212, 73,212, 83, -203,119, 16,146, 96,163,125, 13, 9,175, 39,130,111,102,134,239, 22, 5, 19, 2,135, 70, 49,150,177,246,109,189,139, 1,166, 33, -208,244, 49, 18, 90,133,192,219,155,154,182, 11, 8,173, 80, 34, 68, 87,145,144,131,240, 56,225,239,150, 25,111, 77, 71,188, 84, - 22, 92, 25,143,120,121, 50,198, 40,197,203,105,198,141,209,136, 61,205,111, 80,212, 97,216,207, 70, 66,154, 60,152,112, 48, 42, -216, 47, 39,140,211, 49, 62, 8,198,249, 8,163, 83,138, 36, 35, 53, 38, 78,122,197,147,221,143,167,204, 83,150, 85, 3, 74,162, -130, 68, 42, 65,161, 12, 33,120,118,202, 41,147, 84, 50,155,151, 72, 41, 40,210,140,124,148, 50, 77, 21, 35,163,112,189, 67,186, -150,126, 93,209, 53, 91,164, 20,124,177,120,200, 7,247,143,105,123, 79,158, 40, 90, 47,152, 10,141, 16,129,174,139, 30,200,129, -134, 2,205,102,200,132, 7,178, 44,238,209,211,129,150, 39,134,142, 29, 49, 16,226, 6,168,140, 28,188,238,189,143, 7,131,191, -201,246,165,242,216,253,143,179,120,241,165,102, 40,174,122,200, 86,215,131, 95,125, 80,122,118,245,175,134,227,248,200, 5,120, - 48,116,232,151,141, 97, 19, 2,115, 21, 59,245, 38,196, 92,241,147, 65,184, 83, 9, 72,125, 96, 43,158,224, 94, 19,184,254, 18, - 47,191,249, 38,167, 42,135,147, 71,112,184,199,165,217,156,217,168,164, 15,208, 46,206,226,129,198,185,103,143,231, 43, 7, 16, -191, 92,216, 7, 85,253,151, 62,126,252,103, 63,226,187, 63,248, 62,147,162, 96, 83,215, 40, 4,245,166, 97,178,183,131, 86,130, -182,245, 4, 9,227, 60, 29,242,135, 21,137, 86, 76, 75,195,180, 72, 16, 42,210,232, 38,153, 33, 47, 12,121,166, 40,141,102,148, - 27,132, 20,180,189,101, 83,117,108, 58,203,102,221,178,218,182, 8, 5,171,243, 58, 90,221,240, 52,181, 37, 77, 12, 89,153,160, -130,228,202,181, 61,250,147,115,238,172,215, 40, 4,153, 74, 81,210,179,238, 28,151, 71, 19,118,210, 52,102,237,120,112, 89,128, -179, 97,194,177,147,194,238, 48,201,209,146,189,195, 49,227, 89,193,246,106, 66,213,195,190, 73,120,225,218, 5,102, 99, 67, 38, - 20,153, 20, 3, 82, 51, 12,111,228,104,163, 43,148, 33, 81, 10, 23, 60, 54,120,210,204,176, 62,107,216,214,142,157,111,223,224, -218,215,175,177,127,105, 14, 58,190, 39,166, 77,197,159,254,228, 22,159,255,213,207,249,248, 47,223,225,248,222,154,247, 22, 21, - 63,215,130,203,227,140, 68, 38,164,101, 74, 97, 36, 63, 50, 41,226,234, 62, 85,106, 56,111,123,194, 78,193, 52, 75,152, 20, 25, - 63,157,143,153, 94,222, 99,190, 59, 69, 63,127,129,249,124,204, 97,154,226, 38, 99, 38,133,225,218,115, 87,249, 87,255,253,191, -224,163,243, 5,159, 62,122,200, 71, 15,143, 17,244,124,243,213,215,249,237,239,191,206, 15,255,232, 79,248,131, 63,250,107,142, -178,148,111, 93,188,200, 56, 53,145, 98, 38, 66, 28, 15, 6, 65, 39, 5, 93,239, 48,196,244, 67,213,215, 60,239, 27, 86,199,143, - 88, 59,139, 67,241,105, 91,243,133,150,116,206, 82,216,158, 73,223,179, 63, 74,217, 25, 79,152, 76,118, 33,201, 41,243, 9,169, -201,152,236,237,144,142,199,120,149,112,189,200,185,161,224, 34,158, 68,104, 30,202, 4, 70, 41, 88, 75,240,142, 96, 99,148,101, - 72, 4,193,197,227, 58, 58,118,212, 96, 17, 30,236, 36,103,150, 39, 28, 22,134,215,198, 5,123,123, 23,201, 76, 70, 17,122,222, -127,112, 70,102, 52,123, 2, 62, 87,146,190, 48, 72,169, 17, 89,142, 50, 41,255,236,183,222, 64, 36, 25, 31,105, 8,199, 43,130, -239, 9, 82, 16,188,136, 30, 20,239,127, 33,214, 65,168, 4, 89,230,200,222, 51, 54,146,171, 69, 22,199,241,105, 74,225, 29, 59, - 62,112, 24, 2, 7, 65,114, 73, 66,230,224,170,150,132,222, 49, 21,158,199, 54,102,181,191,183,220,242,163,170,229,125, 7, 34, -213,177,128, 21, 58,138,202,172,125, 86,216, 77, 20,147,137, 16,190, 52,118, 39,142,179,135, 80, 25,225,191, 4,120, 29,238, 43, -193,199,199,238, 1,239, 29,143,183, 91,126,118,190, 38,177,142, 69,240, 44,130,227, 24,143, 51,134, 86,198,174,182,241, 30,153, - 36, 60, 82,154,218,195, 56, 77, 24,235, 40,236, 19,125, 75, 46, 21,173,107,185,144,100,228, 38,101,119,114,136, 81, 25,249,120, -151, 66,231, 28,148, 25,187, 90,115, 37,207,240, 90,241,104, 48,109,135, 39, 22,105, 41, 17,169,137, 99,119,173, 80, 90, 33,141, - 65,105, 25,247,241, 66, 60, 45,246, 79, 70,242,226,233, 4,114,104, 58,188, 37,104, 25,101, 65, 82, 18,178, 2,143,198,151, 37, - 46, 79,112, 69,129,157,230,244,169,166,147,146, 62, 77,232,148,164, 11,146, 54, 81,116, 73, 74,151, 37,244, 66,208, 43,197,104, -148,225,132, 97,103, 92, 48,202, 50, 94,152,140,248,157,189,107, 92,204,166,236,155,130,171,197, 52,122,219,149, 98,148, 72, 54, - 94, 96,211,140,198,187,120,157, 56, 23, 11,185,134, 50, 68, 66,120,231, 61,169,119,124,179, 72,121, 77, 43,130, 12, 40, 36,107, -235, 40,140, 70, 15, 89, 23,181, 15,116,222, 13, 98, 76,207,113,219, 35,145,156,216, 88,240, 37, 10, 41, 37, 90, 40,166,163,156, -255, 48, 79,249,222,222,152, 27,163, 17,211, 34,225,181,157,125,188,209,236, 23, 99,146,180, 32, 75, 50,114,165,127,195,162,254, -164, 0,121, 79,152, 22, 60,183,183, 23, 71, 73,104, 82,173,209, 74, 99,135, 19,164,150, 42, 50,243, 7, 4,236,186,174,216,218, -142,109, 31,103, 23,233,144,187, 29,132, 32,145, 2, 47, 3,123,163, 17,121,150,147,164, 9,229, 40, 65,248,192, 72, 75,186,243, - 6,183,173,161,105, 57, 95, 46,200, 36, 52, 77,195,166, 90,113,127,211, 48, 75, 19, 42,239, 81, 1,186, 68,211,122, 71,110,210, - 56, 49,239,186,161,168, 15, 88, 91,105,134,116,180, 33,192,123, 92, 60, 91, 11, 60, 41,240,114,128,210, 40, 13, 93, 59, 92, 68, -253, 51,165,250, 87,137, 0,133,135,180,128,100, 16,225,101,201, 64,205, 35, 38,190, 37,195,247,237,186, 56,154,183,225,233,126, -232, 87,242,218,137, 72, 88, 27, 28,115,109, 56,119,158,141, 16, 20, 64, 13,172, 0, 25, 2, 33, 4,214, 18,148,144,244, 2,216, - 63,228,191,254,251, 63,224,239,255,206, 55,248,222,107,111,240,231,103, 27, 66,219,242,226,229,171, 92,158, 95,160,245, 13,139, -135, 71, 67, 92,236,128,173,125,178,143,215, 67, 13,215, 95,174,229,254, 23, 59,117, 63, 28,236,190,244,241,246,241, 25,223,120, -233, 5,202,113,198,122, 93,211,213, 45,213,102,205,106,177, 6, 33,169,155,158,170,119, 88, 11,163,210,196,236,100,163, 49,198, - 32,181,198, 72,133, 8,106,176,133,121, 26,231, 88,183,150, 77,107,169,234,158,186,141, 2,146,174,181,209, 74,102, 61, 42,149, -184, 62, 16,108, 76, 24, 83, 82, 81,164, 9,227, 34, 97,148, 27, 94,122,245, 6,219,163, 13,125,223,113,107,121,142,237, 29,199, -203, 45, 15,183, 21, 82, 10, 30, 85, 13,253,186, 97,200,187, 4, 35, 72, 15,114,174, 29, 78,152, 21,138, 67,142, 0, 0, 32, 0, - 73, 68, 65, 84, 31,150,236, 79, 11,140,132,157, 60,231,165,157, 67,190,123,237, 37, 70,249,132, 44,215, 92,156, 23, 4,225, 81, - 33, 80,119,150,213,182,167,243, 30, 45, 96,150, 27, 46, 79, 51,118,139,132, 84,203, 33, 69, 44,161, 40, 19,150, 77,199,213,231, - 15, 57, 62,223,242,240,223,221,225,214,159,191,207, 31,254,240,207,249,231,255,247, 95,241, 71,255,211, 79,121,255,147, 47,248, -232,100, 65,187, 61,162, 93, 45,248,235, 31,255,140, 31,253,228, 61,118, 95,121,147, 99,165, 88,164,154,147, 91, 71,124,240,255, -252, 25,205,186,230,209,221, 71,144,100,236, 94,156,177,127, 80,240,199,143,106, 92, 22, 35, 84,123,239, 49,206,161,246,103,232, -193, 50,179, 62,171,249, 81,117,151,160, 20,173,209,124,251,210,132,215,111,188,194,119,222,250, 58,231,219, 13,255,195, 95,188, -141,223,223, 33,228, 57, 50, 40, 46, 22, 41,120, 71,237, 2, 5,130, 7,231,167,156,110, 27, 84,232,105,186, 22, 25, 28,216,150, - 18,205,101, 9,163,234,140,251,206,242,184,119,220, 10,146, 92,198,110,233, 85, 35,249,123, 7,151, 25,151, 51, 72,115,102,211, - 25,203,196,224,141,198,148, 35,188,210,140,178, 20,227, 35,192, 72, 43,208, 72,166, 74,115,150, 20,136,114,132,175, 55,241,144, -140, 32,108,155, 56,114, 14, 1,130,138, 17,201, 62,110,192, 93,112,228,211, 17,137, 18, 92, 20,129,185, 4,223,119,124,246,197, - 99,254,223,247, 79,152, 20, 10, 45, 5,255,237,215,223,224, 13, 2, 47,159, 31,113,124,112,133,255,238,197, 75,124,239,219, 47, -241, 82, 81,242,197,217,154, 59, 71,199,248,229, 54,202, 78,132,199,247,207,220, 33, 79,174,254, 39, 52, 55,105, 61,109,237, 57, -176,142, 73,170, 56, 72, 19, 46, 5,197,190,148,209,175, 46, 5,161,243, 92, 78, 13,157,130, 44, 77, 17,157,229,139, 44, 39,232, - 12, 89, 85,216,222, 34,108,204, 24, 16,105,130, 20, 32, 50,131,108,101,180,146, 89,144, 34,196,174,245, 73,183, 62, 20,115, 49, - 88, 85,159,250,188,127,137,215, 30,158, 82,255, 52, 46,254,111, 56, 9,159, 52,150,159,214, 53,183,132,228, 76, 72,154, 68, 18, -164,160,149,154, 38, 73,249,184,169, 57,114,158, 50, 77,201, 16,104,231, 49,193,227,250,150,190,175,208, 4,198, 58,229, 96,122, -137,164,152,147, 77, 14,209,217,132, 68, 23,104, 85, 48, 74, 83,114, 25,176,137, 36, 45, 18,250,178,164, 10, 10,100,202,116,154, -209,146, 96,138, 34, 90,152,103, 83, 52,154,201,206, 4, 47, 18,246,230, 99, 58,157,163, 70,211,136,253, 72,199, 8, 51, 4,129, - 25,160,200, 65,103,132, 44, 33,148, 35,194,116, 70,152,141, 9, 23, 15,152,204, 39,136, 34, 71,229, 41,110, 84,210,102, 57, 86, -107,250,124, 68, 95,148,116, 73, 66,159, 23,244, 73, 14, 38,101, 60,158, 49,205,243,120,200, 28,141, 24,229, 83,110,236,204,121, -181,220, 99, 87,103, 28,100, 5, 19,101,200, 84,130, 0,234, 16,187,231,181, 12,220,105,162,246, 34, 12,247, 98, 37, 5,116,150, - 61,169,227, 33,223,122,174, 26,216,241,158,107,153, 38, 21,160,137,133, 93, 6,168,137, 49,212, 50, 8, 30,247,150,142,168, 41, - 90,224,185,211,247,180, 94, 34,117, 64, 50,116,233,198,240, 15,166, 25,223,223, 25,147, 37,154, 75,101,198, 52,207, 9, 2, 70, -163, 29,116, 86, 98,178, 49, 82, 39,236, 77,102,191, 97, 81, 31,144,127,136, 4,150, 21,199,169,225,185,221, 61,188, 15,164, 73, -142, 36,112,190,222,146,153, 4, 31, 60, 18,168,187,134,109,215,224, 67, 96,209,212, 32, 60,174,247,244, 77, 71, 63,228,210, 86, - 3,102,212, 9,197,245,221, 41, 69,153,162,131,163,175, 26, 66,223, 96,143, 55,172,207,207, 89, 86, 43, 74, 36,167,182, 5,219, - 80, 87, 53,181, 13,212, 66,224,172, 69, 26,131, 71,160, 6, 81, 90,245, 36,146,117,181, 29, 80,170, 79,246,250, 14, 76, 10,179, -114,200,251, 13,177,224, 38,146,194, 24,250, 16, 67, 85,250,224,227,223, 75,224,100,245, 12, 55,251,203,133,216,251, 33,212, 37, -141,144,246,100,240,185,167,195,225,225,201, 76,150, 65, 60,183,173,227,191, 7,251,213, 48, 26, 33, 56, 7, 14,181, 98,229, 29, - 86, 4, 10,169, 88, 56, 79, 39, 5, 91,215,145, 41, 67, 67,192,136,136,120,172, 58, 5, 23,198,252,147,127,240, 59,140,178,130, -113,105, 56, 59,237, 41,199, 37,191,251,189,239,243,234, 75,135,140,165,226,157, 15, 62,136, 35,120,223, 15, 62,209, 65, 45,111, -109,124,156,246, 75,190, 20, 63, 16,246,212, 19,225,160,248, 21,199,169,187,255,152,227, 80,243,252,181,171,140,198, 25,213,182, -102,189, 58,199, 89,203,226,232,152,114, 50, 99,113,180,164,235, 3,143,207, 43,156, 84,209,154, 38,163,154,188,183,241,162,109, -122, 71,213, 89,186,222, 71,208,140,136,129, 42,125, 23,255, 44, 85, 28,223, 11, 41, 81, 66, 70, 76,112, 18,133,132,206,121,172, - 8,120, 27, 56, 59,175, 25, 21,154,114, 52,230,230,157,187,124,124,255, 12, 43, 61, 87,230, 19,206,207,106, 42,233,217, 43, 12, - 86, 43,156, 13,144,107,152,100, 76,203,148,121,106,216, 73,115, 70,105, 78,153,102,104, 17, 29, 24,227,209,140, 36, 41, 88,157, - 55,236, 29,230, 20,169,166,178,142,214, 5,214,141,197, 57, 75, 38, 4,243,194, 48,203, 52,153, 86,116,214,209,244, 30,169, 37, -222, 7,150,171,138,147,187,231, 60,120,255, 38, 15, 63,253,148,197,250, 12,156,229,235,175,191,194,254,171, 25,159,157, 44,162, -135, 54, 83, 60,191, 59, 6,224,222,201,150, 63,253,232, 35,178,215,191,142, 74, 21,221,182,225,237,255,237, 15,120,240,224, 14, - 15,190,184,199,163,163,199,236, 95,185,140, 29,101,248, 47,238,242,127,252,203, 31,178, 56,110,233,122,168,148, 98,161, 5,251, - 72,234,222, 33, 47, 77,248,247,127,240, 61,254,189,255,248,183,121,235,173,111,240,131,139, 87,185,171, 39, 28,125,248,115,254, -244,131,207, 57,214,138,214, 7,130, 82,212, 68,160,206,197, 44, 33, 39,176, 94,173, 88,172, 23,116,237, 26,108,135, 20, 80,109, -150,140,178, 17,179,201, 46, 23,139, 25, 55, 38,123, 60,167, 28,157, 80,156,214, 53,243,209,132, 81, 94,240, 79,118,247,121,225, -240, 2,153, 73,176,105,129, 79, 18, 86, 89, 70, 87,148, 88, 99, 40,115, 51, 76,112, 12, 99, 35, 41,133, 36, 81,158, 44, 81, 36, -102, 12,197,136,229,100, 10,213, 34, 30,146,141,132,109, 3, 73, 70,112,245,112,232,126, 6,198, 58,239, 90,238, 8,131, 21,146, -227,147, 37, 71, 39, 43,254,232,139, 5,127,178,108,216,109, 45, 59, 66,208, 28,157, 48,109,107, 46, 4,201,155,205,130,242,120, -193,230,243, 71,252,228,189,119,121,240,248, 46,155,198,178,233, 33,116,158,176,117,132, 85,207, 19,127,169,208,209,154, 37,123, -141, 68, 32,203,146,209,225, 14,106, 54, 98,111, 58, 34,241,129,203, 4,114, 23,200,165, 34, 13,158, 84, 27,122,239, 9, 82,146, - 88, 79,146, 38,140,172,231,174,245,200,209, 8, 89, 53,113, 52,223,244,168, 68, 33,147, 4, 25, 52, 50, 85,200, 36, 71,160,227, - 40, 90, 12,120, 16,231,159, 65, 93,134,110, 93,252,210, 61,233, 87,139,186,140,137,103, 90,225,180,196, 5,112,194,115,190,108, -248,162, 15, 28, 97,217,104,184,217, 87, 28,185,142, 19,109,232,156,165,212,134,194, 58,186,182,163,111, 43,182, 93,141,243,113, - 20,126,169,152, 80,230,115,178,201, 46, 58,203, 80, 38, 31,250, 18,133, 80, 26,215,111,163,115, 33, 85,204,138,148,157,210, 48, -205, 52,179, 34,101,119,158,179,208,134, 23,230, 37,123,153,226,187,251, 51, 94,204, 50,190,115, 56,231, 98, 89,240,214,165, 61, - 94,223, 41,121, 99,127,135, 11,147,168,103, 57,151, 9, 54,207, 98,198,249,116, 68, 24,151, 48, 41, 32, 47, 9,179, 17,255,249, -225, 62, 95, 27, 79,248,209,239,255, 27, 92,170,249,135, 47,191,202,231,206, 82, 37, 25, 78, 42,172, 49,184,124,140, 72,114,118, - 76,202, 44, 43,153,167, 25,227,180,160,212, 9,121,154,147,231,134,125,157,113, 61, 45,153, 61,109, 84, 29,141,119,148, 58, 69, - 73,201, 73, 87, 83, 7, 71, 23,224,220,197, 41, 93,112, 81, 37,176, 47, 5, 91,231,226,161,211,122,174,164,146,151,181,100,162, - 53, 77,231, 80, 18,180, 16,180,222, 51, 23,113, 81,124,106,123,142,156,167, 7,206,122,135,211,134, 5,129,166,143,150, 64, 53, - 76, 51,190, 63, 75,121, 37, 79,184,150,231,100, 90, 49, 75, 51,210,164, 32,207, 71,244, 82, 67, 26, 83, 67, 71,249,136,206,100, -191, 97, 81, 79, 74,200, 39, 48, 25, 67, 94,224,140,102,213,117,148, 73,194,209,118, 27,177,126, 74,209,217, 14, 27, 58, 92,112, - 4, 33, 88,247, 91,206,170,138, 85,223,209,109,122, 88, 14,163,231,222, 15, 10, 87, 79,221,118, 60,222, 86,164,210, 97,108,199, -227, 71,143, 25,245, 91,206,110,222,226,248,225, 61,170,237,134,164,107,233, 19, 77,127,126, 66,221,247,116, 85,135, 48,138,179, -222,211, 43,205,198, 7,186, 1,212,223, 9, 73,174,117, 4,104, 56,192,110, 33,203, 99,202, 28, 33,142,170,181,138,167,190, 52, -254,176,140, 16, 52, 46, 48, 49,154, 78, 4,114, 33, 99,252,251,166,141, 29, 93, 87, 71, 77,192,175, 43,236,195, 69, 77,145, 70, - 98, 93,211, 61,227,220, 19, 24,178, 4, 97, 84,192,114, 29, 59,245,175,234,252, 7,117,206,227, 16,168,165,100, 44, 20,139, 39, -240,194, 16,152,232,132, 51,107, 73,129,199,192,152,192,170, 11,160, 53,175,223,184,194,206,180,228,147, 91, 11,126,252,225,135, -124,253,133, 55,249,238,215, 46, 51,202, 51, 28, 29,127,246,215, 31,196,239,221, 91,144,238, 89,138,222,151, 11,186,181,177,160, -155, 47, 57, 29,158, 78, 50, 6,203,158, 29, 14, 76,244, 44, 62,189,203, 66, 90, 94,126,233,121,102,187, 99, 64, 99,109, 79,221, -108,184,119,255, 30, 88,135,109, 61,203,229,150,243, 85,195,233,121,195,218,122,172,141,190, 89,231,163,195,194,135,128,145,177, - 8, 10,169,201,180,196,203,216,157, 40, 35, 16, 66, 34,165, 36,205, 53,133,137,130,196,182,237,233,157,195, 59,135,240,129, 64, - 32, 47, 82,138, 60,165,171, 60,125,191, 98, 99, 61, 7, 69,201,238, 36, 99, 55,207,152,100, 5,175,236, 31,242,218,213, 43,188, -121,237, 26,175, 93,188,204, 97, 57, 66, 4, 79,166, 19, 38,217,148,131,209, 62,179,241, 30, 69, 54,102,182, 51, 39, 73, 36,105, -154,113,176, 59, 97,111,162, 88,111, 45, 39,171,150,186,235,169, 91, 75,221, 91,172,139, 0,139,101,221,115, 92,117, 3, 9,174, -103,185,109,208, 82,112,113, 86,240,209,199,183,233,250,142, 16, 4, 35,109,184,183, 60, 33, 79, 51, 14, 14, 71, 60,114, 29,155, - 91, 43, 62,187,189,224,161,119,120, 35,232,110,159,209,126,251,155, 92, 26,101,236, 28,140, 56,249,236, 19,148,239, 57,216, 27, - 65, 87,113,231,193, 49,207,141,103,188, 46, 60,147, 44,229, 95,253,243, 31,242,243,191,124,155,183, 63,250, 16,125, 86, 99,179, - 25,166,245,140,171,134, 31,254,233, 59,236, 23,134,145,150, 20,179, 17,238,227, 79,241, 67,222, 64,109, 3,199,206,226, 69, 64, -170, 56,169, 58,175, 26, 90, 91,113,220,108, 57,107, 43,130,119,232, 32,144,193, 33,138, 49,105,146,241,234,124,143,121, 81, 34, - 19, 67, 62,158,115, 56, 46,185, 50,157,242, 87, 31,188,199,215, 14, 46, 51, 25,229, 92, 48, 57,107,161,168, 68, 32, 76,198, 52, -243, 49,173, 16, 84, 38, 35,205, 13, 65, 41, 14,159, 16, 32, 59, 75,131, 64,107,195, 74, 40,242,217,156,231,167,187,124, 97, 74, -168,150,132, 60,137,211,182,103,180,249,248, 62,214,106, 0,154, 88,108, 23,184,237, 61, 39,157,227,167, 85,199, 23,210,115, 41, - 79,184,150,104,174,171,136,236,157, 27,141, 14,150,169,131,169,183,204, 17,220,208, 57, 47,107,133, 10,150,119,122, 31,133, 84, -101, 70,152,150,188,240,252, 14,103, 58,143,108,141, 81,142, 24,101,177, 32,239,207,201,247,118,184,182,127,153,217,236,128,249, -116,159, 92,107, 70,193,146,185,192, 54, 56,140,146, 36, 73, 74, 34, 6,199,128,128,233,222,140,217,188,228, 40,205, 81, 23,247, -163,202,185,239, 81,235, 10, 57, 88, 48,149, 78, 80,169, 70,149, 41, 50,201, 72, 38, 99,176, 49, 66, 86,120,135,124, 50,138, 15, - 1,225, 37,226, 75,147,181,240, 43,133, 93,226,181,138, 68,104,173,113, 42, 90,245,172,244,184,174,230,188,246,124,190,173,169, -145,156, 40, 88,245, 14,163, 18,232, 43,166, 72, 82,235, 88, 85, 11,100,176, 84,206,145, 4,199,133,108, 74, 49,222,197, 36, 57, -114,176, 31,203,201, 24,130, 36,244, 29, 65, 6, 26,122, 58,165,176, 18,210, 36,193, 72, 73,145, 37, 36, 70,147,103,134,151,139, -140,239,141, 74, 94,204, 83,158,159, 76, 25, 39, 57,175, 76,103, 76, 76,193,149,162,228, 32,205,153, 37, 9, 23, 70, 57, 23,114, - 77,154,105,202, 82, 51,202,114,108,150,209, 25, 67, 57, 46,248,135,243, 25,223,158, 28,242,252,104,135, 71,191,243, 22,255,205, -243, 47,243, 63,102, 19,190, 31,122,110, 11, 73,167, 13, 33,201, 73,116,202, 78,146, 48,214,154, 50, 81,200, 32, 73,132, 32, 49, - 5, 82, 72,118, 76,202,142, 50,236, 73,197, 60, 43,105,251, 14,109, 18, 76,136,218,171, 46, 56,106,239,121,228, 90,142,154,158, - 42, 68, 59, 93,240,158,113, 8,180, 34,218, 16, 19, 1, 29,130, 66, 6, 14, 6,235,116, 98, 20, 59, 34,174, 24, 82, 25, 27,151, -202, 7, 62,235, 45, 39,222,179,176,150, 45,130,181,119,116, 38,234,127,100, 26,119,252,215,199,138,151,115,205,243,121,138, 20, -130, 81,154,160,164, 38, 49, 41, 38, 77,192, 36,104, 19,139,122, 35, 98,224,213,223, 94,212,181,142,214,180,217,124, 16, 97, 9, - 16,138,106,213,112,127,185,166,182,209, 7,152, 36,154,117, 91,177,109,107,182,237,154,117,191,102,177,173, 56,174, 42,186,227, - 13,156,157,199, 98, 94, 85, 81,141, 93,213,136,237, 54,170, 89,235,134,187, 15, 79,120,239,227,219,124,120,255, 17,243,163, 99, -214,143,207,201, 60,200,161,227, 95, 29, 47,208,206, 81,183, 61, 8,168, 2, 60,106, 44, 91, 17,208, 8, 66,162,249, 79,190,241, - 61,238,159, 60,196,250,128,147,192,182,130,218, 66, 91, 71, 65,156, 28, 40,115, 58, 5, 99, 40,202,148,174,235,201,211, 20, 45, -161,114,118,160,155,129,237,226,206,132,109, 29, 11,221,223, 52,134, 71,193,116, 52,236,238,135, 81,126,154, 12,150, 64, 61, 20, - 66, 11, 65, 32,148, 66, 84, 27, 68,111, 17, 95, 65, 92,122, 34,116,235,172, 98,173, 2, 90, 68, 14,242,121, 8,232, 16, 34,164, - 14, 34, 54, 83, 39,116,218,209,183, 29,231,139, 19,126,244,233, 61,254,221,237,207,185,125,255, 24,161, 36,207,221,184,206,106, -185,225,230,199, 15,120,239,131, 79,160,170, 65,182,241,249,200, 47, 89,225,244, 19, 33,202, 64,201, 99,176,121,241, 37, 74,223, -147, 36, 58, 63,168, 86, 92,124,218, 39,159,220, 65,151, 25,207,189,248, 28, 89,145, 34,101, 66, 94,142, 25,143,198, 24,173, 57, - 95,157,147,153,148,221,249, 4, 43, 3,182,237, 89,174, 42, 64,144,164, 26, 57,236,168,227,168, 73,160,181,192, 40, 73,145,106, - 18, 19,137,116,153, 49, 24, 19,109,113, 10,129, 35,142, 44,181,150, 24, 36,163,113, 74,150, 27,250,214,211,244,129,157,249,156, - 36, 24,246, 77,201, 40,201,216, 29,237,112,101,231, 50,251,179, 3, 82, 41,201,211,130,188, 40,200,211, 17,163, 98, 66,130, 97, - 50,218,225,240,224, 34, 87,175, 95,226,107,111,220,224,107, 47, 95,225,205, 23, 15,249,250, 75, 23,153,239, 77, 16,202, 48,201, - 60, 77,107, 99,247, 69,244,172, 55, 85, 79,135,199, 9, 65,229, 28,221, 32,124,169,186,136,225, 61,152, 22,188,114,121,206,195, -227, 45,119, 31, 61,102,103,186, 67, 49, 26,209,185,142,207,142,143,104,123,203, 56, 55,164,179,148,116, 47, 35,201, 36,223,184, -178,207,115,215,230,220,122,251,109,158,251,238,183, 40,115, 77, 62,158,115,247,157,247,200,140, 36,207, 82,150,103, 43,116, 83, -225,102,187, 92,254,254,107,140,115,205,135,239,223,102,188,109, 41, 55,231,188,240,234,235, 28, 26,193, 97,154,240,205,221, 61, -206, 22, 13,237,195,115,206,190,120, 72, 21, 28,202, 5,250,222, 18, 46, 93,229, 19, 39, 8,213,150,107, 73,202, 89,189, 65,119, - 53,139,106,195,162,238, 57,204, 52,243,124,196, 56, 47,240,166,160,204, 10,174,150, 35,174,152,148, 34,207, 88,151, 41, 91,239, - 41,138, 18, 35, 53, 95,191,246, 28, 82,193,121, 8,164,147, 9, 15,157,195,141, 74,150,169,230,204,104,164,150, 56,161,232,144, -236, 22, 6,225, 97, 44, 5, 53, 49,102,119,225, 61,169, 76,121,253, 96,204,127,121,117,204,126, 49,229,199,157, 64,108, 22,113, -181,149,165,241,194,211, 89,196, 52, 59, 16,122, 0, 48,185, 14,183,109, 57, 9,158,115,225,153, 11,201,141, 76,113, 45, 53, 28, - 26, 69,153,106,180, 81,140,147, 4, 58,203,193,100,196,100,186, 79,158, 23,228, 74,147, 25,205, 50,133, 59,121,130, 43, 82, 94, -187, 52, 38,207, 12,201,200,176,108, 3,210,129,148, 9, 98, 90,240,143, 47,206,248,230,206, 46, 59,211,125, 70,229,136,185, 78, - 64,101,236,248,232,165,158,100, 25,173,139, 97, 71, 94, 66,162, 20,179, 23, 94, 35,187,244, 18,187, 47,190,201,213,107, 55,184, -180,179,207,165,253, 67,100,230,216, 10,129, 92,108, 80,117,143,202, 13, 42, 77, 81,227,130, 23, 15,246,249,123, 55, 46,243,234, -193,152,135, 94, 96,183,219,193,227, 29, 6,133,248, 87, 11, 93,159, 29,125,124,100, 60, 40,249,180,160, 63,241,222, 59, 15,206, -117,184,117,199,106,189,230,180,182, 28, 47,215,156,250,154,188,173,144,109, 5, 93,133,113, 29,171,170,198,225, 24, 11,201,229, -209, 46, 70, 36, 36, 73,142, 42, 75, 40,226, 90,209, 91, 75,111, 59, 58,223, 83, 7,203, 90,120,250, 97,122, 58,206, 18,114,163, -104,133,228,235,101,201, 85,165,249,198,120,202, 72, 38, 76,147,132,189,108, 66, 80,154,195,108, 76,105, 10, 70,218,112, 49, 31, - 35,131,103, 47, 43, 41, 18,205,200, 24,178, 84, 51, 79,227, 8,250,141,188,224,149,209, 14, 55,202, 57, 66, 74,190, 99,226,234, -243, 37,223,225, 85,164,105, 30,251,152,126, 55, 1, 74,157, 70,235,157,212, 24,161,208, 42, 1, 17,200,211, 20, 27,122, 46,153, - 52,254, 28,131,167, 24,210, 73, 91,231, 72,141,102,221,183, 44,250,150, 19, 34, 6,246, 92,128,117, 14,233, 3,162,181,140,156, -163, 31, 68,205,137, 8,172, 16,236, 9,207,133, 68,115,160, 20,189,119, 44,109, 28,213,111, 61, 28,133,192,167,189,163, 3, 90, - 1, 94, 10, 86, 74,178,237, 37,157,209, 8,165,216, 77, 52,215,114,195,235,121, 74,130,192, 11,193, 78,154,129,214,148, 89, 74, -167, 12,163,108, 66, 67,192, 10, 65,171, 20, 45,242,111, 43,234, 26,242, 18,230,243, 65,232, 37, 98, 39,234,135, 96, 22,231,105, -125,207,178,179,100, 26,186,224,144, 74,177,172, 42,142,235,154,199,143,150,184,199, 3,198,117,187,133,122, 27, 59,102,219,197, - 95,251, 54, 50,144,235, 77, 76,105,170, 54,132,186,102,234, 36, 47, 29,236,176,236, 59,164,209,116, 3, 19,183,147, 18,229, 60, -107, 33,216, 75, 18,238,160, 56,173,106,132,144, 96, 61,159, 31, 61,196, 5, 31,187,246,174,141, 20, 55,250, 72,192, 99,232, 66, -251,161,163, 30,231,244,141,101, 84,150,108,218, 22, 51,248, 64,219,206, 34,108,244, 75,211,181,195,213,223,199,199,236,134,240, -151, 95, 46,236,154,232,209, 87,102,240,245, 63, 17,176, 13,100, 62, 37,163, 16,166,107,227,191,119, 62, 42,235,127, 73, 21,250, -180,168,135, 0,210, 83,106, 77, 39, 33, 23, 34, 54, 51, 65, 48,214,154, 62,120, 52,130, 99,239,216, 19,134, 76, 56, 30, 45, 55, - 60,120,184,102,217, 68, 15,250,241,221,251,124,186, 88,114,235,254, 57, 63,124,231,231,112,239,193,240,216,186, 65,252, 38,191, - 4,191,249, 50,227,241, 75, 93,250,147,130,254, 36,208,135,129, 91,224, 35, 24,230, 73, 0,243,237,143, 62, 37, 45,115, 94,126, -237, 69,164, 22, 84, 85,220,177, 23,163, 17,222,247, 52, 93, 77, 62,158, 34,125,236,198, 43,219,209,214, 61, 89, 97,168, 90,135, -181,129,118,128, 5,101, 70, 12,137,107,146,204, 68,174,123,162,163,167, 61, 75, 35, 36,168, 72, 12,137,145, 20,153, 97, 50, 74, -217,153,229,236,143,114,116,102, 72, 83,205,238,180,100, 50,157,144,148, 99,164, 77, 41,179, 73, 60,104,204, 38,104,149, 82,148, - 37,229,100,130,239, 28,163, 73,201,165, 43,151,120,225,185,171,188,244,194, 33,175, 94,155,113,125,191,228,112,148,178,172, 60, - 39,149, 37, 83,129,159,124,252, 41, 31,125,122,139, 11,135,115,186, 16,109, 74, 1,232,156,197, 89,199,170,238, 56, 91,214, 44, - 87, 53,155,117,195,114, 81,177,218, 52,224, 3, 51,173, 57, 93,183,172,214, 13,203,245, 25,206, 58,164,210,104, 17,184,119,182, -161,183,158,113,110,112,206,243,112,213,209,245, 45,207, 31, 92,224,130,134,254,249,151, 40,210,132,189, 11,115,254,206,223,125, -139,127,253, 71,127,129,198,146,164,138, 59,103, 43,108, 82, 50,187, 48,231,229,215,111,144, 9,207,189,229,130, 43,187, 5,147, -170,230,181, 23,110,160,100,244,212,103, 70,113, 84,181,244,125,141,245,129,102,179,193,246, 45,119, 31, 63,224,139,119, 63, 34, -236,205,249,189,107, 47,242,163,197, 9,250,236, 20,223, 91,174,204,199,204,243, 49,187,229, 4,159, 21,140,138,146, 81,146,112, -209, 7, 14,147,132, 10,207, 23, 65, 18,140,166,114, 1,202,156, 44, 79,163,151,118, 50, 97, 45, 5, 39,227,156, 83,239, 57,107, - 29,105,158,208, 33,216,108, 58, 92, 31,181, 19,107,101,184,231, 2, 43,157,176,242,154, 66, 27,124,219,241,143, 47,141,184,190, - 63,166,212,112,115,107,216, 14,221,210, 75,218,177, 40, 75, 84, 97, 8,153,161, 40,115,108, 63,192,150,140,140,141, 67,223, 16, -218,134,149,183, 8, 23,152, 75, 73, 39, 60, 34, 79, 40,166, 41,218, 24, 18,173, 24, 21, 69,212,120, 36, 57,141,117, 44,148,100, -101, 18,198, 38,176, 78, 52, 70, 74,178, 84,115, 94, 91, 54,181, 5, 37,249, 71, 23, 10,254,233,197, 57,191, 59,223,225,107,229, -156,153,210,156,166, 57,157, 16, 92, 8,129, 52,120,114,111, 89,119, 29,101,145,177,117,142,253,162,160, 30,205,209, 7,215,217, -185,124,133,253,113,206, 94, 86, 32,146,168, 50,223,223,217,231,242,100,204,168,148, 44, 87, 21,186,181,232, 50,198,170,254,222, -245, 23,248,173,253, 75, 76,138, 57,171,212,113,212, 6,100,211, 33, 91, 79,220,172, 63, 41,236, 79, 70,111,191,104,193,123, 86, -216, 45,222,232,167,183, 51,175, 98,172,177, 87, 34,170,253,113,132,243, 53,225,248,132,118,181,229,222,189, 5,247,206,150,152, -174, 70, 88,139,235, 58,148,247,140,145, 28,152,132, 60, 31,163,179, 18, 97, 36, 66, 39,248,182, 39,216, 46,194,110,250, 45, 15, -251, 13, 27,192, 72, 65, 47, 20,185,140,174,158, 23,178, 28, 21, 60, 95,203, 70, 84,222,179,151,143,208, 58,197,152,132, 84,103, - 72, 19, 15,241,133,206,232,125,199, 44, 25, 97, 67, 20,252,153, 36,165, 39,144,106, 69, 34, 4, 87,139, 9,215,210, 18, 7, 8, -101,112,193,161,148, 96,150,166, 44,173,101, 65,207,137,139,148,186,204, 40,100,240,104,169,209, 33,234, 94, 52, 2,149,168, 56, -169, 19, 10,239, 45,123, 58, 37,115, 49,181, 45,174, 81, 4,125,223,113,220,213, 60,234, 59,142,125,207,178,110,169,188,163,222, - 84,120,231, 72,136,233,141,115, 37, 41, 8, 44, 3, 36, 14,238,123,193,124,144,250, 87, 66, 48, 29,178, 46,238, 5,207,207, 26, -203,137,136,119,227,141,128, 70, 8, 86, 8,182, 14,102, 25, 36, 8,156,150,124,215, 40,114, 21, 72,165, 34,151, 10, 37, 97,100, - 12, 94,106, 50,157, 18,148,198, 73,195, 86, 42, 92, 16,212,206,253,109, 69,221, 67, 49,137,197, 41, 75,145,105, 74,158,153,184, -115,126,194,126,223,214,224, 61,139,147, 21,167,189,231,164,173, 88,220, 63,166, 62, 90,195,253,251, 49,106,175,105,127, 45,113, - 78,124,197, 8,122,108, 20, 78, 25,198,121,202,102,216, 73, 97, 20,161,237,177, 70, 83, 40,205,143,219, 22, 41, 29,141, 84, 52, -125, 28,127, 58, 31,227, 63,159,250,192, 87,213,160, 54, 31, 32, 51,142, 24,161,234, 93, 76, 72,155, 79,232,186, 14,169, 4, 14, -137, 36,224,196,192, 77,223,110, 99,145, 14,196, 68,165, 39,187,102,220,175, 22,117, 33,162, 32, 47, 49, 81, 5,255, 36,110,240, - 75, 4,168,104,155, 27,168,119, 74, 12,135, 26,251,171,150,143,167,248,215,104,191, 16, 66,209,136, 64, 75,160, 28,138,236,142, -138,202, 78,124,160, 35, 48, 21, 9,210, 58, 54,161, 39,172,182,209,166,101, 27, 86,189,229,168, 90,194,249, 42, 30,168,156, 69, - 72,251,139,223,199,126,169,176,243,165, 46,253, 73, 97, 87, 67, 65,127, 26, 43,203, 51, 55,192, 19,201,128,132,207,222,255,152, -253, 75, 23,185,252,220, 37,130,144,241,166, 93,109, 98,206,177,119,156, 30, 69,246,248,225,165,125,210,196, 32,165, 98,127,146, -179,173, 45,219,206, 98, 18, 29,173, 98,131,242, 88,105, 25,119,234,131, 30, 40, 51, 10, 41,100, 28, 83,132, 24, 96, 49, 42, 82, -178, 52, 33,211,138,162,212,164, 3,163,160, 72, 37, 89, 98, 40,138, 4,167, 3,206, 90,140, 82,228,217,152,209,180, 36,201, 12, - 74,105,188,179,204,103, 35, 46, 94,153,114,105,167,224,202, 44, 35, 79, 52,141,245,124,113,222,242,120,189,225,232,248, 17,111, -191,251, 14,159,223,249,152,119,111,221,230,133, 27,215,153,143, 51,188,139, 81,172, 77,211, 83, 55, 29, 77,213,179, 89, 54, 52, -155,134,237,186,162,173,163,117,241,112, 82,208,184,192, 23,199,231,204,247,247, 64, 26,206, 54, 75,214,237,134, 68, 27,146, 52, -208, 59,143, 11, 1,105, 36,153,150,172, 58,203,221,229, 25,214, 89,142, 63,187,197,139,223,120,157, 43, 70, 49,145,138,249,213, - 43,172, 62,191,137,147, 49, 69,110,181, 56,229,185,195,203,204,118, 70, 92,127,245, 6,133, 72,120,251,147,155, 76, 83,193,119, - 94,123, 61,142, 97,133,224,104,211,114,210,247,156,110, 54,252,235,144,113,195, 85, 60, 88,157,241,227,179, 83,154, 71,167,240, -224, 1,223,159,103,124,162, 10, 30, 39,154,229,135, 15,120,245,234, 30, 89, 94,146,103, 5,118,160, 96,181, 82,145, 9, 65,112, -158, 62,201,184,217,244,164,211,130,109, 27,185, 1, 73,162,152,206, 74,156, 13, 44,156,228,124,219,114,182,110,232,170,138,243, -243, 45,235, 85, 67,150, 72,232, 58, 10, 9,171,198, 67,154,210, 39, 26, 53,206, 89, 39,134,165,147,172,130,229, 18,240,251,103, -150, 59,125, 20,118,190,216,175,113,218,112, 65, 9,190, 57,155, 96,140,231,226,184,164, 44, 37,139,173, 7, 23, 16,125,253,165, -123,137,227,204,118,124,216, 86,188, 93,247,172,164, 67,105, 67,105, 34,223, 94, 5, 71,240, 61,155,174,230,147,174,226,166,132, -165,237, 81, 54,130,100,214,189,163,233,123,238,156,117, 32, 5,151, 71,134,223, 27,165,252,214,108,198, 56,203, 81,206,210,120, -203,231,213,134,190,222,162,155,138,108, 16,147,101, 66,198, 12, 4,163,217, 72, 77,153,164,152,233, 1, 7,187, 51,198, 69,206, -220, 40, 10, 41,240,214, 49, 73, 82,102,243,125,158,219,191,198,155,151, 46,243,202,254, 28,187, 62,231, 82,154,243,189,157,125, - 46,236,204,240,198,112,167, 17, 60, 76, 4, 74, 39,200, 52, 65, 56, 27,239,109,222, 35,126, 81, 20,243, 11, 35,248,167,157,123, -128,160, 36, 94, 69,175,187,215, 50, 22,125, 69,140,254,236,135,228,189,182, 3, 2, 77,215,113,123,221,177,170,107,142,234,138, - 16, 4,133, 22, 28, 74,193, 40, 27, 35,149,142, 94,116,231, 8, 93, 71,223, 84, 84,245,146,181,171, 88,248,158,115, 28, 54, 8, - 74,165,216,120,199,133, 36,103,233, 29,175,166, 37, 78,192, 78,154,227, 66,160, 76, 75,156,148, 36, 67,167, 29,144, 32, 60, 18, - 69,235, 45,141,239, 81, 82,196,164, 70,165,240, 56,180, 48, 28,100, 25, 59,186,196, 17,133,144,133,214, 52, 46,242, 12,206,187, -134, 47,250,154, 51, 27, 83, 21,147,224, 49, 62,166, 45,106, 17, 48, 2,204,144,224,102,131,167, 11,158,214,121, 18,219, 49,147, -138, 4, 73,211, 54, 88,107,121,216,108,185,217,172, 57, 13,150,133,235, 88,247,142,123,103, 43,124,219,195,166,162,109, 59,138, - 32,201,148,103, 97,195, 83,109,208, 38, 4, 30,181,158,187,210, 83,247,158,255,175,237,249,172,182, 44, 67,224,175,154,104,239, -189,221,131, 87,129,147, 14, 86, 34, 82, 64,141, 86,100, 18,180, 8,212, 34,112, 73, 73, 10, 33, 41,132, 64, 43,129, 64,146,104, -131, 73, 50,122,101, 56, 69, 80, 17,232,130,199,255, 70,234,119,229, 33,207,193, 36,140,203,156, 30, 71,110, 98,238,186,171,251, - 88,176, 23,143,225,232, 4, 78,142, 8, 15,143, 34,175,184,218,254,198,108,147, 95, 46,236,167,206,243,242,100,140,205, 20, 90, - 64, 19, 4, 88,135, 50,154,166,107, 56, 87,138, 76, 9, 30,183,158, 83, 47,162, 2, 52,132, 33, 28, 96, 80,118,111, 99,188, 94, -204, 74,183,207,226, 98,245,144, 25, 63, 60, 7,180, 38,248, 64,112, 46, 30, 8,194,128,114, 53, 67,215,237,109,204,154,175,171, -248, 90, 72,241,235, 19,215,166,243,152, 57,175, 99, 44,171,176,195,215,139, 33,226,181,233,227, 24,223,251,248,152, 93,247,213, -232,245, 39, 2, 60,192, 89, 69,103, 5, 19, 3, 99, 33, 81, 74, 81, 57,135,247,158, 14, 24, 11,112,196, 19,232,105,227,152,164, -208, 58, 23,247,248,121, 49,188,163, 29,244, 53,162,111,159,165,185, 61,117, 53,248, 97,189, 96,159,141,229,191,124, 59, 8,225, - 41,244, 98,240,202, 12,135, 27,255,139,157, 62,240,222,143,127,198,181, 23, 95,226,226,181,125,148,138,227,240,190,173, 9,193, - 19,164,167,235, 90,206, 78, 79, 89,158,173, 57, 61, 57,229,248,180,102,211, 52, 44,207, 42,130,145,212,173, 99, 85,117,228,169, -137, 36, 37, 25,187,118, 33, 32, 49,146,220, 72, 50, 99, 40, 51,131, 82,138, 44,215,228,137, 65,232,103,137,123,189, 13,120,160, -106,226,227,156,142, 50, 46, 95,156, 82, 76, 50,246,246, 51,202,169, 97,190, 83,176,183, 87, 50,219, 31,243,198,245,125, 14,167, - 25, 69,170, 56, 95, 53,188,247,197, 17,127,241,238,199,124,246,217,103, 60,184,247, 57,239,126,248, 1,239,220,185,203, 7, 71, -103,220, 91,214,204,172,231,245, 87,111,144,104,133,146,130,214, 58,234,186,139, 74,233,100, 80,231, 35, 48,153,224,187, 59, 99, -174,239, 78, 88, 54, 29,247,207,150, 28,238,205,152,204, 10,148,202, 73,188,225,209,250,148, 68, 42,186,224,176, 33, 48,207, 51, -202, 84,115, 56, 29,147,106,137, 87,130,169,239,121,225,198, 75,104, 41,105,140,164,219,159,179,253,226,140,176, 61,167,200, 34, -147,253,179,207,110,114,249,197, 23, 80,121,202,141,235,135, 76, 68,198,163,197,130, 63,249,252, 30,223,184,122, 13, 39,224, 94, -219,241,227,247,255,138,127,249,254, 71,156,187, 45,159,156, 63,230,246,241,130,243, 91,199,132,205,146,208,215,252,248,206, 61, -170,197,121,212,126, 92, 61,224,179,207,239,241,181, 43, 87,232, 16,104,147, 32,165, 70, 73, 67, 45, 37,231,193,115,146, 40,130, - 49,180, 77, 71,235, 4,181,243,148,133,142, 14,141,174,103,187, 56,161, 91,109,120,184, 94,163,172,165,173, 43, 18, 44, 73, 83, - 83, 12,139,148,121,145,144, 24, 9,121, 78, 39, 36,231,121,202,120,148,241, 96, 27,248,201, 73,205,209, 98,203, 73,103,121,113, -123,206,166,111,185,150, 25,178, 44, 99,229,122,174,103, 5,149,235,249,121, 19,248,214,229, 41, 15,151, 77,212,183, 40,255, 21, -250, 23,199,163,186,225,167,235,154, 73,237,168,154,158,181, 11,220,238, 90,254,109, 93,243,158,235,120,108, 27,250,182,165, 58, - 89,178, 17, 48, 71, 82,213, 45,137,132,177,145,228, 26,126,123,146,179, 39, 32,241,176,174,215,252,116,121,198, 95,110,215,248, -110,131,169, 43,164,237, 72, 17,204,180,194,202,152,123,208,218,158,198,164,204, 38,187,204,178,130, 50, 79, 81,157,195,244,142, -177, 73, 24, 39, 49,222,118,119, 50, 66, 39, 57,187,187,251,188,178,127,141,203, 50, 33, 23,208, 55, 29,119,234,138, 7,189,227, - 76, 72,212, 56, 71,230, 10,145,151,136, 52, 71, 8, 29, 27,135,158, 47, 37,221,127,133,120,206,251,104, 15,244,224,181,124, 6, -219, 81,224,219,246, 89,135,159, 38,241,158, 85, 78,162,226,123,119,206,114,235,216,236,206, 41, 85,180, 90,153,106, 73, 46, 20, -216, 30,231, 2,206,246,212,245,146,141,173,120,208,174,121,224,123,194,112, 24,239,173,101,100, 82, 30,246, 45, 87,179,156,218, -121,118,147, 12, 33, 4,101, 54,198,227, 24, 23, 99, 54,189,197, 38, 6,223,119, 36, 73,130,247,129, 62, 6,145,178,234, 59,156, - 20,108,156,165, 37,250,243,149, 80,132, 0, 83,157, 80, 26,141,247,144,105,195,178,169,185, 93,175,184,213,212,172,172,165,119, - 22, 33,160,243, 29,184, 30,231,122,164, 23,212,125, 77,215,182,113,109,208,117,212,237, 10,217, 55, 44,251,142,166,171, 57,233, - 27,150, 93,197,173,102,197, 99,103,121,212,110, 57,247,150,202, 5, 78,215, 91,194,106, 75,240,241, 48,153, 36,134, 32, 4,153, - 20, 20, 74,176,112, 30,235, 97, 27, 96,225, 5,183,122,207,194, 11, 30,118, 61,183, 58, 71,135,228,220, 7,122, 33,216,122, 73, - 31, 2, 4, 65, 72, 37,170,243,148, 6,218, 32, 81, 42,176, 35,227,253,246,192,104,206, 58,143,146,195, 24, 31,193, 93, 4,149, -214,108,173,195, 42,205,169,237,126,131,162, 46,135,113,241,124,142, 49, 18, 53,156, 66,170,174, 31, 84,225, 50,166,183, 53,221, - 47,118,124, 38, 25,198,209, 67,241,252, 13, 18,221,158, 22,119,163,185, 27, 20,151,138, 4,239,162,154, 93, 40,205,178,169,241, - 58, 3,231,248,211,109, 75,162, 52,219,174,123, 54,178,126, 18, 74, 51, 96, 72, 89,159, 15,227,227,225, 77, 46,205,112,189, 91, -240, 38, 78, 32, 82, 3,189, 67, 9,143, 25,242,208,131,148, 76,132,164,109, 26,216, 14, 65, 44, 97, 16,136,245, 3, 0,225, 87, -242,209,135, 56,131, 44,133, 34, 69,108,187, 24, 30,131,143,175,159, 34,230, 78, 53, 45, 34,196,132, 34,209,118,113, 63,246, 85, -175,131,247,113,220,175, 61, 16,149,171,137,144,180,222,145, 72,193, 8,141, 23,209,226,118,223, 91, 82, 33,120,209, 72,250,224, - 89, 63, 61,180, 71,127,232,244, 96,143, 23,222,120, 13,117,225, 2,219,109, 15,161,128, 55,223,226,183,127,231, 63,227,158,115, -136,211,123, 3,246, 54,137,107,132,108, 54,144,244,220,211, 20,165, 39, 12,249,120, 24,248,245,232,220,119,254,242,199,188,241, -157,111,177,115, 56,197, 24,141, 48, 17, 4,227,173,199,139, 16,223, 68,244,180,182, 37,132,192, 98,177,160, 40, 74, 50,147,210, -182, 22,147, 74,242, 68, 83,166, 6, 59, 88,251,139, 68, 33,130, 36, 77, 34, 38,209, 7,143,210, 2, 51,172, 16,210, 65, 89, 47, -164, 32,213,160,165, 36, 85,138,249, 40,225,218,126,201,238,184, 32,203, 19,202,145, 65, 75,197,254, 52, 99, 50, 74,160,235, 89, -215, 27, 30,174, 54,252,252,243, 35,126,244,206,187,124,252,241,251,252,240,131,119,249,232,209,125,126,254,248, 49, 31,221, 62, -230,252,108, 75, 95, 59, 72, 21,143,215, 75, 94,191,126,131, 75,187, 99, 18, 45,233, 7, 63,233,141,189, 17,111, 28, 76, 48,101, -138,212,146,231, 74,195,235,243, 49, 58, 4, 62,126,184,224,180,110,184,118, 48,101, 90,102, 60, 56, 62,231,202,254, 30,105, 82, - 98,148,224,218,197, 43,236,230, 35,178, 52, 33, 77, 36,243, 52, 99,150,151, 92,221,221,103, 50, 26,241,232,206,125,194,206, 5, -238,120,135,208,146, 27,223,122,137,229,199,247, 16,182,166, 76, 19,188,119,124,254,241, 45,246, 47, 94, 98,220,116,220,184,178, -199,121, 29,200,131,229,224,149,235,180,121,224,255,250,131,255,147,211,236,144,147,106,133,255,236, 1, 77,223, 81,183, 45,225, -100, 67,168,150,208,219,168,228,237, 35, 62,149,182,131, 43, 23,185,174, 52, 90, 27,180, 82,244, 2,130,183, 56, 9, 78,104,214, - 29,100,153,161,239,123, 84,179, 5, 27,120,116,182, 65,216,142,237,249, 18, 87,173,113,237, 22,221,181,156,184,158, 77, 8, 20, -125,203, 78,128,185,235, 25, 19,152,107,195,104,148,162,149, 98, 17,162, 80,236,226,200,112, 48, 47,208, 38, 69,105,201,158,131, -102,189,228,249,105,206,231,235, 45, 85, 83, 51, 78, 19, 54, 78, 18,148,224,181, 81,202,191, 93,118, 4, 45,226,248,157, 4,136, -150, 72,190,228, 51,143,133,205,242,254,166,229,253,206,178,178, 45, 15,131,231, 78,221,179,168, 58,110,159,158,243,201,249,154, - 99, 47, 73, 15,167, 28,142,115,122,231, 56,119,150, 92, 10, 50,161, 48,157,101,209, 54,252,236,228,140, 63,124,112,202, 63,123, -188,226, 81,235,223,218,122,142, 0, 0, 32, 0, 73, 68, 65, 84, 40,250,154,210, 58,250,224, 56, 52,112,142, 98, 36, 35,244,164, - 82,154,115,192,168, 17,187,147, 9,174,233,145,137,162,237, 44,157,237,153,142, 50,242, 84,147, 35,152,101, 9,210, 72,228, 40, -103, 60,223,197, 8,131,237,122,100,215,161,113,164, 66,178, 22, 10,161, 21, 34, 53,200, 81, 10,227, 2,161, 82,152,140, 96, 60, - 66,204,102, 48, 29, 62, 85, 2, 98,136, 58, 30, 92, 65,193, 71,239, 63,206,199,146,233, 6, 63,126,154, 12, 22,194, 36,162,116, - 83,141,184,122, 41, 94, 15, 55,174,210,212, 91,252,120,143,170, 93, 34,203, 9,105,187,161, 35, 32, 92,207,233,246,148,135,253, -154,155,205, 57,183,250,134, 58, 4,114,165, 56,235,123, 10,163,169, 67, 96, 71,106,110, 91,203, 11,105, 70,231, 45,123, 3, 86, - 91, 11,201,253,182, 65,100, 25,155,182, 67,165, 41,174,235,105, 67, 36,190, 45, 92, 75,175, 36, 39, 93,131, 11,130, 30, 75,227, - 44,214,119, 20, 90, 51, 18,138, 92,106,130,117,212,182,227,110,189,230,131,237,130,135,117,197,195,166, 34,177, 29,139,205, 6, -219,119,136,182, 66,186,150,163,213,130,174, 94,115, 94,109,184,249,248,152,227,205, 25,155,243, 21,141,175,121, 92,109,184,181, - 93,241,160,221,242, 97,181,226,182,183, 28,185,150,165,117,108,123, 79,223,121,172,137, 19,226, 32,227,244,163, 19,224, 19,133, -245,112,226, 35,222,213,138,161,190,200,232, 12, 32, 12, 26,181,109, 19, 67,139, 92,120,182, 10, 85, 17, 40,132,133, 30, 1, 22, -198, 38,208,183, 16, 8,236,132,168, 35, 19,193,211, 58,203, 61,239,168, 93,207,210,104, 78,125,160, 22,112,218,247, 52,184,223, -160,168, 59, 23,109, 77,121, 17,115,109,125,244, 20, 71, 16,118, 23,137,105,155,234, 23,153,230,105, 18, 85,230, 98,160,237, 60, - 21,173,254,134, 81,173,206, 17, 18,201, 35,239,201, 18, 77,145,106,238,172, 27,110, 20, 57,143,154,154,207,164, 71,120,197,137, -227, 89, 7,110,135,168, 83,231,159,112, 19,227,239,187, 38,118,221,246, 73, 94,252, 80,241,236, 96, 61,211, 42,142,124,134,238, - 2, 37, 25, 11,201,170,237, 73,122, 27,215,198, 77, 19,199,248, 16,159,167,245, 95,253, 58, 57, 96, 92,198, 40, 65, 99,158, 61, -134, 68, 33,150,213,179, 9, 65,219,198,215,198, 61, 27,193,127,101, 97,103,232,216, 77, 44, 84, 78,122,118,134, 28,225, 6,203, - 4, 73, 47, 34,125,110, 46, 37, 39,206, 81, 15, 63,124,242, 98,112, 43,104,190,121,245, 57, 94,190,112,157,111,191,246, 53, 66, - 6, 15,215,129,255,234,119,255, 35,254,139,255,224, 5,222,250,230,215,121, 72,224,248,163,219,209, 37,144, 20, 17,154, 19, 52, - 40, 59,164,222,133,103,241,181,246,215, 20,244, 98, 20, 41,117,192, 95,255,155,191,224,205,183,190,199,222,254,152, 36, 75,201, -199, 17, 29, 60,158,206, 41,166, 35,242,162,164, 44,198,164, 69,134, 78, 52,245,118,201, 98,177,224,236,108,129, 16,154,245,214, - 97,117, 20,157, 44,219, 62, 2, 54,132,136,161, 6, 66, 80,217,104,119, 19, 16,177,172, 79, 70,139, 2, 50, 25,119,241,137,138, -113,168,121, 98, 8, 90, 83, 26, 67,145,166,236, 76,114,114,105,216, 52,150, 85, 93,211,214,150,109,219,113,126,178,230,241,163, - 71,124,248,240, 17,119,238,158, 83,173, 27, 90, 27, 96,107, 33, 85, 20,251, 25, 47,237, 77,152, 22, 6,187,172,217, 59,220, 35, - 85,154,210, 36, 92,158,229,188,185, 63,229,202,238,136,157, 44,193,139,192,170,141,252,231, 63,187,121,159,159,222,250, 28,215, - 89, 46, 30,238,177,169, 90, 30,159, 46, 33, 75,217,187,176,135, 16, 9,194,121, 52, 10,135,136,202,230,196, 48,206, 11,102,211, - 29,116, 94, 98,130,103,251,197,103,220,201,118, 41, 52, 72,173,217,236,236,113,252,232, 4,217, 86,100, 74,147, 39,154,234,241, -130, 23,111, 92,198,143, 75, 70,215, 15,185, 56,155,243,220,133, 9,255,243,255,250,191,243,216,106,110, 62,188,135,127,239,179, -216, 97,244, 3, 40, 41,209, 48,140, 94,201,146,120,205,118, 33,178,240, 23, 43, 62, 29,101,252,252,236,148,185,140,176,155,182, - 9, 72, 36,219,222,227,189,163, 58, 95, 83,120,135,105, 26, 54,213,130,166,233,121,176, 92,243,117,111,249,142,250,255,185,123, -179, 88, 79,211,252,190,235,243,108,239,246,223,207, 82,167,214,174,234,165,122,186,123,118,207, 52,198,177,227, 69, 38,118, 98, - 71,193,114, 34, 43, 66, 17, 4, 9, 41, 8, 36,110,184,135, 11, 64,202, 69, 16, 8, 16, 8, 4,145,130,130,132, 4,138, 9,177, - 49,182,135,140,199,158,173,103,198, 61, 61,189,119, 85, 87, 87, 87,215,114,234,236,255,253,221,158,133,139,231, 61,117,170,151, -217,130,114, 97,254,210, 95, 71,213,234,243,255,191,231,125,158,247,249,109,223,197,176,221,172,249, 95, 95,125,135,105,162,152, -183, 53,173, 15,156,107, 23,236, 8,120, 6,216,202,114,130,137,243,113,169, 20,189,194,240, 92, 63,163,144, 48,201, 20,152,132, - 69,229, 24, 38, 57,199,171,154, 13, 45, 24, 38, 18,231, 26,188, 8,224, 21, 90, 75, 46,171,192, 93, 27, 58,133,200, 64,168, 98, -135, 41, 88,255,177,118,116,144,158,202,183,220,169, 43,110,156, 44,120,255, 96,197,157,195, 25, 15,103, 51, 78, 86, 11, 14,147, -148,187,189, 28,231, 5,223,159,215, 44,124,212, 42,210, 26, 94, 94, 52,124,103, 85,243,207,239, 30,243,206, 73, 13, 58, 26,207, - 12, 7, 25, 57,130, 84, 43,246,130,194, 39, 9, 7,193, 51,147,154, 67,169,144, 82, 83,122,199, 80, 37, 4, 99,152,151, 53,199, -182,197,118, 92,231, 84, 70,153,217, 44,209,228,157,219,159,151,130,180,200,217,233, 13,120, 34, 31,115, 25, 67, 17, 2, 9,146, -125,239, 58, 49,154, 72, 17, 37,213, 29, 86,168,207,197,115, 19,126,229,210, 57,126,245,137,203, 60,113,174,207, 29,169,105,181, - 1, 17, 25, 7, 4, 79,176, 54, 86,153,222, 71,113,152,212,196,162,103,178, 1, 27, 35,206,237,108,178,218,222,138,103,231, 96, -192, 24,139,239,111,208,184, 10,219,223,224,126, 61,227,158, 73,121,111,190,207, 93,225,184, 85,206,120,208,214,188,189, 94, 16, -108,205, 72, 41,246,109,205,213, 52,227,196, 58, 82, 33,216,199,243,108, 90,240, 70, 83,115, 53,201, 57,112, 22, 33, 4,239,218, -150,190, 73,249, 65, 85, 34,180,228,164,169,104,164,162,242, 45, 75,160, 68,112,220,148, 44,189,167,148,138,149,107,105, 90,203, -220,182,164, 66,162,130,227,214,226,132, 58,180,220, 94,207,184,177,156,242,160,109, 56,110, 43,234,170,225,100,182,162, 89,174, - 88,175, 74,102,211, 5,135,211, 25,139,195, 37, 71,251,199,204,142,166, 52,135, 7,212,251, 83, 22, 71, 83,118,247,167,220,245, -154, 70,171, 24, 36,149,102,213,182,148, 77, 32, 72, 73, 89, 91, 86,222,178,180,254,145, 57,149,232,101,120, 33,105, 90, 79,109, - 36,161,245, 56, 29,133,130, 30,157,155, 42,137,138,108, 74, 64, 17,129,154,103, 50,129,157, 69,169,232, 92,234,188,165, 9,158, - 66,195,134,130, 99,231,232, 35,152,150, 13, 43,111,249,147, 69,133,177,142, 3, 36,139,208,130,144,204,125, 4,138,214,136,159, -144,210,230, 92,156,201,230, 5, 33,216, 24, 60,155, 58,182, 60,151,107, 88, 47, 62, 28,176, 83,211, 9,183,116,182, 61,167, 22, -166, 63,133,255,122, 0,146, 34,103, 90, 55,184, 32, 73,240,124,253,112, 69, 98, 4,109,235,216,175,125, 87, 61,119,124,115,173, - 98,183, 32, 87,176,174, 35, 31,220,159,122,134,119,215,108, 84,231, 59,222,137,195,184, 22, 76,246,200, 65, 45,116, 66,179,141, -173, 9,222,227, 84,128,217,178,163,165,117, 98, 54,237,143, 80,151, 75,101,228,242,107, 29,221,136,124,180,116, 21, 77,211,113, -216, 29,212, 54,154,222,167, 18, 33, 76, 76, 58, 78,173,246,126,152,240, 79,231,143,254,172, 78, 89,227,200,145, 44,136,129, 77, - 7, 40,164,228,158,181, 92,209,154, 61,101,104,179, 33,161, 95,116, 9,129,224,194,198,132,107,151,159,140,200,209,124,192, 43, -187, 31,240,111,252,234,231,249,212,149, 9,227, 66,179,191, 47,120,253,165,239,117,237,247, 78,156,199,119,162, 61,117,123,214, -129,249,104, 64, 47,178,120,255,174, 63, 15,131, 49,108, 92,128,227, 35,192,243,237,175,252, 41,159,251, 75, 63,203,120, 84,224, -136,244,143,114,189, 98,117, 60,195,121, 71,219, 52, 81,224,195, 89,234,186,162, 63, 26,146,164, 9,179,147, 25, 7, 7,187,104, -211, 35, 0, 59,147, 30,163, 92,227, 36,156,148, 13,166,211, 87, 87, 2,124,136, 92,119, 33, 5,153,142, 85,158,150, 26, 41, 85, -244,146, 14, 2,143, 68, 40, 25, 15,203, 68, 70,189,248,202,177,110,106,172,107, 81, 26,166,139,134,245,170,230,251,183,222,224, -157,189,121,228,154, 42, 21,147,209, 76, 49,218,200,184,216, 47,216,232,103,108,247,251,212,190,197,137, 12, 47,213, 35,145,190, - 69, 21,165,108,119, 79, 86,188,124,251, 33,239,221,127,200,205, 7,123,220,216,123,128,117,142, 98, 48,100,114,126,147,219,247, -246, 89,206, 23,148,229, 42,186,212,245, 50,174, 93,187,196,249,139, 27,244,123, 3,180,202,176,173, 37,237, 15, 41,155, 53,182, -110, 16, 90,145, 21, 5,217,221, 91,204, 70, 91,140,100,224,122, 63,227,249,103,159,102,125, 82, 17,234, 57,121, 86,144, 38, 25, -199,211, 22,181,179,201, 94,213,240,236,229, 77,254,163,255,244,191,224,181,111,191,193,244,189,251,132,249, 52, 74, 89,166,130, -176,170, 9, 78, 17,146,132,225,102,143,122,101, 65,248,200,248,176,113, 92,116,249,242, 54,139, 96, 97,235, 9,126, 69, 84, 4, -149, 50,111, 26,172, 11,220, 43, 75,214,117, 77,174, 53,214,181, 80,206,168,235,154,253,197,140,145,146,252,198,120,194, 53,101, -216, 80,134,230,226,121,158,154,108,112,239,248,136, 70, 6,174,226,185, 28, 2, 67,109, 24,248, 22,147,100,184, 16,152,154,132, - 11,189,132,169,139,136,248, 74, 8,122, 50,176,118, 62,170, 34,162,104, 76,142,105, 3, 43, 27,169,167,155,169,225,104,221,146, -230, 41, 3, 41,217,119, 46,210,223,180, 36, 52, 14,178,156, 80,175, 63,196,221,126, 92, 51,221, 75,112,218,199,119, 7,100,242, -117,133,175, 3, 7,203,150, 48, 91,196,115, 57, 81, 44,140,161,173, 28,117, 89, 35,234,238,124,201, 2, 33,207, 88,104,195,168, -208,232,188, 0, 99,168,165,198,106,197, 2,193, 80, 18, 21,191, 58,252,236,222,122,201,126,219,112,100, 75,214, 30, 22,109, 75, - 79, 42,114, 21,249,236,198,131,177,142,108,144,115,113,107,200,214,120,192,168, 87, 48, 50, 25, 67,175,201,165,198, 90,203,145, - 16,177,163, 18, 58,157,116, 35,121,170, 63,224,111, 95,186,194, 95,185,116,149,141,172, 71, 45, 13, 7,161,229, 80,201,248,188, -230, 69, 84,214, 44, 6, 49,208,164, 5,194,228,209, 69,115, 99, 19,206,141, 33,203,248,204,230, 6,207,231,154,139,249,144,237, - 36,231,124,127,204,115, 9,156,235, 15,112, 85,197, 42, 29,178, 91,214,232, 65,159, 89, 83, 82, 74,201,253,122,197, 40, 53,145, - 2, 38,224,185,164,224,157,182,225, 66,154, 49,199,115,197,100,188,222,212, 60,159,245,121,205, 86,140, 84,194, 59, 33,112,222, - 24, 94,105, 74, 46, 36, 57,175,181, 13,107, 9, 55,154,146,131,110,170,182, 86,154,123,214,226,140, 33, 56,139, 82, 6,149, 36, -236,151,107,148,183,188, 52,159,241,126,189,226,219,199, 71,124,251,232,152, 91, 85,195,237,163, 41,179,217,138,102,177, 34, 44, - 86,132,178, 34, 44,231,177, 72,105, 60,193,183,113, 39,172,235, 24, 87, 37, 4,105,163, 86,100, 11,195, 73, 63, 22, 94, 33, 48, -115, 1,235, 60, 7,109, 75, 42, 37,211,224,112,182,165,105, 44, 20, 73, 28, 47,122, 98,140, 8, 34,198, 1,219,129,141,148,124, -100, 28, 38,186, 14,103, 32,196,160,190, 88,158, 41,159, 74, 16,170, 51,175, 9,145,194,188,106, 29,139,210, 97,240,220,154,213, -220, 44, 27,222, 94,214, 76,107,203,205,117,203,173,170,137,250,154, 34,142, 95, 87,193, 82,150,229, 79, 24,212, 79, 3,187,239, -244,209,203,170,227,155,183, 17,185, 94, 86, 31, 49, 0,209,143, 80,223,248, 83,190,120,243,211,153,136, 56, 71,211,180, 88, 89, -112, 56, 95,115,216, 74, 84, 2,211,101,195,244, 84,183,187,141,178,149,168,238,100,149, 34, 2,243,210, 46, 19,242, 46,210,217, - 48,157,154,154,143,227, 0, 97,227, 99,157,100,241,161, 72, 35,208, 44, 40,213,101,176, 93,101,186,174,187,207,233,192, 99,117, -243,163, 19,147,214, 66,154, 68,105,195, 83,254,109,219, 62,194,151,161, 4,233, 86,159,191,247, 11,159,229, 11, 87,118,248,204, -213, 29, 94, 93,183,112,112,244,113,214, 1,143,181,229, 93,180, 35, 60, 20,130, 73,128,105,240, 92, 82, 9, 46, 4, 86,206, 50, - 84, 26, 21, 60,203,126, 31,113,105, 27,159, 22, 52,242,148,150,230, 89, 53, 53,231,243,130,224, 28,251, 71,247,121,111,239, 24, -213, 66, 49,232,243,238,238,154,255,253,155,223,164,124,247, 78, 76,118,172,237,208,254,246, 49, 79,121,251,225, 57,122,218,135, -254, 8,174, 94,227,201,167,159,230,231,158,249, 12, 69,158,146, 37,154,217,178,130,114, 1,192,183,254,248, 79,121,254,103,191, -204,100,220, 39, 16, 40,215,117,228,165, 59,135, 76, 20, 70, 39,164,131,156, 36,205,241,221,131, 34, 59, 94,120, 86,228,156,204, -150,236,159, 44, 57, 92,181, 44, 86, 45,182,182,148,141, 35, 75, 21,206,197,249, 32, 34,138, 58, 32, 4,214, 5,210,196,144, 24, - 29,133, 48,132,140, 10,111, 50,138,110, 4, 31, 56, 94, 53, 28,206,151, 20, 41,236,238,175,184,253,193, 33,135,135, 83,254,219, -191,255, 31,227, 46, 92,227, 92, 95, 50,109,227,104,233,234, 86,193,115,231,199, 20, 90,113,105, 50, 98,107, 48,164,245,142, 69, - 89,177, 94,206,217, 24,111, 16,132,228,120,177,230,131,227, 21,183,246,230,188,125,255,144,233,225, 49, 77,213, 48,155,207, 59, -228,173, 33, 47,250,180,173,224,222,221,219, 4,239, 41,203,117, 20, 94, 42, 75,164,201,184,184, 51, 97, 60,204,121,225, 83,151, -216,220,220, 96,190, 88,211, 44, 43,150,235, 21,149, 83,172,231,199, 40, 37, 88,220,120,141,139, 91,151,201,140,166, 21,160,159, -216,193,222,185,207,108,185,100,144,247,153,156, 59,207,231,175,159,231,229,247,118,249, 63,191,251, 22,239, 52, 21,161,108,160, - 46, 9, 36, 81, 45,205,219,168,206,102, 27,152,244,249,119,159,218,226,217,243, 3, 94,185,127, 4, 78, 71,237,123,173,153,159, - 44,249,210,246,152, 23, 38, 59,252, 7, 63,247, 34,127,248,242, 55, 24, 20, 57,223,152, 30,243,160, 46,185, 55, 59,160,169,150, -188, 59, 59, 1, 15,235,122,201, 27, 15,247,248, 66,166,121,177, 63, 98,152, 20,204,109,203, 74, 90,254,195,127,243,175,178,145, -143,249,254,189,125, 46, 40,203, 57,161,216, 9,209,145,175,157, 47, 56,177,160, 18, 73,139,166,159, 39,212,225,140, 62,234, 91, -199,210,118,192,174, 34,163,241,129, 75,105, 1, 38, 37,209,134,161, 49, 84, 74,113, 80, 86, 76,101,231, 56,153,103,132,113, 63, - 58,251,109,108, 16,122, 61,130, 73, 9, 38,199,215,229,163,201,243,227,239, 83,170,151,247,158,176, 90, 18,230, 75,130,111, 32, -207, 17, 91, 99,138,126,143,214, 68,165,200, 32, 69,215, 1,108, 97,111,142,149,146,157,157, 9, 99,109, 40,117, 26,177,176, 66, -208, 55, 41,147,108,128, 70,144, 40, 73,161, 36,211,118, 69,226, 29, 85, 93,113, 82, 87,180, 90, 49,183,150, 60, 64,129, 66, 87, - 13,253, 34,101,251,194,128,254,184, 71,111, 82, 32, 19, 67,162, 13,133, 52,168,186,198, 21, 9, 53, 41,115,147, 34,104, 17,203, - 5, 56,207,207,108, 20,252,252,214, 54,227,162,143,150,134,239, 47,102,188, 84, 89, 90, 37,161, 40, 96, 56,130,241, 48,186, 88, - 22,177,117,207,176,135, 56, 55, 70,108, 12, 32,201,248,237,115, 19,180, 8,244, 85, 66, 47, 81,124,106,178,205, 88, 64,149,228, -248,182,100,115, 48,162,106, 27, 54,122, 41,179,218, 49, 40, 18,230, 66, 48, 74, 50, 22, 66, 49, 82,154,167,139,130, 91,222,241, -116,214,231, 1,158,109,147,114,211,181,124,161, 24,242,186,109,120,190, 24,114,219, 53,236,104,195, 77, 41,121,218,100,220,241, - 45, 27, 42,225, 43,171,134, 59,109, 64, 43,205,161, 72, 57,242, 45,100,195, 40, 17,157,230,216,166,230,192, 5, 46, 24, 67,233, - 90,116,213,240,157,131, 53,251,123, 83,202,227, 5,213,222, 67,194,172, 36, 44,203,184,215,215, 77,236,216, 56, 8,173, 3, 17, -249,254, 17, 48,221,126, 8,135, 16, 26, 75, 16,146,121,101, 41, 6, 25,139,224,153,173, 43,130,209,140,148, 98, 29, 2, 25,112, -210, 90,130,245,143, 5,244,199,156, 47,101,167,147, 46, 59, 90,176, 52,241, 12, 61, 29, 19, 11,209,197, 6, 23,207,202,166,138, -197,166, 13, 81,115,193,118, 64,229,198, 97,181,100,181,172,104,239, 28,224,119,134,132,170,138, 14,134,117,133, 93, 91,246,102, - 37, 33, 85,236,207, 23,204,235,146,121, 85,253, 20, 65,189, 3,155,196, 25,115, 29, 51,145,229, 52, 86,199, 31, 13,116,237,169, - 63,123,167, 47, 30,236, 79, 85,165,127,168, 13, 47, 34,194, 51, 40,112,243, 21, 78, 71,167, 40,116, 71,191,242, 93, 27,163,233, - 28,218,132,136, 45, 68, 41, 98,219,220, 73,240, 21,164,105,188, 86, 69,156,167,159,250,144,247, 11, 88, 85,177, 45,213,118,237, -230, 32,186, 68,197,199,224, 92,182,177,218,255,104,242,242,137,192,128, 40, 8,129, 84,143,104, 99,143,108, 20,123,138,223,249, -220,115,124,249,179,215,185,118,229, 18,189, 65,159,137, 49,188,121,119, 63,222,207,254, 4,182,182, 97,251,114,119, 96,116, 98, - 57,105, 52,124, 9, 65,177,173, 4,233,233,193, 35, 37, 70, 37, 84, 69,193,232,218,147, 20,151,174, 32,242, 1, 66,122, 18, 37, -177, 68, 81,150,160,160, 45,167, 52,229,138,187, 7,251, 28, 77,103,220,218, 61,226,251,119,142,185,189,123,132, 78, 3, 83,217, -121,200,231,166,115,228,235, 16, 53,217,169, 61,173,120, 36,246,241, 59,127,251,111,240,155,191,249,235,252,214, 95,126,145,207, - 92,127,138, 34, 45,104,203,150,131,114,198,108,185,140, 93,157, 14, 33,255,210, 87,254,140, 39,174, 63,205,165,203,231,208,137, -193, 5,129,107, 91,108,211,210, 84,209,187, 90, 73,133,210, 18, 39, 2,109, 93, 33,141,196,186,104, 35,136,128,217,241, 34, 58, -142,245, 83,238, 60, 56, 97, 94,182,172, 43,199,176,103, 88, 55,142,117, 29,157,151,124,128, 52, 49, 56, 33, 98,192,116, 33,250, -186,187,208,209,118, 2,193, 70, 69,191,187, 15, 23,124,251,123,111,178, 94,174, 81, 65,112,225,153,231,217, 24,110,176, 44, 79, - 48, 6,206, 13, 50,182,122, 57,105,146,160, 4,244,211, 12,165, 52,173,109, 73,181,138, 66, 55,227, 62,155,163,130,224, 3,109, -221,224,156,163, 90,173,177,190,198,214, 45, 38, 55, 12,134,131,232,159, 83,215, 28, 30,239,177,174, 74,172,143,146,201, 50, 64, - 99, 91,214,203, 5,249,160,207,221,123,135,236,223, 59,100,213, 88,202,178,138,244, 32,231,168,133,102,160, 2,101,179, 66, 6, -193, 63,127,243, 13,174, 94,185,198, 50, 81,120, 41, 96, 99, 27,125,120, 72, 80,146,171,159,190,198,238,225, 9,255,253,127,253, -143,216, 31, 13, 8, 65,112,117,123,196,201,209,156, 96,163,189,103,112,154, 32, 45, 1,201, 95,237, 23,252,141,171,151,152, 76, -206,113,151,150,189,131, 69, 92,107,219,194,186,102,119, 81,177,215,204,233,111, 95,226,205,226, 2,127,114,251, 6,203, 15,222, -167,109,214,184,195, 35, 78,238, 60, 96,189,156,243, 96,247, 33,187,199,115, 88,172,121,113,152,112,217,244,104,129, 91,205,146, - 69,211,240,153,139, 23,248,218, 94,197,157, 96,120, 38, 84, 12,133,230,138,201,240, 77,205,180, 92, 49,173, 86, 52,141,101,152, -165, 72, 35, 17, 70,162,188,160, 42, 91,142,234,200,201, 14,137,162,240,129,103,198, 3,182,123, 57, 79,142, 70,108, 21, 3, 84, -218,167,245, 18, 31, 2,203,186,100, 59, 49,156,207,115,174, 12, 70, 12, 55, 71,108,109, 78, 56,119,110,135,213, 32,167,214, 2, - 95, 12, 9,182,194,183,246, 19,131,251,153,147, 88,108, 83,227, 26, 66, 0,159,104,124,104, 34,142, 72, 40,254,206,149, 17,127, -237,137, 77,254,108, 81, 19,170, 53, 15,156, 68, 20, 61, 6, 89, 2, 58,165, 16,138,173, 52,163,113,158,139,105,193, 42, 56,150, -109, 77,102, 18,178,224,105,218,146,204, 40, 78,234, 53, 85, 8,184, 0,125, 2, 61,169, 40, 50, 67,186,221, 39,233,231, 72,173, -162,131,105, 16, 80,182,164,206,147, 56,135,207, 53, 83,217,167,202,250, 48, 62, 15, 82, 48,240, 13,147, 96, 81, 54,240,205,147, - 35,190, 58, 91,112,212,214,144,102,244,139, 1, 73,154,146, 38, 9, 77,154,128, 17,136, 44, 69,228, 25, 36, 25,191, 56, 28,242, - 75,219,155,140,211, 30,107, 33, 80, 4, 54,250, 27,188,190, 92,115, 97,115,147,188, 90, 49,200, 71, 28,172,231, 12,123, 99,180, -107,240, 73, 74, 45, 65,163, 88,184,134,158,148,172, 67, 96, 22, 60, 79,154,140, 93, 1,219, 66,242,126,176, 92, 55, 5, 63,104, -215,124,177,152,240, 70, 91,243,132, 73, 57, 20,146, 39,133,230,221,224,184,164, 12, 95,171, 45, 90,167, 44,146, 52, 42,215, 25, -137,206,114,110, 47, 42,134,195, 49,109, 93, 82,166, 57, 89,154,145,138, 20, 35, 2,137, 12,172, 68,224,120, 81, 19,234, 10,188, - 32, 40, 27,215, 47,184,104,186,162, 32,184, 78, 73,179,237, 4, 58,234,211,130,165,195, 93, 88, 23,139, 25, 35, 8, 73,193,220, -123, 86, 62,158, 79,198,195,202,121,188,245, 76,109,131,111, 61, 94,118,138,114,174,251,189, 54,196,100,207,187, 88,220,213,174, - 43,238,162, 48, 26, 82,119, 44,168, 83, 68, 98, 32, 74, 24,218, 88, 48,182, 1,154, 53, 66,201,200,220, 10,237, 35,239,145,254, -207, 61,207,175,255,194,175, 49,185,180,197,221, 31,188,129,119, 14,239, 26,124, 91,115,184, 42,217, 95, 58, 30,204, 75,118,231, -229, 79, 25,212, 93,231, 7, 94, 55, 17, 13,222,254,136, 96, 29,186,249, 51,246,147,103,208, 63, 77, 31, 94,133, 88,233,135, 78, - 60,166,237, 2,185, 15,103,148,171, 83, 32,151,144,241, 64,106, 59,212,182,179,157, 14,123,135, 80,119, 26,124, 19, 51, 85,219, -145,141,243, 36,182,153,173,139,111,245, 88, 85, 90, 69,126, 42,101,219,181,236,221,143,189, 94,225,186, 44,190,181,145, 67,239, - 99, 71,225,252,185, 17,191,246,165, 79, 51, 30,111, 32,181,102, 60, 28,160,148,231,107, 15, 14,163,144,198,198, 38,191,252,133, - 95,226,153, 43,207,176,177,189,195, 60, 87, 48,153,224, 70,227, 56,235, 46,250, 28,139,140,162,200, 88,110,142,217,186,122, 29, -189,185, 65,178,189,205,197, 11,207,176,179,245, 36,147, 98,136,210,158, 84, 9,164, 10, 24,169, 56,159,165,104, 4,139,186,229, -225,186,164, 57, 46, 17,212, 76, 46,110,243, 59,191,254, 34,127,235,231, 63,197,214,104,204,203,111,220,141,155, 92,117, 18,177, - 38,116,179,158,110, 22, 36, 5,140,174,240,203,191,240, 34,189,188,160,223, 75,105,218,192,114, 94, 81, 54, 53,175,127,112,159, -102,247,118,151, 4,157, 9,202,127,255, 27,223, 35,233,245,185,122,253, 10,195, 65, 15,235, 2, 38,141,148, 12,173, 20,202,168, -168, 42,151, 38, 36, 89, 66,154, 36, 72,109, 88,173,102,148,229,138,197,244,144,245,170,100,186, 40, 73,179, 4,148,160,117,142, - 59,247,142,185,125,231,144, 50,120,234,198,243, 96,186,164, 14,158,163, 69,116, 73,187,249, 96,193,113,217,128, 8,172,234,154, - 89, 85,241,222,238,140,155,119, 30,242,242,159,191,129,111, 45,121, 97,184,117,231, 22,139,234,132,175,255,254,239,243,220, 11, - 79, 51, 74, 13,189,196,144, 38,138,126,154,161,181,194, 57,139, 15,158,225,176,207,100, 99,194,120,115,131,119,111,220, 96,126, -176,224,137, 39, 47,178, 49,206, 17, 82,178,152,174,168,203, 10,169,162,184,133,119,129,249, 98,198,162, 90,226,188, 39, 81,154, -166, 45, 49, 90, 99,148, 65, 25,133,208,154, 64,194,241,241, 58, 2,247,238,221,225,206,238, 7, 28, 29, 31,147, 25,197,131,221, -219, 72, 13,133,201, 17, 82,144,184,138,111,191,250, 58,227,107, 79, 51,159,215, 28, 79,215, 12, 81,188,240,229,231,120,240,193, - 3,254,203,127,240, 15, 9,195,148, 48, 24,240,244,248, 28,191,120,225, 28,149,104, 56,120,176, 23,207, 18,121, 10, 30,243,188, -187,172,216,222, 26,240,170,215, 84,131, 77,238, 29, 79, 35,144, 7, 27,159,183,186,198, 46,106,190,253,224, 30,187,227,109, 66, - 2,236,237,194,195, 67,196,193, 20,148, 68, 78,143,162,234,240,122,137, 90,172,121,114,144,226,104,120,216,214, 60, 16,130,243, -166, 64, 60, 56,160, 76,115,110,212,150,220,193,139, 89,206,121,147, 48, 65, 82, 84, 75, 74, 23, 56,241, 22,231, 37, 18,133, 22, - 18, 71, 96,191,116, 76, 27,139,112,142, 92, 4,174,244, 82,174,231, 42, 42,197, 77,250,244,179, 20,157,103, 52, 33, 97,238,115, - 18,225,144, 50,112,165, 95, 80,164, 25, 74,103,236, 12, 7,132,160,184,212, 27,161,243,148,117, 97,104,130, 38,120, 73, 80, 1, -223,218, 15,181,230, 63,106,125, 26, 90, 11,179, 57,254,112, 30,193,191, 43,203,223,188, 52,226,239, 60,117,133, 79, 77, 54,184, -220, 19,124,237,193, 49, 65, 40,218,113, 76,242, 76, 98,216,214,138, 84, 37,108, 36, 25, 51,215,208,215, 41,235, 16, 53,192, 69, -176, 40, 33, 72,157,195, 72,197, 10, 88, 52, 53,206,181, 76, 80,244, 70, 41,201,184,128,160, 16, 50, 82, 8,221,178, 69, 84, 45, - 38,120,250, 66,145, 74, 56,108, 61, 85, 62, 68,141, 54,217, 26,110, 51, 73, 39,124, 80, 46,120,105,127,159,239,150, 21,123,101, -133, 73,114, 70, 4,206, 43,195, 68, 74, 90,223,178, 45, 37, 94, 26,172, 78, 65, 8,118,122, 3,254,253,171, 87,248,197,237, 29, -206,101, 57, 15,154,134,117, 62, 68, 9,193, 23,183,182,120,176,174,216, 25,142, 56,168,106,174, 15, 71,172,155, 53, 62,201, 88, - 59,139, 5, 26, 44,153,146, 44, 90,203,200, 24,148,139,238,107,153,179,204,149,230,162, 54,188,211, 86,124, 62, 27,240,157,122, -197,245, 36,229,182,141,149,249, 45, 44, 79,201,148,119,189,101,152,102,188,237, 96,101, 50, 46, 25,143,201,115,156, 15, 92,204, - 19,172,131,116, 48, 64, 91, 71, 26, 2,187,182,166,144,134,165, 15,188,125, 60,231, 92,207, 48, 21, 50, 26,255,216,216,109, 12, -105, 10,182,237,176, 21,177, 94,139,129,221, 34,130,239, 84, 52,187,192,124, 26,220, 91, 75, 8,109,231,194,150, 98,157, 71,106, - 88,181, 45,214,123,188,148, 88,231, 8,136, 51,183,207, 68, 19, 84,199,241,149, 42,250,180,166,230,209,104, 87,136, 83,254,175, - 56,227, 1, 55, 54, 22,147, 77, 21,199,181,162, 99, 69,181,109,108,213,251, 14,184,218, 90,154, 59,187,188, 83,205,185,251,250, - 77,194,122,253,161,189,234, 91, 27, 29,235,234, 10, 87,173,127,218, 74,253,167,120,121,255, 73,236,138,127,177,207,105, 79,181, -210,125,148, 88,149, 62, 86,224,170, 67, 20,186, 16, 3,206, 41, 24,175,125,140,142, 69,135, 90,119,246, 76,196, 89, 6,176, 50, - 90,234, 40,115, 6, 6, 75, 77, 92,144, 14, 48, 39,137, 45,219, 71,215,240, 73, 28,117, 62,130,248, 79, 82, 68,136,170,123,104, -137,208, 34, 82,236,180, 36, 29, 13,184, 48,218,226,250,213, 29,154,214,209, 88,199,235,239,238,243,131, 91,183, 65,107,190,244, -244,179, 92,217,188,202,160, 72, 24,229, 35,206, 15,183, 57, 63,222, 98,107,180,201,212,173,105,165,128, 84,225,243, 62, 95,120, -234,103,184,124,233, 83, 12, 70,219, 76,134, 19,118,118, 46, 99,250, 57, 70,235, 40, 52,225,106,188,111, 59,224,152,102,208,203, -169, 90,207,193,170,194,175, 23,144, 14,248,173, 95,252, 57,126,249,179,151,216,238,103, 44,170,154,175,254,249,219,221, 24,163, - 75,152,156, 7,225, 62, 60,236, 15,129,231,158,190, 70,154,231,184, 32, 56, 62, 94, 48,157,157,240,242,187,239,242,240,213,215, - 59,179,154, 56,210,160, 55,140,182,180, 73,143,155,175,190,198,205,163, 41, 79, 94,185,194,246,206,152, 52,141, 21,181, 78, 77, - 4,136, 72,133,210,209, 96,231,248,225, 62,243,163, 99,210,126,129, 64,160,140, 34,235,229,113,148,176, 90,178,119,255, 30, 94, -106,170,178,194,121,199,201,193,148,123,119,247,152, 30, 45,168, 90,207,189,221, 67,110,221,188,207,108, 58, 99,212, 79, 25,102, -134,183,223,185,195,155,175,191, 79,185, 42,217,189,247, 16, 66,137, 39,208, 54, 21,155, 91, 27,100,169,230,179, 95,124, 1, 33, - 4,214,183,164, 90,147,152,132,212, 36, 88,231,200,146,132,201,104,192,100,123,139,197,108,198,239,189,244,231,188,250,123, 95, -225, 7, 39, 71,108,167,125, 62,253,169,171, 76, 6, 57,135, 39, 37,101, 85, 19,112, 88, 91, 81,173, 75,130,112, 88,219, 18, 66, -160,106,107,218,198, 33,181, 36, 77, 83,146, 52, 37,207, 11,180,201,249, 31,254,243,191,207, 42, 83, 60,117,241, 9,132,128, 59, -251,123, 20, 90,115,251,120, 22, 27, 37, 70,144, 37, 5,105,146,146,135,192,242,214, 77,222,247, 9,243,147, 19,152,157,176,213, -235,241,250, 31,253, 1,183,111,223,137,235,176,189,197, 47, 93,188,202,100, 52,162,110, 4,239, 29, 29, 65,181,254, 16, 26, 28, -103,249,238,221, 19, 30, 76, 6,140, 19,197,238,180, 11,234, 70, 69, 77,233,102, 21,159,175,117,137,112, 51, 56,119, 25, 33, 3, -226,120, 14,179, 35, 68, 98,162,116,169,144,200,202,161,122, 57,247,102,107, 66,112,172,141, 98, 96, 82,174,165, 61,206,103,125, -174,175,150, 60,151, 40,254, 68,229,252,229, 80,179,163, 37,217,186,164,239, 32,149,129, 99, 33, 57,106, 61,203,101,197,209,178, -101,247,168, 97,225, 37, 77, 93, 99, 36, 76,180,228,185, 73,194,118,145, 48,233,165,104,169,200,178, 4,175, 12,199, 46,224, 85, -198,170,105,217, 73, 2, 7,141,165, 17, 9,219,253, 2, 23, 20,105,170, 73,242, 30, 82,229, 36,198, 96, 83,205,218, 72, 66,211, - 65,115,196,153, 35, 91,248, 33,193, 29, 31,131,123,200, 11,206,111,244,120,114, 48,160,111, 18, 94,218, 63,226,229,105, 11,174, -161,116,129,173,201,132, 45, 90,198,105,143, 43, 89,129, 11,176,242,142, 6,207, 68, 25,102,109,133, 21, 34,138,137, 0,199,245, - 18, 97, 29, 7,203, 21, 53,129,208, 54, 12, 91, 73, 49,200, 65, 10, 92,101,169, 22, 22, 97, 29,218,122, 84,136,179,247,148,128, -203, 53,165, 73,201,123, 9, 23, 6, 5, 27, 89,198,181,241,152, 75, 58,229, 25, 9, 6,199, 6,146,157, 44,193,132,134,129,146, -164, 85, 67, 38, 37,137,138, 74,124,107,161,121, 82, 75,254,202,214, 38,147,201,132,188,223, 99,225, 37, 43,161,216,234, 13,184, -217, 74,158,204, 13,135,222, 51, 50,146,135,192,192, 7, 14, 2, 72,111,169,131,194,224, 56,113,129,158,130,135,214,114, 73, 42, -156,244, 56,165, 24, 11,193, 45, 91,113, 61,201,121,185,173,249, 76,154,241,102, 83,115, 53,201,184,237, 45, 87,149,226, 29,107, -177, 42, 97,215, 9,118,209,236,136,192,118,191,135,118, 81,193,209, 41,205, 74,196,209, 93,240,240,190, 83, 60,155, 36,212,194, -179,169, 52,123,205,154,210,186, 40,190,213, 70,231, 52, 76,151,144, 17,147, 34,244, 41,144,218,253, 72,208,111,232, 66, 71,176, -167,192, 74, 69,211, 52, 56, 43,176,194,163, 36, 88, 58, 16,156, 20, 12,211,132, 70, 10, 6,137,129,196,224,106,219,137,121,117, -133,208,227, 1,221,118,223,127,170, 54,106, 58,155,111,219, 60,242,149,127,132, 63,235, 18,141, 71,201,198,193, 17,172, 63,252, -252,250,199,233,138,222,227,189,255,151, 24,212,255,101, 37, 10,208,129, 15,136, 70, 42,190,243, 66,183, 93,171,188,113, 17,224, -100,187, 96,244, 72,100,229, 84,212,197,199,223,179, 33, 46,114,211,130, 54,177, 90,135,216,162,207, 12, 10,129, 95,119,116, 57, -239, 98,144,230, 19,140, 88, 30,151,211, 85, 41,164, 10,145,165, 93,101, 27,187, 6, 66, 68, 43,203,114, 94,147,100, 61,122,253, - 62,203,202,113,111,127,197,183,222,188,193, 73,217,242,212,120, 27, 39, 44, 23, 55, 47, 61, 98,200, 25, 97, 24, 15, 55, 25,101, - 99, 92,104, 89, 87,115, 18, 45,249,244,149, 43, 60,247,220,103,185,250,244, 5, 46, 92,220, 1, 82,164,146,228,121,156,179,183, -245, 26,215, 68, 87, 45, 37, 2,163, 94,129,247,176, 40, 43,142,167, 43, 56, 62,128, 36,197,228, 9,231, 46, 92, 32,184,134, 63, -250,179, 55,185,121,231, 78,119,223,186,150,145,107, 63,158,149,249,134, 87,239, 31,242,173, 27,183,249,214, 27, 55,248,230, 59, -183,120,253,253,251, 28, 61, 60,224,111,254,230,207,242,175,255,173,223,224,185,207, 63,207,203,223,191, 1, 62,233,124,234, 13, - 56,199,124,255,128,111,253,193, 87,113, 50,176,181,115,129,243, 59, 99, 76,146,224,173,167,109, 90,218,117, 77, 83,215,209,110, - 80, 43, 66,112,172,150, 11,130,117,184,182, 97, 62,157,226,108,131, 76, 20, 77, 85,178, 90,158, 48,159,159,176, 88,156,208, 31, - 12,192, 4,214,235,146,123,119,222, 35, 79, 11,206, 95,218, 34,205, 13,111,188,123,151,178,110,184,246,204, 37,108,240,172,171, -138,197,106, 78,101, 43,130,176, 44,203, 37,141,179, 52,117, 69,235,124,244,118,150, 18, 33, 4,121,146,209,239,231,108,109, 71, - 3,163, 55,110,220,224, 15,255,155,239,176, 62,120, 43,222,143,147, 25, 63,216,219,227,206,222, 30,215,174, 61, 65,154, 25, 80, - 10, 87,133,152, 16, 18, 8, 33,154, 25, 37,137,193,249, 22, 79, 32, 87,134,254,104, 68,150,230,236,236,236,208, 75, 21, 63,243, -175,188,200,231,158,122,134,157,157, 45,116,146,163,154,166, 91, 67,143, 82, 10,111, 3, 66, 9,180, 74, 56, 55, 57,199,214,198, -132,203, 82,115,174,153,243,185,237, 45, 66,219, 66, 47,227, 7,245,154,240,240, 8, 76,194,221,188, 32,144,242,181,218,130,110, -225,193, 49,225,180,203,214,218,174,117,216, 80,175, 42,246,122,134, 80, 90, 88, 77,227,115, 83,251,216, 37,203,123, 80, 86,136, -178,134,190, 66, 12,207, 65,181, 64,212,209, 79, 65, 74,133,208, 6,217, 58,148,116,136,166,197,214,142,107, 90,114,181,223, 99, - 39,205, 25,233,148,145,206,185,188, 94,241,215,151,199,252, 39,235,138, 47, 52, 11, 70,206, 33,165, 34, 73,251, 28,201, 56,190, -154, 53, 13,213,226, 4,218,134,178,182,228, 89, 74, 42,225,252, 36,229,217, 97, 78,145, 36,160,100,172,140, 58,190,117,107, 20, -171,218,163, 80,204,219, 64, 46, 4,195, 52,195, 98, 64, 40,140,202, 16, 68, 1,163, 86, 42, 42, 28,115, 33, 9, 90,197,106, 73, -234,232,223,254, 35,186,113,225, 49,110,202,237, 34,163,202, 4,119,154,134,127, 60, 93, 99,219,238,240, 93, 55, 28, 41,193,179, -147, 17, 27, 74,163,129,149,181,108,165, 5,214, 7,214,193,161,165, 66, 11,205,210,183,100,202,144,134,192, 73,185, 68,249, 22, -223, 86,148,193,211, 11, 18, 83, 69,189,137,122,218, 80,213, 45,198,122,180,146, 36,202, 32, 90,135,106, 29, 74, 5, 22, 90,211, - 47, 82,122, 74, 48,208,146,139,253,132,177, 74, 9,214,177,157,100,104,225,193,214, 76,122, 19,114, 37, 17, 89, 74,223,104,132, -151,108,102, 3,130, 82,140,148,226,114, 63, 39,213,145,138,252, 45, 27,184,172, 19,238, 5,120, 58, 81,220,108, 3,151, 18,195, -210,123,122, 77,131,211, 10,211,214, 28, 6,131,161, 97,209, 74,250,162,101,209, 90, 54,149,228, 36, 56, 76,128, 77, 41,121, 24, - 2,215, 84,194,187, 33,240, 41,173,121,197,181, 60,111, 50,110, 56,203, 19, 58,229,166,247,140,211,130,251,174,225,102, 48,188, -208,211, 36, 58, 71, 10,203,162, 12, 20,169,161,213,134,147,101, 75,146, 72,150, 65,115, 61,145,236,121,199,180, 93,147, 4,216, - 78, 18,246,171, 53,101,128,182,170, 8,210, 61,162, 5, 7,225,227,200,164,163,239,253, 72, 22,207,135, 0,202, 93, 85,223,205, -183, 49, 50, 2,168,219,216, 78,151, 74,211, 79, 18,192,179,105, 52, 13,146,129, 84, 8,163,162, 56,152,235,132,198, 78, 65, 85, - 46,116,214,222, 34,198, 31, 73,236, 42,107, 5,165,251, 16,131, 76,252,136,198,117,248, 33, 58,255,167,239,191, 88, 65,253,113, - 78,184,150,145,122,147,152, 51, 21, 52, 31,226,251,212, 63, 61,116,173,144, 83,218,155,140,170,177, 52,117,156, 29,219, 54,242, - 90,179, 52,182, 57,172,143,193,189,113, 4, 37,232,208, 85,103,105,155,236, 16,253,159,228,175,110,116,164,149, 36,105, 68, 49, -158, 42,238, 5, 16, 34,116,238,108,142, 7,193, 50, 16,125, 30, 30, 44,216,221,223,231,246,225, 30, 95,188,242, 2,227,193, 6, -155,197, 38,139,106,129,109, 26,202,186, 68,139,132, 44, 43,176, 77, 77,107,107,198,185,102,104, 18, 46, 76,182,184,254,236, 85, - 54,198, 3,164, 12,180, 45, 84,117, 77,189,110, 88, 87, 75,108,168, 70, 44,229, 0, 0, 32, 0, 73, 68, 65, 84,211,224,124, 29, -141,226, 84,244, 97, 89,217,154,233,170,101,117, 52,139,135,246,106,201,131,217, 9, 95,123,247, 3,222,190,117,204, 55, 95,127, - 7,246,119,187,204,209, 70,240,134,111,207,118,202,227,187,108, 57,135,197, 18,151, 12,248,242,245, 39,249,194,181,107, 60,115, -241, 60,207,191,112,157, 81,209, 71,169,148,175,127,247,205,174,131,210,117, 83,100,167,244,167,224,253,183,239,243,205,255,231, -107,156,148, 21,195, 98,192,230,206,136,209,100, 64,146, 39,164,121, 78,214,239,145,247, 50, 6,163, 33,195,141, 17, 74,106,156, -183,136, 16, 98,117, 93, 53,180,174,197,152,132, 36, 51, 12, 55, 38,164, 69, 65, 83, 47, 41,215, 75,180,145, 12, 55, 71,120,233, -152, 46,102,180,117, 69,214,207, 56, 56,154,114,251,238, 17, 34, 52, 8, 44, 74,197,245, 52,105, 66,158, 39,244,123, 61,146, 68, - 97,140, 33,207, 18, 54,198, 99, 6,227, 1,105,150,241,230, 59,239,240,251,255,244,101,238,189,241, 10,164,211, 15,175,253,124, -193,131, 27,239,241,135,239,222, 34, 43,107, 46, 93,185, 72,175, 95,160,141,129, 16, 80, 42, 33, 49, 41,173,111,144,104,134,195, - 49, 59,151,174,112,241,226, 69,206,109,109,112,113,103,192,114, 85,147, 26,205,249,205, 30,147, 81,159, 81,207, 80, 53, 48, 95, -205, 40, 76,202,185,201, 22, 91,147, 29,156,141, 7,202,100,115,147,235,215,159,194, 58,203,104, 49, 37,221, 28,211, 38, 41, 15, -130,228,253,208,226,238, 61,132,121, 69, 35, 90,238, 38, 41, 33, 73,226, 66,150, 43,152,205, 62, 30,168,108, 32, 16,221,208,132, - 3,234, 16, 1,115, 73, 47, 82,112,124,196,169,136, 85, 5, 59,231, 35, 23,122,122,130,104, 90, 68, 93, 33,147, 20,233,107,100, - 43,209, 73, 74,235,107, 22,222,242,249, 34,101, 59, 45,216,208, 25,133, 50,100,214,163, 29,252,122,179, 96,190, 94, 96,189,199, -244, 71,180, 38,101, 97, 18,202, 0,181, 20,228,109, 69,175,173, 8,120, 26,153, 96,242,148, 79,111,246, 40,164,196,104,141, 86, - 18,167, 4,109, 0,169, 4,135,141,231,225,172, 98,229, 3,206, 59,180,107,112,193,163, 4,104,165,168,136,174, 87,190, 3,231, -173,189,165,150,130, 6, 31,253,219,125,244,143,136, 29,192,240, 67,169,166,167, 2, 76,161, 12,220,202, 50,222,113,129, 42,209, -145,239, 93,198, 10, 44,132, 64, 37, 96,167,151,115, 78,105,140, 78,153,186, 6, 45,162, 22,115,233, 45, 54, 56, 10,169,152,219, - 6,139,164,118, 22,237, 26,158, 85,154, 52, 4, 86,222, 49,146, 10,150, 77, 44,238, 26,139,145,138, 20,137,116, 93,178, 88, 53, -120,223, 18,250,154,202,193, 48,209, 60,181,153, 98,172, 39, 33,112,161, 63, 96,189, 42,217, 30, 12,152,203,132, 32, 36, 42,201, - 25,103, 5,235,160, 25,231,125, 86,222,177,221,159,112,185,159,113,212,120, 68,154,243,245, 69,201, 19, 70,115, 79,105,174,104, -201,237, 10,158, 72, 5, 15,188,167,215,212,180, 74,144, 32,152,121, 24, 11,207, 34, 56,156,171, 88,121, 79, 79,192,212, 89, 70, - 34,208, 4,112, 66,241,164, 50,188,227,107, 46, 33,121, 75,192,139, 73,206, 93,147,112, 81, 27,222, 15,158, 45,224,166,183,220, -106, 2, 99,165, 17, 34,197,168, 22,169, 12, 46, 40,242, 68,115, 48, 91,115,105,212,227,214,178,225,124, 10,123,117, 60,114,135, - 66,179,198,211, 84, 75,250, 58, 2,217,166,173,135,218,117,113,188, 27, 39,186,174, 98,167,253,208, 56, 88,252,200,192,222, 81, -183, 37,177,170, 86, 93, 7, 51,209, 32, 4,218, 40,180, 8, 8,161,169, 3,228, 38, 42,190, 89,239,185,152, 37,216, 16, 72,164, -166, 57,125,202,132,239,204,204, 58, 1,142,214,198,207, 13, 81, 34, 59,130,202,221, 79,116,109, 31,235, 34,125,200,137,228, 47, - 98, 80, 63,173,216, 53,177,202, 62, 69, 25, 6, 1,153, 62,203,138, 66,151, 37, 9,206,130, 54, 33,234,214,159, 86, 41, 74,198, -118,189,236,104, 76,167,115,118,219, 5,241,211,155,172, 58,142,187, 13,159, 44,190, 34, 85,220,101, 74, 67, 34, 17,182,107,142, -216, 40,136, 33,124,183, 20,147,130,205, 68, 17,218,138,182, 89, 51,204,198, 12,178, 13,198,189, 13, 82,147,179, 63, 59,226, 79, -223,121,133, 7,211,123,164,166, 3,240,219, 21,219,147, 30, 87,182,119,184,176,125, 30, 33, 2, 89,175,143,144,146,229,186, 97, -255,254, 17,171,249, 17, 77,211, 80,214, 75, 42, 91, 67, 80,100, 73, 15, 17, 2,141,107, 89,149,150,195,101, 69,187,255,160, 75, - 74, 4,172,150,132,189,125, 14,110,223,128,249, 97,108, 1, 53,117,100, 12,156,142,196, 69,231, 25,239, 31, 31, 9, 5, 24,158, -227, 75,159,251, 28,159,123,234, 51,108, 76, 70, 12, 71, 3,114,147, 80,149,150,147,147, 57,127,254,199,223,141,247,227, 20, 40, -226, 60,143,124, 44, 67, 60, 56, 31,188,123,135,239,125,227, 21,190,250,251, 95,161,244, 45,118, 81,146,100, 25,218,104, 76,146, -208,235,167,100,121, 70, 49, 72,201,250, 61,138,241, 16, 41,226,140,209,152,200,107, 46,215,107,132,247,180,109,137, 50,134,209, -214, 38,147,173, 9, 38,139,114,146,171,229,154,182, 46, 89,204,230,252, 79, 95,251, 42,111, 63,188,195,107,239,191,207,139, 47, - 60,207,104, 60, 32, 43,114,242, 34,167, 63, 28, 48,220,218,160, 55, 26, 50, 26, 14,201, 7, 3, 30, 62,120,200, 31,252,224, 13, -190,245,199,175,113,247,198, 13, 16, 77,236,100,124,146,254, 63,192,193, 49, 55, 30, 30,241,167,175,252,128,151,222,191,197, 83, -227, 17, 27, 23,207,113,241,218, 14,147,157, 13,174, 61,125,149,171, 79, 62,193,151,191,240, 44,151, 47,109,199,138,190,245, 28, - 28, 46, 81, 70,112,245,226,152, 11,219, 35,138,110, 22,183,118, 2, 91,195,120,188,193,245,207, 62,199,198,249, 77,124, 11,227, -141, 45,130, 80,124,243,187,127,198,255,245,181, 63,229,202,192, 80, 37, 61,110, 91,199,251,117,195,131,147, 99, 56, 41, 35,178, -118,177,142, 98,210, 42, 33,168, 4, 50, 96,247,232,227,123,216,119,192,161, 68,209,223,238,211, 76,151, 49, 57,221,158, 64, 47, -141,221,155,147, 21,162,138, 54,172,226,210, 21, 68,166, 16,203, 88,177, 11,219,198,194, 38, 81, 40, 91,161,147, 60, 66,112,234, -146,103, 82,195,185,172, 79,142, 32, 73, 82,180, 80,104,161, 72,109,203, 94,112,212, 89,206, 74, 42,132, 80,220, 77, 52, 67, 23, -216,193,177,227, 42,138,245,138,123,190,161,213, 3, 14,215,150, 39, 38, 57,163,212, 32,133, 32, 81, 10, 39, 4,247, 74,203,254, -210, 50,135,200,176,168, 75, 42, 91,209, 75, 4, 58,207, 8, 40,180, 50, 88,235,168,157,163, 9,158,181,247,248, 16,240,161,229, -178, 4,167, 12, 91,169, 97,126,122,216, 58,247, 49, 91,211,179,152,238, 99, 23,235,104, 69, 91, 36,209, 69,177, 13, 4,215, 85, - 96,222, 49, 79, 36,207, 22, 41,149,212, 36,161, 69,201, 8,228, 83, 34, 96, 2,148,221, 17,229,130,224,196,214, 76,189,229, 98, -154,115, 94, 37, 12,148, 38, 13,142,224,160, 39, 37,210,123, 86,214, 82,152, 4, 35, 64,218, 0,101,139,181, 21,181,183, 52, 82, - 97, 10, 77,150,105, 18, 96,160, 84,244, 95,106, 28,231, 70, 3,150,141, 71, 42, 67,158,101, 88,239,104,164,166,151,167, 88, 7, - 73, 62,164,144,154, 36, 27,112, 97,208,227, 36, 8,206, 21, 9,135, 30, 46, 42,120,109,110,121,118,100,248,160,134,205,208,224, -211, 20,215, 97,154, 6, 1, 30, 54, 37, 85, 8, 88,160, 23, 2, 11, 60, 61,107, 89, 3, 19, 20, 66, 4,142,133,231,146, 52,220, -146,130,103,149, 38,223,220,224,103,175, 92, 36,152, 20,225, 60, 47, 55, 53, 54,104, 22, 68,109, 9, 25, 4,189, 84,177,108, 53, - 89, 18, 88,148,158,113, 79,115,111,222,240,244, 64,115,119,225,216, 52,150,131, 42, 32, 69,139,243, 1,109, 12,218, 59, 14,215, - 37,165,117,113, 2,107,195, 35,230, 85, 76,216, 92, 60,159,127,196, 8,245, 99,129,212,116, 69,161, 74, 8, 65,117,198, 86,177, -104, 75,141,138,251, 16,129, 59, 5,187, 91,216,233, 71,225,172,177,209, 72, 31, 53,250,131, 20, 81,243,228, 84, 81,203,117,212, -234,166,142,231,106, 85,198,239,249,132, 78,176,248, 73,175,245, 49,238,212, 95,204, 87,219,137,200,152,238,103,167,151, 30, 45, -206,220,199, 43,251,212, 68,138, 26,254,140, 27,104,187, 22,100,234, 33,164,103,201, 66, 47,129,117,211, 45,126,135,254,246, 54, - 34,209,101,120,172,221, 46, 59, 49,154,142,163,104,146,168, 0, 87,241, 88,235,223, 67, 11, 65, 91,196,218,195,170, 33,139, 34, -244,244,211, 30,203,218, 71,197,174, 36, 97, 54,155,115,178,154,226,214, 37,203,101,205, 75,205, 91, 20,201,123,188,112,110,139, - 39, 46,126,145,241, 96,128, 80,154,221,221,154,219, 55,223, 66,233, 12,223, 10, 2,142,218,181, 84,109, 69,109, 27, 18,157, 50, -200,198,228, 38, 99,152,111,128,183,124,160,119,185,113,123, 55,106,206, 7,255,216,142,240,103, 6, 52,167, 6, 46,167,255,221, -119, 40, 81,249, 17,125,120, 37,217,122,230, 50,207, 61,113,157,162,151,162,141,232, 4, 9, 28, 89,174, 89, 61, 88,193, 56,242, -245,169,237, 25,135,191, 37, 2, 21, 79,191, 47, 77,163,164,112,145,241,205,127,242,149, 15, 45,217,214,207,127,153, 47, 95,186, -200,206,165, 11,108, 94,218,161,215, 75,163,145,195,206, 24, 24, 83,151, 13,109, 99,217, 60,191,137, 78, 53,193, 6,180, 86, 24, -163,113, 56,218, 54, 32, 26, 24,140, 11,240, 5,179,121, 11, 14,146,196,208,224,216,186,184, 77,145, 75,108,235,104, 92,180, 80, -172,214, 53, 15,239,220,229,229, 59,247, 25,228,155,188,250,202, 59,176, 60,129, 81, 15, 84, 63, 38, 61,131, 1, 84,139, 31,190, - 47,143, 14,224, 8,170, 15,238,241,143,254,252, 53,184,124, 9,113,239, 62,124,246, 57,254,237, 95,252,121,242,254,152,147,217, -144,117,217, 32,189,192,100,154,141, 73,193,197,113,143,205,126, 30,111,181, 10,100, 89,194,120, 99,128,200,158,138, 57,102,112, -188,247,250,219,220,188,123,139,239,220, 63,198,189,113,227, 81,166,254, 63, 31,205,225,115, 21,253,237, 77,150,149,139,251,124, - 18, 45, 90, 89,151,240,246,109,120, 14, 24,111,198, 53,185,176, 5, 15, 30,126,188, 5, 41, 91,168, 44, 75, 27, 80,231,183,113, -211,101, 68, 72,123, 31,147,103, 5,193, 27,196,209, 9,197,106,202,246, 96,192,223,253, 75,159,227, 63,251,230,171,132,195, 99, - 66,154,198, 25,117,154,226,109,131,175,107,222, 12, 3,158,184,251,128, 43, 89,143,190, 15,120, 17, 53, 4,164, 25, 82,104,195, -197,197, 62,223,174,215,164,185,102, 46, 20,231,164,166, 48, 30,237, 13,198,123, 60, 45, 27,135,119,121,133, 30,215,253, 14,193, - 7,166,139,146, 36, 75, 9, 9, 28, 90,199,173, 38,112, 79, 8,166, 70,179, 30, 22,132,249, 17,185, 84,152, 40,102, 64,227, 37, - 38, 13,132, 32, 49, 65,179,196,113, 65, 11, 46, 6,197, 40,233,113,210,180, 60,145,215, 44, 74,197,177,179,172, 67,244, 68, 8, -118,246,232,240,252, 88, 85,100, 45,193, 46, 16,183, 90, 56,191,217,177,124,116, 44, 42,172,195,150,150,223,187,191,207,111,157, -111,217, 28,109, 49, 17,130,147, 54,130,214,234,206,123,161, 1,234, 16, 56,180, 45,151,101,108,221,150, 50, 97, 32, 37, 35,149, -160,133, 96,214,182,232, 16, 24,231, 5, 39, 39,199,168,209, 8,103, 59, 54,135,130, 22, 73,161,163,131,161,243,158,214, 41,234, - 16,216,206, 82,150, 30, 92,221, 48, 25, 20, 20, 54,227,110,213, 48, 23, 1,211, 56, 74,171, 49,198, 80,118, 93,233,220, 68,225, -156, 76, 75,222, 95, 58,174,247, 13,239, 86,158, 79, 15, 52,239, 54,130,103,211,192, 7, 54,101, 80, 47, 8, 70,227,202, 37, 78, - 39, 20, 74, 49, 7, 66,221,114,220,180,108, 72,207,158,135, 75, 34,112,151,154,167,125, 70, 89,150,188,102, 44, 82,106,222, 49, - 9,127,189, 55, 96,175,178,232, 36, 97, 79, 73, 74, 11,135,180,188,238, 20, 47, 72, 79,161, 60, 8,195, 80,181,204, 42, 77,145, - 6,110,207, 27,158, 26, 24, 94,155,183,252,204,200,240,234,220,243,124, 22,120,173, 42,184,172, 22,212, 94,162, 4, 60, 53,200, -185,177,104, 33, 84,157, 86,129,136,133, 73,211,169,141,214,205,143,197,101,127,232, 85, 55,145,223,111,125,180,172,182, 10, 82, - 79, 63, 79, 41,157,199, 8, 73, 21, 44,163,212, 80,119,137,151,109, 3,131, 84, 81, 57,135, 38,160,235,192, 80, 72,142, 17,157, -125,136, 63,147,232,126, 4,198, 78,160,250,209, 99, 31,241,227,174,245, 47,124, 80,167,163,202, 85, 26,122,157,145,129,239, 76, - 83, 76,215,102,207,116,231,212,214, 41,250,168, 54,222,208,143, 46,108,221,196, 0, 45, 0,147,241,185, 47,127,150, 87, 31,238, -194,205,135, 93,251,221, 71, 58,130,247,144, 41,240, 89,180, 27,236,247,224,104, 5,182, 59,228,155, 42, 6,255,196,196,162,182, -249, 48, 27, 48, 72, 16,101,205,178, 90, 51,206,199, 72,157,147,138,136,164,124,112,248,128,101,185,226,198,253, 93, 88,175,226, -130, 85,115,214,153,102, 53, 54,120, 91, 1,125,172,107,113,206, 81, 55, 45,213,122, 65,221,214, 56, 31, 40,215,109,172,208, 85, -198,165,173, 1,193, 11, 60,138, 65, 49,192, 57,207,249,144,194,242, 43, 49,249,208, 81, 69, 12,253,120,251,149, 78,146,246, 49, -141,247, 46,167,161,149, 17, 80,120,122,240, 95,186,198,139, 87,158,227,220,165, 49, 74, 72,166, 39, 43,154,229, 17, 23,175,108, -210, 88,199,249, 11,219,252, 91,127,247,183,185,191,191,199, 87,126,247, 27,113,151,213, 31,161, 3, 42, 25,233, 26, 69, 63,126, -143,214, 31, 10, 50,135,223,248, 30,255,247, 71,150,251,249, 95,255, 5,206, 15,134, 92,190,112, 1,157,166,209, 44,102,144, 19, -214,241,175, 80, 38,193,152,216,154, 13, 68, 31,227,100,144,196,153,109,223,242,239,252,198,111,242, 63,254,238,255, 1,137,100, - 53,157,242, 15,254,241, 31,241,215, 62,245, 52, 47, 63,120,200,222, 91,135,224,231, 29, 87, 31, 24, 63,140,215,109, 4,156,204, - 64,218,104,247, 57,159, 71,225,142, 79,218, 71,159,240,208,137,123,247, 9, 90,195,107,111,243, 15, 95,123, 27,145, 38,241,225, -172, 27, 68, 54, 64, 84, 11, 68, 22, 19, 5, 9, 92,251,249,207,147, 11, 73,166, 5,115,235,184,249,221,183, 8, 42, 33, 96, 9, -235,234,147,219,110,243, 5,124,247,109,150, 23, 54,249,149,107,231,216, 40, 18,244, 83, 59,124, 35, 9,220,123,247, 30,172,102, - 48,155,119,163, 42, 96,115, 12, 71, 11,176,179, 15,127,206,218, 66, 1,159, 27,245,248,181,141, 33,127,248,193, 46,175, 77,203, -199, 18,229,206,180,104, 81,178,126,235, 29,254,189, 95,250, 87,249,213, 43, 87,248,222,157, 15,248,202,201,148,160, 51, 66, 57, -195,215, 41,193,181,248, 34,199,219,134,175,238, 62, 96, 35,215,252,246, 19,134, 68,106,196,112,130, 84, 26,153,123, 6,118,200, -206,234,128,239,155, 6,163, 13,185,148, 72, 31, 72,147,148, 53,240,245,241,121,158, 20,130,155,111,127,139,244,250,151,249,218, -219,142, 43,155, 99,206,111, 11,110, 79, 29,119,173,228,102,235,152, 9, 73, 83, 36, 32, 5,230,220, 5,204,238, 29,150,171, 5, - 65, 74, 6,169, 97,186,136,159,185, 12,150, 11,202,145, 72,131,146, 22,227, 51,114,235, 88,147,177, 47, 2,131, 60,103,221, 2, -227,110,141,171,197,135,166, 79,143,227,151, 5, 16,170, 10,238, 31, 64,158, 66, 54,140,103,142, 74,161,113, 44,108,224,165,116, - 65, 38, 52, 39,105,198,197, 98,192,180,142,200,229,212,228,148,182,225,184,169, 24,104, 67, 38, 4,243, 0,219, 38, 97,209, 21, -152,133, 78, 24,229, 25, 78,104,230, 74,209, 26,201,251,174, 97,220, 88, 18, 99,168,188,163, 41, 82, 90,162,100,114,161, 21,171, -214,147,107,137, 13, 34,226, 48,128,158,138, 9, 89, 91,150,108, 37, 5,119,155,146, 60, 49,148, 1,242, 16, 71,135,109, 16, 28, - 5,200, 43,203,103, 6, 41,223,157,213, 92,235,105,238,183,146, 23, 18,199,205, 82,178, 65,203,145, 74, 56,215,214,172, 76, 66, -181, 94,113, 36, 36,206,149, 52,222,146, 8,203,145,109,217, 86,130,131,170,102,146, 24, 94, 46,167,108, 38,154, 89,235,201,141, -160, 89, 46,120,115, 62,101,167, 24,208, 42,197,126,213,114, 76,224,165,202,145,104,199,107, 94,177,145,192,162,180,228, 89,142, -162, 97,182,242, 92, 30, 38,124,176,104,248,153,190,228,141,185,229,201, 68,240,176, 85, 60,171, 27, 94,159,195,115,121,194, 92, -165,220,106, 43, 66, 47,237, 76,196,154, 56, 58,170,218, 24,234,214,213, 99, 54,211, 63,197,107, 93,129,182,192, 8,180,131, 84, -179, 44,163, 5,184, 74, 52, 70, 73, 78,170,134,171,147, 28,103, 29,202, 67,229,186,159,165,143,221,251,224,200, 92, 96,237, 79, -129,112,174, 19, 71,235,108,185, 87,117, 84,240,252, 88,116, 62, 59, 23,195, 79,120,185,127,177,131,186,237,204, 90,172,232,120, -241,167, 64,183,110, 6,184,110,206,156,196,188, 61, 19,161,249, 97,175, 58,222,145, 87,191,246,221, 24,196, 79,171,124,255, 24, -131, 85,105,200, 61, 12,134,144, 36,176, 9,220, 95,156, 93, 79, 49,138,115, 75,162, 17,156, 56, 21,199,137,189,108, 66,101, 89, - 85, 48, 26,166, 36,186, 79,101, 75,102,229,130,195,213, 49, 55,238,220,135,227, 67,130,179,103,127, 15,176, 55,171,216,189,127, -135,114, 62, 71, 38,154,227,195, 99,102,213,138,101,185,102,209, 54,204,203,134, 89,105, 9, 8,158,191, 50, 68, 7, 69,150,229, - 60,249,204, 14,219,163, 62, 71,179,134,219, 47,223, 60, 83,195,179,182,227,101,126,244,126, 62, 6,250,163,235, 62,160,161,144, -103,120, 57,145,130,244, 92,184,124, 1,219, 88,218, 16,216, 59,184, 79, 18, 26, 54,199,151,209, 74, 98, 93,206,106, 85,113,113, -107, 11, 46,244,225,224, 48,118, 56,156,238,172, 95, 57, 83, 91,114,116,155, 89,254,216,135,237,173, 63,252, 58,111,253,184, 61, -145, 13, 98,226, 49,216,140, 24,135,209, 32,234, 18, 68, 21,147,136,230,247, 9,255,221,255,246,207, 64,106,254,224,149, 55, 35, -182,162, 7, 52, 58, 6,240,193,168, 67,166, 42,200, 4, 60, 60,140,166, 70,117, 27,215, 28,162, 62,182,254, 49,160, 27,173, 9, -137,142,163, 23,173, 99, 98, 87, 87, 80,100,136, 52, 33,132, 78, 40, 41,212,241,223, 74,114,251,123,111,197,251,178,174, 8,105, -210, 5,241,179,128,254, 67,179,116, 95,145,174, 87, 60,169, 36, 89,175,143,149,112,237,252, 6,247,238, 29, 16, 86, 37,236, 29, -193,176,224,133,193, 6, 23, 47,247,184,163, 20,239,190,249,206, 25,112,168,110,226, 22, 77, 13,255,218,198,144,207, 14, 55,153, -143, 23,188,246,238,126, 12, 96, 33,196,102, 12,113,189,194,114,205,195,245,140,111, 60, 52,188,221, 27, 17,178, 30,161,138,230, - 61, 62,149,184,218,224,106,143, 5, 92,240,252,222,238,140, 47,101,247,120,214, 24, 84,145,161,210,113,167,253,225,216, 94, 44, -113, 70, 99,116,194,148, 64, 38, 21,149,119,100, 73,198,103,183, 71,220, 45, 87,136,237,243,188,250,218,119,120,227,254,132, 47, - 61,241,105, 38,147, 45,230,105,202,221, 0,239,229, 25, 33, 55,204, 67,202, 36, 79, 25,140, 28, 75,127,145,254,209, 62,231,219, -146, 89, 89,145,100, 57,203,166,226, 82,174,187,238, 86, 4, 58, 89,111, 59,134,131,229, 66, 47,101,160, 28, 39,141,165,246, 41, - 34, 73,192,234,179,231,229,163, 1,189,139, 16,162,245, 4,106, 4, 93,155,183,167, 64, 37, 60,159,107,246,214, 45,239,172,151, - 60,157, 24,254,232,240, 62,207,245, 71, 28,122,199, 86, 8,212,214,178, 36,208,247,150, 82,106,158,205, 10,142,156,101,164, 52, - 74,105,166,206, 17,156, 71, 38,130, 96, 18, 10,163, 88, 24,201,155,194, 80, 87, 53,163,126,206,229, 65, 78,138,164, 10, 1,221, - 56, 92, 8,132, 54,138,103, 89,231,232,167, 9, 77,235, 49,222,115,177,215,227,157,213,138, 65,166,153, 89,143,129,200, 51,111, - 27,210,212, 80, 54,146,144, 41,246,125,224,185,161,230,161, 15, 92, 48,112,215,195,166,180,148, 66,176,221,192,162, 13, 72,219, -112,136, 32,109, 74, 30, 46,215,100, 58,174,181,108, 26,246,218,134,212,104, 30, 54, 21, 3, 20, 95, 63, 92,241,194, 48,227,235, -243, 53,151,250, 67,254,217,221, 7, 60, 61, 26,242, 96, 89, 17, 18,197,141,202, 50, 16,130,169, 85, 24, 42,110,161, 24,209,112, -137, 64,158, 27, 84, 82,208,184,134, 29,227,185, 97,115, 54,243,146,147, 50, 10, 88, 89, 18, 46, 23, 37,149,119, 44,116,202, 42, - 73,226, 94, 30,100, 81, 99, 99,255, 48, 62,255,161,254,240, 25,247, 47, 18,107,234, 5, 52,105, 92,252, 60,129, 36, 97,229, 61, -153,247, 76,180,161,170, 45,185,136, 0,105,237, 61,179,178,165,200, 21, 7,179,166, 59, 14,196,217,216,183,237, 68,205,232,152, - 89,202,158, 61,139,143,206, 96, 27,223, 31, 9,238, 63,238,245, 23,115,166,254,161,150, 97,135,130, 23,221, 35, 39,100,188, 97, -153,236,110, 26,143, 85,219, 33, 6,182, 79, 2,186,157, 26,190,200, 83,213,185, 83,222,123, 56, 67,131, 75, 25,219,215, 60, 70, -163, 91, 46,207, 42, 54,173,163, 12,163,245,103, 7,190,235, 84,130, 20,160, 21,201,213, 43,124,241,201,231,185,184,125,149,162, - 55,194,136,140, 15, 78,238,115,239,232,152,102,239,222, 25,245, 66,200, 88, 37,154,132,205, 34, 65, 72, 71, 93,149, 44,214, 11, - 86,117, 77, 93,151,236, 46, 87,220, 63, 92, 80,238, 45,163, 40,144,146,108,111, 79, 24,154, 30,253,162,207,103, 94,184, 64,145, - 37,152, 68,241,237, 55,239,114,240,230, 75, 63, 5, 29,209,159,221, 96,147,116, 42, 72,221, 61, 50,138, 81,209,163,151,245,152, - 77, 79, 56,153, 31,113,126,107,131,205,241, 4,147,104,150,101,131, 13,129,166,105,120,229, 27, 95,239,184,154,221, 40, 66,158, - 81, 65,162,140,176, 63, 83, 5,108,237,255,247,253,160, 58, 42, 9, 73, 76, 74,178, 36,182, 73, 90, 11,182,142,127,203,186,142, -120, 11,213,141, 23,144, 48, 93,194, 98, 17,245, 0,132,138, 26,226,167, 56,139, 85, 25,255,127,103,227, 79,223,173,175,215,103, - 0,202, 79, 50,249, 49, 49,145,139,162, 19, 62, 50, 91, 30,243, 28, 66,117, 10, 83,117, 67,208,170, 19, 76,234, 16, 64, 82,158, - 85,229,178, 99, 82,104, 69,112, 46,238,179, 83,199, 65,211,237, 85, 37,177, 2,158,221, 28,162,250, 61,230,222,243, 86,217,112, -178, 92,198, 68,183,106, 97,210,231,122,127, 72,145,231,204,157,229,160,108, 16,101, 21, 19,139, 52,237,186, 53,134, 89,154, 16, -180,224,119, 79, 42,214,181,131,118, 9,210,159,209,109, 68,138,168, 26,190,125, 60,227,196,192,161, 54,172,235, 18,177, 88, 32, -122, 3,100, 83,162,130, 66,202, 22,105,114,164, 3,233, 74, 70, 46,240,252,230, 24,147,230, 49,217,173,203,104,250,226,214,188, -237, 45,109,154,210, 51,105,180,120, 37,112,208, 68, 97,141,255,101,252, 4,193,199,110,133,189,191,203,157,195,247,121,107,239, - 54,183,246,239,178,191, 94, 81,175, 42,234, 32,232,121, 79,147, 37,212, 89,130, 79, 12,106, 48,132,164,207,192, 11,180,111,241, - 66,176, 21, 44,153,209,244, 67,192, 8, 65, 8, 1,139,196,116,254, 6, 83,219, 50,212,134,195,170,134,117, 27, 61, 31,252, 39, - 3,171, 68,151,233, 10,186,202, 11, 27, 37, 87,211,140,223,121,114,135,191,119,237, 58,231, 50,197, 43,213,138, 87, 79,214,120, -169,152,226,145, 74,243, 65, 83,210, 42,197, 68, 40,174, 38, 25, 67,161,162,229,179, 0,100,188,255,167, 14,146,214,100, 88, 5, -137,214,172, 2, 44, 19,197, 58, 49, 12, 51,195,112, 16, 21,246,122,169,230,216, 90, 18, 4, 1, 56, 92,173,217, 74, 52, 7,101, -205, 36, 79, 41, 91,135,181, 22, 27,160, 85,154,224, 26,218, 32,177,109,139, 48, 9,179, 54, 48,236, 41,170, 74, 32,132,197, 5, - 65, 30, 2,107, 4, 67,235, 88,120, 71,210,182,172, 93,203,134,173, 57,176,150,121, 91,242, 94,109,209,173,229,184, 92,211,148, -107, 22,174,197, 16, 56, 90,213,140, 19,195, 91,243, 21,147, 94,198,219,139, 53,151,132,228,173,249,156, 3, 91,243,157,195, 3, - 50, 35,248,206,241, 17, 79,106,193,157, 0, 33, 56,146, 32, 25, 59,139,209, 73, 52,195, 14,142, 32, 28, 19,173,121,183, 12, 92, -144, 21,199,107,207,197,141, 30,247, 79,214, 36,210,211, 87,154,227,186,164, 72,163,127,125,169, 19, 26,225,226,115,155,117, 12, - 41,107,127,226,160,248,195, 7,238,157,152,140, 54,241,140, 70,225,188,143,213,186,144,132,214,210, 75, 13,107,219,208, 4,135, -212,112, 82, 58,140, 11, 44,154, 54,186,129, 6, 65,104, 58,108, 78, 91, 66,217, 57,136,226,227,179,255, 40,174,157,130,154, 78, -103,159,246,172, 91,252,255,251,160,238, 59, 41, 49,173, 58,222,122, 23,200,219,112,134, 42,116,237, 89,228,246,174,171,214, 62, - 9, 81,223, 1,226,132,234,130,184,138,191,211,214, 93,203,186, 58,227, 28, 54, 54,122,174, 55,143, 41,234, 25, 29,171, 65,249, - 24,176, 76,158,185,155,137,172,207,139,207,127,134,103,158,188, 78,175,215, 67, 27,197,186,170,184,115,112,159,189,123,119,227, -225,123,154, 28, 36, 26,146,132,173, 81,206,118,191,160,159,245,144, 82, 82,217,134, 85, 83,115, 82,150,236,174, 74, 88, 86, 81, -251, 57, 72,212,164,224,252,104, 64, 47, 53, 12,139, 49,219, 59, 27,228,137,102,182,106,248,214,107,119, 89,188,255,131,159,184, -133,243,216, 13,238, 70, 19,157,236,109,136,148,183,247,235, 21, 7,199,187, 60, 56,216,101, 93, 55, 92,217, 58, 71,222,207, 81, -194,243,224,225, 17,255,213,239,254, 19, 94,249,202, 55,187,160,103,226,125, 82,242,236,104,124,132, 57,232, 16, 38,173,143,149, -241,143, 19,247,249, 81,175, 34, 59, 11,138,139, 89,180,225,108,218,174,187,146, 69, 31,128,208,237, 1,239, 98,144,174, 42, 88, -150,221,247,106,232,231,241,193,245, 62,226, 0,230,221, 92,218,119,202, 21,233,169,211,223,169,196, 36,143, 37, 42,143, 5,118, -173,227,126, 60, 77, 42,165, 6,235, 59,139,204,186, 75,244,116,164,133,101, 25, 66, 9,196,186,138, 18,188,213, 58, 6,112, 37, -161,170, 9,173, 37, 56, 23, 3, 58, 68, 3, 14,217,129,118, 78,177, 16,222,131,245,188,225, 53,111,103, 9,175, 84, 53, 83,231, - 97,181,132,121, 25,247,112, 19,120, 48,204,153, 33,120,191,177,113,252, 81, 85, 81,191,191, 41, 17,131, 17,120,203,129,144,188, - 44, 4,107,147,196,189,188, 92, 67, 43, 17,202,116,186, 15, 18,241,255,114,247,102, 63,150, 93,217,153,223,111, 79,103,184,231, - 14, 49,228, 72, 50, 73, 22,139,172, 42, 85, 21, 85, 82, 73,130,160, 22, 36, 75,141, 22, 44,248,193, 3,208, 86, 3,110,219, 13, - 63,250, 47, 51,252,110,192,112,195,176,209, 70,171, 37, 75,213,146,154,170, 42,138, 51, 43,147, 57, 69,198,116,167, 51,238,193, - 15,123,159,184, 55,147, 76, 50,201,178, 90,178, 3, 72, 68, 70,144, 25,113,239,153,214, 90,223,250, 6,101, 17, 91,203,131,237, - 6,117,253,128, 91,215,142, 88, 61,190, 68,216, 30, 57, 88,164,208,136,160,144,214, 34, 11,133,104, 59, 62,233, 45,127,120, 56, -167, 16, 18, 3,208,111,177,219, 11, 86,245,138, 15,186,154, 48, 61, 64, 8,205,144,101,108,134,129, 19,239,185, 16,130,143,100, - 6,147,138,160, 13, 97,146, 19,154, 13,190,174, 9,247, 31,224,127,241, 49,254,242, 49, 65, 14,180,213, 49, 93,153,211, 41, 29, - 11,102,105,248,238,209,156, 27, 55,142,177, 46,199,132,150, 73,240,116,214,161,133,194,251, 1,129, 32, 87,138, 44, 4,154, 16, - 48, 90,243,160, 27, 88, 90, 7,117, 29,143,219,115,178, 25,196,179,150,206,206, 33,144,176,168,248, 31,223,120,131,239,221,186, -205, 76,104, 62, 89, 95,242,206,147, 53, 89,174, 25, 2, 44,219,158, 89,158,227,128, 91, 42, 99, 46, 37,133, 54, 76,132, 68, 74, -131, 37,112,233, 3, 7,202,208, 20, 57, 34, 56,188,212,244, 90,115,233, 61, 5, 10,147,233,216, 95,186, 64,149, 27,150,214, 83, -132,120, 29,158,110, 27,110,205, 38, 60,222,116,204,139,140,139,186,231, 64, 11,140,212,252,221,122,205,224, 28,173,215,224, 3, - 65, 25,148, 86, 88, 31,184,223,195,161, 10,100, 33, 80,134, 64, 7,204,173,227, 52,128,104,182,212, 33, 48,107, 26, 62, 28,122, -238,110,182,124,214, 13,172, 55, 43, 30,247, 61,194,245, 92,214, 45,198, 57,206,182, 61,173, 11, 60,104,122,230, 38,227,147, 77, - 67,107, 61, 79,250, 30, 19,160,189,216, 50,207, 52,247, 30, 60, 97,154, 27,126,113,118, 73, 46, 3, 86,101,244, 93,143, 45, 10, -142,157,231,220,118,220,153, 77, 57, 80,154,191, 89,117,188,148, 5,150,131,228,102,230,121,111,235,248, 97, 41,113, 34, 62,223, -107,175,152,232,192,113, 53,227,141, 50,231,129,135, 46, 35, 89,125,187,100, 6,243, 75, 14, 14, 42, 37,143, 10, 15, 62,145,220, -164, 96,232, 61, 91,235,153,103,154,203,186,167,202, 36,221,224, 9,214,147,201,192, 89, 29, 83, 62,109,231,147,227, 93,226,189, -140,164,107,229,147, 29,249,222,179,227,115, 30,135,105,192, 26,107,203,255,175,139, 58, 36, 55, 57,157, 38,193, 36,228, 31, 69, -255, 67, 27, 59, 43,111,227, 3, 94,136,184,220, 54, 42, 49,214,213, 78,228,159, 38,164,200,118,212, 49, 69, 13, 17,255,110,251, -221,109,109, 19, 75,209, 39,120,100, 60,200,185,217,113,207,228, 51, 12,135,174,135,170,226,230,173,107, 28,207,142, 41,202,146, - 97,240,212,219,154,119,238,126, 64,119,113, 17,139,158, 78, 19,122,145,113, 84, 25,110,204, 42, 14,167,115,166,217, 4,135,167, - 29, 90,182, 93,199,233,166,163, 91,117,208,244, 8,149,145, 95,159,114,115,154,113,109, 54, 99,106, 42, 94,122,229, 21,138, 73, -206,106, 99,121,255,239, 30,242,167,239,254, 5, 60,185,255,212,195, 73,188, 48,244,148, 26, 22, 49,190,151,152, 12, 84,167,164, -180, 89,150, 83,233,130,224, 53,171,117,199,207, 62,120,143, 79,127,242,211, 4,171, 39,169,134, 81, 79, 63, 13,251,244,189,126, -116,176, 19,187, 44,251, 95,138, 60,153, 94,107,121, 24, 39,115,145,108,111, 93, 42,230,117, 3,243, 73, 50, 28, 18,177,160,139, -244,121, 68, 11,132,136,141,223,166,139,231, 98,148, 73,218,100, 35,108,187, 24,220, 99,147,132, 82,132,167, 11,187,148, 73,190, - 39, 99, 34,133, 76,215,140, 34, 5, 12, 69, 27,201,200, 41, 40,162,253,240, 96, 83, 83, 82,199,194, 61,106, 91,115, 19,139,122, -158, 69,219,100, 72,175, 47,201, 56,199,235, 87,200,200,202,239, 97, 56,152,197,107,219, 7,184,220,198,162, 44,163,214, 54, 52, - 61,219,202,196,127,155, 73, 88, 54,241,218, 94,204,162, 68,173,168,224, 98, 5,229, 20,170,114, 23,236,115,177,130,114,130,240, - 3,120, 27, 19,168, 68, 76,108,234,231, 37, 75,107, 17,141, 69,172, 26,132, 10, 96, 20, 34, 12, 49, 98,120,112,144, 73,130,115, - 28, 59,193,145,239,200,109,141,104,123,134,102,205,178,235,249,105,211,211,151, 57, 42,159,224,165, 38,120,135, 84, 18,215,183, - 60,193,208,154, 2,170, 5,193, 76, 8, 66, 68,144,164,200,162, 25,201,242, 18,127,177, 36,232, 64,152,222, 32, 8,193, 80, 42, -254,235,131,146,255,252,118,201,119, 15,115, 84, 85,240,241,137, 37,147, 29,202, 58, 38, 90, 19,136,249,215,222,123,186, 16,112, - 82,240,164,111, 89, 15,158,229,120, 29,174,187,200,246,127,166,152,239,238, 33,153, 38,246, 84,220,101, 0, 83, 82, 77, 37,133, -208,252,117, 83,243,191,156,159,211,213, 61,235,186, 69,107, 73,161, 53, 10,137, 81,129, 45, 80, 72,197, 53,101,112,233,180, 22, -218,160,164,162, 23,146,198, 57,230,101, 21,139,117,240,244, 82,114, 14,180, 1, 38,133,161,146,146,243,206,226,189,139, 91, 72, - 4, 85,174,121,180,108,184, 49,201,185, 88, 55, 40, 41, 17, 82,112,222,245,200, 32,184,112, 61,125,231,241, 90,131,214, 52, 67, - 67,231, 28,219,190,199,135, 64,150, 41,206,235,142,128,231,253,203, 45,249,176,101,233, 99,254,251,169,183,216,102,205,224,225, -100,117,193,103,174,167,217,108, 88,110,214, 88,224,100, 89,179, 50,146,117,107,169, 7,203,121,221,225, 16,201,179,193,227, 86, - 91,130, 54,180,203, 21,193, 7,218, 39, 43,130, 81,216,186, 35, 12, 29, 97,186,160,169,183,172,116,198,111,205, 42,150,155,134, -206, 75, 94,158,228, 52, 93, 75,129,133,188,224,142,239, 57,241,138,174, 95, 97,109,207, 16, 96,145, 23,228, 66,210,218,232,210, -247, 32,136,200,125,154,100,241,126, 24,161,239,111, 98, 89, 62, 42,173,178,184, 90,193, 13, 9,185,181, 87, 40,192,122, 24,168, -123,139,181, 2,111, 3,195,224,217, 52, 14, 33, 2,182, 79,161, 96, 93, 31,159,159, 46, 14, 99,144,146, 78,247, 93, 87,125, 26, - 2,174,166,244,196,102,180,254,133,204,220,254,241, 20,117, 83,196,244, 32,228,151,230,117, 63,119, 90,207,246, 32, 80,165,227, -129,242, 67,100,172,219, 62,234,110, 69, 58, 34, 33, 77,135, 90,236, 96,244,164, 41, 39, 36,104,101,132,232,165,220,155,244,211, -212,101,197, 14, 94,127, 54,181,205,167,137,223, 37, 41,152,243,145,176,225, 1, 97, 56,203, 37, 47, 47,230,244,221, 64,176,150, -187, 79, 62,229,131,123,159,236,180,144, 58, 78,131,147,210,112, 56,201, 89, 76, 43,102,249, 28, 41, 37,214, 14, 44,251,142, 77, -215,243,164,238, 99, 30,187,206,224, 96,194,157, 69,201, 97, 89, 82,230, 37,243,114,206, 91,223,123,157,235,179,146,204, 8, 62, -120,239, 99,222,251,228, 35,184, 60,249,166,112,200,158,110, 51, 69,241, 86,115,178,178,228,160,200,200,181,161, 13,129,143, 30, - 62,224, 79, 63,124,143,247,254,230,239,192,109,246,150,144, 38, 22, 43, 41,227,212,238, 82, 65,175,219, 20,247,153,154, 38,163, -190,121, 39, 93, 20,177,136, 78,167,176,217,166, 41, 57,192,164,138,231,181, 79,222,246, 82, 70,103,166,182,191,178,239,197,199, -104,225,120,142, 18, 44,159, 21,241,245, 5, 82, 1,110,227, 62, 61,249,223,211, 52,113,119,175,216,161, 67,251, 81,139, 87,225, - 13,114,215,224,133, 61,214,171,115,177, 48,236,191,223,253,191,123, 31, 39,243,100, 97,138,115,145,112, 39,211,100,158,114, 5, -174, 86, 25,125, 63,218, 95,193, 43,183, 80,229,140, 27,101,197, 54, 23,240,228, 50,233,204,211,185, 92,204, 35, 18, 20,194,206, -132,102,181,142, 73,123,155, 26,174,207, 33, 4,196,172,136,175,121,219,166,102,110, 27,139,121, 82,153, 8,231,163,157,229,249, - 26,113, 48, 71,228, 38, 30,183, 77,141, 24,250, 24, 13,170,210, 74,164,183, 64,224,167, 93,207, 27,198, 80, 17, 80,125, 75,211, - 90, 62,169, 91,126, 58, 56, 62,177,142,235,243, 25,223, 41, 42,222, 94, 28,161,134,158,181,247, 28,116,151,124,234, 76,108,172, -102, 7,145, 56,184,184,193,143,143,143,185,223,172,240,189, 35,212, 91,194,253,207, 8,153,137,124, 10, 39,248,147,155, 37,223, - 59, 46, 89,228, 26,147, 73,126,182,246,232,213, 41,165,209,116,125, 71, 78,160,151, 38,150, 99,109,120,210,109, 25,132,196, 14, -150,190,239,232,214, 49,255, 65, 52,245, 83,197, 92, 60, 85,216, 61, 2,141,192, 94, 77,235,216,142,159, 7,195,159,122,199,159, - 55, 61, 53,169, 73, 20,130,237,186,129,204, 96,113,136, 32,201,149,226,186,210, 12, 4, 94,214, 5,185,206, 89,135,128, 70, 97, -181,230,176,172,216,122,199,160, 13,235, 32,112, 82,176,246,129, 13, 49,161,113,150, 25, 42,163,232, 7,199, 48,120,172,128,102, -176, 17, 58,111, 7, 14, 50, 21,141,180,172, 67,245, 22,213,119, 8, 33, 57,181,158, 94, 72, 6, 17, 73,215,117,223,114,233, 3, - 23, 46,176,217, 54, 76, 76,198,197,166, 97,161, 28, 15, 90, 75,233, 58, 30,110,107, 28, 61,219,110,203,159, 45, 47,184,168,155, -216,144, 54, 17, 70,118,231,171,248, 60,220,180,208,247, 49,201,174, 31, 98,200, 86,211, 17, 86,171,120, 15,157, 44, 99,145, 93, - 94,198, 21,195,233, 50, 26,187, 12, 1,108, 67,168,230,116,237, 26,134,158,133, 12,156, 15, 3,133, 17, 4, 27,157, 11, 55,205, -138, 90,192,147,166,230,208, 24,206, 91, 75,158, 5,166,166,192, 5, 16, 90,179,181,150,123, 99,152,202,164,136,190, 36,215, 15, -163, 75,162, 76, 68,225,175, 83,103, 76,182,139, 20, 31,221, 73,247,239, 65,239,163,117,122,223,209, 53,142, 70, 6,154,186, 71, - 40, 69,223,244, 73,174,214,196,223,235, 54,169, 64, 63,199,117, 85,243,140,220, 40,125,253,130,205,200, 63,142,162,174, 83, 22, -176,142,214,170, 95,197, 42,126, 62,213,120,239, 97,218,165,192,150,171,253,185,221,177, 92, 66, 58,112,195, 62, 20,236,158,110, - 14,180,121,122, 90,191,154,184, 83, 66, 92,231,118, 80,238, 62,132, 47,216,193,162, 33,193,180, 99, 23,166, 4, 46, 24,234,208, - 48,241, 61,203,205, 35, 46, 54, 39,108,124,199,224,119,150,130, 89,169,185, 86, 77, 56,172, 74,166,217,132, 66, 90, 78,169,235, - 0, 0, 32, 0, 73, 68, 65, 84, 27,108, 8,108,135,150,139,237,134,179, 77,135,219,246, 48,128,152,228, 92,159, 23, 92,171, 10, -102, 69, 69,174, 50, 6, 2,175,189,122,135,249, 52,227, 98,213,177,222,212,188,243,209,123,176,190,124,174,246,246,171,235,186, -219,243, 3,144, 48, 95, 80,205, 74, 14,178,156,160, 20,171,186,229,201,102,203,242,228, 18, 46, 79, 83,243,147, 46, 88, 61,162, - 32,169,248,140,133,193, 36, 66,158,237,119,251,229, 47,156,212, 83,215, 58,194,226,232,167,239, 4,157,104,252,102, 22,245,158, - 70,198, 27, 80, 22,224,154,157, 54,116, 83, 67,189,141,231, 56, 58, 73,128,206, 83, 99,230,226,121, 51, 58, 54, 8, 46,194,226, -148, 42,122,217,207,170,116, 46,109,146, 47, 57,162, 56,117,111,133, 16,194,211,133,221,166, 66,218,251,221,154,232,107, 48,117, - 62, 71,140, 51, 58, 54,164, 99, 65,246,196,227,233, 92,226, 61, 4,152, 47,120,235, 91,175,243,107, 71,183,184,153,151, 76,253, -192,227,211,232,206,118,149,147,144,151,187,166,202,218,200, 11,209, 38, 73, 63,199,172,231,128,152,228,177, 72,103, 10, 46, 46, -163,217, 19, 62,146,230,172, 67, 12, 3, 98,176, 8, 23, 82,118,193,140,127,254,250,109, 66, 54,112,250,217,229,238,149, 91,119, -245, 30,124,215,241,231,141,197, 13,142,198, 8, 30,122,203,251, 18, 62, 81,240,104, 99,185,121, 48,225,119,111,188,196,245,188, -224, 85,105,152,175, 47,168,221,128,217, 62,230,209,166,129,182, 39, 28, 28,240, 47, 95,191,206, 31,189,121, 27,161, 22,188,223, - 46, 99, 70,188, 84,132,135,247,225,248, 26, 28, 29,241,122, 85,240,237, 69, 78, 43, 4,103, 29,220,247,240,248,211,135,152,224, - 49, 4,214, 82,130, 16, 56,161,120,104,123, 10, 33,144, 42,103,232, 7,142, 50,104,236, 64,183,105, 16, 67,159,244,198,241,116, -238,127, 22,105,167,254, 84,177, 31, 44, 98,219,211, 78, 13, 78,166, 66, 47,227,196, 37,130,163,217, 52, 52,198, 80, 72, 34, 63, - 70, 75,230, 62, 80,101, 6,235, 44, 83,105,152, 72,197,214,123,122,233, 17,186,164,182, 61, 94, 74, 30, 9,197,178, 23,172, 26, - 75, 94, 26,182,110, 64, 75,193, 76,105,188,243,180,221,128,246, 30, 63,120,242, 16,240, 8,164, 8,176,237,152,181, 29,165,179, -168,224,104,115,197, 73,239,216,184, 64,235, 28, 27, 33,232,156,231,126,183,102,144, 25,149, 86,200,190,225,222,106,195,249,208, -178,238,123, 54,182,163,235,123, 62, 91,175, 57,107, 45, 92, 46,227,245,119,177,142,241,219,193, 71,181, 81, 63,196,123,202, 54, -241, 26,243, 67, 84,141,228, 57,156,158,199,251,111,181,138,215,196,118, 27,135,159,109, 3, 34,198, 37, 35,162,251,231, 89,223, - 51, 15,240, 51,231, 89,116, 29,235, 32, 88,214, 91, 30, 4,133,182,142, 39,214,161,188,231,174,179,252,197,118,203,107, 50, 96, -101, 96, 51, 12,252,101,111,227,229,138,143,107,184, 60, 71,234,156,151,143, 15,152, 29, 77,168, 15,231, 4, 39,211,250,244, 5, -208, 65,231, 34, 73, 88,184,221,189, 2, 41, 95,100, 72,171,222, 16, 27, 24,198,148, 75,129,235,250,248, 59,172,141, 5, 93,217, -157,204,247,203,102,168,209, 9,117,159,168,247,194,180,162,127, 12, 69,221,251,180,175,216, 17,135,190,209,207, 64,198, 93,135, - 27,226,131,168, 75,218, 16,199,110, 23,225, 34, 9,126,127, 0,189,130,136, 71,237,185, 76,208,188, 16,241,117,165,155, 63, 66, -156,163, 55,124, 58,137, 98,183, 51,143, 77,129,137,147,169,244,201,160,127,120,250,196, 76,102,148,243, 9, 85,169,200, 53, 20, - 38,222,232,151,214, 19, 92,180, 14,172,202,130,235,179, 41,243,162,162,204, 39, 41,173,171,231,124,187,230,164,110,217,110, 59, -132,245, 80,104,110, 45, 10,110, 86, 21, 85, 81, 98,164, 70, 74,205,209,225,171,160, 74,250, 32,120,248,112,201,195,199, 15,249, -232,254, 61, 88,158,127, 51,232,105, 31,133,240,196,155,114,126, 72, 85,149,232,148, 91,126,210, 52,108,158, 92,194,217,131, 20, -180,147, 90, 80, 97,210,234, 34,117,184, 89, 34,132,141,176,187, 75,123,238, 97,120, 62,244,174,229,174,113, 29, 93,253, 70, 72, -106, 50,141, 95,151,243,184,227,118, 46, 74,139,236,144, 32,172, 33,157,244,104,231, 24,247,224, 1, 84,145, 76,135,210,117, 83, -153, 56, 69, 84,217,142, 91, 81,165,102,161, 72,174, 79,222,197,255,103, 36, 77,202,196,187, 24,228, 30, 9,208,196,189,155, 52, -169,121,200, 32, 31,149, 4,207, 63,246,226,170, 81,121,186, 97, 9,251,141,141, 72, 1, 70, 46, 17,170,204, 12,249,171,111, 17, -206, 47, 82, 53, 17, 80,206,184,249,202,109,102, 69, 69,166, 10,140,132, 79, 79,206, 97,187,142,175,105, 76, 78, 20,130, 76, 9, -110,107, 88, 53,251,107, 43,153,204,151, 28, 28,205,160,152,197, 9,220,135, 68, 24, 84,136, 20,205, 43,246, 27, 62, 60,255,213, -219,111,241, 47,222,252, 46,191,119,253, 38,239,172, 78, 56,191,216, 92, 53, 56, 87, 54,150,222,227,109,207, 7, 97,224,207, 6, -193,217, 52,231, 1,158,115, 47, 24,108, 64,230,134,223,153, 46,184, 38, 13,197,224, 41,183, 23, 56, 4,210, 7, 84,127,201,163, -229, 25,223, 95, 28,243,251,223,190,193,155,215,231,156,108,122,126,210, 65,200, 6,194,201, 25,225,244, 81,116,194,155,223, 98, - 57, 59,224,179, 65,240,216,193, 71,173,231,211, 85,207,185,133,220,121, 90,219, 70,110,177, 52,180, 2,132, 16, 32, 13, 50, 56, - 22,153, 33,247, 3,202,246,132, 48,208, 46, 55, 8,239,159, 2, 67,197, 51,224,168,124, 22,150,183, 61,172, 54, 8,159,208, 64, -149, 26, 49, 36, 88,135,235, 58,214, 66,144,107, 67, 55, 12, 44,140,230,178,239,120, 75,231, 4, 99,120, 40, 36, 85, 97, 48, 86, - 80, 7,207,133, 54, 60,118,158,199, 27,203,214,123, 90,226, 37,238,149, 36,243, 30, 23, 60,218, 58, 46,235,142,185,148,184,222, -178,181, 3,155,245,134,126,219, 48,107, 7,140, 31,208,222, 81,132,232, 65, 95, 86, 57,119,166, 25,111,148,134,219, 69, 70,222, -247,172, 61,156,247, 13,239, 53, 91, 62,108,107, 30, 13, 29, 39,182,231,241, 96,121,220,108,121,112,121,198,210, 9,196,201,147, -216, 36, 95, 92,198,235,146,189,208,173,164,144,136, 60, 20, 23,229,155,163,194, 98, 31,145,218,123,110, 6,239,146,135,134,132, - 34, 35, 92,108, 8,133,230,161,247,220, 14,158, 71,213,156,118,123,201,251, 58,167,116, 29, 91,107,217, 10,197,165,119, 56,215, -115, 17, 2, 15,187, 30, 53,120, 78,219,154,251,193, 63,197,139, 58,194,243,118, 49,225,119,230, 19,126,237,224,136,223, 60,152, -163,103, 57,247,114,149, 86, 98, 47,176,250, 19,196,250, 50, 42,147, 70, 95,143,113,101,107,251,184, 82, 27, 18,147,221, 15, 73, -230,236, 18,212,158, 2,195, 94,244, 25, 60, 62,155,198,191, 75,253,197,132,220,127,180,240,251,213, 68,243,180, 85, 30, 90, 39, - 6,115, 98, 11,127, 25, 81, 64,138, 52,125,141, 33, 42,201,222, 85,133, 29,204,106, 68,124,206,143, 63,195,164,234, 46, 19,236, -234,146, 99, 80,158,195, 75, 7,112, 52,133,101,189,243, 65, 23, 50, 77, 30,209, 87, 56,154,180,236, 17, 28, 38,101, 44,236, 38, - 75,221,149,125,250,245,154,146, 27,119,110,240,202,252, 16,109,178,184,214,237, 91, 78,183, 93, 42,234,146,235,147,130,107,213, -140,210, 24, 36,138,206, 15,172,251,154,243, 77,205,197,101, 13,189, 69, 40,197, 43,243,130,151,143, 38, 28, 84, 37, 70,104, 50, -157, 83, 84, 83,254,211,223,255, 1, 63,126,243, 8,169, 21,127,241,211, 19,254,242,227,191,163, 89, 95, 68,189,242, 47,179,179, - 30,177,162,234, 16,142, 14, 40,141, 70, 9,120,188,174,105, 87, 27,184,184,136,197,121,212, 91, 74,145,136,114,121,220, 29,233, -189, 34,110,212,142,245, 62,118,194,207, 67,113,236,142, 0,138,220, 63,119, 58,222, 48, 38,139, 55,154,117,145, 16, 87,111, 64, -151, 17,249, 9, 42, 90,127, 14,109, 44,106, 33, 62,188, 17,169,185,168,242,216,104, 76,146, 4, 70,171,248, 59, 42, 19, 31,198, - 70, 38,182,121,216,153, 16,217, 68,192, 20,106, 15,194,243, 81, 58, 35, 68, 68,114,148, 1,153,237, 94,255,115, 61,197,147,235, -222,216, 84,122,187,199,122,245, 79, 55, 54,227, 49, 29, 43,199,181,235,252,240,205,215, 57,249,224,227,248,125,231, 33,203, 56, - 61, 92, 80, 86, 11, 46, 3,188,223,118,116,143, 31, 68, 38,183, 17,144,149,208,110,184,118, 60,231,247,143, 42,110,101,154, 66, - 5, 78, 46,215,241,191, 13, 77,132, 24, 69, 72,146,205, 99,254,217,241,171, 28, 79, 12, 15,158,156, 70, 67, 27, 19,163, 64, 73, -211,171, 48, 26,208, 44, 22,134, 63,254,193,143,248,219, 39,103,220,117, 61, 15, 30,159,198,200,224,177, 65, 73,210,176, 49, 89, - 42,120,201,153,201,240, 72,110, 2, 63,170, 50,110, 20,130,169,148,188,220, 7,228,208, 32, 49, 52,190,229, 0, 9, 89,206,203, -194,177, 25, 28,157,207,216,132,192,191, 62,233,120,210,119, 4, 83,194,172,140,199,110,189, 37, 72,135,206,143,248, 48, 72, 46, - 7,248,100,176,172,183, 17,181,105,234, 26,134,192, 36, 19,116, 78, 32,114, 77, 70, 12,136,154,168, 12,165, 20, 42,192,205, 16, - 19,178, 30, 53, 61,170,115, 72,118,133, 93,125, 65, 65,127,182,176, 51, 88,196,182,129, 46,217,127, 75, 5,185,185, 74,236, 10, -181, 99,179,220,178, 21,176, 10,158,185, 17, 8, 93,176,178, 61,103,182,229,124,112, 88,109,120,191,239, 80, 66,240, 68, 9,206, -154,150,117,240,216, 44, 99, 93,183,100, 97,192,123,168,155, 14,183,109,168,140,138, 54,202,131,229,100,179,230,108, 91,211, 52, - 13, 19,107,163,211,156,181, 4, 15,153, 49,220,152, 78,184, 49,155,112,108, 12,151,131,199,202,128,168, 27,222,111, 55,132,161, - 33,244, 45,222, 89,232, 26, 66,189,134,243, 83,196, 96,225,228, 28,218, 22,177,169, 17,146, 8,179,135,164, 6,217, 47,232, 95, -151,113, 46, 71,211, 31, 15,133,137,207, 82,239, 88, 26,131,234,182, 60, 54, 25,175, 14, 53,181,201,185, 59,180,204,148, 96,105, -123, 78,156, 67,234,156,239,248,150, 75,239,249,168,109, 8, 30,222,146,146,133,144, 92,122,199,155, 38,227, 87, 38,134, 91, 38, -199,168,128, 17,154, 75,223,115, 87,104,156,208, 17,189, 82, 89, 42,206,246,249,104,165, 73,211,186, 50, 96,219,196, 93, 73, 12, -246,253, 24,242,167, 2, 89, 82, 16,216,215,217,231,107,253, 12, 4, 47,159, 46,246,254,255, 11, 69,221,185, 47, 46,232, 87, 15, -197, 4,139, 7,249,197,112,201,213, 30, 34, 60,221, 5,238,235,112, 71, 25,149, 25, 63,167,255,238,252,110,210,145,137, 72, 39, - 45,211, 87,111, 49, 45, 50,154, 39,235,100,237,103,119, 48,116,231,119, 18,170,241, 53, 23,147, 4,131,202, 29, 84,237,159,121, -152,231, 19,236,108,198,237,131, 35,148, 16, 56, 31,184,216,108, 56,171, 59,148, 86,148, 74,113, 52,201, 40, 77,134, 86, 10,239, - 28,219, 97,203,197,182,230,193,170, 78,177,166,176, 88, 20,188,116, 88, 50, 47, 74,140,201, 98,230, 60,130, 27, 7, 51,126,251, - 87,191,197, 98, 58, 99,106, 20,239,222,219,240,206, 47, 62,196,214,107, 56, 59,121, 46,188,251, 66, 59,165,249, 20,200,120,237, -199, 63,224,215, 95,126,157, 91,179, 5, 65, 58, 90,215,209,124,250, 16,252, 38,237,206,139, 84,204,211,241,108,235, 72, 34, 28, -139,184, 20, 17,150,203,205,206, 11,249,139, 46,246,241,220,143,146, 77,253, 12,194,226, 71,123, 95, 19,111, 68,157, 39,107,224, -144, 98, 99,137,134, 67, 38,143, 77,217,200, 7, 48, 69,108, 20,117, 98,144, 79, 77,146,170, 40,200, 21,114,146, 35,180, 66, 26, - 69, 24,207, 33, 41, 48,104,176,241,223,140,112,154, 78, 48,254, 32,163, 49, 81,110,146,244,164,139, 23,135, 78,202,129,231,133, - 1,233, 81,159,191, 87,216, 71,207,234,103, 31,120, 34, 77,235,227,199,118,205,201,199,159,238, 96,127, 66,108, 88,143,103, 60, -201, 43, 78,135, 45,157,181,208,109, 34, 84, 58,254,204,131, 67, 94, 91,104, 50,163, 9, 1, 62, 89,246,108,181,129,213, 5, 76, -230,208,213,241, 61, 8,193, 31,190,254, 38, 63,124,227, 85, 74,239,184,215,173,232, 78, 19, 92,218,237,145,199,140, 70,100,154, -251, 23, 45, 31, 46, 31,241,192, 76,184, 11, 44, 55, 13, 97,179,141, 58,111, 41, 63,159,130,102,123, 66,208, 28, 21,240,134,210, -188, 81,149,188, 49,159,210,121,203, 13, 37, 81, 46, 66,157,153,146, 76,117,134,240,150, 30,144,125,205, 79,159,156,240,111,206, - 59, 30,116, 77,132,221,117, 70, 16, 6, 42, 77, 48, 18, 46, 47,217,108, 46,121,141,130,207,182, 3,125,221,208,116, 3, 85,219, -192,118,197,145,148, 8,153, 81, 77, 12, 90, 72,188,130, 3, 64,104, 69,142, 96,130,128,161, 37,195, 33,133,224,162,173, 81,131, -101,164, 8,236,255,217, 47,242,159,219,185,251,184, 99, 23, 46,128,214,136,210,196,128, 35, 37, 16,237, 16, 55, 78,118,224,210, - 57, 30,116, 3,109, 24, 56, 13,142, 51,111, 49, 66,240, 81,223, 48, 17,130,143,189,227,209,170,166, 53, 37, 79, 54, 75,250, 16, -168,125,207,196, 69, 87, 75, 97, 29,167, 67,199,114,187,165,173, 59, 62, 93,157, 51,244, 29, 67,112,172,251, 45,166,219,112, 83, - 40,108,146,241,137, 44,103,114, 48,141, 54, 17, 82,112,152, 25, 30,174, 87, 56,215,243,176, 27,168,235,109,188,103,150,231,132, -203, 11, 56, 95, 34,150,107, 56,189, 68,132, 14,209, 70,164, 70,132, 30,132, 65, 40, 31,101,138, 62,161,114,163, 84,245,235, 32, -131,222,167,240,149, 68, 0,237,134,132,140,246,116,194,131, 13, 92,106,197,118,179,129, 32, 89, 91, 71, 23, 28,232,156, 31,251, -134, 11,149,241, 27,153, 96,134,226,183, 84,148,159, 86, 67,205, 45,161,208,120,126,101, 58, 97,145,130,210,182, 67,199, 84, 74, -126,178,105, 8,133,142,210,183, 34,135,249, 60,145, 92,247, 82, 63,159,154,214, 83,243,210,182,113, 88, 24,119,227,157, 77,255, -205,255,191, 52,228,202, 47,159,128,191,228,247,252,195,155,207, 24,189,199, 90,126,166, 83, 82, 50, 86, 94,147,168,255, 50, 61, -221,195, 23, 9,241,247,222,138,251,130,130, 62,194,223,201, 4, 4,201,206, 46,118,172,112, 87, 38, 49, 22, 6,205,230,231,119, -227, 3,121,219, 38,210, 83,218,151, 42,187, 11,132, 65,238,153,181,216,120, 97,132, 4,155,116,225,105, 67, 1,128, 97,205,198, - 89, 92, 80,180, 22,214,173,227,164, 30,144, 8,202, 76,113, 80,228, 20, 38, 50, 97, 91,107, 9, 56,214,109,199, 69,215, 19,172, - 67, 40, 13,165,138,164,184,162,136,161, 33, 16, 67, 36, 92,203,195,179, 53, 39,203,142, 42,239,120,184, 28,176,206, 38,162,158, -251, 6,114,182,221,199,244, 55,190,195,183,230, 11, 38,170, 98, 54, 59,226,120,113, 72, 46, 13,215,219, 25, 85, 46,248,243,247, - 62,130,173,141, 59, 89,246,229,107, 73,106,214, 63,109,168,195, 36, 17,209,244,151,152, 42,140,231,107, 60,189,227,215, 58,157, -171,174, 7, 61,219, 17, 42,100,202, 35, 38,201, 25,221, 22,156,137,133, 93,164,140,248, 60,201,178, 72,205, 93,110,226,142, 44, -207,200,178,216,100, 41,160,144, 26,171, 28,181, 21,228,165,166, 27, 18,146, 52,155, 68, 63,245, 73, 30, 97,245, 38,105, 75,171, - 50, 90, 6, 75, 29,201, 67,121,145,222, 67, 27,157,232,122, 3, 19,226,123,126,170, 27, 79,124, 15, 29,167,221, 88,224,247, 59, -152,189,181,144, 75, 1, 16,227,234, 98,108,112,198, 99,145,103,209,140,105,179,129,195,109,116, 54,211, 9, 45, 40,202,168,195, -159, 86,240,248,140,119, 57,230,222, 12,100,110, 88, 41, 13,155, 75,152, 30, 64,187,141,123,116,239, 97, 93,243, 89,215,113,116, -190,229, 51,159,179, 12, 42,110, 49,106,251,244,121,243, 50,230, 84,219,158, 63,255,236,130,197,225,171,172, 79,207, 98,255,145, -206,249, 83, 83,250,222,159, 80, 47, 89,103,146,249, 97,193,119, 23, 37,153,144, 56,165,249,100,123,193, 91,197, 33, 70,121, 38, -147, 25,222,246,220, 12, 14,143,196,245, 43,190,181,189,228,238,234, 18, 83,205, 8,179,107, 4,100, 52,192,201, 94, 38, 20,115, -130,235,248, 23,179,156,191,189,247, 87,188, 89, 45, 88,150,135, 20,229,140, 39,237,150,107, 66, 64, 89,198,185, 91, 43,180, 20, - 76, 27, 79,143, 99,129,192, 23, 19,194, 48,144, 87, 71, 84, 66,113,190,174,209, 38, 39,198,194,124,126, 34,223,111, 84,174,222, - 87,250, 44,198,247,190, 93, 19,130, 36,100, 10,170,138,160, 12,225, 72, 35,122, 75,216, 52,132, 77,207,210, 57,254,109,231,249, -241,177,229,194, 43, 62,212, 27,174, 77, 42, 62,114, 27,200,166,108,125,160, 8,209,204,103,211,110,232,124,192,234, 14,113,182, -230,237,197, 1,178, 31,168, 76,198, 59,219, 19,174,137,156,114,176,156, 13, 27, 46, 29,220, 15, 45,101,223,112, 92,206,177, 69, -197, 76, 11,182,155, 22, 93, 21, 56, 37,176, 93,135,148,154,135,221,192,106,216,144, 97,105,235, 21,172,215,136,101, 3,171, 21, - 65, 14,136,145, 83, 50,158,215,222, 35, 84, 15, 72, 2, 30,161, 36,193,181,105,205,240,245, 72,175, 97,188,231, 85, 3,107, 29, -137,168,125, 7, 7, 7,177,192,151, 9, 82,207,243,120, 47,200, 36,237,180, 45,179,162,228,147,182, 97, 41, 4, 71,153,226,227, - 65,114, 68,203,185, 87,188,149, 5,250,208,209,175, 47, 97, 50,101,166, 21,107,215,115,210,245,120,145, 86, 35, 34, 68, 57,107, -211,195, 75,215,225,108,147, 34, 82, 19,172,222, 15,177,144, 15, 22,244, 38,222,159, 87, 38, 97,123, 70,101, 90,255,242,122,120, -173,191, 24,250, 15,207,148, 59,251,143,117, 82, 31, 39,112,165,227,222, 81,238,125,125, 53,229,176,251,108, 71, 93,174,253, 18, -182,160,125,250,107,255,140, 92,192,237,193, 33, 87,242,163, 44,254, 78,108,100, 99,187, 36, 53,112, 9,234, 80,196, 7, 38,169, - 83,243,118, 23,252,146,233, 84,188,211,207, 22, 68, 63, 95, 98,224,253,231,100, 87,179, 3,202, 42,167,115, 61,237, 48,176,238, - 26,122,219, 51,211, 25,135,121, 78,145,101, 8, 33,105,135,142, 77,219,114,110,123,150,109, 79, 24, 2,170, 52, 28, 87, 21, 7, -147,130,194,228,104, 37,233,251,129,203,182,225, 73,189,225,238,197, 25,205, 70,242,201, 67,199,187,159, 62,225,253,187, 31, 80, -169,128, 83, 57,109,239, 9,205,234,235, 23,247, 55, 94,225,159,254,202,247,185, 61,191,198,205,195,235,204,103, 7, 44, 14, 14, - 40, 76,134,243, 61, 77,187,228,211,229, 18,206,151, 59,153,213,216, 84,133, 16,215, 20, 89, 58, 31,253, 30, 52, 47,229,231,143, -207,243,246,248,114,239,239, 30,200, 85,156,184,155, 77, 34,160, 16,247, 89, 56, 80,147, 8,187,155, 44,157,184,116, 30, 77, 74, -200,209, 58, 58, 66,205,242,120,141,149, 5,224, 9, 62,112, 84,229, 87, 15,236, 76, 38,171, 77, 31, 8, 66,197,189, 95,112,105, - 98, 78,136, 81,174, 83,140,162, 74,193, 65, 99,196,111,136,223, 23, 33,238,214,242, 34,222,149,251,124, 17,159,184, 2, 9,118, -140,215,244,190,209,254, 30,203,118, 68, 61,174,162,113,247,110,114,159, 16, 16,159,194,136, 38, 51, 56, 92, 64, 62, 69, 9, 65, - 38, 21,110, 52, 81,217,180,145,244,119,185,161, 47, 10, 58,147,208,132, 50,143,238, 91,101, 21,247,128, 58,114, 33,206, 53,188, - 43, 53,247,187, 26,164, 67, 60,124,188, 11,164, 72,240, 59, 18,196,104, 0,213, 91,218,161,142, 43, 47,173, 9, 82, 71,118,116, -146,227,125, 62,163, 92,114,205, 24,126,235,230,148, 91, 89,193,196,100, 8, 37,249,197,208,113, 32,161,202,231, 8, 33,112, 56, -132, 16,244,222,177, 28, 58,154,190, 67, 52, 27,182,167,151,216,205,217, 21,124, 19, 76, 73, 40,103,252, 15,175,220,230,247, 94, -122,137,227,233,130,127,253,228,132, 91, 65,112,186, 61,231,150,130,163,108,194, 52,211,148, 69,142, 29, 98,242, 95, 41, 4, 57, - 62,242, 96,241, 20, 89,134, 14,138,105, 81,177, 40, 51,110,230,146,187,203, 14, 29, 28,198, 75, 12,158,241,113,174,158, 3,199, - 63,245,199, 59, 16, 30, 49, 36,110, 78, 89,112,109,118,192, 31, 93, 95,240, 79, 94, 57,230,164,222,178, 94, 54, 4, 60, 15, 55, - 53, 23,214,115, 62, 88,238,213, 29, 91,165,248,108,121, 70,231, 6, 30,172,207,104,112,172,173,101,109, 91, 30,116, 53,107,231, -248,219,139,115, 38,194,242,168, 94,242,139,186,229,172,222,114,183,169,209,190,227,175, 79,206,249,216,195,208,173,208,120, 78, -240, 88, 4, 74, 72,154, 20,108,243,222,118,203,123, 23, 75, 62,232,182,224, 2,153,237,113,193, 98,211,115, 82,180, 93,124, 15, - 1,132, 13,136,144, 38,115,107, 35, 31,193,249,104,123, 19, 66, 44,252, 95,115,205, 23,158, 69,109,187, 38, 93, 88,169,154, 41, - 17, 7, 41, 49, 18,107,137,114, 81,231,248,149,178,160,238, 26,222,158,228,209,138, 2,207,143,139,156,247, 26,203,143,171,156, -141,237, 41,165,164,177, 14,221, 53, 8,107,121,210,183,252,207, 23,203,216,168, 15, 9,125, 29, 3,190,180,230, 55,111, 86,252, -209, 43,215,248,209, 75, 71,188,121,243, 58,191, 88, 28, 50, 76,170,221,250,117, 24,146, 12,186,216,153,133, 5,183, 99,194,127, -227,130,254, 69,204,119,190,160,182, 61,127, 90,255,135, 45,234,251,147,202, 24, 87,122,213, 2,139,120, 34,145,241,160,141,208, -249, 24,146,178,127,209,248, 17,174,120,246,161,200,231,119,218,159,131,119,109,124,248,155,113, 63,158, 14,170, 86, 73,146, 38, -227, 5, 52, 6,200,140,110, 98, 97,188,123,243,157, 14,123, 31, 17,240,246,249, 5,171,172,200,167, 37,210, 7,182,125, 67,215, -247, 4,235, 57,154, 22,148, 89,129,146,130,193, 90, 90,235, 56,111, 59,214, 77,135,245, 1,101,114, 38,153, 97, 90, 26, 38, 69, -142,137,157, 6, 77,215,178,234, 91,206,215, 61,171,186,230,195,123,247,120,247,222, 7,172,150,143,184, 61,187,201,245,234, 6, -139,131, 99,238, 93, 60,138, 19,217,139, 94,116,142,136,138, 28, 46,120,229,218, 33,185,202,168, 38,115,132, 18, 20, 89, 78,179, -169,145, 74,240,100,249,132,187,255,254,189,248,158, 71,214,102, 8,187,162, 62,186,188, 57,191,251,220,245, 79,147, 12,191,148, -108,177,199, 33, 83, 73,199, 63, 50,229,139,196, 95,240,233,156,185, 4,201,211,165,203, 33,196,134,173,154, 68, 41,215,124,186, - 75, 94,146, 50, 18,227,132,231,104, 82, 82, 24,141, 70,178,200, 13,141,117, 84, 82, 99, 69,140,210,116, 4,130, 8,228, 69,137, - 27,229,143, 46,105,218,125,114,155, 35, 21,115, 41, 83, 66,148,221, 93, 67, 90, 69,251, 96,189,111,176,227,119,133,221,219, 47, - 0,206,252, 30, 73,102,143,131, 48,202,227,132, 72, 65, 66,201, 85, 14, 17,191, 95,205,225,232, 26,210,100, 8,169,240, 12,132, -182,129,139,243,216, 92,108,155,136, 44,228,102,151,239, 60,164, 9,108,232,162,171,222,232,156,104,109, 90, 79, 36,243,165,166, - 67,156, 62, 77,184, 20,222,131, 23, 8,147, 26,157, 54, 53,186, 87,134, 69,146,224,159,247,160,247,172, 85,198,143, 22, 37,183, -178,140,193, 59, 86,222,113,215, 90, 30, 73,207,235, 89, 69, 97, 74, 10, 97, 48,125,131,232, 26,238,213, 43, 6,239,169, 6,207, - 4,203,242,124,139, 61,191, 32, 20,146,144, 25,190,149, 79,249,195, 87,111,241,202,193,148, 7,155,150, 63,221, 52,124,178,189, -196, 11,205,194, 24, 54,193,113,123, 94, 48, 56,136,246, 51,129, 74,128,146, 10,165, 37, 2,129, 18,138, 73, 89,226,132,228,184, -156,242,250,226, 26,223,191,177, 32, 47, 52,219,204, 68,138,136,206,209,153, 68, 7, 80, 94,162,240, 95, 80,220, 53,210, 68, 18, -176,212, 38, 18,232,108, 64, 20, 25,191,127,115,193,111,223,126,149,219,249,132,197, 68,243,215,143, 46,162, 61,240,166, 37,116, -125, 92, 87,172,150,244,231,231,132,174,167,175, 27,194,164,164,111,107,250,203, 51, 6,219, 17, 54, 43,134,182,198, 5,203,189, -237,154,251, 23, 23, 44,187,142,243,174,229,162,111,185,223, 54,184,109,139,191, 92,242,241,186,227,253,118,205,153,180,124,108, -123, 42,169,249,120,187,225,253,229,146, 63, 59,189,224,189,190, 70,121,129, 12, 22,129, 99, 18, 60, 70, 9, 26,235, 35,225, 47, - 72, 68,202, 11, 23,222,199,226,206,110,125, 38,246,214,104, 79,113, 11, 94,224, 67, 60,143,195, 51, 38,223, 73,253,116, 83,172, -178, 84, 84, 13,167,214,242,135,243, 2, 23, 2,183,243, 28,225, 29, 39,125,195,175, 84, 19,126,178,217,240, 86, 49, 97,139,196, - 13, 45,189, 27,248,183, 79,158,240,201,106,195,249,186,137, 78,139, 38,145, 24, 67, 34,246, 5,199,239, 44,166, 84,198, 80,228, - 19,130,210, 12, 62,240, 88,201, 56, 24,164,192,159,100,234, 30,239,225, 33, 26,204,124,110,136,252, 38,220,178,103,235,215,184, -190,179,126,103, 95,254, 37, 14,115,255,176, 69, 93,250, 52,245, 36,131, 15,149, 58, 51,173,226,131,114,140, 59, 53, 41, 51,221, -166,233, 56,164,206,109,255, 13, 93,217,234, 61, 51,165, 91,255,229,140,121,147,165, 40, 77, 31, 9, 84,214,239,152,235, 87,230, -251, 54, 22, 18,233,175,148, 80, 41,104, 45,165,180,132,103,136, 17, 95,177, 91, 49, 37, 93, 86,144,233,192, 96, 7,218,174, 35, -207, 36,243, 60,195,168,152, 54,212, 59,199,186,111,185,236, 59,186,244, 30,170,162,224,160,202,152, 8,137, 17, 18, 99, 4,222, - 90, 86, 67,199,227,101,205,166,237,226, 36, 60, 56,172,134, 69, 57,225,229,227, 87,233, 66,143, 14,154,207,214,231,216, 71,247, - 94,108,159,238, 72,187, 49, 1,237,128,184, 62,165, 84,134, 82, 79,208, 89,137,210,130,174,110, 56,191, 56,229,127,255,249,207, -225,241, 19,110,254,225,239,178,253,244,222, 14, 5, 81, 9, 5, 25,189,142,159, 37,139,140,136,140, 20, 41, 17,206, 63,135,156, - 39,247,214, 49,236, 38,197, 44, 33, 2,117, 29,247,230, 67,212, 21, 71, 75,222, 42, 73,189,242,248,123, 22, 21,243,151,110, 83, - 84, 37,106, 90, 49, 56,155, 36,148,130, 92,107,148, 16, 84, 58,202,127,150,189,103,150,105, 58,239, 81,233,241,212, 91, 79,105, - 20,109, 61,196,253,153,243, 41,170,215,197,233,252, 74,155,238,211,132,110,227,181, 45,243, 88,120,135, 68,216,220,183,130,220, - 47,236, 90, 62,243,246,237,211,135, 96, 60,158, 87,246,197,236,153,221,164,239, 41, 21, 77,113,164,128,195, 25, 97,178, 32,216, -150,128, 76, 49,172, 77, 92, 7,248,116, 45,219, 49,125, 45,161, 38,219,246, 10,206,164,245,177, 1,176, 46,229,170,155, 72,146, - 11, 1, 86,235,232,136,183,255, 80, 30,123,106,163, 16,117,138, 57, 86,154, 48, 47,248, 87,111,220,160,156, 21,220,123,178,138, -123,211,103, 31,232,193,161,181,166,202, 12,107, 2,247,189,231, 3,235,248,179,206,242,123, 74,176,208, 37, 6,137, 30, 6,124, -187,226,129,179, 8,235, 17,214, 81,122,193, 66, 64,237, 29,221,163, 11, 2, 45, 47,107, 56, 44, 42,150,125,207, 95,157, 46,249, -249,122, 9, 82,210,218,150, 7,117, 67,237, 45,219,214, 82, 59, 71,145,151, 84, 10,114, 4,131, 15, 84, 1,156,119,136,114,130, -159, 78,169,202, 9, 89, 57, 69, 34,184,105, 42,126,253,198,203,252,218,205, 91,188,253,250, 29,110,221, 56,228,177, 46, 17, 86, -161,133, 67, 5,143,242, 30, 53, 41,162,171, 30,196,198,202,232,232,176,151,204,154,132,237, 17, 14,138,185,225,213,201,156, 78, - 74,238, 14, 61,239, 73, 79,216,118,176, 90,198,107,121,187,133,186, 35,244, 3, 97, 91, 19,250,158,112,255, 17, 56, 75,184,220, - 64,169, 97, 91,227,237, 0,221, 64,232, 90,252,166, 33, 88,143, 95,175, 8,117,135,111, 45, 97,179,193,183, 22,191,185,100,115, -126,206,253,117,207,167,131,227,223,212,151,252,249,106,205, 79,234, 53,143,188, 77,251,253,154, 82, 4,114, 31,200,188, 37,243, - 48, 87,130,181, 20, 41,201, 90, 34, 19,138, 42,242, 9, 34,215,187, 70,115, 68,110,158, 41,214, 95,172,239,255,170,194,174, 99, -209,154,148, 41, 82, 59,139,240,119, 57,137,141,124, 55, 64,105,120, 75,106,126, 59, 23,104, 83,160,156,101,229, 44, 62,120, 14, -148, 97, 35, 5,175,105,205, 25, 48,117,150,121, 94,112,210,118,220,145, 18, 63,116,116,109,207,182,238, 96, 91,167, 97, 36, 42, - 64,254,224,120,194,203, 89,134, 86, 25, 94, 40,140,214, 40,229,121,191,115, 73, 13, 35, 99,211,170,178, 36, 97, 78,247,239, 40, -171,126,161, 97,229, 75,184,200,242,139, 8,114,114,111,112, 77,181,238, 57, 48,255, 63, 92, 81,207,179,120,178,236,176,179, 33, - 29,109, 67,179, 44, 62,176, 61, 41,251, 60, 21,216,204, 36,194,211,222, 67,244,138,109, 56, 78,241,233, 11,251, 2,164, 5,173, -119,133, 65,154,221, 46,211,167,194, 48,234,217,247,131, 96,252,254, 78, 35, 77,162,146, 29,170,240, 34,154,199, 76,225,242, 41, - 94,198,160, 12, 47, 29, 19,101,226,164, 40, 21, 62, 8,186,193,114,209, 91,182,221, 0, 8,230, 7, 83,110, 47, 14, 40,181, 65, - 9, 16, 4,164,247,116,206,178,106,122,206, 86, 13, 97,240, 8, 31,146,116, 2,124,166, 17, 42,144,235,156,179,230,146,251, 79, - 30, 65,187, 34,188,136,193,139, 76,197,214, 73,232, 44,151,171, 37,159, 14, 61,199,101, 78,158,231, 12,221,192,166,105,184,127, -241,152,135, 31,222, 5,103, 99,152,194,197,242,105, 6,232, 87,161, 52, 34,101,222,203, 47,131,173,198, 48, 29,181,135,213,165, - 9,220,217,200, 92,109, 54,241,198, 31,145, 19, 63, 58,178,233,216, 20,222, 56, 38,207, 20, 90,104,132, 0, 43, 37,193,182,160, - 21,185, 84, 84, 70,145, 41, 69, 99, 3,149, 81,180,214,225,131, 39,136,128,199,145,107, 73, 63, 4,156, 27,253, 14,210,227,201, -118,169, 1, 10,145, 57,158, 21,169, 80,219, 36, 61,235,227,235,180, 54,146, 7,191,112, 90, 29,215, 73,123,219,230, 60,139,147, -244, 62,231,100,148,124, 62,187,190,130,216,160, 24,179,147,111, 22,121,108, 34, 84,130, 5,109, 23, 97,240, 85, 27,119,135,117, - 15,198,240,218,141, 9, 63,200, 53,175,101,138,187,103,171, 68,144, 75,122,117,124,124,144, 42,147,124, 5,178,200, 23,184,184, -252, 92, 81,199, 39,111,251,193, 38, 36,109,128, 44,231,191,127,227, 22,191,119,227, 14, 70,195,255,125,214, 68,159, 0,118, 22, -171,130,104,157,251,112,208,104, 41, 89, 3, 15,156,229,190,147, 88, 39,184, 27, 90,254,137, 41, 41, 48, 40,153, 81, 44,174,241, -242,209,109,174,103,134,101,223,226, 8,100, 88, 94, 54, 26, 41, 5,121,215,241,160,109, 8,126,195,191,127,248,144,127,119,118, - 70, 24,122,130, 34,154,214,100, 6, 79,108, 2,122,239,112, 54,112,123, 82,176,181, 45, 55,140,161,243, 1,147,229, 44, 14, 22, - 20,179, 9,250, 96,134, 51, 26, 33, 13,147,114,130,247,129,239, 29,220,224, 7,183, 94,229,187,179, 27,252,250,209, 13, 38,115, -205, 61, 15, 90,101,168,190, 71,117, 22, 57,153,160, 76,134,202, 75,228,224,144,194, 34,131,138,133,125,176,208,212, 60,217, 88, -154,210,177,148,129,159,212, 3,219,224,160, 72, 43,139,117, 29,175,105,219, 39,169,151,139,150,191, 67, 71,232, 60,129, 1,214, - 13,161,110, 97,121, 25,125,197,183, 29,161,183,132,224, 99, 19, 48,244,248,139, 19,130,235,240,109,131,239, 26,188,115, 49, 22, -183,174,241, 78,224,134, 26,239, 6, 6, 63,196,201,223, 65, 62, 88,140,112, 84, 82, 82, 10, 75,174,224,192, 40, 90, 33,152, 40, -197,171, 83,205,235, 7, 83, 14, 22, 5,213,193,140,165,154,166, 20,199, 72, 6,125, 17,199,202,231, 21,120, 1, 8,167,227,176, - 52,201,160, 92,196,235,149, 16,249, 33, 77, 90, 35, 45,166, 16, 36,255,201, 52, 3,161, 88, 54, 43,166,249,148,206,123,110,231, - 37,101,128,119,235,129,137, 49, 84,174,231,157,198,115, 93, 6,180, 18, 4, 9, 55,164,228,219, 18,254,195,233, 38,230, 62,116, -117,202,132, 8,220,154,230, 28,165,235,201, 75, 73, 23, 2,119,155,129,251,222,238,236,165,125, 34,216,230,121,188,239,138, 34, -162,129,243,121,228,173, 16,146,174,157,167,172,194, 95, 88,158,253,133, 68,185,125,101, 12,255,128,240,123,158,197,130,169,244, -142,249,172, 18, 44, 55,178,205,199,169, 67,232, 61,246,249,222,127, 27,255,222,165,128,149,126, 47, 42,245, 89,221,158,231,133, -172,244,174,138,138, 79, 5,217,201,157,143,182,142, 25,232, 87,233, 56,210,238,177, 94,246,150, 64, 82, 60,141,246,191,168,100, - 33,159, 35,143, 14,210, 84, 30,223,227, 52, 87,104, 41, 81, 41,138,117, 99, 7,182, 67,207,208,122, 80,130,235,243, 57, 71,147, - 42,234,124,189, 71,138,128, 7,154, 97,224,116,219,211,215, 45, 34, 88,194,224,147, 22, 50,208,181, 29,151, 67,207,164,148,100, - 42,195,148,154,229,221, 79, 63,175, 48,144, 50, 22,143,253,239,187,212,185,202, 84, 24,234, 14,206, 46,184,151,231, 76,144,156, -111, 86,156, 44,207,249,155,191,251, 32, 26, 74,120, 7,143,159,124, 13, 13,230, 30, 95, 98, 44,238, 94,124,201,201,211,169,113, -218,219,194,121,226,106,102,244,223, 55, 69, 58,159, 33,201, 18,211,215, 62, 64, 38, 49,147, 10, 35, 21, 2, 65,125,118,114,229, -224, 87,102, 17,130,239,211,164, 17, 66, 96, 98, 4,141, 15,248,224,232,186, 1,161, 37,110,136, 69,128, 33,217, 4, 15,125,212, -186,143, 54,179, 46,233,187, 73, 49,173, 17, 82,136,222,211,202,126,193,148,254, 12,204, 14, 48,159,237,246,237,106,239, 88, 93, - 25,152, 36, 72,220, 36, 56, 82,236, 61, 66,157,138, 83,117, 31,226, 52, 83,229,200,172,136, 92, 0,153,126, 94,221,196, 66, 61, -137,196,190,183,230,113,191, 60, 23,130,109,102, 88, 95,174,118,153, 7,235,109,202,143,111, 99,166,188, 78,146,189,109,106, 16, -158,125, 40,143, 48,236,136,204,204, 42,126,116,235, 58, 47, 85, 11,222,223,174,248, 15,171,250,106,191, 62,178,252, 69, 90, 63, - 8,111, 89,107,131, 45, 52,141,214,156, 9,141, 66,176, 14,240, 61, 45,184, 61,185,134,204, 10,212,157, 59,152,197,156, 60,155, -242,224,226, 4, 31, 44, 7, 74, 51,147,130, 55,203,140,215,202,156,235,210,243,127,220, 59,229,241,227, 75,252,102, 21,237, 71, -135,142, 16,162,197,232, 92,105, 58, 33, 41,164,230,187,121,137, 15,129,133, 20,172,250,150,105, 86, 48, 5, 68, 81, 48, 63,158, -146, 77,178, 56,109,103, 57,189, 8, 92, 95,204,249,246,241,130,163,107, 11,110,220, 62,230, 80,230,220,206,230, 76, 75,197, 71, - 97, 64,161, 80, 38, 71, 57, 17, 31,117,193, 35,165, 68, 74,141, 20, 17,198,150,193, 71,131,154,190,225,209, 89,203,199,189,101, -147,167, 18, 39, 53, 84, 69,242,187, 72,247,136, 73,205,235,120,111,217,100, 56,212, 69,171,209,224, 29,180, 53,161,111, 8,205, -150,208,213,132,174, 37,108,214,209, 82,183,235, 9, 62, 58, 18,122, 51,137,141,234,182,195, 93,158,225,215, 91,124,231,240, 50, - 96,189,160,198, 98,221,192, 53, 1,194, 15, 72, 2, 19,169,240,222,242,189,210,240, 95, 30,207,249,227,107,115,126,255,240, 26, - 63,154, 77, 48,153,225,246,225, 4, 57,203, 57,247,163, 37,179,191, 50,185, 18, 95,241,231,115, 80,189, 75, 13,162, 54, 80,205, -162, 71,196,232, 19, 18,136,182,175,101,206, 91, 70,179, 48, 5, 19, 37,184,165, 37, 51,157,113, 50,116, 92, 87,145, 39,240,211, -174,231, 71, 85, 5,174,231, 49,146,183,164, 35, 87,138, 92,103,244, 67,203, 37,112,182,105,120, 83,122, 62,238,251,120, 95,116, - 45,116,150,207,250,192,237, 66,115,156,103,120, 60,181, 11,252,111,117,178,119, 29,146,124,109,180,181, 22, 10,180,230,237,227, - 25,255,217,203, 71,252,241, 75,215,121,179,202, 56, 62,158,241,137, 75,131,135, 74, 80,150,208, 9,233,245, 47,246,124, 28,239, -117, 41, 63, 47,107,123,118, 74, 55, 89,180,191,158,204,254,158,139,186,214,159, 63,125, 89,130, 25,131,143, 7, 68,236,193,174, - 89,218, 89,200,189,221,122,199,206, 61, 43, 27, 3, 44,146, 65, 71, 72,108,224,111,162,189, 30,187,161, 76,197, 2, 46,147, 3, -157, 75, 83,250, 78,147, 18, 11, 74,240,159,191, 34,189,142,210, 13,207, 87,104,145,159,165,146, 31, 17,166, 21,101,150,161, 3, - 8, 28,165, 20, 40, 37, 17, 66, 80,187,129, 85,239,217,108,146,145,129,212,148, 69,134, 81,130, 64,192, 38, 18,203, 48, 56,206, -234,142,198,245,248, 54,238,234,128,200,176,237, 99, 71,121,124,231, 14,191,250,210,247,185,182,184, 65,169,167,124,252,209,207, -147, 17, 10, 59, 86,117, 72,244,165,253, 6, 73,142,133, 98, 12,198,137, 19, 88, 88, 45,185,127,178,228,254,217, 41, 39, 15, 79, -226, 78,234,120, 17,163,104,151,203,175, 39,217, 16,123, 37, 33,124,149,109, 99,154,212, 71,231, 38, 33,119,180,171, 16,118,202, - 5,183,137,208,187, 72, 70, 64, 87,251,111, 79,111, 29,117,219, 70,205,190, 84, 32, 2, 82, 27, 36,129,206,121, 22,153,166,245, - 46, 22,125,103, 49, 66, 82,183,129, 28,208,184, 0, 0, 32, 0, 73, 68, 65, 84, 29, 74, 73,218,110,192, 14, 46,158,228,113,183, -109, 19,151, 66,166,137,125,244,130,247, 34,153, 14,117, 41,139,222, 62,205,122,127,222,199,124,198,175,254,193, 31,240,248,209, - 41,132,209,168, 35, 53, 46, 35, 41,211,167, 41,126, 84, 85, 36,203,214, 8,223,200,104, 97,156, 16,138,197,225, 34, 58, 33,203, -232,187,142,119,209,202,210,185,200,242, 45, 11,242,105, 78,166, 36, 79, 20,124,120,186,142,205,208,208,197,227, 90, 76,162, 43, - 88,235, 96, 49, 37, 91, 28,242,223,188,114, 27, 76,224,241,147,243,157,213,237,243,166, 49,103,249, 64, 74, 50, 3,255,211,249, -138, 49, 71, 65,216, 1,186, 52,217,203,241,118, 10, 12,237,128,152, 76, 64, 75,164,206,113, 82,161, 51,141, 99,224,123,213,140, -108,122,136,190,113, 13, 89,228, 32, 13,225,244,132,204, 8,230,194, 50,211,138,185, 82,232,204,176,200, 12, 11, 45,168,115,201, -106, 8,248,179, 21, 97, 85, 19,148,228,123,139, 41, 7, 69, 69,169, 20,223, 46, 42,110, 86, 26,229, 6, 30,146,241,170,214,216, - 48,176,177, 29,211,114,130,208,154,220,104,148,212,228, 70, 49, 59,156,112, 45,207,121,245,246,156,233,181, 25,249,180, 32,159, -148, 20, 65, 83, 5,205,141, 34, 99,118, 60,229,177, 5,165, 99, 46,188, 42,203,152, 84, 55,184, 56, 3,100, 2,209,119,209, 94, - 55, 51,136,205,146,176, 94, 33,172, 39,100, 9,194,117, 46,162, 78,211,105, 92,167, 76,138, 88,212,159, 34, 89,122,130,247, 87, - 54,191, 97,252, 60, 90, 11,143,196,196,125, 25, 97, 86,225, 95,190, 78,200,115,124,211,225,189, 37, 88,139,239, 54,177,184,111, - 58,176,158,182,239, 49,161,167, 18,129, 74, 42, 58,231,152, 72,201, 15, 77,206, 43,153,225,118, 94,209, 75, 65,102, 10,114, 93, -208,154,140, 60, 47, 40, 38, 25,143,145, 8,105,226, 42, 88,131, 72,215,200, 87, 21,245,171,207, 33, 93,243,215, 23, 28,127,251, - 22,119,174, 31, 80, 86, 25,235, 85, 23, 81,157,220, 32, 50, 67,233, 3,111,205, 75, 50, 37,105,132,228,193,208,242, 45,157,209, - 59,199, 52, 43,240,174, 39,179, 61, 70, 27, 50, 2, 23, 74,209, 15, 13, 77, 16, 28,232,156,123,219, 45,223,193, 82,235,140, 7, - 77,203,224,147, 4,175,107,193, 14,124,120,190,230, 47,215, 29,127,179,110,248,233,233, 58, 90, 79,143, 6, 89,146, 56, 96,250, -116,255, 25,193,239, 30, 78, 56,204,115,150,110,160,200, 50, 10, 35,121,199, 19,159, 89, 90,199,232,102,157, 37,243, 42, 29,107, -221,151, 33,166, 99,125,250,220,196,110,247,184, 95,251,232,175,129, 27,215,225,160,250,123, 46,234, 38,193, 40,201,200, 42,154, -133,164,105,123, 92, 78,203,189,135,242,104,252, 50, 78, 40, 73,242,136, 74,134, 32, 54,196, 23, 63,116,105,127,145, 10,146,210, - 47, 6,123,127,209,129, 27,108,236, 6,197,222,208,164,216, 53, 14, 36, 86,190, 22,137, 21,191,199,134,119, 99, 76,107,130, 7, - 94,212, 9,111,114,200,252,248, 24,129,101,146, 75,140,242, 56,124,100,247, 58,199,186,115,212, 93,135,107,135,196,244,150,104, - 41, 48,193,209, 15, 29,189,115,212,214,178,234, 44,235,174,195,182,195,213,235, 18,128,200,116,252,119,147,138,215, 94,122,133, -235,213, 13, 76, 86,112, 86, 95,114,247, 23, 31, 69,168,105, 60, 63,251, 27,118,241,108, 23, 57,198,165,250,167, 9,217,161,139, -234, 0, 83,240, 43, 63,250, 46,223,121,229, 14, 55,174, 29,240,240,195,143,190,102, 83,181,231,219,251, 34, 50,144, 49, 28,101, -156,236,199,159,163,203,136, 6,117,155,148, 31,224,162,243,147, 74,190,255, 58,105,228,101,154,114,198,244, 62, 29,139,157,147, - 16,188, 96,176,241,218,148, 2,250,161,103, 8, 34,230,195, 91,199,208, 38, 55, 40,153,174, 1, 45,210, 83, 75,199,130, 45,146, -125,171, 76,174,117,210,199,137, 94,236,241, 8,244, 87, 68, 39, 10,201,226,206,109,206, 46,183,145,165,126, 37,135,244, 79,147, - 46, 71,119,195,177,161,185, 98,197,143,231, 44,178,171, 77,158, 33,179, 18,233,122, 6, 68, 84, 7,116, 67, 52, 83,202, 5, 52, -150,203, 44,231, 51,161, 56,233, 92,132,240, 79,150, 41,174,210,239,216,188,125, 7,139, 5,255,237,183, 95, 99,158, 21,220, 44, - 51,254,234,222,195,167,144,135, 47, 44,238,131,101,216,214,252,188,177,145,183, 98,116,156, 40,148, 70, 12,109, 98, 76,239,184, - 64, 2, 79, 91, 91, 66, 53,165,204, 51,110,149,134,235, 70,211,216,192,129,214, 92, 47,166,228,243, 35, 4, 18,119,182,166,169, - 47, 89, 40,141,180, 45, 3, 1,171, 20, 83,165,232,165, 98,155,231,148,147, 18,189,200,241, 71,135,212, 50, 70,146,102, 58,102, - 40, 84, 69,206, 91,243, 9,139,188, 68, 21, 5, 10, 75, 45, 2, 97,176,116,195, 64,240,130,182, 29,232,188, 34, 47, 37, 7, 70, -114,144, 25,142,139,140,163, 89,137, 73,134, 88, 33, 64,191, 29,152,152,140,151,138, 25, 55,204,140,107,243,130,108, 81,176,206, -114,110, 29, 76,104,136,249,232,178, 40, 17, 14,230, 85, 73, 63, 54,255, 58,106,158, 51, 47,177,247, 79,119, 33, 83,121, 14,121, -137, 88, 76, 17,179, 18,145, 25,196,186,223, 17,211,190, 4,222,126, 86, 97,112, 85,212,111, 93, 39, 28,205,241, 66, 17,156,199, - 55,245, 21,231, 50, 12,150,208,212,132,102, 11,203,134,165,135,163, 66, 17, 6,143, 15,158,204,121,126,115, 86,114, 36, 53,181, - 15, 28, 20, 83,164, 50,212, 74,161, 85, 70, 11,148,153, 65,105,201,105,153, 33,242, 28, 81, 86, 8,165, 17, 33, 32,148, 68,154, -104,188, 35,210,179, 90,228, 25, 28, 94, 67, 28, 30,198, 93,121,176,136, 30, 56,152,160, 94,123,137, 95,125,233, 22, 71, 85,197, -181,233,148, 70, 59, 14,231, 11,230,147,130, 44,203, 89, 43,197,171,153,228,251,210, 80,227,185, 99, 42, 30, 13, 3,179,204,240, -184,221,178,200, 12, 66, 74,222, 93,111,249,118,150, 97,188, 71, 8, 77,214,111,249,133,115,188,157, 73, 54, 66,241,112,217,240, -201, 42, 33,110,193,238,106, 66,215,195,182, 38,172,183, 81, 10,218, 15,145, 41,223,182,123,208,119, 68,157, 95,171, 12,223,153, -149, 9, 84,150, 72, 41,233,172,227, 97,235,168,131,139,207,173, 34,169, 99, 50,179,147, 70,243, 21, 67,224, 72, 10, 31,229,129, -227,122,249,139,212,220,186,128,195, 41, 8,241,247, 92,212, 71, 54,251,184,223, 20, 62,194, 43, 90,164,154, 62,230, 7,167, 68, -169, 50, 89,116,138, 84,192, 77,250,247,109,138,229,244,105, 18, 26, 89,194,163,166,221,168,111, 78, 78,208,169, 0,122,145, 18, -189,236,142,132, 39,210, 62, 83,134,221, 90, 64,239, 5,198,104,113, 21,121,249,149,228,184,253,143,163,107, 48,201, 40,101, 52, - 7,109,236,144, 40, 4, 1, 31, 60,203,166,165,223,244,187, 59, 50,215, 84, 74,199, 7,146,115, 52,189,163,117,158, 85,211, 18, -154,126, 23, 28, 50, 58,182,105, 73,118,120,196, 31,253,198,111,115,231,224,101,178,194,112,114,121,198,121,179,226,241,123,239, -236, 38,226, 81, 46, 50,178,213, 3, 47,198, 70,215,121,100,240,191,114,131, 31,220,122,153, 42,203, 89,148,115,222,175,215,209, - 54,242,235, 20,246,175,115,220,198,130, 53,122,152,143,143,174,190,141,197,122,146,180,225, 58,237,180,188,125, 26, 21, 24, 9, -118, 42,217,253,250, 72, 20, 11,214, 33,100,160, 15,150, 66, 43, 86,109, 79,102, 76, 12,246,176, 22,215,251, 24, 38,161, 50, 66, -155,100,151,232,221, 42,105, 36,122,250, 17,253, 48,209,163,160,208,241, 97,161,242, 29, 34,245,101,197,221, 90,206,238, 61,129, -119,207, 97, 49, 58,239,137,207, 91, 75,238,239,214,173,221, 37, 18, 38,201, 17, 93, 3,205,128,152, 79,176, 2,110,102,138,181, -141, 54,161, 46, 36,249, 93,189,137,247, 99,158, 36, 57, 82, 70,116,103,211,166,169, 48,177,130,187, 20,106,227, 5, 47,189,114, -204,180,156,242,225,106,205,167,203, 21, 44, 87, 95,205, 98, 30,108,132,220, 77,129, 40,242,184, 22, 40,242,132,102,116, 49, 20, - 70,238, 75,191, 44, 62, 47,184, 54,157,240,250,172,224,229, 44,231,102,102,232,252,192, 29, 85, 80,133, 12,177,109,241,151,231, -208,111,232,130, 37,147,224,188,199, 7,193, 96, 50,106, 33,104, 76,198,153,214,132,108,194, 26,137,168,102, 76,102, 83,206,236, - 64, 40, 74,178,190,229, 90, 85, 33,165, 96, 27, 2,151,117,244, 75,183, 33, 71, 40,133,119, 29, 79,150, 23,116,155,158,118,109, - 41,243,140, 10,193,225,180,100, 90,154,120, 41, 57, 79,115, 57,208, 39,120, 59,211,154,227,233,148,111,205,143,249,222,244, 26, -111, 47,110,113,123,122,196,203,211, 9, 55,143, 22,212,194, 33, 39, 5,181,208,152, 98,130,247,154,144, 25,130, 80, 88,223, 69, - 47,129,179, 39,136,218, 71,134,121, 89,198, 63,197, 4, 81, 76,224,232, 0,145,149, 8, 55,230, 99, 60, 77, 76, 11, 95, 81,224, -131, 29,160, 19,132,186, 33,180, 29,193, 8,194, 96,241,251,255,214,185,180,199,135,199,219, 1, 81, 72,214,157,197,122,199,117, - 41,185,157,229, 40, 41,144, 74,210, 74,205, 35, 4,191,112, 30,167, 51,156, 27,168,138, 9,159,166,103,163, 40, 51,196,193, 12, - 49,155, 35,103, 51,132, 48, 8, 93, 32,130, 64, 28, 28,114,227,135,111,242,195,111,191,206,173,227, 35,166,243, 9,231, 33, 54, -201,226,240,136,183, 95,191,205,141,197, 97, 92, 55, 6,207,171,199,175, 48,175, 38,124,251,198,171, 28, 22, 57, 88,248,171, 65, -114,205,120,142,100, 70, 23, 44,183,164,226,103, 77,199,247,170, 41, 63, 91,109,121,105, 82,112, 83,192,133,247, 12,118, 64, 41, -197,165,115,188, 42,163, 64,227,227,245,134, 62, 56, 30,214, 93,146,181, 61,171,170,242, 59, 87,188,174,139,205,109,215,239, 86, - 72, 67, 68,139,151, 65,241,195, 42, 39,215,138, 42,203,113,222, 49, 72,201,159,159,175,119, 3,196, 56,200,142,133, 57,168,136, -114,250, 23,244,129,255,130, 77,221,231,184,196,166, 0,165,255,158,139,186, 79,187, 7, 35,159,182,181, 30, 31,200, 97, 44, 38, -137,108, 70, 72,172,217,148,132, 21,146,214, 55, 31, 37, 72,201,163, 93,238, 89, 60, 40, 25,117,192,214,127,243,215, 40, 69,146, -246,164,215,123,165,139, 78,144,188, 20,207,236,214,147,212,194, 39, 41,210,184, 95,121,145,226,100, 52, 76,231, 96, 52,131, 29, -144, 50, 32, 69,136,196,101, 96,221, 15,212,235, 4,187, 19,181,190,121,110,168,180,185, 90, 65,215,118,136,208,124,151,136, 27, - 33,196,156,238,224, 18,151, 34,227, 59,175,191,196,175,189,241, 54,147, 89, 69, 8,158,119, 31,188,199,207,238,222,133,243, 39, -187, 11,105, 95,126, 38,120,177,105,217,196, 48, 23,166, 5, 78, 6,190,123,253, 22,214, 7, 54,125,203,221,119,247, 80,128, 23, - 66, 44,138,221,190,248,235,156,175, 47, 82, 25, 76,138,104,211,234,101,132,189,117,146,149,153, 84, 68, 68,216,237,240,243,100, -114, 52,158, 51, 23, 98,212,169,131,174, 27, 48, 90,208, 44,123,156,243,132,173, 35,116, 22,134, 16,235,168,117, 32, 20, 82,137, -189,135,168,220,145,211,228, 56,177, 39,179,152,178,140,138,132, 66,197,115, 83,232, 47, 71,116, 92, 31, 77, 54,198, 68,188,193, -126,254,186,218,127,239, 35, 55,100, 76,160,179,195, 85, 30,179,235, 6,244,172, 64,227, 57,144,146,137,136,219, 44,231,146, 52, -104,179,141,231, 61,159,236,156,237,182,203,157, 60,103, 24,118, 33, 60,131,227,195,162,224, 93,239,249,192, 19,207,243,147,179, -231,247,243, 35, 87,163, 72,108,252, 46,238, 67, 69, 89,196,251,187,200,185, 94, 78,168,187, 14, 26, 27, 11,187,181,209, 99,221, -228,220, 58,170,120,115, 50,225,102,150, 51, 85, 6, 21, 2, 83,103, 57, 26, 60,102, 93, 35,215,167, 8, 27, 87, 35, 82, 27,178, - 32, 24,194, 64,131,224, 66, 73, 30, 35,233,148,166,113,130,144, 77,184, 83, 78,120,189,202,249,193,180,226,117,147, 97,114,195, - 89, 15,245, 16,168, 7, 65,161, 20, 86, 43, 50,173,169, 10,197,208,193,208,119,244,237,154,147,199, 15,232, 58,205,205,249,148, -210, 9,180, 21,168, 32,217,110, 7,150,117,207,227,229, 22,213,247, 76, 38, 57, 89,166, 41, 76,198,225,108,198,245, 98,194,171, -211, 67,238, 84,215, 56,150,134,239, 47, 14,121,105,162, 17, 69, 96, 58,201,153,148, 57, 90, 10, 90, 23,240, 77, 71,240, 3,162, -239,162, 1, 80,215, 33, 76,116,159, 19,229, 12, 81, 46,248,141,107, 55,249,151, 63,250, 33,223,126,249, 58,239, 24, 25, 73,139, - 93,247, 66,210,177,144, 26,172, 16, 2, 65,105, 66,166, 8, 8, 66,215,125,241,132,111,123,196, 80,179, 94, 15,108, 58,207,105, -235,121,181,148, 28,101,146,153,202, 49, 82,113,191,239,248,133,247, 92, 4,143, 80, 10,148,161, 38, 48, 17,130, 19, 25,101, 98, - 2,144,147, 18, 81,100,200,249, 28, 49,169, 16, 55, 14,248,225, 27,119,248,222,173, 55,184,113,237, 58,147, 44, 35, 11,129, 91, -135, 11,178,163, 57,183,110, 94, 99,154, 23,148, 58, 71, 74,193,180,156,178,220,118, 84,197,148, 50, 43,200,179,130,195,106,194, -237,208,242,208,122,190,165, 36,150, 64,111,114, 50,103, 57,245,142, 55, 51, 67,239, 44,103, 66,112, 32, 4,154,192, 67,215,115, - 40, 4,114,136,100,193, 83, 23,184,108, 90,122,225,233,221,158, 58,231,185,250,241, 84,160,125, 31, 27, 96,219, 71,243,169,174, -101, 86, 25,110,107,195,129, 81,172,186,158,255,245,209,146,173, 15, 49,248, 75,135,157, 18, 43,164,117,102,219,197, 26,242,203, -186,208,233, 68,106, 14, 33,222,207,167,103,255, 17,136,114,126, 63,123, 60, 65,134,102,124,144, 39, 28,123,100, 62,251, 68, 38, - 24,119,137,163,190,153,176,155,222, 93,122, 88, 62, 37,233, 73,147,186,148,223,236, 0, 61,245,111,178,103, 96,117, 34,236, 46, -237, 83, 43,141,171, 85,194, 8,195,191, 72, 65,212, 26, 38, 11, 40, 13, 65, 8,130,242,104, 5,153, 22, 40, 41,168,123,199,170, -235, 9,125,127,245, 59,100, 97, 80, 82, 16,132,167,183,158, 85, 55,208,212,195, 46,199,119,132,164, 67, 10,250, 80, 2, 53,159, -243,198,241, 77,174, 29,220, 34, 4,193,166,105,120,231,238, 71, 52,167,167,176,185,248,188, 25,207,215,153,150, 85, 6, 7,211, - 36,225, 16, 92,218,134,123, 23, 43, 62, 56, 61,133,135, 15, 95, 60,206, 48,207,224,141,215,162, 45,233,122,245,203,219, 43, 14, -233,196,140, 97, 61, 33, 57, 17,102, 69,146,156,249, 61,237,149,227,191,251, 47,254,132,119, 62,124,111,215,216,180,177,112, 49, -120, 92,159, 44, 7, 91, 27,121, 31, 46, 21,227,100,156,147,229,121,204, 71, 54,130, 76, 41,156, 78, 89,230, 54, 21, 89, 53,218, - 13,167, 61,146, 73,196, 51,157,254,159, 76,127,249, 62, 77,126,205,107,247, 89,181,193,248, 61,231,184,182,168,104, 5, 76, 76, -140,163, 60,206, 13, 75,107,227, 78,176,107,227,245,124,235, 40, 26,240, 76,139,120, 12, 46,151, 79,253,140,248, 51,163,139,220, -144,171,157, 2,101,185,218,189,143,162,136,205, 94, 8, 87,228, 30, 49, 41,193,170, 8, 57,146,248, 47, 89,148,120,253,201,173, -107,252,243, 59,175,160, 75,193, 71,103, 27, 68,103,175,210,206,100, 83,115,237,248,144,239, 46, 14,120,189,152,115, 88, 76, 16, - 1, 78,218, 53,223,234, 59,140,247,104, 85,161,164,192,100,101,162,127, 72,134,161,227,177,119, 60,112,150, 54, 43, 88, 9, 65, - 71, 70,149,229,188, 49,159,114,172, 50, 94, 46, 42, 50, 4, 51,101,216,120, 73, 39, 36, 65,105, 50,105,144,218,224,133, 36, 4, - 77,111,123,108,144,108,182, 91,234,118,205,102,125,194,186, 85,124,171,172, 88, 40,133,107, 45,125,235, 56,185,220,242,233,229, -138, 96, 7,242, 54, 34, 61, 70, 25,178, 50, 39, 43, 10,202,105,197, 60,203,120,249,232,136, 59,135,135,188, 94, 30, 50, 65, 71, - 23, 99,233, 34,179,190,208,228, 89,129, 20, 26, 39,100, 84,177,116, 45, 98,187, 65, 14, 30,153, 11,228,228,128,127,245,157,215, -248,193,237,235,220,185,126, 19, 47,167,124, 24,122,132, 19,132,126,136, 59,250, 23,213, 65,103, 89, 66,151, 92, 50,108,250,146, - 41,113,232,193, 91, 68,231,120,119, 59,240, 23,235,154,135,190,229,255,220,212,252,101,215,115,174, 2,165, 52,132,224, 24,146, -162,211, 73, 21, 27,170, 16, 16, 90, 33,148, 65,228, 19,254,233,173, 91,252,218,209, 33,191,115,243, 21,230,243,235, 40,147, 99, -116,142, 50, 69,140,100,208,154,219,243,155,220, 94,220,102,158, 31,227, 80,180,174,229,211, 7, 15, 80, 74, 82,149, 21, 85, 57, -193,249,129,213,114,137, 36, 80,119, 61,127,218, 90,126,171,170,240,125,203,177,214, 84, 18, 26,231, 88, 3,199,222,225,181,193, -121,207,204,246,148, 82,208, 58,199,165,181,252,187,117,203,161, 18, 60,236, 98, 99, 31, 7,198,231, 12, 25, 87,249,230,123,126, - 18,227, 80, 48, 88,238,157,108,248,201,233, 37,255,215,163, 53,127,181,220,178, 29,149, 38, 34,165, 20,250,116,188,125, 72,146, -216, 33, 30, 91, 59,252,146,156, 53,249, 52, 68,230,253,127, 68, 73,155,209, 41,236, 35,153,111, 8,157, 38,120,187,131, 18, 67, -122,248,150, 89, 44,224,154, 8, 99,106,177,131,227,123,187,219,245,137, 4,225,167,137, 22,145,164, 61,223, 4,138,151, 9,146, -181,169, 80,219, 61, 98,220,216, 44, 8,246, 72,116,126,247,189,225, 5, 79,140,153,192,225, 44,217, 9, 10,178, 66, 82, 40, 21, -221, 61,149, 98, 61,244, 49,123,119,220,215,148, 81,183, 62,146,209,155,193, 97,183, 93,156,156,218, 1,100, 96,126,227, 58, 85, - 85, 81, 78, 42,154,166, 7,161,248,157,239,255, 42, 55,103, 55, 16, 66,112,182, 60,225,238,233,103,124,116,242, 24,206,207, 99, - 68,226, 47,213,164,165, 5,104, 22,253,214,235,147, 11,186,135, 39,112,126, 18,139,196,139,126, 76,167,188,253,107,111,115,243, -250, 81, 36,220,125,217,195,229, 69, 63,198,224, 31,159,252,181, 81,177,171, 86, 50,133,148, 36,156,215, 57,222,249,249,207,226, -223,155, 4,129,181,195, 78,142,230,210, 57, 21,255, 15,117,111,250, 35, 89,118,158,249,253,206,118,151,184,177,229, 86,107,119, - 87, 55,155,139, 72,137,212, 72, 20,103,145, 53,163, 17,168, 17, 96, 12,198, 30,251,139, 96,192,128,255, 62,195,254,102,192, 48, - 96,120,145,101, 91, 50, 70,163,161, 68,114,212,100, 55,123,173, 45,179,114,137,140,237,110,103,241,135,115,110, 70, 84,117,117, -119,117,147, 90, 38,129, 98,118, 49,179,170, 34,111,220,123,222,247,125,222,103, 73, 57,239,131, 97,142,143, 7,162,243,129,188, - 84, 81,169, 64, 64, 34, 8,131, 12,205, 36, 41,142, 86, 59,181,135,227,198, 75, 61,222, 75,238,203, 35, 20,159,215,169,251,189, -142,253, 57,239, 6,137,205, 12,227, 60,167,150, 2,147, 25,106,239,169,189,135, 85, 19, 73,115, 58,135,215,111,241,159,223,123, -141,111,207,167,188,126, 80,241,193,147,179,151, 55, 29, 54, 68,231,185,144,200,135,117, 31, 61, 2, 32, 22,116, 17, 67, 87, 34, - 7, 69, 71, 54,126,150, 18,208,244,224,243, 31,184, 51, 27,241,135, 7, 71,220, 45, 39, 4, 2,127,190, 88, 35,156, 69,244,254, -166,176, 47,125,206,239,220, 57,228,173,234,144,214, 91, 50,101,248,184,219, 50,221, 44, 56,148, 6, 83, 29, 32,178, 28,101, 74, - 68,240,209, 78,217,119, 92,246, 13,103, 66,178, 82,138,214, 11,178,172, 98, 58, 82,188,150, 23,168,228, 10,168,165, 36,151, 26, -167, 97,235,193, 9,133, 87, 10, 45, 53, 90,105,106, 1, 94, 42,154, 54,186,168, 29,231,158,220,183,252,245,123,239, 32,123,201, -108,213, 83, 53,158,118,189,101,211,119, 60,219,110,120,180,188, 98,185, 92, 68, 67, 28,101, 80, 66, 33,130, 64, 26, 69, 86,104, -178,105, 78, 81, 21, 84, 85,197,109, 89,225, 59,203,162,107,176, 58, 68,208,111,100,120,179,200,120, 59, 51,188, 33, 21, 89, 80, - 92,213, 22,113,189, 68,108, 27,196, 72,240,181,233,156, 7, 7, 51, 46,130,224, 73,175,120, 71,149, 80, 8, 68,166, 96,211,165, - 52,196, 47, 48,125,113,142,144,212, 49,248,254, 51,155, 75,241,194,159, 1, 31,221, 2,107,203, 71,181,229, 73,211,112, 46, 4, -143, 58,203, 60, 83, 49,167, 34, 68,148,112,221, 89, 90, 60, 43,169, 17, 34, 48,201, 70,252,119, 39,199,252,225,241, 45, 30, 84, - 51,190, 61, 63, 98,146,151,244,121,201, 38, 56,182,157,197, 57,139, 20,154, 50, 43,169,202, 41,121,150,145,203, 2,219, 11,206, -182, 23,156, 93,175, 8,120,156,235,232,108,203,163,171, 83,158, 58,207, 47,218,142, 63, 30,197,179,123,105,123, 22, 82, 82, 32, - 24, 73, 65,219,174,209,102,196, 7,125,199, 93, 41, 49, 82,145,185,142, 71,157,101,217, 91, 78, 52, 92, 89,203,114,157,114, 71, -218,176, 67,200, 62, 85, 31,110,224, 91,158, 39, 24,201,157,217, 88,219, 69,201,230,114,117,131,162,208, 37,107,217, 54, 73, 95, -187, 62,170, 71,134, 44,138, 95,202,168, 70,126, 90, 66, 32,229,223, 97, 81,247,123,108, 93, 37,227,126,130,116,232,117,123,174, - 62, 34, 77, 2, 34,121,180, 43, 34,163, 87, 16,139,134, 25,166,113,187,139, 51, 20,122, 87,100,135, 98,255,121, 83,187,214,145, -217,219,239,193,160, 74, 39,195,155,129,204, 32,119, 6, 52,214,239, 14,207,225,226,245, 9,176, 10,175, 56,229,230, 25,156, 28, - 66,158, 49, 62,152, 80,100,209,226,181, 42, 36, 2,201,178,177,108, 59, 75,104,218,248, 58, 74,131, 84, 34,134,215,117, 30,215, -116,241,107,219,148,205,155, 73,238,223, 61,230, 7, 95,255, 22,223,121,253,215, 56, 25, 31,240,201,234, 18,114,195,247,223,248, -117, 38,147, 25, 62, 4,254,242,253,159,240,179,139,211, 24,207,185,185,248,252, 9,241, 85, 63,156,139,135,249,106, 27,243,203, -219,250,203,255,189,109,203,217,249,130,179, 15, 63,220,237,102, 7,200,118,248,245,101,110,120,157,228, 48, 74,198, 9, 89,155, -221,125,228, 19, 39,162, 31, 82,225,162,196, 45,178,197,251,136, 16,101, 41, 12, 64, 37,219,215, 60, 41, 30,100, 22,223,240,116, - 64, 75, 5,165, 81,104, 17, 15, 9,233, 61, 58,151,209, 38, 26,199, 55,239, 30,113, 84,141,152,150, 5,139,171,117, 82, 88,232, - 72,152, 51,121, 68, 84,148,142,247,244,171,170, 37, 62,239,135, 30,174,213, 96,154,180, 95,216,189,199, 33,233,139, 2,242,140, -145,148,156,117,201, 53, 41, 56, 88,110,160,204,248,157, 7,175,113, 50, 63,192, 5,131, 50, 57,239,182, 93,124, 79,110,226, 30, -253,110,106, 11, 50, 94,155,225, 89, 27,140,117,124, 34,120,109,154,100,222,148,197,180, 58,147,131,119,136, 33,186,182,183,172, -149,228, 86,161,200, 8,252, 79,231,151,156, 91,159,248, 42,137, 45,237, 61, 66,103,124,235,176,226,160,172, 88, 7,104, 9, 92, - 57,203,127,191,216,240, 70,179,226,100,122,128, 30, 31, 35,139, 34,174,158,172,199,167,230,202,183, 53, 31,116,158, 54,203, 49, - 90,241,141,106,138,240,129,220,104,132,210, 88, 23, 48, 66,210, 17,184, 10, 6, 39, 21,178, 28,225,149,194,235,156,177, 16,100, - 38, 39,235, 58,126, 99, 90,240, 71,119,238,114, 32, 51, 58,123,205,255,245, 31,126,196, 7,155, 71,228,219,154,159,126,244, 14, - 31, 62,253,128,179,235,103,116,155, 11, 22,155, 5, 15, 55, 11,100,221, 97,156, 38, 56,143,176, 30, 89,104,204, 40, 67, 25,137, -206,115,148, 84,204,124,193,233,118,197,185,107, 57, 35, 48,207, 51,178, 76,241, 96, 58,226,126, 53,226,190,209,124, 43,207, 17, -185,100,237,122,220,249,134,211,126, 69,219,195,147,181,227,223,183,158,165, 8,145, 22, 51,157, 68, 45,183,202,193, 54, 81, 7, -207,231,152,189,120,183,123,223, 94,216,197,139,207, 42,236,131, 9, 23, 62,173,161,122, 66, 99,161,235,121,132,100,166, 32, 51, - 57,155,174,197, 57, 71,211,119,180,193,225,133,230,247, 38, 5,223, 59, 56, 97,150, 77, 56,172, 42, 84,158,161, 76,198,227,198, -114,177,181, 44, 90,203,233,118,133,235, 91,116,102,208, 50,163,154,140,241,190, 71,208,211,217,154, 95, 60, 60,229,236,236, 25, - 31, 61, 61,229,131,197, 5,151,171, 53,171,229, 18,164,224,245,170,160,238,123,198, 74, 49, 15,129,109,223,114,142,224,237,108, -196,101,191,229, 45,101, 88,249, 14,233, 28,109, 8,156, 59,199,129,243, 60,241,150, 15,150,253,142,235, 37,211,202,243,101,220, - 34,207,206,171,100,127, 98,255,204, 68,183,221,253, 78,219, 69,184,125,155, 36,157,182,219, 17,223,126,169, 41,253,133, 55, 42, -229,151,252,221,154,207,228,217,142,173, 43,197,110,103,103,210,158,177,200,192, 53,113,202,178, 54, 30,132, 50,193,121,106,216, - 75, 36,150,175, 74,127, 70,101,187, 67, 71,238,177, 10, 5,159,157,252,117,251, 24,249,205,251,132,203,237,110,170,200,210, 82, - 91,234, 61, 50,130,223,251,123,194,243, 58,105,239,119, 94,245, 95,244,230,140,138,184, 71, 31,149,140,166, 57,183,198, 99, 10, -163, 56, 26, 85,180,214, 82, 91,199,214,118,216,117, 29,247, 44, 41, 61, 44,248,128,107,211,110,211,246,137,161, 9,148,134,124, - 62,226, 31,189,118,143,215,239,189,133,145,146, 50,203,145,162, 67, 88,203,237,249, 45, 76,150,113,189, 93,242,108,241,140,203, -139, 11,184,184,188, 49,254,248,149, 52,104,131, 68,234,151,185, 49,235,122,183, 95, 54,217, 78,226,168, 72, 83,246,151,137,109, - 76,255, 35,242,157, 68,207,249, 8, 43,223,164,240,165,215, 91,148, 17,110,119,110, 71,208,188, 33,178,164,245, 80,144,100,153, - 33,215, 2,231, 2,153,145, 76, 75,131,150,144, 41, 25,169, 28, 46,114, 48,148, 84,104,163, 56,153,142, 24,229, 89,218,218, 4, -174,101,148, 32,222,232,141, 85,178,132,117, 3, 89,174,255,229,154, 44,253, 66, 28,227,205,126, 95,238, 8,133, 2, 92,150,211, - 21,134,149,216, 35, 68,182, 29,172, 59,232,106, 54,243, 41, 15,230, 7,244, 66,243,176,119,156, 94, 95,198,162,126,147, 54,184, -135,124,245, 54, 50,179,197, 96, 24,149, 44,102,125,186, 71,125,159,136,148,101,210,181,167,233, 71,233, 88,216,131,135,198,243, - 55,215, 43,254,116,181,225,188,141,230, 83, 34,211,145, 4, 38, 13,194, 11,132,107,232, 71, 5,179, 92,227,133,230,202,117, 60, - 10,150,139,160,248, 81,179,229,119, 21,148,147, 99,100,102, 16, 38,139, 33,122, 33,160,144, 76, 37, 84,219, 21, 63,110,122,114, -163, 56,214,138,121, 89,161,144,212, 93,135,134,104,182,162, 12,143, 28, 8, 83, 80,100, 5, 90,103, 84, 74, 50, 46,114, 68,239, -184,115, 56,229,247, 78, 38, 28,228, 25,101,166,249, 96,113,205,105,219,115,118,126,205, 95,124,244, 33, 63,189,124,198,207,207, - 46,249,248,234,138,179,229,138,203,118,203,217,234,138,109,232,184,232, 91, 46,154,104,246, 82,216, 64, 38, 21,102, 84,196, 61, -179, 3,183,233,232,154,150, 95,176,101, 33, 12, 22,201, 73,149, 83, 32,153, 20, 5,135,227, 18, 93, 26, 78,170,146,215, 76,206, -215, 53,136,179, 75,254,253,147, 15,249,171,237,138,235,205, 21, 2, 11,121, 92, 77, 48,169, 96, 62, 65,204,198,160, 50, 68,219, - 70, 15,246,207,146,142,125, 17,199,249, 37,223, 27,246,206,189,208,118,177, 72,217, 30, 54, 61, 79,172,103,172, 37,109,239,233, -131,163,238,123, 86,125,207, 33,142, 63, 56, 60,230,181,241,148,204,148,140,198, 37, 58,203,112, 82, 32,180,228,195, 77,207,143, -218, 53, 87,118,203,117,191,229,114,187, 38, 19,208,118, 91,156,237,104,251,142, 39,139, 39, 92,219, 14,154, 14, 33,210,106,162, -239, 99,242,157,209,124,212, 90,164, 12,220,149,130,165,235,201,181,225,208,182, 44,133, 98, 34, 21,215, 62,122,250,139,224,185, -114,142, 59,222,243, 39,215, 45, 7, 26,122, 47,169,109,226,100,249,180, 86,250,172,116,185, 97, 72,183,126,247,249,239,235, 99, - 88, 27, 14, 2,162,193,217,206,249,191,227,162, 62, 24,104,244,253,206,175,122,112,146, 51, 58,118, 51,131, 77,222,126,183, 36, -136, 95,211, 42, 65,248, 41,188,162,200,246, 44, 51,253,243, 82, 1, 62,163,168,251,152,228, 21,156,140,118,140,222,199,191,167, - 31, 86,254,233,224, 17,201,128,134, 61, 4, 96,136,105,117,169,200,191,202, 46,218, 20,145, 64, 85,149,200,137,225, 86, 85, 81, - 24,195, 56,203,144, 82,243,172,107, 88,118, 45,182,238, 99,195,162,146, 65, 65, 19,237, 94,177,125,212, 9, 7, 17,247,186,121, - 70, 62, 29,241,181,163,138,113, 14, 19, 51,195,152,156,109,215,240,244,226, 49,189,107, 88,219,154,166,107,120,178, 56,229,221, -199,143,225,226, 26, 86,215,188,154, 43,207,223,195,135,201,226,197, 31, 92,252,130,216, 67, 79,120,181,215, 61,220, 55,194,239, -252,152,179, 61, 61,119,232,119,169, 78,141,221,165,244, 14,193, 65, 38,221, 75, 74,147,103,134,224, 97,148, 9,148, 86,204, 74, - 69, 33, 5,133, 18,228, 82, 96,132, 68,163, 32,147,204,180, 74, 64,128, 96,219, 59,102,163, 2, 45, 53, 14,207,249,182,222,147, - 72, 14,205,159, 76,209,173,110, 87,244,190, 74, 97,191, 33,200, 13,230, 20, 47, 64,131, 3, 67,222, 19,195, 93, 70, 21,179, 92, -115,146, 25,142,140,100,172, 36,203,166,131,166,161, 21,138,119,140,230, 61,107, 57,181,233,217,124,124,158,164,129,233,240, 24, - 60,235,125,202,146,158,150,252,240,100,204,239,223,154,114,160, 37, 31,158, 47,146, 45,175,142,200,196,180, 74,242,181,180,186, -112,209,180, 67,164,160, 24,172, 71, 92, 47,111,210, 15,133,137, 49,203, 98, 92, 32,166, 99,126,231,193, 9,183, 71, 25,139,174, -231,137,116, 44,165,226, 39,189, 64, 74,141,210,134,255,251,163,143,249, 23,147, 17,249,193, 45,164,142, 18, 42, 57,174, 40,231, - 39,204,103,119, 56,174,123,178,245, 21, 63,115,150,131,204, 48, 86, 10,107, 91, 14,242, 2,107,123,122, 2, 63,175, 29, 62,139, -241,197,149,210, 76,181,230,246,184,160, 80,146,249,108,132,237, 61,211, 92,226, 67,224, 97,221,242,151, 23, 43, 30,175,175, 9, - 77,135, 23, 14, 47, 20, 30, 23, 21, 41,189, 99,213, 56, 86,235,150, 79,186,154, 62,212,124,236,106, 46,186,134,106,219, 50,237, - 37, 70,154,184, 98, 93,118,116,117, 67,107,107, 62,234,106,158,224,185, 16,146, 34, 8,166,153, 70, 74,137,202,115, 84,102,248, -218,236,128,223, 60,152,241,253,105,206,183, 11,205,237,109,224,240,226, 2,125,254,140,139,118,133, 16, 81, 94, 41, 66,218, 93, -171, 12,113,114,136,152,143,227,127,183,105,165,241, 18, 25,220, 23, 21,249, 87,106, 2, 6, 19,166, 85,195,169,243,180, 93, 79, - 16,129,117, 31,232,149, 64, 11,201,137, 54,124,109,122,200,253,249,156, 70, 40,116,174,104, 5,252,108,181,225,199,219,134,143, -124, 75,103,107,106,215,177,236, 90, 62, 90, 94,162,108, 71,223, 53, 92,110, 22,156,119, 75,182, 77,207, 15, 15, 11,254,245,173, - 25,111,143, 11,190, 89,230,252,141, 16, 8,169,112, 82,178,232, 35,154,154, 57,203,182,239, 88, 56, 88,244, 45,207,108,207,200, -246,156,123,207, 68, 4, 14, 2,252,162,105,185, 43, 61,255,174,129,237,118,203,161,128,186,237, 56,174, 12,219,198,239,101,125, -188,112,142,251,189, 28,145, 47,115,148,234, 87,248,126,163,227, 89, 52,248, 94,188,146, 65, 77,122,222,111, 38,245, 0,216,175, - 80,212,245, 47, 89, 27, 76,138,191,188,129, 29,251, 29, 12,127,227, 54, 23, 82,241,214, 59,118,122,110,146, 78,120,200,149, 78, - 50,180,129,128,244, 98, 17,255, 60,121,150,115,209, 65,104,112,230, 18,121,148,170,237,155,202,144,246,134, 93,251, 60,153,236, -203, 16,203, 70, 5, 84, 21, 84, 57, 24,137,201, 53, 85,158, 51, 54, 25, 66, 11,214,117,203, 85,211, 97,155, 54,178, 41,195,208, -121,185, 8, 1,119,137,205,158,155, 36,195,202, 65, 73,116,166,152,100,134, 60,211, 52,205,150,197,114,193, 71,103, 79,176,174, - 67, 8,184, 88,109,248,217,147, 71,156, 63, 57,133,203, 37,244,219, 29,145,236, 31, 82, 33, 47,146, 13,170,200, 98,177,205, 20, -200, 50,193,182, 73,219,248,101, 94,247,224,131,174,138,228, 95,160,118, 17,141,131,156,100, 40,242, 38, 21,212, 97, 15, 63, 50, -241,251,149, 64, 43,193,212, 8, 42,149, 33, 9,204,198, 25, 66,122, 74, 21,139, 91,145,201,184, 30, 39,185,134, 9,129, 73,178, -178, 69,219,210, 58,203,229,166,193, 5,145,146,221, 82,113,221,151,181, 25, 21,119,218,125, 98,206,251, 47,121, 74, 12, 67,250, - 16, 8,179, 31, 60, 47,146, 63, 4, 18, 38, 5,234, 96,134,204,115,238, 20,154, 91,198, 80, 74, 73, 22, 60,183,115,193,217,114, - 19, 97,248,241, 56,105,252,137,197, 60,132,104, 75,122,243,204,236,189, 70, 17,120,112,116,192, 15,142,167,204,202, 9,179, 66, -243, 23,103, 87, 73,254,169, 96, 52,142,133,125,248,126,151,184, 24, 38,143,217,226,164,233,189,109,210,212, 21, 37, 62, 98,154, - 67, 85,240, 71,119,142,248, 23,119,238,113,187, 40,120, 88,111,249,179,101,207, 83,149, 35, 70,211,104,189,106, 50,164,239,248, - 53, 60,135, 71,183, 35,187,186,202, 81,111,156,160,102, 19,244,108, 74,222, 86, 28,109, 55,124,188,120,204, 89,176,204,148, 2, -161,216,134, 8, 13, 95,245, 13, 31,136,140, 99,147,113,104,114,110, 27,197,173,169, 97,172, 21,147,145, 36,235, 99,227,116,186, -234,184,240,150,159,159,173,184,176, 61,171,224,113,117,139, 95,172,241, 70,224, 90,139,115, 30,111, 50,156,119, 56, 99,160,233, -121,124,118, 69,239, 44, 43,191,229,188, 89,112,220, 88,166,174, 32,116, 61,206,123,174,175,174,249, 15,235, 83,126,102,151,188, -211,247,108, 69,160, 35,250,140, 87,153,162, 9,146, 81,158,241, 86, 53,231,107,211, 3,166, 38,103, 20,122,198,202, 35,145, 28, - 1,191,209,116, 60,126,244, 9,117,223, 32, 66,159, 72,105, 50,106,193,205, 8, 49,159, 34,111, 31, 32,110,159, 32,242, 2,177, -181, 81, 93,241,183, 49, 53,186, 14,177,217,208,110, 91, 86, 1,186,190,231,245,195, 3,102,229,132, 34,203,152, 8,137, 81, 5, -211, 44, 99, 35, 5, 15, 59,199, 47, 22, 91,254,207,237, 50, 78,200, 46,113,165, 68, 68, 1, 47,186, 45,143,234,107, 22,237,150, -117,211,243, 95, 77,114,254,205,241, 9, 83,173,249,222,108,134, 54,130,183, 10,205,143, 18,114,107,149,228, 72, 8, 86, 62,240, -115, 39,200, 51,248,155, 62,240,166,129,255,181,238,248,154,150, 60,222, 52,212, 34,208, 4,207,143,106,201,131,208,114, 97,161, -181, 29, 65, 72,182,109, 66,129, 91,183, 83, 63, 13, 31,135, 71, 95, 29,233, 52,137, 99,163, 85, 60,203, 67,170,131, 82,237,210, - 42, 7, 39,166, 48,196, 72,191, 66, 97,247,251,187,126,110, 24,246, 95,190,168,255,178,117, 65,136,120, 99,221, 68,170,166, 44, -219,174,223, 65,134,131, 25,205, 0,209,107, 21, 29,187,240, 48,158,196, 31, 90,165, 20, 53, 45, 94, 14,151,124, 17, 27,125,112, -230,146, 69,220,175,155, 12,138, 73, 98, 60,219,228,231,237,191,154,169,205,208,217,141, 39, 41,119, 59, 67,149, 57, 85,110,152, -103, 10, 39, 5,181,237,184,236, 61,155, 62,237,208,131, 72, 38, 61, 97, 47, 32, 36, 57, 16, 9,181, 75,169,147, 18,101, 36,117, - 90,161, 62,221,108,121,178, 88,211,134,142,141,119,180,189,227,162,174,227,106, 97,211, 0, 77,252,153,134, 80, 16,249, 15,164, -160, 35,163, 5,169,201,147,189, 97, 30,155,171, 76, 39, 50, 86, 10,180, 20, 98, 87, 8, 63,107, 98, 29, 86, 32, 67, 81, 23, 9, -105,177,195, 74, 38, 69,166,234,108, 71,200, 28,248, 17,163,226, 70,179,158, 87, 37,149, 80, 24, 33,152,101,134, 34, 23,140,141, - 70, 4, 73, 38, 21,222,123,170, 60, 26,217,152, 92, 33,131, 32,168,168, 92,240, 1,148, 81,100, 82,210, 7,232,156,199, 6, 65, -112, 97,183, 30, 24, 26, 77, 23,146, 46,214,196,123,173,183, 95,146, 67,176,231, 13, 45,249,244,158, 79,229,241,192, 40, 21, 84, - 35, 66, 89,112, 52,173,184,103, 12,218, 24, 60, 1,237, 61,222,247,156,158,111, 19, 19,215,193,209, 60,217,146,230,113,237,181, -237, 35, 95, 98,136,118, 29, 8,168,189,165, 25, 85,188,117, 52,161,247,158, 31,181, 29, 79,174,234,221,154, 72,164,103, 75,101, -187, 21,131,210,201,140, 39,174, 70, 68,155, 52,191,195,164,215,244,241, 62, 40, 11,254,229,193, 1, 95, 31, 31,161,148,226,147, -190,230, 35, 15, 98, 84, 33, 85,129, 52, 5, 82,231,104, 37,184,190,124,204,119,231,119,200,231, 7,136, 89,137,190, 51, 71,142, - 11,164, 86,132,141, 32,172,107, 22, 31,125,192,143, 62,126,138,159,103, 92,180,107, 78,219, 26, 73,224,189,117, 77,208,134, 7, -197,152,183, 75,197,241,184, 34, 83,146,185,150,204, 51, 77, 37, 2, 66, 41, 58, 33,184,218, 88,150, 77, 67,221,173, 89, 35,176, - 56,124,223,227, 67,192,245, 29,190,119,120,215,227, 16,184,186,165, 55, 10,223,122, 54,182,101, 81, 59,234,122,205,249,226,140, -187,190,227,250,252, 25,205,114,197,159, 62,121,135, 15,234,107, 62, 14, 61,143, 76,143, 76, 50, 0, 0, 32, 0, 73, 68, 65, 84, -155,134,218, 90, 26, 4,235,222, 82,251,104,146,243,160,154,241,102, 62,138,118,210, 58,167, 40,199,180,161,167,243, 30,107, 61, - 51,169,249, 78, 94,240,181,166,229,241,197, 21,205,197, 85,108, 54,181, 70, 74,133,204, 52,223, 63,126,141, 63,254,250,183,248, - 71,247, 95,227,221, 82,209,173, 27, 68,223,125,234, 94,251, 34, 72,254,149,190, 94,100,241, 44,213,130,108, 50,225,222,120, 28, - 9,113, 65,176,240,158,167, 93,207, 19, 39,121,212, 58, 30,182, 13, 63, 95,111,216,180, 53, 77,183, 33,224, 9, 46,229, 37,144, - 16, 74,162,197,237, 55,164,226, 15,230, 21,153, 80,220, 46, 74,206,173,101,154,130,160,206,123,203,185,117,144, 41,206,146, 10, -226, 66,106, 62,233, 44,111, 75,201,169,131, 55, 71,154,247, 26,207, 86, 41, 36,142,191,108, 60, 95, 83, 45, 63,179, 34, 26,130, -230,121,170, 41, 68, 18,242,128,122,237,243, 93,190, 74, 65,215, 58, 13, 13, 41,113,116,144, 65,103, 50, 62,251, 62, 37, 88, 34, -158, 71,218,204, 32,151,118,175, 86,143, 95, 24, 52,255,238, 3, 93,188,223, 73,194, 66,216, 77,234, 69,182,139,230, 28, 76,105, -186,126, 7,139,226, 33, 43,200,191,251, 13,220,227,179, 68, 98,210,187,139,255,156,243,194, 75,226, 86,243,189,110,201,185,248, -251,162,132,147, 91,112, 56,143,147,138, 52,137, 16, 84,199,107,220,181, 95,173,152,155, 34, 18, 87,164,128, 89,201,120, 82, 50, - 47,115,166, 69, 78,227, 29,181,181, 44, 26, 71,240, 30,231, 3,247, 38,115,142,171, 41, 85,145,177, 90,109, 19,180, 63, 24,155, -168,184,227,237,125,188, 30,171, 45,110, 83,211, 93, 92,113,121, 85,179,172, 61,155,214,179,234, 45,155,174, 99,179,168, 9,139, - 77,116, 87,179,118,183,251, 25,200, 98, 90,126,154, 36,248,119,249,161,117, 44,224,183, 15, 98,225, 24,101, 73, 9,145,197,188, -100,146, 85,176, 78, 69, 68,137, 88,171,246, 39,140,125, 66,221, 13,209, 81,238, 32, 26, 37, 35, 3, 94,201,231,227, 94,109, 31, -239, 23,165, 35, 68, 63, 41, 35, 41,210,196,251, 34, 87, 80, 8,193, 72, 11, 10,169, 16, 72,164, 1, 35, 4, 82, 6, 74,173,105, -123,135,201, 52,190,115,168, 36, 81,243, 82,160, 84, 76,224,242, 82,210,135,128,208, 18,239, 60, 78, 14,106,143,164,224,112,169, - 73, 29,148, 27, 54,145,249,190,140,114,128,189, 7, 89,238,187, 77,165, 48, 22,173, 82,228,105,234,250,143,102, 88,109,184, 85, - 86,108,108, 71,166, 50,218,174,197,245, 13,207,158, 94,237,200,130,243, 49, 76,102, 72,109, 56, 24, 31,224, 71, 18,247,228, 42, - 77, 79,207,203, 54, 93,231,248,169,210,252, 24,120,124,189,141, 77,196,166,143,239,211,176,179, 15, 41,123, 26, 25, 93,247, 6, -189,110,235,161,173,119,240,174,247, 17,146,239, 44, 34,207,121,163,148,100, 66,240,193,230,154,127,119, 93,179,238,124,116,198, -203, 43,100, 94, 48,214, 6,213, 91,214,222, 17, 78, 63,230,141,163,123,232,170, 66, 77, 11,132,212,208, 4,252,217,138,190,217, - 34, 89,179, 89, 44,120,239,195,143, 56,111,225,162,233,249,100,187,165,147, 25,111,143, 38,124,163,200, 56, 40, 10,102,153,225, - 65,153, 49, 85,146, 3,173, 8, 33, 48, 22, 30, 39, 52, 70, 40, 54,155,150, 92,105, 78,235, 45,214,117,120, 3,110,211, 19,121, -247, 30,103, 61,126, 84, 68, 42,199,182,193,141,115,124,221, 99,183, 13, 75, 47,120,239,252,154,255,120,125,198, 95, 60,123,204, -255,242,232, 93,254,183,203, 51,174, 22, 75,254,250,252,154, 46, 4, 92,112,244,125,139,196,177,114, 61,214, 11,110, 21, 5, 35, -165, 56, 25, 79,145, 70,179,105,182, 92,120,199, 51,223,163, 20, 76,180,164, 84, 49,221,241,205,210,128,183,156, 61,185, 70,174, -174,145,190, 71,230, 21,255,197,235,175,115, 56, 42, 25,141, 43,100,200,249, 96, 44,226,250,164,233, 62,117, 6,136, 47, 59,159, -189, 4,133, 21, 89, 9, 65,114,124, 50,227,164,154,224,124,207,117,189,197,121,207, 82,104, 86, 93, 71,237, 61,109,211,145, 11, - 71,238, 59,166,206,146,117, 13,206, 57,122,219,198, 60,247,172,140,110,185,121,201,127, 61, 53,204,165,225, 56,207,232, 8,104, - 25,115, 50,158,245, 61,189,128,119,135,245,168, 84,172,165, 97,162, 5,121,150,243,137,139,170,162,159,119,158,219, 2, 30,201, -168,205,191,165, 4,239, 53, 46,122, 59, 25, 21,125, 27,180,138, 3,147, 50,177,148, 88,251,197,210,211, 87, 65, 14,227,133,217, -173, 6,229,128, 6,171,136, 14,187,132, 54, 27,177,243, 72, 81,233, 28,251,138, 36,218,191,191,148,182, 1,106,239, 83,164,164, -139,123, 54,114,179,211,182,231,217, 46,208,165,143,135,131, 59, 77,134, 23, 82,239, 18,169,134, 3,231,166, 99,121, 9,228,175, -211,244, 34, 83,145, 68,192,252, 0,198, 99,242, 60,131, 32, 41,171,130, 94,153, 40, 73,112,221,151,152,156, 82, 71,150,207, 98, -193, 44,243,248,127, 87, 57, 89, 89,112, 56, 42, 40,140,198,135,192,178,181,180,206,211,133, 64,219, 57, 78, 70, 83,190,117,235, - 77,198,229,152,178, 24,241,116,121, 29,117,234,150,157, 67, 92,211, 69, 45,119,183,138,145,140, 77,157, 92,141,250,104, 84,177, -220,192, 98, 5,139, 13,212,203,248,117,231,184, 73,244, 81, 58, 78,109,194,192,237,187, 80, 86, 80,142, 99,196,230,175, 66, 86, -245,170, 31,163, 34,134, 52,140,203, 84,216,228,141, 47,178, 44, 13, 50,203,152,140, 39,160, 13,213,164,138, 6, 55,101,138,255, -196,237, 30, 48,249, 5,112,131, 74,130, 89,225,192, 75,254,248,191,253,111,248,233, 95,255,100, 87,228, 85, 98,164,155,161, 57, -136, 80,186,144,130,145,210,140,165,196, 2,213, 72, 35, 67,192, 40, 73, 46, 37,109,112, 20,128,179, 30,105, 20,193,122,186,212, - 76,104, 1,157, 23,216, 4,173,123, 27,112, 33,224,186, 62,113, 61,220,206,218,120,240,211,239,146, 20,198,219, 87,116,243,251, -140,189,154,220,235,216,139,193,239, 94, 70, 43, 88,109, 96, 86,226,178, 28,111, 59, 70, 89, 22,109,228,251,158, 95, 60, 93,224, - 86,235,157, 29,229,108,194,241,209, 29,126, 48,154,241,102, 89,113, 71,103,124,216,111,163,167,255,139,230, 74,125, 7,171, 13, -193,228, 73,127,158,216,239,109, 23,167, 29,155,242,159, 93,106,146,131,220, 73, 69,229,243,105, 94, 55, 76,237,182,133,205,154, -159,173, 59, 30, 55,107,254,244,244,154,205, 98,139,204, 4, 50,207,145, 66,115,171,156,113,172, 51,126,247,238,156,223, 58,156, -227,141,160, 91, 47, 57, 25, 31,147, 85, 5,210, 9, 88,182,184,103,107, 92,187, 65, 72, 40,180,229,231, 79,158, 33, 55,107,212, -122,131,106, 98, 80,201,239,142, 21,247, 70,209, 36,102,174, 21, 69,145, 49,213, 26,129,224,200, 7, 42, 41, 57,145,129,179,214, - 33,133,100,107, 45, 65, 42,150,193, 18,250, 30, 95, 42,124,231,241, 62,224,165,192,119, 93,220, 52, 8, 25,101,207, 4, 92, 89, - 96, 23,107, 92,153,243,172,117, 60,106,214,156,250,140,237,234,154,179,174,198,173,174,113, 87, 43,220,178, 38, 56, 75,179,173, -209, 66,240,168,107,120,175,109, 56, 24, 79,144,214, 83, 24,205,199,125,195,135,125,205,181,181,228, 4,250, 16, 24,105, 77,165, - 53,185,145, 28, 20, 57,127,185,234, 41,230, 37, 97,185, 66,110,214, 28,102,142, 91,163, 9, 79,219,150,255,125,181,162,245,125, - 60, 87,134,128,158,174,127,174, 89,251,114,133,125,224,163, 68,126,148, 72, 86,204, 98, 60,227,245,147,219,168, 76, 81,183,129, -214,117,252,226,236,146,186,171, 25,101,134, 82, 43,170, 82, 96,132,103, 28, 60,198, 91,180,237,113,157, 37, 3, 70, 82,242,235, -211, 59,124, 99,118,135,163,124,194,194,215,124, 87, 41, 14,146,143, 64,103,123,164,210,156, 89,203, 7,125,195,199, 54,173,218, -146,107,100,155,146,213,144,154, 45,128, 52, 92, 74,193, 88,101, 72, 15, 39, 25, 28,101,146,105, 16,212, 33,208,137, 52,236,104, - 25, 99,138,139, 60,146, 65, 67, 26,170, 36, 95, 94, 38,173, 19,183, 68, 38,164,209,166,104,111,153,226,142,109,155,134, 72, 31, - 11,122,159,140,207, 20, 73,250,249,213, 77,105,254,254,138,186,247,169, 59, 74,236, 40,155, 32,187,166,221, 65,227, 42,105,121, -187, 62,254,190, 27,152,234, 38, 14,248, 34,153,208,124,145,231,186,202,162, 43,157, 76,176,189,148, 49,174,179, 26, 51,158, 76, - 80, 66, 68, 98,187,144,244, 93, 36,210,209,109,119,100,190,207,205, 70, 47,160,156,192,228, 16, 38, 35,168,178, 24,242, 82, 40, -212,164,100,154, 23,148,153,198, 0,173,243,108,172,101,211, 58,130, 7, 45, 36,111,222,186,205, 65,121, 64, 16,158, 76,148, 20, - 35,195,249,249, 51,168,109, 12,221, 88,175,162,165,103,179,217,101,146,223,236, 42,135,156,242, 46, 53, 69,221,243,185,229,153, -132,241, 60,238,244, 71, 51,152, 78,201,167, 19,142,143,167,168,170,164, 93,182,159,110, 94,190,200,159,252,151,153,208,243, 60, -198, 18, 86,201, 85,172,139,193, 21,163,162,226,193,244,136,131, 98, 68, 97, 50,238, 29,206, 41,116, 70,166,224,168,170,152, 29, -207,184,214, 89,114, 32, 84,187,125,151,144, 59,171,219,155,128,151,189, 53,143,136, 69,239,205, 95,123,139,119,127,250,110, 44, - 76, 25,187,251,174, 40,192, 8, 84,145,131,243,100, 70, 83, 9,129,201, 36,163, 76, 98, 59, 79,153, 75,114,169,176,193,199, 6, -218, 7, 58,231,110,248,152, 58,196, 52, 55,155,130,225,250,129, 6,160, 32,184, 64, 47, 6,131,138,189,247, 76, 16,165,137,131, -223,130, 79,141,237, 87,153, 10, 60, 59, 25,219,240,222,137,236, 38, 90, 1,147, 39,121, 30,108, 36, 60,107,123, 78,157,231,252, -122,141,187, 88, 66,187,217, 53, 4,243, 3,222,158, 79, 57,153, 28, 19,164, 32, 40,197, 51,187,166,123,250, 44,193,146,124,122, -197, 37,116, 52,173, 25,220,227,116,242,194,247,105,213, 35, 18,169,212,165,226,225,236,115,235, 50,241, 34, 89,167,183,136,186, -101,177,216, 32,234,109, 36,122,213, 29,178,208,136,106,202, 27,213,152,183,198, 83,190,121,123,206, 72,102, 8, 41,121,120,241, -148,215, 68,193,116,126,136, 12, 2,225,136,102, 54,189, 5, 28, 69,158, 49,234, 26, 30, 45,151, 40, 28,186,239, 57,108, 91,126, -111, 54,166,202, 75,230, 89,206,184, 26, 83, 6, 65,102, 84,140,155,144,146,204, 57, 60, 48,149, 1,145, 41, 58, 47,185,180,142, -165,235,241, 93,139,215, 2,159,231,209, 87,100, 93,227,235, 26, 47, 13,222,123,188,137, 17,170,118, 91,227,133,192,106,133,173, - 59,156,151,216,102,131,203, 74, 44,209,130,216,105,133,183, 53,190,238,240,109, 67,179,218, 16,172,165,182, 29, 63,106, 59, 90, -229,120,191, 89,241,212, 57, 62,105, 86, 52,109,139, 12,158,194,121, 2,129,128,100, 36, 53,179, 81,198,215,143,198, 28,205, 70, -152,217,152, 67, 35,248,232,233, 37,255,199,135, 31,240,227,235, 11, 58, 2,116, 53,132,144,124, 21, 52,204,166, 80,141,119, 65, - 50, 47,201, 68,255, 92,201,137, 76,220, 23, 33,163, 11, 93, 62, 97,246,250, 61, 42,157,209,117, 22, 31,224,253,211, 75,220,217, - 37, 27,107,153,151, 57,153, 9,228, 65,160, 68,160,179, 13,153, 48, 4, 39, 48, 2,164,109,185, 87, 30,112,247,228,132, 91, 71, - 71, 84,227, 10,143,228,190,173,201,131,231,150,206,241, 34,176,177,158,143,186,134, 63,105, 58, 26,203,142,151, 53, 88, 54, 75, -147,200, 28,233,107, 42, 99, 46,224,150, 81,108,133,100, 46, 37, 70, 57, 30, 59,143, 67,236, 56, 56, 58,249,149, 20, 89, 58,175, -198,241,243,112,222,192,171, 69,122, 15, 89, 38, 74,239, 88,242,122, 40,232,253,206, 77,110, 56,182, 68,114, 86,181,110,119,142, -253, 39, 87,212, 53,187, 60,117,233, 19,204,206,206,119, 93,138, 88,172,141,222,189, 89, 67,122, 91, 63,236, 72,147, 25,205, 23, -253,240,153, 78,157,156,220, 29,248, 33,218,209,118,218,160,165,140,171, 87,136, 69,253,242,108,119,161,141,138,175,161,156,197, -155, 63,159,196, 55,218,140, 34, 9,206,148, 49,140, 32, 31,204,111, 64, 86,154, 44,207,152,100, 25,179, 34, 71, 32,105,130,103, -213,218,104,239,234, 2,153, 82, 76,243,146, 91,147, 3, 74, 93, 96, 84,116, 85,250,217,211,199,180, 23,151,208, 92, 67,179,141, -230, 5,254, 43, 66, 64, 1, 56,152,243,221,111,189,193,111,127,243, 91, 60,184,119,151,163,241,156,197,122, 65,231, 61,221,182, - 1,215, 62, 63, 37, 14,159,141,254,236, 98,175,247,138,200,103,237,130,181,222, 53, 69, 38, 93,255,188,138, 83,170, 33,101,163, - 11,212,184,226,193,236,144,147,195, 35, 10, 97,200,139,140,145, 46,153,143, 43, 74,149,227,129,163,209,156,105, 89,114,149, 27, -130,209, 96,101,124,221, 58, 49,201,213,222,231,129,212, 53, 32, 60, 78,239, 10,122,178,130,141,146,172,212,157,103,134,224, 3, - 89,110,200, 4, 28,154,248, 62, 26,169, 41,115, 77, 38,226, 4,160,124,156,174, 91, 27,144, 74,226, 3,132, 16, 15,132, 46, 4, -180, 16,120, 47,216, 88, 31,141,130,172,195, 1, 97,184, 63,247, 47,145, 75,123,116, 33, 98,177,147, 42, 58,175,233, 60, 37, 21, -166,107,215,191, 42,243,255, 5, 39,185, 60,189, 39,131,138,163,172,226,212, 62, 16,113,154, 46, 69,233, 94,220,184,228,197,247, - 44,163, 60, 60, 38,207, 53, 66, 42,158,244, 29,143,186, 6, 22,203,157,201,204,167,254,109, 27,159,221,241, 40, 30, 88,101, 14, -163, 81,252, 25,235,102,215, 96,246,126,231,233,176,127,191,140,138, 88,124,115, 29,179,198,141,134,174, 67, 24,137,176, 18, 97, -123,164,237, 17, 69,198,236,232,132,111, 87,115,238, 28, 78,184, 59,174,200,181,102, 99, 37,239, 94,110, 24,117,107,238,201, 25, -249,180,138,242, 56,173, 17, 70, 35, 45, 4,223,161, 74,205, 97,145,115,213, 58,148, 30,241,186, 86, 28, 43,205,131, 81,206,116, -116,128,113,129, 96, 52,153,137,232,140, 86,138,208, 90, 84, 8,100, 2,150,109,207, 88,195,242,242, 26, 45, 37,215,118, 75,176, -129, 96, 12,161, 80,241,179, 86,132,229, 18,143,199, 11,112,157,197,139, 46,154,219,180, 53, 14,137,203, 13,206,111,177, 50,224, -235, 30,103, 52,174,183,120,173,163,241,181,237, 9, 93, 11,155, 13, 97,209,224,183, 91,222,239, 90,222,111, 90,182, 77, 77,211, - 55, 92,217,158,171,174, 67,116,142,210,193, 72, 65, 31, 36, 69,145, 51, 27, 85,156,100, 5,255,180, 40,249,225,120,202, 31, 77, - 43,190,101, 36,127,246,209, 83,248,248,147,120,166,218, 46, 58,115, 42, 73, 80, 10,202,156, 80,230,145, 3, 84, 85,241,136,252, -162, 65,201,177,139,243,101,224,189,196,226,222,143,199, 28,142, 70,212,190, 67, 11,197,229, 98, 65,184, 62,135, 62,112,182,221, -114,221,213, 28, 87, 5, 66, 11, 90,103,209,197,148, 50,159, 80, 22, 99,186,190,166, 26,229,220, 57,188, 75, 86, 20, 84,121, 78, - 91, 55,124,240,236, 35, 10,231,184,182, 29,231,193,241,179,122,205,255,120,121,205,181,101,135,116,145,194,189,134,194, 41,101, -180,218,245,150, 99,173, 25, 57, 79,174, 4,218, 57,158,246,158,177,210, 44, 8,116, 66, 38, 84, 56,173,174, 84,250,149,153,136, - 28,139,200, 77, 33, 75, 60,145,160, 62, 63,101,109,224,159, 8, 19,139,118,174,118,158, 39,221,158, 91,105, 72,197,223,250,248, -189, 67,227, 43,253,243,222, 40,255,233, 76,234,123,135,145, 74,123,243, 65, 78, 35,213,142, 44,231, 67, 34, 0, 37,150,160,243, -113, 15,111, 63,195, 23,251,165,203, 31,153, 46, 96, 58,216, 91,191,235, 46,149, 68, 72, 77,231, 2,157,245, 49,144,196,182, 32, - 29,144, 69,189,109,150,222,208, 81,154,122,134,130,231,146,207,183,147,113, 58, 23,160, 42,205, 97, 81, 50, 45, 53,243,124,132, - 18,146,166, 79,146,151,174, 37,184,192,184, 42, 57,172, 70,220, 26, 79,177,194,209,122,207,162, 93,178,236, 58, 30,126,242, 9, - 92, 60,221, 33, 22,191, 20, 33, 77,195,124,198, 15,222,254, 38,147,241, 17,213,104,130,181,142,171,237,130,203,245,150,176, 92, -165,195,218,238, 92,201,148,222,153,250,200, 4,221,203,180, 23, 29,138,244,240,119, 15, 68,198,151, 21,253,161,192, 14,251,236, - 32,227,245, 55, 89,130,207, 5, 20, 57,111,204,143,184, 55,191,131, 49,154,178, 28, 49, 45, 43,138, 60, 71, 11,141,115,150, 82, - 27,148, 82, 20, 38,122,128, 95, 6,159, 10,187,136,235,131,225, 94,218,151,117,236,123, 33,200,100, 63, 60, 52,115, 25,137,161, -157,165,159, 19, 40, 13, 42, 8, 70,185, 34,120,152, 24, 77,174, 20, 74,199, 61,151,240, 30,151,248, 15, 89,166,232,131,139,155, - 28,163,113, 93,135,144,146, 39,109,135,144,129, 32,163, 89, 72,112, 68,231,174, 65, 51,111, 7,162,156, 75,235,162, 16,211, 6, -179, 50, 62,204, 69, 17,145,167, 44, 69, 52,218, 62,113, 41,190, 66, 67,215,219, 61,217,103,106, 56, 51, 19, 11,184, 72, 94,238, -219,228, 40,183,255,247,219,142,107, 37,249,216, 40, 62, 64,240,172,107,227,186,103,187,141,190,210,242, 37,171, 45,151,126,198, - 44,135,249,148,127,125,247, 22, 63,124,237, 62,111, 31,148,252,244,244,122,183,183,149, 47,172, 97,134,213, 71, 48, 8,215, 37, -244, 36, 53,102, 82, 34, 66, 76,179, 18, 89,156,198,133, 0,155,231,252,227, 55, 30,240,181,201,132, 89,145,163,117,206,170,246, - 60, 91,111,121,218, 94,240,166,131,113, 49, 69,149, 25, 98,108, 34, 19, 92, 41,168, 91, 68,150, 83,150, 37, 7,193,147, 59, 71, -231,224,181, 34,227, 78, 53, 6,219, 98, 76, 65, 81,142,144, 66,164,158,223,199,219,135,104,223, 92, 73, 73,189,217,160, 50,193, -220, 91, 62, 58,123, 18, 45,101,181,230,143,238,221,227, 15,223,120,157, 7, 99,201, 79,214,155,184, 81,169,107,188,118,248, 98, -130,183, 46, 26,219, 40,133,171,175,241, 50,199,203, 16,247,240,133,137, 83,191,210, 81,205, 89,119, 17, 37,169,211,206,187, 94, -195,179,115,186,171, 43,206,206, 47,121,124,213,114,209,116, 60,220,246,116,117,131,106, 45,165, 23,204,114, 67,150,107, 58,109, -120, 93,231, 60,168,102, 28,155,156,153, 41, 57, 86,146,219, 35,205, 70,122,158,157, 93, 18, 46, 46,161,237,163,247,187, 82, 4, - 29,215, 96,255,242,254, 33,255,230,237,183,248,237,251,119,185, 30,107, 46, 46, 54,159, 57, 80,132,193,111, 33, 68,200, 88, 12, -209,201, 10,130, 13, 48, 45,233, 59,207,147,237,134,240,232, 20,182, 27,130,107,160,110,169, 55, 53,239,182, 27,182,237, 6, 65, - 78, 89, 76,201,203,130,239,255,103,191, 77,119,213,177,109,215,140,139, 17,147,241,136,104,118,211,240, 63,191,255, 49, 15,151, - 11,254,135,139, 21, 23,174,231,255,185, 90,179,242, 18,234,150, 16,246, 76,194,144,241,252, 86,106, 71, 74,149, 26,227, 45, 40, - 69,238, 44, 37,224,165, 96,101, 29, 39, 90,243,108, 95,243, 61,144,181,135,198, 90, 36,165,204,192,201, 26,220, 34,209,207,171, - 89, 94, 60,119, 7, 95, 10,210, 26, 74,232,157, 91,169, 72,191,119, 93, 66,209, 84,140,103, 30,206,168, 97,178,247, 95, 77,109, -246,247, 56,169,239, 77,123, 3,220, 48,132,179,236,231,108, 15, 18, 29,216, 57,207,245, 95,114, 15,236, 93,108, 28,220, 30, 34, - 19, 18, 57,194, 69, 6,107,232,109,148,127,117,219,216, 45,149, 85,156,192,139,180, 55, 82,123,241,172,106,111,151, 84,119,113, -242, 12, 1,114,195,164, 42,152,151,134, 42,207, 80, 66,208, 58,199,182,243,172,251, 14, 31, 2,101,161, 57, 46, 42,110, 85, 51, -124,144, 52,109, 75,227,122,222,127,250,140,167,167,167,112,250,209,115,145,150,191,212,135,115,160,114, 30,188,113,151,131,217, - 1, 66,106,126,126,250,144,247, 63,252,152,112,113,149,194, 59,250, 29,113,113, 56,121,179,100,113,234, 19, 19, 83,165,184,209, -144,236,120,117, 90,139,104,181,139,111, 29,246,114,131, 93,175, 16, 59,146, 26, 41,176,167, 79,172,239, 16, 29,221,100, 49,225, -215,110, 63, 96, 54,157,227,172,167,202, 71,113,208,212, 57, 65,192,168, 24, 97,125,195,192, 53,179, 4, 38, 82,131, 49,212, 62, - 68, 46,129,144,187,172,251,253,162,126, 19,231,187,231,188,164,108, 36, 9,169, 68,162,211, 38,189,214,104,115, 25,130,224, 32, - 55,104, 33,137, 52, 57,133, 49,209, 4,182,119,158, 66, 74,214,182,103,164, 84,220,250,180,129, 32, 20,215,193, 49, 82,134,174, -119,180,206,227,156,223,109, 2, 68, 72, 80,187,143,197,251, 38, 13, 47,220, 20, 82,178, 50, 93,163, 33,162, 80,236,188,185,191, -234,174,221, 37, 61,121, 85,221, 4,204, 40, 33, 8,214,198,181, 71,215, 70, 85, 68,232,118,135,134,115,209,110,116, 54, 74,168, - 88,106,236,154, 13, 44, 18,121,244,101, 54,204,109, 7,227,138,239,222, 58,225, 55,230,199,228, 58,195,122,207, 95, 53, 93,140, -173,124,241,245, 15, 68, 58,169,226,243,110, 70, 8, 21, 27,177,184, 5, 19, 49,134, 83,104,132, 14,136,206, 34,189, 64, 22,134, -127,118,235,117,222, 62, 58, 96,108, 50, 10, 29, 21, 8, 93,219,241,254,122, 67,103,151, 76, 54, 45,147,233, 28, 89, 40,196, 40, - 35,132,128,174,166,136,117,131,197,115, 48,157, 51, 55,134, 81, 7, 77,211,144,107,184, 61, 61, 68, 21, 35,100,211, 96,133, 38, - 83,154, 97,107,226,124,192, 53, 29, 78, 10,154,224,169, 28, 52,219,107,142,139,140, 79, 46, 47,169, 70, 35,254,249,157, 59,220, -170,166, 28, 77, 14,120,239,250,156,235,197,150,224, 44, 65, 23,248,237,134,160, 52, 94, 42,124,179,197,103, 21,222,246,201,183, - 41,158, 9,222,148,132,174,142, 22, 25, 10, 66,211,237, 22, 73,114, 47,140,165,237, 8,219, 13,246,122,133,109, 26,158,181, 45, - 63,239, 45,211,206,113,175, 48,116, 82, 50, 54,154,187,197,152, 82, 42,164, 50,209,152, 74,105, 70, 82,225,133,231, 32, 83,124, - 40, 51,124, 93,195,197, 34, 54,158, 46, 66,207,191,127,231, 54, 35,149,161,180,230, 82, 6, 30, 9,133,144, 89,124,102,247,138, -251,254,107,187, 81, 8, 13,235, 20,231, 0, 75,189,117,212, 93, 77,120,252, 20, 54, 87, 73,177, 33, 8,222, 18,218, 6, 46, 87, - 44,150, 91, 86, 70,115,255,240, 46,199, 71,183,217, 44, 90,180, 84,120,235,169,155,117,220, 32,217,152, 97,174,109,205, 95,127, -252, 24,209,247,156,173,106,186, 62, 16,218, 62, 61,251, 50,166, 39,186, 16, 27, 86, 31, 24,133, 64,111,147,113,151,130,214, 11, -238,139, 64, 19, 44, 2,129, 12,158, 18,193, 59,109,159, 12,162,194,243,110,150,195, 90, 88, 38,191, 11, 73, 60, 47,164,136, 8, -177, 54,177, 81,150, 73,189,181,255,156,106,149,228,214,123,110,143, 67,178,164,222,243,144,207,179,157, 90,164,103, 55, 0,188, -152,202,166,247,200,241,255, 32,139,250, 0,203, 74,177,183, 79,127,129,228,246,156, 30,156,231, 33, 59,225,190,154,172, 78,164, -176, 15,225,119,178,157, 44,103,252,230,109,166, 7, 83,182, 62,193,132,235,117,124, 19,143,102, 59, 67, 0,111, 35,124,152, 98, - 77, 81, 42,254,121, 68,252,222,129, 41, 89, 26,230,121,134, 49, 2, 35, 21,181,179, 92,215,150,117,103,233,189,197, 40,197,113, - 49, 98, 82, 20, 24,169,113,210,209,116,142, 39,171, 21,205,229, 51, 56, 61,143,211,211, 87,105,142, 62, 11, 38,111,106,222, 15, - 61,231,215,151,252,228,147,143,121,248,240, 9, 60,252, 56, 89,187,238, 77,217, 67,243,148,169, 4,249,239, 41, 11,148,220,145, -204,110,130,116, 84,114,250,147,207, 75, 10,135, 78,119,127, 74, 31, 60,215,117, 74,217,179, 22,188,228, 27,111,189, 77, 89,142, - 80, 82,146, 43, 3, 82, 81,230, 5,214, 89,140, 48,116,206,161,165, 64, 43, 67,221,182,232, 44,163,183,150, 46,120, 54,117,187, - 51, 37, 26, 86, 0, 54,253, 27,195,191, 61, 76,234, 50, 33, 5, 89,186,223,196,160,137,151, 55,118,177, 90, 43,166,185,142,211, -184, 81,100, 82,161,148,196, 7, 71,231, 2, 90, 10,214,214,145, 35, 8, 50, 58, 81, 5,231,227,218,204, 67, 43, 60, 78,106, 90, -107,227,228, 32, 18, 44,121, 3,191, 39,247,186, 64, 44,170, 67, 81, 23,106,119, 40,220, 60,197,233, 48,233,136, 81,192, 95, 37, -168, 72,107,152,205, 34,113,174,202,121, 80, 26, 50,231,152, 27,133,241,150,186,243, 49, 97,234, 83,114, 80, 31,215, 76,213, 56, - 18, 3, 6, 23,188,245,122,167, 6,121, 89, 34, 97,219,113,124, 50,227,184, 28,209,120,203, 39,182,227,195,118, 11, 77,178,146, - 29,190, 63,207,246,158,253, 4,223,170, 16,153,239, 67, 19, 22,199, 64, 68,154,102, 4, 10, 25,122,132,202,249,238,201, 9,175, -205,142,209, 90, 35,136,100,196, 69,211,179, 88,175,120,214,110,185,114,107,170,109,207,172, 24,163,114,131, 28, 21,209,253, 55, -104,202, 44,167,154,157,112, 92,221,225, 86, 89,209,173, 90,132,232, 40, 6,151,192,124,132, 12, 14,231, 60, 82, 41,132,150,184, -186, 67,230,134,237,182,102, 98,162, 87,198,170,105,144, 1,238, 26,129,240, 13,119,231,199,228, 74,241,201,118,195, 95,108,106, -218,109,141,183, 30,143, 39,228, 26,143, 34,168,130, 80,150,248,182, 37, 8,139, 15, 22,175, 51,130,245, 4,231, 8, 89, 30, 11, - 94, 15, 65,198,245,224,128, 40, 7,249,124, 49, 13,251,124,154,109,199, 7, 82, 48,111, 29,227, 76,211, 40, 73, 41, 3,135,166, - 64, 41,141,115, 14, 47, 5, 87, 93, 77, 38, 3,199, 74,242, 70,161, 80,163,130,199,249, 40,250,144, 47, 86,132,171, 21,183, 15, -114, 78,170,138,107,107,249,243,229,134,173,245, 80,106, 68, 89, 70,121,173,141,211,248, 23,202,219,122, 11,155, 85, 36, 88,246, -237,142, 59,145,204,157, 82, 5,132,224,104,174, 27,142,239,223,230,100,114,136, 82, 2,239, 28, 46,120,234,166, 78,183, 94, 92, -123,213,219, 13, 31, 94, 46,225,217, 41,108,108,156,198,151,219,232, 3,177, 90,198,198, 99,221,196,162,238, 28,253,186,137,175, -119, 40,236,193,179, 22,112,143,136,194,104,223,243, 65,215, 19,164,192,217,100,238, 53,236,181, 85, 26, 4,212,192,249, 74, 40, -177, 78,123,123,147,167,228,199,168,200,226, 38, 47,106, 47, 4,169, 40,210,153, 58,252,204,118, 23,237, 29, 82,198,200,144,161, - 32,134, 63,159, 92, 75,103,115,168,166, 41,248,108,136,246,254, 85, 77,234, 67,135, 32,245,243,126,220, 55,146, 34,255,233, 16, -137, 87,129,132,111,166,242,192, 77, 75,252,101, 96,251,175, 74,204, 27,220,188,240,112,255, 46, 63,252,167,191,201,119,110,223, -231,219,175,189,197,119, 94,187, 77, 89, 21, 60,126,114, 17,247,131, 89,158,114,223,101,210,235,166, 2,166,247,236, 49,141,130, -108,248, 44,201,115,133, 81,130, 92, 43,106,235,184,220,246, 92, 55, 53,174,183,148, 70,243,214,193,109, 14,102, 99,198,229,148, -213,102, 77,111, 61, 87, 77,195,114,177,132,197,229, 78, 19,252,101, 14,238, 1, 57, 24,160,203,193, 80,103,144, 12,102, 26,158, - 45, 89, 61, 62,165,125,248, 49, 44, 46,118,157,245, 0,237, 12,230, 7,131, 37,168,212, 41, 76,167, 77, 8, 71, 42,242,217,192, -220,150, 9,170, 79, 82,187, 44, 77,236, 55, 55,104,130,191,135,226, 58,152,173,116, 41,251,219, 11, 56, 58, 68,140, 71,220,154, -204, 25,153, 18,169,179,148,182, 5,101, 22, 11,187,117, 29,130,192,186,171,233,122,143, 82,130,171,245, 26, 43, 28,141, 16,132, -186,143,232,205, 32,121,212,164,201, 92,197, 66, 49, 48, 74,135, 61,123, 80,187,166,108,152, 56, 35, 61, 26, 37, 34,169, 34,215, - 18,141, 32,207,210,129,232, 64,136, 16, 61,201, 69, 64, 11,104,125, 32, 75,142,178, 91,235,145, 66,210,244,158,218, 57,100, 8, - 56,145,178,201,221,222,174,219,197, 67,140,118,207,161, 80,202, 93, 65,215, 42, 30,128,114, 56,244,210,123, 34,220,103,219, 86, -126,238,147,173, 99, 86,250,180, 98,102,226,253,106, 16, 88,231,169, 8,209, 73,174,169,119,204,119,191,247,156, 20, 37,183,103, -138, 77,117, 20,137,160, 50,161, 55,167,151,105,122, 23,159,158,214,173,229,217,166,227,175,187,134,191,106, 90, 62, 92,111,227, -125, 82,232,216,108, 13,205,170, 78, 12,121,147,154,153,161, 1, 20,121,116, 71,147, 30, 33,125,156,214,133,143,111, 81, 80, 8, -223, 33,108,203,119, 94,123,157, 73, 86, 33,181,166,211,146,211,117, 67,227, 3,205,102, 75,237, 90,150,117, 79, 79,199,253,209, -140,162, 42, 80,202, 32,148, 66,141, 74,204, 65, 69, 54, 25,147,221, 57, 32,147, 99,140,237, 57,191,184,100, 50, 18,228,213,140, -208,213,160, 20, 65,104,130, 15,200, 48, 80, 32, 28,211,188,160,173, 91, 38, 42,163, 16,146, 18,195,216,100,200,174,102,181, 89, -243, 81,223,240,231, 23,151,156,247,125,212, 92,111,226,228, 77, 31, 8, 74, 18,198, 25, 65, 11, 66,221, 18,104, 9, 34,202,165, -130, 25,206,166,100,172,101,227,164,123, 83,193,213, 75, 10,250, 11, 92, 53,250,158,119,250,142,166,105,169,157,135, 76, 48,149, - 18,237, 29, 65, 72, 46,234, 53, 29,129,222,245, 76,188,231,174, 50,156,228,134, 55,170,156,139, 50,103, 57, 26, 17,156,227,189, -247, 31,241,103,159, 60,230, 71,219,134,109,215, 71,147,160,148,151, 32,140,138,170, 21, 83, 70,233,154, 16,241,172, 25, 21, 47, - 93, 17,137,207, 67, 77,135,198,191,105, 1,203, 51,147,113,171,154, 96,148, 38,120, 79,223,181,172,155, 21,214,246,104, 2,189, -107,177, 93,207,138,134,245,227, 69,148,235,182,109,138, 62,173,119, 25,231,109,157, 86, 22,117, 36, 26,135, 20,125, 58, 52, 64, - 10,180,115,172,251,158,214,193,194, 57,236, 62,170,230,247,236,198, 73,107, 58,157, 30,116, 4, 15,116,198,127,121, 56,227, 7, -147, 17,255,100, 92,162,239,188,193,195, 31,255, 24,117,231,136,208,187,157,161,163, 24,146, 13, 7,211, 52,155,172,207,195, 78, - 30,170, 72, 43,225, 52,138,251,110, 71,214, 59,152,197, 26, 36, 21,108,234,184,254,252,149, 21,117,147,237, 92,111, 6,147,217, - 97,106, 27, 12, 96,134,169,226, 85, 14, 29,157,224, 69,157,118,133, 50,153,174, 72,241,183,195,184,126,177, 67, 81, 73, 11, 40, - 42, 94,251,214,219,252,250,253, 7, 76,230,183,144, 66, 49,157,206,113,109,207,187,182,141,157, 81,145,160,217, 54,165,146, 45, -175,211,141,148, 96,123,162, 71,187, 52,130,201, 40, 39,207, 12, 19,163,146, 93,168,103,209,116,212,235,116,195,105,205,107,135, -135,220, 62, 60, 97,156, 87, 40,161,241, 74,242,241,213, 37,139,171,107,184, 88,196,124,234,208,127,185,166, 69, 13,201, 95,233, - 49,146, 2,116,153,138,219, 16, 24,146, 76,109,156,125,121, 72,129, 38,162, 13,222,239,116,225, 67, 96,141,145,169,177,209,187, -110, 84,134,248,158, 13, 29,169, 18,177,208, 15,108,115,173, 18, 33,100,128, 87,253,206, 80,136,244,125,101, 52,230, 57,152,206, -152, 85, 35, 66, 8, 20,166,192,186, 62, 34,129, 64,103, 45, 4, 75,227, 58,140,136, 48,248,229, 98,137,201, 20,117,103,233,156, -199, 53, 13,244,235, 93, 70,113,218,195,198,130,147,228, 40, 46,197,211,146, 26, 80,157,116,186, 62,236,166,198,224, 33, 51,232, - 16, 40,141,166, 11, 30,233,226,125,221, 57,143,247,158,222, 7,156,243, 52,189, 39, 55,138,186,135,206,122,180,148,172,189,197, -171,232, 5,223,220, 32, 25, 73, 95,111, 83,230,125,235,226, 52, 33,210,107, 29,194,128, 84,122, 38, 90,123,147,131,126,179, 6, -169,155,212,217,135,231,209,151,231, 96,194,207,120,246,148,137, 48, 58,146, 98,148,113,168, 5, 66,105, 26,231,216, 52, 61,165, -183,108, 54,137,183,241,162,135,117,150,179, 57, 58,130,201, 45,126,167, 28,241, 70, 86,112,168, 2,167,215,171,120,112,126, 86, -212,112, 93,195,114,157, 16,172,132,114,105, 29,247,134, 46,125,125,240,138,184,185, 39,178,148,191,240,130, 45,169, 75,133, 29, -162,223,183, 20,136, 96,248,155,205,150, 55,142, 15,177,186,224,170,115, 92, 11,199, 98,221, 82, 1,227,190,163,146,130,183,143, -142, 56,152,143, 24, 85, 5, 18,133,148, 26, 89,106,228,225, 40,106,217,115, 29, 21, 15,219,128, 25, 9, 46,234, 37,235,237, 5, -227,106,134, 84,101,220,227, 10, 8, 73,235, 47, 19,163,122, 84,150,216,166,103,146,231, 76,180, 64, 11, 67, 38, 50, 86,237, 53, - 79,150,151,188,215,116,248,174, 35, 40,133, 47, 50, 66,215,227,155,109, 34, 4, 59, 66,219, 18,250, 53,212, 77,148, 78,245, 9, - 1,244,137, 44,217,181,187,169, 69,238,120,189,175, 34, 53, 19,222,243,180,109,249, 69, 93,243,255, 45,123,206,235, 13, 65,123, -182, 56,122, 31,184,106,214,148, 62, 80,132,128, 16,130,128,192,106,201,108, 92,178,146,154,235,114, 4, 71,135,241, 31,189, 94, - 35,206, 22, 17, 61, 25,222,171,129,253, 93, 22, 49,105,242,246, 45,126,248,107, 15,248,206,237, 35,102,199, 83, 30, 47,109, 92, -213, 5, 62,117, 79,138,151, 13, 88,131,148,214, 57,220,197, 5, 98, 62, 35, 35,196, 45,149,243, 4,161, 82,124,131,165,105, 26, - 86,221,154,211,197,138, 38, 36,207,138,254,115,130, 84,156, 75,187,235,136, 40,138, 68, 9, 10, 87, 43,150,222,179,105, 45,171, -166, 35, 8, 17,239, 61,149, 66,197,156,139, 53,173,245, 59,173,248,240,115,107,205, 55, 50,195, 91, 69,206,216,228, 24,169,249, - 14,158,223,124,253, 54, 39, 38,240,243,109, 31,155, 88,153,220, 35, 7, 84,211,171, 72,148,179, 3, 26, 39,119, 12,251,225,245, - 90,187,139, 44,206,116,226,113, 37,185,247,102,155, 26,189, 95, 69, 81, 31, 10,240,224,169, 62,176,137, 7,243,150, 1, 90, 29, - 82,175, 94,201,171, 86,238,138, 0, 98, 47,241,172,255,219, 47,232, 38,193,136,210,192,131,187,124,255,173, 55, 25,149, 83,178, - 44, 35, 56,232,123, 75, 89, 22,104,183,230,210,121,130, 15, 4,159,228, 17,219, 6, 46, 23,241,115,149,244,222,165, 70,230,138, - 81,174, 49, 82, 80,101, 34, 41,151, 60,151,171, 6,183,218,194,106, 3,153, 97, 84,149,188,113,124,155,131,114, 66, 32, 50,167, -215,125,205,197,102, 77,127,185, 76, 76,247,246,203, 17, 35, 6, 46,194, 62,251, 27, 17, 59, 62, 33,119,133, 29,191, 67, 68, 94, - 36, 58, 37, 84,232,249, 29,146,216, 85,252,125,243, 22,159,248, 13, 50, 5,173,100,106, 39, 35, 19,236, 50,196,111,152,231, 42, - 21, 45,249,188,169,144, 81,241,181,143,103, 76,199, 5,203, 77,205,253,131,219,180,214,226,189, 69, 9,193,182,107,232,108, 71, -109, 91, 70,166, 68, 75, 69,227, 90,140,209,108,234, 26, 23, 98,227,228,214,203,180, 42, 72, 26, 80, 19, 98,241,216,247,255,215, - 41,191,216,136, 56,189, 15,134, 62, 69,106, 0, 74, 19, 37, 62, 14,180,214, 88, 23,179,199,251,224, 81, 1, 28,158,173,117,228, - 82,196,126, 78, 7,218, 54,254,253, 94,193,214,245,180, 2,154, 62,196,239, 19, 2,215,135,221,218,104,216,239,119,110, 87,200, -135, 93,186, 52,137,149,191,127,221,211,179, 49,144, 0,131,123,254,249,120,153, 70,255,101,207,158, 41, 34,169,103, 82,210, 42, -201, 72, 72,182,120,148,117, 80,119,172, 54, 61,110,152,158, 63,181,243, 86,112,239, 22,191,115,112,139,147,178,228, 40,203, 81, -125,199,105,187,164,191,186,126, 57,252,190, 47,115,235,218,196, 91, 72, 4,189, 44, 49,137,133, 73,133,125, 88,229,228, 96,235, -120,144,233, 9,248, 14,209,217, 68, 94,141,123, 75,209,219, 88,208, 1,225, 4,130,192,251,218, 83,168,146,101,151,130, 58,188, -229,160, 50,220, 27, 79,185, 91, 76,184, 51,153,114,116, 56,195,110, 91, 52, 18,217, 6,228, 36, 71, 30, 22,136,204, 32,140, 36, -108, 28,118,219,210,103, 10, 39, 3,173,146,180,174, 71, 5,143,200,242, 68,230,142,197, 79, 25,131,197, 99, 16,100,121, 70,223, -212,228, 38, 67,133,192,214, 7,166,166,136,236,118, 91,115,222, 89,124, 8, 4,163, 8, 70, 18,186,158,224,122,112,155, 72, 58, -108,219, 20,140,178,199, 25, 34,133,251,236,107,246, 63,103,242,253, 44,255,118,113, 3,203,119,124, 92,111,249,127,175, 26,254, -100,221, 48, 22, 22,211,246,204, 60,140,149,100,237, 29, 91, 41, 88, 3,155, 16,232,203,140,181,209,252,227,163,138,127,123,247, - 54,191,121, 50,229,247,238, 31,113,160,224,189,167,215,136,235,107, 16, 42, 42, 19,202,152, 96,121,127, 82,240, 91,243, 3, 94, - 59,186,205,225,116,198, 59, 69, 78, 63, 42,147,178,196,164,231, 81, 68,199, 78,147, 71,101,199, 40,231,232,254, 9,181, 44,118, - 12,242,180,102,186,176, 61,206, 40, 50, 37, 17,105, 53,211, 7,139,117, 13,235,245, 53,206,183, 52,173,101, 45, 37,200, 60, 34, -135, 38,173,112, 94, 66,230, 19, 9,121,227,246, 93,126,239,123,223,229,215, 31,188,197,236,112,194,147,247, 63,129,174,229, 48, - 15,212,155, 58, 66, 33,117,183, 51, 75,106,109, 10, 17, 75,207,173,142,175,241,219,153,230,159, 76, 42,114,149,225, 67, 32,147, -154,198,247, 20, 82, 34,165,225,195,166,166,150, 3,243, 93,199,231, 86,153,228,201, 48,212,158,244, 78, 9,187,131,223, 93, 26, - 29,153, 26,155, 0, 0, 32, 0, 73, 68, 65, 84,148,134,103,124, 88,207,217, 16,125, 71,134,144,153, 95,186,168,223,192,186,105, -234,217,183,110,237, 82, 55, 17,210, 1,109,221,243, 22,146, 95, 4,129, 15,211,160,150,187,144,148,191,237, 41,125,144, 62,137, -116,160,119, 14, 49,159,112, 50,154, 96,116,148, 55, 9, 41, 88,174,150, 60,188, 94,113,118,189, 66, 10, 65,232, 18,177,105, 29, - 73, 37, 40, 25,229, 66, 82,199, 41, 61, 87, 20, 90, 16, 66,212, 46,215,157, 99,217,180,112,185,137,172, 85,109,160, 44, 57,156, -148, 76,117, 65,150,151, 55,147,228,214, 53, 60, 58,189,128,103,105,143, 62, 20,243, 87,189, 20, 38,221,212, 46, 93,119,159,116, -143, 65,237, 96,112,201, 30, 26,194,110,194,222,159,212, 7,199,190,161,195, 22,201,252, 32,176,211,128, 91,151,120, 8,114,167, - 77, 30, 38,255,228,151, 30, 67, 59,210,191,181,159,119, 63, 76,238,222,167,195, 59,193,244, 58,199,101, 57, 71,101, 73,221,119, -120,111,169,178,130,166,107,145, 74,179,105,214, 8, 25,144, 66,225, 66, 96,100, 74, 16,129,105, 89,113,185,190,230,234, 98, 17, -167,194,190,141, 93,123, 72,114,181, 97, 82, 31,200,150, 50,165,233, 13,196,189, 96,210,207,145,140,142, 18,226, 2, 1, 33, 37, - 69, 46, 89,119,142, 44, 37,172,181,189,199,139,184,187,213, 54, 68, 20, 47,153,195,213, 30, 90,235,169, 93,192,134, 64, 41, 37, -117, 99,119, 5,122,144,209, 89,151,174, 91,250,255, 82,238, 53, 93,114,151, 27,190,111, 8, 50,178, 77,220,167, 11,251, 60,105, -114, 63,110,241,197,102,249,197,134, 45,151, 81,122,153, 69,148,165, 9, 32,165,228,162,238,113,189,163, 91,109,226,123,248,178, -137, 91,101,112, 48,231,222,116,198, 97, 94,208,216, 30,131,231, 23,171,107,220,179,243, 47,110,194,123, 11,181,139,242,182, 76, -241,221,201,132,127,117,231,152,223, 62,153, 80, 77,114, 62, 57,191,142,215,196,167,179,228,224, 54,223,251,254,183, 57,253,224, - 35,132,204, 35, 4, 63,236,102,149, 68,120, 3, 94, 34,219, 53,210,197,233,237,161,114,156,231, 21,149, 11, 28,224, 57,153,142, -120, 99, 52,225,173,195, 67, 14,198, 19,242,188,192,123,203,229,163, 51,114, 43,208, 85,158, 12,142, 98, 20,175, 95, 54,216, 77, -205,170,169,177,163,138,144,101,212,206,211, 43, 77, 16, 10,163, 13,189,179, 40, 41,177, 65, 48, 26,141,240,206,199,251,116, 60, -194,117, 61, 2,184, 93,141,217,118,150,177,201,176,161,103,140,227, 81,219, 17, 66,192,107, 77,200,116,100,104, 55,237,141,214, - 63, 22,224, 93,118,252,238,243,206,112,236,197,255,126, 49, 70, 85,124,206,215,110,204,187,234, 45,118,179,229, 39,171, 45, 7, - 4,250,166,193,118,150, 32, 4,139, 0,219,204,112, 17, 4, 87, 30, 10, 99,248,245,106,194,221,114,198,215, 38,199,220,159,156, -144,151, 25,118, 94,240,112,221,195,250, 42, 14, 41, 78,192, 40, 99, 84,102,124,111, 58, 67, 41, 77,231, 3,191,232, 45,219,214, - 66,101,162, 74,104, 58,130,131, 57,156, 28, 69,251,225, 91, 71,252,219,111,191,193,247,143, 79,248,221,215,239,225,230, 5,143, -201, 99, 67,115,124, 12,101,206,166,200,168,148, 38, 8,193, 73, 89, 97,189,195,120,207,114,179,102,221, 89,148, 20,148,185, 70, -151, 57, 77, 94,194,252,144,252,181, 55,112,119, 95,131, 78, 65,150, 12,140, 32,114, 0,180,225,187,223,254, 58,199, 7, 39, 16, - 60,214,100,124,114,246,148, 25,150,197,114, 27, 39,225,122,147,160,251, 62,170, 60,250,193, 71, 33,236, 46,106,240,188,153, 25, -190, 89,142,147,167,137,130,224,240,222,161,164,102,211, 55,180,194,242,164, 75, 89,225,153,137,208,250, 96,231,236, 99, 17, 23, -200, 72,161,113, 50,161, 79,105,189, 98,221,243,178,212,126, 72,192,235,190, 82,109,124,121, 81,151, 9,114,240, 41,142,210,217, - 88, 64,250,189, 3,157,193,206, 85,236, 32,132, 87, 49, 46, 25,224,145, 23,141, 84,254, 54, 63, 6, 9, 85, 16, 17, 10, 65,176, -200, 12, 85,150,113, 52, 46, 16,194,227, 29,156, 95,175,248,139,119,222, 5,209, 71,178, 19, 62,193,166, 77,116,197,154, 23, 73, -222, 16, 51,166, 67,136,249,188,189,119, 52,189,163,111,250,216, 93,173,151,177,216,141, 71,140, 39, 35,170, 66, 35,241, 72,109, -232,250,150,198,121, 30,158,157,179,125,122, 26,247, 67, 55, 59,152, 47, 67, 54, 84,177,248, 26,177,131,151, 3, 59,223,224, 97, -160,147, 67,214,252, 75, 60,212,247,247,238, 67, 83,224,210, 62, 87, 14, 76,204, 68, 38,115,118, 23, 30,162, 19,188,173, 19,243, -220, 13,161, 58, 58,194,197,168, 4,127, 37,191, 99, 37,118,118,166,129,104,252,211,247,244, 65,208,107,133, 32, 36, 55, 88,135, - 11,142,197,118,129, 68, 82,234, 17, 74,104, 50,173,144,194,160,165, 98,219, 52, 76,139, 17, 15,183, 75, 56, 59, 75, 39,153, 77, -123,252,253, 2,153,224, 46,103,119, 28, 2, 51,200, 26, 37, 84,229,243, 9,100, 68,166,115, 7, 49, 80,195,122,156, 11, 88, 5, - 5,113, 98, 19, 30,172, 8,224, 3,181,247, 4, 33,232, 83,163, 42, 9,172,187, 97, 23, 42,246,228,107, 73, 70,166, 84, 60, 68, - 92,159,252,207,137,178, 60,215,236,244,222,174,143,215,175,235,119,201,102,251,176,251,231,125,188, 8,161,143,170, 72,230, 73, - 54,187, 78, 42, 90, 27,125,216,221,166,129,235,197,103, 63,123,194,195,108,140,171,170, 36,253,213,188,187,186,228,252,242, 50, - 54,172,175, 18, 10, 50,228, 59,204, 39,252,193,157, 99,114,169,152,149, 83,156,235,121,167,238, 83, 80, 82,186,103,182,215,156, -126,242, 48, 53,160, 18, 49,196,200, 14,211,122,232, 17, 65, 34,115,137, 8, 22,105, 5,178,105, 9, 42,144, 9,193,189, 81,198, -131,106,202, 91,243, 25,147, 34,163,154, 69, 51, 21,223, 67,215, 56,214,151,231,140, 84,142, 57, 24,199,251,196, 65,216, 90, 66, -211,227, 69,160,147,158,173, 20,184, 98,132, 77,220,146,218, 91,132,140, 33, 63, 69, 53,194,217, 30,161, 20, 89,150,209,214, 45, - 50, 8,100,102,240, 65, 80,100,154, 77,239, 57,206,198,116, 90, 98,125,195,179, 46, 74,187, 66, 12, 5,136,164, 68, 27,207,148, -151, 21, 99,249, 25,159,191,204,175, 23,167,248, 0, 4, 31, 97,255,159, 45,150,124,220, 89,124,211,210,246, 14, 39, 2, 87,222, -114, 42, 37,207,132,100, 94, 26,222,210, 25,119, 70, 51,148,202,208,198, 96, 76, 73,171, 13,125, 33,185, 80, 89, 92, 25, 92,175, - 97,121,197,166,243,188, 94,106,148, 84,156,246, 29, 63, 90, 44, 19,139, 59,233, 75, 85, 90,221,142, 51, 80,138,217,100,204,247, -102,135,220,169,102,140,203,138,172,200,120, 71, 73,220,120, 12,183, 79,152,222,127,147, 81, 81,130,146, 84,192,131,201,140,147, - 81,206,196,104, 46,250,134,218, 57,148,214,228, 66,162,165, 96,148,103,252,240,183,254, 41,255,234,159,255, 62,255,236, 55,190, -199,209,252, 62,106, 62,166,155, 29,211,118, 93,146,230, 26,206,188,226, 27,135, 83, 68, 86,209,109, 87,124,252,240, 9,237,242, -154,233,184,164, 93,247,233,249,232,161,109,201,180,194,109,183,209,178,185,237, 83,141,139,199,217,177,210,188, 53,202, 24,201, -140,222,181,145, 65, 79,160,237,123,150,222,242,151,203,134,237,224, 60,103, 20,163, 42,167,207, 75,200,116, 76,203, 19,137, 43, -129,223,157, 73,128, 8, 33,254,250, 21,214,193,151,159, 20, 34, 81,248,135,201, 92,232,221,132,190,109, 34, 57, 34,193,100,251, -142, 61, 55,196,160,127,136, 31, 42, 77,216, 50,197,172, 62, 89,178, 58,217,176,221,108,153,140, 15, 33, 52, 56,219, 36, 82,194, - 62,155, 60, 29,252,147,113, 60, 36,203,148, 50,119,179, 71,108, 99, 45,238, 45,172,183, 41, 35,126, 7,127, 74, 13,193, 7, 86, - 93,207,246,234, 20,135,100, 81,119,172, 47,215,176, 90,127,177, 27,222,103,153,233,244,169,233,232,147,214,193,200,228, 91,239, -227,207,200,144, 78,150,194,105, 20,187,223,219,189,162,190,109,118, 83,184, 75,123,244,125, 97,113,219,196,212, 51, 33, 99,193, -217,191, 23, 94, 28,216, 84, 42,252, 55,221, 73, 6,165,136, 83,103,122, 73, 56,189,155, 84,251,150,101,219,146,101, 26,183,245, -132,205,154,233,120, 12,214,115,114, 56, 5,160,204, 75, 50, 99,112,125,143, 50,121,220,165,251,134,215,230, 21, 15,191,254, 38, -188,255, 65, 12, 48, 81,123,124, 4,217,199,127, 71,217,231,175,111,219,237,146,200, 26, 27, 73, 92,222,199, 48, 17, 37, 33, 3, - 45, 4, 77,231,208, 72, 86,193, 83, 32, 88, 16, 8,206,115, 32, 5, 54, 4, 46,251,158,137,138,141,192, 38, 65,209,197, 16, 64, -228,247,166,213,129,108,227, 93,130,223, 19, 15,194,166,130, 23, 92, 34,246,245,207,255,153, 23,255,251,171,248, 19,232,228,136, -149, 26, 22,186, 62,194,224,214,237,174,255,103, 54, 8, 22,206,174, 57,157, 95,112,234, 61, 44, 47,226, 52, 3, 80, 8,120, 85, -197,229,102, 5,171, 45,109,215,115, 50, 61,100,221,183, 60,209, 49,171, 30,167, 65,118, 59, 18,163,200,227,251, 54,232,117,189, -137,208,252, 80,156,148,197,123,131,207,193,119, 29,254,236, 17,206,247, 60, 10, 61, 63,152, 85,228,128, 81, 2,157,105,100, 46, -200,171, 10,151,107,176, 61,107,215,177, 92,109, 80,143,174,201,239, 76, 99, 19,234, 60,106, 86, 48, 42, 2,186,201, 41,187,146, -243,229, 53, 11,105,233, 61, 28,143, 39,204,110, 29,162,148, 36, 88,104,183, 45, 25, 1,219, 89,132,136,136,157, 17,130,186,109, -168,138,156,215,230,135,252,199,235, 83,166,121,201, 55,111,189,206,149,123,194,199,109,131, 32,139, 69,247,238, 93,184,188,138, -171,182,182,123, 57,116,254, 57, 5,250,121,146,156,190,121, 78, 69, 90,231, 8,187, 99,165,135,255,159,186,247,108,178,236, 58, -239,253,126, 43,237,112, 98,199,153, 1,102, 6,145, 0, 73, 48,136,162,168, 72,221,171,171,107,189,176,222, 58,125, 5,127, 13, -126, 26, 87,185, 92, 46,135,178,101, 91,117,203,215,165,146,117, 45,139,162,196, 32, 6,136, 4, 48, 4, 6,192,204,116, 58,113, -135,149,252, 98,173,221,231, 76, 34, 2, 85,186, 86, 87,117,117, 79, 79,247, 9,123,175,181,158,244, 15,207,248,155, 8,124,176, -217,240,254,102, 67,216,108,152,108, 74,142, 70, 35,220,116,204, 47, 85,193,151,116,137,174, 11,106,161,232, 8,180, 33, 49, 20, -218,224,168,139, 17,119, 15, 61,247,164, 72,190,237,139, 53,108,123,254,135,239,253,132,232, 44,232,241,117,155,154, 73,149, 20, - 44, 67, 62,127,214, 61, 76, 71, 40,210, 56, 78, 41,131, 20, 2, 41, 52,183,170, 49,247,104,161,158,208,121,203, 97, 61, 66,199, -200,237,233,152,219,179, 17,181, 81,172, 27,205,173,110,198, 74,104,240,150,224, 18, 30,228,197,217, 17,175,188,124,151,111,188, - 54,199,148,154,155,199, 37, 55,223, 62,164,111, 54,252,183,189,163,251,240, 62,194,247,196,237,138, 11,111, 57,242, 61,147,170, - 98, 50,159,178,110, 91,150, 87, 93,214,108,224,122,150,221,111,219,221, 57, 65,155,102,235, 19, 7,182,226, 3,161, 57, 31,111, - 24,141, 21, 71,166,102,101, 27,162, 15, 56,224,157,102,203, 89, 8, 40,169,168, 43, 69, 37,210, 40, 86, 86,145, 77, 35,210, 88, -176, 80,233,188,183,221,206,203,163,123, 90,123, 63,254, 42, 64,244, 62,117,248, 83, 87,234, 3, 8,167,200, 21,143,207, 51,219, -224,115,133,222,166, 67,113,219,238,108, 81,201,135,214, 64, 33,250,231,212, 18,127,242,141, 63, 15, 60, 36,101, 58,228,116,238, -155, 18,224,104,204,239,188,126,155,155, 39,199, 76,231, 37,149,209,156, 28, 30,240,225,229, 57,171,237, 22,101, 20, 81, 12,109, -232, 68,237,160, 46,118, 82,152, 42,139, 4,172,123,216,108,224,106,155,248,200,109,127,141, 58, 86, 35,195,200, 40, 68,148,108, -189, 99, 99, 3,103, 77, 67,127,149,231,237,155,203,207,119, 96,171,189, 46, 10,131, 82, 87,110,221, 26,147,237, 70,243, 2, 40, - 51, 21,101, 24,228,201, 61,158,113, 36,123,210,199, 4, 2, 52, 38, 5,222,174,221,177, 20,164,220,241,106, 10,185,107,185,135, -144,103,167,123,115,173, 48,120,162, 15,200,238,140, 54,247, 49,207,239, 67, 66,123,186,252,243,110, 11, 33,176,237, 44,203,190, -103,213,247,148, 74,115, 52,155, 81, 21, 21, 39,179, 99,140, 81, 72,161,209,101,129, 16,146,217,120,130,115, 61, 35, 93, 80,170, -200, 5,106,103,149,232,251,244,248, 62,163,137,221, 51, 58, 65, 74,238,168, 42, 3,208,188, 48,100, 88,123,154,102, 40,137, 37, - 94, 23,212, 32, 17, 49, 38, 45, 23, 18,117,205,121,207,101,219, 81, 85, 26,215,123,182, 54, 80,228, 45,115, 13,148, 27, 40,108, - 3, 86,193,251, 92,197, 59,210, 48, 88,236,130, 88,239, 30,167,118, 62,171,195,245, 60,205,251, 39, 55,122, 53, 74,126,230,227, - 50, 37,120,101, 6, 8,250, 60, 11, 63,187,252,100, 7, 40,111,179,177,142, 72, 93, 42,107,147,167,192,114,243,233, 19, 81,159, - 16, 74,221,164,230,131,222,241,253,182,227,103,155, 54,237,167,102, 11, 62,139,110,168, 36, 49,122,173, 43, 32, 67, 66,194, 83, -164,239,243,216, 68,208, 35,131, 70,184, 6,169, 42,148, 23,168,222, 18,101,224,181,217, 41,199,166, 96, 50, 27, 99,180, 68,150, - 26, 85,106, 34,130,162, 46, 89, 44,150,232,141, 69, 7,129, 84,105,223,248,182, 71, 40,129,170, 53, 69, 81, 50, 50, 37,149, 48, - 8,161,185,117,231, 6,245,193, 24,115, 56, 70, 24,141, 18, 26,239, 34,182,115,200,210, 16,188,199,197, 64, 81, 26, 90, 31,104, -251,150,117,132,214,148, 52,192,168, 52,188,183,110, 8, 50, 18, 11,147,206,139,201, 24, 84,129,240, 1,185,234, 17,217, 65, 55, -239, 32,212,245,167, 70, 37,136,223,222,103, 72,191,227, 65,150, 5,210, 8,164, 18, 72,145,212, 48,165,247, 79,183,225,247, 43, -246,253, 79, 47,232,172,227,114,221,176, 88,246,196,182,227, 81,140,252,198,116,204,161, 54, 76,234, 9, 0,239,180, 27, 46, 92, -199,199,125,207, 54, 6,122, 17,113, 66,195,225, 12, 38, 35,226,100, 2,179, 89,218, 71,171, 38,105, 30, 92, 44,211, 26, 57, 63, - 75,126, 20, 34,209, 21, 27,160,150,142,185,210,180,206,114,101, 59,254,106,181, 77,123,161,168,185, 51,154, 50,146,138, 50, 6, - 94,158,140,152, 40, 73, 89, 40,188,130, 94, 40, 62,180, 14, 87,150,212,166,194, 17, 25,153,146, 55,191,240, 50, 7,211, 17,109, - 31, 48, 72,182, 54, 34,162, 68, 19,249,229,250, 42, 61,119, 81,114,235,228, 16,163, 10,122, 4,239, 93, 93,225,151,103,153, 97, - 16,210,243,219,236, 36, 24,158,156,207, 39,227, 33,164,166,233,123,126,218,123, 94,174, 36, 70, 68,122, 31,232,188,231,157,126, -195, 79, 54, 61, 27,239,145,217,151, 69,163, 16,165,160,245, 36,165, 65,145,217, 35, 82,165,241,168, 16,121,236, 41,114, 49,229, -159, 15, 42, 44,139, 84, 84, 85, 38,237,199,161, 91,250, 43, 42,251,199,131,186,148, 48, 58,132, 98,154,128, 14,163, 81, 86,184, -146,201,122,174,168, 18, 34,215, 84,169,202, 40,244,110, 46, 54,104,214,126, 30, 78,237, 63, 69, 48, 31, 14, 55,249, 12,125, 94, - 85,236, 29,230,164,139,116,115,204,183, 94,189,205,168, 30,209,181,129,186, 42, 80, 50,112, 88, 76,248,104,181, 96,219,111, 81, - 50,166, 24, 88, 40,162, 86,200,202, 32,164, 76,168, 73, 31, 97,217, 38, 95,246,197, 26,150,217,159,125, 86,167,235, 54,174, 48, - 38,205,147,173,247,248, 0, 27,239,211,225,237, 61,172,206, 63,123, 53,166,115, 23, 37,184, 93, 94, 39,217,179,161, 53,105, 30, - 99, 76,230, 71,154, 28,108,217,161, 57, 7,224,154,209,121, 54,170,211, 74, 68, 67,200,153,234,224,152, 23, 99,170,160, 66, 76, -139, 63,100, 10,214, 0,138, 51, 58,183,189, 51, 35, 32,100,107, 77, 93,236,230,251, 42,238,130,103,148, 89,191, 63,183,166, 93, - 82,251,162,235, 97,181,133,208,179,145,154,227,233,148,195,106,204,108, 58,197,123, 79, 89, 22, 40, 41, 24, 79, 38, 56,107, 9, -193, 98,187,158,178, 40, 8, 42,178,106,186,244, 6, 93, 72, 45,238,190,123,254,104,199,251,188, 49, 34, 96,114, 82,147,121,236, - 25,131, 16,131, 39,202,152,198,219, 49,210,245, 14, 39, 99, 50,112,241, 17, 27, 28,141, 15, 76,180, 98,219, 88, 10,163,114, 52, -207,231, 68, 8, 59,228,255,208,245,232,236, 30, 74, 63, 38, 0,159,103, 39, 60, 33,194, 39,239,157,231, 5,245,199, 70, 42, 21, -220, 60, 74,201,247,168,230,141, 73,193,177, 54,212, 81,112,164, 21, 55,100,224, 98,185,250,228,181, 39,196,142, 2, 26, 99,154, -237,111, 59, 88, 52,159, 92,233,239,239,205,174,227,170,141, 60, 10,145,141,202,215,223,147,170, 32,187,190,166,179, 37,212,176, - 73, 65,222,107,132,235,147, 0, 77,238,128,136, 40, 17, 42, 38,122,155, 8,200,114,130,244, 61, 50, 68,214,209,115,103, 82,113, - 84,205, 24, 41,141, 86, 18,169, 20, 33, 6,212,164,196, 90, 79, 64, 96, 53,244, 23, 43,100,231, 8,173, 69,212, 6, 57, 41,137, -214, 35,141,166,156,212,140,203, 17,243,217,148,234,116,134,158, 84,168,113,133,170, 12,193, 6, 90,235, 16,133,196,134, 64, 80, -146, 32, 37,141,247, 4, 33,184, 10, 30,163, 20,235,174,163, 51, 6,173, 43,222, 58, 57,230,230,184,230,168, 54,220, 28, 25,254, -139,219,183,248,175, 95,191,203, 91,167, 35,254,106,213, 34, 93, 64, 6,119, 29,204,245,240,213,104,180, 82,104, 37, 51,222, 80, -160,188, 71,121, 80, 74,163, 42,185, 75, 4, 4, 40, 41,144, 49, 33,224,229, 94,235,254,233,106, 93,167, 22,122, 78,110, 35,145, -216,103,157,254,117,199,182,138, 8,111, 57,179, 13, 87, 81,240,113,223,114,207,182,108,172,229,178,105,137, 66, 98, 51, 59, 70, -214, 21, 98, 52, 34,102,103, 63, 70, 21, 84, 21,163,233, 4,187,216,100, 91,209,144, 40, 89,139, 45,244, 61,247, 31, 92,242,221, -143, 30,112,213, 47,249,139, 95, 62,130, 15, 62,204,235,106,205,202, 54, 84,125,143,176, 13, 69,136,204,140,194,134,192,186,109, -249,225,229,154,141,212,248, 24,145,198, 32, 84,193, 89,215,113,103,114,200,205,185,193, 89,199, 98,213,177,117,160,181,132, 62, -242, 96,253,136,237,102, 11, 77,195,225,193, 17, 33, 70,186,190,227,131, 95,188, 11,155,101, 46, 90, 51, 8, 85,239,241,204,159, -220, 87, 33,183,203,183, 14,175, 4,127,223,118,252,223,151, 43,222,110, 59,254,118,189,225,199,139,150, 77, 76,116,213, 66,194, - 76,107,186, 24,136, 66, 38,207,166, 97,236, 27, 19,173,247,200, 20,180, 18, 94, 61,152,112, 37, 76, 22,235, 82, 59, 9,229,167, -138,184, 12, 52,237,243,226, 16,207,176,133,125,110,251, 93,235,164, 62, 53, 59, 76,243,218,168,178,218, 85, 1,151,151, 80, 5, -104, 87, 80, 78,210, 28,216,100,126,162,201,237,216, 65,217,203,185,127,222, 10,125, 95,201,108, 16, 81, 25,254,237,220,222, 91, -204, 78, 56, 58,253,205,203,211, 81,166, 77, 70,170, 66, 98, 10, 77,111, 35,101,110, 87, 42, 4,165, 0,105,210,251,178, 22, 98, - 70,236,247,214,165, 96,212,183,169,165,178,204,193,112, 86,229, 89, 82,170, 88, 61, 17,105, 10, 68, 76, 7,100, 41, 3,157,144, -159, 13, 16,247, 36,128,201,183, 32,170, 76, 83, 11, 59,174, 56,164,255, 43,178,232,193, 53, 90, 61, 47, 6,159, 91,244,251, 90, -223,229, 36,161,229,251, 12, 98, 11,213,110,132, 50,140, 86,182,171,180, 97,125,174,194,237,240,213,237, 84,232,174,171,203,225, -189,245,233,185, 6,235,207,184, 55,103,133,221, 8, 71,230,182,179,203, 86,179,155,158, 48, 25, 97, 2,196, 24,233,156,163, 42, - 43,132,148,232, 34, 85, 71,169, 59, 22,249,222,131,247,248,218,233,109,198,198, 80,158,206,233,174,214, 57, 97,202,175,223,254, - 10, 43,211,216,166,128, 14, 73,176,162,202,107,196,231,235, 84, 25,176, 73, 60,100, 8,202,222,122,218, 24,169, 60,120, 25, 48, - 14,214, 46, 80,105, 65,231, 82,160,170, 76,106, 26,116, 42,111, 82,163,119,216,145, 65,203,125, 16,224, 24, 2,163, 54,169,253, -238,229, 39,143,175,246,247,214,222, 82,127,172,139, 51,159, 51,159,212,152,217,136, 27, 82, 49, 51, 5, 91, 23, 49, 37,168,224, -241,189,228,213,227, 99,222,221,222,255,228,231, 90,183, 48,233, 82,162,164,115,199,174, 72,157,201, 79,189, 55, 71, 85, 74, 96, -203, 92,150, 78,138,212,241, 58,157,165, 91,112,113,158, 76,101, 84,149, 70, 40,195, 45, 42, 52,194,107, 34, 14,130, 33, 42,155, -243, 66, 75, 12, 37,193,247,248,178,198,105,133,125,180,228,127,253,209, 15, 24, 71,193,188,252, 58, 82, 41, 60,130,114, 84, 16, -123,143,152,214, 8, 31, 88,158,175,112,210,114,255,195,123,140,100,228,120,118,202,232,116,142, 26,151, 72,153,199, 2, 35, 65, - 57, 31, 35, 39, 73, 57,113, 16, 67, 9, 66, 18,163,192, 75, 73, 52,208,228,110,148,170, 20,155,117,147,192,103,120,212,168,100, - 46, 13, 55,162,163,139,145, 98, 58,227,197,245,134, 66, 27,254,112, 62,162, 38, 80, 86, 83,126,183,151,124,247, 23, 31, 49, 61, -158,208, 54, 13,210, 6,102, 64,211, 89,164,117, 72,231, 17,131,135,183,183,215,103, 91, 52,250, 41,206,122, 28,130,180,123,188, - 34,223, 63,102, 2, 26,177,223,226,181,225,122, 1,197, 46,161,191,127,252,119, 11,126, 60,159,115,251,246, 41,107,161,185, 49, -155,242,113,150, 22,142, 49,178,237, 60,197,184,192,201,196,124,153,148, 21,109, 76,235,254,173,219, 55,121, 57,118,244, 93, 79, -123, 52,226, 7, 77,195,253,143,174,146,184,141,112,176,190,202,186, 74,129,183,239,127,176, 91, 35, 75,141,248,210,239,242,202, -228,144, 27, 85, 5, 97,195,213,102,201, 61, 21,144, 82, 17,130,231,170,233, 81,170, 96, 90,214, 9, 15,101, 45,181,144,108, 62, -190,207,189,197, 21,181, 52, 92,184,192,228,245, 87,137,165,230,206, 75,183,248,250,242, 85,254,207,243, 5,156,159,241,227,255, -231,175,119,103, 90,183,217,139, 25,123, 4,132, 95,245,209,245, 96, 2, 92, 56, 88,151, 48,174,185, 88,101,141,249,124, 78,170, - 73,141,138,129,149, 11,140, 74,205,186,203, 12,161,222,131,134, 63,157, 86,220,136,145, 57, 0, 19,188, 13,124,124, 56,227,127, -218, 58,220,162, 77,137,198,106, 5,182,223,141, 81,202, 34,157, 83,195,248,146,140,103,178,242,217,251,255,169,160, 62,170,161, - 58, 74, 30,211,202, 64,219, 38,190, 92,211,193,252, 16,232,147,137, 70,183,222,205,212, 11,189,155,185,199,161,141,246,252,172, -125,244,123,191,201,246, 47,255,230,159,190, 82,223, 63, 68,158, 2, 20,237, 81, 70,100, 62,200, 85,207,189,143, 23,124,243,238, -150, 48, 58,194,148, 6,169,161, 82, 37,127,241,179,159,112,241,241, 5, 24,216, 22,145, 73,126,188,170, 84, 88, 11, 91,151, 57, -199,235, 38, 85,231,203, 54, 7, 69,153, 40, 68, 70, 64,165,174, 27, 33,135,229, 4, 41, 21,198, 84,124,184,186,160, 27,120,202, -101,190,198,159,229,163,235, 83, 59, 38,132, 29,143,220,134,157,242, 16,213, 14,160,228,119,221,249,148,190,231,223,209, 58, 97, - 3,122,191,211,229,222,191,143,251, 12,135,144,175,239, 48,243,244,121,152,106,115, 0,241,215, 15,158,231,237,114,151, 64,120, -210,154,105,114,102, 41,121,188,109, 59, 24,124, 40,185, 75, 70, 10, 13, 10, 44, 29,202,104,182,237,134, 24,234,235, 68, 11, 2, - 90, 73, 74,173,248,202,233, 75,156,175,175,168,202,146,170, 50,116, 70, 38,228,109, 40,210,252,248, 87, 1,180, 29, 36,162,249, - 54,137, 60, 12,243,238,125,205,250,152,223,155,221,105, 11, 7, 45,104,101,100, 82, 21, 20,170, 96, 28, 60,155, 69,131, 34, 49, - 65,186,144, 94, 66, 73, 96,217,248, 29, 62, 33,207,223,177,185,171, 97, 51,142,161, 8, 89, 53, 46,139, 79, 12,207,253,105,242, - 98,247,236,237, 60,159,106,166, 85,133, 50, 21, 7,165,129, 24,152, 25, 77, 99,123,250,206,115, 96, 52,141,240,105, 15,111, 63, -197,250,243,238,154,198,132, 54, 41,153,103,245,233,246,165,219, 75,178,182, 93,186, 56,190, 72,227,142, 16,161,236,161,154,130, -111, 82,133, 46,202,204,166,113, 59,140,134, 15, 48, 4,116, 61, 38,244, 27,194,168,194,175, 86,120, 52, 78, 68,172,208,172, 31, - 93,241,243,135,239,115,123,118, 3, 93, 24,154,222, 49, 37, 75, 21,228, 60,164, 45, 4,155, 94,115,142, 35,108,183,196,139,143, -185,249,209,132, 55, 94,124,153,233,139, 39, 40,173,209,227, 26, 66, 68, 42,149, 26, 43, 14, 92,227,104,215, 45, 91,235,176, 26, -202, 66, 16, 85, 66,199,111,108,160,169, 10,150, 33,208,136, 72, 20,130, 3,231, 56,247, 18,175, 21,119,170,130,143,199, 83,140, -243,216, 58,141,227,206,163,230, 91, 95, 62,228,171, 95,145,184,109,131,116, 61, 70,194,213,242,146,166,219, 98,131,231,195,135, - 87, 64,199,197,253, 13,162,185,132, 62, 57,183, 69,155, 58,165,241, 58,168,167,196, 39,118,253, 83,193, 60, 15,161,174,191, 62, - 89,185,139,189,200,112, 61,105, 90, 44,184,191, 88, 16,181,230, 74,215, 48,170,146,217, 75, 85, 18,181,162,111, 96, 52, 29,131, - 82,108,130,165, 22, 37, 55,149,228, 75, 70, 50,215, 71,120,181,165, 24, 31,160, 23,103,220,111,129, 81,155, 40, 99,155, 54, 3, - 65,247,248,235,166,128,187, 95,229, 63,253,218,183,153,207,231,244,155, 5,203,205, 61,188, 92,114,149,215,230,214,245, 72,111, - 49, 42,233,183,107, 83,177, 14,150, 27, 66,112,203,119,204,154,128,213,134,211,114, 68, 37, 60, 23, 34,221,243,131,201,140, 98, - 60,162,211, 25,219,241,228,188,250,186,232,251,148, 31,214,237,144,241, 77,147,240, 42,166, 74,103,189, 41,241,139, 13,219, 74, - 49,171,107,154,222,161,180, 98,107, 19, 45,238,182,128,113,140,252, 70, 89,177,142,158,169,208,168,169,225,101, 4,219, 81,207, - 15, 15,231,124,112, 49, 78, 74,114, 15, 30, 36, 87, 78,178,169,206, 16, 83,226, 94,241,179,143,139,122, 6,142, 34,181,223,181, -134,233,113, 82,178,137,234, 90, 78, 83,169, 50, 89,244, 9, 1,109,200, 64, 22,153,103,234, 67,213, 88,164,202,103,208, 7,127, - 94,251,240,206,171,124,251, 43, 95,229,189, 77, 3, 87,151,255,116, 65,125, 64, 85, 15,179,244, 33,184,239, 43,166, 41,185,163, -115, 9,153,130,203,166,229, 29,122, 94,157, 78,136, 81,210,181, 29,111,255,226, 29,126,252,224, 10,187,186,202, 66,254, 10, 31, - 34,227,194, 16,137, 88, 1,190,115,176,202, 38, 23, 93,214, 27,150, 89, 29,107, 82, 66, 57, 74,149, 8,145,233,120,198,124, 50, - 69,106,147,148,196,165,100,217,181, 9, 29,127,181,253,124,238,107,215,109,238, 28,177,245,158, 71,184,207,130, 47, 3, 86, 77, -100, 69,181,125,183,175, 50,189,182, 84,121,229,175,214,165,164, 46,228,170,178, 24, 2,118, 76,156, 80,223,100, 26,154, 76,179, -247,202,236,105, 20,228,150,187, 44, 51, 71, 62,209,213,112, 54,137,233, 12,226, 43, 79,182,139, 6,101,169,129,250, 54,206,244, -150,201,152,121, 85, 34,163,192,135,128, 68, 34,181, 34,134, 64,239, 59,218, 77,139,139,142, 77,179,198,147, 90,218,222, 90, 86, -157, 77,247,216,246,201,221,238, 19, 89, 24, 46, 37, 98,131, 36,164,139,169, 21, 63, 84,237, 66,237, 54,241, 32,149,155, 53, 34, - 14,170, 26, 41, 2, 94, 40,182, 77, 79, 97, 36,133,140, 4, 23, 9, 33, 34,181, 76,222, 53,144, 42,187, 65, 18, 86,134,157,170, -222,160,255,224,247,228, 98,241, 79,211, 14, 63,203,199,193,156,131,201,132,233,225,148, 88, 26,166,166,162, 84, 6, 71,146,190, -221,246, 22,105, 91, 54,219,150,197,249,226,233, 32, 28,158, 16, 74, 24,149,112,122,196, 27, 71, 83,190,121, 56,226, 55,142,198, - 28,141, 21,239, 63, 92,127,242,218,173,138,148, 20, 93, 91, 35,103, 63,133, 81,157,128,141,245,140, 59, 35, 67, 24,149,244,103, -139,204,208,200, 30,240, 54,181,151, 68,200, 95,163, 76,237,120,225, 17, 65, 35,156, 71, 84, 10,164, 65,132,152,184, 9,126,203, -253, 71,107,142,102,154, 89, 57, 71, 8, 77, 23, 97,211, 59, 54,109,207,202, 59,182,214,241,225,114, 69,231, 45, 23,221,134,243, -126,197, 7,221,134,179,229, 57,114,213, 50, 63, 60,130, 16, 80,198, 16, 92, 36,246, 14,187,234,105,206,214,124,116,181,102, 25, - 60,157,136, 56,163,176, 34,242,208, 71,186, 74,211, 6,216, 32,208,133, 65,121,143, 49, 10, 35, 36,174, 44,145,198,160,165, 0, - 99, 88,233,130, 43,235,185, 50, 5, 97, 84, 35,141,161,200, 62,241,149,169, 40,117,193, 68, 26,222, 28,207,248,198,201, 93,190, -124,248, 2,111,222,122,129, 77, 1,237, 38, 98,138,164,136,102, 32,201, 39, 3,134,128,182, 14, 29,194,117,251, 62,181,230,143, -145, 52,215, 36, 24,129,124,110,102, 24,159, 53,207, 13, 1, 92, 79,108,182, 9,255,208,108,210,218,213, 26,155,233,204, 35, 83, - 49, 82,145,215, 71,154, 3, 31, 24,107,133,209,154,166,111, 56,174, 70, 92,132,192, 69, 36,157,139, 85,153,214,131, 23,136, 66, - 38,206,251,248,132, 63,248,189,127,203, 87,191,252, 26,135, 71, 53,101,169,105,214, 45, 62,108, 40,138, 18, 79,214,112,176, 22, -225,114, 97, 28, 4, 50, 68, 42, 97, 57,213,201,120,201,147,204,149,238, 59, 65, 35, 53,171,117,203,249,213,130,127, 60,255,152, -248,224,193,174,120,121,222,200,234,179,152,166,120,159, 37,178, 51, 53,181, 27, 24, 47,137,151,222,117, 22, 39, 36, 86, 12,179, - 56,207, 23, 75,201,151,181,196, 10,193, 76, 40, 90,173, 56,208, 53,125, 81, 82, 85, 99,222, 67, 51,153,207, 88, 72, 9, 71, 7, - 80,141,211, 94,240, 54, 83,222,114,102, 90,100,145,156,103,188, 31,241, 84, 80,175, 10, 56,190,157,104, 62, 38, 75, 21, 6,153, -230, 45, 49, 5,183,228,103, 46, 97,187,200,115, 72,151, 90,243, 93, 6,207, 13, 92,220,231,125, 44, 46,121,239, 71, 63,250,167, - 13,232,195,205,209,250,241,153,250, 48,155,188,238, 61,101, 85, 53,113,141,100,130,206,226, 47, 87,220,211,150,191,254,135, 95, -240,183,127,253, 99,126,254,227,159, 96, 31,158,239,184,244, 64, 49,210, 20, 82, 18,144,200, 8,125,219,167, 42,207,219, 4,136, -155,212, 41,200, 21, 89,216, 63, 59, 30,129,228,100,122, 68, 81, 84, 8, 4,101, 89, 96,116,193,217,253,251,112,177, 72, 1,240, -243, 28,222,194,103,119, 49,177, 83,105, 27, 90,240,106, 79,143,125, 0,194,133,152,240, 15,131,216, 79,200, 82,132,195,124,215, -186,157, 25,129,218, 75, 16,100,166,163,233,220, 46, 14,121,150, 62, 0,232,134, 64,231,243,235, 16, 62,243,230,227, 78, 72,195, -125,194,251,147,185, 26, 22, 25,239,160, 18, 0,209,150,138,227,122,130,136, 26, 79,199,166,109, 82,238, 98, 35, 77,219,178,217, -172,177,193, 33,240, 92,110, 55,188,191, 88,167, 74,176,239, 18, 72, 39,186, 79, 47,134,228,178,125,218, 40,163,197, 69, 62,230, - 6,231,167, 33, 25, 9,225,218,246, 87,213,146, 90,106,154,174, 3,231,115, 87, 57,105,110,143,181,100,166, 4, 90, 70,100, 16, -180,249,255, 99,231,114,245,151,199, 84, 33,215, 80, 42,175, 79,216, 73, 38,127,222,160, 62,158, 96,199, 37, 98, 54,162, 86, 21, - 86, 8,140, 20,120,169,216, 4, 16,209,211,187,192,207,207,182,233, 16,178,185,179, 85,229,222, 94,153,173, 34, 7, 21,201,227, - 99,222, 60, 61,226,219, 55, 78,121,101,126,204,216,148,220,170,107,102, 53,188,251,209,197, 39, 84, 54,164,174,132,202, 35,169, - 40, 83,167,108, 54, 70, 30, 28,240, 95,221, 56,230, 55, 15, 79,248,114,173,248, 94,211, 36, 34,189, 82, 89,193, 81,164, 2, 66, - 6, 68,187, 77, 24, 13,101, 32,170,164,112,150, 41,154, 34, 88,132,243,105, 47,201,154,216, 53,252,227,213,138,218,120, 26, 7, - 54,106, 58, 34,143,250,158,171,174,229,106,211,224, 4, 60, 90, 47, 88,249,158, 38, 10,164,136, 4,169, 57,239,183, 44,206, 23, -212, 86, 34, 99,164,191, 76,250,237,205,217,138,247, 63,126,200, 59,155, 5, 75, 28,189, 49, 44, 66,100, 29, 5,157,128, 94, 9, -162,146,184, 66, 83, 35, 40,181,102,235, 29,141,143,156, 26,205, 66, 42, 52, 80, 43,201,149, 11, 89, 96, 69, 35,141,162, 54,138, -224, 3,227,162, 32, 56,199, 68,192,239, 31,156,242,214,209, 13,222, 60, 58,230,246,244,128,147,209,156, 87, 79, 95,228,214,205, - 35,198, 55, 15,185,156, 76, 49, 40,116, 52,152,222,163, 99, 72,254, 34, 90,161,133, 64, 27,205, 75,191,255, 91,252,214,191,250, - 54,239,255,240,251,123,192,185,180,215,196,175,110,245, 60,255,140,181,110, 39,197,218, 88,124,219,211, 41,193, 68, 41, 14,162, -229, 11,227, 57, 70, 74,182, 93,195, 68,107,214,193,113,223, 59,206,107, 67,172,139,164, 89, 48,159,194,180, 66,212, 19,168,102, -188,245,141,223,226,213,147, 91,220,185,123,152,140,209, 10,205,118,177, 96,219, 45,209,122, 76,101, 42,180, 20,216,222,226,131, -165, 42,167, 84,101,133, 86,130,117,111,185,108, 87, 64,160, 87, 37,231,162,228,222, 38,242,254,217, 5, 15,175, 46, 88,244, 29, - 31,174,175,114,155,198,254,106, 26,230,103,217,110, 58,251, 99, 12,194, 82,248,157,163,102, 22,152, 18, 34,123, 92,100,253,144, -127,165, 34,175,104, 77,140,130, 40, 37, 94,107,130, 50,196,162, 32, 42,131,169,107,110,205, 14,121,235,240,152, 87, 38, 35,190, -122, 56, 69,142, 20,139,160,240,155, 62,117, 60, 7,224,111,255,124,234,201,112,175,119,189,106,153,196,111, 0, 66,103,243, 6, - 79, 98, 13, 97,177,222,189,129, 34,207, 9,201,213,156, 41,118,200,221,255,216, 31,215, 51,245,103,180,224,187,103,252,110, 12, -172,191,255,206,227,200,104,178, 60,108,159, 17,253, 66,210,135,128, 18,146,198,237,169,129, 13,207, 17,114,160, 51, 25,193,108, -179,222,112,173, 88,116, 45,186, 54,140,138, 10, 98,224,193,197, 85,162,189,225, 62, 63,101,201,229, 85, 88,200, 93,111, 45,228, - 27, 24,179,165,223,208,146, 31, 42,244,161,242,206,146,181,248, 61,109,233,125,253,230, 32,119,191, 59, 84,225,158, 29, 94,162, -207,143,207, 48, 47,222,123,158,235, 36, 74, 62,221,106,255, 85,239,229,218,180, 40,166, 4, 98,185,101, 89,151,124,108,206,184, - 53,191, 65,187,134, 66, 43, 30,245, 45,211,106, 66,227,182,172,109, 75,239, 90,206,183,107, 70, 90,103, 11,183,161, 99, 96,159, -125, 94,253,230, 87,249,131, 55,190,194,229,250,146,159,252,217,159,239, 81,169,100,122,238,206, 67,185,135, 11, 40,196,174,163, -240,228,230, 89, 54,220, 15, 29, 69,244,212, 82, 97, 2,212, 49,210, 92,231, 93,158,145, 16,140,138,200,184, 80,124,180,241,232, -218,208, 53, 57,217, 17,185, 67,224,179, 32, 77, 17,118,116, 63,177, 55,139,127,214,136,233, 73, 4,212,254,124, 48, 4, 38, 99, -131, 17,146, 7,222, 18, 28, 76,235,154, 70, 72, 86, 4,106,105, 80,101, 65,121,235,128,110, 93, 37,112,226,102,149,124, 14,164, - 78,235,160,205,143,183,222,130,214,188, 54,159,112, 48,158,227,128,201,104, 12, 69,203,201,244, 34,181,205, 99,183,163, 48,198, -240,196,117,119,160, 38, 9,135, 51,170,210, 11,108,151, 32,111,242, 71,163, 41, 47, 31,222,192, 16, 48,245,152,255,252,141, 13, -255,253,213, 50,177, 71,132, 72,201,114,151,169,137,179, 99,104, 22, 73,153, 76, 8, 98,244,196, 32, 8, 69,133,167, 69,248, 2, -161,122,112, 13, 81, 58,194,106,193,255,248,195, 31,243,199, 95,182,156,110,206, 56, 60,184, 73,208,154, 77,112, 8, 17,136,206, -177,240,142,166,247, 28, 25,195, 88,150,200, 24,233, 8,220,243, 27,126,242,238,247,184,251,209,156,187,245, 1, 49, 4,150, 93, -195,125,215,112,105, 20,177,186, 69, 17, 60, 99, 20, 86, 66, 85, 8,172,139,168,210,224,189, 37,170, 4,232,155,234,130, 96, 91, -238,175,215, 28, 72,201, 74,105, 46,235,146, 19, 33,216,216, 64,239, 60,194, 24, 92,140,152, 16, 57, 40, 12,213,100,196, 29, 51, -231,166,214,148,194, 80, 0,117, 41, 49, 82, 48, 81,130,155,197,203,252, 54,183,249,195, 91, 75,214,205, 10,239, 35,139,230,146, -224,123,218,118,203,119,239,159,241,198,180, 4, 34,127,247,203, 11, 52, 63,161,218, 76,177,199, 22,233, 92,166,188, 61,223,140, - 37, 60,177,172,196, 19, 95,175, 63,182,109,250,220, 20,240,240,130, 7, 55,142,240,243, 17,191,109, 74,108, 76,182,197, 91, 31, -104, 66, 96,163, 5,161, 39, 37,100,163, 2,209,247,144,145,245, 71,102,202,203,167,183,208,133,164,109, 91,148, 80,172, 87,107, - 58,219, 98,132,161,210, 26, 99, 74, 84, 47,217,148, 27,156,243,116,182,167, 46, 43,140, 48, 72, 25,120,180,241,172,195,150, 35, -113,147, 27,167,167,220,169, 74, 46,214, 91,254,254,254, 61,126,182,188, 72,227,227, 27,135,105, 45, 62, 20,136,216, 37,252,192, -147, 45,248,231,181,226,181,126,186,213,237,246,168,220,195, 57,167,117, 2, 76, 11, 11,141,134,106,192, 12,165, 98,238,102, 93, - 80,133, 12,141, 39,209,249,188, 16,148, 66, 33, 67, 90,189, 18, 0, 0, 32, 0, 73, 68, 65, 84, 76,133, 82, 5, 5,146,178,170, - 56, 86, 5, 86,151,252,142, 80,188, 57,170,249, 15,135, 35, 30, 60,218,164, 89,123,187,218,141, 8,247,164,154,227,115,103,234, -151,103,132, 91, 47, 82, 24, 67,143, 73,104, 93, 35, 9,189, 75,122,191,171, 85,170, 78,135, 57,106,116,185,117, 25, 62,191,201, -202, 63, 53, 88,238,211,102,161, 58,255, 78,208, 79,247,158,134,116,103, 82, 82,206, 43, 42, 85, 64,244,196,172, 42,182,123,140, -204,113, 28, 2,251, 32,206, 63,184,132, 69, 88,111,215, 84,198,176,217, 88,148,134, 69,179,205,129,242,215,189, 96, 46, 43,142, - 13, 1, 54, 87, 70,131, 81,192,254,195, 15,115,221, 97, 49, 63,121,173,202, 98, 15, 13, 63,152,222,228,191,177,125, 62,144,217, - 89,177,178,159, 48,236, 61,135,149, 59,128,218, 39, 9,165, 60,121,239, 68,230,148,123,145, 64,128, 77,199,163,237, 22,207,199, - 76,203, 25,203, 54, 80, 21, 53,109,215,115,222,174, 9,177,231,188,217,114,119, 58,231, 39,239,190,151,109, 11,179, 71,184,205, - 9,166,206, 55,122,160,245, 45,155, 20,208,207, 30, 60,254,220,165,220,157,106,206,166,214,112,204,116, 1,235,118,110,106, 82, -160,240,148, 74,227,109,100,162,253,181, 56,247,180,132, 62, 68, 70, 67,135, 72, 64,141,192, 17, 49, 72, 14,203,200, 85,227, 41, - 10, 65,223,199,107,145,149,235,192,222,231, 36,194, 15,236, 4,118,216,137,200,227,192, 69,246,112, 18,143, 25,170,164,100,243, -162,117, 92, 85, 61,166,168,120,179, 26,177,245,129,121,161,184, 93, 22, 80,107,126,122,214,225,166,227, 20, 56,199, 53, 52,147, -212,105, 82,185,251,118,152,125,158,111, 30, 2,240,161, 11,156,122,199,188, 30,177,142, 9, 85,254,115, 49,130,187, 55,179, 64, - 71,158,151,219, 38,113,112,135, 57,189,206, 20,216, 81,150, 9,181, 29,152, 41,244,158, 18, 69,235, 61,186, 44,185,180, 61,247, -228, 56, 29,192,219,188,222,218, 85,214, 84,128,232, 54, 8, 89, 37,198, 9,128,169, 9,177,133,190, 69,148, 18,175, 29,201,203, -203, 19,131, 33, 72,139,235, 44,127,254,131,159, 80, 77,198,124,245,246, 1, 7,163, 41,211,201, 49, 94, 73,180,237,152, 22,134, - 64, 75,140, 21, 94,168,164, 18, 38, 53,141,235, 89,232,130,127,247,241, 47,105,253, 59,220, 85,138,169, 72, 9,238,120, 60, 71, - 53, 51,162,168, 17, 46, 80, 58,207,184, 44,105,125,164, 12,142, 66, 10,164,139,212, 74, 96,163,134,178, 64,245, 13,139,222,114, - 82, 4,218,135, 87, 60, 82, 42,205,134, 77,133,236,122,122,165, 57,174, 12,115,231, 57, 42, 74,102,133,100, 60,170,208, 94, 16, - 60,232, 40, 24,213, 6, 23, 3, 39, 58,210,183,150, 23,102, 71,248,241,148,109,223,162, 14,142,216,174, 86,152, 99,205,159,190, - 96, 9,182,131, 16,249,227,155, 11,198,122,204, 95,254, 73,228, 7,139, 43,238,125,188, 66,108,214,233,108,216,174,247,230,241, - 79,207,101, 3,207,159,213, 62,133,239,161,135, 51,203,217,162,228, 63,224,120,125, 62,101, 90, 86, 52, 4, 62, 34,226,115,130, - 47,149, 36, 56,203,100, 50, 99,235, 35, 7,186,228,141,201, 41,135, 71,167,104, 96,185,106,104,150,139,196, 32,235,122, 92,238, -222,105, 81, 32, 10,197,184,168,177, 46,205,227, 93, 8, 24, 85, 50, 42, 39,156,140,239, 48, 26,157, 82,141,231, 28,206, 11,188, -240, 28, 90, 5,116,185,109, 77,106,251, 31, 29,164,222,253,213, 26,161,214,169, 3,173,158, 0,166,150, 69, 6,196, 13, 2, 90, -123, 1,127,112, 68, 30, 18,237, 46, 51,120,186, 39,227, 79, 46,150,108,159,215,114, 65,215, 58,238,107, 79, 21,224, 5, 41,177, - 58,160,133,196, 75,197, 10, 65, 39, 13,133, 41,241, 66, 82, 32, 40, 39, 19,188,210,160, 75,250,224,185,121,224,121, 16, 11, 68, -223,130, 60, 76,230, 98, 0, 23, 23,169, 8,242, 22, 97,219,103,204,212,173,131,209, 4, 68,106,213, 17, 21,170, 40, 18,191,174, -207,173,151,245, 58,101,245, 42, 62,157,195,133,248,207, 75, 99,251,181,231,240,123,222,225,215, 1, 43,238, 60,164,111, 30,242, -214,171, 55,185,115,112,192, 23, 79, 79, 56, 28,141,185,236, 27,182,157, 77,128,143,109,159, 5, 11,212,227, 8, 20,124,214, 36, -214,215,109,254,109,116,108, 93,199,102,211, 18,109, 6,140,100, 32,196,231, 31, 57,228, 3,221,100,196,110,200, 96,110, 53,112, - 30,213,238,103, 3, 53,237,121, 20, 8,145,233,105,206, 63,238,154,229,195, 78,100,199,231,121,167,217,227, 92,135, 12,126,203, -163,154,235,118,250, 32,123,250,228,122, 24,168,135,207, 90, 39, 3, 22,194,199, 68,225,216,108,177,214,177,180,158,179,237,150, -243,109,195,131,245,146,181,107,121,240,209, 25,139,179, 75,250,224, 57,251,229,199,169, 37,232, 92,162,202,181,155,235, 0,124, -109,247, 58, 0,250,154, 13,103,103,107,184,119,111,119, 45,116, 86,212, 27,212,239,204, 96,137, 40, 82,203, 46, 88, 16,146,209, - 48,197,136, 73, 30, 82, 33,169,164, 36, 34,152, 86,130,109,155, 80,240,133, 16, 76,132,160, 18,146, 82, 72, 60,176, 33, 85, 99, - 83, 69,146,161, 53,130,198,250, 93, 22, 25,124,222, 83,236, 84,255,180,120,220,229,110, 96, 16, 12,159, 3,102,226, 73,183, 52, - 37,161,168,137,227, 26,111, 12, 95, 51,154,219,147,146, 73, 97,152, 20, 37,117,140, 92,161, 40,203,154,149, 22, 68,163, 96, 92, -241,173,249,156,201,168,230,168,212, 76,235,154,182, 52,248, 34,105,183, 63, 16, 2,107,198,212,178,100,105, 3, 15,125,228, 47, -122,155, 70, 21,211, 58,181, 84,235, 42, 29,158, 78, 36, 60,133,218, 51,126, 10, 38,143, 97,178,147, 95,173,249,176,174, 56, 84, - 21,107,161,121,216, 88,254,175,197, 34, 21, 13,171, 77,154, 25,146, 57,189, 33, 37,146, 66,237,113,136, 67, 50,129, 17, 82,165, -100, 80,120,162,211,217,249, 44, 16,188, 38,120,135, 15, 2,219,247,124,240,104,193, 47, 30, 46,248,201,251, 31,227,101,203,173, -170, 96,109, 91, 42, 1, 54,122,148, 84, 68, 4, 93,102,106, 60,180, 45, 63,109, 59,250, 40,121, 20, 5, 11, 41,240, 81, 34, 70, - 35,182, 14, 54, 50, 73, 63,203, 82,179,234,193,107, 65,139,196,118, 62, 77, 25,250,192,185, 75,244,182, 90,105,214,174,165,107, - 90,138,174,165,245,142,105,215, 34,156,101, 29, 60, 68,207, 77, 34, 50, 6, 70,193,115,208, 5,198,198, 96,140, 65, 8,137, 48, -201, 22,212, 55, 29,218, 5, 74,173, 40,163,199, 40,201, 44, 66,129,224, 96, 52,166,234,123,102, 74,115,247,228, 46,135,229,132, -187, 7, 55,153,160,121,101, 60, 99, 90, 21,220, 60, 40, 57, 62,158,115,223,133,228,103, 97,178,194,227, 51,206,132,103,241,220, -159,213, 36, 18,251, 0,178,174,227,131,203, 53, 75, 21,249,229,178,225,103,109,203,125,235,120,100, 61,181, 73,254,244, 65, 42, - 74, 97,232,189,163, 42, 10, 14,202,212, 1,170,234,130,224, 60,190,183, 28, 11,149,196,124,164, 78,115,242,124, 22,117,237,150, -214,181, 52, 93,139,144,129, 82, 75,148,212,124,233,139, 95,225,173, 47,222,226,133, 91, 83,156, 11,184,182,101,187, 89,241,211, -243,143, 88,186,212,114, 23,190,231, 15,142,143,249,234,201,156,175,221, 60,226,167, 93,158,135,111, 87,215,227,190, 84, 88,100, -155,102, 23,174, 19,202,199,180, 33,158, 44,134,194,243,207,102, 49,140,214,250,164, 40,121,207, 59, 94, 19,138,211, 66, 97,133, -162,146,145,165, 52,108, 77,197,123,202, 96,131,167, 82, 5,163,202,224,156, 69, 41,201,170,107,153,148,117, 82,254, 35,208, 76, -103, 80, 23,188,122,122,147,171, 73,205, 23,111,223, 69, 31,205,217, 72, 13,162, 64, 68,123,125, 63, 51, 79, 93, 39,222,172, 46, -144,179, 41,135,147,138,173,239, 40,141,225,133,195, 9,203, 77,147, 14, 79,223,165,202, 98, 0, 81,197, 12, 78,250,255, 67,235, -253,179,130,235, 30, 75, 71,247,200, 33, 90,162,110, 28,242,133,211, 27, 28,141,166, 8,169, 41,141,161,150,134,251,143, 22,176, -220, 38, 47, 95,155, 91,167, 3, 69,141, 62, 27,151,144,218,153,209,239,108, 77, 93, 6,165, 53,109,250,217, 16,124,126,237,113, -131,218,155,205,202,157,189,168, 12,187,121, 59,159,208, 10, 31,244,248,133,222, 33, 83, 7,217,215,161,125,175,242,123,244, 46, - 3,231,220,238, 58, 10,118, 62,196, 3, 40,234, 73,127,119,153,219,250,195,235, 24,126,102,178,203, 92,161,211, 92, 74, 85,153, - 62, 37, 19, 86,227, 60, 39,145, 23, 87,208,116,116, 31,159,165, 86,236,106, 3,171,203,140,109,112, 41, 0,119, 93, 58,244,227, - 32,115,251, 68,192,235,250,116,223,246,175,133, 12, 9, 23, 50,188, 23,155,109, 78,251, 28, 60,124,234, 66, 89, 37,137, 54, 50, - 83, 17,163, 12, 70,169,132,237, 83,201, 9,111,170, 19, 8,178,212, 18,239, 2, 90, 68,180, 80,196,224, 57, 18,130, 86, 66, 25, - 21,133,132, 71,157,163,148, 18, 59,236, 33,177,135,141,136, 89,194,214,103, 45,247,225, 62, 12,238,130, 33,238, 2,250,112,178, - 74,145,240, 12,195,232, 99, 50,130,113,205,183,234,146,131,210, 80,233, 34,255,151, 32, 10,201,105, 85,112, 97, 3,189,209, 40, - 93,242, 95,158, 28,163, 11,195, 87,167, 51, 94,153,159,242,226,168,230,214,104,204, 5,130, 38,235,226,159,201,146,159, 8, 73, -135,226,163, 24,248,102,125,192,116, 52,162, 46,167, 44, 76,153, 42,241,186, 78, 96,199,241, 8, 14,143,146, 2,227,124, 14, 47, -156,192,205, 99, 56,152,229, 89,125, 2, 12,189,173, 75,254,161,115,188, 61,236,163,205, 50,119, 70,178,102,252,208,114, 50, 69, -178,162,214, 10, 38, 19, 68,111,179, 70, 70,204, 1, 29,136,150,232, 83,130, 27,133, 32, 72, 75,240, 17, 79,139,119, 61,190, 89, -225, 55, 13,143,174,122,230, 99,141, 11,142,149,247,105,164, 80,214,184, 24,233, 99,196, 70,199,207,187, 45,247,109,196,134, 72, - 48,154, 82, 87, 84, 85,137,143, 10, 39,116,214,132,143,108,162, 72,213,121,161,105,123,143,147, 2,219, 71, 2, 30, 25, 2, 50, - 6,150,192, 44, 8,108,179, 37, 10,137,246, 29,173,237,120,232,122,198,170,224,170,107,208, 8, 78,138,146,109,211,112, 56, 30, - 99,172,199,117,150,222,246,108,150, 13,205,106,139, 80, 18, 25, 60, 90,165,253,166,173, 69, 70, 40,164, 64,216,158,170, 44,153, -140, 38,200, 16, 41,116,137, 86, 9, 7, 84, 10,197,152,200,188,168,168, 75,195,237,113,197,237,155, 71,232,131, 25,231, 49,161, -182, 99, 84,136, 66, 94, 87,161,226, 57, 85,186,248,196, 66,195,179,184, 92,113,177,217,178,186,108,217,110,123,204,124, 76,107, -251,196,185, 23,176,117,142, 73, 61, 38,184, 4,110,156,152, 9,133,146,188, 60, 46,184, 83, 24,122, 23,121,233,240,128,224, 60, - 23,222, 99,148,192,123,143, 11, 61,235,229, 58,123, 68, 8,170,170,100, 92, 76,185,123,247, 5, 78,143,198,180,157,231,195, 15, - 47,120,255,253,123,188,255,224, 30,255,112,249,113, 94, 75,129,175,207, 15,249,198,108,202,171,227, 99, 94,153,158,240,218,164, -230,123,203, 62,117,142,252, 54,123, 64, 20, 41,150,177,199,126, 25,198,146,195,121,166, 63,155,197,184, 8, 33,159, 71, 1,235, - 3, 45, 34, 41,123, 35,248, 32, 70, 26,163, 88,203,130, 51, 93, 49, 47,106, 74, 4,194, 7,148,210,120, 31,168,180, 97,217,183, - 32,193, 41,205,157,162,224,119,142,143, 57,156,204,249, 55, 71, 55,184,115,114,131,215,166, 51, 78,111,221,228,157,135, 15, 96, - 60, 69,116,201, 5, 81,113,252,133,239, 48,174,160, 24,163,238,220,224,180,154,242,141,187, 47,115, 88, 87,220, 28,143, 9, 34, -208,201, 64, 95, 23, 41,131,185, 56,223,129,121, 2,255,178, 42,244,231, 5,245,129,214,165, 36, 20,134,151, 94,187,197, 23, 78, - 94, 68,171,132,188,157,212, 83,100,132, 43,183,101,251,224, 44,169,198, 57,118,252,112, 57,248,118,103,145, 27,225,179,169, 73, - 22,218,240, 54, 85,146, 49,236,132,250,127,173, 96,206, 14,196, 37,247, 42,235,152, 27,104, 49,235, 22,199,248,233, 28,240,100, -142, 20,131, 82, 30,113,231,164, 55, 84,249,170, 72,149,186,235, 51, 80,196,239,124,210, 7,245,180,103,129,188,134,128,222,239, -129,215,170, 34,211,229,246, 90, 96,186,206, 45,248,172,143, 44,115, 23,164,219,164,107,230,187, 4,136,178,118, 7, 26,177,109, - 6,251,181,105, 3, 41,185, 75, 52,158,236, 68, 8,241,244,181, 24, 50,114,138,236,247,154, 77,138, 6,160, 92,182,127, 36, 68, - 70, 70,210, 91,152,142, 36,129,192,204, 72,148, 74,192,163, 40, 4, 42, 70,148,143,140,149,202,183, 39, 82, 74,201, 50, 4, 70, - 8,150,206,225,124,224,164,212, 44, 93,192,134, 44, 19,123, 45,216,148, 49, 28,110, 24,223,200,148,104,239, 3,207, 76,110,209, -203,189,170,125,160,222,201,108,170,164, 10, 78,166, 5,191, 49, 29, 37,203, 16, 9, 82,168, 36,217, 47, 53, 49, 70,206,163,228, -202, 59,254, 85, 61, 97, 90,143, 57, 40, 19, 40, 73,232,164,175,239,164,100, 29, 4,107, 83,226,101,210,208,126,179, 26,241, 82, - 89,243, 70, 57,226,112, 82,112,219, 24,238, 78,102,220,119,158, 70,155, 20,124, 77,145,130,187, 34, 7,246, 57,212,211,164,164, - 86,142, 18,168,180, 30, 37, 64, 92, 81,165,170,222,231, 49,134,206,236,131,211, 35, 56,152,195,237, 91,240,210,203, 48, 31, 39, - 5,179, 81,137, 32,173, 53,209,219,244,183,109,159,174, 65, 93, 19,157, 79,183, 74, 65, 36, 16,100, 32,108,219,107, 58,151, 15, - 61,206, 74,222,221, 56,222,238, 44, 63, 95,116,160, 60,115, 9, 94, 68,214,221,134, 95,118, 45,127,189,233,112, 62,226,180,162, - 48, 5, 85,161, 83, 34,107, 84,178,142,168, 52,222, 90,130, 8, 20,186, 96,221,121,138, 66,225,251, 64,235, 2,227, 90, 33, 67, -228,188,235, 41,219, 22,215,111, 89,119, 29,135, 66, 18,251, 13,155,108,151,252,151,151, 11,180, 52, 88,223,177,218,180,148,165, -161, 82,154,198, 59,206,182, 91,214,235, 37,163,224, 88, 54, 43, 46, 23, 75,198, 69, 1,206, 82, 6,144, 74,161, 70,163,100, 56, - 37, 64, 27,131, 12, 1, 51, 30, 35, 11, 67,236, 44, 82, 72,124,215, 19,162, 67, 16,168, 99,228, 70, 85, 51,175, 43,230, 82,242, -165, 27,135,204, 71, 37,167, 39, 51, 62,242, 50,221, 39, 15, 20, 50, 25,233,236, 7,114, 83, 93, 43,159,137, 33, 41, 55, 89, 46, -251, 73,108,144,207, 50,196,182,199,159,111, 32,251, 35, 56, 27,136, 82, 19,157, 99,166, 21,117, 81, 35,108,195,235,199, 7,220, -172, 13,194,104,238,206, 70, 68, 41, 16,163, 49, 87,162,166, 52, 83, 80,138,182,185,226,170, 89,114,177,217, 18,133,199,132,228, -150,119,114,227,132,211,195,154, 66, 71,222,189,247, 49,255,221,223,253, 61,247,126,244, 54, 60,122,148,206,177,202,240,159,221, -188,201,216,140, 57, 24, 79,169, 71,147,164,237, 63, 86,188,127,209,164,115,121, 48,123, 26, 58,183, 66,166, 49,156,214,187,121, -249,224,255,190,223,225,251, 85,182,199, 60, 97,174, 19,225,172,135,191,223,182,172,140,230,255,232, 61, 27, 17,248,113,151,220, -222, 14,138, 2, 45, 37,198, 40, 20,146,222,247, 52,206, 18,131,165, 17,145, 62,104,222, 56, 56,228,203, 7, 71,188, 57, 59,225, -100, 50,225, 11,211, 25,186,158,224,123,199,139,119, 95,194, 23,176,157,207,241,219, 30,197,173,175,127,167,120,253, 53,126,251, -173,183,184,125,116,135, 47,156,188, 64,223, 59, 94, 56,189, 65, 64, 81, 98,120,245,228,148,113,169,120, 24,186, 68, 73,217, 54, -255,241,228, 96,127, 29, 16,221,116,156, 14,154,224, 30,159,167, 40, 9,163, 89, 82,207, 67,177, 80,130,163, 81,205,141,195, 91, - 40,101,232,251,150, 85,211,176,108, 59,150, 87,219,212,150, 85, 50, 85,121, 74,102, 26,160, 73, 65,170,168,118,104, 93,153,179, -187,144,171, 48,235, 19, 55, 58,248,207,247,250,149,206, 7,162,201,128, 46,191, 11,164, 82,114,109, 24, 48,160, 56, 62,109, 7, -101, 8,132,215, 78, 65, 50, 7, 16,151,186, 1, 34, 39, 38, 67, 75, 91,102,231, 62, 33,115, 64,205, 63,123, 86, 2,161,116,174, -162,195,238,112, 24,218,243, 67,139,182,172, 82, 21,237, 99,146, 53,141, 3,207,222,237, 56,243, 3, 72,103,176,253, 29,222,219, -190,225,201,190,205,235,245, 33, 19,158, 47, 97, 44,179,175,177,200,221,148,114,143, 22, 41,228,206,233, 45, 66,105, 20, 69, 5, - 93, 23, 81, 82, 33,133,160,146,208, 33,216,246, 9,253,174, 68,162, 25, 85, 34,153,236,180, 49, 80, 10,201,202, 5,106,145,230, -139, 23,214, 17,163,160,243,123,140,132,152,105,145,131, 85,163,202, 38, 61, 46,236,128,144,131,221,192,181,244,236, 94,151,201, -101, 33,160,152, 16,231, 91, 83,241,133, 81, 65, 97, 12, 18,129, 86, 26, 45, 21, 13,129, 82,105, 30,118, 29, 7, 90,243,202,100, -130, 64, 49, 46, 42,150, 33, 82, 86, 37,202, 20, 56,153,146,138,119, 35, 68, 93, 66, 89,242,133,162,226,165, 81,197,100, 50, 98, -102, 10,122, 37, 17, 40, 42, 93,242,158,203,199,152, 41,178,225,209, 24, 85, 77, 41,170, 9,245,193, 45, 94, 46,199, 92, 84, 99, - 40,199, 9, 40, 37,242,186, 48,227, 36,105,171, 10,168,102,233,251,131, 23,224,240, 5, 24, 31, 65, 49,129,249,141, 68,241, 57, -190, 1,163, 26, 49,171,225,248, 48, 89,179,222, 60,129,131, 3,152, 77, 18,204,231,197, 91,137, 20,114,122, 66,220,110,137,243, - 83,130, 13,196, 62, 5,247,224, 37, 65,234,252,189,103,217, 71,182,177,195,227,104,125,224,123,203,134,181,237,241, 2,188, 20, - 72,105, 48, 90, 51, 46, 74,180,144,140, 43,133, 8,129,210,104,202, 66,177,218,108, 40,100, 74,152,124, 38,216, 92,173, 59, 2, -142,166,105,241, 93,195, 68, 8,164,181,172,187, 13, 74,105,238, 89,203,125,107,217, 70,197,205,131,116, 48,247,117,205,187,235, -158, 63, 59, 95,208, 24,193,195,102,203,155,243, 49, 87,237, 6,169, 37, 63, 95,109,184, 88, 47,144,222,163,187, 6, 89, 24,108, -187, 69, 42,133, 44, 74,162,115,148,213, 24,161, 13,161,233,145, 38, 17,219,250,174,161,247, 61, 93,223, 80, 41,131, 65, 50,142, -130,163,106, 68, 41, 37,243,170,102,164, 21,175, 31, 79,169,199, 5,151, 85,141,215, 21,200, 42, 85,239, 93,198, 56,248, 44,165, -170,117,186, 71, 36,208,173,144,123,238,156, 3,216,246, 9, 74, 28,219, 22,150, 75,196,163, 21, 8,193,111,191,242, 26,175, 31, -159, 82, 11,152,106,193,173,217,140,211, 73,205,205,233,136, 94, 73, 84,169,233,181, 66,141,107, 86, 62,237,233,174,239, 88, 55, -107, 54,109, 75,244,158,217,104,194,168, 26,113,124,116,202,104,100,184, 92, 55,108, 87, 27,254,230, 7, 63, 66, 60,120, 23, 54, -107, 68,212,112, 60,231, 95, 31,157,114,115, 58,197, 34,105, 16, 84,245,136,251,206,243,174,137, 9,201,239,251,199, 99,129,179, - 59,134,207,126,251,125,120,255, 70,239, 24, 71,159, 96, 57, 46,246,207, 64,161,192, 40, 30,181, 14,154,158, 51, 7, 75, 23,104, -117, 96,170, 75,166, 82, 98,144,201,249, 45,128,247, 73, 74,183, 21,130,186, 48,188, 94, 79,208, 74, 81,141,199, 76,234,138,178, - 48, 76,198, 21, 91, 97,240,245, 4,239, 37,119,230, 7,232, 89,141,226,139,255,250, 59, 95,188,251, 34, 47, 31,189,128, 41,106, -166,147,138,211, 27,183,210, 65,160, 74, 78,143,143, 9,189,101, 82, 22,188,113,114, 19, 89, 22,156, 15, 85, 89,215,253,203, 9, -234,197, 46,227, 39,232,164, 99, 61,124,212, 73,171, 29,163,210,108,112,219, 80, 77, 43,110, 31,223, 68, 75,205,178,109, 88,181, - 45, 23,155, 13, 27, 23, 19, 79, 93,202,116,240, 22,249, 48,214, 58, 37, 5,131, 83, 79,204,183,212,250,236,207,219,165, 25, 75, -223,124,190,215,111,116, 10,118,131,115,208,224,165,190,111,217, 39, 7,112, 88,120,218,138,243,147, 40, 43, 3,189, 75,136,132, -172, 31,146, 29,231,118,146,167,125,150,160, 29,156,246,244, 30,207,251, 89, 45,254, 65,138,118,160, 77,117,109,202,238, 7,219, - 94,159,223,147,235, 82,181,172,179,231, 59, 89, 31, 89,100,209,155,144,129,153, 90,237,172,128,159, 21,160,165,120, 60,160, 15, -137,195, 53, 46, 32, 60,141, 40, 31,232,127,168, 52,203,142,153,194, 55,140,100, 50,136, 74,201,200,177, 74,122,219,189, 23,140, -181,196, 75,208, 8,188,134, 34, 36, 97,156, 81,136,108, 0, 35, 69, 22, 49, 12,212, 82,112,238, 28,189,143, 40, 37, 65, 4,156, -144,248,193,181,238,122,110,158,120,173, 41,232,229,228, 74,239,129, 31, 7,223,250,161, 13, 47,242, 97, 51,140, 49, 68,154,168, - 81, 26,142,198,134,137, 22, 4,161, 81, 49,160,149,160,140,146, 69,240,124, 28, 34,183,116, 65,109, 20,149, 80, 56,146,252,104, -140, 73,116,197,122,152,143, 70,108,187,158, 11, 83,242, 39,245,136, 27, 85,193,164,210,172,123,201,214, 58,166,245,152,117,231, -169, 10,205, 54,194, 66,170,228,163,173, 52,255,230,224,152,215,170,146,111, 30, 28,240,166, 81,188, 80, 87,124,105, 52,199,171, -130,243, 8, 20, 35, 48,163, 68,133, 53, 89,196, 67,104,168,231,188,121,122,147,163,106,204,241,244,152,249,193, 49,186,154,178, -173,166, 41,176, 76, 15,161, 62, 64, 40, 5, 55,110,165, 81,195,104, 12,167,119,136,211, 10, 78,239,192,241, 65, 18,105,185,243, - 42,193, 89,226,184, 78,129, 60, 42, 66,232,137, 69, 73,208,154, 16, 36,182,119, 60, 90,116,188,211, 90,126,126,177, 98, 11, 4, -231, 9, 74, 16,140, 33,104,195, 72, 43, 42,169, 56, 25,149, 28, 9,137, 38, 48, 17, 18,235, 60,181, 86,184,222,179, 70,208, 90, -203,213,118,131, 13,145,179,117,131,116, 45,139,190,229,253,205, 21,219,118,205,165, 11, 60,176,150,183,215, 27,154,168,249,210, -141, 99,238, 93,109,153,215, 21,203, 69,139,168, 38,220,170, 43, 30,246, 17, 99,106,230, 37, 28, 77, 39, 60,104,123,126,210, 57, - 54,120, 86,214,178, 45, 12, 86, 21, 68,173, 89,109, 27,150, 2, 58,103,209, 74, 35, 59,143,154,142, 8,157,163,109, 55, 4, 17, - 89,119, 43,130, 76,107, 78,132,128, 82,138,224, 29,138, 72,161, 12, 81, 73, 70, 82,115, 50, 26,241, 27,243, 9,119,199, 21,191, -125, 50,230, 7, 61, 41,217,234, 35, 4, 71,172, 70,185,179,146, 71, 88,213, 52, 37,250,133,222, 25, 67, 61,167, 45,143, 77,221, - 2,198, 51,254,248,183,190, 65, 93, 40,230,227, 17,139,245,150, 55,142,142, 41,140,102,153, 3,171, 55,154, 86, 10, 30, 88,205, - 58, 10, 54,125,160,117, 93,202,113,125,143, 23,142,113, 89,115, 58,191,193,203,175,190,200,201, 97, 77, 45, 37,239,190,251, 1, -223,255,127,255, 38, 89, 94, 15, 32, 95, 23, 24, 29,140,121,161, 24, 19,202, 17, 93,132,183,155, 13, 63,107, 60,231,146,164,175, -210,248,199, 99,129,220, 59,251,134,226, 97,168,202, 93, 62,131,162,218,157, 97,241, 87,119,171,133, 78,166, 66,148,114,135,153, - 81, 58,119,153, 34, 91, 45, 57,235,183, 28,102, 7, 58, 31, 44,141,107,233,189,103, 19,123, 30,181,158,111, 30, 30,225,163,224, -104, 50,167, 11, 1, 93, 26, 58,161, 18,188,100, 92,211,134,136, 42, 39, 24, 89,114, 88, 77, 81,188,249,251,223,249,189,215,191, -204,209,209, 9,179,217,132,233,108, 66,111, 29,227,113,205,100, 58,162,107,122, 14,142,142, 24, 79, 38,152, 40,185, 49,157, 50, - 25, 21,124,100, 52,209,171,164,237,203,191,128, 22,124, 33, 19, 66, 93, 10,184, 90, 39,137,215,161,202,157,206,211,194,204, 51, - 63,124,228,226,189,251, 92,200,200,197,122,137, 66,114,182, 89,208, 57,199,230,193,249,206,241,202,103, 91,197, 34, 43,110, 21, -106, 39,116, 51,208,192, 66, 62,120, 67,191, 19, 98,249, 92, 84,189, 12,112, 25, 68, 13,134, 92,112,255,241,100,230,134,235, 79, - 65, 67,213,185,253, 60,120,113, 15, 45, 92, 37,211,124, 91,102, 14,186,205, 74,103,215,214,187,195, 28, 93,236,253, 94,120, 54, - 48,110, 8,172,131,150,252, 16,144, 7,249, 88,149,147, 15,153, 65, 42,195, 11, 27,213,233,223,213, 36,139,227,100, 85, 55,181, -247,250,158,156,113, 13,216,128,253,160, 62, 84,218, 62,211,173, 76,158,227, 15,191, 51,184,221,105,177,167, 83,111,216,167, 68, -140, 84, 74,114, 52,130, 88,106, 54,109,224,184, 20,180, 34, 82, 72,197,170,207,147, 22, 37, 48, 49, 82, 75,133,138,176,138,201, - 86, 17, 34,193,129, 22, 73,203,122, 25, 61, 5,130,101,235,119,246,198, 98,111,138, 41,213, 94, 96, 79, 38, 51,215, 72,222,107, -250, 98,254,155,225,186,135,176,115, 99,243, 30,164,230, 3, 47,249,210,216, 48, 50, 5,165, 84,120, 17, 81, 18,190,223, 88,254, -177,177,212, 33,112,168, 53, 70, 21, 8, 20, 74, 9, 36, 18,165, 20,198,104,222, 89,182,220, 11,112, 74,224,229,170,224,120, 92, -225, 81, 20,218,112,102, 29, 42, 66, 85, 22,172, 28,104, 93,242,190, 77, 35,159, 47,215, 99, 94, 80,154, 23,103, 51,164,210, 24, - 35,153,214, 53, 72,197,121,103,121, 80,142,211,107, 53, 38, 85,226,101, 1, 66,113, 52,155,242, 71,163,154,175, 29,141,249,210, -141, 41,119, 70, 37, 47, 21, 48, 42, 43,222, 9,192,120,150, 70, 46,186,128,178, 66, 84, 19,168,103, 48, 57, 1, 41,121,235,198, - 75,172, 17,152,241, 33, 95,120,225, 37, 30, 58, 7, 71, 71,196, 66, 18, 15,230, 68,165,136, 62, 18, 75,157,116,185,133, 36, 10, - 79,104, 91,226,122, 73,116,145, 96,123, 66,136, 4,109, 8, 74,224, 68,100,164, 53,115, 41,185,173, 21, 19, 83,114,144,249,241, - 83,169, 8,222,226,130, 37, 90, 79,211,247, 68, 68,234,230,245, 45, 15, 58,199,229,118,197, 89,211,208, 70,193,134,142,191,189, - 90, 98,189,167, 87,146,208, 91, 94,158, 79, 88, 49,101,227, 29, 71,117, 65,148,138,141,247, 84,101,193,119,207, 22,252,163,215, -188,189, 13,244, 40,222,241,130, 86,106,182,227,130,179,224,184, 52, 5,110, 90,113,229, 97, 89, 22,116, 93, 11,227,146,208,246, -116,161,167,151,146, 15, 86,231,132,232,104,162,163, 68, 16,242,248, 69,106,131, 15, 1, 23, 61, 49, 4, 70,198,240,178, 54,188, - 88,140,120,101, 58, 99, 41, 5,183,106,195,219, 54,173,179,104,202,108,190,228,136, 62, 32,234, 41,136, 36, 45,139,172,242, 30, -206, 22,198,207,233,224,138, 32,249,218,183,191,206,235,183, 95, 65, 2,117, 53,226,195,135,247, 64,150, 72, 33, 57, 29,215, 44, -156, 99,237, 60, 31,108, 61,223,181,145,247,122,203, 86, 68,150,214,129, 48,232,140,111,154,234,146, 27,199,167,220,120,225,152, -182,179,172,215, 29,255,203, 95,253,123, 46,222,126,251,241,100,194,247,188, 43, 12, 7, 19, 69, 39, 74, 46,189,231,111, 87, 29, -255, 24,243,121, 98,178, 80,215,229,122,167,136, 58, 36,243,214,238,102,233,195,207,135,194, 33, 10, 30, 67,174,126,146, 95, 67, - 85,236,180, 2,148, 74, 8,118,145, 71,136,203, 53,157,150,172,156,165, 16,150,232, 45, 11,219,240,209,182,101,105, 29, 47,141, - 12,135,101, 69, 89,142,152,215, 37,173, 20, 68,161,233, 99,224, 96, 84, 16, 98,164,151,130,135,157, 35, 20, 53, 50, 42,212, 27, -191,251,167,223,121,237,133, 23,185, 88, 52,156, 28, 30, 98,125, 96, 54,175, 48,133, 70,169,196,179, 11, 62, 50,158, 84, 24, 85, - 18,188,160,144,134,155,227,154,135,210,167,142,107,111, 63,149, 58,218,103,245, 6,254, 92,195,102,253,156, 57, 71,204, 60,242, -190,217,153,207,107,157,170,161,186, 78,224, 54,193,206,255,122,189,102,117,209,210,207, 71, 60, 88, 44,176,209,243,232,193,121, -146,118,149, 49, 29,178, 82,236,132, 96,194,192, 63,222, 67,147,135,144,126, 63,180, 73, 3,217,121,144,159, 19, 3,144, 91,186, -215,126,221,136, 12,198, 11, 79, 35, 50, 63, 77,142, 37,247,105,103,123,224, 16,173,210,130,179, 62,221,211,129,234, 49, 8,149, - 96, 51,152, 45,111,224,231, 25,167, 12,254,229, 58,207,220,219, 46,253,219,229,205, 20,179,233,204, 53,154, 95,239,161,231, 67, - 58,188,135, 77, 51, 24, 7,145,239,161, 28,228,136,229,227,111,118,216,116, 79,221,251,184,179, 18,134,116,191, 10,181, 11,252, - 65,103, 25, 46,177, 19,229,201,215,199, 86,134, 50, 70, 28,130, 82, 70, 14, 20,120,165,153, 32,121,100, 5, 66, 36,211, 23, 31, - 4,165, 2, 31, 99,202, 93,128, 62, 70, 52,130,101, 72, 45,114,161, 5,155, 16, 88,109,193, 23,114,135, 91, 24,238,229,254,235, -189,238, 20, 12, 82,192,236, 76, 39,246,157,157,134,185,158,247, 57,137,137,169,163, 82,149, 8, 19,121, 96,123,124,176,124,216, - 58,174,154,134,239,247, 14,108, 71, 47, 52, 47, 21, 10,225, 61, 83, 93, 82, 41, 5, 8, 98, 8,116,206,241,160,143,252,204, 89, - 94, 50,134, 49, 18, 29,160, 67, 98, 16, 28,205, 42,130, 23,233,182, 73,193,251,155, 45,103, 25, 7,240, 71,243, 49,163,178, 98, - 99, 29,133,210, 20, 85, 69,219, 71,124,244,152,122,132,136,145,139,152,109,144, 99,128,170, 6,173,248,173, 73,197, 43,227,130, -162, 50, 92, 89,201,172,214,180, 81, 48, 53,146,195,162,224,189, 62,166,185,188,150, 96,234, 44, 89, 91,242,237,201,132, 63,190, -117,130,139,146,111, 30, 30,112,211, 20, 40,109,184,115,112,202, 47,157, 39,206, 78,211, 65, 90,150,112, 56,205, 9, 88,145, 80, -224, 85, 10,114,209, 67,108,151,217, 57, 14,226,166, 35, 78,107,208, 26,129,224,229, 82,112, 36, 36,135, 33, 82,196,192, 17,130, -121,132,146,136,244,150, 14,203,184,144,244, 77, 79,239, 59,162,132,202,109,209, 74,225,109,199, 13,233, 41,188,199,246,150,211, - 74, 80,198,142,159,246,146,219, 35,205,182,179,140,234, 57,103,125, 79,223,119,188, 48,159,243,209,118,203,172, 26,113,217,181, -204,171,138,217,116, 78, 81, 22, 56, 96, 77,193,249,232, 0,135,228, 92, 22, 52,101,201,251, 27, 75, 51,169,185,208,138,243,174, -229, 35,165,248,165,119,124, 40, 2, 15,164, 38,120, 79,167, 52,147,232,177, 82,208, 59,135, 21,130,222, 59,130, 86,156, 72,131, -145,134, 90,105,130,212,156,154,130, 94,107, 46, 10,195,133, 0,186, 44, 79, 43, 69,234,156,217,237, 53, 13, 86,168,228,194,118, -141,173,121, 18, 85,175,117,114,166, 83,240,240,157,247,121,237,141, 87, 9, 4, 54,171, 75,254,183, 31,255,128,159, 63, 58,231, -141,249, 33,247, 55, 91,108,148,252, 98,225,248, 65,227,248, 97,103, 89, 72,201,153,179,156, 11, 40,202,146,136, 66, 72, 73,173, - 75,142,166, 7, 28, 29, 79,136, 17,238,191,255,136, 63,255,179,127,151,198,194,123,144, 26, 97, 29,244, 29, 63,235, 28,127,223, -181,252, 48, 68, 46, 84,145, 94, 63, 49,159,105, 89,149,115,219,165,138,122,168,204,149,126, 92,245,242,218, 44, 76,164,243, 63, -202, 79,198, 44, 93,203, 78,231, 98, 76,155,212,221, 22, 58, 43,210,229,162,230,252,156,245,170,229, 61, 31,233,218,134,101, 12, -244,222,113,175,107,208, 1, 94,170, 39, 28, 84, 37,231, 65,114,179, 42, 89, 57,203, 65, 85, 98,165,100,209,121, 62, 92, 59,182, - 65,210,224,153,212, 21,106,250,149, 63,252,206,171,183,110, 51,155, 28,226, 36, 8, 41,168, 42, 67,232, 2,101,165, 81,198, 96, - 10,133,144, 2, 23, 2, 2, 73,215, 37,203,152,182,107,184,218,118,233,208, 9,225, 41, 27,185, 79, 67,147,248,164, 4,224,179, -205,156,229, 14,120,244, 36,136, 97, 64, 35,218, 39, 36,101,101, 14,228,202,236, 42,208,135,139,204, 53, 92,209, 93, 92,208,109, - 58,182,151,203,212, 62,143,195,156, 37,183, 99,188,203,146,168, 67,192, 30, 60,171, 99,202,110, 93,159, 52,226, 67,158,195,200, -207,158,167, 60,230,150,117,125, 85, 28, 59,227,150,207,249,152,207, 74, 30,226, 19,226, 45,251,247,115, 95,165,239,121,152,138, -161,130, 46,139, 93,149,236,135,106,221,239,181,245,115, 5,122, 61, 23,207,242,196,131, 48, 11, 34, 3,194,114,160,234,114,107, - 94,237,241,232,131,125,188, 98,223, 15,110, 49, 38, 33, 32,111,119, 96, 61,185, 39,203,170,196,222,224,107,112,148,203, 27, 47, -219,205, 74,157, 64, 79,117, 37,169,181,160,183,112, 80, 37, 9,220, 46,130,172, 20,109,198, 66,110, 92,164,148, 17,147,177,131, -125, 4, 65,164, 19,130, 16, 60, 65, 10,156,247,148, 82,177,201,220,247,232,194,174,175, 30,247,241,198, 97,247,189,205, 64, 76, -177, 87,165, 15,244,203, 33,240,239,191,255,144,213,234, 26,203, 89,227,121,212, 56,222, 91,182,124,180,105,249,160,181,201,109, -209, 91, 58,235,232,188,231,141,217,140,177, 80,105,154,130,196, 72,205,195,118,203,119, 55, 75, 26,111, 89,219,158,223,156, 79, - 24,149,138,211,113,141,174, 18,144,208,247, 62,187,106, 6,254,194, 38,241,159,223,171, 13,167,166,192,199,192,188, 52, 44,179, -229,175, 85, 10,147,131,203, 61,235, 89,198, 12, 92, 52, 6,188,231,246,184,230, 37,163, 24,155, 18,139,160, 50,146,141,247,232, - 50, 1, 42, 23,109,199, 90, 73,182, 62,166,100, 64, 3, 66,241,214,124,194,215, 15,198,120,161,121,121, 90,112, 22, 13, 55, 75, - 77,101, 12, 31,184,136,158, 76, 88,186,152,198, 98,179,227, 84,213, 31, 28,103, 21, 72, 65,236, 33, 78,103,208,183,196,110,147, -153, 60, 45, 49,122,196,170, 5, 35,120,177, 48,124, 81, 4, 14,149,198,216, 45, 19, 4,211,232, 41, 98,224, 32, 68, 76,112,156, -120,199,204, 57,110, 8,203, 76, 9,198, 49,224, 67,154,153, 76,243, 89,227,148,230,134, 22,156,245, 61,151,155,142,190,235,248, - 97,223,243,155,199, 39, 84,117, 65,107, 97, 86,215, 92, 54,150, 82, 74,130,150, 28, 85, 99, 30,110,183, 92, 5,135, 21,146,195, -241,132, 88,150, 76,141,226,223,175, 59,190,120, 56,225,127, 63, 91,242,230,233,156,247,130, 98,189,109,185,168, 70,156, 69,201, -185, 46,120, 20, 20,151,133,100, 93,141,208,125,203,131,162, 36,218,158, 54, 68,214,118,139,149,146, 18,152, 20, 21,181,128, 32, - 4,165, 76,202,142,149,208,132, 66,243, 75, 41,105, 11, 13, 66, 19,251,204, 32,177, 54, 87,235,201,131, 66, 20,131, 24,138,127, - 26,187, 50, 25,167, 17, 73, 89, 33,108,228, 31,222,121,135,127,216,158,243,163,159,191,131,248,249,251,216,251,247,249,222,197, - 21,127,119,254, 17,151, 54,240,151,219,134,135, 49,119,212,188,205,243,104,201,178,235,185,138, 32,116,137,142,130,153,174,232, -172,103,185, 92,241,224,236, 17, 63,251,233,219,169,197,255,100, 12,242,185,189, 46, 69, 18,135,201, 73,191,112,109,146,153,136, - 49,237,151, 24,147, 90,219,117, 16,183,233, 12, 27,176, 66,195,156,221,217, 92,120,248,103, 83,119, 31,195, 19, 13,184,156, 44, -171, 45, 50,219,198,147,228,144, 99, 62,159,180, 73, 95,183, 13, 87,214,115,222,245,156,181, 13, 29,145,143,154, 14,240,220, 54, - 37, 19,173,169,202, 18, 81, 20,136, 0,203, 16,105, 4,124,188,245, 44, 66,143, 20,146,206,123,212, 75,223,250, 79,190,115, 52, -153,208, 52, 61, 74, 74,230,227, 17,158,200,168, 42,240, 46, 34,181, 32, 34,112,155,158,174,181, 68, 21,113, 25,104, 38,133,162, -215,138,205, 53, 15,181, 74, 72, 81,165,161, 40, 16,166, 72,154,195, 85,226,133, 11, 41, 16, 82, 34, 66,248,212, 85,186,248, 44, -213,236,147, 82, 9,207,188,224,250,233,120, 22, 67, 70, 65,106,184,218, 36,173,243, 1,124, 84,150,169,106,172, 50, 16,174,205, - 64,183,206,165, 27,147, 37,187, 49,185,194,235,250, 84,149, 58,155, 4, 69,162,206,179,195, 92, 29,154, 44, 41,251, 28,158,232, - 83,173,113,246,102,221,196, 92,221,102, 31,224,207,203, 36,148,251, 10, 38,207, 32, 90,254, 58,211,148,225,154,151, 38,155,115, -200, 93,165, 94, 21, 41,211,143,121,129,203,172, 75,175,247, 56,162, 74,166,217,221,112, 47,101,222, 72, 46,238,180,211, 33,121, - 14,136,231,184, 2, 94,163,240,243,107, 41,138, 44,212,147,193,133,200, 93, 66, 1,169,107, 80, 12, 20, 49,149,174,171,146, 72, - 37,121,169, 86,244, 2,162, 84,220, 80,130, 72,164, 12, 18,167, 53,151, 93,138, 3, 70, 8, 60,145,222,197, 36, 83,160, 4, 91, - 23,104,165, 64,100, 52,123, 31, 2,107, 34,150, 72, 23, 50,200,125, 0, 80, 14,116, 64,246,131,116, 76,239, 25,247,184, 57,207, -117,101, 31,119,137,222,179, 80,184,146,116,240,108, 92, 18,134,233, 50, 42,121,209,166,206,154, 8, 44,188, 99, 42, 3,239, 44, -214,172, 99, 75, 27, 28, 15,182, 43,254,231,243, 75, 26, 2,116, 91,188, 86,124,169, 44,209, 74, 48, 19,169,122, 17,125,210,218, - 47, 74,193,127,115,113, 9, 49,112,199, 68,156,212,220, 45, 53,165,142, 44,188, 96, 36, 35, 74, 72,148,214, 4,231, 48, 85, 65, -225, 61,239,185,184,147,202,173, 12,127, 50, 41, 57, 40, 19, 55, 57, 40, 65,244,129, 32, 21,203,198, 81,149,154,131, 74,243,161, - 13, 44,132, 72,107, 1,205,237, 66,243,173,121,197,214, 71,180,150, 60,116,112,107,172, 89, 59, 24,213,134,210, 40,222,147, 37, -219, 16, 19,208,238,255, 99,238,189, 99, 61, 95,243,251,174,215, 83,190,237,215, 78,155, 51,103,214, 69, 66,164, 0, 0, 32, 0, - 73, 68, 65, 84,230, 78,185,125,247,102, 91,108, 92, 18, 82, 12,137, 73,140, 67, 81,148, 40,144,200, 18, 36,161, 8,146, 16, 16, - 2, 36, 4, 1,139, 16,100,197, 40, 10, 37, 18,130, 72, 38,160, 68, 72, 17, 9,144, 4, 41, 9,113,130,133,141,157,141,189,235, -189,190,187,183,151,185,211, 79,251,245,111,121, 26,127, 60,207,247,252,126, 51, 59,115,119,238,238,218,230, 39, 29,253,102, 78, -253,150,231,251,124,218,187,184, 16,109,165,203, 42, 94,199,193,110, 52,152, 17, 33, 34,236,173, 39, 24,147, 88, 28, 81,247, 64, -212,142,217,168,228, 5,233,153, 52, 53, 19,173, 25, 56, 71, 30, 28,165,119, 20,193,115,205,123,246,124,224,102,112,236, 8,197, -208, 7,156,119, 12,115, 69,200, 20,165,132, 34,203, 25, 2, 94,107, 42,165, 9,153,164,173, 27,156,177,188, 62, 63,227,115,131, -146,169, 5,153, 23, 12,203,140,133,135,157,224,153, 5,143,237, 28,183,219,154,145,173, 97, 52, 97, 55, 87,124,109,209,240,219, - 14, 38,252,141,227, 5,255,244,141,125,126,177, 9,236, 6,135, 27,143,120,104, 28,203, 97,197, 42,215, 44,101,206, 45, 23,199, -132,167,229, 24,233, 13,247,178, 10,231, 59, 78,100,212,104,111,133, 98,207,123, 50,149, 69, 81, 20, 17,253, 10,102, 66, 82, 75, -133,206,179, 24, 60,170, 42, 74, 28,251, 16,247, 52,145, 0,102, 93, 11,170,138,160,179,124,152, 48, 29,253,152,171, 76,108,136, -152, 8, 10,225,160, 94, 19,110, 63, 72, 82,217, 49, 14, 48, 59,135,243, 21,167,119,239, 67,102,226, 24,204, 16, 11, 45, 37, 97, -181,138,123,133,206,168,145, 28, 27, 19, 45,107,235, 6,230,167,184,249, 49,191,117, 8,203,231, 46, 49, 27, 14,241, 87, 14, 17, -105,116, 40, 18,151, 94, 44,154, 4,184, 53,113, 92, 42, 99,114, 44,188, 71,200,164, 44,105, 72,248, 30, 30, 45, 14,122, 32,113, -143,229,233, 37,178,249,132,121,122, 15, 92,237,237,177,101,210,107,200, 84,234,108,203,248,245,190, 99,216,166,228,194,116,136, -186, 23,113,138,251,230, 29, 31,120,117,144, 49,145,154,135,139, 5,123, 85,116,199,155, 33,184, 51,183, 60,112, 29,109, 16,100, -206, 69,187,143,211,231, 62,255,227,151,202,138,195,131, 67, 6,229, 8,135,199, 7,137,150, 1, 93, 42, 2,208,206, 91,172,247, -120,225,113,235, 14,141,226,206,201, 9,185,206, 41, 21,156, 88,139,171,202,120,162,163, 17, 20, 5, 66,231,209,202, 85,102,136, -106,132,144, 57,232, 18,145, 43,196,213, 27,136,253,125,100, 94, 33, 28, 48, 25, 35,140,185, 8,246, 79, 21, 58,120,156,227,220, -183,128,159,166, 96,246,164,205, 78,203,167,183, 6,234, 58, 62,208,125,160, 80, 58, 82,112,132,220,136,238,228,121, 20,159, 41, -210,220, 60, 43,162,127,186, 46, 54,180, 30,151,204, 66,170, 49, 76,118,226, 53, 25,237, 69, 32,145, 73,173,170, 62,170, 60, 62, - 99,207,116, 18,213, 16,155,143,109,192,198,246,174,253,237,210, 9, 47,226,121,143,152,223,250,189,246,187,128,143,232,187, 38, -219, 51,170,162, 55,129, 9, 27, 4,125,159,193, 56, 31,175, 77, 31,216,117, 58,255,158,178, 21, 18, 77,207,233,212, 22, 79, 51, -177,240, 12,162, 71, 89, 30, 17,245, 89,226,122,155,176, 65,146, 95, 20,197, 50, 38, 22, 58,221, 59, 29, 91,102, 1,193,168,144, - 92,150,154, 67, 4,121,174,153,120,201, 82, 75, 86,193,209, 5,104,130,136,185,137,128,206, 75,108, 8,172,141,199,164,189,175, -245, 1,129, 96, 37, 2, 93, 23,112, 34,224, 2,184,222, 25,206, 37, 26, 98, 15,150,115,102,115, 28,201,170,242, 66, 57, 80,111, -105, 62,245,244, 54, 17, 30,101, 46,108, 39, 54, 38, 13,226,235, 38,182,150, 23,203,248,251,151, 77,244, 69,151,112,107,182,230, - 94,103,248, 96, 93,243,230,116,202,187, 93,236, 80,209, 52, 96, 27, 94,203, 51,180, 23,140,139, 12, 39,192,123, 75,103, 58,132, -107,249,169, 91,183,224,107,191,196,247, 95,191,194,155, 45,252, 96,174, 40,108, 71, 71,193, 78, 14, 50, 72, 22,173, 37,195,227, -139, 40, 39,253,150,177,156,118,169,114,146, 57, 88,199,107,195, 18,109, 3,186,210, 40, 31, 88,121, 65, 41, 64,105,137, 8,158, -185,151,236,123,203,187, 93,236,128, 77,114,201,203, 90, 48,206, 51, 4, 30, 39, 21,131, 66,210,248,136,155, 80,206, 83,150, 57, - 39,141,225, 60,203, 8, 65,243,252,225, 46,115, 36,175,142,198, 92, 59, 60,228, 65,107,216,201, 10,218,178,138,215,120,111,130, - 24, 14,162,163,152,105, 17, 34,130, 91,229,210, 96, 51,193, 11,133,102,108, 61,185,183,236,134, 24, 12, 14,188,167, 12,142, 75, -193, 83,233,130, 1, 2, 33, 36,101, 94,177, 14, 22, 33, 20, 70,231, 72, 1, 51,175, 25, 20, 57,173,177,172, 58, 71,174, 37,187, -202,115,189,148, 88, 27,104, 92,203,126, 57,226,111,124,252, 1,191,233,232,128, 51, 35, 25,105,193,199,171, 5, 55,139,156,135, -235, 37,165,202, 88, 26,195, 48, 47,176,133,230,181, 76,241, 15,141,224, 55,168,192, 3, 27, 88,218, 64,145, 43,188,214,232,206, -226, 70, 21,109,107, 57,169, 6,140,188,141, 12, 4,233,185, 63,152,144,117, 29,247,117,134, 51, 29, 58,120, 14,178, 44, 2, 66, -181, 98,233, 61, 43,169, 56,115, 14,165, 52, 7,163, 49,214, 24,206,117, 18,181,170,235,216,241, 25, 14,226, 51, 94,175, 17,197, - 8,225, 26, 24,143, 35, 66, 62, 47,147,186,102, 2,118, 10, 9,181, 65,180,230,201,243, 65,215,197,103,124,186,138,254, 32, 85, - 74,238,215, 75,132, 18, 49,192, 59,135, 72,180,213,147,182,230, 11,162,225, 48, 56, 70,174,227,123,247, 15,120,173, 42, 56,204, -161, 46, 11,236, 78, 73,123,235,254,102, 12, 40, 2, 98, 54,139, 69,149, 14, 49,200, 6,127,145, 28, 11, 64,104,129,104,252,198, -180,170,237, 30, 21,159,113, 46, 97, 64,196,183, 40, 28,251,238, 90,162, 67,170, 84,196, 20,169,253,222,123,167,248, 84, 56,218, - 16,227, 73, 82,181, 20, 89, 14,243,121,188,110,214, 65,215,225,181, 69, 4, 79, 7,188, 61,157,114,110,225, 87,206, 86,124,195, - 71, 83, 93,141,167, 53,142, 44,120, 84,120,229,251,126,252,104, 88, 48,202,115, 26,211, 65, 80,228,121, 70,103, 44,166,115, 44, -151, 53,133,214, 72, 2,243,243, 5,157,111,105,234,142,209,100,200,124, 49,231,116,185,194, 9,137, 32, 80,141, 71,152, 76, 71, -138, 82, 53,224,249, 43, 99,174, 28,237,113,138, 70,148, 57,159,251,236,117, 78,171, 9,191,245,229,171,124,241,250, 62, 55,110, -220,224,133, 23,143,216, 57, 26, 80, 29,237, 51,187,123, 26,105, 18,233, 66, 61, 18,216, 7, 35,184,113,149,193,171,215,241,151, - 47, 17,130,100,255,243, 55,168,171, 10, 22,233, 2, 93,208,144,194,147, 85,128,158,198, 81,223,166, 6,109,223,164, 30, 20,145, -229,241,226,183,201,212, 64,138,184,104, 85, 6,195,138,157,231,174,240,210,245,155, 28, 30, 94,102,255,240, 50,167, 90,198,108, -108, 56,102,116, 48, 65,151, 25,197,168,160,235,173, 60, 85,111,174,146, 90,190,125,197,158,109, 43,221,109,117, 30, 68,223,122, -214, 91, 85,221, 54,114,251,219, 13,236,114, 43,194,219,239, 78, 64,239,121,232, 61,149,172,105, 55,124,250, 71,164, 78,179,152, -173, 42,155,252,217,187,216, 21,233,205,102, 92,194,105, 52, 46, 5,175, 52,127,178, 93, 82,126,115,155,204,249,147,132, 33,100, -228,171,146,244,129, 34, 32, 70, 36, 3, 28,145,114, 26, 21, 3,102,136, 78, 75,253, 61,184, 52,200,216, 19, 32,165,196, 75,129, -242, 2,145,197, 54,186,117,129, 54, 72, 10, 41,233, 66,192, 38, 49, 25,151, 38, 5, 42,128,113, 2,227, 33, 47, 36,211,149, 99, -156, 5, 58, 43,104, 3, 27,231, 54,182,170,117,159, 54,188, 94, 58, 86, 36, 4,188,176, 41,153,217,106,195,251, 20,216,123, 41, -217,167,113,102, 31,255,156, 75, 88, 9,124, 84,137,236,186, 40,247, 58,175, 99,224, 63,153, 70,113,164,147, 41,180, 6, 95,106, - 6,101, 78, 33, 20, 70,120,166,181,225,254, 98,193,195,213,138, 91, 93, 3,187, 7,220,245,128,169, 57,238, 26,180,204,184, 82, - 66,112, 14, 47, 2,123,133,198, 18,216,213,129,251,235,134,159,175,155,205,102,234, 13,131, 34, 99,224, 28, 59, 58, 10,148, 8, - 39, 40,114,197,178,131,221, 42,218, 87, 22,120,190,186,114, 76,187, 88,225,151, 18, 62, 87,198,103, 97,175,202,168, 77, 32,211, -138, 69,109, 25, 8, 88,104,141, 86,130,155,133,102, 55,211, 76,148,224,185,209,128,171, 18, 6,227,146,145,128, 23,181,230,174, -147,180,137,154, 41,202, 17,248, 22,177,183,131,144, 25, 12, 74,196,106,133,176,134,121, 11,147, 81,198, 16,176,198, 32,157,229, - 57,160,178, 29, 99,161,145, 2, 50, 93,144,101, 37,186, 31,237,229, 5,133,138, 73,104,208,146,113,166,105, 17, 60,236, 28,151, -170, 44, 90, 11,120, 27,231,190,206,112,125,178,207,207,127,244, 54,159,219, 29,178,108, 21, 95, 62,189,203,251,243, 41, 39, 54, -240,222,114,202, 81,174, 49, 42,103, 60, 26, 97,144, 8,227,120,223, 9, 94,112, 29,239, 53,150, 60,207,105, 8,228, 85,193,170, -109,249,184,241, 12, 27,131,215,130, 27, 93,203,221,172, 96,108, 45,239,101, 35,110,168,192, 89,174,160,109, 89, 42, 77, 27, 76, - 82,225,243, 44,157,163,201, 10,166,192, 90,130, 80, 25, 50,196,209,128, 2, 78, 36,136, 50,131, 32, 17, 62, 89, 6, 27, 27,139, - 27, 9,162,168, 18,189, 55, 61, 99,174,139,235,218,153, 68, 91, 53, 79,239,190, 58, 23, 43,254,118, 13,183,238, 66,115, 22,139, - 35, 43, 16, 66,129,206,162,193, 15, 22,161, 20, 63, 58,169,216, 41, 42, 94, 27, 12, 9, 69,201, 85,145, 81,238, 93,101,112,237, - 69, 14,242, 9,239,200, 22,206,102, 17,176, 26, 98, 1, 37,188, 68, 12,203, 24, 42,164,142,232,244,144, 70, 65, 26,200, 20,194, - 6, 68,219,196,125,225,162, 99, 40, 55,202,163,125,108,121,218, 51,151, 12,189,200,147, 16, 88,111,112,209,218,184, 55,214,109, -108,185, 23, 9, 25,239,100,194,114, 37, 64,114,109, 17,227, 81, 82, 30,141,157,197, 7,199,115,222,235, 12,191,180, 88,240, 86, -103,248,149,217, 57, 31,187,150,105, 91,227,148, 70, 91, 67,158,231,212,205, 10,133, 63,250,241, 59,193,115,117,103,140,119,158, - 92,122,150,211, 25,214, 7,206, 78,103,228,185,196, 5,207,124,186, 64,229,177, 53,217, 57,195,116, 57,103,109, 91,156,240,248, - 16,168, 84,204, 96,126,203,149, 29, 86, 78, 50, 40, 74,214, 94,242,112,225, 24, 12, 11,254,169, 87,174,240,206,220,243,153,195, - 35,190,231,230, 53,170,114,196,205,171,151,121,225,218, 21,118,138, 9, 26,201,135,173,138,173,156,208,123,125,235,104,209, 87, - 14, 96,239,128,207,188,122,133, 23,246,247, 56, 26,143,249,204,243, 87,152,228, 37,121,165,153,154, 0,139,122, 35,230,209,143, -156,241,207, 30,212,121, 74,181,115,225, 5,222, 70,212,162,105,226, 2, 80, 58, 6,139,221, 61, 62,115,120,133,113, 57,224,234, -254, 97, 18, 16, 8, 76,155,154,124, 56,100, 82,229, 28, 14,247,208, 82,131, 46,105, 93, 20,102,136, 51,248, 52,247,245, 91,157, -129,167,233, 57,245,173, 32,177, 69,221,122, 90,235,245, 89,231,234,189, 36,162,181, 27, 78,253,119,250,202,242, 24, 44,157,219, -104,202,247,221,134,190, 58,247, 9,123,208,251,102,251, 44,206,222,116, 17,245,200, 67,114,109, 19, 41, 9,146,230,209, 57,149, -243,113,206, 37, 68,162,202,125, 11,197, 60,159,152, 8, 33, 9,190,248,176,209,175, 87,125, 64, 76, 74,128, 9, 60,151, 75,201, -149, 44,224,149, 66,132, 64, 41, 21, 34,147,200,214,162, 69,228,188,214, 46,144, 73,193,210,165,241, 19, 73,168, 71, 6, 58, 98, -176,215, 66, 50,235, 28,251,165, 96,218,121,132, 80, 81,255,189, 7,202,185, 45,201,101,159,230,235, 93,136,227, 0,195, 38,160, -123,187, 1,220, 94, 88, 10,247, 35,249,176, 17, 61,250, 52, 52, 70,159,240, 14, 93,172,202,105,214,177, 74,154, 47, 98, 37,214, - 56,234, 97,201,238,112, 68, 45, 84, 84,250,106, 91,222, 94,157,241,141,211,227,184, 57,133, 54,254,188, 84,180, 93,203,171, 90, -113,169, 42,208,222,146,123,139,177, 29,235,166, 37,152,142, 91,203,154, 59,205, 42, 38,102, 54,118, 90, 76,240,236, 11, 23, 59, -118,157,163,212,154, 81, 6,227, 76, 80,119, 1,137,231,108,109,248,242, 42, 49, 71,130,165, 20,129, 87, 39, 57, 89, 8,212, 54, - 80,230,146,186,181, 28,142,114, 30, 58,201,158,136, 90, 2, 15, 87,134,135, 94, 48,169, 10,126,102,217,241,249,157, 10,227, 61, -107,231,185,167,114, 6, 2,166,198,199,128,164, 52, 98,180, 27, 55,226,241, 8,225, 90,184,113, 3,121,124,134,220,155,112,251, -225,130,135, 18,118,139, 28,101, 44, 89,107,184,162, 20,121,240, 20, 58, 39,136,140, 78,120,178,162,164,149,154,165,212,204,242, -140,214, 89,100,145,211, 41,197,188,131,188,208, 52,105,162,210, 9,133,203, 53, 70, 73,206,231, 39, 8, 89,240,225,236,156,111, - 44, 78,104,186,150,198, 59,186,213, 57,214, 59,238,170,140, 35, 33,216,203,115,198,147, 33, 93,145, 83, 56,203,219,171, 53, 7, -163,146,247,215, 29, 7,185, 98, 97, 44,120,193,243,149,226,171,181,227,121,215,113,191, 40,184, 92,175, 57, 41, 42, 94, 20, 53, -191, 18, 10, 46,249,142, 51,159, 71, 91, 88,165, 57,183, 13,194, 89,230, 42, 34,227,167, 8, 92, 86, 97, 69,236, 72,246, 30,111, -153,210,156,133, 4, 94, 93,214, 8,159,244,210, 69, 74, 56,139, 10, 17,210,243, 95,183, 17,152,236, 92,178, 12, 53,207, 54, 86, -117, 17,185,206,233, 41,156, 45,225,228, 46, 66,198,145, 17,193, 35,112,252,216,254, 46, 71, 90,113, 73,105, 66,150, 81, 27, 19, -105,155, 7,151,232,148,164,243,146,243,197, 49,243,227,211,248,247,186, 14,145,233,232,236, 23, 98,146, 32,178, 12,145,101,124, -166, 42,249,129,225,132,239,219, 25,113,121, 84,241, 97,211,193, 98,141,104,235, 88,100, 94, 20, 80,225, 81, 23,204, 79, 74,164, -123, 86,144,202, 19,107,200,167,234,191, 77, 32, 96,210,190,159,168, 74, 33,141,133,219, 68, 33, 54, 53,162, 72, 99, 72, 27,147, - 34,187,110,226,179,185, 88,196,235,106, 26,192,178, 12, 48,117, 14,154, 21,139,229, 20,197,240,198,143,163, 53,171,188,229,189, -211, 19,186,110,205,170, 94,178, 88,206, 25,100, 37,139,229,156,118,213,144,149, 25,117,179,166,110,107, 58,211,210,212,134, 7, -235, 57,157,141,252,220,178,200,184, 57, 26,112,175,243, 72, 33,184, 57,172,184, 84,150, 84,227, 49, 47, 14, 7,220,237, 52,207, -141,246,249,220,165, 93, 46, 29,238, 33,244,128, 60, 31,176,172,225,218,209, 37, 6,229, 46,191,225,218, 30,183,145,100, 71, 67, -218, 51, 3, 42, 82, 88, 68, 57, 97,242,202, 33, 47, 31,236,115, 48,218, 97,111, 48,228,112,119,143,241,104,204,225, 96,192, 45, -187,198, 28, 47, 99,150,247,248, 60,245,105, 23,252,241,215,211,132, 90,250,141,175, 87, 47, 19,105,243,151, 10, 10,205,100,103, -143,107, 59,251,232, 92, 68,109,230, 60, 71,105,205,195,102,201, 40,215, 28, 14,118, 81, 85, 73,145, 21,100,153, 98,106,218,168, -144,214, 75,154, 90,191, 21,212,213, 39, 13,193, 55,224,177,237,238,130,248, 54, 85,253, 60,223, 12,178,250,110, 4,244, 30, 87, -208,219,121,170, 36, 98,225, 92, 2,191, 36,227, 27,111, 35, 55, 93,248,232,179, 45, 4, 84,217,102, 68,162, 19,133,174,179,155, -108,183, 75, 52, 26, 29,185,216, 40, 25,103, 79,223, 74,194,177,111,122, 8,183,145, 93,237, 43,245, 30, 97,174, 19, 61, 80,101, - 23,151,246,160, 82, 49,121,150,154, 66, 4, 26,235,201,115,133,176, 30,163, 99,219,253,196,120,134,153,162,243, 62, 61,144, 34, -101,248,241, 60,140,243,136, 16, 88, 58,129, 34,208,132, 4, 16,236,250,121, 91,182, 25, 37,244,163, 6, 69,194, 16,244,237,119, -185, 65,228, 7,191, 9,236,166, 79,254,122,189,130,111, 35,193,235,193,133,230, 9,206,129,133,132,157, 93,142, 39, 19,238,250, -192, 7, 93,203,237,174, 97,213, 52, 48,155,194,249, 60,178, 58,164,143, 96,164,182,230,195,206, 82,154,150,113, 48,204,218,142, -179, 85,205,213, 76,242,191, 61, 56,227,157,243,135, 73,167, 33,206,235, 9, 14,218, 53, 15, 77, 96,228, 26, 14, 16,100,193,225, - 13, 52,173,103,191,128,197,178,227,221,181,231,225,114,158,128, 70,154,182, 53, 12,218,142,231,138, 28,147,148,251,118,114,201, -131,149,225,249,161,166, 70,114,123, 29, 55,249, 99,149, 49, 53,142,239, 29,228, 76, 91,143, 44,163,166,196,170,181, 84,185,230, - 76,228, 72,173,227,101, 46, 7, 48, 60, 64,116, 43,216,191, 18,167, 95,135, 59,136, 92, 35, 77,203,202,192,187,167, 11, 74,233, - 25,229, 25,151,124, 64,133, 16,193, 75, 66, 18,202, 17, 11,192, 8,201,188,200, 57, 15,129,121,145, 99, 58,143, 85,130,221, 34, -167,238, 2,115,235,201,116, 52,241,176,222,211, 5,133, 10, 2, 45, 44,185,107, 25,218,134, 35, 12,106,181,166, 11, 30,235, 44, -222,180,124,102, 56,162, 44,135,156,173,107, 58, 27,104,138,140, 97, 89, 96, 3,136, 76, 99,165,228, 82,161,201,141,225,235,181, -229, 75,149,226,174, 13, 28,212, 75, 78,138, 1, 59, 77,205,219,162,228, 53,209,114,203,105,174, 20,146,115,151, 49, 51,134, 74, - 6,238, 16, 48, 93,199, 90, 69, 96,180, 19, 30,167,114,156,240,180,222,209, 56, 79, 14,100, 69,193, 92, 9, 66,145,131,174, 16, -203, 6, 81,175, 99, 65,214,196,103, 84,244,242,225,109,253,116,134,204,179, 96,166,154, 85,148,133,158, 30, 35, 76, 7,133,100, -183, 26,113, 40, 5, 55, 39, 21,166,109,240,214, 80,230, 25,109, 8, 24,103,184,187, 94,115,239,252,132,175,188,255, 17,194, 73, - 68,231, 99,101,222, 69,193, 28,177,182,136,221, 1,162,200,249,220, 96,192,111, 59,188,204, 75,163, 33,135,229,136, 93, 41,169, -131,227, 65,211,196,174,172,138, 93,232, 56, 7, 79,178,197,189,246,198, 39,137,123,109, 7,253, 44, 75, 21,120, 29, 11, 23,111, - 19,215,189,215,154,207, 54,117,156, 78,154, 28, 69, 1,164,113,116,103,146,158,135,139, 90, 31,237, 58,106,165, 44, 22,176, 90, -131, 89,227,108,203,108,189, 98,229, 12,138,234,218,143, 51, 95,176,250,232, 1,237,170,227, 36,147,124,124,114, 31, 47, 61,211, -245, 25, 67,157,241,112,113, 70,103, 60,245,122, 77,231, 28, 15,166, 51,130, 2,211,116, 56, 23,233, 6, 90, 74,172,212,104,165, -185,185,179,131,214,146,115, 39,121,249, 96,143,198,105, 46,143,247,249,236,243, 71,140,247,118, 17, 33, 99, 60, 26, 32,100,198, -254,222,144,114,144, 51, 28, 87, 56, 49,228,114, 85, 49, 81, 57, 31, 45,150,201, 28, 69,161, 94,185,202, 43,187, 19, 46,141,247, -120,238,202, 33,121, 86,161,164, 38,211,154, 60, 83, 28, 86, 35,222,237, 44, 44,231,207,102,105,250,164,192,254,137, 65,161,111, -161,244,193, 84,199, 10,202, 43, 76, 89,178, 55,170, 24,230, 21, 32, 25,228, 21,139,122,206,173,143,239, 83,211,113,249,224,136, - 16, 60, 66, 42,230,203, 53,171, 46,192,226, 52,182, 91,218,100, 55,218, 31,179,122, 26,230,191,167, 81, 36,179,145,199, 3,185, -148,191,190,114,189,125, 80,205,212,134, 59, 31,182,132, 81, 66,106,201, 27,226,249,246,109,113,225, 99,149,222,227, 35,212, 99, -247,196,121,144, 46, 58,192,133, 46,174,250, 50, 79,201,208, 86, 39, 96,187, 99,241,120,128,239,231,251, 23,109,235,176, 81,108, -147, 91,216,130,222, 4, 38, 5,228, 74, 75,198,121,148,124, 85,193,179,212,138, 29, 68,148, 8, 16,129,153, 9,204,131, 99,148, - 43,230,157,143, 46, 98, 58,141, 51,186, 68,147,233, 81,238, 66,160,144,216,158,182,102, 98, 62,131, 74,157,136, 11,237,247,109, -128, 92,234,188,169, 45,133,187, 94,237,175,175, 20,122,122, 99, 38, 54, 73,222,119,178, 14,244,150,110, 65, 63,158,217,219,131, -201, 36,105, 12,196,141,134,102, 13, 39,103,240,224, 1, 76,167,112,182,138,115,251, 0,116, 29, 31, 55,107,190,182, 92,242,141, -197,130,119,231,231,252,163,217,138,245,244, 20,104,227,172,190, 91,166, 68,162, 77,109,217,142,165,183,140,125,195,201,186,101, -136, 67, 89, 67,179, 92,240,206,210,241, 75,211,227,120,124,245, 10, 86, 51,232, 58,202, 44,167,109, 59,158, 47, 74, 74,239,184, -189, 50, 92, 25, 40,140,241, 88, 23,131,237,137, 9,236,201,168,168, 39,149,228,221,206,177,155, 41, 68,107,184, 84, 40,154, 92, - 19, 28, 12,164,160,214, 69, 66, 59, 7,198, 7,215, 48,206, 82, 12,118,240,121,133,152,159, 34, 71, 35,228,116,129, 8,158, 59, - 65,177, 50, 45,101,221,113, 35,203,241, 90, 99,164,192,102, 26,151, 21, 60,208,138,133,146,156, 16,112, 66,178, 20, 1, 13, 44, -141, 67,100,130, 70,150,212, 66,176,176, 22, 87,140, 8,182,137,213, 62,142, 44,147, 92,151,146,231,188,231,149, 92,243,170,146, - 92,111,106, 14,149,229,103,151, 43,174,231, 3,230,109, 67, 94,150,220,152,148,152, 65, 73,176,142, 61,165,168, 67,164,151,221, -211,154, 87, 69,224,163,181,225,200,183, 76,199, 35, 70,139, 5,205, 96,192,117,183,228, 45,167,184, 26, 60, 43,161, 25,200, 22, - 67,198, 87, 90,184,164, 28,247,179, 44,178, 59,164,196, 7,129, 64,226,132,160,243, 14,165, 20,101,158,161, 5, 28,230, 67,230, - 74, 97,125, 2, 23,170, 28, 17,146, 40, 87, 16, 81,213, 77,248,167,232,114,232,111,201,187, 21, 59, 59,112,249,185,168, 33, 34, - 36,204, 27,132,143,129, 53,175, 74,110, 12, 71, 92,173,114,246, 29, 4, 17,232,218, 14,103, 12,239, 47,167, 60, 88, 28,243,149, -135,247, 88, 26, 71,176, 14, 33, 4,194, 69,148,190, 12, 1,161, 2, 66,103,136,178,228,247,222,120,142, 27,195, 9, 74,105,218, - 0, 59,249,128,145,146,124,117,118,134,104, 76,242,140,176,177, 99,156,165,194,226, 91, 5,244,237,174, 98,239,125,231, 83, 37, -222,123,115, 8,159,104,189,114, 83,181,203,180,135, 6,153,152, 59, 2,130,137, 99, 14, 82,181,223, 39,225,161, 15,240,117,236, -104,180,150,112,255, 62,254,228,180, 55,116, 73,175,186, 38,220,123, 8,147, 1,243,229,154,211,217,154, 15, 86,103,172,156,227, -206,249, 25,171,182,230,225,114,206,188,233, 56,159,173, 65, 8,202, 74,199, 44, 53, 56,174, 12,135, 8,114, 66, 48,116, 40,174, -142,247, 25, 21, 57, 71,123,251, 84,101,197,238,238,144,253, 97,137,211,154, 97,158, 83,230,138,241, 78, 69,166, 11, 70, 85,198, -100, 92,208, 90, 73,240,146,231,143, 46,241,238,201, 41, 88,205,228,242,132, 47, 61,119,149,203,123, 59, 88,231,168,134, 21, 77, -107,144, 34, 74,152,238, 78,134, 24,223,240,240,227, 89,204, 98, 62, 77,251,241, 73,122,229,223, 52, 31,241, 27, 78, 33, 50,141, - 72, 20,120, 67, 40,135,236, 15,135, 40,161,201,179,136, 40, 61,155,207, 56,153,206,161, 94,145, 15,198, 4, 41,153,175,214,152, -160,168,103, 11, 56, 59,137, 27,183, 79,148,184,237,106,249,137,213,122,216,208,237,250,121,164,148,143,190,255,122, 6,245, 94, -184, 71,176, 89,244,143,207,214,165,120, 20,113,126, 33, 10,148,197, 5,170,179,141,245, 40, 36,250, 96, 58,175, 96,146,139,220, -150, 88,139, 20, 27,141,251,109,113,156, 39,169,198,245,178,182,189, 26, 91,143,105,232, 33, 5,253, 72,227, 66,120, 38,178, 52, - 70, 42,144, 73,133,204, 51, 38, 94, 98, 18,143,123, 25, 2, 66, 9,156, 15,212, 70,210, 6,183,169,178,123,157,249,237,164, 81, -203,136,172,182,108,216, 18,189,118,127, 8, 91,247, 53, 5,117, 41,158, 78, 78,232, 63,231,229,166,130, 87, 9,112,167, 30, 51, -177,249,180, 93, 22,173, 34,171, 32, 75, 6, 31,206,193,243, 55, 97, 56,138, 1,189,231,238, 26, 3,247, 78,226, 12,222,218,141, - 89, 78, 99, 98,208, 54, 62,182, 9,235, 38,138, 83,157,157, 71, 37,178, 69, 29, 13,145, 76, 7,231,179,152,168,174,151,224, 58, - 76,187,230,227,206,114,167, 91,242,230,123,223,224,117,114,190,114,122,194,157,197,113,236,146, 53, 11,104, 82, 50, 32, 28,211, -249,130,223, 49, 41, 88,172, 27, 10,165,216,145, 14,237, 3,183,151, 29,135, 10,126,110,218,240,182,245, 20,109,203,213, 65,193, - 73,231,216,215, 18,233, 2,119, 28, 76, 6, 5,101, 16, 28, 40,207,181, 65,133,149,138,203,185,230,197, 65, 65,238, 2, 47,238, -237,114, 86,119, 88,161, 17,163, 61,196,236, 1, 98, 60, 64, 24,143, 88,175, 56, 57, 95,240,102,169,121,174, 51, 52,194,227,138, -146, 7, 4,238, 10,193, 42,207,153, 6,201, 76, 10, 86,169, 45, 29,165,129,193,203,130,198, 24,222,247,158, 60,175,112, 1,202, -172,164, 69,227, 8, 84,197,144,129,247, 76,138, 2, 35, 53,138, 64,169, 5,178,238,216,209,112,210,156,115,165,136, 30,228, 39, -179, 6, 68,142,113,158, 97,149,161,172, 99, 26, 20,215,218,154,147,160,216,105,151,156,148, 3,118,166,231, 44,202,146,172, 89, -243,150, 44,121, 77, 54, 44,100, 70, 97,150,204,173,166,202, 61,149,133, 55,169,144,139, 51, 62, 18, 57,121,183,160,201, 74, 22, -237, 10, 47, 64, 32,162,254,188,247, 76,242, 1,147, 92,145,133,128, 31,141, 88,233,132,137, 89, 27,132,176, 96,171,136, 98, 23, - 32,116, 21, 91,233,143,206,253, 54,115,230, 39, 5,247, 44,231, 71,255,153, 31,225,135,127,243,111,226,149,107,215,120, 99,177, -224,210,171, 47,242,155,190,240,253,212,206,114, 54, 63,231, 67, 37,120,185,136, 94, 5,213,122,205,121,215,210, 90,195,237,213, - 25, 63,125, 62,103,209, 26, 76,221,197,110,139, 3,145, 41,100,208, 72, 47, 16, 33,142,212, 68, 85,240,242,206,144,107,163, 93, - 74,157,225,164,192, 19,184,179, 94,242, 13, 27,229, 92,133,105, 54,147,208,158,174,247,172,207, 87, 15,210,131, 8,178,201,178, - 24,132,139, 98, 19, 79, 66,194, 21,245, 64,226,222,148, 75,217,132,210, 79,238,132,242, 49, 42,113, 15, 64,118,169, 51, 58,159, -197,103,105,181,120, 44,168,247,175,243, 69,164, 28, 52, 53,204, 87,180, 77, 71,119,231, 14,139,182, 99,181, 88,179,246, 14, 39, - 97,109, 29,133,200,200, 52, 92,159,236,166,226, 66,130, 40, 56, 28, 77, 40,117, 9, 66, 49, 40, 75,124, 16,148, 69,197,120, 82, -144, 11,141, 46, 36,185,206,169,202, 12,165, 37,133,206,185,127,182,102, 60,169,168,215,150,229,170,229,189,245,156, 16, 96,103, -111,196,141,201, 4,169, 20,229, 96, 68, 8,129,162,200,144, 82,162,242,140,224, 61,205,106,201,135,167,171,104, 15,251, 29, 85, - 43,143,173,179,190, 74,223,174,214,251, 74,201, 72,152, 47, 56, 81,158,165,105, 88, 52,115, 30,204,207,249,120,185, 34, 28, 47, - 97,113,204,162, 49, 44,100,193,170,113,172, 87,107, 56, 63,131,102,186, 1, 69, 61,158,241,169, 45,181,162,222,226, 20,243,232, - 92,125,251,166,246, 0,191, 95,207, 42,221,152, 77,224,238, 93,215, 92,162,167,245, 98, 51, 61, 21, 77,138,180,112, 19,218,189, - 23,120,208,249,134,222,209,163,194, 93, 2,143,249,190,165,159,109,180,223, 73,137, 85, 16, 27,254,188, 20,223,172, 77,208, 43, -252, 93,180,220,229,150, 96,156,222,100,202, 23, 24,133, 88,173, 58,231,233,188, 96, 55,147, 72,173, 88,135, 16,213,183,164,226, -204,153, 40, 90, 34, 21, 11,239,112,253,239, 17,114, 11,145,158, 64,124,189,251,157,148,155,234, 61, 79, 0,153, 92,197,207,245, - 0, 69,169, 54,128, 79, 31,122,140, 76, 58, 23,177,105,226,244, 20, 55,122, 42, 32, 49, 64,110,111, 60, 23, 27,100, 9,187,123, - 49, 0,127,210, 61,204,213, 70,132,135,116,188,229, 40, 50, 55, 38,147,228,183,238,162,134,117, 91,199, 17,210, 98,145,174, 41, -241,221, 38,167,188,102, 5,243, 21, 44,215,176, 92, 65, 51,131,179, 57,204,207, 96, 49,219,108, 64, 15,103, 49,121,163, 23,206, - 49,145, 51, 78, 32,204, 78, 99, 85,190,154,193, 98, 26,141,125, 22,231, 96,107, 70,193,208, 53, 75,190, 54,159,242,165,157, 93, -190,122,255, 30,129,140, 15,206,166, 28, 73,248,219,181,225,246,249, 9, 47,155, 26,231,224,174, 9, 92,223, 29,226,114,141,237, - 12, 7,147, 1,243, 69, 77,174, 53,161,200,208,198,209, 0,135,133,226,182, 11, 92, 31,104, 22,139, 53,217, 96,194,103,117,224, -238,114,138, 24,237, 34,234,101, 76, 70,198,195,152,191,158, 28,243,122,166, 41,155,142, 51, 5,247,133,165,214, 25, 15,189,101, - 46,162, 43,222, 89,235,145, 90,178,104, 37, 83,103, 80, 46,240,139, 1,106,173, 9, 50, 71, 7,143, 47,134, 72, 12,131,225, 1, -187,190,161, 26,237, 97, 28,228, 90, 35, 84,134,149, 25, 82, 11,180,119,156,215, 29,109,187,166,198,209,214, 13, 39,117,205,123, -139, 37, 95,110,226,109,184,238, 13,111, 4,201, 75,120,206,148,230,200, 52,156,150, 67,246, 2, 44, 60,188, 20,214,188,229, 75, -246,154, 5, 75, 61,100, 20, 26, 26,167, 25,102, 48,182, 43,222,206,118,185,181,156,241, 1,154,118,126, 70,109, 5,132,142, 73, - 94, 80,200,140, 66,106, 10, 25,169,121, 95, 24, 12, 57, 84,129, 87, 43,197,221,214,210,117,150,235,255,216, 23,152,220,184,196, -252,206,233, 70, 91,253,137, 1,189,151, 72, 76, 27,110,177,173, 99, 81,241, 79,254,142, 31, 34, 43, 74,170,178, 34,180, 43,126, -248,251,254,113, 94,124,233, 42,135,229,136,215,255,222,207,224,131,229, 43, 65,242,188,109,248,216,118, 52,182,227,141,249, 9, -175, 47,151,220,239, 58,108,103, 32, 4,180,130,203,153,230,181,113,198, 97, 46,120,185, 42, 24,102,146,105,215, 34, 3,188,116, -249, 18,151,171, 49, 78, 73, 36,112,102, 45, 31, 47,214,124,216,212,113, 93,158, 77,163,227,154,181,136,158,142,108, 62,197,126, - 43, 28, 23,202, 81, 38, 68,153,242,182,141,231,107,125, 26, 69,102,177, 64,241, 73, 35, 30, 19, 71,146,157,217,236,151,150,141, - 59,102,207,127,239,247,181,199, 18,249, 39, 7,245,254,101, 82, 22, 62, 95,196,247,182,141, 45,179,218,226, 0, 93, 13,241, 82, -242,252,164, 98,214,193, 32, 83,152,160,168, 84,198,164, 44, 25, 14,114, 6,101, 73,103, 61,227,113, 69, 89, 72, 84,166, 25,143, - 50,180,206,201,181, 38,203, 20,135,163,156,218,120,118, 70, 57,247, 78,107,242, 66,161,133,226, 82, 89,114, 26, 60,151,171,156, -203,147, 33,151, 15,247,201,116, 70, 83,215,100,213,128,206,117,232, 32,152,173,102,156,175,150,124,124,190,136,179, 6,241,132, - 13,254,211,112,184,183,214,218,133, 19,221,133, 2,155,221,180,107, 73,153,150,177,180,214, 48,111, 29,171, 69, 77,104, 13, 76, -143, 47,220,197,194,218, 19, 22,211, 72, 21, 58,189,183, 9, 84, 79, 3, 89,248,173, 54, 75, 31,176,122,160,198, 54, 77,172,159, -195,252,255,161, 74,239, 81,220,125, 64,223, 78, 58, 92,156,133, 94,160,188,149,220,146,133, 5,172, 74,224,186,132,109,232, 18, -152,205, 54,209, 94, 53, 81,149, 98,208, 45,184, 48,177,239,171,239,222,198,180, 79,110, 50,189,201,146, 51,189,153,157,171, 68, -147,203,179,216, 17,241, 91, 1, 83, 19,171,209,212, 17, 41,148, 64,151,154, 90,194,185,243,140, 81,120, 4,199,174,163,146,138, - 22,207, 50,120,100,208, 92,108, 91,109, 66,242,247,107,165,200,211,188, 60,209,230,122,139, 90,147,196,120,250,174,131, 74,146, -195,189,160, 69,235, 55,222, 1,189,127,122,216, 10,234, 23, 70, 48, 9, 96,163,253, 70, 88,231,113, 0,143,183,159, 28,208,203, -100, 64,228, 21,148,137,163,223, 39, 39,210,193,229,195, 40,209,154,229, 73,201,175,142, 85,217,106, 25,209,243,189,138, 88,127, - 49,251,249,188,183,113, 67,183,221,230,255,219,235,218,216,248,181, 85, 29, 19,134,222,209,176,141,237,120,206,231, 17,129,127, -239, 54,156, 78,225,248, 12, 30,158,130, 11,116,161,133, 7,103, 96,107,222,152, 79,121,216,118,188, 59,187,207, 29, 7,111,204, -206, 88,205,207,192, 26, 78,101,244, 65,120,161,138,231,119, 74, 96,183,200,200,188, 99, 80,106,186,206,179, 43, 3,115, 29,169, - 92, 15,219,142, 10, 79, 94,100, 12,132, 2,103,200,117,198,157,144, 70, 72,222,192,238, 40, 6,171,206, 18, 60, 52,237,154, 55, -230, 53,167,198, 50, 83,130,169,107,176,153, 70, 42,197,251,117,203, 88, 11,124,200, 88,219,142,129,202,248, 27,157, 97, 21, 34, -234,126,222,181, 44,138, 49, 57, 1, 89,236, 48,212,154, 73, 54, 36, 83,138,188,218, 33,132,128,149, 25, 66, 6,140,214,184,188, - 96, 25, 44, 43, 93,114,111,109,121,216,174,120,184, 94,210, 9,137,111, 87,228,182,163, 54,150,207, 75,193,173,224,185, 92,175, - 56,174,198,236,173,166,204,144, 12,240,220, 86, 5, 47,179,230,196,107, 38,210, 80, 59,197, 80, 26, 22,157,195,232, 33, 52, 83, -234,225, 46,221,106,198, 44, 43,112,237,154, 73,166, 24,120, 71,165, 50, 70, 89, 73, 41, 4, 47, 9, 65,165, 53,101,240,140,133, -224,102, 33,248,229,198, 49,127,227, 29, 22, 31,221,142,227,201, 44,123,172,224,240,124,179,134,181,140, 40,240,155, 55,227,154, -114, 14, 20,236,223, 56,228, 96,103,143,249,124,202,123, 15, 31,240,249,207,190,200,120, 88, 32,164,231, 23,126,246,231, 17,179, -115, 40, 5,191, 60,155,241, 43,171, 53, 95, 93, 76,249,160,235,152, 37, 54,135,176, 32,130,163, 0,174, 15, 37,215,130,224,122, -158,113, 45, 83,188, 88,229,124,190, 44,153,250,142,175, 52,158,225, 64,227, 69,198,185,247,124, 56, 91,240, 15,154, 46,106,149, -244,207,208,114, 5,227, 33,131,223,248, 26,166, 53, 81, 95,254,153, 1,169,125, 98, 46,210,236,220, 38,234,106,114,105,202,212, -134,174,171, 82, 66,159,103,233,185, 72, 96, 94,177,213,197,235, 85, 63,125, 82,170, 11,201,171, 99, 43,209,248,228,160,254, 36, - 48,153,115, 17,241,106,193, 9, 73, 86, 22, 24,162,104,129, 71,115,115,156,211, 57,201,112, 56,164,208,154,172,172,168, 74,201, -238, 32,167,200, 75,170, 44,103,152,107,138, 66,178, 55,208, 12,135,154,224, 5,231, 43,203,188,117, 52, 77,131, 16, 2,157, 9, -102,211, 53,227, 60, 99, 55,207, 24, 15, 71,236, 76,134, 4, 41,217,153, 12,177,198,226,172,199, 99, 57, 62, 61,227,193, 98,206, -241,157,227, 40,247, 39,210,220,226,211, 58,201,105, 54, 85,185,125,194, 92,221,250,141,168,135,210, 41,121, 72, 52,171, 58, 1, - 26,234, 22,234,105,156,119, 36, 51, 3,234, 25,212,115, 88, 46, 30, 13,102,159, 22,208,212, 11,236,108, 1,166,127, 77,170,244, - 94, 78,247, 66,130, 87, 63,186,137,123,183, 65,161,103,122, 35, 52,211,211,206, 50, 21, 1,109, 50, 75, 21,113,207, 17, 77, 82, -177,222,166,192,214,165,202, 89,108, 2,122,150, 50,212, 11, 3, 5,187, 17,180,185,152,187,139,173, 17, 68, 66,138,247,179,244, -254,251, 82,179, 35, 58,220,109,117, 69,250,177,128, 78,234, 51,169,109, 30, 4, 92, 41, 36,115, 3, 7, 69,129, 11, 30, 43,161, -144, 18,237, 92,100,202, 11,193,220,137, 56, 79,239, 1,126,190,159,161,245, 65, 90,110, 85,162,108, 42,118, 82,117,155, 37,238, -124,145,228, 96,149,218,120,169, 39, 36, 62,153,120, 52,145,203,182,100,137,101, 90, 27, 23,226, 53,225,217,129,143,187, 71, 49, -104, 95, 58,140, 78,103,123, 7,241,239,181, 93, 74,138, 21, 92,218,131,157,253,141, 16,146,202,226,189, 57,157,198,164, 85,203, -141,229,237,183,227,220, 88,232,152,196,229,122,115,252,214,193,170,139,188,122,211,197,251,179, 94,197,247,166,129,121, 18,231, -152,173,224,236, 12,230,211,120, 47,143,239, 68, 33, 19, 41, 96,126, 12, 82, 34,164,231,104,114,137,194, 26,118,139, 12,103, 61, -185,119,204,189,164, 8, 22, 33, 5,167,198,243,126, 23,165, 92, 95, 25,230,252,242,131, 5, 82, 73,158,203, 36,239, 47, 86,188, - 58,168,184, 55,159, 69,151,185,249, 49,100,154,224, 60,161,243, 4,161,241,245,130,179,149,225,227,214,243,110,103,121,177,144, -220, 53, 53, 87,164,228,107,157,103, 97, 13, 3,169,248, 74, 8,204,179, 18, 92, 71, 32, 64, 89, 97, 93, 96,169, 75,118,139, 28, -139,100, 52,222, 71, 42, 65, 53, 28,226,243, 28,161, 74, 58,149, 51,151, 48,117,138,135, 42,199, 56,193, 74, 71, 51, 22,175, 50, - 44, 6,231, 60,115,157,243, 57, 17,248,106,107,248,162,232, 88,150, 99, 14,204,140,243,209, 1,131,166,197, 22,154, 27,161,230, - 61,147,115,168,162, 46,209,176, 16, 44,150, 29,168,140,117,103, 56, 46,198,148,171, 25, 62, 43,113,235, 37,181, 86,148,235, 53, -215,171,156,177, 46, 41,165,228, 72, 43, 6, 58, 39, 88,195,174, 82, 52, 30, 20,142, 43,185,231, 77,227, 19,180, 63, 21, 87,223, -180, 38,182, 91,238,125,242, 91,240,252, 23, 94, 97,118,214, 69,161, 36,107,120,255,141,183,248,242,207,253,191,124,237,157,143, - 56,195, 51, 18,134,213, 98,202,151,223,126,157,135,175,223, 2,105, 16,211,105,252,125,117, 29,237,120,219, 22,209,118, 73, 84, -198,146, 9,120, 99, 58,215,121, 0, 0, 32, 0, 73, 68, 65, 84,161, 16,148, 33,176,175, 4,215,117,198,110,150,115, 41, 83,228, -165, 70,123,201,131,213,138,183,141,229,151,235, 37,175,215, 29, 31,154, 58,185, 95,134,205, 94,159,229, 20,175, 94,231,115, 7, -215, 57,203, 61,246,238,244,153,100,209, 31,109,195,167,185,155, 76,115,244,158,206,219, 38,141, 14,181,253,125,105,175,243,253, -222,183, 69, 95,237,157, 37,123,230, 75,150,246, 54,185,121,230, 63, 93, 80,135,232,174,132, 74,148, 34,197, 11,151, 43, 38,121, - 65,235, 21,207, 13, 53,247,106,139,119,150,221, 66, 81,150, 67,134,101,198,238,168, 64,233,140, 97,153,115,237,176, 98, 50, 16, - 12,171,168, 45, 63,204, 21,109, 23,105,113, 81,225, 85, 32,133,143,182,130, 50,202,115,102, 2,206, 27,199,254,184,160, 26,150, -232, 60,231,228,120, 74,150,103,172,151, 51,100,240,252,204,215,223,143,224,157,126, 13,169,240,236, 85,172,222,210, 97,233, 43, -227, 94,213,205,251,111, 78, 50,123,234,129,177,241,130, 6, 31,219,131,245, 50,206,253,218,246,201, 0, 17,249, 29, 6,215,139, -196, 66,126, 50, 79,242,187,253,234, 41, 95,189, 7,122, 79,197,208, 91,114,188, 38,233,196, 91,183,161,115,108, 87,231, 90,197, - 74,149, 16, 3, 87,214,243,209,147,176,143, 49,169,130,139,226, 31, 23, 0,147, 62, 65, 80, 91,109,242,109, 32, 93,255,222,187, - 69,153,110,139,186,168, 30,165,126,201,236, 17,188,227, 35, 16,220,222,254, 52,209,239, 68,166,169,125,224,160,136, 60,221,135, - 78,177,151, 65,231, 2, 70, 72,242, 0,107, 41, 89,251,237,225,119,162, 84, 6,145, 90,240,169,122, 14, 79,160, 82,246,194, 19, -219,163,131,190, 52,247, 46,137, 29,165, 99,179,189,118,116, 47, 68, 20, 30,109,199,247,172, 12, 23,158,157,234,248,217,207,176, -115,227,136, 47, 94,127,129,207, 94,190,202,193,164, 98,111, 48,100,180, 55, 97, 58, 91, 70, 20,243,100, 2, 7, 99, 24, 95,226, -168, 44,121, 41, 47,121, 41,211, 92, 17,129,187,245, 50,130,228,124, 6, 7,123,176,179, 19, 29,175, 92,247,233,214,150,115,177, - 82,207,139,141,197,110,111, 35, 44, 84, 92, 11, 33,196,153, 99,211, 38,245,199, 38,126,172, 23,241,123,150, 43,184,127, 7,150, - 45, 76,231, 49, 25, 88, 45, 1,139, 9,130,171,194,114,207, 8,246, 84,180, 73,253,192,194,190, 14,236, 89,195, 91,198,243,176, - 54, 92,241,158, 3, 5, 31,118,158,151,117,148,240,157, 11,120,206, 89, 30,172,106, 94,174, 42,238,173,231,208,173,192,121,194, -124, 69,232, 12,190,200, 9, 90,226,219, 53,222, 91,124,187,230,227,198,113,164, 60, 15, 76,195,184, 80, 44, 87, 11, 58, 33,185, -107, 28,141,179, 4, 85,164,241, 75, 14,195, 29,130, 11,188,176, 51,100,164, 75,106,211,177,183,179,131,109, 44, 94, 15,240, 66, - 98,149,164,182,130,135, 30,206,144,172,242,130, 38,171,232,202, 1, 70,101,248,124, 4, 58,227,133,172, 98, 32, 37, 63,176, 59, - 98,237, 50, 14,204, 18, 91, 76, 24,155, 25,228, 67,178,174,225, 86,200,121, 49,119,172,140,163,202,162,214,142, 2, 90, 27,184, -151,101,200,213, 28,202, 17,147, 52, 67,191, 36, 21,167, 46,112,128, 99, 95, 72, 74, 41,185, 36,115,118,114,117, 33,136, 56, 84, - 25, 65, 8,206,157,225,235, 30, 56, 57,139, 34, 51,206, 60, 1,225,238, 31,107,197, 71, 53,207,217,233, 57, 44,167,143, 22, 41, - 58,137,127, 53, 29,239,191,115,155,175,255,242, 27, 60,252,165,143, 98,101, 43,227,158, 35, 86,171, 8,160,108, 29,162, 73,232, -118, 27, 41,146, 82, 10, 14, 66,224, 69,173, 57, 16,130, 61,169, 25, 40, 69,145,105,114, 45, 25, 72,193,204,123,102,235, 46,250, -184,247,163, 57, 33, 99,210, 37,162, 2,101,240, 30,123,231, 12,183,171,153,189,254, 46, 98,189,250,244,123,168,216,162,173,170, -212,189,236,131,114,175,176, 25, 32,250, 30,167,203,180,221,230,239,247, 48, 37, 34,128, 78,108,213, 86,129, 71,170,245, 79, 23, -212,181,222, 40,229, 20,146,163,215,118,248,248,173, 51, 6, 59, 25,135, 69,206,221, 58, 16,130,229, 82,169,104,125,206,115,135, - 67, 14,118, 75, 92,200,168,180, 96,127, 39,103, 50, 20,140,170, 28,239,147,228,102, 38, 49, 38, 90, 2,158, 44, 26,170, 66,225, -124,224,225,201, 10,219,212,228, 89,172,182,134, 85,129,247, 2,149,229,120, 31,184,116, 48,230,252,116,206, 98, 49,229,175,191, -119, 11,238, 78,227, 76,207,134,141,109, 39, 60, 91,245,208,239,203, 50,157, 95,106,219,125, 51,111,253,177,247,254, 63, 79,219, - 60,251,100, 65,242,221, 49,178,251,213,160,161, 61,203, 61,183,143, 38,214, 17,101,190,149, 88,100, 58,137,192,164, 64, 45,182, - 43,249,196, 41,239,101, 99, 67,136, 93, 14, 89, 93, 56, 41, 69,109,247, 46,205,200, 83,155,218,182,137, 54,152, 61, 26,196, 67, -216,154,169,139, 13, 8,174,179,143,242,213,123, 84,124,182,165, 92, 87,136, 71,121, 52,130,141, 96,145,202, 55, 82,144, 40,130, -119, 56, 41,105,131,140,167, 40, 21,181,151, 81,132,201, 64,166, 21, 75, 19,131,252, 69,192,118,225, 81,173,227,190,163,114, 97, - 79,107, 55, 85,122, 63,203, 15, 61,152,166,167,203,184, 71, 1,112, 50,141, 6,182,147,153,190,187,224, 83, 30,209,111, 8, 97, - 11, 68,248, 73, 70, 19,229,152,157, 27,215,121,245,224,136,113, 57,100,255, 96,159, 65, 62, 32, 24, 67,174, 20,235, 76,209,206, -215,176, 63,132, 75, 87, 57, 26, 12,120,181, 26, 51,214, 26, 45, 96,224, 59,180,111, 57, 61, 94, 69,156,195,100, 24,223,203, 28, -166,179, 79, 81,165,167, 57,106, 33, 35, 29, 32,139, 84,198,223, 48, 86,252,192,164,228,249, 82,241,193, 89, 27, 91,242,193, 63, -106, 17,220,175,125,147,230,147,109, 19,255,109,218,184,233,175, 18, 24, 15,207, 92,121, 90,169,120,123, 54,165, 53,130,251, 77, - 77,133,226,118, 16,212,171,154,214, 88,198,121,198,241,186, 99,100, 28,141,214, 28, 8, 48,171, 37,199,197,128, 87,114,201,219, -243, 37,235,122, 14,198, 16,112, 23,114,253, 97,246, 16,175, 6,120,229,241,109,139, 55,150,102,177,224,195,179,134,219,243,154, - 15, 79,167,220,111, 26,110,227, 35,157, 81, 15, 98, 48, 27, 31, 16,218, 8, 42, 29, 20, 21, 69,210,188, 23,163,138,243,117, 67, - 59, 24,144,103,154, 51, 47, 17, 82,115, 39, 8,110, 89,139,202, 43,150,121, 69,208, 89,244,186,207, 39,144,143, 40, 6,251, 92, - 43, 6, 92,157,236,130,200, 57,154, 20, 52, 89, 73,190,154,113, 76, 69, 22,106,138, 98,196,161, 52,220, 94,214,236, 23, 37,141, -177, 49, 87,178,129,219, 2,154,166,166, 40, 42, 14, 4, 12,149,230,185, 42, 67, 90,203, 43,227, 10, 37, 20,218,117, 28,170,140, - 61,149,145, 37, 48,104,147,196,151,156, 16,204, 3,124,109,185,140,207,129,173, 83,146,109,191,197,102,214,143,174,186, 39,235, -132,132,100,137,108, 82,146, 95,102,136,139,194, 34,126,143, 72,227, 29,129, 71,212, 77,164,204, 39,243,149,163, 74,114, 83, 72, -118,165, 38,151,130,137, 86,236,229,154, 12, 77,174, 36,135, 74,177, 11,204,188,167,113,118, 51,102, 18,177, 3, 23,178, 52, 66, -107, 91, 86, 31,222,137, 20, 50,239,163,104,205,167,217,127,251,209,147, 76, 64, 25, 45,226,154,101,171,144, 20, 73,116, 75,176, -225,253,135,237,107,145,246,191, 97, 21,181, 91,122,205,120, 69,220,255, 62,117,165,190, 45,253, 41, 60,228, 37,171, 44, 32, 86, - 29,211,181,229,222,210, 83, 35,184,170, 29,153,148,156, 47,151,188,124,117,159,162, 26,225,140,225,104,191,228,104,183, 96, 82, -169,200,231, 86, 34,250,119, 8,129,214,240,211, 95, 91,113,176, 3,171,218,208,218, 14,151,102,122,214, 88, 92, 16, 12,134, 5, -206, 5, 70,163,156,229,162, 35,207, 21, 77,211,114,182, 88,241,238, 91,239,197, 86, 96,109, 55, 96,178, 94,151,248,211, 4, 76, -191, 37,198,242, 29, 7,195,199, 80,119,223,205,224,254,204, 85,208,119,161, 59,208, 7,112,185,141,109,145, 27,113,159,222,246, -243, 66, 19, 89, 71,208, 86,166,226, 70,237,237, 6, 5,223,219, 25,170, 34, 1, 67, 68,156, 83, 74,145,130,119, 6,126, 29, 3, - 91, 89,110, 2,217,186,217, 82,164,235, 85,212,194,163,129,110, 59,160,235,100,222,162,229,198, 1,174,175,142,123, 81, 27,177, -229, 97, 78,226,150,247,246,165,200,152,249, 42, 69,161, 36, 51, 20,153, 16,248, 16,144, 42, 32,180,224,172,182,228, 90,209,110, - 75, 70, 26,255, 40,194,191,139,173, 59,218,232,149, 64,161, 31,173, 80,251, 4,167, 15,242,253,231,100, 15,186,179,155, 7,251, -113,166, 99, 95,173, 15,163,146, 87,228,245,187, 77,119,234,147, 42,245, 27, 55,248,226,205, 27,148, 89,201,225,222, 37,138, 60, -199,217, 14,107, 28,185,202,104,108,195,204,117,176,179,195,247, 29, 94,225,181,209, 37, 14,170, 1,141,181, 81,205,178,105,104, -187, 21, 15, 86,117,172,146,178, 4, 20,156, 47,227,115,248,105,170,244, 11,202,161,134, 50,231,218,176,224, 55,142, 11, 38, 42, -162,209, 39,165,228,195,217, 42,169, 42,202, 71, 85, 4,165,140,201, 88,153,197,107,161,100,220, 52,219, 52,207,151, 1, 86, 13, - 93,211,209,154,154,208,213, 44,156,195,205,143, 57,246,154,145, 51,236, 6,207, 73,219,113,108, 58, 20,130,155,227,156,176, 94, -131,214, 40,169,216,239, 26,238,173,107, 30,212, 43,172,169, 35,192,207,180,209,202,181,235, 8, 34, 39,172, 87,132,122, 77, 24, -148,120, 99, 99,176,119, 93,252,220, 98, 78,168, 87,132,233, 50,186,194,217, 6,116, 65,176, 22,198,187, 72,161,121,101, 52, 32, - 32, 56, 21,160,180,226, 65,158,211, 8,201, 87,140,163,203, 52,175, 11,141, 13,176, 76, 28,106,164,138,207, 80, 62,140,231,156, - 15,184,190,187,199, 36,203, 24,142, 70, 20, 8,206,157,102,156, 11,140, 46, 56,104,150,172,130, 66,248,154,115,163,121,126,167, -228,108, 89, 51, 25, 42, 22,235,192, 45, 33,120, 94, 40, 12,240,188, 18,236,141, 10,156, 23,220, 24,148, 28, 85, 21,227,108,192, -218, 59,174,102, 5,210,116,236,231, 57, 57, 2, 57, 40,169, 9,120,173, 88, 35,185,237, 29,111,218, 4,152, 60, 91,125, 50,150, -227,153, 71,190, 62,142, 52, 73,160, 48, 25, 69,150, 68,191, 71,167, 61, 78,116, 14, 97, 58,132, 18, 8,239,144, 62, 32, 21,100, - 82,112,128,228,178, 20,236,228, 25,149,148,220,172, 74,174, 22, 21, 87,138,156,163, 34,231,234,160, 98, 87, 75, 62, 92,119,180, - 18,130,210,132,196, 42, 10, 33, 2,154,195,178,133,179,179, 24,204, 71,195,232, 80, 39, 36,194,218, 79,103, 60,230,183,112, 39, -125,210,211,155, 48,245,202,155,193, 63, 74,195,237, 5,208,122,204, 82, 94,114, 97, 92,214, 39, 67, 91, 73,252,179, 7,245,158, - 58,165, 36,232, 97,148, 7, 60,158,163,158,159, 16,206,107,174, 95,175, 40, 50,203,135,115,195, 81, 41,184, 58,201, 9,162, 4, -111, 57,220, 31, 34, 69, 96,119, 32,216, 25, 22, 56,231,104,141, 67, 11, 88,119, 6,239, 4, 95,255,224,140,247, 63,186,195, 32, -207, 88, 45,150,204, 23, 75,214,171,154, 60,151, 12, 70, 21,121,158, 1, 10,103, 28, 69, 1, 77,227,112,193,241,254,253,251,204, -117,160,187,117,188,213,170,120,140, 42,246,105, 91,220,223,141,224,123, 1,172,243,159,152,160,254,170, 6,116,245, 93, 41,213, - 19,200, 73,110,141, 41,236,163, 25,202,246, 38,155,171,216, 38, 29, 12,145, 95,252, 44, 97,182,136,237, 81,231,160, 24,197,170, - 44, 36,250, 91, 16, 81,205, 43,171, 54,116, 47, 37, 55, 52,144,117,162,147, 92, 56, 36, 37,224,160, 44, 54,237,233, 46, 5,204, -109,103, 62,149,199, 68, 66,170, 13, 69, 48, 16, 91,181,170,167, 8,166, 81,128, 78,130, 57,201,122,148, 66,167,141, 34, 38,135, - 6,193,160,204, 88, 27,143,150, 34, 62,143, 38,144, 73,201,188, 55,108,184,248,251,126, 19,204, 93,136,215, 34,108, 81,250,182, - 91,240, 61,184,204,111, 85,250, 33, 41,205,117,110, 3,154,235, 85, 4,251,148,189, 99, 83,193,103,105, 3,232, 91,123,186,183, -139, 20,159, 72,115, 44, 94,122,137, 16, 44,215, 15, 14,201,243,156,206,116, 40,145,108, 72, 9,180,193,113,188,106,248,210,213, - 67,138,106, 55,122, 60,228,138, 65, 86, 96, 58,131, 20,142,135,179, 19,206, 62,190, 19,219,200, 75,147, 16,241,221,166,253,222, -107,100, 63,237, 25,236,191,222, 3, 63,117,129, 28, 14,248,157,151, 42,118,178, 28, 47, 4, 74, 64,215, 26,222, 57,111,146, 35, -152,217,172,181,190, 75,148,231,112,120, 53,174,177,174,222,140,204, 50,157, 68, 59,146,141,240,116, 30,175,213,131,187,169,117, -187,100,161, 52, 67, 60,210,117, 72, 2,133, 3,107, 45,227,193,144,206,116,248,229,154,157, 66,243,229,243, 57,206,180, 9, 39, - 99, 8,166,139,125,107, 27, 8, 82, 16,218,134, 32, 3,161,105,183, 93,182, 47,138,172, 96, 34, 88, 49,220,187, 15,195, 49,140, - 71,113, 45,234,104, 39,122,170, 51,188, 16, 92, 30,230,220, 91,117, 92,175, 50, 62,108, 45,151,180,230,190,243, 88, 36, 43,169, - 8, 34,128, 46, 19, 56, 42,138,232, 48, 28,115,105, 48,228,102, 38,121,241,112,135,182,181,168, 73,197,209, 32,231, 97, 23, 56, - 20,158, 85,174,105,219, 21,222, 73, 14, 10, 56,158,173,216, 27, 23,172, 59,207,185, 23,236, 2, 75, 33,201, 93,199,225,184, 96, - 71, 74,198, 74, 48,148, 25, 58,203,217,205,115, 14, 7, 35,240, 2,169,115, 86, 93, 67,200,114,234, 32, 88, 40, 65,155,101,220, -117,158,247,140,224,142,243,177, 91,178, 92,197, 81,152,247,143,219,108,125, 27,237,201,222,157, 49,205,155,125, 44,222,132,220, -224,124, 68,138,129,194,216,244,110,144, 34, 35, 35,160, 51,201,101, 45,217,209,138, 35,157, 49,210,154,129, 46,169,116, 70,153, -229,236,102, 5,198, 91,172, 53, 76, 21,212, 4,100, 94,224, 93,228,185,203,174, 35,172, 26,112, 9, 1, 63, 44, 35, 45, 78,134, -139,142,238,183,101, 27,254, 73, 64,233,139,175,251,205, 62, 96,211,124, 93, 37, 61, 13,107,226,216, 55,124, 26,244,251, 19,129, - 90, 9, 1,110, 36,131,207, 95,197,124, 56, 67, 93, 31, 96,131,103,250,238, 12,177,110,185,127,122,202, 7,203, 53, 59,250,156, -157,170, 64,229, 35,118, 70,146,163, 73, 69,221, 52,148,133,138, 0,145,206,197,153,185, 14,236, 13, 5, 85,149,209,186,142,233, -188,229,193,241, 3,140,119,104, 41,145, 89,198,100, 84,224,141, 97,185, 92, 81, 86, 37,211,243, 25, 93,211, 81,105,197, 27,247, - 31, 16, 86, 6,154,121, 82,183,106,191, 51, 77,244, 79,251,163, 23, 93,140,132,180,238,179,172, 39,217,168,249,111, 29, 67,191, -227,164,194,109,241,161,229,227,227, 19,249,232,199,183,188, 78, 9, 76,160, 83, 48,247,114,155,103,245,205,235,195,165, 69,169, - 50,194,206, 78, 68, 48,135,164, 38,167, 66,156,193, 22, 18, 66, 30,249,154,189, 87,124, 81, 36, 10, 88,153, 90, 81,126,179,128, -123,164,123, 79,147, 99,139,214,214,250, 71,145,213, 69, 30,129, 39,190, 23,131, 73, 21,253,182,211,153, 21,155, 74,223,187,168, -242, 36,185, 48,141,136,179, 52, 46,208,243,198, 57, 42, 41, 89,121, 8, 33, 32, 2, 44, 43, 25,171,101,221, 11,238,216, 77, 64, -207,213,134,146,231, 82, 50,164,244,133,132,236,197,245, 19,233, 30, 52, 41, 49,201, 68, 60, 72,151, 42,110,145,142,143, 45,111, -117,181, 21,220,243, 30,116, 19,175,247, 69,182,255, 45,198, 51,238,124, 73,117,245,136,138,232,243,160, 16, 12,134, 21,109,189, -198,250,142,186, 93, 50,204, 4,223,115,253, 38, 85, 85,177,146,138,194, 11, 36, 6, 92,199,241,114,198,215, 78, 78,225,193, 52, - 57,229,249,216, 6,116, 38,137, 3,145,186, 50,219,224,202,199,147,222,173, 17,138,146, 32,115,190,120, 56, 96, 47, 47, 24,107, - 69, 16, 18,227, 29,223, 88,183, 28, 79,163, 90,221,133,176, 80,191,110,123,187,231,213, 44, 2, 40,133,219,162, 7,110, 9,232, -180,233,231,219, 85, 52,179, 89, 45, 99,208, 41, 37,179,102,206,209,112,151, 83,211, 82, 8,193,165, 76,179,182, 29,187,206, 49, - 42, 43,254,254,195,227,152,168,180,179,200,181,183,109, 4,188, 42, 69,176, 38, 6,242,229,121,108,215, 58,247,104, 48,127,236, - 61, 38,170,115,194,217, 12,142, 14,211, 26, 43,200,117, 84,161, 84, 68, 13,251,179,214,114,181,140,250,235, 45, 30,107,124, 20, - 43,234,129, 83,147, 73, 92,115,121, 9, 50,227,112, 92,112,115, 50, 64,103,146, 44,203,233,148,164, 13, 48,145,138,187, 86, 48, - 86,154,219, 54,160,156, 99,218,121,148,119, 44,189,164,105, 45,149, 16,220,115,134,207,142, 52, 7,131, 10,225, 61, 59, 66,112, -165, 28,178, 18,130,177, 86,200, 16, 24, 13, 7,212, 1,186,214, 50, 42, 43,150, 72,214, 69,206, 84, 42,102,206,242,160, 17,204, -165,230,212,182, 56,103, 8,138,136,185,248,118,192,147, 79,220,134,108,194,219,116,143, 24,170,136,190, 5,191, 61, 81,115, 46, - 78,161, 36,232, 92, 49,146,138, 29, 41,184,146,107, 46,149, 5, 35, 85,196,173, 42,120,164,208,180,222,160,180,102, 41, 3,211, -186,102,156,101,212,214, 99,157, 97,164, 4,245, 98, 25, 19,186,243,121,212,134,207, 51,132, 22, 9,101,111, 35,229,237, 49,136, -206,167,126,189,112,141,253, 47,124,134,250,214,189,111,102, 65, 61, 30,232,219, 46, 57,133,118, 79, 28, 19, 63,209,222,236,171, -127,239,167,248,143,127,226,127,224,111,254,221,159,123,242, 1,172, 27, 24,148,172,223, 58, 69, 20, 26,119,107,193,186,245,136, - 28,126,240,251, 95,228,203,255,240, 1,208, 32, 41,185,123,118,159, 32, 53,207, 95,126,137,119,238,157,241,202,149, 9, 47,222, - 60, 98,181,106,121,231,131, 7, 96, 61,247,167, 45,139,117,205,221,143, 79,152, 45,215,156,181, 75,150,214,208,153, 64, 86, 72, -118,179, 33,167,199, 51,254,212,191,242,187,248, 63,127,238, 77,190,113,235,132,182,107, 57, 95,213,252,181,159,248,215, 81, 74, -226,211,188, 85, 74,137,148,130,201, 43, 63, 66,103,126,149,145,225,189,184,137,216, 70,193,109,251,180,127, 27,137, 65,127,131, -244,119,128,108, 87,143,189,111, 31,235,183,215, 3, 75, 7,148,192, 45, 79, 82, 84, 26,148, 23,235, 34, 2,158, 44,188,243, 97, -100, 74,168, 50,118, 79,124, 52,202,192, 38,138, 90,158,116,225,109, 66,138, 23,163,200, 36, 80,101,178, 7, 77,188,105,183, 69, -235,235,131,123,191, 14,117, 58, 46,107, 31, 61,199,124, 11, 64, 38,100,148, 28,246, 34,126,190, 87,108,235, 91,216, 89,186, 88, -193, 61,202,149,135, 11,117,184,117,202,152, 59, 31,232,130, 68,182, 2,143, 75, 35,137,116, 45,122,197,184,158,146, 7,177, 29, -220,177, 53,219, 79, 92,244, 32, 54, 93,132,254,107, 62, 89,173,246, 84, 55,107, 55,179,247,167,101,155,222,166,132,193,166,243, -121,134,219,217, 44,120,240,230, 71,148,159,147,156, 46, 87,188,114,245, 26,166, 61,163, 44, 52,160, 56, 24, 76,248,204,209,101, -202, 65, 9, 34,227,250, 96, 72,107, 28, 31, 62, 92,240,229,213, 20,191, 92,110,116, 7,214, 22, 6, 26,202,113, 60,134,198,197, - 64,223,175, 7,251,148,181,158, 0, 73,180, 29, 20, 57,215,247, 53,151,133, 96,234, 28,131,144,225, 68,224,107,181,225, 27,203, - 84,169, 60,105,253,150, 99, 56,184, 4, 15,239,108,198, 47,253,247, 93,172,207,173,117,177,110,128, 38,206,123,231,199,241,103, -190,248,121,102,139,251, 92, 26,236,178,240, 29,111,156, 47,249,222,157, 67, 36,134,166,171,185,150, 73,110, 55, 45,194, 68,117, -177, 48,157, 69,251,214,135,167,241, 25, 95,156,130,148,113, 62,254,216, 43, 60,233,255,235, 6,116, 3, 31,188, 9, 87,159, 3, -165,105,149, 38, 8,133, 73,157, 37, 45, 5,239,173, 26,148,132,171,121,193,109,209,224,154, 36,113, 76, 25, 25, 0, 89,122,206, -148,230,210,176, 36,228,177,187, 81,228,160, 76, 60,111,155, 43, 70,165,226, 23, 30, 46,216, 45,134,252,109, 19,216,149,150, 42, - 40,174, 54, 11,116, 57,166, 2,174, 41,141,195,177, 19, 60, 50,175,200,117,198,217,106,193,181,225,152, 78, 75,206, 91, 75,179, - 92, 51,153, 76, 88, 10,135,145,209,193,236,220, 90, 76,145,115,214,105, 78,164, 99,109, 58,118,243, 1, 39,229, 16,155,207, 96, -188, 15,237,253, 95,213, 45, 56, 96, 17, 90, 19, 82, 27,252, 98, 82,101, 45,172,107,234, 14,186,231, 52,107,167,152,183,134, 98, - 0, 54,116,104, 10,144, 26,227, 13,185,210,236,120, 79, 48,150,215, 6, 3,222,237, 26, 62,151, 59,222, 93, 59, 86,222,115, 77, -192,157,135, 39, 81,119,190, 53,132,176, 6, 27, 16,198,198, 46,204, 19,238,185,120,202, 26,120,234,235,195, 59,156, 73,241,244, -174, 86,175, 32,217,175,235, 79,240,187,248,166, 39,101, 56, 40,249,252,103, 95,224,231,127,241,141, 39,236,237, 54,129,228,146, -174,119,183, 2, 87,161, 94,221,199,191,125, 15,117,243, 26,191,240,143,238, 80,221, 40,169,178,146,159,125,231,152,207,220,104, -216, 47, 75,222,124, 39,231,232, 96,135,197,110,193,206,100,192,235,111,223, 98,186,152,177,110, 29,153,232,248,250,155,247,248, - 59,111,125,200,165, 74,178,183, 51, 68,134,152,253,223, 59, 55,120,235,216, 29, 15,120,238,112,135, 95,121,231, 22,239,221,123, - 72,161,115, 38, 85,201,143,254, 59, 63,201,255,243,238,251,240,254, 3,104, 22,252,249, 63,253, 39,121,238,232,210,175, 65, 64, -231, 9, 1,253,113,148,123, 31,108,248,100,239,243,222, 82,115,187, 10, 17,252,218,188,190,213,177,109,223,251, 39,253,187,216, - 50, 84, 41,199,169, 61, 38,162, 9, 75,207,197, 44,114,232, 68, 4,119,244,232,253, 97, 9, 77, 74, 60,180,220, 80, 51, 42, 29, -177, 17,217, 78,172, 96,237, 34,122,176,171, 60, 86, 76, 93,189,209,124,239,215,225,246, 2, 87, 9,132,114,145, 54,247, 85, 93, - 10,232, 93,242, 83,238, 82,224,191, 64,143,203, 77, 64, 52, 61, 42,117, 43, 65, 11, 36,212,105,128,208,225,253, 86, 85, 45,182, - 42,116,111, 55, 26, 6,164,249,111,149, 71,160, 79,112,143,242,216,189,221,252, 91,132, 77, 66, 80,234,216,222,253,164,246, 78, - 78,236, 72,101, 41, 49,184,118, 8, 31,222,223,200,222, 58,255,201,247,182,105,248,232,131, 59,140, 46,239,177, 51,205, 24, 23, - 37,171, 58,218,196, 30,237,236,177,119, 52,161,110,162,216,206,170,109, 88,180, 13, 46, 3,191,154, 65,151,180,167,243,173,107, - 4,113,148, 33,154,248,247,215,137, 13,225,158,226,121,111,211,215, 83,192, 13, 66,208, 4,143,246,129,247,186,142,179, 14,222, -169,211,207, 21, 2,230, 91, 26, 4, 33,174,181,252, 11,175,208,221, 59,251, 22,137,235, 99, 9, 95,159,144,246,246,150,239,188, -133,253,220,107,156,213, 53,132, 21, 72,197, 47,222,125,143,188, 28, 83, 9,193,108,126, 6,210, 19,154, 8,146, 19, 85, 9,171, -134, 32, 53, 60,124,152,152, 48,221,183, 8, 60,143,189,230,167, 96, 87,145, 45, 96, 1,149,211, 1,183,229,152, 35,215,226,170, -138,214,121, 94,173, 74,238,117, 29,206, 38,136,186, 77,244,217,178,188,120,142, 46,233,200,216,176, 66, 48, 46, 53,214, 5,116, -225, 81,121, 78,221, 90, 78,219, 64, 53, 44,121,195, 74, 14,133,160,238, 26, 68,107,120, 32, 38,236,153,134, 74, 72,174,236, 14, - 41, 77,141,148, 26,135,164,234, 90,118,118,119,185, 91, 55,228, 78,113, 56, 40, 24, 82,242,208, 7, 70,187,151, 56, 63, 62, 6, - 37, 88,171,156, 46,192, 10,144, 33,176, 18, 18,135, 36,232, 44,170, 16,142,151,176, 78,201,221,175,202,203, 62, 26,194,116, 79, - 51,142,235, 63, 8, 64, 26,110,157, 46, 81,151,225,197, 82, 51,109, 59,142, 84, 73,235, 28,173,179, 84, 42,231,196,116,212,193, -178,159,231,204,172,225, 32,215,172,154,142,151, 67,203, 7,179,154,251,103, 11,164,179, 4, 27, 63,132,141,231, 19,236,163, 88, -182, 79,188,231,207,242,122,255,246, 19, 18,215, 18, 6,195, 4, 16, 77,186, 14,166,123,166,208,148,246, 67,201,199,191,244,215, -144, 82,242,225,151,255, 42, 0, 95,250, 29,127,152, 15,110,221,229, 63,248, 19, 63,198,191,249, 47,255, 94, 14, 15,118,249,153, - 95,248, 26,255,210,191,255,103, 57, 62,155,241,195, 63,244, 61,252,143, 63,241,239,242,215,127,254, 23,249, 23,126,219, 15, 34, -149,226, 79,254,248, 95,224,123,127,224, 53,254,192, 63,241,155,185,124,184,207,159,251,171,127,139, 63,247,151,255, 47,254,232, - 15,125, 63, 82, 88,180,254, 62, 94,127,243, 35, 86, 77,199, 15,126,254, 5,190,231,139, 47,243,119,190,252,151,120,248,250, 91, -252,200,191,248,187,249,183,254,232,239,225,198,229,125,190,254,241, 61,126,236, 39,127,138, 95,126,255,109,238,254,165, 63,141, - 64,240,147,255,246,239, 3,224,143,253,217,191,204,207,190,253,141,216,253,156, 25,176, 53,255,252,239,254,173,252,190,223,243, - 67,124,207, 15,255, 17,126, 93, 95, 61,184, 65, 60,107,208,220,162,242, 92,180,152,121,118,141,225,103,237, 40, 60,237,111,107, -251,108,129,253,105,199, 93,150,177, 10,239,221,212, 84, 1, 86,199,207, 55,117,148,142, 29,148,155,227,200, 52,180, 73, 26,182, -136,150,138,145,247,223,198, 25, 41,117,148, 24, 85, 62,182,233,251, 42,221,177,161, 61,125, 19, 56,110, 11, 33,239,205,166, 53, - 29, 82,171, 90,166, 28,190, 15,232, 50,196, 68, 99,144,127,115, 75, 56, 35, 30,135, 77, 32, 65,147,170, 97,209, 87,228, 91,237, -124,177,245,248, 54, 9, 73,232, 83, 96,237,103,245,117,226,223, 23,217,214, 24, 32, 5,116,231, 82,162,144,254,118,174,210,239, -217, 10,148,166,217, 32,226,183,129,114, 90,196,121,113, 86,114,233,242, 1, 39, 15,103, 48,235,210, 40, 65, 38,239,132,173, 29, -102,123, 45,133, 21,100, 7,188,118,245, 38, 90, 58, 6,163, 17,174,169, 81, 74,179,127,120,137,178,204, 81, 69, 96, 58,111,168, - 93, 71,231, 44,199,245, 60,110, 44,139,117,252,176,102,179, 86,157,221,128,254,164,127, 74, 15,240,177, 53,185,181,214,239, 28, -175,120,126, 60,228, 78,211,128, 47,121,167,115,155,243, 21,114,147, 32, 92, 36,235, 53,221,219,239, 70,250,104,219, 61,161, 66, -127,108,221, 63,254,249,190,149,219, 76,152, 31, 31,195,184,141, 5, 75,178, 36,237,128,206,172,226, 8,193, 68, 14, 52, 64, 56, -153, 70,175,245,166,217, 84,255,197,147,157, 2, 63,113, 99, 95, 55,177, 61, 61,174,226,249,237, 94, 6,123,200,131,241, 78,212, -214,215, 37,239, 44,234, 77, 23,168,255,123, 66, 70, 4,246,112, 0,157, 71,101,158,202,121,156, 18,204, 93, 96, 80,102,152,198, - 96, 8,136, 66,179,178,158,147, 96, 41,131, 98,145,105, 6,114, 68,147, 91,196,116,206,160, 24,162,186,134, 82,192,104,178,203, - 14,130,105,211,161, 6, 21, 31,206,230,188,178,183, 71, 99, 13,171,214,113,234, 12,207, 15, 7,156, 19, 56,216,223,231,214,236, -156, 66,230,156,174,187,200, 0, 17, 48, 8,158, 70,107,180,206,112, 34,131,225,128, 32, 10,112,205,147,241, 61,219,157,206, 79, - 83,132, 93, 36,105,143,221,243, 94,175,201,123, 66, 90, 87,161,179, 4, 3, 31,157,231,252, 3, 47, 40,145,236, 23,138, 12, 80, - 50,103,233, 13, 74,106,238,172,107, 78, 9,104,165,144,206,162, 75, 77,214,193,229, 61,193,195, 85,234, 2, 52,117,106,121, 63, - 58, 90,249, 38, 12, 5,143,226, 91,191,109, 76, 65,145, 67, 89,196, 2, 72, 8,112, 42,225,109,252, 39,198,133, 71,102,234, 33, - 4,156,115,156,156,205,248,254, 31,249,215,248, 47,254,235,255,153,243,217,130,159,248,143,254, 13,126,251,111,254, 18, 63,250, -135,254, 61,254,204,127,245, 63,241, 99,191,255,119,241,165, 87,159,231,111,253,253,175,242,135,254,185,223,206, 23, 94,123,137, -255,242,191,249, 43,252,137,159,250, 43, 92,175,198,252,135,127,252, 15,242,191,252,181,159,230,143,255,103,127,145,143,166,199, -252, 39,127,228, 15,240,231,254,187,255,149, 92,214,124,254,133, 27, 76, 70, 67,254,238, 79,255, 60,191,243,183,124,145,151, 95, -184,202, 31,249, 79,255, 91,254,239,127,248, 14,127,242, 15,255,179,252,254, 31,249, 65,126,255,159,248,179,252,169,159,252,139, -252,150, 47,124,134,223,254,242, 77,254,234, 95,250,223,113,251, 59,116,173,225, 95,253,207,255,123,254,194,255,241, 15, 88,173, - 86, 88,103,120,227, 87,238,192,116,202,205, 23,174,242, 55,127,234,207,240, 7,255,216,159,230,205,119, 62,250,181,169,210,241, - 27,177,148, 39, 61,210,129,103,243, 40,239,129, 61,126,203,145, 43,244,173,216,239, 70,146,225, 63,217,114,246,153,125,212, 31, - 27,248, 95, 24, 28, 84,233,148, 85, 2,193,117,144, 87, 96,151, 49,130, 21,101,188, 22, 85, 1, 85,149,134, 93, 58,130,210,134, -131, 24, 64, 93, 74, 14,156,219,200, 32,154, 5,200, 50,166,196,222,196,160,218, 3,227,202,252,209,141, 64,234, 77,128,233, 9, -180,206, 37, 48,158,216,204,209,173,216,180,188,123,106,140,220, 66,196, 43, 25, 55,218,114, 16, 31,168, 94,198,214,218, 56, 79, -105, 76, 12,166,150, 77, 80,251,255,186, 59,243,216,202,174,251,190,127,206,114,151,119,223,198,101, 54,105,180,203,178, 36,203, - 82,237,120, 81,188, 1,110,155,218, 13,218, 24,112, 19,184,168,255,180, 83, 32, 64,209, 38, 5,130, 2, 6,138,180, 64,227, 46, -105,141, 26, 40,138,182,169,155,182, 6,154,216,109,224,164,177, 93, 27, 65,108, 3, 74, 17, 91,134, 20, 69,171,173, 37,150, 53, -210,140,102,134, 67,114, 72,190,229, 46,103,233, 31,231, 92,222, 75,206,140,228, 25, 73,142,209, 7, 16, 36, 31,249,222,187,203, - 57,191,245,251,251,126,235,232,169, 91, 36, 61,190, 35,175,176,190,119,189, 84, 36,138,112,157,156,234,129,102, 96,191, 34, 70, - 4,195,212, 33,232, 57, 76,118,209,239, 73, 87, 53,139,237, 69, 16, 52,106,103,228,137, 61,121,209,151,233,117,221,122, 74, 52, -119,223,247,118, 38,195,130, 99,227,117, 82,165, 25, 20, 5,227, 65, 65, 83, 55, 12, 70, 5, 94,104, 68,170,105, 28, 56, 28, 79, -109,109,211, 8, 9, 23, 46, 4, 10, 88,211,116,199,236,162,212,166,142,228, 49, 45, 81,149, 10,162, 76, 7,122,171,253, 62,161, - 86,113, 84, 17, 94,108, 96,203, 43,182,132, 15,193,138,139, 85, 20,235,130,194, 85, 95,200, 40,209,176, 88,118,204,145,237, 61, -234,143, 26,181,243,238,142,131, 65,114, 31, 75, 82, 45,195, 49, 14,179, 72,128, 20,143,115,123, 35, 16,222, 72, 21,232,105,181, -134,205,109,152, 14,195, 26,216, 62, 23,208,221, 89,250,170,153,250,149,177, 47, 13,204,150, 97, 31, 12, 70, 1, 27, 32,117, 28, - 9,171,194, 57,167, 49,168,107,215,133, 82,221,244,135,169,104,140, 99,109, 92,176,174, 36, 74, 73,246,106,143,148,130,165, 23, -156, 89,212, 44,113,204,107,139, 84, 10, 82, 77,227, 61, 78, 73,142,166, 41,141,148,220, 49,144,140, 17, 88, 47, 25, 74, 65,145, -103, 44,107,195, 90, 81,176,181, 44,241, 90,147, 41,201, 40,205,184, 96, 26,214,117,194, 5,107,184,101, 52,225, 84, 89, 50, 72, -161,170, 45, 53,130,165,173,216, 50, 13, 66,106,106, 83,117, 99,169, 91,219, 29, 51, 98,223, 97, 37,170,107,169, 93, 45,121, 81, -111, 13,137,120,111, 69,143, 30, 66,120, 31,116,212, 33,140,186, 57, 88, 36,138,163, 90,145,105, 73, 74,104,159,205,156,101,219, - 90, 46, 56,203, 2,129, 21, 30, 33, 4,210,251, 64, 75, 46, 37, 39,134, 41, 34, 81, 44,147, 1,216, 6,233, 65, 28, 2,199, 93, - 65,134,235,218,123,236,237,254, 77,211, 14, 84, 42, 68,216, 99,175, 2, 2,191, 36,158,126,239,187,238,229, 27,127,252,208,254, -239, 55, 92,119,148,191,247,137,143,114,251,253,127,155,243, 23, 46, 2,240,187, 95,125,128,143,253,205, 15, 66,185,199, 79,255, -165,183,240,111, 63,247,191,248,230,255,125, 2,117,251, 58, 27, 91, 23,249,250,131,143,240,123,143, 61, 70,189,156,115,246,249, - 77,118,102, 11,236,162,228,219, 79,158,231, 19, 31, 91,225,143,254,236, 73, 62,242,115,239, 71,107,205,135,126,229, 55,216,220, -216,227,216,218,136, 79,253,210,223,226,190,159,251,135,188,180,189,139, 51,154,175,125,235, 65, 62,249,177,159,133, 69,201,253, - 55, 93,207,215,190,243, 8, 79,109,158, 39,145,146,199, 47,206,200,178, 32, 50,161, 71, 5,191,243,217, 79,241,239,127,251,171, - 60,240,208, 19, 63,222,186,181,239, 1,176,250,229,119,119,149, 61,113,219,150,220,123,128,179,215,181,131, 96,174, 0,161, 48, - 63,106, 4,115,233,115,222,193,112, 26, 70, 7,163,100, 41,178, 9,229,114, 83,129, 30, 71,173,110, 7, 43, 3,152, 22,161,228, - 40, 36,140,178, 64, 6,147, 8,210, 36,167,102,121, 41, 97, 79, 50, 14,239,237, 0,105,186,158,125,109,186,126,122,107,200,197, -229, 90, 32,186, 3,149, 65,112,198,109,217,221, 68,133,188, 36,143,206,216,133, 13,212,146,187, 12, 90,227,145,192,162,233, 0, -136,137, 14,165,116, 45, 2,130,185,142,199,236,234, 46, 92, 23,135, 67,244, 24,168, 45,234,174, 50, 80,153,144, 69,215,241,127, -147, 94, 9, 63,139,206,223,134, 44, 60, 4, 30, 61, 71,116,224, 28,218,177,191,121, 55, 54,217,196,118,134,237,129,104,132, 12, -148,178,237,253, 94,191,137,227,171,235,104,169,217, 89,236,145,231, 57,171,249,144, 36, 79, 73,101, 26, 49, 89,134,201,116, 0, - 18,230,203, 5,183,140, 87,241,102,198,247,198, 67,216,220,233,174,107, 59,158,211,158, 99,139,177,168, 77, 36,102, 50, 87,118, -126,109,150,221,148, 48,111,129,156, 45, 72, 49,146, 7, 73, 21,112, 22,182, 60,152,229,183,159,173, 47,131,169,208,241, 92,205, -161, 62,187,190, 76,214,119,113, 22,152,245,210, 54, 88,216, 11, 96,186,202,192,169, 51,193,145, 22,121,144, 0,157, 47, 3, 59, -228, 43,100,232, 87,149,113,170, 37,252,249, 11,225, 60, 7, 41, 52, 11,152, 28, 15,253,104,107,160,148, 93,123, 72,200,174,244, - 26,191,167, 89, 78,125,238, 34,230,196, 26,110, 94, 51, 28,166,224,100,160, 76, 80,158,166,129, 97,150,176, 83, 53, 88, 37,112, -105,152,114, 88,120,207,170, 75, 56,147,228,164,110,193,221, 89,202, 66,192,145, 68, 65, 82,224,234,134, 65,154, 4, 21,100,161, -152, 11,199, 48,205,152,153,154, 19,163, 1,103, 22, 75,142, 15, 6,108,151, 75, 26, 26,156,183, 88,149,131,153,225, 26,131,202, - 71,152, 34,202,151, 14,199, 65,147,163,127,111,156, 60,152,189, 43,249,163, 87, 38, 15, 93,247, 3, 25,113, 79,176,208, 43,185, - 63, 94,232,154,146,229, 30,124, 77, 8,172,132, 66, 44, 56,150, 5,194, 35, 43, 5,115,165, 3, 75,164,245,104, 37, 24,106,205, - 0,197, 12, 65,158, 75,134, 72,142,100, 21, 79,178, 2,179, 57,126,209,224,125, 40,199,247,209, 46,254,208,207,175,205,100,155, - 32,109,188,175,191, 30,136,122, 94,237, 26, 93, 98,177,223,243,206,123,248,244,103, 63,191,255,251,135, 62,248, 46, 30,126,244, -233,125,135, 14, 48, 29, 21,156,223, 14, 36, 19,247,191,253, 78,254,201,103,254, 43,140,114,236,243, 23,120,251, 93,111,226,155, -223,126,146,157, 23,246,152,222,182,194,123,223,255, 86,190,253,240,247,112, 82, 51,190,110,192, 93,183,223,198,251, 86, 71, 76, - 71, 5,119,254,141,127,192,238,172, 98,116, 52,227,175,254,244,125,100,169,230,161,223,251,215,241,106,120,164,144,124,241, 15, -190,137, 7,222,115,223, 29,124,250, 55,126,139,157,231,126,176, 15,184,170,226, 92,241,175,255,242,199, 49,214,241,235,255,249, -127, 7,135, 66,253,198,250,115, 67, 40, 89,183,151,207,186,131, 78,197, 93,195, 29,237, 27,165,170,254, 49, 5, 38,230,218, 3, -135, 68,134, 50,187,237, 59,116, 31,174,191,175,162, 99, 95, 66, 54, 8,255,187, 50, 10, 32,170,149, 33, 89,150, 81,237, 85, 76, - 38, 3,202,210, 99, 91, 62, 99,116,200,202,171,101, 64,176,103, 61, 16, 90,157, 4,144, 83,109, 46,189,102,109, 73,190,229, 79, - 86,189,123,144,137,110, 57, 24, 31,126,247,209,193,139, 24,152, 16,203,244,101,236,135, 15,243, 78,188,196,187, 96, 92,117, 68, - 62,150, 38,150,200,155,208,251, 78, 85, 96, 95, 59,236,204,219,223,219,185, 83, 31,157, 85,105,194,235,124,204,238,211,126,159, -188,103,229, 92,203,104,101,186, 74,132,171, 35,213,109, 47, 72, 49,254,224,186,107,151, 97,227,122,216,205, 62,136, 51, 84, 52, -110,184,237, 36,179,106, 73,158,104, 50,149,178, 87,206,209, 8, 50,173, 81, 67,168, 23, 53,211, 35, 19,118,247, 26, 22, 85,195, -238,178, 66, 99, 40, 27, 56,178, 58,229, 66,185,132,151,202,144,173,239, 7,161, 38, 4, 33,210,117,125, 84,173,187,210,249,171, -225, 53,148,233,136, 56,218,160, 49, 21, 65, 4, 3, 96,135, 80,173,241,166,123, 77,223,192,239,115,255,167, 7,251,142, 2, 72, -167,112,235, 42, 60,251,220,101, 2,217, 58,242, 18,196,160, 46,199, 28,146,165, 0, 0, 19,212, 73, 68, 65, 84, 25,132, 15,187, -176, 13,213, 94,168, 68, 93,220,137,228, 74, 85, 88,131,197,235,212, 43,174,234,240,249,207,191, 0,199,214,122, 99,195, 50,220, -243, 74,198,209, 69,194, 40,103,108, 73,164, 66, 83, 11,184,213,212, 84, 58,225,135,103, 54,184,101, 60,100,161, 37, 59,101, 67, -170, 85,192,163,106, 25,240,186, 89,144,153, 93, 36,158,129,147,148, 90,145, 13, 28, 55,214, 21,168, 49, 27,222,146,121,199,197, -218,144, 36,154, 36,207,216,174, 42,174, 19,154,185, 55,228, 42, 65,226, 16, 73,138,179,150, 53,157,176,225, 26,106,149, 48, 73, - 60,167,155, 26,105, 75, 18,157,144,160, 40, 75, 19,156, 81,158,195,145,181, 96, 11, 90,109,132,182,197,213,199,175, 92, 77, 73, -122, 52, 13,247,231, 74,118,210,183, 83, 94,174,151,183, 24,240, 37, 75,169,248,242,210,114,231,177, 33, 43,118,193,170, 77, 25, - 39,193,103, 36,105, 18,114, 52, 33,240,113,124,104,168, 37, 30, 69, 35, 5, 43, 90,177,146, 40, 30, 17,138, 74,215,120, 83,226, -154, 6, 81,155,253,185,121,119,153,204,252, 53,149,225,189,129,157,157,176,119,165,123,213,126,250, 37, 78,253,150, 27, 79,176, - 58, 29,243,232,147,207,237, 63,119,116,125,149,189,217, 65, 18,129,143,252,245, 15,240,155,191,243, 85,110,187,253, 22, 70,195, - 1,143,253,240,165, 8,204, 17,124,224,254,123,248,231,159,251, 18,222, 59, 70,197,152,123,174, 63,201, 3,143,125,159,119,188, -253, 24,223,127,161,230, 45,183,223,192,167,255,251, 55,120,247,155,143,242,233, 95,254, 56,255,225,139, 95,226,241,103,182, 89, - 95, 25,243,149, 7,254,148, 95,248,213,207,226,189,197, 55, 30, 63, 47,241,245,156,155,111, 60,206,234,116, 20,142,203,214, 80, - 0,197, 4,134, 67, 62,124,255, 61,124,242,231,127,134,183,253,194,175, 6,231, 80,164,193,184,191,209, 64,185,125,159, 30,127, -232,247, 59,175,213, 89,190,161, 60,238,209,249,213,230, 42, 62, 71, 95, 33,203,223, 79, 9, 15,238, 72,161, 58,112,156, 34,128, -211,178, 20,142,142,195,232,206, 56, 35,215, 9,206,195,112,117, 66,109, 13,121,150, 34,164, 97,111,105, 72,144, 84,152, 72, 27, - 90,195,142,233,156, 49, 38, 34,172, 27,240,101,119,124, 66,135, 32,175, 53,222,135, 37, 75,219,254,185,142, 30,119, 63,203,238, -101, 64,237,107,219,146,246,230, 44, 56,146, 36,102,132,146,192,106,166,162,227,109,226,255,238,163,220,101,216,124,109,112, 32, - 35, 65, 19, 61,208, 99, 75,132,211,127, 93,155,229,183,239,153, 69,105, 88,161,218, 3, 63, 4,170, 59, 52, 30, 86, 19,156,222, - 62,102, 32,222,146, 54,232, 58,188, 7, 90,199,171, 82, 94, 58,117,154, 27,238, 89, 3, 96, 94, 46,209,137,192, 52, 13,206, 86, - 84, 75, 79,154,231,212,141,165, 24,103,156,218,188, 72,109, 26,110,212, 57, 85,230,185,119,120,130,167,202, 37,223, 91, 84,112, -118, 43,192,173, 91, 71, 87,155, 88,133,208, 93,133,162,117,232, 87, 2,206,181,207,215, 6,146, 26, 92, 26,239,109,188, 55, 69, -168,200,169,241,144, 19,169,227,244,198, 2, 22, 59,151,178, 8,238,247,221, 15, 33,225,189,129,249, 38, 60,187,121,249,236,218, - 52,112,113, 47, 8,215,136, 36,148,194,215,215,195,243,167,231, 1, 16,220, 24, 96,212,177,128,165,250,245,221,158,229, 30, 92, -104, 34, 67, 96, 92,135,131,149, 48,151, 94,214, 17,160,172, 88,115,142,147,131,156,117, 9, 79,204,151, 28, 79, 37,190, 42, 57, - 85,150,108,160,208,123,115, 40, 6,108,249, 0,144,195, 6, 37,192, 34, 81,108, 11,139, 51,176,240,150,155, 11,205, 81, 33,168, - 42,201,186, 20, 44,154,146,163,105,202,249,237, 25,183, 14, 37,167,231, 53,215, 37, 41,187,182, 97, 37, 73,217, 49,134, 66,105, -230,166, 97,168, 18, 54, 49, 52, 22,150, 77,195, 89, 39,176, 74, 50,119, 26,101, 5,165,143,129,126, 86,192,176, 6,113, 49, 34, -245,229,190, 62,249,126,217, 61,185, 74,251,103,221,193, 53,117, 57, 28, 67, 59, 69, 36,101, 32, 1,138, 69, 54,111, 12,126, 62, -199,169,138,167,206,195,201,105, 74,230, 3, 46,101,152, 15, 40,109,131, 80, 9,185, 86, 56,227, 81, 42, 16,242, 52,214, 82,232, -140, 92, 25, 6,192,155,110,204, 57, 83, 86,252,176, 44,249,225,102,133, 45,231,216,101,117,192,225, 58, 94,135, 76,125, 63,129, -138, 36, 94, 50,237,104,101, 95,225, 90, 29,168, 89,158, 56,186,134,181,142,209,112,192,120, 24,234,143, 79, 61,243, 60,239,123, -247,125,220,113,235, 13,164,137,230,159,254,163, 79,146,101, 41,191,253,251, 15,112,255,253,111,229,225,199,159,197, 8,141, 7, -110, 58,121,140,225, 96,192,159, 61,242,125,214,223,188,202, 75,223,123,153,119,191,237,205, 60,121,246, 69, 30,124, 98,131,119, -221,121, 19,207,189,180,193,191,251,221, 47,242, 75,255,236, 63,241,145, 15,190,147, 27,142,223,130, 83,154,199,158,125,145, 15, -252,212,221,252,212, 91,110,195, 27,207,234,116,192, 39,255,206, 95,161,152, 12,123,199,149,134,227,178, 26,180,230,186,181, 41, -159,255,212, 47,242,137,127,241, 95, 56,189,177,211, 33, 4, 61, 63,158,135,137,206,219,180,142,210,116,207,253,164, 61,132,142, - 97,164,190,182,128,160,159,161, 39,192, 32, 50,192,165, 61,135,162, 34,241, 75, 22,103,179,143, 29,131,233, 24,146,132,233,120, -200,209,188, 64,139,148,161,200, 72, 68,194, 80,101,140, 83, 77, 83, 65, 46,117,104,119, 15, 90, 93,239, 72, 20, 99,108,236,217, - 39, 81, 33,172, 12,159, 1,145, 94,244,240,174,214,221,119,213,203,104,247,143, 63, 58,116, 14, 85, 87,164,234, 50,228,246,222, - 46, 99, 38,218, 82, 56,150,189,209, 53,231,187,237,235, 76,231,192,196,161,173, 37,101, 71,108, 35, 99, 12,100,122,115,246,109, -118,158, 0,149,143, 1, 67,116,136,253, 17, 23,157,244,144,242,109,102, 31, 3,158,180,181, 90, 61,194,163,198,245,130,175, 67, -173, 22, 7,236,108,243,252,246, 89,150,139, 93,140,169, 88,238,237,210,152, 57,179,217,140,186, 90, 50, 95,204, 40, 23, 37,243, -221,146, 81, 42, 56,174, 83,164, 80,172,143, 39,156,222,221,101,146, 36,220,125,114, 21,142, 76, 46, 13, 26,138, 60,156,119,107, -228,132,238,233,174,155,203,103,171,125, 30,123,111,187,118,148,136, 68, 27,171, 99,110, 91, 41, 40, 6, 67,222,113,211, 42, 12, -198,161, 36,175,117, 87, 13, 56, 76, 19,140, 57, 24,144,182, 78,191,125, 77,235,244,219, 86, 71, 99,120,203,104,141,159, 95, 63, -198,199,111,189,149,147,199,215, 33, 31,118,193, 81, 53, 59, 8,116,187, 22,144,234, 37,191,247, 3, 80, 3,231, 78,195, 75,231, - 2,136,206,212, 48,219,220,151,220,188,217,214,220, 87, 20, 76,235,154,220, 58,222, 63,200, 25, 84, 13,105, 83,114, 82, 39,236, -108,189,204,185,237,243, 44, 94, 58, 69, 1,236,149, 21, 94,123, 84,166,216, 43,155,120, 45, 5,140, 50, 22, 66, 83,100, 9,201, -164, 96, 51, 79, 25,175, 76,216,170, 12, 71,167, 35,158, 63,191,195,177,201,144,202, 25,142,142,134, 24, 9,147, 65,202, 22,142, -245, 81,206,217,170,230,136, 82,172, 13, 52,153,214, 92,172, 23,204,141,161,196,211, 72,193, 18, 80, 58, 58,117, 37,225,232, 10, - 20, 43,113,223,246,170,155,182, 93,167, 28,172,192,189,154,205,221,221,185,100, 29,249,150,152, 37, 50, 42,134,178,187, 11,112, - 28,186, 47,219, 24,172, 41,177,187,123,156,186,176,203,119,247, 22,236, 85,134,178, 92, 98,170,134,198, 89, 26, 99,241, 17,232, -156, 41, 69,161, 21,215,105,120,239,100,157, 15, 29,191,142,247,173, 30,229,195,199,142,240,209,147, 39,248,240, 13, 43,232,181, - 53,244,100,138, 42, 70, 40,173,145,135,122,237,175,169,183,174,117,176, 95, 89, 18,190, 15,178, 75, 91,141,175,228,212, 31,125, -234, 57, 30,122,244,251,188,252,216,239,243,245, 47,124, 6,128,175,252,225,159,240,223,190,248,127,120,232, 15, 63,199,217, 39, -254,128, 55,221,118, 35, 31,254,228, 63,166,177,142,251,223,122, 39,223,121,244,233,125,117,173,247,188,237,173, 60,252,248, 51, -216, 44,101,227,145,151,185,254,196, 81,214,166, 35, 30,248,214,211,184,101,197,123,223,121, 23, 15, 60,248, 24,187,231, 23,188, -124,238, 34,127,255, 95,254, 22,255,241,215,126,145,181,233,144,175,255,201, 35,252,155,207,127,153, 47,125,230, 87,152,125,247, -243, 60,244,133,127,197,219,238,186,157,197,238,156, 71,159,122,250,224,113,217, 18,105,106,254,199,175,253, 93,190,240,173,239, -242,229, 63,254,211,168,102,227,130, 97,252,139,210, 23,255, 73,116,230,253, 50,142,141,223, 95,203,163,221,132,182,165,142,245, -193,233,166,209, 0,107, 19,144,239,217, 40, 32,134,135, 9,147,241,132,198, 57,102,198,179,158,165,228, 90,146,107, 73,162, 37, -198,193,106,158, 35, 83,201, 48, 77, 81,168,224,244,234, 72,176,160,211,142,243,189,237,187,245,209,206,251, 13,180, 86,214,245, - 10,216,129,182, 39,217, 58,116,149, 6,128,148,137, 14,101, 95,153, 73,116,217, 67,155, 81,247, 65,106,139,186,235,253,183, 36, - 49,109, 79,189,253,156,195, 34, 1,206, 35,147, 32, 59,140, 80, 93, 95,221, 69, 39,238,251, 65, 71,204,202,219,210,254,254,123, -244,116,231,171, 67, 56,129,125,189, 3,115,153,221,237, 66,255,210,201, 46, 24,242,161, 60,126,238,197,179,188,176,117,129,167, -206,158,226,236,222, 22,167,182,206,227,104,176,214, 35,156, 99,107,107,155,249,206, 54,236,205, 89, 25,229,172,166,176,187, 88, -210,120,137,200, 51,134, 73, 6,131, 60,176, 2,182, 89,152,141, 6,218,197,190,186, 49, 33, 16, 75,210,142, 25,240,138,176, 93, - 25, 89,178,124, 55,151,155, 8,210,241,128,119,140, 10,142,175,142,153, 20, 3,182,208, 28,185,110, 21,198,195,200,129, 32, 59, -103, 77,175,207,223, 86,114,250,173, 45,113, 25,163, 41, 91,125,130,140,159, 57,186,202, 61,199,215,184,107,186,198, 95, 59,121, - 3,156, 88,239, 70, 39,175, 53,240,191,210,244, 73, 31,193, 77, 47, 57,152,109,194,198, 38,108,157, 9,138,143,205,146,251,176, -164,206,163,235,146,235,181,162, 4, 42, 60,198, 4, 85,202,235,211,154,147, 74,162,235,146,205,122,143,239,124,234, 55,209, 79, - 63,204,169, 63,250, 10, 27,139,154, 18,137, 17, 33,192, 44,180,226, 45, 67,197,233, 65, 70, 54,202,208, 90,147,104,205,182, 46, -176,169,102, 52,157,176,181, 51, 35,205,242, 48, 48,130, 96,230, 61,185,144, 44,170,134,235,166, 35,150,120, 42, 15,203,218, 51, - 41, 70, 32, 36, 42, 25, 96, 61,228,105, 78,237, 91,106,228, 81,152,235, 31, 12,186,164,160, 61,215, 42, 78, 32, 44,202,171,179, -217, 87,250,223,120,253,124, 19,197,182,122,253,238, 86, 38,193, 18, 92,133,109, 74,236, 98,201,197,141, 57, 15,238, 46,104,172, -195, 53, 65,246,121,183,174,169,188,223,167, 96, 31,169,132, 99,233, 8,137, 96,162, 83,214,148,226,230,116,200,219, 7, 83,238, -152, 76, 57,186, 58, 64,173, 77, 80, 71, 86,144,147, 41, 34,201,175,158, 93,238, 74, 25,122,154,244, 52, 42,232,212, 18, 95, 97, -162, 73,112,252,253, 63,122, 94,155, 69, 22,176, 22,168,211,159,245,109,203,153,105,129,152, 45, 98, 22,209, 64, 62, 70,148,123, -161,167, 37, 29, 66,167, 97,211,103,145, 48, 35, 11,125,140,208,239, 12,136, 96, 95, 19, 70, 56,204, 28,127,165,136,184,136,139, -165,165, 47,173, 77, 48,106,243,249, 95,156, 83,255,113, 62,218,153,204, 55, 92,126,245,208,226, 41,162, 33, 74, 84, 96,115,107, - 29,133,146, 7, 23,163, 34, 24,221,149, 17,211, 65,129, 18, 9,133,150, 36, 90,177, 57,171, 89,207, 83,246, 26, 67,174, 37, 3, -173, 56, 63, 47, 81, 2,182,182,247,162,179, 43, 3,181,167, 51, 97,196,199, 87, 7,241, 6, 90, 31, 98,155,139,253,244,182,183, - 14, 29,171, 94,214,203,206,145, 29,240,196,212,145,171,254,112, 70, 27,203,228,253, 30,119,159, 80,198, 31, 42,253,249, 30,218, -122,159,253,226, 50,239,215,102,230, 94,116,217, 95,170, 34,133,172,138,200,108,209, 5, 23,165, 9, 1, 78,145,198,207,183, 29, - 18,218,247,112, 2, 45,136, 79,181,206,204,117,199,148,230,112,100, 5,214, 87, 96, 99, 27,206,109,134,247,200,199, 33,203, 30, - 14,201, 82,201, 48, 73,153, 14,114,110, 63,178,206,116, 56, 70,167,197,126,188,180, 53,219,101,148,101, 8, 47,169,109,195,139, -139, 25,152,138,189,114,198,243,155,115,120,121, 35,204,174,215,132,106, 74,191,223,221, 22, 12, 90, 37,189, 43,181,127,218, 94, -188,136, 45,135,181,105, 8, 24, 86, 71,188, 99, 50,230,104,154,146, 8,193,182, 41, 57, 63,175,121,102, 54,131,139,139, 64, 73, -186,108, 66,176, 37,155, 16,116,182,220,217,253,224,175, 45,201,246,217, 65,100,143,200,232,248, 9,238,189,247, 30, 62,122,231, -189, 12, 7, 25,137,183,252,249,185,115,124,229,217, 39,120,225,225,199,187,145,178,107,217,167, 87,218,159,175,244,183,201, 58, -156,188, 14,142, 28,131, 60,225, 29,235, 55,114, 75, 62, 98, 94, 47, 17,163, 9,121,211,176,215, 52, 36, 58, 97, 77, 55,108,205, -106,188,148,252,160,170,168,140,225,133,217, 38, 63,123,253,173,212,214,240,141,147,183,195,168,128, 92,161,156,228, 47, 31,201, - 72,128, 41,138, 29,231,185, 69, 67,179, 91,113,163,114,204,247,150,176, 40, 57, 41, 60,197, 64,161,117,202,233,178, 98, 85,107, -246,202,138,139, 42, 97,108, 13, 47,214,150,220, 90,158,156, 25, 54,202, 57,155,198,162,112,108,224,104,170, 10, 43,193,150,243, -208,174,152,111, 5, 5,205,141,141,208, 54,121,195,230,214, 15, 58,210,195,131, 37,226, 10,207,147,228, 76, 39, 25,239, 93, 25, - 33,178,140,193,104, 72,146, 38, 20, 89,130, 18,112, 68,103,220, 58,200, 89, 69,145, 72, 77,226, 45,206, 90,140,243,156,181,150, -199, 23, 59,252,207,153,161, 90,150, 52,101,131,169, 74,236,238, 46,118,177,196,197,192,194, 95, 11,120, 78,235, 32,222,114,248, -177,104, 58, 59,112,185,216,248,234, 84,218, 6,161, 79, 90,164, 1,244,212, 15, 96,133,128,201, 56, 8, 30,100, 41,194,217, 32, - 56, 80,238, 5, 3,178, 92, 34, 6, 69, 48,164,105,212,252, 43,210, 0,209, 79, 21,190,137, 36,247, 90,194,124, 23,106,139,119, -230,202, 99, 14, 77, 29, 12,126, 93,131,171, 66, 86, 88,215, 63,217, 14,189,149,115,237,143, 22, 93,235,251,136,168,106,181, 63, -198,245, 70,145,202,203,203,252,110, 66,175, 46,139,136,100,221, 91, 8, 58,170,157,173, 79, 32, 77,152,140,135,236, 46,107, 78, -140,135, 56, 43,177,222,113,253,100,202,172,170,152,102, 25, 90,194, 11, 23,247, 56, 62, 44,216, 92,204, 81,105,138, 45,203, 32, -163,153,233, 96, 20,204,188, 19,132,217,111, 90,197,113,168,125, 73, 86,215,161, 84, 90, 66,148,118, 7,181, 4, 45, 42,233, 52, -233, 91,174,116,223,206,136,251,206,240, 15,146,224, 28, 90, 69, 53,111,131,243,108,199,167, 90,128,157,107, 98,134, 44, 59, 56, - 76,235,208,247, 57,217,187,221,156,102,122, 31,196, 19, 2,145, 40,247,218,248,152,193,196, 81, 10, 33,163,206,178,140,215, 32, - 10, 21, 57, 31, 71,158,204, 65,112, 92,219, 94,112,102, 31,100,138,138, 74,109,211, 41,220,124, 34, 74,125,102, 65,128,197,197, -192,107, 92,128, 20,100,121,130, 22,146, 60,209,204,234,134, 92,165,108, 47,150,248,114,201,238,114,155,221,186, 97,103,185,192, - 59, 27,166, 16,133,194, 56,199, 51,198, 96,235,184,239,170,168,142, 6,161, 84,216,202,245, 38,145,219,189,137,162,207, 74,116, - 2, 64,253,241,179, 60,138,240,248,152, 30,217, 48,141,112,239,202,144, 60, 73, 24, 36, 9,169, 20, 88,103,121,100, 89,135,114, -107,227,187, 25,118, 41, 67,139,162, 24,114,252,216,152,108,144, 49, 25, 23,204,151,117,143, 67, 63, 94,119, 41, 46,229,165, 87, -138,217,250, 17,238, 88, 91,195, 57,203,204,122,126,120,113,151, 7,119,183, 97,119,113,237,226, 36,251, 12,145,241, 92, 91,170, -102,231, 94,121,207, 86,203, 48, 29, 50,208,188,115,178, 66,102, 27,134, 69, 74,166, 11,154,122,137,118,142, 65,146,161, 88,128, - 84,228,137, 96, 36,124,160,148, 21,150,243,203, 57,207, 93,120,145,231,245, 48,236, 73, 21,136,126,238, 58, 50,224, 54, 45,169, -149, 66, 11, 72,180, 70, 90,207, 88,193,174,245, 12, 16,172, 38,138,243,165, 33,215,138,212,212,172, 14,114,158,221, 43, 17, 8, - 10, 44,231, 44,220, 48, 74, 57, 83, 89, 18, 91,115,209,131,171, 75,172,144, 84,206, 81, 74, 25, 64,106,182,129,122, 47,234, 31, -208, 85,224, 84, 47,168,205,115, 24, 14, 99,165,204,189, 97,142, 29, 94,129,190,215, 25, 42,231,249,193,174,225,246, 97, 0, 32, -214, 73,144, 85, 94,211, 25, 55, 36, 25, 39,117,193, 68, 41, 20, 30, 37, 53, 74, 40,172, 51, 20, 58,225, 34,142,133,105,216,240, -224,132,199, 91,143, 55, 65,177,212,251,215, 96,155,219, 36,161, 21,154, 82,105,184, 78,166,126,197,247,252,209,157,122,145,199, -186,126,143, 25,171, 53,226,165, 13,243,198, 85, 13, 43,211,160,212, 36, 4, 44,107,196,104, 28,102, 90,179, 12,204, 2,210, 34, - 48, 57, 13,179, 48, 34,162, 85, 88,192, 38,150, 53,119,151, 1, 24, 44,204, 62,225,195,149, 65, 19, 54,114, 2,155,215,117, 81, -188,113, 9,111, 79,145, 75, 69,141,112,119, 13,220,200, 73,218, 25,192,246, 75,218, 55, 72, 44,198, 29,252,106, 3,173, 84,134, -146,115, 58,238,148,197,124,172,182,140,134, 32, 4,147,245, 21,118,231,115,110, 94, 95,197,227, 25,232,148, 65,146,114,113, 49, -103,109, 56,194,216,154,221,202,114,124,148,179, 93, 86, 12,179, 1,187, 59,123,241, 60,124,152,187, 54, 54,124,206,229,164, 68, -219,185,242,253, 67,213, 93, 54, 46, 98,159, 91,197, 56,164,157,245,222, 47,195,139,176,230, 90, 39, 47, 85,199,183,110, 76, 48, - 7,125,153, 84,227, 58, 96,157,111,117,225,117,156,213,238,197,254, 42, 58,226, 86,113, 45,254, 45,149, 2, 97, 5, 77,210,211, - 65, 87, 50, 42,210,133, 49,164, 64, 48, 97,195, 57,232, 52,140,243,101, 42,102,159,177,175,223,148,221,235, 91,250,217, 42,114, - 34,168,168, 18,167, 68, 24, 41,116, 4,228,113,166,194,154,217,153,195,133,205,240,247,100, 16,240, 11, 66, 34,149,100,154,165, - 8, 41, 81, 30,230,165,101,105, 44,139,170, 34,145,150,185,245,140,210,130,109,107, 80, 94,112,186,169, 56,101, 12,179,114, 25, - 69, 86, 8, 76,125,109,121,164,142,247,107,237, 72,192, 84, 20, 69,200,166,155, 42, 56, 42, 23,181, 0,250,247,180,229,249,111, -133,125,108, 0, 89,222,180, 58,224,142,213, 53,206, 47, 43,156, 16,236, 52,134,211,243, 24, 72, 72,122,220,247, 81, 63, 32,211, - 92,159,107,132,240,140,132, 98, 92,164,236,236, 45,123,169, 89,116,230,206,119, 14,190,105,192, 89,154, 44,229,251, 77, 77,229, - 36,207,205, 22,124,115,111, 23,202, 89, 0,209,205,103,215,150,165,247, 57,187, 47, 55, 39,191,223, 2,184, 12, 71,254,124, 15, -138, 49,119,175,228,220, 62, 24,240,131, 89,197,117,131,132,188,200,152, 59, 24,102,161, 68, 60,175, 96, 42, 44,210,129,161,100, -111, 89,114,174,169,195, 53, 58,127, 38, 36, 86,107, 55, 66,174,201,135, 25,133,150, 20, 94,160, 19,205,208, 5, 85,205, 60,211, - 12,133, 96, 69,194,142,177,172, 42,193, 29, 69,202, 98,144,243,204,214,140, 34, 21,204,235,134,179,198,225,157,227,133,237, 6, -211, 24, 54, 81, 24,215,176, 52, 22, 47,192, 72, 69,105,130,176, 77, 24, 71,109, 66, 16,218, 52,145,175,192, 68,129, 39, 17,240, - 10, 39,142,194,209,181, 80,117,157,207,223, 16,199,206, 43, 56,246,253,255,183, 22, 33, 28,167,140, 99, 61,209, 24, 37,113, 89, -202, 20,152, 74,184,115, 56, 33,149,138, 84,166,193,138, 75, 17,228,152,113, 92,108,106, 94, 50, 53,231,230, 53, 30, 17, 50,115, -169,194,169, 84, 21,190,119, 78, 87, 45,248, 34,130, 28,113,128,135, 68,190,247, 87,146, 85,190, 42,167,222, 26,149,150,168, 67, - 39,225,103,103, 2, 73,135,245, 1,165, 58, 43, 59, 69,170, 52, 82, 58,166, 42, 46,218,144,229,137, 36,137,253,207,208, 51,244, -139, 38,100,127,101, 21,141,150, 11, 11,242,255,167,135,212,189,122,143,132,213, 81, 88,228,230, 26,130,145, 86,116,164, 37, 65, -241,213,143,183,159,223,206, 9,103, 89,212, 59,142, 37,229, 36, 13, 64, 14, 31,130,189, 10,207,104, 52, 36, 85, 10, 45, 53, 74, - 72, 36,154,181, 98, 72,109, 29,169, 76,200, 82, 21,199, 72, 36,103,103,243,208, 15,171,203, 64,202,177,220, 5, 83, 94, 89, 66, -183, 37, 29,145, 34,244,166,181, 11,142, 93, 69,176, 98, 75, 12,228,125, 68,163,139,224,136,219, 44,218, 69,118,166,118,228, 75, -244,230,210,114, 29,202,223,202,119, 78,189,149,106,109,203,246,222, 29,252,210, 73, 20, 51,105,131,135, 46,234,178, 94, 96,165, - 36,181, 2,219,174,131, 50,182,161, 92, 79, 70, 54,213,225, 90,250, 38,204,205,187, 56, 14,103, 77,112,238,194, 7, 39,174,162, -243,107,127,110, 57, 19, 68,196, 61,180,206,171,137,125,238, 11, 51,216,190, 16,202,212, 74, 69,117, 60, 9, 69,130, 18, 18,131, - 64, 10,129,147,138,185,109,216, 90,214,156,218,217,226,166, 66, 49, 78, 20,149,113,148, 30,206, 88,195, 15, 76,197,178,149, 88, -141, 28,219, 44,102, 33, 16, 49,182,203,208,215, 87,187,192,102,217,132, 64,208,154, 46, 16,235,103,203,237,189,212,145,134,209, - 25,152, 55,156,105, 28,199, 82,203, 36,149, 92, 40,151, 60, 52, 43,195, 76, 62,190,107, 61,168, 46, 80,155, 38,146, 81, 34, 24, - 9, 65,130,160,178,134,157, 89,117,176, 18, 35,123, 32,196,182,157, 99, 45, 88, 65,157, 8, 94,172,150,156, 41,103,161,159,189, -172, 96,119, 30,214,228,213,238,211,214,145,183,194, 54,237,115,135, 51,246,125,114, 35, 46, 11,252,212, 3, 69,170, 37,119, 23, - 3,102,214,145,227,200,165, 68, 9,129,104, 12,235,153, 10, 36,135, 77,195,102, 99,120,112,231, 34, 44,103,241, 61, 93, 8, 60, -117,134,212, 5,199,134, 33, 33,184,113,152,147,106,129,208,146, 65, 34, 25, 72,193, 64, 8,106,235,185,176,177,160,180, 13,207, - 45, 97,167, 41,169, 61,236, 44, 13, 59,149,167, 49,112,174, 10,231,176,144, 32,241, 36, 54,136, 62, 13,156,197,154,134, 25, 1, - 48,233, 77, 29, 70, 94,157, 13,142,168,172, 67,229,109,177, 8,235,120, 50,134, 19,235,100,227, 34, 76, 46, 45,203,215,117,156, - 87, 92,133,179, 23,128,116, 14, 89,213,108,204, 74, 46, 84,158, 90, 8, 94,150,154, 60,151,172, 24,199,245,197,132, 34, 73, 16, -206, 82,232, 20, 39, 37,167,151,115, 78,217,154,239,206, 27, 42, 37,176,198,225,165,192,213, 53,190,113,120,107,240,175,133, 68, -204, 69,208,168, 45, 59, 33,151, 87,121,252, 63,200,142,135, 98, 79, 39, 83, 45, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, - 0}; - +137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 1,245, 0, 0, 1, 26, 8, + 6, 0, 0, 0, 8, 90,206, 70, 0, 0, 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114, +111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, + 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, + 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172, +243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, + 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, + 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157, +152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, + 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, + 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, + 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, + 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, + 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, + 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, + 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, + 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9, +132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, + 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, + 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128, +102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28, +193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, + 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65, +200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75, +145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148, +129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54, +161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, + 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, + 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, + 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84, +210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157, +228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101, +152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, + 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, + 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, + 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170, +222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83, +103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, + 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, + 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41, +226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69, +187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46, +170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253, +109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, + 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, + 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, + 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, + 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201, +182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, + 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88, +207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, + 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238, +135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129, +103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50, +222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, + 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173, +130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, + 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, + 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, + 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22, +169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, + 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169, +144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234, +103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, + 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, + 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, + 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10, +229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40, +220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230, +151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101, +167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, + 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, + 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254, +157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7, +211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, + 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162, +182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, + 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102, +247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, + 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106, +192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57, +226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161, +151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220, +119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, + 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, + 19, 0, 0, 11, 19, 1, 0,154,156, 24, 0, 0, 0, 7,116, 73, 77, 69, 7,219, 10, 17, 14, 51, 5,152,167,210,162, 0, 0, 32, + 0, 73, 68, 65, 84,120,218,236,189,123,160, 93, 85,117,239,255, 25,115,173,189,207, 35, 47, 14, 73,200, 3, 2, 33, 10, 8, 1, + 17,195,163,234, 21, 1, 3,213,218,170, 80, 3,150, 94,253, 41,253, 53,148, 43,173,122,123, 75,240,122,219,223,109,107, 21,244, +122,235,175,173, 45, 70,123, 43,182,213, 11,145, 91,170, 72,171, 9, 21,209, 42, 40, 41, 74, 69,144, 71, 72,130, 64,222, 39, 39, + 57,143,189,247, 90,107,142,251,199,122,205,181,246,218,231, 17, 18, 4, 93, 67, 15, 57,123,159,181,230,122,205, 53,199, 24,223, +241, 29, 99, 8,160,212, 82, 75, 45,181,212, 82, 75, 45, 47,122, 49,245, 45,168,165,150, 90,106,169,165,150, 90,169,215, 82, 75, + 45,181,212, 82, 75, 45,181, 82,175,165,150, 90,106,169,165,150, 90,106,165, 94, 75, 45,181,212, 82, 75, 45,181,212, 74,189,150, + 90,106,169,165,150, 90,106,165, 94, 75, 45,181,212, 82, 75, 45,181,212, 74,189,150, 90,106,169,165,150, 90,106,121,126,196,255, +105, 28,244,210, 95, 56,129,223,121,195,105, 52,155,134,155,190,246, 8,127,247,141, 39,208, 58, 91,190,150, 90,106,169,165,150, + 90,158,147, 8,207,115,241,153, 11,207, 88,204,191, 92,247, 26,116,120, 12,230,204, 67, 22, 30,205,231,255,229, 97,174,254,203, +111, 49,218, 10,235, 39, 82, 75, 45,181,212, 82, 75, 45,135, 40,207, 59,252, 62,139, 14, 60,187,149,137,103,159, 98,252,241,135, + 25,127,244, 49,174,124,237,201, 60,248,231,107, 56,249,216,121,245, 19,169,165,150, 90,106,169,165,150, 67, 20, 15,248,239,207, +231, 1, 31,219, 61, 65, 11,120,227,202, 33, 52, 84,162,131, 7, 8, 15, 30,100,225,226, 69,188,231,173,103,241,208,246,189, 60, +252,212,254,250,201,212, 82, 75, 45,181,212, 82,203, 11, 93,169, 3,124,107,203, 40,223,125,122,130, 53,175,156, 79,191,231, 19, + 76, 76, 16,237,223, 7,125,131,252,218, 27,207,226,168, 65,143,187,255,253, 25, 34, 91, 7,218,107,169,165,150, 90,106,169,101, +186,242,188,199,212, 93,121,201,194, 62,238,252,127, 79,225,228, 57, 13,198,199, 3,240, 60,204,210,229,244, 47, 91,198, 15,158, +216,193, 91, 63,244, 79,108,221,121,240, 69,115, 51, 87,173, 90,197,208,208, 16, 0, 91,182,108, 97,203,150, 45, 63,211,147,231, +231,237,122,107,169,165,150, 90,106,165, 62,133,204,106, 26,254,238, 29, 39,242,230, 21,243,104, 77, 68,128, 69, 22, 29,199,192, +241, 39,210, 81,203, 47,255,209, 29,108,252,183,159, 28,214, 99,174, 88,177,130, 21, 43, 86, 76,107,219,225,225, 97, 54,111,222, + 60,173,109, 55,110,220,200,234,213,171, 1,184,254,250,235,185,241,198, 27,127,166, 39,207,207,219,245, 30,150, 23, 78, 4,173, + 83, 61,106,169,165,150, 35, 36,207, 57,165,205,247,132, 62,223, 76, 97, 49, 72,250,255,194,226, 38, 18,255,237,125, 95,222, 65, +223,229,253, 92,178,108, 46,157, 64, 97,120, 47,173,193,217, 52,230, 47,226,107, 31,186,148, 63,248,187,123,249,200, 45,247, 19, + 70,135,103, 49, 92,179,102, 13, 55,220,112,195,140,246,217,176, 97, 3,155, 54,109, 98,253,250,245,245,172,249, 25, 16, 99, 12, +214,218,194,119,158,231,113,222,121,231,113,209, 69, 23,113,206, 57,231,176,114,229, 74, 22, 45, 90, 68, 95, 95, 31,251,247,239, +103,219,182,109,220,123,239,189,124,254,243,159,231, 59,223,249,206, 33, 29,119, 58, 10,253,220,115,207,229,242,203, 47,231,194, + 11, 47,228,216, 99,143,101,254,252,249,140,143,143,179,109,219, 54, 30,124,240, 65,190,249,205,111,114,231,157,119,242,212, 83, + 79, 77, 58, 78,179,217,228,109,111,123, 27, 87, 94,121, 37, 43, 87,174,100,201,146, 37,236,223,191,159,173, 91,183,114,251,237, +183,243,217,207,126,150, 29, 59,118,212,147,161,150, 90,106,165, 14, 70,132,181,175, 90,204, 7, 47, 58,158, 5,179,155, 88, 49, + 32, 2,198,196, 63, 34,136,239, 21, 62, 99, 12,226,121,249,103,137,255, 22,169,208,182, 16, 54, 27, 24,103,156, 48, 10,176, 19, +194, 31,189,243, 53,188,254,172,101,172,249,147,127, 98,247,254,137,159,202,141, 90,179,102, 77,246,115,249,229,151, 51, 60, 60, + 92,207,158, 23,177,148, 21,250, 95,253,213, 95,113,217,101,151,113,204, 49,199, 84,110,191,112,225, 66, 22, 46, 92,200,217,103, +159,205,181,215, 94,203,221,119,223,205, 85, 87, 93,197,147, 79, 62,121,216,206,233,216, 99,143,229,147,159,252, 36,111,121,203, + 91,186,254, 54,119,238, 92,206, 56,227, 12,206, 56,227, 12,126,253,215,127,157,187,238,186, 43, 67, 73,170,228,148, 83, 78,225, + 11, 95,248, 2,103,157,117, 86,225,251, 69,139, 22,177,104,209, 34,206, 59,239, 60,214,173, 91,199,213, 87, 95,205,173,183,222, + 90, 79,136, 90,106,249,121, 87,234,239,125,221, 82,254,231,155, 95, 74,103,220,162, 86,240,140, 0, 6, 84,226, 31, 12, 98, 37, +118,213, 21, 48, 2, 22,176, 10, 94,236,169, 99,226,191,121, 34, 52, 60, 7,150,148,116, 63,197,138,208, 30,239,240,186,149,203, +120,228,211,239,224,226,255,250, 15,252,219, 99,187, 15,235, 77,216,180,105, 83,207,191,149, 23,206,213,171, 87,179,113,227, 70, + 46,190,248,226, 90,177,255, 12,201,111,253,214,111,117,125,183,119,239, 94,182,109,219,198,254,253,251,153, 63,127, 62,167,159, +126, 58,158,231, 1,112,193, 5, 23,112,255,253,247,243,186,215,189,142, 31,254,240,135,207,249,248, 43, 87,174,228,238,187,239, +102,193,130, 5,217,119, 35, 35, 35,108,217,178,133,225,225, 97,230,204,153,195,201, 39,159,204,188,121, 83,167,125, 30,127,252, +241,124,227, 27,223, 96,209,162, 69,217,119, 79, 63,253, 52, 79, 60,241, 4,243,231,207,231,180,211, 78, 67, 68, 56,234,168,163, +184,229,150, 91, 16, 17,110,185,229,150,122, 18,212, 82,203,207,171, 82, 55, 2,215,188,106, 49, 58, 22, 16,180,218, 96,109,172, +164, 19, 56, 29, 33,249, 73,127, 81,240, 12,102,254, 49,137,114,183,136, 1,172, 1,108,178, 95,162,225,141,141, 21,191, 49, 16, + 17,243,243, 5, 58,237,128,161,190, 62, 54,255,249,175,115,205, 39,239,226, 83,119,252,240,176,197, 38, 47,190,248,226, 41,189, +244, 27,110,184, 33,139,195,175, 90,181,138,181,107,215,214, 49,228,159, 65,121,228,145, 71,248,155,191,249, 27,238,184,227, 14, +126,244,163, 31, 21,254,118,244,209, 71,243,187,191,251,187,172, 91,183, 14,207,243, 56,250,232,163,249,242,151,191,204,169,167, +158, 74,171,213, 58,228, 99,158,120,226,137,220,117,215, 93,153, 66,127,224,129, 7,248,192, 7, 62,192, 93,119,221, 69, 24, 22, + 11, 50,157,126,250,233, 92,122,233,165,156,120,226,137,149, 99,137, 8,183,221,118, 91,166,208,135,135,135,185,234,170,171,248, +199,127,252,199,236,125,121,217,203, 94,198,205, 55,223,204,185,231,158, 11,192,223,252,205,223,240,192, 3, 15,240,232,163,143, +214, 19,160,150, 90, 94,228,114, 72,197,103,172,194,199,239,121, 26, 49,109,102, 53, 35,102, 13,192, 96,191, 38, 63, 54,255,189, +207,210,111, 58, 16, 5, 72,223, 96,172,228,173, 5,107, 75, 10,185, 3,182, 5,118, 2,180, 5,180,227,207,218, 73,182, 87, 84, + 45, 65,100, 9,219, 17,127,245,222, 75,184,245,247,223,196, 96, 95,227,121,185, 73, 27, 54,108,232,242,204,215,172, 89, 83,207, +158, 23,177, 52,155,205,194,231,251,238,187,143, 95,250,165, 95,226,212, 83, 79,229,163, 31,253,104,151, 66, 7,216,183,111, 31, + 31,252,224, 7,121,231, 59,223,153,125,183,124,249,242, 74, 47,127, 38,242,233, 79,127, 58, 83,194,183,220,114, 11,231,156,115, + 14, 95,253,234, 87,187, 20, 58,192, 15,127,248, 67,254,248,143,255,152,171,174,186,170,114,172, 43,174,184,130,179,207, 62, 27, +128, 40,138,120,227, 27,223,200,237,183,223, 94,120,223, 30,121,228, 17, 46,186,232, 34, 30,127,252,113, 0, 6, 6, 6,248,195, + 63,252,195,122, 82,212, 82,203,207,171,167, 14,240,169,127,221,193, 93, 63, 30,230,165, 11,251, 16, 4,235, 44, 26,105,122,121, + 59,180,188,234, 37,243, 88,247,134, 83, 24,108, 12,196,113, 76,207,139, 61,115,107,209,206, 40,226, 9,102,217,153,152,133, 47, + 69,230, 46, 70,250,231, 66,216,198,142,237, 70, 15, 62,139,221,253, 40,132, 19, 32, 3, 40, 17,145,130, 29,237,240,182,215,190, +140, 19,151,206,227,117,239,187,149,177, 86,112,196,111,212,150, 45, 91,216,176, 97, 3,107,215,174,205,188,245,195, 33, 67, 67, + 67,133,177, 54,111,222,124, 88, 96,125,151,225,127,168,233,102,135, 99,140,231,227,122,221,243,156,238,120,157, 78,167,240,249, + 23,126,225, 23,166,125,188,207,127,254,243,188,243,157,239,228, 23,127,241, 23, 1,184,236,178,203,248,196, 39, 62,113, 72,231, +254,107,191,246,107,188,254,245,175, 7,224,161,135, 30,226, 29,239,120, 7, 81, 20, 29,242,189,184,238,186,235, 10,198,194,125, +247,221, 87,185,221,216,216, 24,239,127,255,251,249,242,151,191, 12,192,229,151, 95,206,245,215, 95,207,182,109,219,234, 85,177, +150, 90,126, 30,149, 58,192,227,123,218, 60,190,167,221,243,239, 47, 95, 54,151,255,248,170, 21,204,246,250, 8,173,198,208,123, +171,133,182,199, 32, 26,195, 59,249,181,248,103, 95,137,119,226, 47,244,132, 16,116,223, 86,194, 39,238, 34,218,246,175,136,215, + 4, 85, 84,160, 51,222, 97,213, 75,150,112,231,135, 47, 99,245,117, 27, 8, 66,251,188, 40,246,195,165,200,215,174, 93,203,154, + 53,107, 42,141,131, 45, 91,182,176,126,253,122,214,175, 95,223, 83, 65,221,112,195, 13,217,190, 27, 54,108, 96,253,250,245,217, +184,107,215,174,237, 74,217,219,178,101, 11, 55,222,120,227,180,216,251,107,215,174,101,221,186,117,149, 99, 76,117, 94, 71,226, +122,123, 93,235,186,117,235, 88,187,118,109,150, 43, 15, 49, 63, 98,170,112,202,225,144, 47,125,233, 75,153, 82, 63,245,212, 83, + 15,121,156,223,249,157,223,201,126, 95,183,110, 29, 65,112,232, 6,234, 9, 39,156, 80, 32,198,221,116,211, 77,147,110,127,231, +157,119,178,125,251,118,142, 63,254,120,140, 49,188,229, 45,111,225,207,254,236,207,234, 85,177,150, 90, 94,228,162, 71,226,231, +234, 11,142, 83,253,228, 37, 26,254,233, 37, 58,254, 63, 47,209,177, 27, 95,167,163,127,120,142,142,254,254,203,117,244, 15,207, +208,224,123,159,215,153, 72,184,253,187,218,186,109,173,182,110,191, 90, 91,183, 95,171,237, 47,253,142,182,255,241,189,170, 95, + 95,167, 31,122,247,171,103,116,110,235,214,173, 43,140, 61,221,253,110,184,225,134,108,159,125,251,246,117,253,125,227,198,141, +217,223,215,173, 91, 87, 57,198,234,213,171,117,223,190,125,211,186,230, 39,158,120, 66, 87,173, 90, 85, 57, 78,249, 88,171, 86, +173,210,251,239,191,127,202, 49, 63,245,169, 79,245,188,190,161,161, 33,189,245,214, 91,167, 28,227,254,251,239,215,161,161,161, +231,237,122,171,174,181,215,152, 27, 55,110,212, 35, 53,167,221,159, 43,174,184, 34, 59,102,187,221, 62,164, 49, 78, 59,237,180, +108,140,157, 59,119,170,231,121,207,233,156,174,185,230,154,108,188,103,158,121,102, 90,251,172, 95,191, 62,219,231,159,255,249, +159,159,151,123, 87,255,212, 63,245,207,145,251, 57,236,173, 87, 7,155, 30,127,126,197,201, 92,117,238,177,180, 39, 44, 81, 20, + 64,123, 2,194, 0, 68,145, 6,244, 93,250, 17,188,211,223,148,237,115, 96,162,205, 87,191,191,149,175,254, 96, 43,251, 70, 39, +104,120,194,169, 75,143,230,205,103,191,148, 87,190,100, 9, 0,222,178,115,144,230, 28,130,111,125, 28,154,126,124,254, 70, 8, + 71,219,124,240,202, 87,243,217,175,253,136,199,159, 62,114, 53,227,135,134,134, 10,113,244,201, 24,243,189,100,205,154, 53, 93, +233, 67,155, 55,111,102,211,166, 77,153,135,234,122,179, 43, 86,172,200,152,246,147, 21,192, 25, 26, 26,226,214, 91,111,205, 60, +235, 13, 27, 54,100,219,175, 90,181,170,112,222,107,215,174,205,188,246, 42,143,184,204, 21,112,199, 74,207,109,213,170, 85,211, + 74,131, 58, 18,215, 59, 52, 52,196,198,141, 27, 51,239,220, 45, 14, 52,221,130, 66,135, 67,150, 47, 95,158,253,190,123,247,161, +101, 99,184,136,194, 61,247,220,243,156, 96,119,128, 51,207, 60, 51,251,253,222,123,239,157,214, 62,223,254,246,183,249,205,223, +252,205,174,253,107,169,165,150,218, 83,215,147,142, 25,208,199,126,255, 60,213,255,121,145,142,223,112,161,142,253,201,171,117, +236,191,175,138,127,254,232,108, 29,251,131, 83,181,115,215,199, 11,158,213,119, 30,125, 70,255,195,255,119,139, 46,125,207,103, +116,197,127,190, 89, 79,185,238,111,245,212,223,251, 91, 61,229,253,255, 75, 87,190,119,189, 94,255,183,119,233, 88,171,147,123, +236,143,124, 77, 91, 95,248, 53,109,223,241, 62,109,223,241, 94,109,223,241, 62,213,175,253,158,126,229, 79, 46, 59, 98,158,122, +149, 7,187,122,245,234, 25,121,234, 43, 86,172, 40,120,151, 79, 60,241, 68,229, 24, 85,222,237,253,247,223, 63,233,177, 82,185, +245,214, 91,117,104,104,168,107,219, 21, 43, 86, 20,188,248,125,251,246,117,109,183,118,237,218, 46,111,124,197,138, 21,211,246, +188,143,228,245, 86, 93,235, 19, 79, 60,161,107,214,172,169,124, 86,207,135, 53,252,189,239,125, 47, 59,151,219,110,187,237,144, +198,248,187,191,251,187,108,140,223,255,253,223, 87, 64,231,207,159,175,215, 93,119,157,126,247,187,223,213,189,123,247,234,196, +196,132,110,223,190, 93,111,191,253,118,189,234,170,171,180,209,104,244, 28,239,238,187,239,206,198,251,216,199, 62, 54,173,115, +120,237,107, 95, 91,184,175,115,231,206,173,189,157,250,167,254,169, 61,117,120,195,105, 67,220,254,238,211,240,173,207,120, 59, +128,168, 3, 81, 24,199,209, 5,208, 8, 89,176, 12,255,220,156, 57,252,216,142, 97,222,249,201,175,178,107, 34,100,112,214, 0, +129,231,209,104,120, 52, 61,193,211, 38, 18,133,220,118,223,227,120,198,240,161, 43, 47,136, 61,246,151, 94, 72,244,227,127,134, +104, 20,252, 1, 16, 8, 59, 1,171,207, 58,158, 37,243,103,241,236,222,177, 25,159,251,186,117,235,122,254,109,245,234,213, 93, +185,234, 87, 95,125,245,140, 61,245, 79,125,234, 83, 5,239,242,236,179,207,238, 25,151, 78,227,194,169, 71,154,166,208, 77, 22, + 15,223,180,105, 19,151, 95,126,121, 79, 46,192,245,215, 95,207,198,141, 27, 51,111,119,245,234,213,108,216,176,161,242, 30,108, +217,178,165,103, 30,126,122,110,247,223,127,255, 79,237,122,183,108,217,210,115,188,231,163,118,192,197, 23, 95,156, 49,204, 1, +190,240,133, 47, 28,210, 56, 47,127,249,203,179,223,159,125,246, 89, 46,185,228, 18,110,190,249,102, 22, 47, 94, 92,216,110,217, +178,101, 44, 91,182,140,183,188,229, 45,124,240,131, 31,228,138, 43,174,168,188,255, 39,156,112, 66,246,251,246,237,219,167,117, + 14,229,237,150, 47, 95,206,131, 15, 62, 88,187, 58,181,212,242, 34,149,231,172,212, 27,158,240,161, 55,157,192,117, 23, 28, 75, +187, 5,109, 9,192,198, 80, 59,141,132,238, 38,160, 65, 7,255,228,243,145,217,121,113,141,235,255,254, 95,121,236, 39, 35, 48, +111, 54, 35,163, 33, 72,132, 39, 48,232, 9, 11,102,249, 12, 13,248,204,155, 55,155,219,191,251, 24, 23,172, 60,129,213,103,158, + 8,158,143,183,226,124,194,239,223,140, 44, 92, 14,106,177, 34, 52, 7,154,188,229,213, 47,225,166, 47,207,124, 65,154,110,201, +216,245,235,215,103,229, 98,103, 34,171, 86,173, 42, 24, 6,215, 95,127,253,148,202,103,243,230,205,172, 95,191, 62, 83,182,171, + 87,175,158, 84,169, 95,125,245,213,147,142,183,105,211, 38, 54,111,222, 92,128,186, 93,152,220,253,124,227,141, 55, 78,122,126, +233,185,165,153, 0,207,247,245, 78,117,126, 71, 82,230,205,155,199,167, 62,245,169,236,243, 3, 15, 60,192,109,183,221,118, 72, + 99,205,159, 63,191, 0,157,255,197, 95,252, 5,125,125,125, 0,236,218,181,139, 31,255,248,199,248,190,207,202,149, 43,153, 59, +119,110,246,220,190,241,141,111,112,241,197, 23,243,237,111,127,187, 48,222,156, 57,115,178,223, 71, 70, 70,166,117, 14,229,237, +220, 49,106,169,165,150, 23,159,152,231,178,243,113, 71, 53,249,215,107, 87,114,221,107,150, 48, 62, 30, 17, 17,197, 10,221, 0, +158, 32,158, 32,190, 32,158, 65,124,193, 44, 61, 61,219,247,201,157,251,249,167,239,111,135,193,129, 56,205,205, 24,240, 60, 34, + 12, 7,219, 17, 79,238, 30,103,203,174,113, 2, 21,172,231,113,215,191,231,169, 54,178,224,165,232,196, 1, 32, 76,138,220, 40, +132,150,115, 79, 89,124, 68,111, 86, 26,255,117,217,214,211, 17, 87,193, 13, 15, 15, 79,187,126,188,107, 60, 76,150, 23,191,121, +243,230,105, 49,243,221, 56,181,123, 78,101, 36, 98, 58,231,231,122,249,207,231,245,166, 76,249,159,202,203, 98, 12, 55,223,124, +115, 86,248,165,211,233,240, 27,191,241, 27,135, 92, 4,201,173, 14,119,237,181,215,210,215,215,199,206,157, 59,185,244,210, 75, + 89,188,120, 49,231,159,127, 62,175,126,245,171, 89,184,112, 33,239,121,207,123,178, 2, 55,131,131,131,252,239,255,253,191, 51, + 69,159,202,172, 89,179,178,223,167, 91, 12,103, 98, 98,162,231, 24,181,212, 82,203,207,145,167,254,154, 21,115,184,235, 55, 78, +161, 97, 61,198, 59, 22, 60, 5,181,136,130, 88, 65, 61, 73,160,247,184,162,156,248, 77,204,208,241,217,254, 91,119, 31, 96, 98, + 60,128,185,125,100, 37,232, 52, 91, 61, 65,149,253,163, 1, 65, 39,228,184,121, 62, 7,157, 92,116,153,179, 8,240,160, 61,142, + 12,204, 65, 81, 8, 67,206, 92,177, 0, 99, 4, 59,195, 62,236,215, 95,127,125,207,191,173, 88,177,130,213,171, 87,179, 98,197, + 10,134,134,134, 50, 50,217, 76,202,196,186, 74,110,186, 29,223,202, 74, 46,245,128,171,246,159, 46,114,208, 75,241,187, 94,250, +116,199,154,110,105,221,195,125,189, 51, 25,239,112,203,199, 63,254,241, 66, 93,246,223,251,189,223,227,129, 7, 30, 56,228,241, +250,251,251, 11,159,199,198,198,184,240,194, 11,121,248,225,135, 11,223,119, 58, 29,254,242, 47,255,146,109,219,182,113,199, 29, +119, 0, 49, 36,127,205, 53,215, 20, 8,143,141, 70, 94,140,169,170,112, 77,149,148,183, 43, 23,229,169,165,150, 90,126,198,149, +186,103,132,255,124,254, 34, 62,122,201,113,116, 58,208,106,196, 37, 95, 53, 82, 36,176, 52,155,134,225, 48, 98, 22, 6,124, 47, + 46,243,154,168,109, 52, 95, 64,142,153, 55,136,215,108, 16, 89,146,122,241,154, 40,245,228, 95, 21,240, 12, 99,227, 1,219, 90, + 45,250,206,116, 78, 85, 35,208, 0,194, 22,152,185,136, 90,212, 90,150, 14,245,211,240, 12,109, 59, 51, 22,241,116,202,189,174, + 91,183,142,117,235,214,101, 49,223,141, 27, 55, 22,226,170,147,137,155,155,157, 50,188, 15, 69,122, 33, 4,207, 21,138, 62, 84, + 37,236,194,249,207,215,245,254,180,148,250, 31,252,193, 31,240,190,247,189, 47,251,252,201, 79,126,242, 57,231,116,143,143,143, + 23,224,238, 27,111,188,177, 75,161,187,242,149,175,124,133, 13, 27, 54,100, 40,198,187,223,253,238,194,220,117,199, 43, 27, 12, + 51, 49, 44,106,169,165,150,159, 19,165, 62,111,192,227,139,255,113, 5,171, 79,152,203, 68,199, 66,159, 31, 43,244,192,226, 7, +150,230,128,199,111,222,190,149, 21,243,251,184,254,181, 75,104, 41, 72,234,173, 7, 1,118,207,227,152,101,231, 0,112,234,177, +243, 57,239,164, 99,248,246,195,187,193,247, 99, 37,110, 18,133,158,214,145,177,241,190,173,125, 99,156,180, 56, 95,224,245,192, + 51,208, 62,128,182,143, 66, 18,210,159,218,120, 95,145, 35,115,163,210,197, 51,141,191, 79,135,188, 86,165,156,102,210,203,253, +167, 33, 51, 49, 16,122,109,251, 98,186,222,233,200,127,249, 47,255,165, 80, 70,245,239,255,254,239,249,237,223,254,237,231, 60, +238,232,232,104, 65,169,127,238,115,159,155,114,159,155,111,190, 57, 83,234,167,156,114, 10,199, 28,115, 12,187,118,237,234, 26, +111, 96, 96, 96, 90,231, 48, 56, 56,216,117, 78,181,212, 82,203,207,129, 82, 63,115,233, 32, 95,126,199, 75, 88, 54,171,201,184, + 21,100, 48,118,193,181, 99,233,183, 74,171, 9,111,190,249, 81,190,250,240, 8, 31,122,227,177, 49, 12, 47,128,151,176,223,125, +131,238,204,187, 89, 25, 35,252,183, 75,207,230,151,126,116, 7,180, 2,232,107, 38,221,221, 18,165,110, 1,181, 48, 58,206, 89, +167, 29,203, 59, 94,183, 50,219,215,238,122, 24,213, 0,137, 58,241,134,170, 24, 81,158,221, 55, 70,231, 8, 86,150,187,241,198, + 27, 11,164,186, 53,107,214,204, 56,190,251, 92,202,173,190, 24,187,194,189,216,175,247,218,107,175,229, 99, 31,251, 88,246,249, + 31,254,225, 31,120,215,187,222,117, 88,154, 9,237,217,179,135, 37, 75,226, 58, 12,105, 71,184,233,160, 35,174,172, 88,177, 34, + 83,234,123,247,238,205,198, 75,255,157, 74,202,219,237,221,187,183, 94, 21,107,169,229,103, 89,169, 11,112,213,185,243,249,244, +155,151, 19,134, 48,238, 27,164,207,160, 86,209,137,136, 89,190,240,227,177,128, 95,249,235, 71,121,108, 87, 76,206,121,124, 79, + 27, 68,209,204, 83, 7,250, 7,137,182,126, 11,127,120, 43, 50,180, 28,128, 55,158,181,156,245,215, 92,200,251,254,250,155,140, +239,111, 67,127, 31,120,113, 60,157, 78, 0,227, 19,188,242,101,139,248,226,239,189,137, 89,253, 73,188, 48,152, 32,250,209,109, + 72,179, 15, 36, 2,181,168,141,192, 24, 30,120,114,247,140,227,233, 51,149, 77,155, 54,101,112,245,100,253,172,123,201,250,245, +235,127,174,186,187,189,152,175,119,237,218,181, 5,136,253,107, 95,251, 26,111,127,251,219,167, 29,175,158, 74, 30,121,228, 17, +206, 56,227,140, 25, 41,211,242,118, 46, 42,242,232,163,143,114,250,233, 49, 25,245,248,227,143,159,214,120,203,150, 45,203,126, +111,183,219,108,221,186,181, 94, 21,107,169,229, 69, 44, 83,178,223,215,190,106, 33,159,121,235,114, 90, 33, 4,131, 62, 50,224, +161, 22, 24,143,152,213,239,241,127, 30, 31,225,220, 79, 60,148, 41,116,128,135,118, 77,196, 36,185, 40, 81,176,158,137, 33,246, +112,148,224, 91,127, 90, 24,255, 55, 95,191,146,239,124,228,109,188,239,151,207,224,196,163,251,232,215,128,217, 38,226,213, 39, + 45,224, 47,254,211, 69,220,243, 39,107, 56,113, 81,206, 18, 14,191,247, 25,116,255, 86,104,244,161, 9, 9,143, 48, 2, 35,108, +126,108,215, 11,242, 38,247, 98,157,191,216,207,175,215,182, 47,244,235,157,142,188,251,221,239,230,166,155,110,138, 91, 10, 19, + 87,124,123,235, 91,223,218,213, 8,230,185,200, 67, 15, 61,148,253,158,166,178, 77, 37,229, 24,184,203,114,119,227,241,175,120, +197, 43,166, 53,158, 91, 43,254,177,199, 30,139,155, 46,213, 82, 75, 45, 63,155,158,250, 96,211,240,225, 11,151,208,105, 89,152, +221, 64,154,130,118, 20,175, 21,210, 55,203,227,163,247,236,224,191,125,229, 41,130,168,232, 29, 63,244,236, 4, 79,141,116, 88, + 60,187, 73,164,154,247, 87, 31, 24,196,110,191,135,240, 95, 63,129,255,154,156,116,244,242, 19, 22,240,167, 87,157,207, 71,222, + 17,178, 99,223, 24,205,134,207,210,163,187, 83,107,162, 31,253, 35,225,131,127, 11,253,113, 28, 80,140,135, 70, 22,137, 44, 65, +171,205, 29,247, 30,121, 47,227, 80,226,195, 46,161,108,245,234,213, 12, 13, 13,189,160,160,244, 45, 91,182,100,231, 55,221,238, +115,147,109,247, 66,191,222,169,228,202, 43,175,228, 51,159,249, 76,166,208,239,187,239, 62,126,249,151,127,185, 43,253,235,185, +202, 61,247,220,147,253,190,116,233, 82,250,251,251,167, 76, 69, 43,247, 81,223,185,115,103,246,251, 55,191,249,205,130, 82,159, + 61,123,246,148, 49,242,243,207, 63,191,114,255, 90,106,169,229,103,208, 83, 95, 48,203,103,168,207, 35,180, 49,187, 93,199, 35, +154,157, 8,233, 19, 46,255,194,227,172,251,210,246, 46,133, 14, 48,222,177,252,249,189,187,104,248,160,173, 8, 80,196, 16,231, +171, 15,206, 33,122,240,115, 4,155,254, 27, 58,190,167,232,133, 52,124,150, 47,154,215,173,208,131, 9,162,251,254,146,240,155, +127,130,244, 53, 17,207,139,227,245,141, 62, 8, 66, 26, 6,238,188,127, 43,219,119, 29, 89,146, 79,153,244, 53, 93, 38,118, 57, + 85,171, 87,209,150,159,150,184,231,151, 86,155, 59, 84, 47,253,197,112,189,147,201,175,254,234,175,242,185,207,125, 14, 99,226, + 87,227,129, 7, 30,224, 13,111,120, 3, 7, 15, 30, 60,236,199,186,231,158,123, 50, 56,189,209,104,112,193, 5, 23, 76,185, 79, +218, 25, 14, 96,255,254,253, 60,242,200, 35,217,231,175,127,253,235,217,121, 54, 26,141, 73,107, 27,164,134,196, 69, 23, 93,148, +125,254,210,151,190, 84,175,136,181,212,242,179,172,212,119, 28, 12,216,218, 10, 25, 28,244, 24, 12, 34, 6, 61, 56,104, 44,231, +223,244, 8, 27, 54,239,155,116,224,207,124,103, 55, 35, 65,132, 31, 68, 16,216,152, 53,151, 20,165, 97,214, 28,236, 19,255, 68, +231,182,119, 18, 61,116, 27,122,224,233,202, 49,116,108, 55,246,137, 77,116,254,225, 42,194, 7, 62, 13,253,253,224,249,164, 44, + 60, 49, 13,164, 21,128,167,124,224,179,223, 59,162, 55, 42,109,154,226,202,100, 5, 88,202,219,185,100,177,117,235,214, 29,182, +126,236,135, 67, 54,108,216, 80,240,164, 39, 43,155,155,222,139,201,182,121,161, 95,111, 47,249,149, 95,249, 21,190,240,133, 47, +224,121, 49, 9,244,161,135, 30,226,146, 75, 46, 97,255,254, 35,211, 40, 40,138,162, 2,227,253, 3, 31,248, 64,134, 14, 84,201, +156, 57,115, 10,172,251, 59,239,188,179, 0,151,119, 58, 29,110,185,229,150,236,243,117,215, 93, 55, 41,172,127,253,245,215,103, +215,250,147,159,252,132,127,249,151,127,169, 87,196, 90,106,249, 89, 86,234,157, 80,185,224, 83,143,242,255,223,191,155, 47,110, + 57,192,186, 77, 79,115,202, 71,254,157,251,158,156,218, 35, 30, 30, 15,249,205, 47,110,163,209,231,161,163, 33, 26, 88, 32, 73, +111, 19,129,193,185, 16,142, 16,124,235,195,116,110,187,146,206,151,174, 38,252,214, 71, 9,239,253, 51,194,111,127,156,206,157, +239,165,243,197, 95, 35,216,116, 61, 58,186, 21,102,205,139,139,210,164,107,158, 53,104, 91,104,244, 27, 62,114,235, 3, 60,252, +212,145, 89,120, 87,172, 88,193,218,181,107,185,255,254,251, 11,138,105, 38,149,210,160, 88,198, 53,237, 52, 54, 29,143,120,197, +138, 21, 89,142,252,145,146,225,225,225, 2,153,109,245,234,213,133, 82,168,101,133,238,118, 73,123, 49, 94,111,149, 92,114,201, + 37,108,216,176, 33, 43,224,242,232,163,143,178,122,245,106,246,236,217,243,156,198, 85,213,236,231,173,111,125,107,215,223, 63, +242,145,143,100,222,245,249,231,159,207,159,254,233,159,102, 40,129, 43,105, 21,185,148,216,102,173,173, 36, 32,126,232, 67, 31, +202,226,254, 47,123,217,203,184,233,166,155, 50,197,237,202, 21, 87, 92,193,123,222,243,158,202,253,106,169,165,150, 23,175, 76, +201,126,223,190,175,205,251,254,207,182, 67, 26,252,139,255,182,151, 79,156, 56,155,247,189,118, 49, 19, 7, 58,200,220, 38,244, +153,152, 68,135, 66,163,129, 52, 26, 49,131,125,239, 15, 8,119,109, 38, 45, 43, 39,198, 7,191, 9,179,102,151, 86, 73,160, 19, +161,118,128,254,190, 38, 95,127,240, 39,252,247,207,127,255, 57, 47,188, 51,149,171,175,190,122, 70,113,226, 77,155, 54,113,245, +213, 87,103,202, 50, 85,116,155, 54,109,202,234,178,187,138, 45,173,100,151, 26, 18,147, 85,189, 59, 28,178,126,253,250, 66, 27, +212,181,107,215,102,245,215,211,115, 91,189,122, 53,107,215,174,101,104,104,136, 45, 91,182, 48, 60, 60,220,211, 3,127,161, 95, +111, 89,110,191,253,246,130, 87, 59, 62, 62,206,103, 63,251,217,105,239,255,134, 55,188,225,144,142,187,123,247,110,174,189,246, + 90,110,190,249,102, 0,222,251,222,247,114,254,249,231,243,153,207,124,134,135, 31,126, 24,223,247,121,229, 43, 95,201, 53,215, + 92, 83,104,216,242, 71,127,244, 71,149,141, 87,182,109,219,198, 7, 63,248,193, 44, 13,239, 93,239,122, 23,103,156,113, 6, 55, +221,116, 19,143, 63,254, 56, 11, 22, 44,224,178,203, 46,227,237,111,127,123,134, 10,220,125,247,221,252,245, 95,255,117,189, 26, +214, 82,203,207,131, 82,127, 78,202, 18,184,238,246,237, 28, 51,183,193,149,103,206,167, 53,210,129, 57, 13,164,223,203,243,215, + 99, 13, 14,205,126,100,170,193,172, 66, 59,194, 30,232, 48,176,100, 17,155,183,238,230,178, 15,223,125, 68,115,211,203,178,121, +243,102,174,190,250,234, 67,170,108,150,122,246, 55,220,112, 67,230,233, 86,117,129,251,105,200,240,240, 48,151, 95,126, 57, 27, + 55,110,204,120, 3, 43, 86,172,168,108,118,147,110, 59, 85, 35,156, 23,242,245,150,165, 92,172,101,186,236,241,195, 33,159,251, +220,231, 88,178,100, 9, 31,254,240,135, 49,198,112,214, 89,103,241,201, 79,126,178,231,246,159,248,196, 39,248,227, 63,254,227, +158,127,255, 31,255,227,127,112,194, 9, 39,112,237,181,215, 2, 49,169,241,211,159,254,116,229,182, 63,248,193, 15,120,219,219, +222,118,216,210,244,106,169,165,150,159,174,152, 35,125,128, 32, 82,254,159,155,159,224,163,119, 63, 75,127,211,208, 56, 16, 96, + 71, 2,104, 89, 8, 99,101, 45, 8, 34, 21, 63,201,255,136,128,142, 69, 15,132,200,112,155,129,161,163,248, 63, 15,238,230,194, + 15,126,141,253, 99, 71, 30, 50,220,180,105, 19,235,215,175,231,242,203, 47,231,236,179,207,126, 78,165, 74,215,175, 95,207,217, +103,159,205,250,245,235,167,229,233,111,216,176,129,171,175,190,250,121,105, 98,146,182, 52,157,170,197,235, 76,238,193, 11,249, +122, 95, 72,114,227,141, 55,114,193, 5, 23,240,221,239,126,183,231, 54, 15, 62,248, 32,111,126,243,155,121,255,251,223, 63,101, +234,217,111,255,246,111,115,249,229,151,243,248,227,143, 87,254,125,100,100,132,143,125,236, 99,156,119,222,121,117,193,153, 90, +106,249, 25,146, 4, 7,127,126,228,162, 83,230,241,191,174, 60,145, 19,134,250, 8,219, 74,232, 11,244,123,136,111, 98,207,221, + 56,190,186, 42, 68,160,161,133, 86,132, 23, 88, 26, 13,225, 64, 4,191,245, 15, 79,115,203,191, 62,141, 85,125,209, 63, 0, 23, +114,118,149,235,240,240,240,140, 91,188, 30, 78, 73,225,112,183, 39,250,166, 77,155, 14,185, 58,220, 11,253,122, 95, 72,114,210, + 73, 39,113,206, 57,231,176,116,233, 82, 68,132, 29, 59,118,112,239,189,247,242,216, 99,143, 29,210,120,231,158,123, 46, 43, 87, +174,100,209,162, 69,140,140,140,176,117,235, 86,190,254,245,175, 79,187,147, 91, 45,181,212, 82, 43,245,158, 50,183,223,227,138, +115,230,243, 95, 47, 90,202,242,163,226,210,176,170,138, 21,193, 58, 58,221, 40, 24,213, 56,117, 77, 96,247, 68,196, 39,238,217, +193,255,250,206,110,118,140,212,132,158, 90,106,169,165,150, 90,106,249,169, 43,245, 84,250, 26,134,147,143,233,231,109,175, 56, +154,215,172,152,195,146,217, 13,142,234, 51, 52, 61, 33,136, 96, 36,136,216, 57, 22,242,253,167,198,248,194,191,237,229,161,103, + 38, 24,109, 71,245, 19,171,165,150, 90,106,169,165,150, 23,154, 82, 47,139,239, 9,190, 17, 60, 19,243,225,194, 72, 43, 11,219, +212, 82, 75, 45,181,212, 82, 75, 45, 47,112,165, 94, 75, 45,181,212, 82, 75, 45,181, 60, 55, 49,245, 45,168,165,150, 90,106,169, +165,150, 90,169,215, 82, 75, 45,181,212, 82, 75, 45,181, 82,175,165,150, 90,106,169,165,150, 90,106,165, 94, 75, 45,181,212, 82, + 75, 45,181,212, 74,189,150, 90,106,169,165,150, 90,106,165, 94, 75, 45,181,212, 82, 75, 45,181,212, 74,189,150, 90,106,169,165, +150, 90,106,169,149,122, 45,181,212, 82, 75, 45,181,212, 50, 3,241,175,121,211,155,105,120, 62, 86, 13,160,113, 87, 52,226,138, + 52, 74, 92,123,221,160, 24, 44, 96,211, 62, 43,201, 39,139,162,120,128, 7,132,170,180,109,188,175,193,162,170,196,133, 93,211, + 26, 55, 54,254, 93,227,223,210,102,143,113, 63,115, 1, 81, 68,227,227,186, 18,143, 99,146,239,163,120, 52, 5, 68,208,100,108, + 75, 60,134,160,168, 74,126, 5, 26, 95,149, 38, 87,165,201, 30,217, 57, 41,136, 52,208,126,143,134, 23,225,135, 33, 97,160, 68, + 22,210,130,118,249,222, 73,165, 30, 17, 36,105, 38, 35,164,227, 39,215,128,179, 79,210,175,154,180,134,189,106,118,150,217,181, + 37,103,101, 1, 35,130,143, 98,173, 16,160,137,197, 21,223, 23, 48,136,153, 11,205,126,140,175,120, 58, 78,212, 58, 72, 20,228, +199, 81,199, 82, 75,175, 81, 37,255, 94, 0, 73,159,137, 8, 70, 20,181,234,236, 39,233,227,201,238,171,160,136, 10, 22,197, 38, +207, 45,158, 19,177,216,228,249,136,123,140,228,142,169,166,247, 63,254, 73,111,135, 65,241,146,103, 19, 38,243,137,174,230, 60, +146,220, 47,247,251,210,167, 30,115, 69,156,123,235,252, 39,187,255,148,255, 46,154, 62, 88, 84, 35,240,250,241,250, 26,232,196, + 65,162,200,121,140,217,127,108,246,133,117, 79,166,234,152,221, 31,243,121,227,156,127,229,126,233,105, 57,247, 70, 36,249, 62, +249,155, 59, 55,171,254, 91, 61,182,102,255,116,223,131,138, 27,164,206, 28, 83,231, 57, 40,197,241, 74,207,134,194,251,221, 91, +220, 97,180,199,120, 83, 73,247, 61,214,222, 27, 77, 90,114, 75,157,243,159,186, 54,151, 38,219,202, 36,215, 90,190, 62, 41, 94, +108,182,179,118,127, 40,204,221,248,116,170,207, 73,187,190, 77,239,228,116,234,139,233,164,247, 78, 43, 47, 72, 32, 24,135,176, + 5,166, 25,207, 15,209,120, 97, 48, 13,144, 6,234, 54,211,214,222,207,213, 93, 57,149,252, 93, 44,108,175,147, 62,217,233,205, +155,105,206,215,234,105, 51,221, 57, 92,188,154,222,115, 84, 39,189,158,233, 79,122,186,214, 68,127,206,224, 32, 54, 82,108,172, +134, 17, 4, 47,153, 12, 22, 5,137, 16,213,120,193, 87,131, 36, 10, 40,202, 22,110,139, 98, 17, 21, 26, 18, 55, 98,137,212, 38, +170, 94,241, 85,137, 84, 81,241,147,131, 6,160,177, 2, 75,213,180,123,177,226, 44,211,174, 10, 54,217, 34,231, 97,146,189,172, + 99,134, 72,114,254,138,102,235,147,150, 23,175,146,234, 85,231, 69,180, 97,136, 17, 24,244, 60,130,184,109,123,182,135,116,237, + 35, 72,114, 16, 91,154,126,146,124, 82, 71,177, 34,224, 57,139,126,250,220, 77,124,231, 74, 10, 57,126, 49, 26,228, 90, 48, 29, + 81, 76,132,215,244,104, 54, 21,207, 10,138, 79,139, 88, 49,138,148,159,183,196,239,153,243,194,231,139, 73,124,126,158, 8,106, +242,251,157, 26, 22, 38, 83, 21, 32, 26, 27,114,169,161, 96,156,165, 2,226,230,122,169,242, 78,207,213, 38,247,193,144, 43,245, +244,114, 4,139,213,228, 89,165,107, 64,186,159,198,198, 11, 98,146,231, 24,197,231,170,189,151, 41,117, 22, 82,233,122,185,210, + 59,106,179,155, 94,232,236, 39,206, 66,172,233,184, 6, 36, 98,142, 23,209,105,248, 76, 72,114,111, 11,111,164,151,141, 99,146, +201, 53,185, 50,215,202,151, 90, 75, 27,106,105,133,214,146,130, 47,188,190, 34, 96, 12, 26, 69,133, 5, 71, 11, 11, 99,239, 99, +187, 3,235, 36, 11,111,118, 92,205, 45, 17, 21,201,191,170, 48,172, 42, 21,181, 78,190,124,169, 51,119, 40,232,222,231,170,224, +181,116, 49,210,107,205, 45,152,142,130, 76,109, 36,148,236,161,236, 29, 83,237,173, 24,179,147, 51,133,121,219,109,207, 74,181, +214, 51, 64,226,128, 85,221, 63,117,222,127,156,245,115,202,219, 88,152,227,210,243,121,138, 8,214, 42,237,145,189, 68, 3,139, + 48, 75, 47, 65,180,129, 9,219,248, 97, 27,211,222, 11,209,211,160, 7, 80,227,129, 52,179, 33,211,121, 83, 62,153,194,209, 52, +125, 62,213,231, 81,222,190,184, 38,200,161,187,183, 61,109, 31, 45,122, 36,147, 25, 37, 83,108, 87, 60,196, 97, 40,230, 42,221, + 54,170, 8,248,125,253,253,180,198, 39, 50,207, 83, 37,174,189, 46,162,185,215, 37,177,151, 70,166,132, 21,155,122,157, 73,223, +115,171,241,162,156,122,114,169, 71,168,137,242,142, 84,137, 76, 3, 49,160, 26,162, 81, 98,116, 38,222, 35, 5,132,128, 76,105, +187,158,183,201, 94, 55,113,124,255, 68, 65, 97,241,156,253, 10, 83, 39, 57,159,196,223,205,142,145,249,129,137,231, 29,116,224, +160,144,140, 83,180,196, 83, 69,158, 33, 25, 5, 37,150,250,166,210, 53, 21,227, 5, 86, 42,157, 32,139,128,181,168, 24, 68,226, + 5, 45,112, 94, 74,163,174,119, 11, 68, 45,232, 68, 88, 17, 68, 3, 52, 42,190, 7,238,162, 24,191, 63,154, 79,247, 12,217,208, +204, 75,140, 28, 23,131,138, 99,111, 0, 0, 32, 0, 73, 68, 65, 84, 35, 61,191,136,184, 59, 94,182,246, 37,243, 65, 75, 70, 77, + 58, 19,140, 74,225,123, 91, 64,123,146,237, 82, 80, 68,213, 65, 77,186, 95, 91,131,137,231,139, 1, 49, 6, 27, 41, 81, 20,102, + 11,113,250,226, 90,103, 49, 20,215,125, 45, 25, 95, 10, 24, 73, 61,175, 24,181, 16,145,146,130, 76,206, 55,123, 65,226,139,157, + 24,143, 13,174,116,255,242, 82,148, 45, 34,174, 65, 81,242,164,202,223, 73, 14, 64, 20, 23, 39, 73,206,194,245, 36, 93,243, 69, +227,174,196,138,115,238,170,120, 26,197,239, 88,201, 20, 46, 30, 71, 28,228,168,194, 43, 73,230,126, 47,199, 84, 36,121,255, 76, + 98,252, 72,105,249,204,174,175,251, 46,165,127, 50, 56,232,207, 52, 61,182,124, 83,153,177, 63,147,162,100,221,222,182,244,240, + 76,203,251, 75,126,143, 38, 91,236,211,153, 46,154, 27,244,154,158,114,241, 90,197, 89,243, 83,133,157,234,184, 46, 59, 83, 75, + 8, 76,218,170, 50, 69, 77,122,156, 88,229,252, 76,255, 43,147,184,184, 82, 54,253,171,111,142, 17,161, 21, 88,198,134,247,176, +228,204,151,115,244, 5,239, 34,244,230, 17, 28,216,193,216,216, 24,227, 7, 32,220,217,194, 31,222,137, 57,248, 36, 18,108, 1, + 25, 69, 77, 19, 85,159,105,220,212,226,116,210,201,149,232,140, 21,228, 36,155,201,164, 8, 64,111,116,100, 38,103,208,253,142, +201,180,177,148,233,202,156, 57,115,240, 5, 11,106, 51,248, 85,178, 5, 84,146, 9,152,174, 64, 6, 21,136, 52,202,161, 74, 20, +155,238,107, 20, 47,153,161, 97, 50, 86,234, 93, 91, 12, 34, 17,198, 70, 88, 99, 16, 19, 43, 97,235, 64,220,138, 77, 20, 82,174, +176,203,214,151,166,240,186,243, 93,170,164,109,230, 81, 43,198,217, 79, 29, 3,176,236,232,100,190, 64,130, 28,104,162,212, 66, + 7, 53,200, 39, 89, 2,145,211,109, 93,199,191,251, 8, 54, 91, 80, 82,207, 83, 10, 6, 74,230,254,198,215, 97,230, 35, 13, 75, + 20, 12, 35, 42,217, 75, 46, 18, 43,244,110,207, 91,137,130, 22, 26, 17,183,170,181,146,135, 48, 74,147, 75, 85, 11, 43, 73,122, +253,153,177,236, 96,202,238,154, 44, 42, 9,242,146,135, 45,170, 38, 92,186, 14,216, 46,251,184,104,216,100,250,214,209, 52, 82, +130, 44, 93, 35, 61,213,175,162, 22, 79,114, 4,169, 91,137,119, 1,150,197,243, 76,149, 85,122, 60,201,183,146,194,162,155,134, + 55,242,185, 0, 66,152,134,139, 98, 43, 52,123, 39, 50,131, 34,189, 48,145,162,199,149, 45,218,147,124, 39, 41,212, 79,247,118, +169, 54,150,130, 58,206,143,225,236, 27,217,210,119,133,135,169,110,244,167,251,217,225,122,131, 78,200,194,185,183,169,218, 18, + 71,211,170,100, 58,172,112, 61, 74,197,139,150,219, 0, 93, 6, 76, 47, 40,180, 75, 5, 31,146,114,151,204, 32, 41, 95,231,180, + 87, 80,209,194, 56,170, 21,234,220,125,199, 74,171,149,166,243,170,226, 30, 59, 55, 59, 63,150, 86, 43, 10, 41,163, 58,147,120, +187,229,224, 75,121, 13,236, 82, 49, 54, 2,241,220,183,181,167,138,242, 4, 14,182,149,214,200, 30,222,252,166,115,121,245,154, +223,101,124,116,132,209,159, 60, 68,103,246, 24,251, 6, 3,158,156,235,243,212, 60,143,145,189, 67, 68,187,143,194,223,187, 20, + 57,248, 48,132, 79, 33, 38, 4,233,155, 90, 17, 11,213,240,187,184,104,110,239,249, 50, 61,229, 88,189,165,227, 27, 76,162,190, +187, 71,153,177,111,126, 56, 21,123,133,183,238,103,202, 75,115,143,211, 56, 19, 77, 36, 86,183,154,172,184, 70, 28, 15,215, 57, +157, 40,129,156, 68, 4, 95, 5,155,236,175,162,137,135,150,122,155, 17,214,130, 21,165,145, 40,175, 78, 9,226, 46,204,123,205, + 99,229,214, 81,236,145, 51,213, 37, 81,181,169, 87,175, 5,111, 88,157, 24,115, 25, 54, 75, 32,212,220, 33,138,183, 21, 28,120, + 88,178,152,183, 84, 62,204,216, 20, 82, 35, 88,241,241,136,192, 70, 88,141,239,149, 36, 79,209, 22, 22,134, 36, 94,172, 29,100, + 86,147,217,106, 8, 70, 44, 29,199,235, 21, 41,190,204, 46,156, 31, 70,177, 50, 87,113, 96,238,130,173,157,132, 78, 52, 55, 66, + 82,229,149,198, 99, 99,165,161,217, 24,217,191,169, 33,226,196,207,171,161, 47, 71, 9,138,244, 92, 96, 68,186, 95, 78,209, 4, +198,235,130,205, 51, 38, 7,106,115,116, 33,126,219,108,241, 28,164,232, 41, 87,190,145, 34, 61,189,107, 41,192,239,238, 46,169, +217,232, 37, 51, 39, 44,121, 43,137,215,159, 92,155,102, 51, 50,135, 47, 69,186,189,210, 74, 69, 94,190, 6,231, 25,167, 40,149, +139,171,185,177,189,108,223,148,179,225,220, 23, 91, 82,174,249,177,181,228,143,150, 21,185,235,209,151,148,135,186, 74, 38, 70, +239,220,109, 10,122,170,164,128,181, 74,229,138, 99,206,168,139,253,244, 80,209, 51, 84,238,142,239,156,132,202,226,119,116,178, +152,103,229,106,169,213, 75,174, 58,158,121, 17, 95,172, 66, 97,232, 82,238, 5,123, 18,113, 30, 87, 55, 50,212, 21,254,171,122, + 62,133,247, 72,144,146,186,200,246, 19, 65,195, 0,157, 24,199, 52, 6,160, 17,197,106, 96,146, 91, 97, 4, 70, 67,131,142,236, +226, 61,191,122, 50,175,121,231,251,217,190,101,156,145, 39, 30,161, 61, 49,138, 31,118, 88,216,128,121, 18,178,108, 86,135, 39, +154, 62,219,103,123,140,207, 94,128,183,235, 92,252,225,133,104,251, 71, 96, 38, 64,250,122,194,251, 82,120, 23,181, 55,238,222, +165,220,181,215, 38, 51, 87,236,101,195, 74, 39, 31,175,252, 92,196,209, 89, 51, 4, 11, 14, 91,232,192,143,189, 56, 73, 98,159, +150, 40, 49, 46, 69,227, 23, 87, 52,167,114,229,241,100, 50,226,151,107,113,168,186,203,114, 14,214, 27,231, 91, 35,241, 39,171, + 66,219, 89,168,109,215, 99, 74,173,228,152,112,103, 51,207, 57,135,215,203, 20,182, 36, 82,149, 17,249,138, 97,172, 18, 68, 24, + 99,177,136,198,161, 5, 71,157,102,202, 93, 37, 85,114, 82,138,237,185,136,129, 34, 98, 98, 79,223,196,113,106, 35, 66, 39,212, +196,145,115,148,136, 11, 13,139, 65,237, 1,194,131, 66,127,191, 97,208, 55,236, 10,226,235,205, 32,121, 7, 47,136,185, 11, 78, +156, 81, 36, 67, 18, 82,197, 30,165,196, 56, 45,198,210, 81, 55,166,157,147,219, 10,238,180,163,212,242,120,110,217,131,208, 60, + 12,161,146,227, 36, 90,188, 47, 69, 47, 73,115,147, 76, 37, 11,231, 72,130,142,216,114, 76,214,230, 38, 99, 36, 89,148, 59,131, + 83, 93,156, 38,243,192, 29,239, 57,219,198,129, 44,213,137,115, 26, 60,212, 51, 16,133,185, 63,147,140,161, 46, 11,205,107,208, +232,111,162, 19,163,132, 81, 73, 17,100,215, 79, 55,228,237, 40, 41, 38, 85,228,238,126, 69,163,160,176,216,151, 41, 84, 78,248, + 64, 28,227,197,186, 70, 69,151, 71,236,160, 11, 20, 81,131,106,165, 89, 60, 87,117, 13,140,114, 28,184,234,122,202, 70,149, 84, + 67,222,233,182, 54, 69, 6,213, 93, 59,122, 43,119,166, 1,229, 75,233,221, 79, 29,151,124, 41,152,124,255, 34, 44,221, 99,108, + 71, 59, 75, 55,101,179,231,253,213, 73,149,145, 84, 19,169, 52, 15,107,226,160,109, 90, 50,138,170,113,187, 20,108, 21, 90, 19, + 29,218,157, 49, 6, 78, 89,141,232, 10,204,211,255,140,218, 93, 32,253,149,251, 10,208,182, 66,123,248, 32,191,117,225, 92,222, +240,235,255,137,251,159,140,120,246,201,135,104,181,218,216, 80,241,196,131,192,210, 32, 98, 65,195, 99,110, 83, 88,120,148,242, +120, 95,196,174, 89, 13,130,193, 83,240,119,207,129,209, 7, 17,246,161,153, 98, 47, 25, 58,137, 19,169, 76, 22, 47, 40,216, 91, +135, 68, 44,155,145,138,237, 10,215, 77,174, 87,115,195, 89,103,160,136, 15,143,170,151, 60, 76,162,241, 2,108,114,202,129, 85, +136, 72, 61,108,197, 38, 90, 92, 50, 18, 90, 12, 52,231, 16,123, 30, 95, 55,201,194, 17,169, 18,185,244, 52,205,249,239, 5, 83, + 75, 92,187, 50, 31, 59,135, 31, 77,230, 83, 88, 71, 81,217,130,170,209,204, 66,210,146, 71,109, 18,149,151,190, 8,182,203,203, + 44, 18,114, 82,210, 87, 70, 96, 75,160,107,227, 48,190, 83,245, 32,217, 98, 21,197,112, 49, 54, 38,150, 1,190,100, 58,170,240, +204, 10,214,183,120,104, 40,236, 59, 8, 35, 33,120, 98, 17, 51, 15,105, 28,133,218,196,192,194,160,226, 33,158, 87,132, 1,157, + 69,223,150, 20, 93,250, 65,170,163,141, 69, 8, 54,241,224, 76,233, 53,171, 90, 30, 18, 92,220,185,128,110,106,138, 24, 3,198, +203,184,251,241, 61,181,101, 6, 88, 23, 20, 92, 86, 80, 54, 51, 94,114,159, 82,164,251,252,164,124,165,201, 92, 85,103, 14, 73, +166,208,226,165,175,225,129,239,245, 38,180, 10, 6, 52,160,223,142,227,139,102,164,195,248, 48, 38,135,164, 83,222,137, 72,225, + 76,196, 24, 68,188,226, 53,150,183,169,248,206,125,120, 82,184, 28,233,134,207,165,104, 84,152,194,121,244, 62, 78, 33, 68,235, + 62,207,138,115,200,223,161,148,232,148,188, 15,153, 57,217, 99, 63,169,250, 85,122,122, 47,198,217, 93, 68,166, 69,120,146, 66, + 8, 77,166,216,174,136, 2, 72, 25,145,168,160, 94,165,239,182, 76, 1,191,102,198, 43, 85,188,130, 73, 8, 97, 85,223, 8,133, + 80, 71,121, 56,117,236, 42,209, 88,193, 75,198,168,144, 66, 48, 74, 41,210,117, 61,129,209,137, 8, 47, 24,225, 13,191,250, 43, +172, 92,243, 31,137, 78, 58,137,104,112, 37,132,182,228, 6,229,231, 96, 69,216,119, 32,226, 77, 43,198,121,253,149,151,243,253, +189, 39,178,119,251, 35,132,157, 0,193,226,121,137, 97,174, 22,245,132,182, 24, 68,149,229,158,225,236, 89, 62, 47, 89,164, 52, +143, 23,130,165, 75, 97,246, 89,192,209,136, 6, 61,194, 37, 83, 67,222,213,184, 8, 83,207, 24,157,161,102,116,119,148,153, 24, + 13, 50,229,217, 72,239,199,127,232, 84, 63,231,125, 51, 97,194, 78,183,106, 19,208, 79,179,225,147, 36, 54,208, 88,197,121, 98, + 48, 38,246,100,172, 42, 33, 54,102,199, 75, 30,207,214,132, 80, 97, 12,142,162, 53, 88,135,179,174, 41, 77, 44,177, 37,226,148, + 56,201,198,144,204, 35, 76, 95, 28,131,151, 18,242,146, 4, 59,144, 36,185,205,181, 80, 12,238, 85, 88,114, 5, 1,130, 49, 46, +241, 41, 73,133, 83, 87,249, 75, 22,127, 78,177,137, 52, 28, 97, 92,184,210,153, 86,177,103, 14, 86, 35,108, 20, 97,173, 98,173, + 11,111,166, 48, 56,142,178,202,207,192, 19,176, 6,218,153, 87,107, 48, 71, 13, 50,112,148,135,159,146,233, 36,190,247,190, 17, + 39,209,172, 56, 47,194, 2,252,174,133, 23,164, 12, 83,105,193,247,147,204, 59,119,207, 73, 42,102, 92,118, 15, 84,178, 84,193, + 42,234,174,241, 4,223, 55, 9,137,210,137,239, 73,158,173,224,210,114,138, 74, 75, 16, 49, 9,138,226, 96, 90, 25,148,218,107, +117,205, 21,150,201,104,255,197, 88,124,202,220,215, 48, 72, 60, 31, 41,152,128,226, 24, 5,162,202,248, 68, 68,199,198,243,198, + 85, 36,149, 11,175,163,124, 5,141,223,147,158,138, 60, 51,167, 18,165, 32,165,235,147,242,129,226,177,187,140, 0, 41, 41,225, + 24,117,144, 10,197, 44, 69, 55, 55,227,112,164,247,186,235, 60,187,152, 18,146, 61, 79,145,106,229,239, 42,201,242,179,234,101, + 96, 84,146,142,100,250, 60,230,162, 29, 35,147,146,223,164,108,220, 84, 92, 75,217, 83,158,150,218,144,226,179,213, 66,249,143, +162, 10,146,146,131, 64,233,185,118,175,238,229,119,204, 77, 59,117,109,236,252,168, 57,149, 56,191,162,177, 80,240,199,134,185, +234, 87, 87,241,182, 75,223,201, 42,221,201,188, 57, 59, 8, 6,103,129, 54, 18, 54,145,118,221,219,253,109,225, 20,111, 63,151, + 93,246, 74,158,158,247, 70,118,111,221, 70,208, 57,136,209, 14, 30,138,213, 0, 49, 74,195,111, 2, 62,198, 70,168,137,232, 24, +225,104, 79, 56,115,192,227,164,249,208,183,212, 16, 46, 89, 10,131,167,129, 54, 65,195,158,138,177,136,130, 77,101,208,209, 51, +196, 35,189,148,181, 76,110,106,149,255, 46,211, 48, 27,122,235,115, 57, 84,107,226,144,197,136,196,217,230,113,154,154, 98, 9, +137, 52,140,149, 84,234, 15, 43,177,178,210, 24,118, 52,162,120,196, 9,233, 54, 81,204,162,121,172,209, 38,240,182, 72,170, 32, + 52,155,183,154, 32, 0,238,237, 42,120,101,201, 62, 94, 70, 14,147,108,127, 95, 4, 63,125, 41,196, 77,175, 42,197,169,132,130, +231,233,198,192,125, 17, 60,201, 61, 15, 23,248,176,101,106, 90, 2,197,102, 41, 91,233,162,230, 48,224,181,148, 49, 19,147,255, +148, 0,178, 69,208, 38,175,140, 11,180, 88, 71,177,102,102,138,120,104, 56, 76,116,112, 23,115, 69, 24,242, 99, 35,200, 72,106, + 98,197, 10, 43, 93, 24,164, 96,136, 36,136, 66, 58,150,118,135, 40,210,120,121, 78,172,202,201,128, 41,135, 34,133,170, 11, 30, + 98, 57,143, 86, 92,207,183, 72,114,195,228,207,198, 36, 7,147, 68, 65, 75, 2,221, 87,190,128,146,147, 52, 17,141,239, 5,126, +158,143, 45,221,177,224,110,111, 93, 74, 72, 72,105, 33, 79,142, 17, 90,201,210, 0, 5, 41, 44,156,226, 44,208, 86,164, 48, 86, +118,140,212, 16, 76,239, 67, 98,240, 20,194, 23, 86, 43, 20,185, 75,126, 51,168, 38,230,162,145,174,115,201, 13,218, 34,154,225, + 42,198,236,191, 5, 8, 67, 75, 30,190,148, 64, 12, 41,226,199,234,144,225, 68,122,160, 11,210,229,181,100,231, 86,169,216,243, +176, 81,165, 55, 34,213, 70,138,116,107,201,105, 45,118,130, 75,232,235, 97,245, 73,111,231,173,104, 4,203,140, 92, 61, 45, 17, +123,139, 80,172,196,161, 14,165,100,138, 83, 68,145, 42, 12,162, 73,217, 97, 90,244,200,139,103,163,142,211,145, 59,103, 7, 71, + 90, 92,122,246, 32,231, 95,241, 78,182,236, 91, 72,255,254, 61, 12,181, 91, 68, 19, 59, 64,194,152, 48, 87,186,244,142,130, 55, +218, 97,205,171,154,244,189,230, 82,182,237,153, 79, 48, 54, 12, 65, 24,167, 65,135, 29, 26,162,120,126,147,200,248, 68, 52,241, +212,199, 19, 31, 95,148,200, 8,131,158,199,169,131, 13, 86, 28,211,196, 59,198, 35,154,189, 0,204,130, 56, 93,213, 69, 52,180, +138, 60,249,220, 21,157, 76, 27,134,167,199, 60, 78,141,101,157, 38, 8,160, 5,244,107, 90, 48,252,225, 82,239,201,142,190, 17, +240, 36, 37,202,145, 64,237,196, 42, 94, 33, 84,137,189, 81,148, 72, 99,130, 86, 58, 17, 61,133, 8, 67,148,196,219, 21, 33,202, +151,172, 98, 44, 92,109,246,178,166,241,185, 40,131, 91,181, 59,223, 46,141,107,167, 5,112, 84, 18,246,121, 18, 99, 23,161,145, + 64,235,145, 72,204,228, 76, 65,243,228,124,173,198,113,102,196,198,233, 82,196, 33, 1,147,208,160,172,195,175,210,130, 77,166, +206,209, 53, 35, 16,170, 74,230,209,219, 2, 51,190, 76,158,115, 88,227, 46, 12, 95, 50, 50,138, 83, 33,129,121,141,129,150,101, + 95, 59, 65, 22, 80,212,134, 5,214,113, 97,153, 77, 60, 61,227,140, 65,146, 58,150, 23,243,201,143,104,203, 11, 79, 86,128, 39, + 95,248,162,228,250,140,171,236, 10,222,181,201,227,202, 98, 50,150,131,146, 88, 53, 38,201, 63,208,124, 17, 79,211,217,208, 73, + 38,111,230, 96, 91,240,250,105, 12, 52,208,214, 65,162,208,162,210, 99,177, 35, 55,182, 84,114,242, 99, 87, 60, 83, 41,144,198, +220,197, 82,210, 56,115,201,187, 47,144,239,212, 73,125, 75, 13, 34,117,211,154, 74,140,159,114,186,155,235, 57, 25,131, 49,126, +194,172,143, 64, 45,214, 58,152, 82,154, 2,151,145,242, 42, 8, 81,165, 84, 57,205, 72,172, 76, 26,195,207,201,128,116,229, 83, +231, 49,123,173,184,119,226,132,198,203,172,228, 10,182, 63, 46, 9, 76,123, 19,157, 37,141, 51,207,132,141, 60,185,231,222, 51, +222,174,221,241, 98, 87, 49,103, 80,189, 22,152,124,147, 46,204,226,142,160,165,236,112,201,149,123,158,166,166, 69,146,224, 36, + 49,250,114,214, 68,175, 55,167, 80, 19,195,121,219, 83,179,125,127, 91, 88, 57, 56,198,219,223,114, 30,251, 22,158,206,254, 71, +119, 51, 30,194,216,129, 8, 25,223, 7, 38, 34, 79, 60,204,143,119,160, 5,175, 61,106,140, 11, 46, 57,141,199,102,189,156,246, +200,179, 4, 97, 11, 85, 37,140, 34,124, 35,248,115,142, 67,204, 28, 2,133,168, 19,130, 61, 8,166,141,241, 45,158,105, 32, 88, +230, 24,203, 9, 42,236, 26,232,176,111, 80, 81,111, 46, 18, 61, 91, 97,116, 21,137,159, 58,149, 18,237,197,148,127, 46,240,251, + 33, 68,183,139,245, 49,132,201, 82, 54,159, 15,241, 53,137, 55,103, 47,175,179,250, 25,137, 97,249, 72,243, 56,119, 85,156, 40, +114,105, 26, 26, 19, 95, 82,230,183, 38, 85,232, 0, 60, 71,153,155,100, 1,181,154, 67, 82, 41, 28,174, 78, 46,172,233, 90,240, +147,143, 9,172,175,226, 35, 70, 80, 79,192, 6, 16,229,198, 68,154,159,110, 83,117,166,210,197, 18,215,138, 74, 91,198, 33,240, +152,228,147, 77,242,198,211, 23,214,136, 20, 98, 89, 38, 11, 42,164,215, 74, 98,224, 72,193,135,212, 46, 56, 56, 87, 18, 81,122, + 86, 38, 97,183, 43, 25,103, 33,178,154,193,223, 82, 88,136,226, 69, 56, 38,214, 73,193,144, 16, 7,146,205,137,140, 90, 88,196, + 20,147, 47,238,169,129, 35,130, 73,248, 20,226,144, 82, 10, 44,117, 37, 43,192,163, 78,174,179, 85, 37, 10,163, 24,105,209,212, +235,143, 31,112,117,101,177,132,149,239,174,185, 24, 84, 3,250, 9, 81, 35,140,138, 41, 68, 12,115,166,126, 21,145, 74,156,249, + 81, 44,202, 80, 86,236,154, 86,135, 43,132, 87, 99,230,125, 65,201,161,144, 20, 79, 74, 97, 67, 41, 79,200,170, 23,218, 73, 63, +114, 57, 12,198,120,248, 30,120,158,193, 42,132,129, 5, 35,113,134, 81,166, 72,157,180, 44,165,155,253,158,160, 43,165,212,246, + 74,146, 92, 85,182, 64,156, 82, 41,165,169, 95, 36, 28, 22,227,203,206,189, 44, 41, 97,145, 82,218, 88,217,219,209,106,118,119, + 25,182,215, 46,194, 87, 17, 85, 66,167,183, 52,150, 42, 5, 20, 53, 95,197,162, 91,200, 2,200,196, 58,198,207, 20, 74,163,162, + 14, 69, 21, 73, 46,187, 71, 37, 50,149,150,120, 21,238, 49, 11, 70, 74,151,113, 36,133,162, 90,213, 1, 55, 37,104, 89,254,195, + 25,134, 69, 39,159,203,214,157, 30,102,236,105, 14,132, 29, 70,218, 1,190,248,208, 85,206, 41, 94,187,252,142,229,181,167, 67, +223,137,103, 49,242,172,193,142, 63,131,209,136,118,167,195,220, 70,135, 5,139,143, 70, 26,187, 9,117, 11, 7,205, 28, 2, 61, + 30, 9, 78,164,209, 25,199,202,190,216, 9, 11, 13, 29, 59, 78, 95, 20, 50, 95,218,236,239, 11, 81,207, 79,214, 69,117,130,182, + 85,137,106, 83,145,211,180,244,104,166, 96,180, 79, 74,141, 47,205, 95,165,116,103,165, 43,181,113,166, 90, 91, 38, 59,116,233, + 4,159, 11,117,206,183,106, 51, 34,144,151, 76,160, 72, 83,136,220,100,176,111,202, 22, 79, 31,185, 58,171,188, 36, 30,190,100, +123, 40, 81,198,252,142,199,182, 73,169,209,116, 18, 70,201, 66,229,149,111, 93,150,255,236, 24, 2, 37, 42, 72,106, 16,132, 9, +211,221,136,224,121, 6, 76,156, 15, 31,133, 16, 36,229, 77, 83, 46, 80,154,146,102, 37, 39,212,105, 58, 86, 15, 62,132, 91,196, + 41,203,172, 82, 41,148,231, 20, 39,249,219, 43,145,249, 76,202, 73, 72,161, 65,237,134,224, 77, 97,123, 41,148,122,117,109,239, + 40, 37,196, 57, 21,151,210,172,133, 12,142, 21,231,126, 37,200, 72,138,106, 73,193, 53,202, 61, 23,241,103,129,137,208, 96, 34, +161, 33, 75,209, 82,174,202,207,205,224,252,156,157,174, 78, 66,186, 38,181, 10,196,245, 10,179,107, 45, 22, 25,114,211,173, 92, +178,156,104, 68,107, 60,206, 19,247, 76, 30,199,119,151, 64,149, 73,222,164, 46, 55, 79, 42, 99,134,168,227, 73, 42,213, 74, 77, + 5,211,136,177,158, 78,167, 20,111,147,220, 51,150, 73,149,105,106, 12,105,140,140, 37, 94,186, 73,106, 27, 72, 57,213, 42, 75, +115,238,205,148, 47, 24, 44,133,242,200,147,229,204, 75, 86, 68, 38,159,187,218,149,138, 38,165,125, 11, 70,157,131,154, 20,175, +189,160,149, 10,250,171,251, 94, 84, 68,172, 29,238,132,246, 66, 92,232,145,124, 95, 21,107,199, 69, 1,186,115,194, 39, 93, 91, +213, 81,180, 38,185,183, 58,153, 7, 54,121,225, 22, 41,121,226,121,229, 93,237,130,155,139,134,142,147,126,169,147,251,236, 90, +161,208, 39, 44, 44, 54,109, 94,113,250,124,158,157,123, 26,251,119, 24,162,208, 16,133,138,223, 12,105,205, 89, 10,123,183,129, +182, 64, 6, 50,109, 54, 17,194, 9,141,128,151,156, 60,135,109,209, 9,180,246, 29,192,134,163,140,183,219,204,178, 29,250, 27, +253,236,252,247,237,248, 59, 54,178,116, 94,135,197,199,247,113,224,216,197, 28,152,127, 17, 38,186, 0,198,103, 51,174,207,162, + 97, 63,237, 81, 37,108,239,101, 64, 67,140, 15,145, 49,249, 10,167, 78,206, 76,233,217, 72,143,154,130, 82,222, 66,116, 74,131, +111, 38,168, 79,119,114,132, 48, 45,246,187,203,215,154, 49,196,116,152, 92,121, 1, 95,211, 50,174, 73,124, 47, 70,200,163,172, +116,102, 12,164,231, 36,167,180, 42,151, 88, 91, 8, 31,136, 83,191,204, 36,121,217,249,185,106,166, 92,213,201, 29,181,106, 75, +214,177, 20,108, 87,155,153, 20,201,127, 19,175, 47, 62,215,180,104,142, 37, 74, 0,113, 63,139, 59,231,112,189, 45, 67,220,133, +250,235,121,169, 82,247,166,218,130,253, 24, 23, 64, 41, 70,108,139, 75, 82,234,209,166,112,179,106,154,166,147, 40,246, 36, 8, +107,156,216,186,113, 12,128, 52, 62,155, 67,244,121,218,151, 91,236, 52,143,152, 25, 10, 9, 91,169,215, 76,133, 82, 46, 45, 40, + 38, 75,127, 74, 21,112,135,254, 70, 92, 25,110, 60, 72,234, 20,100, 21, 4,113,242,243,243,197, 56, 15, 57,148,114,115,133,138, +244, 61,205, 39,185,227,220,138,148,201, 81,121, 61,253,244,249, 68, 18, 51, 35, 10, 21,207, 10,201,135,249,121,105, 69,237,167, +174,156,211,146,183,155, 27, 16, 21,190,142, 20,209, 90,141,194,164, 84,175, 73, 60,121,173,220,182,218, 43, 46,122,163, 81, 20, + 7, 56, 44,113, 1,153,200,118,135, 2, 50,148, 69, 39, 31,207, 93,204, 76, 65,225, 79, 6,191, 23,171,205,149, 61,235, 44,151, +223, 41,106, 35, 61, 92, 29, 41,167,241,149,174,213,173,230,216,117,218,206,179,235, 50,168,165,218, 59,239,242,170,167,242,222, +165, 59, 4, 51,165,242,117,141, 20, 39,214,219, 53,127,180,108, 4,232,244,148, 69, 97,254,231,200, 82, 87,149, 30,220, 52, 68, +138,153, 58, 74,165,103, 91, 86,132,237, 64, 56,115, 78,196,242,229,115,105,247,207, 69,102,205, 34,244, 7,232,143, 44,139,103, +135, 60,186,120, 62,118,252,116,204,196,191,129, 55, 14,166, 31, 16,130, 16,150,207, 9, 24, 88,180,132,103, 39, 22,208, 57, 56, + 76, 48,118, 0,130, 22, 97, 19,238,252,137, 97,203,215,183,208,215,106,115,204,192, 28, 94,247, 72,196,107, 87,109,101,232,188, + 47,177,103,168,159, 6,175,194,180,246,178, 95, 59, 4,161, 65, 59,109,140,134,136,167,142, 39,213,139, 88,166,211, 35,166,245, +182,154, 42, 55,158,174,222,204, 17,169,238,153, 57, 45,227, 64,167, 83,227,254,200,105,120, 63,174, 10, 23, 97,109, 26, 87, 17, +196, 40, 34,113, 61,247,180,225,135, 77, 74,153,138, 73,232,115, 30,120, 54, 94,128,108, 90,195, 60,177,138, 83, 98, 89,170,172, + 10,205, 65,156,203,242,146, 27, 20, 37, 22,171, 73, 94,162,188, 8,142,118,129, 49,170, 14,224, 36, 96, 52, 36,138,148, 72, 98, + 6,189,113,140,145,180,192,138,173, 8,173,169, 3, 11,164,197, 58,164, 80, 60, 54, 39,192, 24,167, 2,124,158,198,150,239,171, + 14,178,160, 5,103,184, 88, 87,219,221,198,150, 66, 11,174,161,175, 78, 60, 58, 55, 26, 82,151,219, 20, 85,154,228,141, 65,140, + 11,203,166,136,130,164,215,102, 75, 48, 95, 98,160,217,128,104, 66,227,231,107, 92,194,160,100,121,177,214,137, 27,247,246, 74, +196, 49, 62,186, 39,168, 56,243,128,138,178,214,210, 53,153, 53, 47,155, 58,201,203, 44, 85,129,243, 73,222,192, 2,164,158,233, +102, 3, 98,123,236, 79,102,252,133,169, 65,106, 36,153, 83,201,179, 80,219,181,224,151,115,202,179, 33,147, 48, 68, 16, 90,199, +124,149, 74, 35, 65, 75, 53, 14, 84, 42, 10,213,148,225,218,174,240, 68, 85,153,208, 34,194, 64,197,184,229, 99,117, 49,134, 85, +167,132,187,123,157,119, 57,142, 44, 37,244, 75,123,112, 7,122,237, 63,105,206,121, 30,175,203,144, 67,149,105, 36, 57, 39, 72, + 99,186,109,101,121, 37,161, 80,225,114,218,181,193,186, 95,131, 28,145, 81, 45,148,158,237,122, 51,164, 59,252,225,206, 35, 45, + 64,218,177, 67, 49,175, 97,152, 45,227,244, 53, 71,105, 74,135,168,181, 15,207, 68,188,180,207,103,116,201, 4,207,176, 28,111, + 91, 3,255,224, 67,136,236,199,138,226,181,149, 99,151,142, 19, 46, 60,145,253,163,131,140,237,127,140, 96,226, 32,131, 18,240, +180,244,177,101,119, 27, 95,134,209,185,125, 60,161,134,237,123, 12,250,189,185,172,238,219,203,129,179,190, 66,199, 95, 68,147, +163,233,216, 93, 4,161, 65, 34,147,144,171, 37,169, 17, 97, 75, 1,200,222,181,219,187,131, 3, 51, 84,127, 51,208,145,218,117, + 79,167, 25, 13, 87,157,242, 64, 51, 45,120, 60,243, 2,201, 41,252,238, 98,248, 26, 37, 10, 57,142,167,155,164,185, 75,132, 98, +109,148,177,197, 51, 54,182,198, 41, 49,110, 17, 20,183, 60,162, 85,136, 84, 48, 73,180,216, 74,226,181,102,229, 69,139, 86,165, + 45,248,201,121,115, 4, 43, 46, 44,170, 5, 75, 53, 45, 41,170,145, 16, 38,228,185, 66,153, 84, 7,226,182,165, 37, 52,135, 18, +181,224, 49,152, 4,246,178, 20, 25,186,133, 20,172,244, 50, 85,157,241,187, 95,126, 55,119, 94,187, 38, 77, 41,220,167,221, 85, + 32,179,177, 29,207,217, 36,247,193,170,100, 41, 76, 74, 94, 45,174, 80,194, 71, 26,113, 82,118, 56,145,197,191,141, 19, 30, 80, +129, 80, 77, 22,138,144, 66,230, 43, 78,106, 89,145, 82, 84,184,150,236, 30,202,100,170, 55, 83,106,105, 29,120,233,225,202, 72, + 54, 25, 10, 65,240,110, 5, 25, 15, 24,155, 86,182, 71, 44,109,178, 38, 18, 73,222,181, 36, 16,123,185,227, 90, 21, 12,154, 25, + 92,198, 96, 18, 3,203, 70, 49,185, 79, 92, 37,227,246,239,235,170, 7, 47, 80, 46,120,156,221, 59,155, 60,195,156,142,175,101, + 67,193, 57, 71, 45, 25, 16,197,103,159, 67,232,210,117, 31,243, 74,107,105, 40,167,171,244,110, 90, 49, 47, 85,186, 78,147,149, +174,237,157,210,179, 41,148, 90, 72,131,175, 66, 73,202,222,116,133,178,234, 85, 72,167,107,102,245,130,230,187, 75,187, 21,203, + 6, 87,118,175,171, 40, 44,209,229,109, 87,121,148,197,162, 84, 61, 23,107,157,172,202,158,228, 92,148,146,155,233, 22,207,113, + 11, 45, 21, 12,168,210,185,136, 7,195,109,143,214,254, 49,130,125, 59, 57,248,244, 60,188,214, 78,212,179,244,139,176,170,161, + 12, 30, 59,202, 83,179,143,167,181,115, 9,236,217,198,196,248, 78,102,249,109,150,159,118, 20,123,155, 47,103,223, 83,219,104, + 29,216,141, 4, 33, 13,223, 50, 28, 14, 32,195,187,232, 99, 63,152, 38, 71, 3, 7, 6,224,150,189,194,130, 7, 6, 88,190,224, + 25,246,190,244, 33,232,251, 69, 36,236,199,250,138, 72,140,163,106,164,160,157, 66, 25,222,110, 3,140, 41, 67, 36, 5,162,111, +102, 37,233,228,165,223,166,168, 18, 92,116,229, 38, 1, 95,186,190, 47,231, 62,112,104,100,185,195, 84,144,198, 87,201,153,210, +105, 92, 78, 85,136,148, 44, 46,154,130,208,170, 10,161,155, 30,148,150,102,205,103,171, 11,211,249,146,230,102,199,139,159,209, + 98, 19, 22,155, 21, 35,145,164,152, 75,126,115,172,230, 44,250, 66,147, 4,135,132,150,230,209,231,236,244, 36,150,107, 98, 20, + 33, 82,186, 66, 0,185,103,152, 99,103, 89,247,176,146,162,202, 76,140, 4, 5,136,153,203,185,215,161, 18,103, 0,216,220,156, + 41, 64,234,160, 24,161,212,101,172, 24,203, 23, 23, 90, 75,243,135, 43, 34,117, 25,116, 47,105,101, 62,201,140,136, 94,121,148, +241,162,110,241, 5,124,207,208,178, 85,211, 69, 28,162,162, 99, 40,165,177, 86, 21,199,251,207, 59, 88,153,228,121,216,180,195, +153,184,158, 87, 94,237, 94, 74, 6,128, 22,106,207,118,219,194,169, 33, 23,167,200,153, 66, 23,177, 94,165, 86,141, 74, 18,214, +208,174,100, 24,113,242,122,187, 98,236,218, 35,159,191,202,195,198, 45, 9,171,153,113,139, 38,196,198, 40,221,206,100,121,237, +170,105,200,200, 9, 86,216, 60,189,179, 80, 94, 54,237, 7, 32,141, 4,242, 13,200, 57,114,206,140,208, 42,165, 84, 36,227,117, +115,245,220,128,172,230, 92, 2,119,177,235, 81,169,173,208,170, 72,232,102,198, 83,173,220,243,214,185, 37, 64,181, 20, 34, 40, +122,171, 85,228,213,233, 41,247, 46,104,190,220,113,172,208,118, 85, 10,161, 2,205, 72,122, 73, 57, 98,233,206,212,168,124,183, + 92,198,187, 76,221, 98,182, 96,196,232, 84, 37,113, 75, 28, 18, 45,246,129, 44,132, 57, 42, 57, 8,241,231,134,129, 61, 65,131, +159, 60, 61, 78,240,204,247, 25, 25, 93,134,118, 26,248,157, 22, 7,109,136, 31, 25,206,246,132,229, 75, 70,249,201,252, 89, 28, + 24, 63,133, 32, 58,149, 51, 6,124,154, 39,244,241,228,214, 81,198,134,159,193, 70, 17, 62, 66,199,135,221,251, 58,200,254,167, +192,132, 64, 31,138, 50, 87, 96,119, 3,190,181,219,231,165,207,180, 24, 56,113, 43, 81, 99,130,190,102, 63,194, 1,208, 14,129, + 85, 52, 12,147,116, 54, 42,250,235, 84,144, 79, 43,205,149,242, 58,166, 83,123,229,211,216,164,235,152,170,213, 36,186,170,112, + 78,146, 13, 52, 89, 20,102, 90,240,251,115,141,173, 43,248, 49, 92,109,179,197,219,230,170, 54, 47, 85,170, 78,143,180,100,113, +143,180,196,234,214,194, 59, 83,128,219,189, 76, 25,197,223,133,169, 7,238, 84,166,210, 36,101, 46, 94,164, 99,104, 62,204, 60, + 84, 41, 88,163,182, 96, 81, 41, 70,163,132,196,156, 67,226,105, 42,149,181, 65,172,116,197,235,234,125,238,214,139,239,229, 61, +123,165,170,100,185,194,179,177, 39,111,226,243,141,180, 72,110,203, 74,212,104, 21, 72, 93,104, 81,237, 52,114,113,107,221, 23, + 1,124, 45, 84,217, 43,131, 87,197,223, 33, 79,117, 3, 75,212,137, 50,143,222, 22, 56,167, 78,211,142, 10,194,141,150, 82,147, +112, 72,134, 93, 53,191,157, 92,220,120,243,102,220,155,188,148,103, 27,207, 19, 27, 23,136,209, 98,174, 48, 14,123,223, 85, 2, +101, 38,123,161, 99,153,181,133, 69,182, 24, 31,207,155,145,136, 3,103,171,235,118,246,120,197,164, 96, 8,228,200, 76,134,198, + 88,155,228,224,171, 83,235, 57, 47, 59,155,190,224, 90,136,183, 11,120, 9, 53,212,134,184, 29,226,172, 10,106, 45,141, 62, 47, + 54,192, 38, 2,202, 29, 89, 92, 88,220,205,108,112, 21, 80, 74,216, 41,195,239,121,125,241, 44,205,165, 20,159, 46,161, 19, 42, + 61,188,192,170,212, 63,167, 30,126, 69,220,187, 26, 97,233, 13,155, 87,213,196,159,177,114,207, 72,144, 37, 37,161, 76,178, 61, +164, 21, 7,212,185, 71,147, 51,219, 29,214,190, 76, 93,122,182,216, 16,103, 58,241,119, 55,239,195, 22,120, 61, 89,183, 74,201, + 43, 96,150,203, 58, 15,120,240, 76, 96,216,252,163, 38,175, 60,238,110,100,225, 44, 90,125,103, 17,142, 5,120,102,152, 78,195, +195, 68,194,194, 78,196, 49,205, 9,188, 57, 77, 26,125, 13,124, 35,108,217, 59, 76,107,236, 96, 60, 87,141, 79,211,192, 46, 59, +155, 61, 79, 15,211, 28,219, 14,125,125,184,140,170, 1, 31,182, 5,194,174, 29,134,163,198,135, 25, 61,106,148, 48, 24, 64, 91, + 99, 68, 81,135,208, 38, 45,185, 45,137,139,210,168,190, 65,211,128,224,101, 50, 45, 40, 51,199,233,187,192,243, 25, 43, 86,113, + 80,152,105,148, 46, 62, 18, 28,186,228, 34,124,155, 48,221, 35,155,228,116,167,182,185,198, 73, 86,121, 81, 16,205,188, 80,147, +246, 77, 47,188,136,154, 89,140,170, 82,202,131,201,211, 4, 68, 83,239,150, 12,226, 86,113, 84,187,211,102,213,115,212, 68,218, +204,197, 96, 98,159,218, 45,124,161,105, 33,152, 34, 93, 74, 85, 81,111, 1, 42,150, 48, 24,193, 34, 52, 12,133, 62,229,142,250, + 45,228,152,139,148,253,204,226,245, 72,230,179,169,147, 83,223,157,135, 94, 69,249,112,137,198, 90, 70,253, 40, 38,121,148,139, +213, 24,156, 24, 55,121,188, 87, 11,133, 67,138,197,114, 44,208,214,220,227,207, 82,209, 42,216,246,214,177, 54, 76,242,108, 92, +213,111,146, 16, 74,215,117,165, 29,203,146, 49,140, 47, 52, 17,130,192, 38,173, 98,221, 90,254, 46, 55,130,130, 71,216, 29,192, +173,240,174, 28,163,173,171, 11,150,228,165,111,187, 10, 71,217, 18,188, 39, 83, 87,174,178, 25,103, 95,179, 54,194,154,117, 73, + 11, 51,229,233, 42,162,184,240, 76,137,174,167, 10,198,224,251, 94,108,216, 70, 30, 54, 12,243, 16,145, 64,100, 60, 8, 59, 96, +139, 30,153, 58,121,133, 85,173, 69,164,212, 35, 92,122, 40,199,110, 6, 57, 93,243,190,100, 29, 20, 58, 90, 20,186,193,149, 85, +189,227,253,103,134,157,230, 33, 30,237,213,128,164, 28, 34, 40,132,134,122, 67,246,197,120,187,187,170,197, 78, 74,252,147, 60, + 7,181, 89,103, 8,140, 7, 21, 45,158,178,118,173, 69,160,110, 6, 36,102,201, 83,172,122, 25, 28, 50, 77, 24,182,107,151,244, +174, 26,199,208,114,137,117,121,163,173, 28,201,138,103,175,143,210,233, 19,190,248, 84, 31,242,207, 99,188,228, 85,183, 99,151, +236,101, 98,209, 42,188,177, 33,204,200,110, 34,246, 51, 33, 17, 13, 85,164,165, 4, 65,135, 97, 27, 48, 54, 30, 96, 58, 33, 94, + 35,169,207, 49,208,224,201,225, 38, 19, 79, 61,194,108,111, 2,149,217,133, 55,184, 41,202,136,194,238,131,194, 49,157,144,150, +134,116, 90, 17, 81,103, 2,212,226,249, 94,236, 60, 70,227,149,188,154,110,244,169,183,106,123, 78, 68,241, 10,164,164,203,251, +159, 6,239,162,119, 67,214,233,229,170, 79, 47,197, 77,103,198, 29, 0,252, 64, 12, 97,182,104,216,204,123, 78,171,130, 89, 85, + 39,118,161, 93,117,213,109,151,119,154,215, 97,207, 40,225,154,123,220, 66, 94, 46,149,180,131,155, 74, 33, 90, 91,172, 53,164, + 93, 49,148, 12,218, 78, 54,138,240,146, 56,119,152,183, 28,118, 61,180, 89,253,204,106,140,227, 31, 12, 24,235, 72,146,127,222, +125,155, 99,214,122,162,192, 52,237,197, 45,184,119,192, 75,206, 32, 75, 93,115,202,153, 23, 10, 66,118, 21,130, 42, 86, 83,211, + 18,172,155, 67,190, 9,137, 48,247,251,138, 29,128,156,158,205,226,120, 78, 46,228,175, 78,250, 97,138, 54, 20, 17,131, 60, 29, +204, 20, 12,155,164, 2, 85, 87,186, 77,209,200,144,202,142,104, 20, 27,171,132,157, 56, 15, 90,242,153,145,118, 56,147, 41, 90, + 25,230, 42,198, 56,237, 68,181,247, 75,212,229,245,211, 77,175,215,210, 74, 45,189,114,127, 93,146,163,135,223, 55, 0, 81,139, + 48,232, 64,134, 61,165, 80,180,113, 24, 32,249,113,173,106, 33,235, 34, 37,209, 25,201,183,245, 4,212,152, 2,108,234, 9,132, + 86, 8,108, 17, 74, 23,103, 37,202,154, 4, 17,103,172,104, 57, 68, 80,202, 69, 76, 25,241,170, 74,177, 7,120,117, 40,163,144, +146,231, 62,230,172,206,128,102,138,186, 11,174,119, 26,209, 20,112, 38,167,187,109,165,114,119, 20,161, 86,146,229,170, 53,108, +188,155, 5, 27, 98,195, 14, 81, 39, 32,138,148, 80, 27, 88,105,162,198, 7,241, 81, 19,123,132,198, 6, 52,180, 69, 67,198, 48, +158,128,223, 0,211,160, 80,141,208, 41, 96,164,184, 37, 39,181,146, 27,149,133, 82, 20,183, 95,223,164,202, 93, 15, 69, 11,149, + 58,225, 41, 82, 88,128, 50,131, 75,156,240, 74,178,174, 14, 26,101,196, 87, 62,255,147, 65, 46,216,216,226,149, 43, 55,226,189, +108, 11, 59,102,191,130,131,205,227,160,189, 20, 13,148,168, 61, 78,203,142, 33, 97, 64, 59,104, 97,131, 54,190, 68, 8,134,121, +253, 30,207, 50,143, 39,127,248, 67,250,198,158, 68, 7, 6,186,174,196, 32,116, 84, 25, 15, 21,172, 79, 59, 48,116, 38,198, 49, +209, 4, 13, 79,233, 68,134,112,124,130,102,120, 32,230,249, 20,194,132,110, 68,123,166,132,179, 25, 98,214, 58,133,247, 63,221, +184,118, 85, 75,183,138, 90, 11, 93,225,197, 25,145,251,102,142,199,251, 13, 15, 66, 47,241, 6, 45,113,220,131,156,197,109, 82, +200,210,129,147,133, 34, 52, 25, 51,164,147,222,211, 14,228, 22,165, 74, 37, 89,176,108,170,252,196, 98, 18,111, 61,253,222,166, +234, 90,210, 86,174, 85, 23,159, 67,235, 94,162, 36, 99,163, 35, 66, 85,240,140,208,151,192,251,109,141,227,206,162,195, 48, 10, +102,192, 99,169,111,216, 19,194,238, 12, 42, 79,141, 12,237, 34, 73,197,139,179,100,101, 78,211, 20,191,168, 16,235,142, 95, 99, +155,197,155, 83,104,188,168,184, 82,245, 36, 37,184, 60,245,247,141,142,195, 42, 74, 0, 0, 32, 0, 73, 68, 65, 84,113,210,224, +196, 7, 99,227, 20, 42,173,110,105,234, 26,180,110, 33, 27,205,122,126, 39, 4,190,180,118,128,230,134,148,100, 41,112,148, 0, +254,132,120,227, 16, 0, 51,181,238, 66,171,189,242,191,203, 70, 3,208,137, 82, 82,161,102,198, 86, 49,132,210, 3,197,112,186, +208,187,253,175,186, 94, 20,205, 43,121, 85,190, 48, 78,254,170,219, 34, 54,203, 67,151, 98,178,183,155, 31,173, 10,226,121, 12, +246,123, 68, 19, 16,166, 13,124, 92,131, 17,151,100,217,173,196,221, 34, 35, 25,201,211,198,232,151,205,194, 6, 78, 92, 93, 19, +195, 39, 59,151, 10,219,222,173,119, 80,232, 3, 95,221,175, 93, 93, 67,139, 50,193, 67, 43,171,223, 21,148,111,153,225, 45, 84, +247,129, 47, 35, 41,226, 34, 65, 83, 85,195,235,194,229, 43,218,209,186,241,120, 11, 81,135,176, 53, 78,187, 3, 29,127, 46, 58, +235,120,250, 23, 46,102,224,232, 69, 44,152, 55,143,193,217,179,105,244,247,227,123,134,102,195, 35,180, 48, 62,222, 98,223,158, +125,236,127,230, 41,130, 61, 63,161, 49,190,147,134, 30,192,247,129, 70, 31, 34,126,158,182, 91, 32, 24, 86, 25, 35, 90,232, 89, +160, 93, 57,214, 37, 2,159,150, 75,205, 76,163,121,108,185,146,148,118,143,109,113,137,167, 90,104,217,236,242, 36,230,250,194, +184,177,124,101,255, 0,143,222,215,224,229, 79,110, 97,241, 9, 79,113,236,162,133,112,212, 98,198,103, 31,203,196,156, 37, 76, + 4,199, 48,113,160, 77,208,222,143, 26, 31, 43,150,121,179,125, 90,205,126, 54,127,239,199, 68, 79, 63, 64,223, 64,211,113, 59, + 74,118,179,130,105, 40, 65,227, 40,198,219,125,132,173,221, 72,212, 33,210,128, 3,173, 38, 28,220,143, 48,145,244,113, 47, 71, +170, 53,207, 74,154,186,243,234,228,234,110,134, 88,119,181, 66,159, 41, 90,208,219,179,174, 98,240, 31,169, 10,115,190, 70, 17, + 98, 99, 37,139,128,111,200,242,102,173,166,177,219,180, 68,164,117,226,196, 6, 43,126,108,233,138, 0,227,216, 48, 68,147, 2, + 38,190, 3, 31,102,113,200,114, 5, 44,117,234,190, 59,249,176, 70,242,197, 46,114, 99, 20, 78, 29,240, 8,205,200, 45, 38, 81, +182,145, 53,132, 25, 3, 63,237,121,237,225, 1,237, 81,101, 75, 98, 51,248, 5, 15, 57, 54, 16,242, 42,116,249, 11,168, 78,209, +237, 70, 90, 64, 39,105,102, 3,197, 30,208,226,120,171,166, 4,218,231, 16,100, 17,172,203, 60,180,228,223,128, 56, 3,193, 79, + 60,172, 64,187, 33,253,158,149,169,157,181,208, 36,222, 98,170,184,194, 10, 31, 52,231,128,120,153,130,204,153, 89, 78,120, 43, + 37,215,153, 70,194,240,142,138,229, 53,165,187, 31,121,252,175,137, 59, 55, 41, 57,129,196, 65,112, 68,123, 23,141,113, 73,140, +147,226,159,147, 36,141, 22, 66,169,226, 37,219, 70, 93,222, 97, 57,134, 38, 89,186,155, 32, 26, 96, 91, 17, 65,104,179,122,229, +234, 64,203, 56, 21,245,122,166,206,217,244, 57, 88, 68, 12, 54,201,113,183,149,165, 85,243,119, 32, 67, 98,164, 88,137,207,237, +153,158,147, 42,165, 64,214, 80, 39, 60, 81,238,185,158, 87,205,163, 59,174, 94, 80,214, 41,154,145,239,111,210,243,235,153,251, +238,192, 99,197, 72,227,244, 72,118,165,103,219,101,212, 68,109,162,137, 49, 38, 58, 74,187,185,128,193,165,103,176,248,132,147, + 56,118,217,113, 44, 93,122, 12, 75, 22,206,225,232,217, 77, 6, 61, 75, 67, 2,196, 70,216, 48,128,168,141,141, 34, 90,246, 40, +118,143, 45,228,153,253, 39,242,147, 61,227, 60,243,236, 62,118,111,223,198,196,206,173,248,163, 59,232, 99, 20,211, 0, 77,154, +147,116,231,241,107, 41,215,189, 87,199,248,222, 49,123,165, 34,206,223, 19, 35,174,122,233,139,234,194, 56,168,128,170,230,181, +252, 29, 99, 61,221, 99,208, 24,162,126,229,241,200, 99,235, 51,179, 57,250,217,136,197,125, 59, 56,238,168,167, 57,110,201, 15, + 56,122,233,124, 38,230, 30,199, 72, 99, 33,131, 71,205, 70,165,143, 70, 16, 48,113,112, 47,223,254,222,118,246, 62,249, 4,179, + 6, 60,212, 52, 43,207, 63, 2,250, 85,153, 55, 23, 38, 6,143, 99,226, 64,131, 96,124, 24,130, 9,198,188,136,131, 19, 6, 51, +113, 32, 70, 84,147,120,122,119, 85,229,201,160,107,153,164,107,222,244, 83, 9, 39,253,106, 6,129,245,238,108, 75,157, 22,115, +255,144,226, 5, 51, 72,176,243,213, 74,210,121, 79, 19, 5,234,176,170, 19, 22,178,117,171, 89,105, 90, 67,220,162, 26,198,109, + 71, 61,104,120, 66,179,225,225,117,226,106, 68, 45,193,233,112,230, 64,242, 78,106, 86, 1,198,118, 78,216,106,238, 21, 26,199, +243,211, 66,151, 49, 23,159, 52, 25,251,189, 45, 30,113,227, 79, 3,158,208, 32,128, 8, 34, 79, 18, 50,158,147,182, 37, 41,187, + 94, 10, 61,201, 37,233, 35,175, 18,123,187,190, 19, 51,119, 91,203,186,173,100,138, 70,124, 9,126, 37,239, 99, 46,133,239, 36, +203, 30, 72, 17,141, 16,139,134,234,168, 78, 50,182,187, 56,125,206, 21,122,146,219, 98, 62,130, 37,194,171,180, 42,243, 24,173, +193,154, 70,220, 81,205, 6, 68, 65, 88,153,225,131, 42,234,249,244,249, 74,212, 10,227, 56,115, 66, 22,236,154,199,137, 66,242, +147,243, 9, 18,244, 32, 93, 34, 35, 39,222,175, 90,209,184, 33,195, 52, 53,111, 86,226,244,146,239, 98,146,138,155,110, 86, 58, +117, 17, 20, 15,207,143,189,108, 27,106, 92,248,197,113,185,165,171,162, 90,130,159,152,120,190,142,181,163, 4,173, 41, 26, 99, +229,180,202, 74, 37,164,138,248,125,120,126, 31, 54,236,160, 97, 43,231, 77, 72,143,190,230,101,228, 67,242, 82,192,229, 8,110, +106,185,184, 76, 18, 17,147,161, 2, 86,109,169,175,120, 9,173, 40,199,213, 93, 94, 64,185, 36,177, 20,153, 94,162, 21, 54,151, + 19, 34,210,170,244,164, 30,121,246,110, 9, 99,232, 54, 16,109,235, 32, 99, 7, 71,153,104, 46,100,240,184,243, 56,225,228,211, + 56,249,228,151,114,234,138, 37, 44, 57,170,201, 28,198,105, 70, 19,104,103, 63,157, 86, 64, 39,178, 4, 22, 66,245, 8,130,144, + 78, 24, 55, 32,241, 4,134,162,144,161,190,128,211, 79,128,225,101, 11,121,234,164,163,217,190,251,100,158,126,122, 15,195, 59, +119,210,217,245, 20,222,196, 78, 26,118, 20,207, 36,115, 69, 76,130,178, 36, 46,136,141,179, 96,140,231, 33,126, 63, 42,254,180, +150,235,174,188,244,233, 4,237,165,236,181, 79, 2,229,103,117, 55, 36, 49,248,108, 97,110, 64,220,199, 99,174, 7,161,167, 12, + 71, 30, 59, 59, 3,252,251,179, 48,127,135,101,201, 35,123, 89, 56,119, 39,115,231, 53,105,206, 30,100,212,246,179,107,127,200, + 19, 59, 14,114, 96, 52, 96,214, 96,127,204, 73,208,106,229,213,177,176,212, 11, 89,112,236, 28,246,115, 60, 7,247,238,161, 61, + 62,204, 44, 27, 48,222,104, 48, 49,106, 49,157,145, 66,170,141,184,239,138,244,152, 55,101,164, 18,166, 17,192,155,185,116, 79, + 83,153, 73, 36,252,240,203, 33, 30,202,207,154,113, 72,238,133, 90, 55,205,201,137, 17,168,198,221,192, 36,107, 0, 19, 65, 20, +179,118, 35, 4, 76, 3, 99,132,254, 70, 68,219,198, 69, 95, 12,185,215,143,211,149,205, 58, 85,200,221,243,118,123,131,155, 44, +206,146,120,242,226, 22,177, 33, 47,147,234,144,186, 80,139, 21,240, 36,194,104,188, 56, 15,122, 74, 43, 18, 90, 5, 30, 64, 84, +104, 81, 24, 38, 49, 95,113,160, 43,181,138, 53, 36,117,217,211,133,188,218,171,112, 95,208,178,242, 86,153, 60,245, 44,125, 17, + 83,175,189, 76,179, 74,219, 70, 54, 76,190,192, 71,105,203, 92,242, 38, 93, 57,251,216, 96,165,129,213, 32,107,109, 91, 54, 50, + 12, 74,100, 60, 60, 95,240,141, 98,140, 31,215,117, 14,221,220, 2,205,194, 48, 26,180, 48,141, 89,120,205, 6,173, 86,152,165, +109, 69,101, 62, 88,242,111,152, 20,100, 49, 20,179,218,141,147, 42, 89, 80, 44, 66, 33,230,155,101, 80, 36, 77, 99, 32,202,242, + 11,187,136,173, 78, 60, 66, 74, 5,127,140, 15,126, 18,223, 16, 79, 18, 59, 68,187, 60,160,170,250, 53,146,223,216, 66, 44, 29, +173, 74,189, 41,121,255,214,162,226,209, 28, 24,164,209,104, 18, 69, 77,218,163, 22, 27,181, 29, 52,163, 90, 41, 90,151,197,223, + 85,205,172, 4, 88,150,200,130,190, 64,211, 64, 96, 99,114,100, 49, 36, 80,172,131, 46,238,172, 41,229,112,139,131, 70,136, 19, +158,233, 62,231,110, 36, 64,122,120,178, 61, 11,242,148, 99,252, 18,215,158,136,198,247, 51, 50,218, 34, 56,106, 57,199,191,246, + 45,156,125,222,121,188,108,197, 82,150,207,111, 50, 39, 26, 33, 26,219,207,200,190, 9,134,219, 33,161, 10, 65, 16,196,104,146, + 24,252,102, 63,226, 9,157,132, 32,226, 53,125, 66, 11,157, 78,135,118, 96,209,150, 69, 59,227,156, 64,192,178,197,134,177, 37, + 11,216, 27, 29,207, 83,251, 94,201,206,157,251, 24,222,181,155,241,125, 59,161, 51,142, 70, 97, 92,130,218,239,195,248, 13,164, +111, 22, 54,138,208,145, 61, 52,199,158,194, 55,227,136,223, 87, 9, 73, 87, 81,168,220, 85,192, 78,197,152,103,242,142, 95,221, + 60,148,252,253,233, 46,201,155, 43, 76, 79, 5,207,131,126, 47, 94,115, 71, 34,195,222,118, 63,222, 78,101, 96,167,197,151,113, +218,209, 40, 45, 53, 52, 26, 62,131,179, 26, 57,210,214, 67,194, 64, 88, 49,175,133, 44, 93,193,211,195,243,153, 24,222,142,104, +128,223,244, 56,168,179, 8, 15,236,163, 63, 26,129,134,223, 29, 74,203,238,131, 48, 89, 9, 56,153, 84,193,235, 33, 41,202,242, + 87, 58,211, 66, 53, 61,176,246, 67, 32,225, 31, 22, 13,159,244,182,180, 9, 28, 23,191,252, 30,234,116, 46, 43, 50, 93, 85,115, + 79,222,164,105, 79, 42,116, 16, 2, 27, 37,201,219,208, 52, 74, 35, 41,210, 21,166,141, 68,212,118,117, 9,115, 11,195, 74,197, +164, 79, 97,157, 60, 46,106, 29, 67, 49,207, 62, 55, 89,197,182,216,224,136,210,127,109,220,171, 60, 45, 73,155,182,208,243,146, + 10,120, 54,189,102, 33, 46,176,227,240,251,210, 6, 51, 97,242,186,102, 61,209, 75,105, 35,170,233,184, 57, 67,185, 60,217, 10, + 10, 93,156,156, 88,103,107,155,230,202, 38, 11,105,250,217, 36,202,209, 80,234, 92, 71,146,246,151,133,144,147,122, 2,120,152, + 89,179, 24,208, 3,180,199, 66, 34, 49,249,114,227,182,198,180, 17, 70,189,216, 19,177, 97, 66,122,144,130, 17,146, 57,119, 86, +105, 7,109, 6, 61,155, 25,123, 6,137,171, 1,170, 22,121,186,133,214,174,241,119,161,246, 10, 33, 72, 87,171, 66,183,227, 81, + 30,205,245, 8, 20,140, 88,135,220, 87,225, 8,146,107,103, 69,227,114,198,137,199, 37,145,147, 25,237, 40,101,117,223,230,178, +178,239,145,120, 90,149, 51, 79,137,220,101,140, 36, 25,108,138,103,226,108, 54,141,186, 13,146,130,178, 46, 84,209,172,170, 82, + 87, 36,149,149,219,157, 70,170,116, 34,205,230,117,209, 27, 79,158,145,161,208, 55,184,224,165,187, 36, 61,215,115, 87,167,201, +168, 99, 76, 11,101, 82,153,118,245,133, 40,123,165, 82,136, 51, 23, 21,190,136, 18,142,143, 48, 60, 50,129, 46, 60,153,149, 23, +188,142,243,207,127, 21,171, 78, 93,206,209,118, 31, 19,123,118, 48,242,236, 4, 79, 77, 4,116,194,144, 32, 8, 18,230,183, 97, +162, 19, 98, 4,250,155,125,120,158, 71, 24,217,140, 15, 96, 52,130, 40,138,139, 97, 25, 67, 24, 89, 90, 54, 46,138, 18,182, 35, +252,104,156,151, 14,118,120,217,241, 3,180, 94,186,132,225,232, 37, 28,104,121, 4, 97,204,109,233,235,235,163,209,108, 48,107, +160,129,223,108, 50, 60,114,128, 39,159,218,201, 99,255,254, 99,198,183,252,144,230,196, 86, 76,211, 71,105, 82,110,226,220,133, +204, 22,244, 86,202,186, 47, 41,119,157, 58,136,172,147, 98, 1, 76,210, 41,142,188,149,168,198,107, 75,127,178,184, 88, 18,132, + 67, 61, 76, 3,102,201, 36,170,197, 57,191, 16,232,235, 68,156,120,172,114, 96,222, 74, 70,119,132,248,122,144,190,166,143, 14, +248,236,219, 55, 8,251,127, 12, 50, 14, 50,200,228,204, 65,153,194, 56,154,118, 85,152,105,235,194, 66, 54,209,148,251, 72, 15, +158,200,243,227,173, 79,117, 40, 63, 74, 20, 67,250,206, 89,180, 64, 26,210,174,188, 72,173,156,173,105, 46,177,175,138,132, 73, +227, 20,103,204,188,131,101,106, 24, 72, 22, 79, 79,219, 88,106, 6, 31,187, 17,107,231,119, 39, 70,168,170,153,178,119, 19,207, +220, 5, 58, 72, 46, 63, 32,111,236, 18,185,113,126,135,217,106, 4,124, 79, 16, 11,109,155,167,166, 8,105, 88,162,216,124,165, +192, 56,206,140,160,132,187,175,226,144,104, 52,110,244, 42, 30,104, 16, 87,146, 87,227,152, 35, 9, 94,145, 16,141,108, 85,252, + 91, 20,207,109, 61, 42, 49, 58, 98,203,239, 69,218, 85, 78, 67, 76,231, 0, 13, 99,233,216,144, 16, 15,227,249, 25,167, 65,156, +187,102,195, 0,171,130, 73,186,241,137,209, 2,155, 63,123,238, 6, 52,232, 48, 30,100,184, 8, 81,218,129,173, 92,251,220, 53, + 85,148,202,118,214, 90,138, 27, 22,217,167,233,243, 78, 16,161, 40,192,155,187,132,161, 1, 97,124,247, 51, 4,234,119,117, 14, + 43,151,137,201, 9,155, 74, 16,134, 73, 43, 94,215, 61, 46,119, 95, 18,196, 51, 73, 18, 72, 84, 17, 56,179,206,155, 91, 21, 27, +238,134,142,213, 70,216,246, 56,210,236,195, 6, 33, 54, 12,226,218,241, 85, 68,176, 52, 39, 89,170,188,216, 10,248,189,196,174, + 78, 21,174,149,180,132,109, 85, 99,151, 10,168,189,100, 52,168,147,173, 32, 78,129,103, 41,212, 44,232, 78,249,114, 99,243,229, +134, 44, 85,229, 98, 11,222,121,250,142,119, 70, 25,222, 55,130,157,127, 18,175, 88,243, 75,188,254,130,255,192,203,151,205,225, +104,187,159,131,195, 79,176,101,207, 1, 38, 90, 45,194, 32,192, 70, 17,157, 48,194, 90,197, 75,230, 34, 94,131,230,192, 32,126, +179, 17, 23,137,194, 67,163, 0,181,150,137, 72,177, 81,128,111, 44,129, 85,162,100, 78,196,125, 42, 4,235, 55, 25, 9, 61,250, +198, 34,102,133, 19,156, 60,219,208,119,244, 92, 76,115, 22,125, 13, 67,163, 97,176, 97, 11,105,237, 97,116,108,156,221,227,195, +204,243, 71, 24,122, 73,147, 31,207,122, 57, 59,158, 56, 10,127,223,143,240,252, 54, 42,205, 74,255, 81,156, 53, 71,171,226,165, +174,114, 23,157,220,105,239,185,246, 87,247, 64, 40,119,138,203, 75, 48, 39,100, 84, 73,157,163,184,154,232, 76,154,122,139,192, +104, 75, 56,117, 96,132, 37,103,158,202, 83,237,151,225, 31,124, 26,175,161,204,105,244,241,172,223,199,222,125,109,252,241, 29, + 49, 51,186,107, 0,117, 74,223,202,180, 21,176,246, 86,177,147,107,193,169, 10,196,104,165,153,222,219,200,168,178,114,122,120, +235, 71, 30,184, 87,252,136,188,253,105, 58,143,172, 22,129,162, 66,213,184, 2,116,148,116, 66,115,106,172, 7, 73,167, 48,249, +191,188,189,249,179, 36,217,117,223,247, 57,247,102,102, 45,239,189,238,158,238,217, 49,251, 2, 96, 0,130,162,192, 5, 20, 73, + 89,160, 32, 66, 92, 36, 89,178, 21, 54,169,176, 36,202, 20,109, 83,214, 22, 10, 57, 20, 10, 90,150, 35, 20,214,127,226,159, 21, +150, 29,114,216,225, 69, 11,195,114, 0, 38, 64, 80,164, 72, 0,131,217,122,102,186,167,183,183, 86, 85, 46,247,222,227, 31,110, + 46, 55,179,170, 94,247, 0, 32,231, 23,160,187,223, 82,149,149,121,207, 57,223,243, 93, 84, 88,235,248, 96, 72,129,216,208, 78, +211, 67,226,147,246,122,244, 81,231, 62,250,189, 67,238,123,106, 45,201,238,222, 56,153,238,117,100,246, 50,124, 24,161,135, 25, +125,180,107,139,246,184,146, 18,248,134, 15,198,179,157, 88,220, 63, 33, 93, 81, 55,203,184, 25,247, 77,156,176, 59, 2,148,205, + 40,140,135, 38,238,251,210, 67,185,203,160,151,132,209, 63,218,224,134,128, 19, 67, 38, 48,114, 11,239, 98, 79, 39,141, 13, 2, + 77,227, 56,241, 2,243,103, 64, 55,212,205, 57,121, 66,138, 11, 98,218,137, 59,208, 52, 3,132, 63,114, 40,211,113,154,154,168, +140,220,201, 84, 38, 32,152, 76,214,128,201,255, 25,123,188, 79,162, 57, 71,123,115, 25,237, 7,163,215,159,197,186, 51,142,130, + 80,137,161, 10,187,207,134,190, 85,153,236,103,131,210, 42, 25,118,201,149,218,233,216,196,201, 90,186, 68,188,224, 39,200,131, + 25,114,234, 25,135,237,236,133,149, 69,104,234, 26,223, 84,132, 48,100,182,239,178,123, 29, 43, 18,100, 43,183, 92,118, 21,246, +145, 21,156,238, 93, 35,164, 69, 56, 5, 5,118, 22,219,169,173,170, 78,197,151,178,245, 30, 71,120,135, 14, 30, 15, 91,217,238, + 19, 66, 94,231,150,103,213,113,254,224, 30,199, 92,229, 51, 63,243,203,252,249,191,240,103,248, 99,175,223, 96,182,250,136, 15, + 63,122,139,183,155, 64, 85,213, 92, 92, 92,224,188,167,169, 29,193, 59,124, 11,116,121, 49,216,108,198,242, 96,206,114, 49,143, +126, 0,198, 32, 1,188,243,132, 80,129, 4,156,247, 45, 99, 62,134,243,104, 80,212, 24,140,205,201,172,144,205,150,128,197, 44, + 11,228, 96, 65, 94, 24,154,230,156,139,147, 83,234,106,205,241,233,138,179,179, 11,202,178,230,116,237,169,235,154, 66, 3,159, +191,110,121,243,240, 21,190,249,239, 44,220,249, 6,182,112, 81, 78,167,147, 53, 9,187,205,210,134, 41,186,157,160, 69, 38, 54, +180,186,127,255,251, 72, 32,125, 66,156, 76,108, 19,210, 69, 73,143,191, 94,146,164,183, 27,242,135, 90,133,108,189,230,167,126, +114, 65,243,242,207,113,241,182, 99,102,214,216,172, 32,203,148, 59,174, 96,115,247, 3, 14,220, 29,152, 23,187, 11,241, 72, 58, + 40,151,214, 83,101, 74, 6,252,126,134,156,201,142,118, 76,247,126,229,238,213,251, 67,219,140,239,114, 90,127,148,159, 36,100, +222, 43,222,111,223,124,125, 65,236,220,180,146, 72,212,129, 63,213,238,167,195,192, 90,150, 86,154,101,209, 49, 11,187, 5,134, +211,157,174,246,172,218, 24,234, 34,253, 78,121,218,172,234,100, 38,103, 82,164,167, 98,145, 97,186, 48,173, 71,122, 23, 52, 67, +187, 94, 72,225,226,144,216,215,118,123,223, 32, 99,191,246,113,254,121,162,239,150,132,212,164,138, 24,139, 89, 40,243,170,166, +170,227, 20, 16,153,122,155, 49,193, 41, 57, 1, 77, 71,212,154, 50,127,117, 56, 91,125,203, 36,183, 34,164,146,149,237, 64,137, +241,116, 23,150, 87,120,225,201,156,250,221, 99,110,151,134,204, 14,197, 36, 36,240,119,208, 41,153,111,135,218, 50, 49,109, 72, + 3,113,211,155, 71,118,216, 60,110,255,156,113,186,188, 33,221,167, 14, 62, 1,210,133, 8,101, 25,110,179,225,253,149,130,205, + 48,230,146, 4,102, 85,118,102,145, 36, 54,182, 61,124,176, 3,116, 82, 17,178,204,224, 60,145, 24,149, 30,204,102, 72, 81,211, +125, 78,104, 59,160, 68, 31, 38,221,206,180, 25,216, 97,111,171, 59, 8,114, 67,246,193,116,133,181,173, 79,151, 4,169,216,121, + 66, 76,166,102,221, 7, 41,166,210, 54,101,183,190, 61,125,246,100, 32,126, 62, 44,219,221,136,224, 55,103,220,190,127,206,149, + 79,253, 20,191,250, 87,126,153, 63,251,147,159,225,168,188,205,135, 55,191,205,121,233,169,234, 13,190, 9,148,181,163,170, 27, +188,115,212,141,111, 67,116, 12,182,152, 49, 91, 44,153,207, 10,172, 53,209,149,207, 24,172,177, 40, 14, 33,224,234, 10, 13,142, +186,118, 92,172, 74,130,247, 88, 33,238,199, 77, 78,150, 89, 14,150, 11,150, 71, 71, 24, 99,209,122,205,230,254, 7,220, 63, 63, +229,244,236,140,179,139, 13,174,106,240, 38,167, 12, 25,161,169,232,100,183,149, 6,102,107,199,203,197, 61,154, 79, 63,195,219, +190, 66,142,255, 61,166,176, 35, 50,239,100, 75, 53, 93,113,143, 10,188,200,196, 10, 72, 46,113,215, 99, 27, 85,123,148, 88,153, +116, 53,211, 75, 77,101, 27,177,217,151,231,144, 54,132,199,167,142,159,121,246,130,215,191,244,139,252,254,217,115,204,171,223, + 66,243, 28,113,129,106, 30,184,117,223, 96,238,124, 27,108, 13,204,198,247,152,178,131,159,242,112,188,249,123, 78, 57,219, 57, +208,235,224,220,169,186,215,109,118,215,185,243,113,164,115,202,247, 94,225,247, 50,225, 21, 50,109, 11,106,218,148,152, 81,212, +226,100,191,158, 76, 87,163,248,216, 22,226, 51,116, 54,178,137,117, 98,191,107,211, 62, 81, 42, 81,216,182,240,243,240,192,251, + 17,231,125,172,109,238,109, 50, 19, 67, 21, 77, 92,187, 84,134,180,176,174,242,153,212,181,187,133,237,211,159, 45,147, 70,162, + 95, 29, 76, 62,196, 48,185,172,146, 74,119, 58,248,200,111,144,218, 98, 36,143, 57,229, 93, 51, 16, 34, 59,116, 12, 69, 15, 70, + 63,169,103,252,232,186, 50, 88,194,250,246,144,182,146, 34, 7,178,213, 57,247, 86, 62, 86,208,179,183,240,106, 49,230, 8, 49, + 46,206,161, 50,206,203,131,193,172,198,116,215, 17,197, 36,134, 35,157,231,169,110, 29, 85,140,154, 21,233,157,229,146,221,157, + 78, 71,243,241,200,168,109, 88,189, 73,138,144,145, 49,199,194,152, 12,111, 4, 49,145,217, 16,124, 24,145, 42,211,163, 38,168, + 94,218,137,211,146, 32,211,168, 90, 13, 1, 53, 49,187, 93,136,235,142, 96,164,111,120,199,179,106,162,189,159, 78,210,187,228, +109, 19, 73,210,174, 66, 43,137, 5,175, 76, 9,110,147,194, 62,138,220,221, 34, 23, 78, 24,230,211,226,190, 69,144,211,109,146, +223, 36, 64,102,220,146,167, 13,204, 84, 27,159, 18,228,116,171,104, 13, 78,127, 17, 17, 91, 29,223,229,129, 63,228, 11,127,241, +111,242,215,255,242,127,196, 15, 62, 41,124,248,222,155,252,254,241, 57,234, 61, 77, 83,179, 89,175, 65, 12,206, 41, 85, 29,137, +112,198,230, 4, 13,100,179, 25, 71,135, 7,204,138,172, 53,184, 82, 48,209,136, 42,168,167,218,148,148,171,115,170,170,198,213, + 21,155,170,194, 53, 77,244,112,200, 11,138, 98,134,157,205, 88, 30, 29,178,156,205, 16,173, 89,159, 62,224,254,253, 99,238,221, + 63,225,252,124,141,119, 14, 23, 2,162,129, 69, 30,104,104,168,203,154,204, 42,106,115, 52, 40,103,206, 49,175, 2,175, 30,157, + 83,190,246, 60, 31,254,246, 3,230,205,135, 72,190,236,243, 19,182,142,224, 61,167,187, 36,206,112, 35, 27,110,217, 61, 61,107, + 50,100,244,252, 34, 30, 98,109, 59,220,197, 29,203,120,120,141,237, 61, 37,201,158, 37,141,201,157, 38, 14,222, 59, 15,188,150, +223,231,103,255,227, 63,201,135, 7,127,138,245,219,191,203,156,134, 77, 99,185,150, 53,188,149, 63,195,173,183, 62, 96,182,126, + 11,150,203, 75, 25,103,251,242,211, 71, 68, 92,246, 75,208,183,218,210,116, 55,244, 8,172,181, 65, 82, 58,117,208,208,157,141, +148, 60,172,195,216,195,249,251,174, 10,251,163,126,147, 64,150,153,118, 58,150, 49, 87, 72, 83,210,210,196,134,148,137, 13,103, + 12, 60, 97,203,217, 43,213, 67,235,228,223, 7,120,123, 40,198,125,110,115, 75,106, 11, 50,158,220,109,247,187,219,145, 33,232, + 14, 73, 71,226,185, 45, 91,182,177,211,174, 86, 39, 76,243,177,127,245,174, 13,207, 72,161,174,233,132,215,190, 66,147,163, 24, + 74,241,152, 76,193,133,145,254,125,248, 90,233, 67, 65, 12, 49,150,208,161,157, 74,108,172,113,159, 0, 65, 77,255,122,205, 22, + 4,213,191,222, 16,253,213,141, 42,183, 30,120,204,225, 33,215, 14, 55,212, 43, 79,147,232,198,187, 3,195, 36, 70, 42, 65,198, +246,177,129,113, 59,186,131,255, 63, 66, 8,160, 67, 20,134, 44,121, 84, 82, 18,195,238,189,152,164,160,150, 76,160,122, 33,107, +139,110,208,152,251,167,126, 55,129, 77,146,226,180, 15, 56,107,209,244,209, 13, 20,124,104, 27, 8,179, 37,162,220,229,142,127, +105,180,235,101,237,251, 46,105,215,142,169,107,123,170,218,237, 30,167, 59,167,127,182,138,251,192,126,215,113,131,179, 43,157, +109,112,196, 25,164,133, 83, 56,125,194, 39,208,164, 79,234,216,150,211,221,186,136,129,208,112,239,163, 59,228, 79,127,154, 95, +251,181,191,199,127,250,167,126, 8, 57,187,197,239,127,235, 14,171,117, 73, 85, 85,184,166,102, 83,213,248,198, 99, 77, 12,152, + 10, 1,172, 49,228,133, 37, 43, 14, 56, 56, 56,136, 10, 43,239,251,134, 33, 51, 17,113, 43, 47, 46, 56, 63,191,160, 92,151,120, +117, 92,172, 75,170, 85,137, 49, 80,204,102,204,138,156,108, 86,112,116,245, 10, 87, 14, 23,108,202,134,251,247, 78, 56, 57, 61, + 99,179, 46, 41,125,228,253,248, 16, 80, 31,240,162,156,151, 30,175, 1,231, 2,133, 11,228,133,210,168,161,113, 14,175,129,124, + 93,241,218,181, 5, 39,207,189,206,250,155,119,153,251, 19,152, 29,182,156,154, 68,199,163,250,208, 90,208,163, 30,105, 86,125, + 66, 4, 29,199, 18, 79, 21, 68, 15,161,108,167,140,123, 17,198,249, 0, 83, 53, 68, 26,214, 36,125,113, 55, 2, 15, 86,158,107, +213, 61,254,218, 47,127, 1,249,193,191,202,221,223,190,131, 13, 39, 84, 88, 14,213, 99,174, 31,240, 59,223, 9,132,239,124, 5, + 83,120, 96,185,245,234,250, 38,230, 81,210, 77,247,206,203,151, 44,251,247,164,237,237,187,238,187,225,247,125,159,209, 35,160, + 34,251,154,183,239,105, 98,191,196, 62, 86,163,215, 12,157,162,113,244,198,100,112,169, 10,201,117,148, 94,230,146, 56,125,117, + 19, 92,239,177, 60, 28, 0, 41, 60,189,139,249,220,221,222, 65, 67, 43,143, 18,108,231,208,150,208,176, 13,105,222,185,144, 17, + 35, 89,157, 14,154,247,238, 13, 24,209,158, 53, 30, 77,101,116,212, 76,200,164,203,141,147,146,105, 51,201, 37,177,188,222,182, +172, 28, 32,234,212, 64,120,208, 58, 75,203,114,206, 90,109,179, 11,221,190, 62,202,214,172,164, 5,107, 32,117, 9, 66,214,165, +204,237,128,120,134,181,138,233,225, 57,209, 36,134,117, 90, 20, 36,167, 51,253,205,114,160, 57, 35, 4, 33,136,233, 39,127, 73, +215, 28,162, 73,210, 92,183, 94,232, 50,235, 45, 42, 33,113,188, 79,118,162, 59, 31,175,212, 97, 79,182, 34, 13,183,240, 55, 29, + 8,107,227,125,247,248,203,250,162,144,124,226,211, 20,176,169,212, 80,146,201,125,240,103, 81,210,176,151, 84,226, 22, 66, 24, +144,155, 48,149,103,233, 86,231,157,194,254,187,136,108,151,177,227,217,161, 61,151,100, 69, 48,109,172,182,243,212, 91, 91, 80, +101,183, 73,205,100,245,177,189,151,223, 93,156, 73, 12,102,186,176, 18, 73,140,103, 82,180, 97, 4,213, 78,108,164,117,242, 59, +197, 24,124,185,226,246,189, 19, 94,253,177, 47,243,119,254,238,223,226,199, 95,187,193, 7, 55,191,195,253,243, 13,155,178,162, +170,107, 54,101, 69, 93, 87,132,160, 4,239,219,204, 30,161, 40,114,140,205, 88, 46, 23,204, 23,243,120, 78,136,137,140,118,129, + 96, 44,222, 53,212,245,134,243,139, 13,155,213, 10,231, 2,229,102, 67,211, 52, 52,206,147,225,241,193, 97, 15, 15,184,241,212, + 83, 88, 99,169, 87,167,148,117,224,124,221,224,156,195,135, 64,104, 42,130,111,162,218, 69,128,224, 17,107,176,196,231,170,113, + 13, 18, 90, 78,139, 88,130, 10,107,111,184, 82,175,121,229,217, 5,191, 83,255, 8,231, 31,189, 75,182,190, 67,193, 26,155, 91, +200,102,177,241,223, 33, 79,220,106,143, 19, 57,241,246, 65,222,133,199, 76,253, 22,229,209, 61,229, 83, 51,168,105,195,155,144, +146, 59, 79, 42,146,233, 93,172,225,254,121,205,114,253,128,191,245, 87,127,130,231,254,212,175,241,245,111,157,161,103,239, 70, +181, 73, 8, 92,191,102,249,205,213,117,110,254,127,255, 15,135,238, 38, 44,175, 94,194, 17,144, 61,237,236,110, 20,163, 79,142, +124,212, 26,250,144, 17,121,107,250, 31,121, 3, 60,164,201,248, 67,146,172,127,156, 78, 32,243, 45, 68, 42,125, 32,138,140,118, + 98, 29,204, 60, 4,139,232, 40,224,106,180,255,105, 79,164,160,233,218,114, 48,171,208, 17,132, 61,236, 83,189, 12,221,104,148, + 84, 12,112,108, 72,138, 78,104,163, 78, 71,127,191, 99,126,236,160,252, 14,158,181, 74,239, 39, 63,134, 65, 12, 72, 6, 18,162, + 81,135, 48,118,205, 74,216,242,202,212,221,173,133, 63,123, 39, 58,162, 94,201, 11, 24,131, 74, 0, 31, 34,204, 43, 5,146,229, +228, 97,211, 75, 7,211, 6,170, 47, 24, 97,251,147, 75,239,199, 78,206,150,181, 38, 18,161, 99,116,143,203, 41,234, 21, 93, 28, +177, 40, 74,252,106, 77, 19, 12,120, 56,115,138, 49,131, 67, 96,202, 44,136, 82,189, 40,247, 17,117,132,208,237,237, 45,198,180, +218,119, 29, 12,137,246,232, 32, 98, 51,160,241,179, 26, 49,179,229, 18, 56,188,111,254,116, 66, 18,147, 97,253, 32,145,149,238, +218,130,222,189,190, 71, 34, 9,141, 32,104,157, 76, 7,210, 50,160,135,135,216,135,176,251,123, 71,217,224,186, 61,245,236, 61, + 60,119,145,220,182, 11,113,215, 76,246,137,115, 12,144,188, 21, 25, 50, 17,166, 16,131,200,238,231,125,135,214,102, 95, 20,237, +248,245,200,232,115, 75,253, 25,118,161, 7, 50, 65, 15,166, 22,188, 34,113,109, 82,158, 29,243,209, 89,201, 79,255,197, 95,225, +239,253,218,127,206, 19,249,134,239,188,243, 46, 85, 19,216,172, 86,108,202, 50,194,221, 62,224, 3,132,198,225,188, 39,179,134, +172, 88,144,103,134,197, 98,193,108, 54,195,107, 32, 4, 37,179, 25,170, 30,105,159,183,139,245,134,245,197, 41,101,229,216,172, + 46, 64, 12, 85,213, 16, 92,131,119, 13,199,199, 15,120,234,233, 39,249,196, 43,175, 49,203, 44,167,167,199, 92,156,173, 9,190, +166,113, 21,190,174,240, 77,131,119,161, 69, 35, 3, 98, 4,239, 97, 38,180, 10,137,128,218, 2,130, 39, 23,197,100, 54,158, 37, +198,112, 81,193, 39, 22, 21, 47,126,225,121, 62, 40, 63,201,205,155,119,120,240,209, 71,172,238,221, 34, 91,223,101, 46, 43,164, + 40, 16, 59,219, 45,101,219,123, 39, 39, 77,212, 72,115, 42,123, 27,108,189, 20, 6,224,161, 58,172,177,192, 98, 24, 68,238,222, + 63,227,154, 89,243,183,127,245,207,240,250,151,126,137,223,249,214, 29, 86, 31,126, 7,223,108,208,160, 60,125, 96,248,232,224, + 25,190,242,127,191,205,236,222,215, 48,203,229,214, 60,171, 83,138,201,229,242,244, 45, 34,155, 62,196,134,102,127,197,102, 47, + 79,104, 63, 99,225, 50,216, 96, 76,150,222, 85,129,251,231,250, 15,163, 7, 16,200,188,130,211, 40,101, 72, 25,212,161, 61,232, +134,253,130,182,161,132,146, 36, 43,133,209, 20,148,110, 65,123, 8, 60,185, 49,186,136,210,174,136,116,126,197,253,199,101, 20, +171,130,215,116,234, 30,199,149,250, 62, 95,120,128,240, 69,199,142,106, 35, 62,167,232, 32,145, 26, 77, 62, 67, 73, 48, 86, 56, + 84,165,246, 66,157, 36,198, 77, 53,243,189,225,205,104, 31, 76, 31,103, 25, 95,151,195, 53,221,110, 52,154,170,170,122,212, 88, +158,176, 66, 89, 41,103,218, 26,201,180, 77, 84,151, 72,231, 59, 40,188, 51,190,217, 73,158,106, 95,187,118,198, 46,145,140,215, +105, 0, 68, 5,111, 45, 66,201, 12, 71, 45,209,116,199, 74, 68, 15,134,207,119,104,176,122,217,114, 43, 35, 51,180,142,121, 34, + 35,159,115, 35,186, 51,217,104,244,103,109,239,137,214,229, 47, 76,182, 80,194, 14,216, 80, 58,180,102, 2,114,119,129, 58,189, +124,177,131,200,117,100,106,165, 59,118, 86,163,231,175,229, 96,152,169, 83, 84,194,212,185,100,155, 55, 34,159,169,234, 94,211, +153,221,196, 52,122,235, 78,221,169,119,151,132,141, 62,134,177, 73, 92,219, 4, 40, 68,112,116,215, 34,185,231,218,220,249, 40, + 34, 8,163, 37,254,222,166, 66,198,107,169,237, 38,102,226, 83, 33,187,195,138,198,113,182,187,169, 60,198, 24,206,143,239,113, + 30,102,252,103,127,251,215,249, 47,127,233,207, 18, 46,238,241,206,173, 83, 50, 91, 80, 94,220,229, 98,181, 38,120,143,247, 62, + 74,212,128,218,199, 54,209,230, 5, 7, 71, 7,100, 89, 70,158,219, 54, 5, 47, 78,200,153, 5, 36, 99,117,126, 66, 85,150,156, + 95,172,216,172,214,148, 85, 77, 93, 59, 50,129,186,218, 80, 85, 53,103, 39, 39, 44,174, 92,229,179, 63,250, 19, 92, 57, 88,112, +247,163, 91,172, 87, 27, 54,149,163,218,172,169,215, 27,202, 77,133,247,190, 79,121, 51,237,125, 19,178, 12, 31,148,224, 42, 52, +120, 50,107,105, 84,162, 21,109, 43, 9, 21, 44,146, 9, 30,195,245,245, 25,215,103, 43, 94,255,228,130,211,215,222,224,163,139, + 79,241,193,189, 11,110,191,243, 62,225,206,219, 44,202,187,100,133,137,123,119, 49, 9, 82,242,112, 73,214,212, 26,125, 28,136, + 35, 19,182,203,142, 74,148,164,239, 61,132, 6, 55,156,237, 70,168,157,231,222,221,123,124,242, 19,215,249,235,127,245,151,121, +242,211, 95,224, 55,191,254, 38,167,119, 63,196, 53, 53,214,192,181,153, 69,110, 60,193,191,252,250, 61,214,191,251,127,112,101, +166, 91, 18,191,173, 76, 70, 73, 88,228,123,194,155,198,239, 87,183,220, 24,119,190,250, 71,177,154,190,164,140,127, 44,111,249, + 75, 16,128,189,138,148,239,105,183,190, 31,118,200,178, 20,126, 87,105,167,219,168, 93, 20,237,166,244, 24,110,162,125,145,143, +161, 44,221, 65,101,218,125,151,151,177, 12, 76, 72, 82,162,218,239, 53,109, 5,246,163,180,179,182,247,234, 50,218,101,216,170, +154, 68,131, 59, 16,161,232,243,216, 83,153,153, 38,146,175,142, 10, 98,218, 74, 24,146, 61,120, 72, 63, 21,117,168,131, 70, 50, +212, 64, 80,135, 85,165,179, 56, 49, 73,136,204,192,202,214,173, 84,182, 97, 26,141, 76, 59,151, 28,216, 34,129, 80,109, 56, 17, + 19, 27, 35,137, 5, 44,235,157,187,162,140,205, 3,134,208, 87, 91, 59,105, 8,211,143,113, 72,207,139,187,230, 66,162,138,161, + 34,198,123, 26,117,108, 54,130,145,140,133, 9,241, 58,233, 56,198, 53,103, 64, 34,186,232,198,224,253, 16,220,210,190,158, 94, +115, 31,246,247,176,134,193, 13, 45,176,187,251,237, 56, 4, 3, 33, 43,140,110, 82, 43,131, 34, 66, 53,153,208,147,131,192,244, + 65, 59,227,226,170,151, 60,152, 35,214,184, 78,217,223,210, 35, 58,219,136,120, 66, 40,210,125, 16,246,142, 34,173,123,108,176, +246, 25,217,244, 15,253, 64, 42, 29,248,133,241,190,117,170, 88,157,184, 48,202, 48, 65,245,168, 84, 94,224,189, 71, 59,114,134, +240,208,195, 91,100,215,250, 64, 18,102,180,238,109,106, 71, 14,116,233,242,173, 95,155, 25,142,239,221, 38, 44,159,224,239,254, +253,255,150,255,228,203, 95,224,222,173,119, 57, 89,123, 14, 14, 14,185,247,209,135,156,156,158,180,252, 24, 37,248, 64,211,212, +120, 31, 40,138, 12, 99, 51,142,174, 94,101, 62,159, 35,234,123, 53,141,181, 81,195,226,188,163, 42,107, 46, 86, 27,202,114,195, +122,189,198,185,136,188,169,194,241,233, 41,168,114,122,122,198, 98,121,192,151,254,244,159,230,198,245,107,220,124,239, 38,103, +103, 43, 92, 83, 19,130,227, 98, 83, 83,174,215,120, 21,124, 80,156,247,248,208,230,151,171, 39,183, 6, 23,160, 9,130,122,137, +177,187, 70,240, 88,130, 42,206, 43, 25, 62, 34, 18,181,227,142, 88, 88, 7, 50,127,198, 81, 33, 60,125, 52,227,179,159,188,194, +253, 79,254, 16,223, 57,254, 60,223,249,246,251,156,188,245, 59, 44,207,222,165,152, 43, 82, 28,180, 94, 22, 19, 56,250, 33,204, +247,126,239, 14,189,105,213,254,130, 39,251,145,156, 75,136,123, 32,156,158,157, 81,111,214,252,252,127,240,163,252,133, 95,252, + 37, 86,217, 13,190,242,213,223,161, 92,157,226,157, 35, 23,207, 81,110, 57,120,242,113,254,197,183, 42,222,253,141,127,193,181, +252, 2,205,175, 92, 90, 84,135,103,242,242, 61,118,122,127, 61,178,136,254, 81,245,233, 50, 69,125, 63, 14,174,254,113,210,228, +254, 16, 80,121,129, 76,165,141,129,108, 11,164,193, 18,228, 0,240,152, 80, 19,188,226, 91,171,111,211, 23,231,244,200,139, 7, +185, 49, 67, 62,186,244, 22,159, 93, 71, 37,189, 16,222,182,238, 67,182,135, 86,147,169, 66,135,195,201, 72,103, 48,211, 58,220, +181,197,213, 36, 4,168, 81,146,152, 12, 4,183, 81, 20,170, 76,165, 63, 59,210,148, 20, 54, 98, 16,171, 28, 73,129,250,192,153, +111, 0,105, 99, 7,146, 23,152, 36,179,164, 74,140, 97, 31,204, 86, 22, 67, 39,223, 41, 73, 92,225, 58, 22,126, 75,232,243, 9, + 14,228,187,247,153,232,130,131, 38,204,231,145,225, 71,136, 19,132,153,116,215, 38, 58,217,107,240,237,117,149,173, 61,125,215, + 56,248, 30, 58,239, 96,232, 33,148, 70,218, 10,173,178,221,255,155,132,152, 19, 24, 60,254,173, 36, 26,229,164,120, 78,253, 14, + 84,119,137, 17,199, 90,218, 64,106, 46, 44, 91, 81,188,242,144,199, 76,217, 26,202, 25, 59, 67,232, 48,205,111,253,160,196,243, +189, 85, 2,232, 35,116,253,251, 10,255, 46,134,249, 62, 62,243,214, 94,154,136,168,141,241, 48, 25, 66,146,218,175, 61,204, 13, +165, 40,155, 58, 36, 82,255, 65,255, 41, 35,214,251,190,125,123, 18,153, 42,221, 94, 85,183,131,221, 70,104,193,112, 28, 94,243, + 0, 0, 0, 32, 0, 73, 68, 65, 84, 56,107, 18,251,122,255,206,109,204,149,103,248,135,255,221, 63,225,103,127,226,179,188,251, +246,155,172, 26,229,198,245,235, 60,184,115,139, 59,119,239,198,134,220,123,130, 6,106,215, 16, 2, 20,197, 28,140,176, 92,206, + 56, 58, 88,224, 92,131,243, 30,147,205, 89, 44,231, 4, 87, 83,149,107,170,186,102,117,177,194,123,207,197,249, 10,245, 13,198, +100,184,166, 97,117,113, 17,247,243,155, 53,197,108,198,151,126,225,231,121,234,201, 27,220,186,249, 30,117, 93,211, 56,165,105, + 26, 54,101,100,197,139, 17,114, 12,193, 11, 89,102,241, 33,224,125, 19, 87,104,222, 97,172, 48,155,229, 84, 37,132,160, 72, 16, + 12,174, 39, 1,139,196,134, 32, 4,199, 44, 55, 4, 51,231,162,130,243,166, 65, 46, 60,135,249,134, 23,111, 28,243,198,243, 79, +112,235,197,215,248,247,247, 62,201,239,125,243, 67,142,127,239,107, 28,156,189, 73, 49, 15,144, 31,128,216, 81,131,119, 89, 41, +145, 93,147,185,112,233, 36,187, 43,180,100,123, 83, 19,223,207,102,179,226,248,248,140, 23, 62,241, 52,191,248, 43,127,153, 31, +249,233, 47,243,230,205, 83,222,255,119, 95, 69,105,240,118, 6,141,231,160, 48, 60,246,236,211,252, 95,239,122,254,253,255,249, +207,185, 42,119,145,217, 99,173, 34,132,135,186,198,237,108, 44,183,158,229, 84, 27,254,136,121,231,227, 52,157,135,148,231,201, +201, 34,122,201,175,209,137,148,116,255,133,190,172,101,249,126, 77,235,233,207,177, 63,246,185, 55,254,123, 87, 55, 9,254,127, + 8,249, 99,112,104,201, 14, 29,135,214,177, 8, 96, 90, 23, 56, 70, 23, 74, 18,198,165,180,157,249,150,208,169, 39,189,141,213, +230,146,232,183,182,109,199,122,207,113,186,184,211,193,113, 77,147, 56, 77, 21,217,171, 39,236, 14,150,148, 70,146,118,100, 99, +185, 90,192, 18,152, 81, 64, 97,184,102, 29,198, 11,155,244, 35,148, 65,132, 23, 52,157, 62,119, 23,204,233,159, 76,242, 39, 35, +211,168, 82,101, 8, 69,139,127,242,218,177, 81, 39, 91,120, 25,223, 88,113, 31, 30,250,226,234, 67,232,253,179, 27, 79,239,168, +183,107, 75,183,213,248,104,162, 84,144, 1,234,219, 14,163, 73,222,203,120, 11, 59, 42, 58, 34,227,235,179, 85,112,147, 60,214, +113,136,200,248,191, 33,248, 39,205, 20,127,164,121,100,204, 12,218,241,112,143,124,232,119,252,160,241,214,248,178, 95,178,155, +157,187,107, 77, 33,210,221, 79,201, 2,202,200,126,152,126,114,152,236, 67, 40,162,173,169,182, 4,174,228,117, 39,158,236,210, +221, 67, 19,153, 97,239, 14,152,154,146,232,176,114,219, 53,232, 37, 50,246, 81,178,156, 53,134,251,119, 62, 98,118,227, 5,254, +209, 63,249,167,124,241,243,175,243,238,187,239,176,241, 18, 11,250,221, 91,188,251,222,205,182,128, 41,206,185, 22,126,119,204, +231, 11,242, 89, 30,239,157, 44,199,218, 12,149,140,163,107,215,121,242,201,167, 80, 87,115,118,242,128,170,170,216, 84, 53,117, + 85, 81,149, 37,235,117, 73,158,103,212, 85,195,201,201, 41,117, 93, 83,151, 53,193, 7,190,244, 11, 63,203,235,159,122,131,119, +223,126,139,213,197, 57, 77,221,208, 52, 53, 85,237,240,174, 77,118,104,137,121,222,123,130,119,132,224, 9, 33,244, 92, 35,211, +202, 99,157,106, 11, 23,134, 56,205,139,144,101, 25,198,100, 49,133, 79, 3,153, 17,108, 81,176, 41, 61,248, 10,155, 27, 28,134, +147, 82, 56,189,127,206,181,245, 71,252,208, 83,158, 79,189,241, 2,197, 75,159,227,110,246, 44,103,199, 21,102,117, 15,171, 27, +196,216, 36,158, 84,246, 48,181,167, 32,175,140, 62,151,228, 67,222,163,193,146,173,251, 52,222, 50,129,106,179,230,222,189, 7, +228,179, 37, 63,247,179, 63,203,175,254, 23,191,202,235,159,251, 60,191,251,173,119,121,239,219,223, 36,107, 42,242, 12, 26, 85, + 30,203,149,167,159,127,150,127,243,161,240, 27,255,211, 63,227,176,188, 73,118,120,245,146,133,216,116, 31,253,168, 6,122,250, +221,149, 65,125,180,127,158,174,144,185,132, 11, 52, 20, 85,121,132, 10,156, 12, 43,127,192,255,205,102, 51, 50,145,208, 79,130, +241,198,110, 8,156, 35,214,177, 44, 60, 47,136,112, 45, 40,239,111,148,247,136,250,115,195,216, 28,161,155, 54,123, 11,194, 54, +237, 76,219, 52,175,184, 27, 13,237,244, 53, 14, 11, 25,244,205, 99,235,214,208, 49,188,219, 95,226, 91,134,153, 97, 8,114,233, +136, 68, 97, 71,209,144,116,103, 59,137,110,237,127, 14,169,192, 66,241, 42, 92,248, 18,171, 48,107,253,224,199,164, 65,157,236, + 32,165, 39, 17,245, 7, 90, 15,144,202,222, 3,121, 92, 36,135, 93,242, 72, 90,215, 89,176, 34, 19, 26,204, 56, 30,181,227, 13, +120, 29,178,136, 85, 3, 77, 19,218,134, 70,146,172,182,221,134, 21,102,244,119, 58,154, 38, 67, 82, 16,131, 38,205,136,142,119, +254,147,214, 41,190,215,246, 34, 27, 24, 17,209, 70,211, 97, 50, 52,154,212, 88, 39,229,245,142, 52,236, 29,114,161, 91, 13,192, +244,168,210,209,231,246, 8,246,147,105, 62,118,130, 2, 73,226,170,166,146, 22, 94, 77,161,154,189,109,197,190, 78, 95,117,220, +201, 75, 63, 32,108,203,193,134,105,154, 29,190,110,113,175, 46, 61,103, 37, 37,178, 14,135,122, 58,137,143, 72,115,202, 22,145, +110, 32, 96,117, 10,136,125,177,161, 50,232,162, 59, 82,159, 49, 60,184,123,155,217,245,103,249,199,255,195, 63,229, 11,159,126, +142,119,222,125,155, 32, 57, 79, 62,113,131,211,251, 31,241,222,205, 15,177, 89,142, 2,117,217, 68, 24,220, 5, 76, 94,144,103, + 22,201, 50,142,174,220,224,232,232, 42, 69, 81, 80, 20, 5,135,243,130,227,123,183,249,232,214,135, 84, 77,244, 91, 8, 62, 80, + 54,142,213,186,196, 26,168,202,138,179,211, 11,234,166,193, 57, 79, 93, 87,252,248, 79,126,129, 31,254,145,207,243,193, 7,119, +120,112,239, 1,168,167,170,170,254,227,203, 45, 4, 10,170,205, 6, 80,234,198,177,217,148,125, 65,151, 4,205,172,234,134,197, + 44,167,178, 89, 68, 0,138, 60, 62, 23, 26, 64, 98,110,123, 38,109,205,247, 14,147, 89,154, 70,144,166, 33,207, 2, 78,149,251, +181,227,172, 82,238,110,238,242,236,149, 99,126,250,201,107,124,234, 39,110,240,187,175,254, 12,223,252,230, 77,206,222,249, 22, +197,217, 77, 10,115,142,228,121,116,167,235,161,121,189,164,141,212,203,215, 58, 83,199,155, 81,135, 29,240,117,197,122,189,102, +237, 51,174, 61,241, 52, 95,254,226,207,241,165, 63,241, 83,124,250,147, 47,113,247,193, 41, 95,249,234,215, 89,159,222,107, 81, +136, 37,117,117,193,227,115,120,236,153,151,248, 87,223,186,207,191,254, 95,254, 25,135,245,135,228, 71,215,122,195,175, 94,253, + 61, 9, 30, 98, 50,108,238, 18,104,201, 14, 84, 98, 91,194,172,151, 86,235,253, 34, 90,118, 18, 87,183,244, 97,251,218,136,173, + 33, 97,119,130,222, 31,124, 29,223,126,135,153,234, 0, 61,134, 0,129, 53,148, 21,193, 11,101,174, 52, 10,103, 94, 56, 77, 15, +176,158,111,209,102, 84, 7, 8,152,200,215,233,224,230,118, 51,143, 49,177, 9,104,101, 33, 45,255,100, 4,165, 40, 6,145, 46, +148, 69, 19,255,247,244,154, 13,150,170,187,130, 56, 52, 97, 1, 79,249, 11,187,157,151, 82,148,181,115,195,139,255,234, 61,220, + 77, 34, 68, 67,226,145,173,201,180, 51,165,129,245,239, 75,146,135,108, 72,171,236,167, 98, 51, 1,124,148,221,204,104, 38,133, +210,164, 15,128,166,197, 97,114,243,183,135,127, 80,237,145, 10,217, 51,165,119,107,149,192,212, 69,169,167, 97,143,164,124,129, + 93,218,249,168,209, 23, 27,131, 97, 66,203, 30, 55,146,250,217,111, 47,174,164,213,199,107, 91,192,134,100,178,142,221, 63,220, +155, 41, 59,187,115, 42,236, 33,101,125, 88,217,150, 29,235,201, 49,237,117,107,253,150,216,175,234, 14,219,168,110,218,110, 90, + 22,126,190,135,188,164,186,155,130,171, 59,218,246, 48, 69, 17,118,156, 38,102,175, 28,170, 45,190, 83,179,153, 9,252,190, 19, +134,148,125, 44,158,177, 41, 14,108,235,216,101, 4,178, 9, 98,132,179, 7,247,240,243,235,252,195, 95,255,199,252,228,103, 95, +226,219,111,189,141,218,130, 39, 30,127,156,245,233,125,222,187,249, 62,121,145, 19,188,167, 41, 43,154,186,166,113,129,217,172, + 96, 62, 43, 80, 99,120,246,153, 79,112,253,198, 13,114, 35,145, 93, 30, 60,183,110,125,192,123, 55,111,146,229, 5,179,249, 60, + 78,247,170, 4,231, 17, 85,234,186,230,236,124,133,171,107,242,204,114,124,124,194,171, 47, 63,207, 31,251,137, 31,167,174, 26, + 62,252,224, 3, 92, 83,227, 3,148,181,139, 33, 47,170,248,160, 45,137,215, 80,111,206,105, 92,220,221,219, 44,202,207, 92,227, + 80,239, 49,121,148,207,121,231, 90,107,225,168,200, 80,175, 56,107,200, 53,144,181, 76,248,178, 9, 88, 83, 51,203, 11,154,210, +224,212,199,123,189,187,159,196,114,238,148,111, 29,123,228,248, 62, 55,236,109,126,248,250,130,215,127,248, 73,222,122,237,143, +243,230,219,183, 57,121,255, 93,252,233, 29,204,230, 28,241, 43,140, 9,173,175, 69,136, 44,252,172, 0,147,239,140,118,222, 85, +127,250,181, 75, 8,168, 6,180,169,104,154,134,202, 5, 26, 51,103,121,245, 9, 94,126,227, 85,222,120,227, 13,126,244,115,175, +243,201, 23,159,230,226,226,156,223,253,198,111,113,247,193, 9,229,122,195, 65,110, 8, 69,198,233,133,227,169,131, 57, 87,159, +125,154,127,254,155, 31,240,149,255,245,159,113,196, 3,138,195,107, 68,160,112,104,200, 83,207, 3,182, 16, 39,185,132,160,250, + 48,136,250, 18, 74,249,199,112,122, 25, 57,250,109,161, 31,250,144,117,252,100,112,220,217,218, 63, 92,101,240,253,220,187,103, + 70, 18, 87,173,158,159,225,177,149,176,174, 13,223, 54,202, 92, 98, 10, 91, 39, 41, 11,173,191,148,106, 6,217, 2, 99, 43,164, +105,104,156,193, 27, 33,151,200,230,150, 54,153, 77, 90,247,185, 84, 62,213, 93,170,144,124,196,221,238,188,219,197, 14,122,249, +225,192,232, 15, 18,213,177, 11, 91, 47,102, 78, 25,248,195,135, 99, 70,240, 54, 3, 29, 80, 82,149,187,182,132,186,225, 65, 24, +224,240,118,254,214,136,106,168, 53, 20, 18, 48, 1,170, 36,150, 83,118, 0, 69,154, 76, 94,146,204,248, 97, 12, 34,140,138,229, +240,190, 76,202, 81,155, 20,178, 29,180,216,118, 55, 46, 2, 94,108, 12,186,104,117,231,129,129,109,159,222,251,126,215,222,170, +109, 70,204,150, 45,237,248,144,239,235,132, 17,102,185,197,215, 49, 6,211, 24, 29,130,192, 18, 46,128,236,104,198,164,247, 54, +209,214,139, 85, 91,181, 68, 27, 77, 57, 89,167, 12, 40,198,142,130,179, 3,226, 31, 7,152,232, 68, 31,191, 31,216,235,147,201, +118,100,125,171, 70, 50,213,141,103,158, 39, 87,199,237, 91, 31, 98,179,108,231,129, 42, 98, 7,239,161, 16,213, 1,146,250,126, + 79,214, 16,227, 3, 67,119, 31, 36,157,252,114, 18,186,180,255,100,209,129,252, 54,233,100,100, 68, 47, 29,153, 49, 39,211,252, +110, 75, 92, 77,158, 59, 99, 12,235,179, 19,206,156,229, 31,252,250,175,243,229, 63,246, 57,190,249,173, 55, 49,197,140,199,175, + 63, 70,181, 62,231,155,111,126,167, 77, 86, 19,170,170,193,135, 64,102,115,230,179,152, 73, 94, 85, 53, 47,190,242, 10, 79, 62, +249, 56,117, 85,225,140,161, 48,194,221,123,247,248,224,214,109,178,118,146,111,154,184, 7,247,174, 1,239,240,206,177, 41,155, + 72, 90,115,142,170,170, 89,204,114,254,232,143,124,158, 43,215,174,243,246,187, 31,112,114,124,220,246, 66, 30,196,178, 46, 75, +102,153, 64, 94, 80,111, 54, 24,107,169,130, 69,213, 81,204,102,136, 42, 77, 83,247,104,160, 65,177, 70,168,154, 88,244, 67,128, +166,105,200, 90,167, 67, 13,145,220, 23,201,116,177,185,149, 44, 94,151,194,122,140,205, 8,222, 49,203,109,159,207,110, 50, 75, + 8,202, 7, 85,198,135,239,111,184, 62,123,135, 79, 95, 93,240,202,103, 30,227,206,171,127,148,251,103, 53, 39, 39,231, 84, 85, +201,166,114,148,235,200,228,111, 86,103,152,213,125, 50,127,142, 21,135,177,166,149,210, 14,157,127, 8,161, 93, 37,104, 12, 23, + 82,240,146,227,197, 34,197,146,226,232, 73,142,174, 92,227,149,167,158,228,133,231,159,231,245,151,158,229,185,167, 31,231,154, +173,217, 92,156,242, 91, 95,251,144, 7,167, 43,202,213, 26,131,103,182, 92,178,246, 25,230,124,205,139, 79,222, 96, 45, 11,254, +199,127,241,111,249,189,175,252, 43,174,206, 2,118,254, 88,228, 26, 36, 4, 83,161,213,249,143,170,230, 4, 87,248, 24, 85, 77, +182, 18, 57, 30,138,122, 95,234,196,174, 41, 93,106,212, 36, 60,220,253,239, 17, 61,115,254, 96,216,115,151,152,218,100, 29,195, +219, 37, 49,159, 29, 33, 76,136, 5,171,214,152,211,220,129,196,182,179, 53,213, 26,239, 13, 46,179,204, 15, 60,215, 43, 56,175, +133,139,214,177,192,170,239,247,222,131, 52,103,240, 97, 79, 53,200,182,159,152, 51, 76,171, 27,247, 9, 3,126,176, 67, 12,253, +116,151, 22,187,212,180,163,175,111,137,115,154, 25,149, 44,131,154,200, 62,207,136,104, 67,221,177,226, 19,178,159,244, 5, 50, + 94,143,142,209, 46, 68, 50,204, 8, 78, 72, 94, 71,207,228,149,212,102,102,248,183,144, 24,242,164,208,190,103,148,159,209,131, +248,121,178, 87, 30, 77,173, 12,186,122,109, 97, 80,219, 55, 33,134,121,158,115,128,227,172,114, 52,201,254,118,228,223, 31,182, + 49,141,116, 63,222,193,143, 41, 59, 79,147,235, 19, 31,218,184,217,119, 85, 69,136,157,226, 24,188,234,243,108,211, 76,110, 29, +252,246, 67,203, 12, 72, 36, 92,253, 39,219,237,207, 71, 69, 79,218,140,248,203, 39,244,221,146,187,109, 46,237,101,207,156, 18, + 70,136, 69,138,134, 4, 4,169,207,163, 26, 66,204,238, 89, 66,163, 55, 64, 58,229,138,234,246, 20,213,254,253, 86,227, 35, 73, +182,250, 78,246,243,110, 62,149,236,117,181,147, 4,101,212, 45,100,161,175,209, 61, 26,167,163,191,223, 38,215, 65,102, 99,203, + 92,111, 46,184,123,182,225, 87,254,206, 63,224,207,253,201, 31,227, 59,239,188,195,242,232, 26,135,135, 75,130,171,121,247,221, +247,216,148, 21, 69,158, 83, 86, 53, 70, 32,207, 50, 92, 93, 67,112,212, 94,121,226,233,103,120,230,233,167,162,233, 76,187,186, +169,234,154,227,139, 18,155,207,200,140,178, 94,111, 34, 67,222, 57,206, 79,207, 88, 93,172,105, 92,195,124, 94, 80,215, 21, 77, +227,184, 88,173,249,252,231,127,128, 87, 95,123,141,213,186,228,222,189,123, 88, 19, 45,168, 67,211, 96, 69, 49, 38,235,121, 64, +214, 90,150,243, 2,127,116,136, 43, 13,136, 97, 93,110,104,130, 98,212,147,229, 5, 62, 4,172, 53,237, 58,221, 33,214,182, 10, + 14,105,173,105, 99, 72,148,141,179, 52, 46, 4, 22, 2, 38, 47, 80,215, 68,139,218, 16,250,243, 45,203, 50, 66,112, 4,175, 20, +214, 32,197,140, 51, 12,231,167,158,131,243,187, 60,181,200,121,254,250, 18,125,234, 16, 83, 60, 78,176,115,130,157, 81,106,206, +157,179,154, 91,119,206,184,119,251, 54, 23, 39,247,168,215,231,132,186, 36,132,186,111,164,243,217,156,197,193, 17,249,114, 73, + 54, 91,178, 40, 50, 14, 15,150, 28, 30, 30,113,253,104,193,213,171, 7,220, 88,206,184,126, 88, 48, 19, 79,179, 58,229,246,155, + 31,241,118,217,160, 34,148, 77,160, 44,107, 50, 81, 14,150, 51,212,100, 28, 45,151, 28, 94,249, 4,111,190,243, 30,255,219,191, +252,159,121,240,206, 55,121,236,202, 1,146,207,122, 82,220, 56,140,102, 24, 86, 82,205, 59,123,103,244,203, 70,111,249,120,181, +240, 81, 35, 87, 19,255, 9,217,246,103,228,178,184,181,203,165,176,143,254, 82,190,159,242,182, 76, 77,171, 15, 15, 45,148, 40, + 67,119,110, 73, 53,144, 97,176, 17, 77, 8, 5, 38,148,184,181, 97,149, 25,172,133,133, 85,234,192, 40,127, 57,194,177,131, 68, +172,223,222,106, 55,241,119,196,185, 22,138, 53, 6,171, 68, 9, 75, 72, 40,100, 65, 80,108, 76,209, 74,244, 85, 50,234,182, 18, +203,219, 30,202,165,119,140, 35, 68,203, 71,131, 80, 72,116,193,163, 45,156, 77,171, 0,232,247,157,210,230,147, 39,144,183,138, +193, 24,200, 85,251,180,181,142, 65, 46, 83,253, 16,131, 93,237, 96,147, 58,214,255,234,164,235, 27, 77,248,237, 68, 94,167, 5, + 33,233,126,101,207,148,218, 95,247,166,106,149, 11,233, 90, 66,251,208, 8, 37, 6,208,116,250,230,110, 26, 11,211,157,111,178, +243,215, 36,247, 91,147,230, 67, 25,246,185, 41, 18,128,161,183,190,181, 9,153,170,155,192,109,251,106,189, 14,191, 87,166,158, +204, 93,163,214,121, 19,180,250, 97,221, 97, 3, 59, 45,242,227,132,185,164,113, 49,210, 79,186, 97, 34,141,235,238, 93, 73,130, +117,118, 61,116,179,220,114,239,222, 49,138,144,231,217,206, 29,184, 17, 67, 8, 1, 99, 58,137, 88,216,122,145, 83, 54,188,238, +128, 6,199,225, 46, 99,205,128,238,153,234,101,170,203,191, 36, 18,114,187,232,183,141,125,130, 4,236, 10,137, 49,210, 26,227, +120,199,173,123,199,252,185,191,244,171,252,202, 47,253,135,220,189,251, 17,135, 87,174, 51,203, 45,153,129,143, 78, 78, 56, 62, + 61,195,138,193,185, 38, 78,178, 64,211,212,212,117,141, 49,194,227, 79, 61,205, 75, 47, 61,223,127, 6, 69, 30,201,114, 85,221, +112,229,232, 16, 52,112,122,124,159,166,113, 52, 77,100,187,175, 86,235,158,107,225,234,178,157,210, 27,158,122,242, 58,159,253, +193, 31, 96, 62, 95,114,255,116,197,122,189,194, 8, 52,190, 87,249, 51, 47, 34,178, 82, 53, 46, 26,201, 88,193, 90, 75,229, 29, + 86,132, 34,207,104, 26,139, 15,109, 26,133,205, 34, 9,206, 10,100, 5,170,224,186,245, 85, 39,117,213,182,109, 22, 98,148, 49, +129,229,188, 96,189,106,112,117, 69,102,133, 70,227,174,179, 12, 13,214, 24,196, 70, 45,208, 76,148, 32,145,143, 84,219,156,147, +198, 16,142, 55,224,206, 89, 24, 56,152,101, 44, 23, 57,135,153,229,217,249,156,207,190,186,100,245,202,203,156, 53,175,115,190, + 42,169,203, 18,213, 64,158,229, 44, 23, 51,142,150, 11, 22,139, 25,139, 92, 34,225, 80, 3, 11, 27,162,182,222, 85,172, 47, 46, +168,239,221,230,246,157,192, 38, 8,234, 21, 17, 19,243,230, 85, 8, 65, 89,204,115,102, 89,206,108,121,200, 99, 87,142,184,168, + 54,252,239,255,250,223,240,155,255,239,111, 96,234, 21,215,175, 95,139, 67,210,206,224,160,100, 40, 72,239, 45, 25, 24,186,251, +173,182,198, 11, 62,153, 56, 83,234,195, 42,226,199,208,132,167,113,199,186,147,165,179,231,103, 60,244, 89, 98,203,130,252, 15, +230,191,241,207,205, 98, 33, 52,136, 4, 50,160, 9,157,172,172,245,199,110,199,249,161,243, 31,118,171, 17,114, 54,100,162,120, + 31, 56,247,209, 84, 37,111, 63, 69,223, 50,222,131, 72, 75,180, 81, 28,113,127, 21,141,100,164,223,183,186,150, 93,111, 82, 6, +109,123,221,124, 47,201,178,168, 41,162,197,186, 56,196,215,248, 96,146,253,181, 14,147,144,164,241,124,209,147,221, 90,193,248, + 42,202,103, 66,148,214,101,109, 66, 89, 47,235,146,113,100,201,212, 95, 94, 85, 49,104,132, 56,164,187, 22,154,236,201,101,139, + 29,158,146,168,140, 12,172,253,206,148,132,118, 26,140,135, 67, 74,186, 27,223, 76,210, 58,175, 41,166,159,200,155, 73, 65, 15, + 73,171, 80, 5,216, 4,105, 81, 22,122,104, 62,200, 16, 39,106,172,197,154,232, 57,239,157,199, 43, 59, 56,249,219,144,151,142, +145,180,209,235,245, 93, 35, 32,218, 59,232,117,206,123,253, 10, 36,217,143,103, 6,130, 31,188,231, 47,187,117, 59, 14, 66,163, +227,160, 29,195,126, 31, 8, 73, 66,105, 68, 70,217,147,137,124,178, 67, 46, 90, 65, 97,223, 33,234,200, 52,106,120,240,163, 91, +160,205,242,173, 66,215,213,104, 43, 80, 24, 97,237, 58, 68,100,136, 57,222, 94, 11,110,219,188,110, 13, 6,189,237,237,132,236, +182,247,212, 26, 32,247,113,128,139, 48, 17, 8,237,222, 85,194, 14, 43,210,237, 95,230,130,242,225,237,219,124,254,143,127,153, +191,255, 55,255, 58,245,102,197,124,121, 72, 97, 5,167,112,113,113,198,221, 59, 31, 33,237,243, 82, 86, 13, 77, 85, 81,228, 25, +197,108, 6, 38,195,100,134,231,158,251, 4,121,150, 83, 55,174, 45,158, 74,112,160,222,145, 91,161, 40, 10,130, 10, 77, 93,177, + 94, 71, 77,122, 83,215, 17,105,244,129,114, 83,181,166, 77,129, 87, 63,249, 42,159,120,238,121, 20,195,201,253,251,248,186,166, +170, 26,234,186, 6,148,204, 90, 76, 86, 16, 92,131,177,194,122, 19,200, 12,216,214, 67, 66, 67,124, 22,212, 55,228, 89,214, 54, +135, 74,221, 4, 12,158,124, 54,139,105,111,121,214, 74,223, 90,135, 15,175,189,106,196,136,160, 45, 59,222,187, 38,122,116, 96, + 8,222, 71, 3,157,204,180,207, 78,212,185,123, 87, 97, 77,124,159,130,224,188,163,118, 30,163,224,212,114,190,242,228,149, 50, +155, 21,228,101,141, 80, 51, 23,207, 21, 49, 44, 67,192,228,144, 27,203,188,168,176,121,133,105,206,217,108, 2, 85,221,128, 53, + 56,205,120,128, 16, 52,128, 49,108,156, 16,234, 26,107, 2,198,102,228,214, 98,139, 28,193, 96, 20,172,157,113,120,120,133,163, + 43,135,172, 46,206,249,234,111,127,131,127,251,149,175,114,231,131,247,184,114,120, 64,126,245,177,193,165,113,223, 68, 58,229, +128,116, 68,208,238,252, 12,190,229, 90,121, 52,180,202, 13, 31,215,182,113,229,106,192, 88, 12,130, 49, 1,205, 12,108,153,217, +240, 72,154,244, 93, 27,114,101, 98,169,172, 31, 99, 74,222,139,247,237,251,150,203, 11,251,119,191, 91,159, 76,234,195,244, 45, + 4, 3, 38,116, 7,115,155, 55,174,130, 23,197,142,228,108, 3,199, 89, 90,114, 88, 38,241,123, 58, 8,185,219, 4,183,118, 43, +189,230, 47,116,174, 71,125,128,139,105, 89,208,130, 53,237,238,187, 69, 5,180,221,175,118,185,233, 42, 6, 49,138,177,134,220, + 88,140, 24,124, 3,181, 90,212, 10,214, 68, 84, 32,104,194, 49, 87, 65, 37,195,139,141,158,236, 89,142,173,149,202,197,194,208, + 62,131,253,235, 78, 97,205,206, 40,102, 92,232,226,207,111, 72, 80,129,142, 25,204,196,168, 99,114,115, 11, 67,145, 67, 58, 35, +158,208,199,191,218,150,101,235,246,221,136, 9,225,197, 90, 75,166, 53,206, 79,216,254, 19, 86,186,221, 10,213,161,103,178,247, +113,139,186, 79, 60, 34, 35, 89, 55,123, 28,209,198,203,165, 65,114, 21,116,124, 27,143,247,240,161,127, 29,141,242,240,150,183, + 91,125,168,246, 70, 66, 29, 2,209, 53, 67,176, 95,183,222, 57,193,137,145,126,229,160, 91,121, 15,130, 41, 22,168,107,250,137, + 90,147,198, 96,240, 48,183, 52,117,195,166,246, 28, 44,230, 49,242, 83, 39,168,130, 68, 87,190,210,251, 17, 81, 41, 93,101,104, +194,215,155,186,210, 77,245,175, 50, 37, 62,169,108, 81,143,140, 76, 51,204,247, 89, 88,110, 19, 2, 85,199,145,198,253, 94,221, +232, 86, 66,200,136, 4, 40,112,113,122,194,213, 39,159,231,239,253,237,191,193,194, 6, 78,219,123,121, 83, 86, 88, 3,183,110, +221,230,226, 98, 69,102, 44,101,211,196,245, 93,150, 83, 87, 37, 69, 22,189,220,175,223,184,206,225,225, 1,117, 93,183, 89,231, + 80,135,128,119,158,198,199, 73,121,150,103, 4, 13,172,214, 37,155,213,154,186,106,216,148, 53,153, 53, 4, 85,138, 60,195, 57, +207,211, 79, 61,193,235,175,191,206,114,121,196,166,114,156,156,158,224, 92,133,247, 33,162, 38,182, 53,222, 8, 62,242, 55,130, + 98,219, 41,125,115,182, 34,248, 6, 17, 67,227,154, 56,212,216, 56,185,170,247,100,185, 69,213, 18,124,232,127, 94,175,144,208, + 72,224, 52, 70, 34, 58, 25, 2,181,104, 52,168, 9,129,220, 64, 85,123, 68, 61,197, 44, 78,250,117,213,144, 89,131,205,243,152, + 13, 97,178,184,171,119, 77,207,185,136,138,130,184,155,207,115,139, 24,137, 33, 50, 65, 57,119, 81,103,148,231, 57,193,100,148, +101, 69, 30, 26,230,139, 57, 78, 50,170,178, 98,158, 11,243,217, 12, 99, 60, 42, 38, 62,122,174,137,195,149, 53, 88,177, 20,121, +214,170, 17,162,153,213,227, 55,174,115,120,245, 58, 39, 39, 39,252,214,215,191,202,111,126,227, 27,188,253,246, 59, 20,214,114, +227,250,141,182, 9, 13,143,190, 66,238,238,153, 16, 8,174,166,169, 54, 52,141,199,155, 25, 90, 28, 97,242, 37, 50, 91, 96,173, + 37,159,207,201,231,135,100,121,228, 89,184,186,164,110,106,116, 19, 40,214,119,128,187, 96,103, 76,236,185, 30,221,108,230,210, +210,248, 49, 76,103, 84, 62,214, 12,174,223,159, 10,254, 80, 8, 62, 11, 29, 95, 61, 49,251,176,146,200, 84, 90, 66,151,239, 97, + 67,105, 89,203, 3, 92, 58, 32,173,161,117,251, 26,232, 96,166, 13, 41, 65, 34,100,106, 85,112,132,118,186, 77,116,180,166,155, +252, 67,244,110, 15,113,167, 30,116,112, 54, 83,245,160, 81,186, 35, 26, 25,175,125, 72,171, 24,196,154,200, 66,110,125,161,133, + 6,239,148,160, 30, 35,182,157, 90, 66, 39,182,107, 97,252,241, 84,221,239,229, 53, 78,180,157, 54, 53,232,152,237, 24, 70, 94, +132,219,186,225,173,191,237,109,205, 91, 18, 88,208, 65,206,213, 30,246, 65,199, 89,149, 50,177, 51,213,118,210,212,150,222,150, +165,247,214, 86,190,153,142, 44, 35,119, 61,126, 1, 5,239, 91, 20, 38,196,125,127,203,171,176,157,147, 94,247,123,219,119, 22, + 36, 77,136,146,221, 88,150,176,197,116,215, 93,132,149, 22,121,232, 27, 61,125,152, 81, 67, 74,216, 27, 38,253,148, 64,151, 78, +237, 50,186,174, 73,241,154,160,123,218, 54,176,152,156, 27, 87,143, 88,157,159,178,218,120,140,109, 93,242, 67,123,183, 90, 27, +139, 77,121,206, 99, 47,188,193,231, 95,125,149, 55,191,246, 27,156,157, 95,144,229,249,238, 34,185, 3, 88, 76,167,130,105,144, +132, 36, 44, 77,157,132,253, 78, 40,186, 91,135,137,142, 96,247,244,235, 7,158,204, 62, 67,147,222,253,176,191,161,116,216,189, +203,190,157,122,252,243,189,211, 11,254,198, 95,251,175,248,193, 79,189,204,157,123, 15,152, 23, 51,206, 47,206, 65, 3,119,239, +159,112,255,193,113,116,185, 11, 74, 85, 53,168,171,177,153,229,162,241,216,178,226,250,225, 17, 55, 30,191,222, 70,156, 18,253, +222, 77,235,212, 22, 92, 79,226, 61, 59, 63,227,226, 44,234,207, 93, 93,183,156, 88, 33,203, 12,222,107, 68,154,188,227, 83,159, +254, 44, 79, 60,241, 4, 86,148,179,243,139, 56,157,139, 69,169,193, 68, 13,189,170,226,154,104,104, 19,156, 39,179, 89,235,196, + 7,209,137, 56, 78,141, 89,150,245, 67, 74, 48,166, 47,240,193,185, 88, 32,123, 39,191, 44, 18,121, 85,113,141,199,185, 26, 52, +208, 52, 66,102,115,102,179,140,197,242, 10,179,144,145, 27, 37,207, 51,170, 96,168,234, 26, 9, 33,174, 2, 9,132,224, 41,171, + 10,155,197,189,126,252,159,184,242,203,140,196,112, 27,245,168,201,250,144,159,172,101,196,171, 43,201, 13, 20,197, 12,140,193, + 53, 13, 69, 38, 72,139,126, 20,185, 65,165, 32, 4, 31, 35,156,141,161, 48,150, 76, 44,243,197,146,226,224, 49, 14, 23, 51,114, +163,156, 61,184,205,215,127,251,171,124,253, 27,191,207,251, 31,190,143, 17,203,181,171, 87, 48, 98,134, 56,230,237,236,210,221, + 72,120,240, 52,229,134,178, 42,169, 53,163, 56,184,194,245, 23, 94,225,198,211,207,241,248,147, 79,113,116,253, 6,102,126,136, + 85, 56, 42,148,217, 65, 65, 19, 44,231,103, 43, 78,239,221,195,174,239, 82,102,129,111,111,150, 28,191,243, 42,197, 7,223, 0, +255, 30,216,130, 84, 75,244,241, 5, 96, 58,146,238,235,163,176,208,246, 89,124,126,239,235,253,239, 7,242, 30,139,122,135, 68, +250,100,206,242, 74, 98,255, 24,167,244,144, 76,154, 94, 90,135, 45,134,137, 60,144,197,224, 18, 83,183,208,149,180, 13, 64, 43, + 21,211,100,191, 39,182, 95,180,134,118, 50, 71, 59,201,150,246,206,116,227, 28,137,182, 52,249, 26,223,249,144,107, 76,105,243, +227, 96,107,172,137, 59,114, 23, 12,106, 60,234, 27, 66, 19,168, 84, 40,104, 37, 40, 42, 61,163, 53,193,105,183,176,228,206,137, + 77, 68, 71,132,233,105,144,143, 94,122,221, 39,110,106, 58,117,103,212,177, 45,115,242,122, 82,154, 93,135,146, 88,148,186,241, +148,157,198,127, 7,231, 91,147,178, 62,218, 45, 79,191,210, 7, 28,163,144, 77, 44, 74, 46,113,130,246,233,207, 19, 97,102, 45, +226, 61,165, 74,175, 67,223, 29,139,212,111,246,123,179, 24,221, 85,255, 83, 55,204, 9, 44, 54,253,207, 43, 91,113,172,105, 2, + 31, 19,105, 79,231, 33, 48, 77, 20,148, 9,193,110,240, 79,247,156,159, 60,192,133,232, 87,158,154,251,100,179, 57,197,226,128, +224,149,213,166,228,233,235,135,252,232, 75, 71,188,247,219,208,132,118, 29, 51,129,189, 59, 8,113, 74,156,155, 54,129,194, 54, + 33,191, 75, 91,136,222, 0, 19, 51,155, 62, 80, 70,246,162, 39,214,230, 56,239,232,241,126, 77,179,237,247,167,199,117, 8,218, + 56,126, 51, 13, 57, 74, 51,212,133,147, 7, 15,248,228,103,126,144,159,255,185, 47,115,118,118,198,114,121, 16,109, 90, 67,192, +185, 38,218, 33,207, 22, 52, 77, 77,211,196, 66,220, 40, 4,231,121,236,202, 21,156,247, 28, 28, 29,178,152,207,105,124,228,117, + 88, 49,120,239, 41,203, 13,198,198,232,195,198, 57,214,235, 13,229,170,164,108, 97,119, 16,140,137, 77,168, 23,165,118,129,235, +143, 95,231,185, 23,158,143, 54,175, 26, 56, 61, 59,167,218,172, 99, 60,107, 80, 44, 6,239, 34, 75, 94, 67,188,167, 84, 32, 51, +145,251,144,217, 56, 9,135,208, 42, 63,196, 82, 87,117, 68,209,242, 44, 94,151,224, 49, 18,195,100,156, 49,152,214,223, 62,104, +100,214,184, 0, 85, 21,139,122, 45,112,116, 96,184, 58,159, 35,254,156, 80,150, 52,222,145, 23,150, 43,243, 5,249,114,134,154, + 2, 35, 22,111,150,172,235, 64,161, 87,162,188, 56,120,140, 49,212, 85,133,241, 77,124, 22,197, 99,141,141,104,135, 17, 36, 8, +141, 15,172,202, 6,209,134,195, 69,129,100,115,170, 42,250,222,103,121,129, 83,193,134,128, 72,134,195, 34, 98,163,124,112,185, +228,240, 96,193,225, 98,134,248,154,213,249, 29,110,190,127,135,223,255,206,187,252,222,183,223,226,193,241, 3,138, 98,206,213, +195, 35,196,152,158,207,114, 89,113,209,164,144, 87,155, 13,155,205, 6,102, 11,142, 30,127,142, 87, 63,241, 28, 47,189,252, 50, + 47,191,242, 18,143, 61,241, 20,143, 45, 44,121, 38,132,106, 67, 83,158,181, 54,192, 57,155,170,230,238,233,154,179,251, 39, 20, +199, 31,177,176, 27, 30,151,156,107,135, 27,190,246,218, 21,238,202, 15, 51,187,233,192,127, 0,118,206,199, 85,131,239, 20,170, +237,112,217,219,143, 60,104, 2, 92,238,159,214,119,171,114, 46, 79,174,249,216, 3,252,142,111,200, 66, 43, 59, 11,218, 5,160, + 76,205, 97, 90,194,148, 57, 68,115,135,145,146,204, 71, 77,123,119,116,135,214, 19, 93,197, 64,102,200,197, 97,107,168,195, 64, +170,139,238,112, 97,184, 16, 22, 22,173,103,124,169, 17, 2,107, 68,251, 34, 27, 84,122,139,204,161,147,106,229, 18, 62,180,228, +177,206,183,219,131,215,126,138,244, 93, 48,141,134,232,132, 39, 16,212,227,107,165, 20,122,207,249,244,106,132,177, 3, 71,108, + 86,182,188,236,181, 47,242,125, 67, 51,201,144,223, 38,173,141,157, 73, 59, 5,192,176,231,220,125,219,140,155, 6,221,174,204, +164,201, 97, 50,176,151,167, 8,130,140, 39,194, 93,208,216,116, 30,244,157, 2, 32,229, 40,116, 61, 79, 8,147, 97, 92,183, 45, + 23, 82, 15,115,211, 46,110,194,244,138, 15, 57,221,221,154,199, 76,178,225,247, 89, 42,142, 61,240, 31,198,147, 73, 24,253, 50, + 64,102,236, 40,236, 10,108, 90,211,158, 97,171, 16, 83,186,242, 89, 17, 39,119, 3, 87, 31,187,198,219,191,247,219,188,247,251, +191, 69,173,150,249,172,216,218,167,199,194,110,118, 50,198,211, 85,129,238,100,211, 70, 87,192,249, 98, 65,150,101, 92,156,157, +197,221,226,136,221,144,200,218,208,109,248,124,148, 77,191,157, 41, 29, 27,178,201, 30, 81,199, 81, 59,187, 54,165, 35, 73,187, + 42,167,171,146,191,246, 11, 63,207,139,159,120,154,187,247, 30,112, 52,203, 41,203, 51,156,107,104,234,134, 34, 51, 92,191,118, +149,247, 47,206,122,130,163,149, 8, 79,107,240, 28, 30, 29,240,228, 19, 79,244,142,109, 33,196, 24,230,170,174, 98,150,121,107, + 65, 93,149, 53,117, 91, 36, 54,235, 18, 31,124,228, 44,228,121,220, 59,163,228,153,229,149,151, 95,100,182, 56,136,140,122, 44, +171,245,134,114,189, 30,200,134, 45, 4,110, 52, 34, 59,185, 17,188, 88, 92,187,199,183,153, 69,140, 65,188,107, 37,138, 49, 32, + 41, 6,211,116, 62,239, 33,174, 8,197,147, 25, 67,227, 2,117, 93,146,101,173,144,215,215, 72,235, 8,153, 27, 97, 62, 91,240, +237,119,110,243,225,123,111,246, 13,149, 21,152, 89,152,207, 98, 72,205,114, 49, 99,190, 88,112,176, 92,176, 60,188, 74,145, 23, + 92, 61, 58, 32, 91, 94,165,242, 87,112, 33, 54, 55, 54,203, 17,147, 83, 86, 30, 87,174,209, 60,128, 13, 88,227,201, 13,204,150, +115,188,228, 28, 20,177,160,103,153, 37,136, 97,102, 96,177,200, 49, 8, 25,117, 84,252,108, 78, 57,191,253, 30,111,221,123,192, +219,239,125,192, 71, 31,221,226,206,201,138,218, 41,203,229,146,235,143,221, 24, 61, 80, 29,223, 72,247,200,190, 20,165, 90,111, + 88,173,215,144, 21, 92,127,242, 89, 62,247,169, 79,243,198,103, 63,203, 11,175,190,206, 83,143, 95,103,153, 11,174, 60,167, 92, +175,104, 92,197,241,121,195,230,236,130,133,105, 96, 49, 99, 83, 5,214,165,227,238,133,231,124, 93, 98,197,115,174, 57, 23, 27, +207, 99, 78,249,220,236,130,175,189,184,228,180,254, 35,204,110,151,104,184, 15,102,241,177, 36,100,123,101,237,242, 8,225, 47, + 91,126,186, 15,215,216,127,220, 73,253,123, 69,230,179, 46,128,195,160,104, 16,124, 23,230,210, 75,198, 90, 34,154,110,208, 32, +144, 43, 7,128, 6, 97,165, 3,240, 46,226, 49,225,130, 80, 9,161,101,175,199,160,146, 46, 67, 60, 37,138, 5,240,237,238, 56, + 37, 74,107, 23,188, 34,163, 88,208,233, 37,140, 90,204, 36, 9, 62,148,224, 50,154,144,161, 54, 22,155,142,149,154, 58,112, 25, + 6, 83,150,208, 30, 46, 50,185,146, 41,141, 72, 19, 41,156, 87, 38, 62,113, 12, 17,164,227, 88,160, 29, 92,108, 29, 18,148,210, +136,209,201,239, 28,244, 21,251, 59,207,160, 58,154, 52, 53,201,174, 15,145, 36,129, 5,156,116, 94,254, 50,113,187, 99,107,162, + 31,217,211, 36,201,104,169, 95,124, 55,197,215, 65,199,200,147, 78,104, 32,201,198, 32, 78,153,134,220, 10, 77,237, 7,212, 3, +162, 71, 54,241,112,155,238,125,245, 17, 31, 18,217,229,172,182,167,184, 15,151,124, 96, 11,236, 82,120, 91, 35, 91, 20, 26, 84, +241, 77,133,177, 57,132,128,248,154,210, 5,188, 66,145, 73,239,178,151,234,231,197,152, 8, 33,183, 33, 57, 58,149,177,233,184, + 72,138,108,203,107,124,211, 64,112,227,212,181, 81,203,205,150, 41, 76,167, 42,105, 26, 23,223,165,145,237,230,112,212, 68,200, + 88,183, 62, 98, 26,111,201,249, 19,126, 8, 92, 92,156,243,234,107,175,243,197, 63,241, 83,156,158,158, 50,159, 47,168,170, 13, +231,167,199,212, 85,141, 15,190, 39,140,121, 23,147,207, 92, 19,181,211,222,123, 68, 12,207, 92,189,198,108, 62,143, 19,115,171, + 14,240,237,245,234,204, 95, 66, 8,172,215, 43, 30,220,127,192,197,106,213,194,199,113, 37, 40, 45,100, 94, 57,207,141, 27, 87, +121,254,197,231,105,156,167, 40, 44, 34,102,104, 14,162, 73, 64,228,227,216,156, 16, 60,117,237,105, 26,135,201, 50, 92, 75,118, +179,109,179, 19,130,146,183, 92, 31,147, 66,246,206,161, 33,144,231, 89, 12, 97,106, 26, 26, 31, 77, 97,172,181,172, 54, 53,101, + 89,246,172,239,163,229,146,243, 85,201,219, 31,220, 66,180, 32,107,131,104, 60, 66, 25,148, 7,171, 56,208,104, 88, 33,122, 78, + 33, 74,158, 5, 22,133,229,104,145,177, 92,206, 88, 46,150, 44,151, 11, 14, 14, 15, 57, 88, 44, 89, 30, 46, 49, 50,103,110, 2, +139,229, 12,149, 12, 33,143, 4, 59, 49, 4,215,144, 91, 37, 16,173,112,155,170,162,172, 75, 78,203, 13,231,103, 43,206,207, 79, + 57,189,184,224,254,131, 51, 30,156,173,184,216, 56,212,102, 20,197,156,197,242, 10, 7, 70,246,108,213,100, 68,242, 84, 53,132, +224,112,213,138,205,166,164,116,134, 39,158,124,156, 55,126,236, 39,248,236,103, 62,199, 27,111,124,146,167,159,122,154,185, 9, + 52,155, 51,206, 55,247,184,127, 18,215,166, 65, 44,235,178,198,213, 37, 69, 97, 49, 54,186,241, 25, 28,117,208,200, 53,192, 19, +140, 37, 52, 21, 86, 28,231,154,113,233, 54,201,104, 0, 0, 32, 0, 73, 68, 65, 84,213,195,103, 14,106,190,254,226,156,170,250, + 28,249,253,175, 64, 94,130,204, 47,193,255, 31,161,104,126,108, 24, 93,118,224,177,251,135,187,239,111,217,190,252,116,204,250, +201,120,216,246, 14, 6, 48, 93,233, 52, 32, 52, 88, 7,234,133, 77, 66,174,235,253,222, 19,169, 91,240,176,105,101,100, 38,201, + 99,238,140, 91,124,123,144, 52,218, 73,211,218, 66,158,132, 78,140,125,120,135,163, 43,116,250,113,105, 73,116, 90,192,193, 51, +216,236,132,234,226,130,198, 91,114, 51, 20, 57, 77,152,227,253,165, 55,210, 51,240,117, 66, 51,143, 83,169, 37,136,144, 73,104, +205,118, 6,120, 58,158,105, 97, 68, 98,145, 86, 34,167,137, 11, 89,122, 0,167, 35,156, 76, 59,136,201, 29, 32, 59, 38,253,113, +147,168,187, 15,218,110,127,204,144,189, 62,157,194,167,150,160,170,227, 64,212, 45, 54,117, 2,109,235,168,205, 26,243,209,181, +197,209,141, 72, 34,127,107,225, 90,239, 90, 69,197, 80, 44,189, 87,174, 60,254, 20,214,175, 57,126,112, 18,125,174, 39,123,229, +135, 21,234,135, 68, 36,143, 12,110,166,251,254,135,133,178,244,196,204,228,190,107,202, 10,223,196, 69,133,111, 28, 89,150,245, +144,187,238,128,215,173, 49,109,140,109,116, 85,116,206, 13, 5, 95,101, 91, 74, 51,249,176,141, 17,156,247,212, 78,251,130,194, + 68,113, 48,134,242, 38, 33, 50, 50,198, 32,246,166,203,141,156,246,146, 0, 11, 25, 59, 27, 78,153,249, 0, 23, 23,107,190,248, +197,207,242,137,103,158,226,254,201, 57, 71, 7, 57, 15,238,223, 99,189,169,240,193, 71,118,184, 25,136,176,155,178,238,215,118, +182, 37,200, 29, 93, 57, 2,177, 20,153,101,211,172,251,196,194,104,230, 18,179,212,107,175, 60,120,112,204,201,233, 41,161,189, +142,182,117,101,115,222, 51,159,205,153,207, 10, 94,124,241, 57, 14, 15,143, 56, 59, 47,153,205,102, 88,155,163, 94,201,172,193, + 99, 88,175, 55,228,222, 49,159, 21, 52, 65,216,212, 14, 13, 74,214, 54, 67,153, 53, 84,117,124,175,214,218,190, 48, 71, 61,121, +108, 54,140, 17,138, 34,239, 58,144,214, 60, 39, 30, 56, 77, 93,227,154, 58, 50,222, 77,156,238,107, 23,184,121,243, 3,234,243, + 7,152,108, 70, 29,162, 53,110, 22, 28,153, 4,102,214, 32, 89,134,152, 12, 36,174, 91,154,160,148, 13,220,221,120,194,221, 13, +162, 23,100,226,201,141,146, 25,101, 81, 24,242, 60, 35,207, 44,179, 34,195, 88,219, 18,232, 44,117, 19, 8, 62,230,208, 59,231, +168, 26, 79,221,120, 54,149,167,172, 27,234, 32,120, 53,136,177,228, 89, 70,158, 31,114,101,246,113, 28,204,219, 40, 90, 12,167, +167,231, 56, 87,113,229,233,151,120,237,211,159,224, 51,159,122,153,207,255,208,103,121,254,197, 23, 35, 98, 83,151,156, 93, 28, +243,160,172,209,166,198, 88, 40,108,134,211,104,231,107,213,179,152, 21,248,214, 28, 71,131,167, 14, 38, 62, 95,226,216,216,140, +166, 52, 45,243, 61, 67,196,176, 10,240,164, 11,124,250, 90,201,191,123,233, 58,174,249, 28,217,217,215, 32,175, 7, 86,252, 35, +186,200,233,165,236, 58,121,120, 57,190,132, 64,252,200,189,194,247,106, 70,179,115,167,206,176,155, 78,125,174, 67,191,187, 11, +136,154, 36, 91,187,147, 81, 69, 82,139, 87,233,173, 79,181,139,112, 77,140, 44,186,164,167,172,133,218,235,201, 65, 43, 72,155, + 80,214,225, 2, 3, 59,126, 52,185,245, 4,189,104, 39, 11, 93, 20,108,220, 9,207,175, 89, 62,155,193,123,247,225, 35,133,153, + 76,182,187, 50, 62, 56,141,196,195, 35,180,228,179, 97, 95, 24,191, 54, 19,165, 96,200,150,239,253,237,211,224, 4,145,173, 79, + 70,250,170,100, 80,177, 24,171, 72,240,184,144,234,175,119,120,122,239, 9,234,216,197,152, 28, 29,175,137, 49, 75, 15,221,246, +147,114, 11,159, 75,162, 40,145,193, 84, 38, 97, 66,141,100, 76, 50,153,188, 69,199,156,131, 81,227,161, 93, 60,143,233,191, 70, +135,213, 45,105,252,248, 64, 70, 20,104, 54,136, 54,189,253,237,136,191,182, 3, 6,219, 41,241,122,104, 99, 62,181, 71,213,113, +102,210,229, 62, 23,189, 95,122,119,205, 92, 93,183, 46,123,102, 47,147, 60, 38,185, 5, 66,136,108,106, 90,231,176,177,142, 45, + 13,209,145, 45,251,101,146,207,202,202,112,175, 69,189,187, 69,178,184, 23,158, 30, 75,210,202,149,140, 49,209,212,165,105,198, +252,130,189,135,138,140, 50,170,123,232, 61,181,209,157,236,225,187,235,242,252,115,159, 0, 17,138, 34, 99,189,217,176, 46, 55, +237,126,185, 53,221, 17, 65,113,209,207,193, 68, 43, 97, 99,226, 26,110, 49,159,115,112,176,228,232, 96, 73, 89,215,145, 3,208, + 18,184, 4,168,189,167,110, 28,119,110,223,226,228,193,131,254,158, 13, 33, 90,174, 90,107, 49,198, 98, 68,184,114,245, 10, 87, +175, 61,134,115, 81, 71,190, 92, 30,208,184, 24,202,210,212, 13,139,197, 28,150,115,234,114, 67, 93,215,216, 44, 99,158,103,120, + 19,157,215, 68, 44, 33,184, 72, 18,205,114,234,178,110,209, 67,137, 14,118, 10, 78,163,126, 61,104,192,133,136, 58,168,119, 20, +179, 5,149,131,139,243, 51, 92, 93,162, 10,133, 49, 24,155,241,230, 91,239,114,122,190,226,133,215, 62,195,147,207, 60,203,225, +225, 33, 85, 48,220, 57,190,224,236,244,152,245,249, 41,229,197, 57,161, 60, 39,215, 53,121,110,200,242, 57, 25,134,153,181, 29, +195, 37, 62, 71, 65,169, 84, 89,215, 74,168, 90,149,132,214,189,215,130,246,177,208, 3,121, 84, 68, 48, 38,199, 74, 65,190,152, + 83,180,103,198,150,185,233,163,102,142, 11, 52,193,240,224,254, 3, 62,253,252, 33, 63,249, 11,127,153,167, 95,249, 60,207, 61, +126,200,227, 87, 50, 92,213, 80,111,206,184,187, 22, 92,237,240,170, 88, 13, 72,158,181,223, 27, 9,141,133, 21,130,196,102, 41, +120, 23,201,203,198,224, 90,206,147, 53, 74,158, 25,236, 60, 35,132, 5,193, 53,168,243, 88, 83,179,214,140,231, 49,148,143,175, +249,102,253, 44,254,205, 13,182,250, 93,200, 92, 91,210, 30, 61, 63,125, 63, 89,254, 97,210, 51,125,100,232,252, 17,218,131,239, +126,150,223,106, 10,164, 35, 80,235,152,209,215,147,212, 90,123,196,182, 26, 54,162,100, 74, 31,229, 57, 24,200,116,178, 55, 19, +247, 98,157,143,186,134,126,154,117,221,174,186, 37,208,133,132,223, 43, 19,106, 85,231, 71,111, 19,230,121,231, 30,102,218, 4, +168, 72, 26,177,136,109,200,215,239, 80,190,155,241, 94,110,169,108,103,101,187,109, 40, 40, 50,141, 52, 77, 34, 67, 71,250,225, + 72, 6,112, 98,122,155,212, 65,134,164, 61,130, 49,133,177, 73, 51,176, 69, 16, 27,225, 92, 48,100, 26, 98, 97,159, 22,232, 86, +202,151, 19, 57, 8,151, 90,158, 38, 30,231,241,128, 51,100,164,121,214,233,252, 76,111, 25, 41,147, 84,179, 41, 75, 62, 36, 64, +187,140,168,125, 50, 52, 50,178, 99, 82, 86,250,207,196,180, 44,243,193,146, 93, 39, 65, 33,169, 28, 15, 78, 79, 79,226, 68,107, + 45, 35,227,135,196,206,108,215,230,106,106,206,243,168,243, 69,191,191, 79,117, 0,186,103,252,223,201, 87,143,144,250, 67, 39, +154,182,137, 10,137,153,207, 86,172,235,196, 48,137,135,100,180,143,236,133, 69, 49,162, 19,107,223,244,231,142, 35, 98, 7, 94, + 4,187,119,161, 83, 96, 95, 90,170,161,110,167, 74,165,189, 86,231, 36,119,245,234,149, 72,162,242,142,205,186,196,138, 37, 47, + 50,168,219, 56,224,150,168,216,173, 34,102,198,162,146, 81,150, 27,230,135, 75,150, 7, 7,241,176,175,155,190, 41,233,126,237, +193,114,193,189,123,247,185,117,251, 14,101, 89, 70,198, 59,173,145, 84,187,198, 42,242,156,188,200,121,226,233, 39,153, 45,151, +173,235, 91,124,173,155,170,140,203, 69, 99,169, 27,215, 6, 29, 57,200, 51, 92,237,176, 81,140, 77,211, 52,204,103, 57, 23,235, +184, 34,200, 51, 67, 99,162,105,117,132,217, 5,215,212, 88,107,169,157,195,213, 53, 69,203,118, 15, 62,106,208, 81, 75, 89, 86, +168,171,200,139, 89,159,243,254,220, 11, 47,243,211,175,189,202,147, 55, 30, 67,240,248,242, 2, 85,229,245,103,175, 82,133,231, + 56, 93,109, 56, 95,149,156, 92,148,220,190,243,128,227,143,110, 33,231, 31,177,200, 2,102,182,160, 23, 19, 75,148,202, 9, 96, +173,236,200,126,212,221, 9,136,108,237,159,182, 21, 41, 19,254,205,101, 5,189,246,194,189,187,119,248,133,207, 95,231,215,254, +193,175,179,120,233,139,220,253,240, 54,171,227, 15,185,123,175,193, 59, 64,163,170, 32,218,149,198, 49, 45,248,104, 52,214,113, + 96,130, 42, 62,120,170,202, 97, 92, 5, 25,120,111,193, 57, 50,227, 41,178, 12,157,229,212, 44, 40,203, 13, 62, 84, 81,130, 8, +209, 60,172,129, 87, 50, 71,245, 84,201, 59,238, 21,228,237, 6,219,252, 62,154, 73, 82,216,245,145, 43,100, 58,248, 92,250, 13, + 58, 94,223,237, 16, 0,252,225, 49,223,247,140,238, 89, 55, 95, 27,141,172,119,159,240,249, 72,131, 78, 52,226,240, 94, 6,219, + 78,237, 44, 84,123,152,182,133,217,219,160,142,120,184, 69,135, 36, 71,151,211, 77, 31,159,106, 38, 80,113, 31, 6,147, 28, 38, +190, 39,102, 68,114, 74, 80, 75,109,133,204,232,160,193,150, 2, 69,184,227,226,254,222,116, 83,124,202,140,110, 95,191,154,206, +146,180, 43,206,237, 42,161,109, 94, 84, 6,105,174,135,222,100,102,204,170,158, 22, 12,122,147, 26,147, 84,156,104, 39, 59,196, +165,142,128, 29, 29, 14,117, 73,164, 88,126, 95, 89,146,225, 26, 43, 25,118, 54,195,248,178, 53,187, 24, 94,139,237,175,219,176, +167, 13, 58,158, 36,189, 14, 14,223,129, 93,129, 6, 45,123,160,213,208,167,221,191,166,159,151,198, 24,202,108,167, 16,109, 76, +181, 98,178, 10,137, 83,108,226, 56,149,152, 27,117,103, 75,208,201, 3,247, 93, 63, 36, 41, 3,124,119,158,249,120,207, 49,214, +221,107,203,188,255, 56,187,173, 94, 74,167, 91, 67,250,232,124,144,201,129,178, 47, 17, 42,104,232,155, 5,239,125,203,116,219, +131,250,104,204, 9,151,212, 67, 86,210,117,144, 76, 2, 95, 24, 51, 46,250, 32,151, 29,173, 85,255,236,199,123,125, 62, 43,240, +141,163,218,148,136,208,234,175,195,144,208,101, 4, 99, 13, 89,187,239, 21, 19,247,235,243,217,140,199,174, 61,134, 6,184,184, + 88,225, 92,116,149,147, 54,110, 52, 19,101,181, 90,241,254,251, 55,227,179,111, 12,206, 7,124,112,228,237,174, 29,141, 6, 45, + 79, 61,246, 56,207, 62,251, 52, 1, 67,221,122,177, 15,113,174,142, 89,145,177,169, 26, 54,155, 13,185, 53,204,138,130,178,142, +193, 46, 85,221,144,103, 6,231,124,223,184,217, 44, 66,218,109,133,138,251,127, 27,173, 17,157,243,248, 0,117,237, 90,226,164, + 80,213, 62,238,174,235, 42,202,109,157,195, 57,207,167, 94,126,154,207,254,192, 15,177,185, 56,227,238,135,111,115,118,177,198, +181, 12,255,194,194,193, 44,103, 38,134,163,194,242,226,179, 75,126,224,133,215,184,179,126,149, 55,111,222,229,253,183,223,194, +156,220,100,145,131, 41, 22,116,134, 72, 50, 76, 3,147, 22,125,186,168, 28, 12,174,182, 43,204,248, 4, 27,158,137,177,155,224, +148,224,185,169, 28,199,119,239,242,231,190,240, 20,255,205, 63,250,117,138, 23,254, 3,222,251,240, 14,199,199,247,161, 90,227, + 84,168,106,135, 5,230,139, 2,159, 29,224,106,143,247, 53,210,134,231,160, 30, 85, 71,208, 64,227,219,154,163, 22,113, 13, 94, +163,134,222, 24,137,198, 69,153,224, 75, 67,112, 62,146,158,219,201,203, 0,165,194,204, 11,175, 91, 71,243, 12,220,108, 94, 67, +222, 45, 49,238, 45,176, 11,180,139,173,213, 71, 57, 49, 30, 21, 3,215,193,206,249, 17,127,210,195,179,225,190, 79, 37, 63,249, + 81,153,170, 38, 89,231,233,158,181,147,173, 24,196, 10, 70, 2, 38,196,120, 82,207, 16,216,210, 77,187,233, 28, 59, 24,132,180, +211,177,166, 89,216,221,222, 62, 74,209, 52,157,211,146,124,116,211, 77,138, 29, 84, 36,210,170,224, 52, 26, 63,136,193,152, 84, + 10,102,176, 38,106, 54, 59,183, 47, 63, 74,198, 52, 45,228,217, 89,128,118,218,115,217,145, 31, 52,158, 8,101,207,182,101, 90, +224, 37, 97, 33,131, 39,120,139,177, 96, 91,221,252,206,162,100,226,181, 10,173,129,143, 38,206,107,236, 33,241, 5,133,204, 66, + 33,194,202,233, 32, 5, 76,100, 99,178, 53,215, 38,238,105, 12, 81,170,125, 17,210, 14, 58,159,134,225, 36,239, 79,146,245,140, + 6,172,205,121, 98, 30, 15,200,210,135,248,224, 50,214, 51,111,255, 20, 18,205,254,176,231, 79,201, 90,170, 26,201, 78,179, 5, +153, 40,117,211,140, 98, 81,199, 88,203, 37,197, 94, 39,240,187, 60, 90, 91,160, 83, 62,132,126,188,103, 80, 36,245,188,222,189, +199, 86,153,114, 41,228, 33,144, 94,226, 61, 32,178,151, 80, 57,152,223,200, 22, 81,115,219,183, 93, 39,129, 47,187, 26, 10,157, +144, 33,199,200,144,107, 42, 54,101, 52, 7,153,205,230,248, 32, 4, 7,214,102, 61, 65,112, 62,159,179, 92, 30,112,113,118,218, +191,230,197, 98,193,108, 54, 99, 93, 86,160,129,160, 30, 43,134, 44, 47, 40,171,154,186,174,120,112,114,198,102, 83, 97,219, 88, +217, 44,139,220,109, 52,224,125,220,123, 59, 31,184,118,237, 42, 89,150, 83, 85, 13,206, 7,178,118,207,172,117,131,247,161,245, +153, 23,102, 69, 17,167,205,186, 70, 53, 80,215,190,111, 40,209,104,106,101,188, 68,111,122,107,105, 92,252,254, 88,136, 3, 85, + 93,163,222,199, 9, 93, 67, 92,171,132,120,142,172,203, 21,121, 22,189, 38,107,239, 57,156,101, 20, 70,248,198,111,125,157,213, +166,108, 3, 96,180, 53, 8,138,197,179,156, 23,228,197, 12, 45, 27,204, 89,201, 50, 23,158, 57, 40,120,246,211,215,185,253,210, +147,124,243,189,215,248,224, 91,223, 36, 59,189,201,124,145, 65,190,232,131,177,130,104,203,205,184,164,192,164,144,154,140,135, +215,189,164,110,198, 1, 72,210,230, 72, 28,159, 93, 16,154,154, 63,255,197,207,241, 55,255,235,191,130, 60,243,227,188,251,254, +109,238,220,125, 64, 88,159, 64, 30,155,182,235,143, 29,114,112,120,196,108,113, 64, 48, 57,117,227, 9, 77,133,243,129,218,213, +172,214, 14,119,113, 2,254, 60,198,217, 90, 65, 37, 71,213,226,170, 6,139,195,153,184,186, 84, 99,162, 23,128,116,150,205, 49, +252,198, 24,143,181, 6, 39, 25, 5,240,169, 66,113,207, 43,183,252,103,152,189, 31, 48,254, 93,200,230,104,199,154,214,203, 80, +136,225, 48,146,135, 76,219,210, 27,176,201,132,220,242,240,243,228,187,161,188, 63,122,201, 31,191,183,172,219,165,135,238, 70, + 33,209,180, 66,212,144, 7,193, 91,162, 60,163,221,235,164, 46,106,154, 90,171, 38, 5,157, 62,244,163, 53,165,233,165,102, 58, +100,167, 51,200,230,122,216, 30, 51, 24,170, 36, 81,165, 93,151, 20, 37,108, 33,154, 68,208,217,220,118, 71,189,137,128, 85,107, +146,208, 55, 14,137, 81,201,248, 74,183, 77, 75, 18,189, 58, 28,144, 33,165,131, 49,177, 14, 25, 67,194, 9, 19,173,203,250, 14, +248, 72,195, 79, 14,101,217, 30,193, 35,106,145, 64,170,178,171, 67, 76,183,246,226,105, 54,107,156, 68,137, 85,208,129, 8, 21, +100,242,100,142,118,255,154, 68,169, 74,226,116,150,210,161,135,155,124,186,231, 31, 49, 60,219, 6,108,158,103,209,215,188,113, +212, 85,104, 37,134, 15,129,161,164,131,225, 52, 1,250,187, 20, 51, 15,118,206,141, 39,174,208,172,207,168,106,191, 27, 33,215, + 71,124,104,116, 7,173,238, 81,163, 24,245,123,107,166,247,146,211, 36,133,179, 7, 9,224,101,191,202,236,212,150,239,163, 9, +134, 81,214,192, 4, 91,220,243,250,182, 15,170,135,145,235,130,194,217,249, 57,206,199,124,114,107, 51, 66,208, 40,237,114, 17, + 85,176, 38, 70,239, 44, 15, 22,228,197,140,208, 68,183,190,195, 43,135,228, 69, 17,119,170, 33, 54,136,222, 59,124, 85,210, 13, + 26,213,102,195, 98, 86,112,255,193, 49,171,139, 21,153, 49, 72,102, 89,173,227,190,219, 7,101,150,231, 49, 93,173,174, 35,185, +206, 73,107,195, 26,240, 33, 18,217, 26, 23,152, 23, 25,179, 89,198,106, 85, 18, 90,163,165, 24,182, 99, 34,235,221, 10,153, 26, +130,181, 24, 12, 70, 34, 81,206,183, 76,251,166,118,120,231,219,207, 33,196, 70, 36, 68,244,175,170, 34, 52, 92, 20, 57,174,253, + 30, 49,134,155,119, 78,113,222, 71,131, 24, 19, 45,153,171,198, 19, 66, 96,150, 91, 26, 53, 4, 23, 9,122, 54,179,148, 38,163, + 42, 13, 75,119,193,203, 71, 51, 94,248,193,103,249,214,179, 79,240,123,223,124,151,227,247,190,133,189,184,143,181,113,120, 17, + 99, 80,107,233, 34,175, 90,227,226, 61, 99, 99,210, 22,202,229,133,125, 56,145, 59,139,110,225,226,252,156, 87,159,189,202, 79, +127,233,103,248,226, 79,253, 56, 60,241, 18,183,239, 28,227,154,138, 43,135, 11,102,215, 15, 41,242, 57,139,249,140,249,124,206, + 44, 3,147,103,108,156,165, 60, 63, 37,100, 14, 31,160,209, 72, 80,244,107,208, 96, 17, 9, 44,114,131,147,156,139,141,163,160, + 34, 91,228,248,122,198, 34,156,163,102, 70, 89, 65,168,114, 60,177,193,138,147,190,193,104, 68,152, 29, 80,120,195,231,102, 14, + 94,153,113,139, 63, 66,113, 51, 96,221,123, 96,151, 12,254, 30,178,103,114, 79, 31,116,217,219,193,143, 6, 59,221, 67,192,249, +174,246,227,223,227,180,190,139, 40, 23, 18,227, 25,116,232, 34, 73, 72,115,170, 17, 70,174, 37,214,168,142,189, 27,186,130, 74, + 24, 65, 18,166,133,120, 67, 91,145,179, 54,105,205, 37, 41, 32, 6, 29, 89,198,202,100,123, 26,229, 80,161, 93,239, 13,150,162, +161,111, 2,232, 13,110, 98,238,121, 11, 12,107,232,119,130,166,173, 96, 94, 83,248,154,246,119, 71,146, 28, 38, 54, 13,125, 58, + 93,152, 0,200, 33, 73, 77,151, 52,150,146,100, 26, 27,151,222, 97, 82,139,191,208, 79,152,196, 9, 28,210, 23,157,233,217, 57, +252,166,137, 22, 93, 7, 28, 37,118,254,233, 80, 58,216, 84, 26,182,237,104, 66,232, 18,232,100,196, 51,232,243,200, 69, 38, 26, +122, 25,105,245, 73,146,236,164,109,248, 30,212,142,220, 72,100, 24, 27,193,251, 49, 86, 96, 8,212,237, 84,101,146,184, 89, 73, +211,244,100,112,147,235, 26,180,153, 9, 84,173,247,117,102,205, 4,202,210,143, 65, 34,145, 71,130,224,134,161, 70,199, 42,129, +148, 29,254, 8,191,180,219,103, 27, 99, 46,125,100, 83,252,228, 81,173, 41, 83,251,214,125, 59,248,206,211,191,191, 31,247,189, +119, 77, 61, 7,233, 77, 95,108,146, 17,207, 40,222,117,155, 88,239,124,224,254,189,187,113, 66,109, 9,167,214,218, 86, 39, 31, +153,239, 33, 68,121,157, 54, 13,121,102, 57, 95,199, 0,150,171, 71,209,157,204,133, 26,107,108,180, 15, 13,109,122,163,122,206, +207,207,216,108,214,248, 16,216,148, 37,155,170, 38, 51, 81, 57,209, 1, 12,198, 10,139,121, 76, 79,171,155,134,229,108, 65,150, + 65, 89,151,108,214, 43,172, 93, 98,196, 80,180,166, 49,117, 21,155,129, 89,145, 35, 54,107,225,249, 8,237,102,214,162, 33,234, +114,124,104,176, 6,140,181,148, 85,213, 59,205,169, 42, 46,132,158, 99, 99,140,233,215, 32,121, 62,139,198, 87, 10,179,153,197, +102,134,166, 37,244, 69,165,142,193,181,123,229,217,172, 96,177, 88, 80, 20, 69,148, 73, 18,139,160, 49, 22,107, 5,178,140,219, + 27, 33, 28,127,196, 39,175, 22,188,246,211,159,227,235,111, 61,207,237,183,190, 77,189,185,160, 42,215,184,186,196,215, 37,132, + 6, 9, 21, 86, 90, 66,167,141, 82,190, 40, 89,146,173, 70, 93, 90, 8,249, 97,228, 56,211,202,120, 31, 28,159,243, 35, 47,206, +249,197,191,244,103,121,238, 7,126, 18, 51,127,140,147,211, 13, 51,217,112,112,112,141,197,124,206,226,224, 0,212, 98, 66,201, +186, 42,217,156,159, 99,164, 98,227, 4,231,149,218, 71,101,192,170,114,212, 23,107, 8, 21,166,117,203, 51, 86,169,157,254,255, +188,189,251,175,100, 89,150, 30,244,173,181,247, 57, 17,113, 31,153, 89, 89,153, 89, 85,221,211, 61,212,244, 12, 30, 49,204,120, + 60,200,136, 97,198,104, 64, 54,143, 31, 48,146,133, 4, 66, 22, 18, 6,131, 44, 16, 8,176, 24,108, 12,255, 25,191, 34, 30, 50, +146, 49,102,102,186,167,219, 93, 93,239,172,204,188, 55,239,189, 17,113,206,217,123,175,197, 15,107,239,125,246,137,136,155,153, +213,221,144,163,233,238,170,155,247,222,136, 19,231,236,181,214,183,190, 7, 60, 2,184,183,213,205,228, 18,196,247,208, 33,192, + 81,130,119, 29, 32, 46, 55,255,206,136,221,162,128, 70, 56, 2, 38,231,176, 33,198,111,175, 70,132,143, 55,120, 30,127, 23,155, +207, 71, 80,122, 14,184, 77, 51, 97, 47,155, 28,212,179,140, 22, 9,159,239, 70,148,187,255, 95,252,220, 37,250,231,153,214, 23, +103, 92, 33,202,149,100,180, 82,244, 84,115,134, 55, 3, 78,103, 18, 89,190, 22, 90,146, 40, 69,235,142, 12,142,209,169,128,147, + 98,148,198,157, 46, 91,213,165, 60,109, 23,205,180,102,141, 50,138, 33,141, 69,142, 53,178,184, 28,142, 64,214, 32, 84, 36,161, +241,105, 47, 7,142,165,164,229,195, 73,155, 80, 81,157,125,193,137,180, 49, 43,209,198, 61, 79,151, 16,237, 65,152, 9, 26, 66, + 96, 65, 4,242,108,127,100,187,218, 82,207, 10,226, 65,237,212,212, 34, 23, 68, 39, 19,198,150,159,149, 86,238,138, 52,112, 39, + 81,201,135,159,229,109,203,192, 24, 90,172, 16,218,226, 94,130, 84,150, 93,231,156,161, 61,107,255,180, 66,172,135,187,161,182, + 1, 80, 17, 32, 70,192, 59,196,100,217,216,212, 28, 10, 2, 69,100,143,239, 94,158, 91, 44,231, 36,182,239,108,145,139,134,145, + 94,139,130, 70,124,253,205, 75, 16,113, 45,232,191, 24,243,100, 9,237,191,109, 23, 70, 71,233, 81,223,126, 58, 23,145,119,121, + 57, 85,255,123, 42,179,253,126, 32,126,222,149,235, 27,254,234,172,196, 56, 49,113, 87, 82,221,140,158,212,123,184,105, 98, 78, +153,114,148,207,223,119, 29,190,248,226,115,236,119, 91, 80, 38,113,121,103,187,204, 73,131, 21, 74,207,216, 15,123, 60,127,254, + 28,227, 96,166, 49, 15, 30, 60,192,217,249, 57,134,201, 96,113, 81,115, 79,243,222, 97, 63, 4,140,227,128,111, 94,188, 64,152, + 38,236,135, 61, 82, 52,185,211, 24, 19, 82, 50,115, 32,102,182,233,151, 9, 97,154, 16,166,128, 1, 0,179,195,126,154,240,205, + 55,223,224,189, 39, 31,218,217, 17, 3, 92,215, 89,209,244, 90,101,184,157,119,128, 55, 67,153, 16, 2,198,105,194, 48, 76,216, +237,118,136,211,104, 25,228,201,248, 55,222, 57,132, 24,161,146, 50,171,156,243,121, 25,209,117, 30,196, 61,188,243,249,236,180, + 85,198, 52, 14, 24,247,123,104,140, 96,102,176,239,224,185, 51, 75, 97,102, 35,147, 21,158, 65,178, 68,202,152,128, 97,152,178, + 65, 17,227,171, 45,176, 30,191,192, 95,184,244,248,248,247,126, 19, 99, 16, 12, 33, 98,187, 27,177,223,237,176,219, 15,216,237, +118,216,239,119, 24,247, 59, 76,227, 14, 50, 13,160, 52,129, 53, 86,196,145,170, 92, 81, 27,210, 44,101,114,171, 46, 8,144,200, + 28,146, 40,138,223,250,254,251,248, 43,127,244, 47, 99,117,241, 12,107,157,128,158,240, 58,246,240, 41,226, 12, 9, 94, 35,110, +111, 94,227,229,213, 22,195,205,115,140, 49, 98, 63, 36,112, 28,224,157, 89,212, 38,177,102, 40, 70,243,216,135,235, 32,193,214, + 23,147, 50,210, 56, 97,237, 20, 19, 28,194, 4,120, 68, 12,204,240,222,163,239, 59, 76,195, 8, 68, 35, 20, 11, 24, 26, 83, 38, + 35,185,172,206, 2, 6, 37,156, 37,194,111,111, 70,252,195,143,215,184, 9,127, 17,171,175,255, 15,128, 94,131,120,211,160,164, +205,228,222, 10,128,222,129,179,126,255, 63,233,207,181,161,255, 37,112,226, 78,252,131,201, 30,225,178,118,156,154,238,165, 20, + 38,206, 83,176,138, 34,148,212, 53,165,250, 16, 67, 19, 84,140,160, 85,242,188,147, 46, 56,198,117,194, 46,187,192, 18,133,153, + 48,107,210, 5,197, 82,150,102,208,183,236,251,169,209, 61,107, 83,140,168,241,104,111, 38, 15,105,118,168,140,217, 63, 94,129, +133, 15, 58, 85, 20, 66,106, 48, 87, 33,155, 73, 27,160,114,140, 76, 55, 25,232, 86, 96,141, 71,192, 64,215, 97,133, 9, 49,160, +122,199, 31, 66,199,218, 92,139,123, 21,162, 53,219,151, 22, 43,138,182, 40,187,220,248,180, 44, 86,173,190,253,118, 68,199, 60, +193, 23, 25, 32, 45,254,238,242, 54,148, 5,251, 19,139, 41,142,233, 96,250,207, 79, 67,138, 19,178, 18,105, 97,227,154,189, 62, +208, 57,135, 11, 78,248, 90,210, 2, 33, 64,229, 54, 28,106,160,237, 61,123,239,114,236,238,183, 53,129, 60,177,184,111,163, 75, +223, 73,191,218, 18,203, 26,118,159,126,139,134, 91, 79, 51,228,244, 0,176, 89,228,174,224,126, 22,252,161,217,208,187, 31, 26, + 51,148,142,147, 19,126, 38,140,230,136,216, 73,223,128,205,202,178, 25, 89,175, 55,248,226,243, 47,113,125,245, 10,220,159, 35, +132, 9,155,179,115, 51,116, 33, 66, 82,129,119,192,221,237, 29,118,251, 1, 46,155,184, 60,124,248,192,146,203, 82,194,106,189, +201, 50, 53,131,181, 87,125,143,221,118,135, 24,146,165,120, 37,129, 35,158, 89, 34, 10,132, 20,225,179,118,127,203,132,155,215, + 55, 56,127,112,137,224, 28, 56, 90,136,212,203,171,215, 96,215,101, 85, 6,208, 59, 2, 59,143, 52,216,158,127, 10, 33, 79,237, + 30,206,121,236,247, 99,110,196, 8, 41, 10,118,195, 4,130, 53, 26, 33,204,166, 51,101, 48,208,100, 68, 57,115,188, 99,244,125, + 15,151,245,234,165,112, 80,244, 86, 28, 67, 2, 83,194,138, 8,226, 44,116,134, 40, 26, 25,143, 34, 28, 60,130, 10, 58, 15, 36, + 33,132, 24,176,234, 60, 86,189, 7,136,112, 27, 20, 46, 4, 56, 14,232,153,177,233, 24,143, 30,121,232,195, 7, 80,122, 4,229, + 14, 81, 8,251,144,112,123,183,195,118,183,195,221,221, 22,251,237, 22, 36,131, 5,221,192, 35,164,100, 43, 83, 1, 68, 2,188, + 38,116,157, 55, 13, 56,179, 53,212,206, 50, 50,136, 29, 62, 56,239,241,235,223,255, 14, 70,239,113,119,243, 26,159,127,241, 28, +239,223, 94,227,209,147, 15, 17,250,135,120,126,189,195,112,247, 37,246,227, 14,219, 81,224, 72,225,124,143, 64, 14,202, 27,139, +120, 29,115, 66,161,154,227,157,192, 35,141, 19, 58, 74,208,174,183,212, 59, 50,133, 2, 11,224, 88,145,136,177,226,132,216,217, +107,233, 29, 16,251, 21, 36, 25,105,206,152,204, 54,169,151,221,191,138, 98,167,138,135, 0,254,226,131, 1,255,240, 7,143, 48, + 76,191,131,254,234,127,135, 82, 0,208,131,160, 7, 43, 80, 90,216, 30,191, 49, 74,245, 20, 57,232, 91,135,197,252,146,255,208, +125,240,187,228, 73, 60, 27,132,180, 5,161,184,179,132,106, 69, 57,123,129, 59, 16,136,108, 50,163, 4, 75, 45, 91,116,246, 57, +156,161, 33, 25,112, 51, 89, 8,180, 9,136,209, 42,147,163, 42,191,209, 58,141,150,233, 24,208, 50,212,231, 46, 83,176, 52, 68, +161, 35,146,103, 65, 4,232,128,245,169,117, 95, 79,243, 24, 75,109,124,233,124,192,107, 51, 21,181, 78,115,212, 76,236, 69, 17, + 0, 9,115,244, 98,109,110, 90,131, 17, 58, 65,176, 59,133,225,232,114,186,207,191,171, 77, 21,110,189,152,149,168, 49, 51,161, +163,233,175, 22,147,252,154,180, 97, 67,183,166,169,197,101,175, 32, 35,157,115,232, 8, 24, 99, 92,238,236, 50, 15,128, 65,153, + 77,143,172,169, 38, 36,137, 70, 88,242, 29, 72, 38,252,232,106, 0,120, 14,219,153, 35,103, 15, 66, 93,107,120, 76,195,124, 63, +129,136,188,149,183,118,104,208,255,173,178,140,155, 8, 88,210,166,193,250, 22, 9, 78,149,216,243, 22, 83, 10,106,209, 18, 28, +240, 23, 78,245,224, 75,154, 38,221,135, 60,180,190, 2,218,230, 90,211, 73,184,190, 56,185,189,233,100,155,189, 30,230,206,109, +213,247,120,254,226, 37, 94, 61,255, 26,223,253,193, 63,135,237,205, 43,156, 95, 92, 54, 77,157, 98, 24, 6,108,239,238,224,156, + 51, 50,156,119, 56, 63, 59,207,154,244,166,241,207, 5,147,137,112,119,119,135, 16,108, 82,142, 49, 34,165,144, 13, 79,242, 51, + 79,132, 32, 2,202, 54,178,219,237, 93,142, 83, 78,117,181, 23, 5,184,185,219,130, 32,112,157,203, 19,190, 65,241, 83,136,112, +206,166,212,221,126, 4, 97, 52,146, 39, 1, 41, 69,140,211,104,133, 6, 84,221,237, 98, 74,245, 12, 16, 49,180,160,239,123,136, + 40, 28,155,188,111, 28, 39,132, 56,101,255,120, 70, 8,161, 94,247, 36, 70,254, 92, 57,111,159, 67, 45, 16,150, 95,174, 48, 38, +190, 65,249,206, 52,219, 49, 2, 36,112, 25,145, 16, 16,162, 50,166,104,200,134, 74,130,103,130,119, 17, 43,199,232, 89,113,121, + 73,192,195, 75, 16,191,135, 0, 15, 77, 9,189,183,157,253,102,221, 97,179, 89, 35, 81,111,191, 43, 69, 72, 78,121,243,157,179, + 92,116, 49,203,221,179,222,131,186, 13,190,120,254, 26,244,250, 5, 84,214,240, 87, 35,158, 92,174,240,248,102,135,201,157, 97, +156,162,113,152,156,135,119,230, 71,207,136,232, 28, 67,186, 21, 36,121,196, 24,144, 72, 0,117,198,118, 15, 17,172, 9,202,132, +105, 26, 64, 18,225,123, 15, 37,135,148, 34, 52, 41, 24,201,162, 24,242, 58,168,115, 12, 73,118,255,123, 7, 4, 50,247, 57, 74, + 9,112, 10, 74, 10,166, 0,113, 14, 67, 98, 60, 35,193, 95,120, 52,224,255,250,254, 51,164,253,111,100, 13,123, 50,164, 85,231, +129,177, 70,193,194,220,241,222,120,194,220,159,133,244, 78,208,185,190,107,117,254,182, 16, 60,157, 32,202,113, 49, 46, 88, 46, + 29,192, 90,124,212,181, 66,198, 32, 11,174,168, 68,169, 70,249,144, 26,200, 26,121,143,164,217, 40, 70,178,166, 84, 14,120,217, +229,144,136,152,139,107,209,228,170,226, 64,110,101,133,159, 23,108,251,124, 88, 75, 3,201, 19,213,149, 65,201,114,167,131, 96, +174, 38, 27, 14, 76,203,159,169,121,215,207,249,119,138,158,216,185,150, 46, 15, 75, 57, 30, 96, 89,192, 99,221, 85,223, 67, 97, +103,157, 93,197,112,159,229,169,214, 38, 11,170,144,254, 28, 23,157, 96,218,237, 17, 50, 58, 81, 14, 65,201,172,251,217,208,100, +126,141,220,144,247,244, 64,134,199,139, 24,214, 38,200,163, 41,178,142, 24,207, 46,122,132,113,192,151,219, 17, 82,180,251,217, + 33, 48, 97,214,203, 39, 85,136, 70, 80,183,193,227, 71,231, 24,238,174, 48, 69,219, 61,158,214,150, 31,199,165,138,200,155,137, +118,239,186,187, 90,250, 89,190,251,184, 95,212, 1,117,239, 63,123, 39,188,235,159,178, 79,175, 40,208, 97, 10, 42, 45,234,237, + 98,199,125,127,127,162,173,154,191,161, 24,234, 91,176, 57, 61, 98,198,159, 28, 63,202,115, 87,178, 2,244,132,241,101,227, 39, + 79, 48,167,181,171, 87,119,248,228,147,159,226, 55,127,231, 95,196,215, 95,126,138,247,222, 11,232,250, 30,211, 52,130,153,112, +115,187,197, 20, 70,172, 87,107,220,109,239,240,224,193, 5, 86,235, 21,136, 24, 41, 69,196, 48, 89, 62, 0,153,243,220,221,246, + 14, 55,183, 55, 8, 33, 96,191, 27, 16, 67, 68, 18,169,103, 69, 37,149, 74, 66,231, 44, 24,106,154, 38,196, 16,225,122,147, 88, +198, 12,119, 15,227,136, 48,141, 22, 75,154,108,239,174,176, 34, 12, 50, 3,159, 24, 83,157,194,157,179,224,152,148,131,112,166, + 16,155, 91,201,164,121,134,188,121,172,215, 61,144, 11, 81,140, 9,251,219, 59,132,152, 76, 21, 66, 17,222, 27, 79,192,123,103, + 8,150, 51,185,156,180,220, 35, 54, 2,157,102,210, 95, 74,166,145, 47, 73,104, 2,203,117,231,108, 92,229,152,160,153,212,219, +117, 30,130,206, 8,129, 80,132, 40, 57, 72, 39,229,162, 24,234,253,123,183, 87, 56, 77, 24, 29, 97,203, 25,117, 99,130,228,108, +130,205,170, 3, 73,143,100, 33, 25, 88,109, 58,120,223, 99, 31, 70,172, 55, 14,226, 31, 99, 98, 64,157,199,157,174, 17,111, 18, +188,223,161, 95,245, 88,121, 7,245, 14, 33, 0, 33, 5,144, 10,122, 47, 32, 23, 33, 89, 99,223, 57,103, 90,127,137, 70, 31,102, +198, 16, 21,154, 18,214,153,160, 62,165,104,182,200,106, 70, 52,174,216, 11,139, 98, 74, 33, 55, 31,153, 48,202,150,152, 39,108, +141, 34,169,192,121, 27, 40,162, 0,187,160,248, 72, 34,174, 30, 71,124,242,157,239,131,127,122, 13,146,207, 12,134,175, 20,155, + 67,247, 79,109,200,216,167, 33,121,125,107,133,253,255,121, 82,191,143, 40,135, 26, 85, 74,149,181,109, 68,139, 89, 67, 62,107, +104,233, 64,138, 51,107,213,185,228, 59,151, 80,149, 98,177, 72,217, 35,152,180,209, 72,219, 15,144,156, 31, 94,131, 51,106,105, +155,135,103,110, 11,252, 65,238,116,229,104, 54,124, 0, 57, 58,178,180,110,233, 79,125, 76,154,119,214,109,137, 41,144,221,161, +136,170, 58,180, 1,139,255,141,102,125,160,153, 40,104,107,129, 70,167, 92,180,194,185,208, 10,105, 83,107, 78,155, 22, 18,116, +142,158, 77, 19,148,179,196,176,105, 82,228,160, 96, 81,131, 80, 80,227,254,165, 7,134,179,135, 26,246, 18, 52, 35, 57,115,188, +188,184, 36, 17,219, 1,112,210, 66,184,246, 89, 69,101,188,119,113,134, 46, 77,120,177, 15,232,152, 48,102,129,252,229,198, 35, +238, 76, 79,234, 8, 11,221, 51,213,162,182, 44, 74,244, 45,238,225,165,116,235, 13, 79, 16,181,222,251,111, 54,163,208,131,207, + 74, 27, 41, 76,202,137, 89,239,244, 26,245, 64, 58,118,224,246, 97,215, 57, 85, 94,138, 57,197,241, 91,118,253,180, 68, 43, 84, +129,251,148, 6,173, 39, 48, 45,155,180,229,238, 31, 75, 31, 2, 61, 36, 10,234,189,239,107,126,254, 28, 62,249,233, 79, 33, 50, +130,184,195,245,213, 43,188,247,228, 41,156,239, 16,166, 17,211, 56, 33,196, 4,210, 8,231, 28, 46,206, 47,176, 94,175, 17,163, + 64,137, 49,140, 3,250,190, 67,215,173, 1, 88,108,232,106,125,142,235,171, 43,147,145,153,111,171, 17,238, 98,130,115,150, 65, + 14, 24, 10,152, 68,112,125, 29,112,125,125,133,247,251, 77, 13,179, 1, 27, 49, 46,197, 88,185, 54, 81,204, 92,198,117, 29,166, + 16, 44,253, 44,235,210, 53,153, 15,252, 46, 79,247,146, 21, 52, 5, 37,240,206,229,215, 16,243,116,204,136,106,100,213,105,154, + 48, 78, 19, 58,239,192,176,221,123, 28,130, 57,227,177, 77,201, 76,135, 94,140,230, 47, 31, 99,132,235, 58,168,138,125, 63, 51, + 36, 41,216,229, 41,158,140, 16,152, 4,208, 40, 32, 49, 27, 90, 31, 39,116,125, 15, 38, 95,253, 16,172, 33,176,127, 14, 49,193, +177,194,121,111,207, 46,219,221, 50, 42, 16,162, 32,140, 1,154, 34,214, 61, 97, 72, 12,108,239,224, 29, 97,221,119, 80,120,220, +236, 70,164,113,192,121,239, 64,231, 43,120,231,112,177, 89, 97,125,126,142, 73, 60, 72, 3,160,214,248,104, 48,231, 56, 82,147, + 60, 79, 73,225,100,128,243,182,242, 48,229,159, 24,105,208, 17,130,102,148,151,212,138,246,104,168, 3, 49, 16,224, 33,113,194, +148, 34,194, 56,216,245, 55, 24,208,228,146, 2,168,136, 69,205, 50,129,148,171,236,174,172, 71, 71, 48,124, 16,124,236, 34,110, + 62, 92,227,234,246, 7, 88,125,243, 26,160, 29, 64, 43,227,241,208,233,189, 52, 53,123,214,234, 48,218,140,163,170, 56,237,185, +125,112,174,232,183, 46,236, 63,199,180,126, 15, 91,207, 75,233,126,114, 33, 43, 54,151, 74,148,253,207,219, 32, 19, 93, 64,113, + 37,169, 43, 29,139,110,225,235, 6, 67,243,228, 95, 14,116,147,183, 37,210, 6,210, 46,204,251,153, 13,207,217, 60,166, 20,215, +106,204, 82, 14,157, 12,213,207,157,150,228,201,152, 23, 58,218,118,242,148,230,247, 81, 99,191,153,238,145,236,148,142, 77,105, +118,209,163,166, 25, 40,122,124, 48,205,124, 99,109,127,103, 51,174,211,108, 8,177,178, 69, 63,118,141,193, 73,209,227,215,236, +239, 50, 13,151,233, 40, 5,108,163,113, 25,248,192,242,182,133,170,165, 65, 32,236, 71,203,145,162,187, 68,112, 22, 93,251,236, + 0,183,244, 70,231,108, 77,250,106, 24,171,132,177,222,216,206, 97,179, 62,195,123, 93,194,213, 24,145, 0,172,137,208,121,143, + 48,237,241,217,231, 91,144,115,240,142,170, 85,172,230, 15,211, 17, 29,200, 4,117,142,253, 84, 28, 21,171,118, 15, 95, 88,254, +182,115,151,218,136,222,219, 2,156, 50,138,191,111,109,188,144,102, 54,210,197,204,144, 21, 49,249,209,219,220,223, 10,251,189, +117,118, 91,254, 29,129,239,250,124,104, 19,186,174,195,221,237, 13,112, 24,152,113,176,110, 57,100, 24,188,147,163,222,161, 31, +124,163,104, 57, 94,244,235,209, 90,228,126, 9, 92,126,206,251, 21, 62,255,252, 11,220,221,222,224,252,252, 12, 87, 87,175, 16, + 98,192,147, 39, 31, 54,228, 77,198,118,119,139,190,235,176,217,108, 44,247, 60, 26,172, 76,222,217,117,112, 14,222, 49, 66, 24, +140,213,156,139,232, 52, 77, 8,193,188,204,157, 99,140,227,128, 41, 4,211, 41,167,226,138, 38,160, 0, 0, 32, 0, 73, 68, 65, + 84, 8, 34,198,176,143,120,125,253, 26, 15, 31, 63, 1, 23,246,183, 34,223, 31, 86,192, 98,138,230,191, 15, 96,200,164, 52,239, + 13, 54,150,148,112, 55, 12,120,117,117,141,105, 26,178, 27,224,220, 20, 39, 85,144, 8, 98,178, 98, 73,142, 76,179,174,132,105, +138, 24, 7,107, 76,108,183,107,167,196,148, 50,246, 39, 10, 34,133,231, 46,103,191, 27,252,206,121,111,157, 50,217,212, 57,159, +205,119, 76,174, 86, 12, 97, 82, 74,214,152,148, 87, 19,237,121,158,130,128,199, 96,251,252,206, 3,236,141,240,158, 39,146,149, +103, 32,251,231,247,157, 67, 84, 6,165, 96,207, 24, 3,174,247, 0,124, 70,250, 0, 17,251,228, 19,247,120,113, 27, 49,133, 61, +156, 10, 58, 79,112,110,196,197,218, 97,208, 51, 91, 41,100, 79,144,232, 13, 54,167,236,195,207,208, 76, 0, 4,198, 52,193, 79, +138, 68, 30, 44,130,190,103, 36, 94, 65,147, 53, 89, 54,128,185, 44,199, 53,165,132, 18,144, 52, 33, 18, 33, 68, 5,139,128,156, + 67, 20, 6,226, 4, 34, 69, 84, 7,137,198, 81, 32,207, 16,113,153,108,171, 21,233, 75, 57,118,119,163,192,175,173, 71,252,227, +239, 94, 34,238,126, 0,191,251,191, 43, 12,191, 48, 38,171, 79, 23, 99,118,224,212,134, 80,247,237,150,232,135, 60,160,255,111, + 9,115,199, 63,221, 91,166,112,241, 64,111, 89, 78, 25,138, 54, 17,193,204,255, 46,150,173,121,111,232,234,209, 83, 2, 44,138, + 12,109, 78, 7,227,172, 75, 14,197,185,173, 57,108,203, 25, 33,197,151,156,230, 36,240,204,193,175,208,241,236,149, 93,224,233, + 89, 86,150,168, 51, 31,248, 36, 96, 6, 58,139,135,170,251,250, 2,173,148, 15, 77,202,228,185,240, 59,207,122,121,154,153,162, +218,236, 48,237,125, 44,145,132,242,224, 42, 29, 43, 30,203,245,150,133,121,139, 96, 76,200,122,123, 90,146,220, 14, 39, 74,204, +141, 83,137,160, 68, 67,114, 59,101, 61,170,106,233, 97, 11, 9, 89,171,177,167,150, 69, 63,251,161,147, 2,224,172,102, 40, 22, +167,165, 9,210,195, 24, 89, 2,137, 66,166, 29,126,186, 11, 8,194, 88, 57, 96,204,208, 57, 17, 1,236,150,193, 51, 13, 43, 44, +106, 9,127,193, 65, 80,137, 46,138, 7, 53,205, 87, 33,185, 17,128,190,243,112,158,160,194,152,166, 88, 11,251, 34,198,148,154, +150,249, 13,226,220, 37,159,173,245,196,182,146, 30,147,224,114,189,198,239,253,218,247,240,227, 47,190,194, 79,190,185,194,166, +239,126, 62,246,123,190,117,167, 48,225,163, 39,207,240,232,193, 5, 62,251,236, 51,116,142,151, 82,163, 19,200,133, 30,188,190, +124,146,214,137,253, 20,165,110,225, 40, 82,224,250, 3,194, 31, 29, 45,164, 10,204,120,154, 24, 56,127, 30,246,189,235,245, 26, + 95,127,253, 53, 94, 95,189,196,197,163,103, 32, 98,188,124,117,133, 48, 77,120,240,240, 49,136, 29,206, 46, 46,208,175,115,118, +247,229, 3,155, 30, 59,131,150, 87,235,141,121, 45,164,136,171,171,107,252,236,211,159,225,230,230, 6,157,247,245, 25,181,131, +218,216,152, 22,170,194, 72, 49, 39,192,121,198, 48, 78,184,187,189,181, 65,160,196,183,198, 84, 9,158,162, 64,136,209,164,117, + 34,152,166,128, 85,239,224,189,199,245,237, 45,166,113,194, 20, 2, 82, 50, 4, 32, 37,153, 29, 1,129, 44,205,179, 9,209, 17, + 3, 76,216, 15, 35, 32,192, 48, 89,177, 33,102,131,191,115, 17,102, 80,214,177, 27,113,207,114,225, 45,171,157,200,178,201, 89, +204, 67, 94,114, 40,140,136,237,206, 45, 40,198, 52,246, 34, 9,156, 87, 19,156, 51,205,161,217,165, 51, 9,124, 54,205, 33, 9, + 80, 38,196,152,224,152,192,125, 95, 37,195, 83, 72, 16, 49,157, 55,105, 66,191,234, 33,112,128, 68, 80,206, 39,232, 72,113,182, + 89, 65,187, 53,194,126, 15,239, 8, 64,151,173,126, 9, 99, 98,196, 81,160,195, 96,103, 62, 51, 88, 19, 86, 43,135,174, 91, 35, +145, 3,171,128,189,179,152,216, 76, 34, 38, 10,224,206, 99, 55, 49, 36,222, 64,201, 2, 90, 86, 29, 0,199,208, 68,112, 36, 8, + 0,194,126, 2,201,136,152, 20, 20,141,201,229,144, 32, 12,136,122, 32,141, 6,225,139,192,187, 92, 33,140,108, 97,164,224,148, +160, 41,229,123,159, 49, 38,224, 41, 11,190,251,104,194, 63,125,246, 33,220, 39,223,128,228,115,128, 55, 53,179,162,233,224,171, +178,167, 6,139, 21, 67,174,249,161, 56,105,129,125,223,204, 77,191, 72,173,126,151,105,253,232, 25,205, 41,109,206, 25,227, 16, +162, 72,106, 55,141,195, 44, 29, 83,149, 76, 54,227, 2, 8, 67, 53,153, 33, 13, 28,162,163, 44, 41, 43,240, 52,131, 88, 43, 27, +189,238,111,107,129,110,160, 97, 41,114,173, 54,190, 50,187,158,149,125,109, 93,190, 75,222, 35,207,171, 1,100, 66, 29, 36, 1, +253,247,192,223,237,241,189,233,207,177,125,174,184, 86, 35,230,121,204,150,163,114,194,229, 76,117, 73,134, 2,204,175,126,102, +122, 11, 84,230,236,106,106,195,106, 22,197, 91, 23, 27,226,214,212,227,144, 18,150,148,142, 93,214, 78, 81, 42, 43,105,109,110, +156,136,102,157,190, 46,201,234, 6,113,249, 51,172, 58, 32,142,251,140,188, 80, 99,235,123, 2, 74,205, 44,118, 33,134, 99,235, +192,149,108, 66, 16,157, 57, 3, 71,175, 78, 5,251,201, 62,239,142,103,178, 92,105, 18, 30,173, 59,164,148,112, 19, 98,253,108, +103, 15,148, 34,197,211, 55,194,215, 5,186,158, 55, 12, 6, 87,115,134, 33, 44, 18, 19,144,184, 92,133, 20, 73, 35, 72,235,149, +147,123, 30,140,217,121,173, 53,221,193, 98,165,115,185,234,240,120,227,241, 99, 77,239,244,168,182, 59,245,214,175,191,252,216, +174,235,113,251,250, 10,195,221,107,236, 71,115,100,187, 47, 36,166, 45,187,167, 56, 9,116, 4,149, 31,218,136, 46, 33,138,227, + 61,252,178,208,183,145, 61,111, 36, 6,230,245,196,122,213,227,155, 23, 47,240,217, 39, 63,197, 95,254,254,175,227,229,203,111, +224,253, 10,183,219, 1, 15, 30, 49, 62,254,181, 31, 96,191,223, 1, 10,244,235, 53, 82, 12,216,111,239,176,219,239,144, 98, 64, + 8, 3,134, 97,192,221,221, 29,110,110,183, 24,242,181,216,238,246, 70,178, 74, 38, 43,139, 49, 33, 38, 35,158,165,152,114, 8, +139, 73,202, 66, 76,184,186,186,194,246,238, 22,155,243,135, 96,239,178,163,156, 53, 1, 10, 65, 12,101,226, 85,164, 20,113,119, + 55, 34, 37, 43,244,156, 89,235,227, 24,204, 96,166,160, 44,121,207, 14, 37,132,100,223, 91, 8,118, 18, 45, 40, 38, 74,196,217, +102,157,167,196,100,110,117, 98, 40, 68, 82, 59, 96,137,216, 28, 18, 59, 99,152,215,220,248,153,137,100,153,240,156,199, 25, 37, + 48, 25, 20,239, 61,231, 98,172, 25, 65,144,138,118,129,217,248, 2, 32,164,152, 67, 81,136,192,189,135,164,104, 4, 59,239, 49, + 69,129, 66,224, 59, 15,208,170,174, 35, 68, 25, 44, 38,217, 91,173, 60,186,245, 6,251, 81, 76, 63,206, 43,147,242,121, 66,215, +119, 57, 37,109, 54, 52,154,146,154, 66, 1, 17, 17, 9, 83, 76, 88,187, 4, 79,107,243, 59,232, 58, 68, 37,120, 36, 4, 1,238, +246, 35, 58, 25,225, 59, 15,113, 30,227, 68,240, 60, 32,130, 17, 98,128, 32, 97, 8,132,113,152,192,105, 15,234, 60,198,228,128, + 24,208,123,197,150, 60, 36,236, 1,138, 32,202, 28,140, 28,147, 27, 0,147, 61,106,130, 83,201,198, 99, 64, 32,128, 35,240, 43, + 62,224,213,179, 53,110,174,127, 21,253,213, 43,128, 3,128,174, 14,121, 56,176,137, 95,114,190,150,197,127, 70,147, 15,167,136, + 95,198, 14,253, 45,248,253,105,221,234,145,140,198,171,150, 8,209,198, 3, 30,179, 62, 93, 51, 60, 99,204,117,129,162,131,115, + 15,161,110, 7, 23, 39,164,100,166, 35,156, 69,113,162, 6, 1,121, 86,172,178,204, 41, 54, 48,182,107,118,216, 46,123,135, 75, + 33,202,149,253,165, 46,125,203,103,110,176,133,143,168, 82, 54,139, 41,133,214, 3,233, 37,176,117, 88, 59, 66,224,172,163,207, +122, 75, 5,103, 47,248,217,228,164,185, 63,103,136, 45,115,103, 41, 63,110,128, 67,199, 10, 39,130, 1, 75,221, 55, 45, 38,215, + 89, 2, 71,135, 18,137, 50,125, 47,220, 74,245, 52,227,186,153,230,218, 9, 85, 51,207,193, 98, 44,243,141, 38,169,250,145, 51, +230,134, 8,204, 56,239, 9,219, 73, 49, 10,207, 59,103, 58, 84, 39,229,107,170, 11,178, 66,245,244, 22, 44,153,217, 51,148,154, +137,119, 11,189,235,188,152, 47,109, 83, 72,169, 42, 4, 22,169,124,218, 32, 28,250, 22,248,106,177,158,177, 59, 84, 85,144, 98, + 66,151, 25,205, 41,223, 44,173,204,144, 22,147,231, 28,108,210, 22,197,162,117,150, 28, 7,172, 37, 69,175,129,173, 9,128,103, +198,245,221, 14,255,243, 63,250, 51,220, 76, 17,155, 85,247, 70,211,142, 35, 59,219, 19,249,185,142, 24, 99, 8, 24,166, 18,171, +186,132,195,151, 92,120, 61,158,162, 79, 53, 63,122,208,208, 44,150,128,111,142,155, 93, 10, 13,219,152,165,183, 28, 77,100, 83, +236,126, 74,248,201,143,127,130, 63,248, 35, 70,223,117, 88,173, 86,184,184,184,196,217,230, 12,187,187,215,184,185,185,198,123, +143,159, 64,194,132, 87, 47,159, 99, 24,204, 54,116, 24, 6, 12,195,206,138, 22, 8,204, 54, 61, 79,163,101,146,199, 24,109, 74, +151, 92,196, 81,244,220, 82, 95, 94,136, 54,193, 95, 93,221,224,249,215,207,241,253,143, 31,128, 64,112,121,237, 51, 78, 19,166, +105,202, 5, 60,212,255, 79, 73, 42, 60, 79, 49,217,238, 63, 4, 16, 25,127,162,228, 4, 72,142, 5,245,158,161,106,228, 58,205, +134, 58, 83,156,208,247, 29, 68, 9, 18,204,200, 38, 76, 17,222, 25,135,135, 41,203,196,234, 42, 38,175,195,200, 80,136,190,179, +226,212,121, 6,185,174,146, 68, 75, 40, 16,113,137,193, 38, 40, 73,109,228,139, 33, 80,151,155,199,148,215, 10,200, 13,175, 18, + 33, 36,129, 69, 4, 4, 48, 0,223, 57,172,250, 14, 81,141,160,104,205,137, 53, 51,157,119, 38,123, 19, 27,229, 58,239, 45,158, +149, 4,171,190,131,235, 86,153,197, 95,186,107, 70, 7, 65,183,246, 0,172,233, 0,128, 32, 64, 26,246,102,247, 27, 71,227, 76, + 36,129,198, 4,159,119,233,178, 31,192, 29, 35, 68, 2, 73,192, 40,138, 56, 69,172, 57, 33,184, 30,187, 17,216, 80,166,103,167, + 4, 33,206, 59,249, 8, 1, 91,160,152,179, 12, 16, 78, 54,112, 74, 82, 48,137,249,189, 11, 53,143,176, 34, 64,113, 6,198,247, + 47, 18,254,228,163,199, 72,219,239,193,197, 31, 1,206,215,149,111, 75,194, 45,156,154, 57,128,147,154, 36,197,198, 16,236, 4, +181, 25,111, 6, 5,191, 93,177, 63,241, 23,245,109, 12,185,178, 83, 71,101,126, 83,141,240, 19,181,125,122, 71,154,157,133, 8, + 49,155,188,176, 2,137, 86,144, 51,193, 37, 79,216,220, 10, 94,142, 64,172,208,121, 83, 17,234,145,145,153,243,138,170,171, 46, + 23,204, 21,137,149,206,185,220, 86,160,168, 18,172, 10, 60, 95,124,201, 27, 23,108,243, 8,118, 4,135, 45,240, 66,240,231,194, +208,174,112, 1, 26, 2, 91,254,221,197, 4,167,245,185,166,172,249, 70,222,117, 25,147, 91, 16, 84, 42,114,128,236,198,198,173, + 54,190,176,227,105,185,141,164,134, 29, 95,238, 20, 62, 16, 74,148, 9,209,206, 90,153,205, 31, 8, 39, 38,125, 61, 65, 82,154, +195, 64,202, 31,231, 28, 16,118,184, 14,246,232,187,220,144,149,141,147,171, 5,185,205, 77,215,122,211, 22,166,118, 57, 72,102, +115,148,198,156,162,209,151,211,162, 8, 45,239,197,109,136,245,112,154,107,126, 54, 25,106,238,126, 5, 78,154,220, 28,222,192, + 53, 39,158, 44,103,188,216,119,158,106,143, 78, 26,231,227,216, 39,160,166,159,233,193, 68, 75, 75, 82,219, 62, 89,116,110,151, +161,202,182,168,138,168, 77,115,247,236,214,233,144,225,158,123, 87,151,201,168, 39,119,215,135,164, 70,220,103,144,129,211,251, +113,232,209, 53,160, 55,229,200, 31,154,204,232, 91,166,244, 3,191,166,126,181,193, 15,127,244,103,216,221,222,224,209,123,239, + 35,198, 17, 73, 34,158,127,243, 53,134, 97,192,229,131, 71,184,187,187,195,139, 23,207, 33, 73,192,206, 35, 76, 33,223,192, 22, +121,170,170,240, 57,142,104, 28, 39,136,164, 57, 69, 48, 79,147,154, 25,226, 69,238,202,228, 32, 16,116,157,199,118, 59,226,250, +197, 75,124,255,159,249, 24,138, 14, 49,154,196, 77, 1, 76, 83, 64, 12,150,154, 54,142,131,125,102,222,213,213, 89, 72,130,164, +146,237,139, 53,155, 32, 25, 76, 62, 78,113,134,196, 83, 66,140,201,160,252,113, 50,143,121,246,136, 41, 65, 98,194, 56,141,117, +133,199, 10,116,189,207, 69,157,142, 76,162, 40,107,164, 57, 23,111, 27,188, 25,206,113, 85, 2,216,217, 67,112, 61,215,123, 53, + 41, 76, 22,198, 4,165, 92,148, 59, 95,209, 76,102,170,205, 68, 82, 32, 36, 1, 73, 50,219,221,105,130,131,160, 91,175, 48, 77, + 64,231, 8,125,215, 3,142,177, 29, 70, 56, 88, 97, 12,106,235,128,245,122,101, 59,237, 20,178,131,158, 89,210, 70, 9,214, 72, + 20,185,158, 2,208,132, 81,109,189, 88,184, 2,165, 1,235,157,145, 17,167, 40,240,148,160,220, 65, 37, 66,137,237, 51,102,198, + 94, 58,176, 70,244,204,136,234,144,166, 98,197, 75,214, 20,176, 98,100,135, 41, 48, 58, 13,112, 94, 17,177,202,102, 64, 38, 87, + 20, 53, 25, 28,229, 32, 42, 35,207,217, 61,240,161, 3,158, 63, 1,190,126,245, 61,184,175,190, 6,248, 22,138,213,209, 81,161, +205,255, 32,232, 92,211,170, 97, 24,189, 1,254,126,147,209,236, 47,206,147,167, 83,154,161, 19,207,180, 47, 50, 49, 16,242,254, + 4,112, 50, 23, 2, 85, 11,111, 81, 53, 25, 1, 99, 2, 77, 95,130,174, 29,246, 29,205,180,244,204,124,204,232, 56, 88,204, 22, + 86,148, 22,253, 77,133,192,155,221,110,153, 52,151,187,125, 53,111,247,252,245,133, 47,113,213,110,151,232, 87, 5,195, 67,206, + 46,177,238,118,240,251, 1,187,104,137,114,192, 50,224,226, 80,218, 86,225, 20,118, 56,163,252, 94,193,182, 55, 82, 65, 72,192, + 88,164, 97, 7,187, 20, 93,102, 93, 28, 31,222, 7,222,235,139,105, 76,155, 89, 72,143,163, 69,151,197,123, 62,220,152,115, 49, + 81,154,161,120, 44,227,101,147, 52,233,119,116, 48,177, 22,121, 14, 22,100,231, 58,157, 38,149,185, 17, 59, 69, 85,211,251,148, +221, 7, 60,128,194,174,110,111,252,220,252,240, 1,135,235,158,141,240, 2,221,106, 13, 35, 72, 21,197,162,128, 78,124,239,162, + 93,104, 41,254,237,187,201,203,116, 85, 96,189,217, 32,198, 9,227, 24,230,168,221, 2,253,103, 72,179,119,203, 9, 92, 68,208, +175,214,120,112,121,137,235,171, 87,230,166,215, 18,201, 78,100,194, 47,138, 48,209, 59,161,108, 75, 25,219,155,142,137,131,134, + 68,155, 29, 21,189, 5, 21,105,172,159,113,128, 86,232, 61,127,191, 5, 90, 46, 46, 47,241,167,127,242,167,248,217,207,126,130, +127,246,119,254, 50,190,252,244,167, 32,231,176, 90,111,240,232,189,199,216,111,183,248,236,243,207,173,177,100, 7,208, 60,125, + 59,102, 72,246, 95, 31,198, 17,251,237, 30, 34, 9,125,215, 99, 28, 3,166, 41, 23,120, 6, 52, 25, 90, 40, 73,102,111,242, 28, +199,233,188,199,207, 62,253, 20, 31,125,247, 35,124,231,227,223,200, 50,177,132, 20, 34, 98, 72,213,238, 53,169, 90,177, 15, 13, +204,174, 86,212, 85,196, 72,103,100,105,111, 76, 37, 68, 70, 49, 12, 1, 49, 24,220, 62,141, 19,156,179,204,122,131,226, 77,214, +150, 82,170, 10, 18, 87, 38,238,188, 67, 47, 36,184,210, 44,123,239, 50, 25,208,118,252,253,138,224,156, 71,231,188, 17,220,138, +163,101,138, 21, 1, 5, 76, 98, 74,222,195, 57, 43,166,172,146,227,157, 41, 75,236,114,240, 86,230, 38,121,103,107,128,152, 82, + 61,235,210, 16,225,157,135, 58,135, 33, 36,164, 49,100, 30,128,189,230,190, 99,112,183,194, 20, 34,100,156,236,119,103,243,168, +144,204,100, 38,170,131,166, 8,239, 0, 1, 87,203,106, 38, 96, 74, 1,154,137,141, 68,132, 9,130,105,138,112,105,132, 59,235, + 16,132,225,132,193,222, 26, 24, 38, 66, 98, 96, 12, 4,157, 70, 48, 27,137,142, 52,205,178,105, 1, 72, 19,130, 42, 92, 4, 86, + 62, 33,178, 66,163,173,143,133, 60, 52,217,103,235,200, 44,193, 56, 55,141, 65, 8,235,152,240,253,117,192,213, 71, 23,136,175, +191, 7, 63,252, 63,128,211, 35,153, 26, 29, 60, 3,170, 56,161, 63,105, 34,182, 79, 18, 74,223, 8, 68,254,146,229,109,199, 33, + 21, 62,230,224, 3,203,109, 97, 20,219, 96,159,151,223,115,218,154,100, 61,120, 57, 40, 19,166, 61, 99,207, 38, 89,226,218, 73, + 86, 55,248, 76,162, 83,147,126, 20,118,113, 33,218,233,204,182, 45,172,114,215, 76,133, 84,233,231, 51, 11,209,181,103, 85, 83, +236, 88, 0, 37, 1,226, 14, 32, 35,150, 48,204, 14,182,181,253, 60, 52,229,175, 40, 0, 12,149, 40, 81,174, 49, 95, 36, 15,202, +141, 1, 29,248,136, 98, 49,121,183,211, 75,123,158, 86,128,134,180, 41,206,173, 83,153, 46,146,210,234, 20,123, 15,209, 66, 85, +178, 9, 3, 26, 83,154,214, 81, 78, 26, 93,189,233,255, 73,139,175,253,156,204,198, 51, 33,161,250,197, 47, 16, 4,157, 89,243, + 68, 51, 40, 59,231,171, 31, 78,179,167,239,210,210,116,213,150, 66,103,251,219, 86, 33,160,167, 38,233,123, 58,212, 58, 93,211, +233, 98, 62, 23,205,249,139,114,194,220,173, 37, 2, 74, 52, 93, 50, 53, 92,124,122,155,141, 47, 25,209, 43,134,241,232,231, 18, + 49, 30, 61,122,132,237,221, 29,246,251,193,136, 76,243, 71, 60, 51,246, 79,120, 70,211, 73, 73, 38,142,122,244, 99,121,203,137, + 15,226,160,107, 58,106, 46, 43,202,164, 13, 71, 5, 71,156, 14, 61, 88,159, 84, 66,176, 90,145,190,185,250, 6, 31,126,244, 1, + 46,222,123, 2, 71,140, 39,207, 62,178,248, 82, 40, 66, 12,120,241,226,133,237,223, 55,107, 56,223, 97, 28,246, 96,103,123,102, +192,206,159, 16,130,193,237,152,201,113,200,249,231, 69,119,158, 84, 16, 83,172,177,205,147, 36,132, 12,253, 58,239,177,189,221, +227,135,127,250, 39,120,250,209,119,161,228, 48, 77, 1, 97,154,114,192, 75,107, 32,163,136,230, 94, 2, 5, 33,132,104,197, 32, +239,191,199, 41, 32,196,152,137,169,100,169,144,201,138,246, 52, 5,176, 99,139,152, 5,170, 78,221,152,245,133,235, 1,211,226, +243, 28, 47,236,188,217,158, 22, 91, 86,228,157,189,125,205,213, 85, 24,101, 13,121, 74,182, 58, 96, 50, 82,154,119,108, 58,114, +192, 56, 0, 57, 18,182, 52,147,222, 59,128, 29, 68, 12,101, 96,103,121,239,182, 78, 19,196,196,217,156, 71,177, 94,245, 32,215, + 33,134, 0, 48,242,174,158, 64, 57, 74,214,142, 0,135, 16, 5, 16,187, 70, 41,153,131, 27, 17, 35, 18, 67,196,214, 16,147, 40, +216,169,161,128,206, 99, 63, 69, 80,138,185,105, 97, 40, 56, 19, 21, 3, 88, 19, 68,186, 34, 70,132, 25,121, 42, 18, 1, 17, 52, + 39,224,129,114, 16, 79, 66, 12, 1,154,130,173,112, 85,208, 57,115,165, 27,147, 64,196, 86, 11,206,177, 89,198,106,145, 77,231, + 84, 63, 86,192,121,136, 58, 4, 17, 60,146,132,103, 15, 38,124,246,248, 67,184, 47,190, 4,244, 21, 64,235,183, 72, 98,102,148, +177,205,243,164, 38,180,236,112,106,110, 27,223, 95, 74,189,190,143,225,123, 79,234,148, 23,102,211, 63,107,201, 17,167, 44,193, +176, 7, 39,102, 87,184,118,199,153, 50,238,203, 44, 25,182, 71,157,138, 53, 31,162, 32,173,146, 56, 87,253,133,237,248,136, 88, +202,150, 8,115,208,136, 21, 32, 57, 18,213, 88, 2, 25, 55,110,110,205,126,180, 20,161, 52, 32, 4, 96,100,206,186,208,134,212, +144, 61,216,133, 40,119,209,141,137, 13,205, 33, 47,225,192,227, 90, 14,246,154, 45, 55, 65, 15,103, 85,109,195, 82,108,210, 87, +165,131,181,193,204,228,110,173, 96,169, 73,102, 57,114, 23,203, 56,248, 2, 66, 61,178,172,109,140,131,154, 29,107,105, 50,170, + 83, 96, 37,148,101, 7,123,109, 10,121, 41,244, 25,238,214, 35,217,199,137, 49, 90,245, 94,148,161, 74, 21,219,228,195,197,253, +119, 90,159,127, 72,100, 60,188,183,229,173, 50,146,153,217, 79,206, 97,221,119, 24,167,113,225, 65,211,254,204, 97, 28,209, 26, + 38, 45,162, 78,244,254,162, 30, 99,196,213,245, 53, 92,113, 9,107, 16,161,253,246,206,166, 31,166,227, 66,205,188, 88,105,212, +239, 59,169, 3,167,163, 37,133,222,247,238, 15,163,102,223,194,208,111, 51,133, 78,134, 93, 52,127, 95, 84, 65, 7, 31, 48, 51, +225,250,250, 26, 79,158,190,143,255,250,143,255, 62,222,123,252, 62,174, 94,124,133,213,106,133,149,191,192, 56, 5,236,118,119, +120,244,240, 17,206, 54,231, 96, 71, 88,175, 54,120,241,242, 5, 94,189,252, 6,206, 17,194, 84,166,113, 43,112,235, 85,143, 81, + 5,119, 55, 19,198, 97, 48, 4, 81,243, 64,145, 98, 49,171, 52, 98,102,149, 12, 18, 60, 27, 98,240,211,159,125,137, 95,251,217, + 63,197,247,127,243,159,135, 2, 24,198, 9,146, 11,111, 33, 22, 22, 31, 7,206, 8, 28, 49,224,201, 65, 85,178,149,106,225, 58, +152, 46,157,178,180, 44,164, 0,223,249,197,212, 29, 98,130,164,212, 52,116, 4,199,174, 54,136, 34, 10,118, 84,109,174, 29,251, +234,243,206,206, 38,233,205,122,109, 43, 79, 73,217, 51,196,152,239,156,145, 83,109,200,194,236, 56,219,234,218, 10,162, 95,245, + 86,192,243,135,211,121, 54,147, 28,166, 12,193,231,233,141, 8, 16,194,122,229,161,108,141,149, 99, 66,202, 46,146,171,181, 7, + 57,115,219, 51,216, 59, 53, 6, 99,166, 2,233, 73,224,251, 14,251, 41, 33, 78, 1, 12, 75,228, 43, 5,110, 26, 3, 88, 34, 86, +171, 30, 10, 87,249, 16, 49,101, 2,155,235,112, 55, 36,144, 78,232, 60,231,115, 30,245, 89,245,206, 33,193, 12,101, 74, 33, 21, + 16, 66, 98,104, 28,209,177,130,200,101,183, 75,134, 83, 75,215, 99, 54, 59, 89,201,103,104, 20,133,131,152,210, 42, 9,192,132, + 81, 9,235, 73,240,189,126,194,203,143, 46, 48, 93,127, 15,126,123, 13,245,197, 13,229, 45,245,181, 49,173, 57,229, 97,170,139, +191,244, 45,220, 39,127, 94,205, 58,209,146, 37,221,194,239, 92, 8, 72,172,240, 34,112,194, 16, 42, 25, 43, 69,251, 77,179,252, + 94,151, 4,186, 60, 76, 55, 62,238,217,241, 71, 21,172,106, 22,179, 53,222,149,102,123,216,166,224,150, 27, 71, 43,196,116, 98, +130,201,133,153,180,176,223,219,116, 29, 84, 50,153,102, 8,168, 77,100,155, 39,255,118,254,153,195, 80, 40,239,110, 82,133,243, + 51,220,173,199, 50, 41, 42, 9,115,139,235,105,150, 81, 5,178, 47,196, 46,193,113,161, 62,165,185,174,187,106, 90,210,217,169, + 64,205, 77, 52,103, 65, 22,152, 81,117,252,138,102,103, 95,181,231,180, 80, 95,206,242, 45, 75,220, 91,159,157,193, 97,196,237, +118, 4,179,195,210,140,244,254,128,130,197,244, 94,125,250,245,148,127,217,162, 4, 21,103,191,229,109,187,124, 48, 14,165, 32, +167, 66, 13, 79,253, 59,106,137,130,116, 64,224,147,148,253, 13, 78,243,214, 85,145,109, 58,151, 69,238,157, 30, 61, 50,200,244, +212,159,221,126,200,156,130,121,249, 28, 83,196,229,131,135,120,240,224, 18, 95,125,249,229,226,243,191,119, 77,115, 18,207,208, +211, 44,216,118,175,163,116,122,239, 87,247, 62, 52, 55,117, 21, 73,209, 19,168, 3,157, 82,199,129,178,132, 72, 36,224, 63,254, +219,255, 25,126,251,183,126, 11,127,254,195, 63,195,126,216, 99,216,239,113,126,118,134,167, 31,124,100,254,230,154,176, 89,247, + 57,133, 77,240,248,241, 99,220,220,188,198,112,115,107, 50,179,188, 11, 22, 1,198,113,196, 48, 14, 16,177,253,117, 10, 25,126, + 78, 22,164,146,178,203,154,243,108,107,166, 68, 89,182,166,153,248,200,248,228,147,159,225, 59, 31,255, 58, 98,136,182, 75,159, + 2, 98,158,234, 36, 25,124,223,245,166,209,222,238,246, 21, 81, 74,249,245, 21, 72, 94,242, 1, 48,134, 17, 41, 68,108,206,214, +134, 0,140, 35,166,193,180,242, 84,140,137,242,103,221,247,157,113, 6,146,249,169,121,239,225,152, 43,243,215,123,151,249, 47, + 86,140,186,174, 91,112,111,166, 24,107, 35,219,117, 29, 98, 14,148,137, 81, 64,220,164,102, 38,123,254, 29,207, 44,109,205,103, +167, 53,142,115, 62,174, 39, 2,245,217,115,158, 9, 83,182,134, 37, 98,116, 68,112,253,170,158,111,222, 57, 51,186, 73, 49, 43, +153,236,115,177, 94,194, 25,186, 34, 89,235, 77, 6,233,199, 16,144,242,170,160,247, 22, 84, 83, 12,124, 66, 18,176,102,173,188, + 16,168, 76,251, 81,225, 92, 68,130, 71,138,130, 21, 39,132,108,246, 67, 72, 72, 66, 32,137, 40,194,106, 83, 19, 16,226, 52,161, + 67, 4,119,221,226, 20, 49,251,233, 76,247, 22,192,145, 32,169, 51,233, 45, 37,164, 68, 8, 36,120,168, 14, 31,156, 79,248,233, +123, 79,224,118,143,242,180,190,186,119, 42,166,123,220, 34,150, 80,161,204,166,104,205,100,255,166,230,250,151, 2,193,183, 57, +216,109, 81, 79,106,240, 87,201, 32,227,156,154, 38,148, 29,223,212, 10,105,204,143, 62, 55,135,131, 42, 22,100,167,202,170, 86, +147,107,144, 16, 18, 24,145,200,150,247, 7,131,158, 54,249,222,243,180,107,200,128,211,165,214,125,222, 47,107,150,167,101, 2, + 92,174,174,210,120,170,179, 46,157,184,184,129,219,253, 66,182, 51,119,250, 9,179, 73, 75, 41,248,210, 20, 49,210,249,208,147, +195,203,168, 38, 11,234,200,214, 19,147,204,194,110,106, 97,242,172, 47, 45,157, 62, 50, 17,143,184,144,249, 50, 97,142,173,152, + 87,195,151,226, 61,159, 15, 14,110, 97,226,178,249,109,221,244,178, 22,180,216,230,150,166,130,243, 1,173,164, 8, 97,176,119, +156,109, 42, 91,163,216, 67,121, 71, 99,211,127, 84, 85,233, 30, 77,181,234, 65,206, 60,102,215,178, 54,230,240,141, 38, 13, 7, +198, 41,229,189, 31,106,192,117,241, 31,180,104, 39, 52,105,118, 5,163, 99, 36,225, 96,167, 79, 7, 28, 2,213,159,255,177, 59, +116,136, 43, 19,122,152, 70,220,189, 22, 28, 26,205,156,122,207,122,196,174,120, 75,254,171,158,200,140, 62,197,160,109,190,174, +149, 28,119, 64, 96,168,254, 17,122, 50, 75, 90, 1,220,220,220,224, 47,253,238,239,226, 95,250,253,223,199,215, 95,126,129,174, +239,225,186, 30, 15,223,123,130,206,123,156,157,157,195,251, 14, 99,152,204,251, 32, 67,198,157,183,160,146, 97, 28,141,197,221, +247, 80, 85, 12,227,104, 82,182, 52, 65, 96,161, 43,211, 20,108,162,143, 70,142, 52,102, 59, 87,134, 59, 19,131, 51,185, 54,132, +132,126,179,198,213,171,107,188,190,122,101,196,186, 24, 17, 38,211, 60,199, 36,150,157,238,173, 9,222,239, 7,131,160, 49,251, + 68, 72,146, 25,198, 77,201,252,220,195,132,179,179, 13,188,183, 34,171, 48,214,189,142,105,190,215,212, 10,182,247, 22,161, 74, +108,234, 10, 38, 67, 52,216,249,194, 91,199,106,213,219, 89,228, 44, 72, 37, 37,107,106,188,115,153, 16, 92,220,214,242, 40, 85, + 37,146,249,222, 39, 54,214, 62, 8, 33, 10,124, 39,150,101, 95,166,121, 51, 78,183,123,222, 57,116,174,200, 97, 51,113, 86,194, + 44, 53, 46,228,207,124, 54,120,207, 8,193,226,111,139,179, 38, 84, 76, 58,170,128, 74,202,246,209, 9, 9,140,113, 31,106, 1, +239,156,221,179, 49, 74,142,179, 5, 58,223, 1,218,101, 54,254,100,107,131, 24,205, 78,182, 99,168,155,195,160, 36, 37,132,164, +144, 16, 44, 40,140, 76,173,220,145, 2,157, 67,138,128, 80, 66,141, 2, 35, 54,103,198,148, 44,209,145, 9,147,119, 64, 50,207, + 18, 38, 32,145,101,214, 67, 19, 70, 2,104,136,120,234, 19,190,124,124,134,248,242, 3,184,253, 21,224,239, 87,149, 47,120, 58, +170, 39,134,156,102,216,165,249, 36, 45, 72,240, 50, 22,245,151,109, 67,163, 39, 85, 42, 94, 33, 57,131, 28,144,106,130,148, 11, +184,210,108, 83,218, 30,124,122, 44,202,226, 22, 28, 84, 5,232, 28,147, 87, 32, 13,166,129,167, 19,243,217,225, 25, 68, 75,155, +211, 25,254,165,250, 69,206,137,108, 17,141,169, 76,150,185, 21, 82, 93, 49,157, 93, 22,157,202, 94,171, 48,118,235, 59,167,197, + 79,189,176,241, 81,204,117,154,198,165, 97,163,181, 38, 37,246,182, 4, 99,190, 46, 21, 54,147,153,140, 85,118, 47,188,136, 81, +205,174,243,218, 92,197,198,139,144,154,192,143,214, 38,215, 29, 40, 8, 44,216,226,128, 59,125, 32,217,107,249, 79, 12, 66, 10, + 1,137,236, 80, 92, 8,211,100,105,151,219,206,237, 37,115, 94, 90,216,231, 36, 9, 75,231,253,107,179,178, 88,250, 46,235, 73, +146, 28, 31,162,251,205, 20, 75, 11, 44, 76,143, 30,174,121,175, 94, 18,217,168,162, 43,133,213,124, 56,225,207, 43,140,198,166, +239,151,108,212,172, 85,202,230, 48, 77, 19,134,113,132,103,247, 6, 81,202,129, 7,255, 27,193, 60,125,243,103, 65, 75, 70, 98, + 59,125,215,157,249, 97,238,188, 54,201,110,170,247, 30, 31,211, 56,224,187,223,249, 16, 23,231,151,182,134,240,206,118,156,164, +112, 14,216,239,111,193,236,176, 94,159, 97,115,241, 0, 33, 90,188,233,126,183,195,184,223,131, 8,232,115, 65,159,226, 84,137, +107,195,110,196,110,187,195, 56,140,112, 62,243,109, 28,153,164, 76, 18,136,157,145,195,136, 32,156,209,177,100,174,100,155,245, + 26,183,187, 91,124,254,233,167,160,238, 28,219,237, 22,130, 84,161, 96,202, 59,228,113,156, 16, 67,202,136,131, 64, 36,102,179, + 27, 99,162,199, 24, 49,236, 7, 76, 97,194,249,217, 6,253,106,141, 41, 36,203,125, 79,102, 50, 83,180,242,222,249, 12,203, 91, +131, 92,166,240,106,154,197, 14,142, 29,250,222,103,199, 59,202,172,113,181,196, 50,207,240,174,207, 22,208,154, 21, 1,217, 67, + 46, 51,227,137,172,177, 1, 1,158, 9,221,202, 8,125, 37, 62,213, 67,140,100, 71,198,132,119,206,193,123,135,174, 68,219, 38, +201,107, 4, 43,184,142, 25,190,235, 16, 37,179,165,243,234, 73, 82,182, 96, 85, 96,154,166,197,137,157,212, 80,146, 16, 4,158, + 4, 66,140, 41, 38,120, 74,240, 93,103,251,115,177,211,215,206, 10,174,191, 51,230,220,250,168, 4,137, 17,157, 35, 76, 2, 32, +217, 52, 62, 37, 64, 17, 16, 19,178,127,189,173, 38,216,123, 43,250,162, 80, 9,112, 72,198,250,135, 24, 49, 91, 20,140, 8, 34, + 15, 38,224,204, 59, 12,188, 2, 71, 6, 52, 90,238,122,202, 50, 67,246,152, 68,113,169,138,167, 15, 18, 62,123,244, 12,188,255, + 28,164,119, 0,245,184,207,220,245,148, 13,196,242, 12,105,182,237, 21,209,109, 21, 70, 77,147,254,243, 20,248, 83,231,209, 27, + 6, 14,111, 15,132, 32,229, 80, 20,151, 9, 27, 66, 64, 71,176,194, 14,169,228,183,198, 76,111,113, 48, 82,213, 76,103,210,221, +234, 61,200, 7,138,223,112, 95,225,193,151, 9,255,120,207, 24, 88,171,177,141, 21,108, 94,156,161, 84, 29,235,168, 78,195, 84, +225,219, 2,245,211,193,185,219,184,165, 45,176,250,108, 53,171,138, 8,106, 2, 99,218,213,225, 92,124, 10,137, 79,107, 17, 90, + 78,196,243,129,169,149, 61, 94, 27, 7, 93,106,165, 11,138, 81,156,137, 74,252,107, 9,143, 57,117,132, 39, 81,112,183,198,166, +103,196, 97,135, 73, 8,110,102,220,129,117,217, 4, 29,230,211,205, 26,243,185,177, 57,236, 62,185,233, 54,125,129, 4, 65, 64, + 10, 8, 41,193,119,189, 29,122, 58, 27,190,104,190,142,218,210,252,168,193, 8,238,171, 76,109, 86,200, 17, 83,244,180, 5,105, +219, 13,183, 93,113,129,134,233,190, 40, 83, 0,107,207, 89,154, 84,138,119,161,204, 26, 59, 48,166,148,141, 64,142,141,242, 73, + 15, 36,136, 74,191,208,148,126,248,189, 33, 76,112,236,140, 60,150,201,168,250,198,231,154, 64, 39, 23, 12,111, 18,186, 96,214, +203, 45, 26,167, 37,218, 97, 97, 33,178,248, 94,210, 86,126,121,136,144, 28, 13,239,185,200, 48,118,187, 61,238,238,110,225,188, + 37,117,137, 36, 76, 33, 96, 55, 12, 8, 33,228,169, 82,177,238, 87,120,248,232, 61, 56,231, 16, 66,192, 55, 47, 94, 32, 73,194, +217,217, 6, 76,108, 65, 32,209,246,235,219,219, 29,238,110,238, 44,140, 37,134,236,103, 78,185, 96,198,122,143,107,142,131,102, +199, 72,209, 10,179, 73,222,204,236,228, 39,127,254, 19,188,255,244,195, 10, 15,151, 51, 35,198,136,105, 10,217,144, 74,242, 61, +156,161,118,216, 36, 26, 98,180,162,159, 18, 54,103, 27,172, 55,155,202, 33, 8,201,140, 78, 36,239,183, 61, 59,147,148,153,115, +140,229, 3,144,237,181, 29, 28,156,119,240,222,146,216, 64,141,225,182,218,207, 49, 25,154,175,228,192,210,112,105,178, 56,104, +159, 67,100,138,239, 3,195, 66, 78,236, 51, 16,155,180, 51, 59,222,229, 34,223, 57, 66,191,234,144,164, 89, 19,121,135,105, 76, + 57,172, 70,208,175,188,237,231,197, 8,128,174,100, 29,100,243,150,253, 56, 1,113,132,239,123,196,104,133,222, 8,104,102,162, +163,232, 17, 39,155,210,109,125, 87,208,126, 43,232,206, 25,220,158,162,241, 37, 72, 77,250,201,204, 72,220,103, 31,251,148, 27, + 1,193,148,196, 32,255,124,113, 60, 3, 17, 30, 36, 17,163, 40,134,253, 8,141, 35,152,128,232, 24, 42, 4,168,185, 10, 70, 48, + 88, 3,122,103,167,246,153,139, 24,200, 35,142,128,166,177,186,158,214,225, 71, 8, 31,248,136,231,143, 55, 72,175, 62,128, 27, +111,242,180,126,226,233,202,200, 38,157, 24, 72, 78, 74,113,169,101,205,235,177, 52,181,249,139,244,139,108,222,169,125, 45,203, +118,219, 83,134,132, 56,239,110,147, 2,160, 84,119,181, 4,130,112, 14, 41,201,140,114,100, 11,197, 10,241,234, 34, 16, 18,196, + 10,153,190, 2,125, 67,216,246,214, 33,104, 83, 52,133,102,232,152, 10,185,140,102,175,116,106,108, 97, 75, 20,171,180,211,228, +129, 68,170, 66,243,229, 3,208,226, 29,223,176,230,235,180, 57,199,190,182,234,159,229, 30,184,217,155, 23,251,218,252,218, 74, + 76,101,202, 93, 40, 29, 76, 67,139, 66,119,144,165, 94, 39, 98,153, 9,107,165,137, 96, 0,144,128, 52, 25, 84,198,180,244,251, +230, 3, 94, 4, 55,191,107,134,150,139,138, 96, 62,220,143, 8,104, 7,230,226, 42, 19,252,249, 99, 60, 60, 91,225,230,229, 87, +182,247,202, 16, 65,125,221, 7, 22,194,220, 48,250,143, 29,244,150,107,222,227, 40,242, 83, 68, 44, 70, 81,140, 37, 66, 53,179, +160, 3, 9,154, 52, 92,132,195, 63, 73,116,153,220,151,167,110, 73, 17,221,234, 12,191,250,221,239,226,235, 47, 63,197,118, 55, +152,158,127,201,209,255,133,213,165,247, 17, 84, 9,192,229,229, 67,196, 24, 17,166,177,250,146,191, 65,148,118,226,117,188,131, +240,237, 40,104, 98,233,195,172,106,164, 38,118,140,113, 24, 15, 6,251,251,163,239,218,200,213, 89,178,203,184,122,245, 10, 31, +124,240, 12,127,240,175,254, 53,220,220,222, 86, 83, 23, 21,197,170, 95,193,119,125, 54,143, 73,136, 34,120,254,205,115, 67,193, +146, 32, 42,112,126,118, 14,133,177,222,211, 56, 96, 26, 71,220, 92,223,224,246,246,182, 58,158, 57, 55, 55, 11, 6,189,155, 69, +176,168, 66,146, 5, 15,153, 29,108,246,168, 36,133,146, 98,181, 90,225,213,245, 45,166, 41,224,242,225, 35,179,111, 85,107,133, +167,108, 21, 11, 58, 88,227, 40, 16,163,201,214, 44,212,136,177,238,123,156,159,173, 65,236, 48,133, 9,158, 25,226,140, 85,236, +189, 77,223, 62,175, 18,138,124,205, 17,101,185, 91,111,238,113, 89,214,229,152,224,125, 54,152, 41,124, 31, 38,168, 80,102,111, + 51, 68, 35, 28,217,189, 44, 53,222,122,254,104,217,205,139, 74, 81,205, 63,211, 89,164,108,223,217,132, 31, 19,216,153,196,172, +243,206,228,102, 49, 84,135, 59, 77, 49, 39,188, 49, 82,136, 72, 81, 0,137, 0,153,132,216,145,230,243, 7,240,171, 30, 96, 15, +150,104, 13, 20, 1, 81, 9,136, 17, 9, 10,137, 33, 23,120, 75,164, 43,178, 64,239,109,247, 30,243,250,195,101, 6,255, 16, 5, + 46,141, 80,102, 76, 81, 65, 98,106, 7, 77, 38,165,181,166,192, 48,119,242, 6,201,143, 17, 24,135, 1, 44, 1,228, 24, 73, 25, + 33,153,106,194, 19,160,142,129,228,208, 57,133, 98,101,215, 69, 20, 61, 1,210, 57, 64,122,136, 12,136,201, 44,103,157, 35, 36, +120, 92, 18,240,232, 82,241,252,242, 41,220,248, 5,160,131,161, 28, 39,233, 42,244, 14, 60,155, 3,186,114, 91,220, 27,195,177, +118,247,174, 56,177, 46,123,199,173,251,178,237, 63,216,169,211, 28, 21,144, 73, 89,121,191, 65, 51,209,204,118,236,133,168,102, + 93, 97,162, 57,119, 58, 45, 6,180,252,160,104, 4,239, 20,159,223, 50,162,179,180,182, 82,136,164,217, 21,187,214, 6,116, 65, + 56,110, 61,184,103,248,162, 78,238,205,123,225, 18,134,210, 4, 82, 50, 80,147,227,112,192,156,166, 19,112, 47, 22,123,118, 44, + 38, 2, 82, 61,240,117, 39,187,129, 91, 19,150, 2,221, 55,250,241, 10,163,102,194,155, 52,196, 40,105,156,237,236,231,152,105, + 66, 69,230,226,191, 0, 0, 32, 0, 73, 68, 65, 84,136, 6,209,187,166,104, 31,154,194, 29,113,162, 14,248,155,148, 59,250, 34, + 49, 68,219, 80, 84,120,222,166,209, 24, 19, 86,171,115,252,202,135,151,248,225,171, 47, 48,170,179,201, 60,155,255,204, 77,207, + 76,145,166, 3, 89,116,249,121,210, 76,212,210,160, 32,149, 4,153, 17,145,147,186, 78,220,239,151,172,247, 76,192,237,218,102, +202, 83,206, 17,137, 60, 79,166,211,176,205,135, 56,157, 46,164, 58,143,164, 42,191,156,162, 46, 98, 44,231,191,246,175,252, 17, +158,127,245, 41,254,151,255,245,127,195,217,230, 12, 71,206, 71,122,106,159,190, 92, 15,221, 71,212,155,137,152,167,204, 40,150, +169,108,146, 34, 82,106,215, 71,197, 85,144,150,140,255,251,126, 87, 54, 74,185,122,249, 10,170,130,255,254, 31,252, 79,248,253, + 63,252, 43,248,201,159,255, 48,239,129, 25,128,133,175,128,128,206, 59,196,104, 36, 47, 38,103,177,164,157, 67, 71,150, 53, 30, + 98,176,201,126,183,195,238,118,139,155,215, 55,121,103, 43, 8, 41,204, 16, 59,178,190,221,101,178,153, 18,146, 38,176, 35, 76, + 18, 13, 62, 87,115,136,115,100, 73, 21,174,235,240,250,110,135,237,126,143,205,122, 3,215,245, 57,101,143,192,222,231,123,193, +118,236, 49, 70, 72, 10,214, 32, 59,211,143,123,103, 19,120,129,209, 61,251,188,227,141,217,167, 93,171, 43,101,225,197,244,157, +199,170, 95,129,152,225, 59,159,209, 25, 6,179,183, 41,213,177, 53,244, 41, 39,198,129,208,173,122,116, 93,153,170,169, 22, 79, +223,119, 21, 93, 76, 25,242,103,135,138, 64,121,239,176, 89,175,140,160,203, 12,118,198,170, 39, 82, 56,231,160,100,222,240, 73, + 34, 36, 41, 98,156,144, 98,200, 73,112, 89, 90,151,185, 84,196,148,127, 7,170, 9,143,231, 60,218,136, 52, 15,105,142, 66, 13, + 9,170, 1,158,109,205,160, 32,132, 8, 32, 5,128, 25,105, 10, 96, 10, 0, 19, 52, 1, 17, 57,171, 62,171, 22, 16,109, 13, 18, +213, 8,144, 5,117,113,148, 99,154,157,135,144, 98, 8,130,176, 31,208,113,132, 91,245, 16, 48,166, 40,144,152,224, 73, 17,136, +128, 24,224,105, 66, 80,179, 46, 98,215, 65,224,224,157,162,243,132, 33,117,160, 41,160,227, 4, 34, 87,239,167,141, 42,190,115, +158,240,234,201,123, 72,175,159,194,197,159,154,203, 28,222, 2,136,125,155,172,243,118,160, 94,164, 32,234, 66,218,124,180,254, +122,151,133,158,222,111, 87,109,114,244,230,235,146,199,226, 2,193,183,123,106,131, 37, 51, 60,203,246,117, 63,211,171, 50,185, +108, 38, 25, 9, 8,112, 70,116, 40,161, 36,197,134,116,145,104, 86,190,174,168,132,183,114,204,136,180, 33, 48,203,208, 11,109, +136,115,122,176,107, 46,122,120,105, 10,111,245, 33,105,166,200, 67,175,123,202,147,189, 96,217, 48,180,215, 90, 90,210, 89,227, + 20, 69, 7,197,181,101, 20, 23, 66,210, 41,178, 69,249,160,139, 49,197,108, 89,123,176, 75,110,102, 75,209, 54, 91,136, 22,157, +155, 17,242, 14,118,205,249,238, 42, 51,176,203,172,231,245,106,141,120,253, 5,254,201,181, 66,213,163,227,252,222, 23,187,115, + 61,218,239,210,193,254,123,254,231, 25, 97,209, 74,226,195,156,169, 46,122, 84, 62, 68,196,118,135,153,157,140, 55,145,231, 78, + 60, 53,154,247,191,245, 51,169,166, 1, 38,239, 75, 97,194, 39, 63,251, 20,190,235,140,140,212, 76,182, 11,175, 21,201,102, 31, +204,191,192,116, 62,239,175, 57,239, 67,255,201, 63,250, 63, 49,140,123,172,250,245, 1,113, 6,247, 90, 65,210,194, 55,241, 29, + 46, 2, 29,169,245,143,155, 12,109,155,133,185, 97, 5,222,236, 88,215,146,255, 94, 95,191,134,104,194,127,247, 63,252, 3,252, +193, 31,254, 33, 62,253,217, 39,179, 68, 78, 52, 75,181,156,233,182,169,121, 55,121,186, 45,215,136,189, 67, 26, 71,220,221,222, + 96,123,123,135, 23, 47, 94, 97,187,221,102, 43, 82,131, 81, 67,140,112,121,106, 53, 66, 93,103,146,176, 24, 17, 37,229, 98,174, + 21, 77,211,188, 59, 86, 2,156,119,232,180, 67, 74,130,155,187, 91,184,156,134, 87,228,135,197, 30, 56, 69, 11, 4, 98, 98,116, +125, 87,167,110,231,156,201,194,188, 3, 43,229,194,159,102,142,134,152,193, 73,105,186, 59,239,225,124,135,213,186,199,230,236, + 28, 33,152,252,142, 51,131,220,114, 21,236,222, 11, 26,193,249,164,232,251,206, 70, 39,181, 32,150, 82,108,147, 4,244,222, 91, +161,205,250,109, 75,245,179,167,189,115,198,254,103, 82,248,222,220,227, 84,114, 65,207,206,160, 42,146, 45,120, 13, 21, 56,219, +172,140, 65, 30,226, 60, 28,217, 77, 95, 13,110,236,254, 77,139,110,155,114, 64, 74,136,209,156,224, 50,111,130,153, 51,111,200, +246,244, 84,238,129,148, 0, 7,104,226,172,120,176,247,230,152,145,196,242, 54,139,238,155,200, 2,164, 40,123, 2,184,204, 31, + 24, 18, 48, 13, 35, 60, 34,188,247, 80,202, 90,121, 49,119, 57,211,191, 43, 84, 13, 83,141, 81,209,107,192,154, 21, 68,107,136, + 50, 58, 82,232,138, 49, 97, 3,132, 61,148, 4,172, 12,102,133,194,227, 17, 41, 30, 60, 80, 92,157, 63,133,187,254, 2,101, 1, +125, 31,169,244, 77, 37, 92,239,123,242, 14, 55, 98,104,194, 98, 74,144,204,183, 46,238, 51, 87,232, 20,130,224,203, 20,214,230, +148, 23, 72, 61, 53,140,106, 87,139, 62,114,183, 60, 23, 15,226, 37, 45,182,250, 61,137,230, 76,241,214,196,164,181, 11, 61, 17, + 35,217,100,221,234,129, 86,186,117, 2,107,231,118,174,136, 65,171, 79,111,201,118, 52, 31,102, 52, 75,179, 92,157,250, 13,174, +119, 77,249,242,139,137,105,137, 34,148,230,128,203, 4, 14, 44, 76, 89, 22,230, 39,245, 53, 46, 3, 74, 78,147,158,143,231, 51, + 58, 65, 72,156,155, 13,100,211, 5, 59,220, 36, 63, 20,167,136,207,162, 75,121,148,212,230,197, 58,147, 40,102, 3, 89, 27, 26, + 61, 86, 71,107,147, 33,223, 94,223,186, 29,210,165, 12,171, 50,224, 57,251,214,131,178,188,228,120, 53, 32, 34,111,227,118,191, + 85, 94,182,120,215, 7, 26,240,190,239, 23,159,167, 30,192, 13,154,139, 81,191, 94,153, 62,250,151, 32, 55, 41, 44,216, 31,127, +242, 9,156,243, 22,207,249, 22, 20,128,222,124, 68,220,139,188, 31, 57, 33,221,119,141,244, 80,181,129, 74, 58,124,227, 49,194, +140,187,219, 59,236,247, 59,252,183,127,252,247,240,111,252,155,255, 22,126,242,227, 31, 97,183,219,153, 59, 25, 8, 81, 18,136, +115,156,172,239, 49,133, 17, 49, 4,155,142, 29,155, 86,188,120,114,135, 9,219,187, 91,220, 92,221, 26, 91,253,181, 53, 11, 22, +201,106,136,142, 99, 7,223,117,121, 87, 63, 89,150,249,138,205,130, 52,150, 9, 79,234,231,103,125,156, 24,243, 28, 86, 68,152, + 56,147,219, 18,182,219, 29, 66,152, 48,238,247,120,248,240, 33,252,230, 2, 80, 51,138, 81, 88,152,145,133,158,216,196,236,189, +135,243, 86, 36,137, 61, 48, 41, 98, 68,142, 80,237,106, 51,177, 90,173,224,187, 14,171,206,227,163,239,124, 7,251, 41, 98,188, +186,178,123,222, 25,171,189,239,122,128, 8, 73, 3, 58,239,115,195,151,229,130, 76,232,185, 67,136, 17, 18,164, 58,237, 41,128, +174,115,232,251, 14,196,200, 69,220,180,232,190, 51,207,121,231,156, 49,198, 83,192,122,181,202,235, 83, 5,231,188,139,110,221, +155,199,125,182,109, 69,158,188,219,157,111,177, 8, 47,158, 35, 42,209, 20, 57,185,105, 41, 70, 48,166, 34, 72,232,188, 3,177, +173, 18, 82,140,179,164, 78,204,242,202,148, 31,148,249,215, 10, 98, 55,231, 25, 16,114,131,160, 64, 70,116,152,115,138, 93, 14, +172,138, 98,124, 3,199, 2,133,199, 20, 21,158,130, 49,190,102,226, 18, 56,103, 15, 40,121,196,164, 24,166, 8,164, 17,253, 42, +161, 91,173, 1, 90,163, 39, 1,122,198,160, 27, 80,216, 3,156, 32,137, 17,226,132, 62, 18,158,116,130,235, 7, 15,160, 55,143, + 64,242, 13, 64,238,128, 4,167, 11, 87,185,251, 10, 59,189,169,184,211,177,164,246,168,128, 83, 67,242,173, 7, 20,225,126, 87, +142,251,255,120, 21, 49,251,197,100,134, 6, 75,168, 59,235,193, 75,102,122,222,163,114,211,192, 72,201,159,213,185,232,151,137, + 76, 90,211, 19,109,229,105,218,228,167, 27, 84, 46, 52, 55, 14,213,119,188, 61,132, 51,241,108,225,213, 77, 51,149,174,222,158, +149, 72,183,156, 73,202,107,227,182,251,162, 38,203,164,186,157, 81, 99, 72, 83, 10,211, 50,245,138,218,125, 49, 81,229, 27,168, + 30,250, 1,208, 98, 39,188,208, 29,147,158,208, 95,211,242,231, 30, 16,224,138, 71,124,129,247, 11,249,174, 77,194, 22, 44,225, +250, 82,124, 25,173,201, 8,213, 69,137,102,232,162, 4, 96,200,129,156,170,114, 17, 96,145,180,197, 3, 32, 45,214, 7,217, 51, +187, 33,106, 85,185, 98,213, 68,219, 3,205, 96, 40,235,226, 94, 91,232,162, 15, 30,157,227, 7, 36, 75,117, 42,234, 49,199,213, + 22, 85,195, 27,243,206,219,121,182,120,156, 19, 32,154,176,234,214,120,244,232, 33,190,250,242, 11,196,152, 83,173,190, 45,203, +253,196,191,220,172, 55,153,132,165, 39, 73,233,135,200,211, 9,240,252, 45, 15,242,137,209,255, 84, 32, 68,235,113,175,244,206, + 91,123, 98,198,110,187,197,235,215,215,248,175,254,155,191,139,127,251,175,255,117,252,249,143,254, 12,195,126,143,126,189,198, +195,135,143, 49,141, 19,174,175, 95, 2, 80,116, 93,143,243,139, 75,124,249,229,231,198, 7,105,100, 91, 83,136, 8, 49,224,238, +230, 22, 87, 87, 87, 24,135, 1,219,221,174,134,169,196, 24, 17, 51,121,173,239,123,107, 63, 9, 88,173, 86, 8, 33, 96, 24, 45, + 95, 61,137,204,107, 27,157,219, 85,118,156,179, 1, 36, 79,137,214,172,166,124,126,196,152,240,232,241, 99,124,239,227, 31, 64, + 20, 24,135, 61, 66, 8,121, 50,183,162,146, 50,212,221,247,189, 89,165,166, 84,163, 79,189,115, 16,159, 32, 73, 45,188,102,179, + 6,145,195,170,115,248,248,227, 95,197,229,163,199,248,252,203,231,181, 72, 82, 86,188,148,115,172,239,186, 92,180, 29,138,187, +107,129,206, 89, 24,222,155, 43, 92,185,199,147, 36, 56, 6, 84, 50,247, 41,239,241,157,239,192, 34,232, 58,135, 41,106, 86, 48, + 41,186,206, 1, 74, 85,147,238,189,195, 48, 1, 83, 24,179,214, 63,251, 50,104, 86,132,212, 9, 29,185,197,207,187,117, 40,132, + 4, 33,164, 28,128,147, 44, 42,183,179,253,127,137,133, 85, 41,215, 87,179,239,187, 93,195, 32, 10,141,193,130, 98,212, 60, 17, +204,148,206,154, 0,202,188, 34, 87, 16,156, 76,182, 19, 53,135, 71, 38,201, 3, 75,204, 43, 8, 32,161, 52, 60, 89, 55,159, 7, + 5, 37, 27,202, 18, 19,182,137,177,191,139,120, 24,110,224,207, 19,200, 95,160, 39, 65,236, 24, 41,117,136,106, 33, 80, 78, 19, +122, 34, 60, 89,121,124,249,120,133,237,203, 15,208,237, 94, 66, 57, 19,184, 79, 49, 92,168,237,162, 79, 65,240,173, 86,224,248, +145,212, 83, 18, 96,154, 17,236, 54, 59,164, 34,210, 39,253, 38,222, 44,111,245,197, 89,170,194, 81, 77, 0,139,131,153,254, 8, + 97,225,196, 84, 94, 34,151, 67,182,228,155,107, 59,213,181,197, 17, 72, 85,130,182,244,110, 47, 69,124, 73,152,182, 73, 82,115, + 17,168, 6, 38,135,144,105,253,121, 90, 25,218,181, 0,211,172,123,215,236, 28,197, 77,103, 74,249, 61, 27,138, 96,255, 62, 54, + 49,123,203,240,145,229,132, 87, 3, 81,106,194, 89, 83,208, 15, 50,119, 79,235,176,117, 33,115, 43,154,117, 52, 19,114,149,171, +193, 72, 54,115,200,138, 90,138, 93,126, 4,205,101,139, 79,154,182, 84,168, 62,171, 9, 90,142,156, 96,105, 76, 67,197,190,183, +241,155, 59, 20,170, 59,226,234, 68,230, 26, 8,147, 14, 26,188,121, 69,129, 26, 97,201,142,178, 81,135, 84,211, 21,109,100,105, +146, 25,200,142,249,232,154,241, 65, 37, 12, 49,162,235,186, 92, 40,155,198, 66,240, 86,214,250,201,172, 99,181,221,224, 56, 14, +120,254,245, 30,190, 91, 97,181,118, 24,135, 61, 78,139,201,223,192,140, 59,181, 30, 56,116,138, 59, 85,208,245, 64, 35,255,174, +157,249,194, 91,255,164,109,223,189,141,128,182,218,199,123,174, 27, 49, 99,191,219,225,245,245, 53,254,246,223,249,207,241,239, +252,141,191,129, 31,255,232,135, 8, 49,225,189,199, 79,112,118,118,142,148, 34,134,225,206,108, 65,213,224,226, 97,191, 53, 2, +215,170,131,168, 34, 14,123,203,238, 6, 44,106,245,246, 22,119,175,239,112,123,115,139, 97, 24,204,163, 33,195,196, 83,136,230, + 32,231,230,200, 81,151, 17,128, 88, 38,206, 26, 60,164,179, 76,143,230,180, 64, 99,222,231, 51, 32, 59,180,197, 24,177, 94,245, +248,240, 59,223,181,226,170, 9,192, 10,196,200, 9,136,108, 63, 59,187, 79, 86,142, 70, 67,112,178,204,116, 51,105,217,108, 54, +232, 87, 43,196, 20,241,236,217, 19,156, 95, 62,196,176,219,227,242,252, 12,211,112,137, 24, 39, 51,148, 9, 17,136, 38,185,235, + 10, 90, 67,130, 41, 10, 58,239,140, 23, 48, 77, 54,193,123,115,210, 16,153, 7,133,194,211,241,204, 53,104, 38, 37, 35,165, 17, + 2, 60, 59,248,205, 38, 43, 4,204, 42, 58,169,160,175,106,135,104,235, 32,226,121,106,204,207, 94,136, 41, 79,204, 25,250, 87, +203,151,136, 73, 76,193,160,138,148,236,100,117,157,171,133,185,132,212,148,201, 90, 83, 52,253, 63,179, 65,229,146,208, 81,174, + 18,146, 0,182, 60,122,205, 18, 55,110,218,107, 81,128,178, 63, 64, 18, 5,229,180, 58, 81, 53, 21, 64, 77, 74, 51,109,123,177, +132,165,140,234, 22, 39, 62,130,173, 94, 38, 85,188, 30, 20, 15,244, 14,221,133, 32,186, 11,120, 85, 36,207, 72,163, 7,235, 96, + 74, 24,102, 92, 50,225,217, 35,197,143, 31, 61,131,236, 62, 3,233, 53,136, 86, 75,249, 25, 53, 46,160,111, 37,176,157,248,234, +129,130,132, 78, 44,219, 22, 3, 95,203, 61, 90,176,238,223, 76,167,157, 37,109,245,225, 53, 40,217,105,217, 99,231,105,145,180, + 78,235, 66,213, 92,116, 46,176, 77,220,166, 86, 95,235,124,131, 52,141,192, 2,112, 85,155,250,102, 35,149, 89,143, 46,135,211, +124,179,215, 47,253,238,194, 90, 54,255,103,153,168,149, 44,140,133,218, 36, 41, 93,238, 51, 74,211, 96,172,253,172,119,172,193, + 39, 84,179,224, 19, 90, 83,157,246,224, 46,122,247,165,102,187,248,188, 43,200, 72,122,153, 11,208,134,212,232,161, 6,130,204, +166,146, 42,124,213, 76,233,153,133,235,178, 9,132,178, 69, 65, 74, 35, 79,211, 98,123,219,242, 0, 14, 62,118,119, 56,177,231, +104,221,210,116,186,252, 58, 60, 59,115, 9,203, 86,179, 71, 86,180,249,197, 59,180, 68, 66, 28, 7,127, 28, 57,144,101,159,234, + 3, 30, 65,107, 5,235,156,199,122,211, 99, 28,246, 85,223,127,168, 67,151, 24,177, 57,191,196,251, 23,231,120,125,245, 50,175, + 12,170, 28,163,162, 7,111,124,240, 22, 79, 85,123,147, 88,172,235, 20, 2, 30, 61,186,196,249,249, 26, 95,239,119,184,215, 36, +230, 91, 32, 98, 68, 75, 21,128,222,107, 51,221, 82, 49,223,153,247,222, 86,157,122,119, 67,142, 99, 96,103, 5, 71, 3,187,191, + 33,189,141,136, 48, 13, 35, 94,189,120,129,255,232, 63,249, 79,241, 31,252,205,191,137, 79,127,246, 9,216,123, 60,125,252, 62, + 28, 51,166,105,196,235,215, 87, 57,224,102,133, 48, 5,132, 48, 97, 24,246, 54, 97,165,204,108,201,100, 44,133, 96, 28,246,120, +125,125,131,237,221, 14,251, 97, 64,202, 57,233,206,113, 46, 32,118, 25, 98,140,217, 23, 29, 53, 33,205,244,219,102, 37, 45,213, +147, 26,149,208,101,225, 41,182,238, 41,118,172, 81, 12,214,151,148,176,190, 56, 71,215,175,112,115,123, 99, 73,107, 93,135,213, +166,207, 17,171,130,190,247,240, 25,114, 7,229,228,195,124, 63, 77,147, 77,245,157,247, 88,159,109,192,222, 35,165,136, 71, 15, + 46,241,254,147,103,230, 33,175,138,205,122,133,167, 79,159,224,238,238, 14,251,221, 14,228, 92,158,108,197,116,213,108,133, 44, + 36, 75,146,115,222,103, 29,122,196,249,249, 25, 20,140,105,218,163,184,100,120,239,205, 32,140,230,187,196,178,206, 57, 59, 26, +218,207, 4, 17, 82,180,103,194,229, 6, 64,179,169, 11,193,120, 6,162,102,183,139,108,198,163,133,180,150, 51,234, 75,172,109, + 8, 17, 12, 75, 92, 3,204,142,149,216,155, 12,175,145,184, 38, 49, 25,160, 99, 2,195, 80,130, 20, 5, 94, 5,206,119, 89, 95, +110, 77,138,119, 14,145,156,117,226, 10,251, 30,102, 64,205,215,191,164, 52, 69,181, 52, 62,147,172,113, 62,183,178, 37, 45,155, +108, 47, 73, 73,107, 12,153,121,111, 50, 64, 38, 69,199,132, 8,135,219, 0,156,109, 71,172, 55, 10,183,190, 64,114, 43, 64,200, + 50,228, 73, 17,148,208,199,132, 15,250,128, 47,223,223, 96,124,249, 33,252,120, 13,117, 98, 35, 32, 53, 42,169,156,136,247,182, + 39,242,109,207,235,114, 96,161,230, 24,106, 70,218, 6,154,111,137,236,198,203, 58,192, 50, 79, 28,117, 30, 57,208, 69,164,133, +165,237, 35,139,106,178,138, 34, 97, 82, 69,165,100, 85,203, 80,213, 76,180, 59, 80, 33, 83,201, 96,207,254, 63, 89, 74,198,205, + 91,147,198,100, 5, 77,113, 23,154, 93,220, 10,140, 85, 26,138,121,146, 63,152, 58,202,174, 88,117,113,198, 85, 72, 67,203,106, + 32,255, 95, 38,167, 73,179, 30,224,210,112, 84,109,249,113,120,138,228,139, 45,208,163,195,158, 26,147, 1,234, 58,172, 32, 72, + 33,206,194,169, 38, 88, 35, 39,146,219, 14, 92, 48, 23,177,102, 13, 65,217,194, 54,169, 77,235,164,138,169,200,187,136,234,247, + 84,222, 3,205, 69,186,109,162, 36,251,234, 57,180,156, 0,187,192,133, 59,193,236,208,123, 15,149,180,144, 22, 40,208,216,187, + 82,229, 95,212,127,159, 57, 5,220, 48,222, 91,127,252,118,253,160, 13,241, 80, 23, 21,207, 30,230,142, 8,145, 40,171,145,143, +117,160, 38, 53, 34,156,173,123,188, 46, 97, 49,196,217, 51, 0, 11,207,251,123, 31,186, 3,114, 92,129, 83,202,183,117, 93,135, +237,246, 22,187,237,237, 59, 19,230,238, 1,221,230,107, 68,247, 90,222, 47, 38,252, 67,203, 93,194, 27,180,172,122, 90,245,166, +208, 26, 76, 18, 99, 56,206, 16,192,236, 51,175,120,115, 65, 79, 41,225,249,243,175,240,239,254,123,255, 62,254,195,191,245,183, +240,197,231,159,161,239, 87, 56, 63, 63, 55,251,213, 56, 97,187,189,133,138, 65,238, 73, 18, 66,152,178, 43, 27,106,147,100, 26, +109, 70, 12, 19, 94,191,190,198,213,203, 87,216,237,246, 72,154, 32,154,170,215,121,154,178, 39, 58, 49,192, 90,205, 86,168, 72, + 22,101,118,122, 91,186, 26,154,197, 51,164,252, 94, 27, 82, 98,176, 66,110,210, 77,105,108,132, 45, 68,101, 24, 20, 78,197, 56, + 1, 92, 10,137, 86,223,115,107, 18, 45, 14,117,187,221, 97,191,219, 99,179, 94, 97,181,222, 96,181, 94, 89,208, 12, 17,158, 62, +125, 6,102,135, 20, 66,109,164,206, 55, 43,120,118,232, 87,198,209,152,198,189, 89,107,171,160,227,110, 94,183,229,189,112, 8, + 17, 23,103,107,124,240,236, 41, 34, 60,158, 63,127,142, 52,238,224,125,103, 62, 12,171, 46, 91,160, 74,158,200,237,222,240,206, + 21,230,113,181,168, 14, 33,102,162, 97, 66, 71,214,224,128,103,143,130, 66, 20, 76, 41, 65, 97,185,235, 41,165,220, 24,216,125, +163,154,160,204,217,215,222,174, 3, 51, 32,142, 49,133, 8,166, 0,239, 60, 82, 18,120, 36, 16,117,153,123, 96,103,167,243, 14, + 73, 9,140, 4,100,215, 58,205,205,153, 39,216,106,139, 93,254, 92,165,114,106, 98, 76,246,187, 49,163,176,164,128,103, 0,108, +230, 54, 76, 9, 10,135, 40, 2,206,144,191,138, 49,165, 29,153,231,123,151,235,200,221, 4,168,140,184, 80,193,197,217, 37,198, +139,115,140,131,135, 78,123, 8, 34,134, 4, 60,148,136,103,239, 9,126,250,240, 67,248,231,159,129,176,133,162, 95, 28,100, 84, +144, 45,253,229, 73, 94,143,228,111,153,155,213,102,185, 23,110, 82, 69,182, 23, 60,186,211,164, 58, 15, 46, 5, 44,195, 61, 50, + 51,216, 11, 35, 56,230, 46,193,145,193,232, 9,115,152,252, 33,104, 72,197,205,171,184,180,229,146, 35,106,191,168,146,171,180, +200,160,172,176,112, 59,105,168,204,210,176, 38,119, 60,181,204,120,165, 5,115,144, 27,242, 91, 11, 99,104,203, 88,215,134,189, + 93, 19,227,200, 18,232, 26, 88,158,235, 26, 67, 27, 79,113, 99, 19,244,222, 97, 77, 4,150,132, 49, 37,236, 27, 98, 32,211, 92, +124, 68, 18, 36, 67, 97, 51,147,188, 85,195,207,102, 43,156,229,108,165,153,224, 22,119,201, 86,184,150, 62,164, 11, 95,119,106, + 36,127,109,249, 73,117, 98,215,252,223,188, 32,180,149,102,170,160, 40,230,239,156,176, 31,179,193, 69,201, 72,174, 13,134, 64, + 5, 53,109, 44, 53,218,231,170,210,160,185,176,107,115, 13,237, 87,113,110,216,102, 26,104,101,190,194,210, 1, 37, 69,220,109, + 67, 37,213,233,129,122, 0, 0,124,215, 97,191,189,197, 63,189,125, 13,207, 46,175, 3,102,115, 8, 87,236,126,239,183,106,107, +124,235, 15, 16,173,131,156,244, 35, 77,255, 91,186,115,189, 15, 16,160,123,190,120,226,251,233,136,114,163,239,214,242,183, 93, +150, 40,152,204,166,244,180, 70,144,222,184, 15,108,175,193,151, 95,124,129,127,237,175,254,235,248, 59,255,197,127,137, 23,207, +191, 6, 20, 56,219,108, 48,141, 19, 0,212,108,242,205,217, 57,166,105,196, 52,142,144,204, 86,111, 5,143, 49,153, 73,200, 52, +142,120,125,245, 26,183, 55,119, 24,134, 61,134, 97,192, 56,140, 72, 73,102,255,116,192,228,106,229,185, 77,185,136,229,137,223, +188,220, 39, 43,254, 60,163,118, 41, 89,162, 27, 96, 19,126, 8, 22, 20,147,146,105,229,189, 51,114, 90,200,217,234, 5, 25, 96, + 98, 51,147,129,153,212, 88, 20,234, 4, 71,140,110,213, 67,146,253,156,187,219, 91,172, 86,198,108,183,148,183,128,139,139,115, + 60,125,242, 20,231,151,151,245,119,163, 30,204,166, 29,239,215, 43, 92,169, 34,197, 9,147,152,241, 75, 97,197,175, 87, 61, 66, + 8,216,110,119,120,120,121,134,143,190,243, 17,152, 59,172,187, 14,183,231,151,120,189,191,195,218, 17,184,235,178, 91, 28, 99, +138,161,238,173, 69,204,127,127,211,247, 8, 82,118,209, 12,176,195, 24, 34, 40,251,229,179,101,189,150,110, 7,170,201,136,134, + 42,245,172,167, 92,192, 19,212, 76,121,212,108,119, 61, 43,156,239, 16,162,128,210,100, 43, 46,139, 87, 67,208,108,158,227,121, + 14,164,130,194,119, 22, 3,171, 81,234,249, 84,216,248, 76, 10,223,121, 16,155,172, 48,101,197, 2,168,240,108, 82,246,179,103, + 36, 0,172,169, 54, 67,148,146,165,132,170,130,201,162,115, 89, 8,156, 29,252, 98, 50, 62, 0,169, 88,141,202,231,246, 77,100, +200,205,132, 39,124, 13,255,192, 67,232, 28, 81, 12,165,152,146,160, 31, 5, 79,251, 61,190,124,127,131,120,245, 12, 62,254,184, + 30,168, 71, 1,212, 11, 47,136,119, 6,224,223,125, 37, 72,199, 11,219,195, 48, 25, 58,153,206,161, 45,252,110, 31,186,167,121, + 50,173,132,169,146,135, 93,204, 88, 26,178,154,149, 56,169, 50, 55, 37,173,211,183, 77,129,102,248, 15,244, 80,231,192, 52,130, +163, 34, 20, 0,152,168,181, 28,174, 30,236,218, 76,121,101, 47,203, 71,242,176, 70,171, 71, 2, 40, 47, 38,234,170, 3,167,217, + 60,163,101,211,215, 56, 86, 66,157,206,171,187, 90,129,235, 27,233, 86,225, 11,192, 49,206,153,113,102, 11,102,187,241,147, 77, +207,109,140, 43, 67, 32, 65, 48, 54,210,183,147, 5,162, 20, 53, 73, 75,227,152,166,176,148,195, 58,234,145, 81,155,221,244,167, + 6, 63, 34, 80,138, 8,162,240,190,203, 70, 58, 84,165, 65,200, 77, 13, 23,143, 1,109,253,248, 11,187,126,102,165,115,215,227, +193,217, 6,251,187, 91,132, 36,213,110, 85,178,156,142,139,125,120, 94,185, 80,163,251,174,153,111,122,172, 53,111, 33,253, 57, + 30,118, 78, 88,171,168, 70,189, 22,115, 10,214,204, 18,157, 73,122,247, 58,220, 97,249, 99,233,144,124, 32,247, 49,233,191,165, +140,237,190,218, 93, 8,153, 39, 26,253,153,228,181,104,245, 78, 62,186, 39,127,239, 1, 71,206,210,227,194,188,103, 62,209,105, +104,115,119, 55,241, 70, 11,233,218,231,159,125,134,191,244, 47,252, 30,254,238, 31,255, 61,220,221,220, 96, 24, 7, 60,126,252, +190, 49,160, 9,152, 98, 64, 74,130,174,235, 17, 83,196,126,216,155, 21, 41, 51, 72, 20, 33, 37,164, 24,145, 98,196, 56,141,136, + 49,100,123,216, 1,195, 96, 13, 64,152,166, 74,100, 83, 53,246,121, 20,201, 49,169,150, 83, 62,134, 80,227, 73,251,213, 26,143, +159, 61,193,229,249, 37,156,243,112,157,179,201, 46,239,217,119,187, 1, 97,154,114, 66,153, 71, 18,193,126,191,199,139, 23, 47, +241,242,249, 87,198,145,144, 14,251,253, 14,236, 87,182,107, 39,201, 17,176,154, 89,249, 33,107,194, 9,195,126,196,126,191, 67, +156, 2,250,245, 10, 23, 23, 23,232,251, 30,190,235,112,126,126,134,167, 79,158, 98,181, 94, 35,198, 88,249, 7,142, 24, 96,147, +127, 81,230, 27,149, 70,104,149,253,215, 41,127, 54, 41,153,187,221,122,213,227,233,211,103,240,221,186, 94,143,139,179, 13,246, +171, 13,124,231,224,186, 46,179,251, 21,155,213, 42,167,180, 9,224,243, 64,150, 12,157,113,157, 7,148, 49, 69,128,145, 16, 68, + 17,119, 3, 54,155,149, 21,189, 24,235,121, 27, 10, 19, 94, 41,219,223, 70,187, 71,115, 46, 69, 18,173,254, 7, 41, 38,155,168, + 83,130,103, 51,217,137, 73,161, 26,176,234, 61, 18,156, 53, 16,204, 89,150, 12,243, 41, 33, 66, 84, 6,171,237,236, 29,178,186, +128, 45, 92, 70, 51,138, 82, 26, 20,104, 66,239, 76,167,206,162, 96, 18,136, 0, 41,150, 59,182,172,217,108,119,174,130, 42, 1, + 20, 9, 32,149,156,155,129,106, 83,139, 60,204,109,197,131, 94, 71,188,167, 47,176, 58, 79, 72,253, 26, 41,117,208, 52, 96,167, +192, 35, 31,240,236,241, 10,159, 62,252, 21,184, 23, 95, 1, 24, 64,232,142,106, 38, 53,103, 44, 20, 71, 24, 29,221,135,221,209, +219,123,244,227,222,159,170,244,173,245,242,192, 34, 15,228,216, 4,210, 59, 34,235,140,106, 48, 10,224, 75,104, 74, 89, 89,113, + 97, 38,115, 53, 35,177,248,210, 46,107, 20, 83,102,187, 83,131, 10,102, 66, 21,102,242, 5,229,212, 32, 42, 54,176,121,148,150, + 3,114,217,156, 73, 94, 18,225,150,124, 63, 82, 90,190,241,134, 33,159,114,103,202,218, 28,141,101,167,157, 59, 55,215,170,127, +213,208,135, 82,219,181,144,202,154,230,160,188, 39, 35, 14, 38,236, 11, 65,163,209,216, 83,187, 19,205,238, 82,220,198,146,158, +200,244, 38,157,249,249, 45,196,220,238,242,239, 83, 72, 74,238,186,151,122,237, 92,228, 83, 2,175,206,177,242,140,105,119,135, + 8,158, 73,148,101, 63,173,116,164,130,166, 19, 21,169,218,206,102, 75,198,122,109,138, 99,219, 1, 23,179,137,196, 57,178, 57, +110,205, 82, 90,191,228,229, 22,121,201,116, 63,178,139,109,189,228,181,225, 76,228, 6,243,237,210,183,172,174,160, 25, 85,210, + 95,162,209,251,236,194,119,112, 97,233, 77, 43,185, 54,108,119, 89,218,191, 53,247,190,248,226,211, 9,147,157, 98,138,164,186, + 80,128,180, 7, 2, 51,227,235,175,191,198,247,126,245,251,248,227,191,255, 63,194, 57,198,171,219, 27, 60,124,248, 30, 66, 8, + 0,145,201,194,198, 1,222,117,136,113,194,110,191, 71,152, 34, 20,179, 22,221,114,204, 35,134,113,192,118,187,207, 16,244,128, + 24, 99,118, 50,139,112,204,136, 84, 18,182, 10,106, 69,216,239, 7, 12,251, 1,151, 15, 30,224,253,103,143,113,113,121,129,247, +223,127, 15,151, 15, 30, 97,189, 94,193,121,159,141,147,162, 21,224,124,239,143,147, 5,247,244,171, 30, 33, 76,128, 18,134,105, +194,246,110,135, 47,190,248, 2,159,252,228, 39,248,250,139, 79,113,123,125,141,199,207, 62, 68, 4, 48, 78, 99, 70,129,124,157, +148,156,115, 8, 49, 98,216,239,161, 10,156, 93,158,227,225,195,135,120,255,241, 19, 92, 94, 94,162, 95,173,178, 70,219,200,100, +229, 89, 40, 73,109,197, 31,193,230, 0,194,170,239,113,121,113,150,253,230, 71,131,219,147,173, 38, 86,171, 14, 31,124,240,193, +255,203,218,187,255,200,150, 93,231, 97,223,218,143,115,170,170, 95,247, 57,119,158, 36,135,164,169, 68,146, 19,197,176, 41, 74, + 12,160, 88,176, 99,202,142, 66, 57, 8, 5, 5, 81, 34, 5, 14, 16, 32, 49, 12,200, 48, 19,201, 82, 20, 58,201, 95, 21,196, 72, + 96, 33,137,129, 56, 54, 32,219, 17, 36,146, 67,147, 51,195,153,251,234,219,143,234,170, 58,103, 63, 86,126, 88,107,239,179, 79, +117,223,190,119, 24, 15, 32,241,190,186,171,250,212, 57,123,173,245,173,239,129,126,113,160,201,108, 14,139,197, 18,235,109,192, +114,217,163,211,116,181,174,243,213, 2,150,172,151,157, 55, 65, 51,203,229,126,137,154, 50, 71, 96,116, 94, 4,187,227, 46,232, + 80,146,117,211, 85, 98, 78, 9,129,197, 4, 40, 69,137, 91, 45, 81, 20, 4,145,225, 9,255, 66,213, 49,134, 52,143, 62,131,140, + 3, 57, 35, 36,102, 67, 72,138, 18,120,205,113,103,229,167, 24, 2,114, 18, 7, 16, 73,163,243,154, 48,151,166, 21,106, 78,181, +145,112,214,105, 48, 13,192, 73, 34, 91,115,140, 98, 90, 4,130,181,114,190, 39, 38, 64,141,118, 50,132, 71, 96, 89,220,226,178, +162,158,134, 8,137,132,131, 68, 57,193, 16,227, 50, 19,198, 23, 17,247,194, 51, 44,142,238, 96,179, 56, 4, 6, 2,120,132, 99, +131,183, 86, 9,159, 62, 60, 65,126,241, 16, 38,255, 0,108,220, 75, 23,229, 83,131, 78, 55,148,240,207,126,162,240,109,240, 60, +166,172,139, 89, 44,213, 75, 8,174, 46, 23,166, 56,113, 49,108,170, 26,102, 80,115, 64, 87,147,154, 44,198, 37,108,192,214,129, + 92, 64,151, 69,231, 28,179, 76,233,197,192, 70,138,113, 0,101, 32, 68, 66,210,201,217,206, 88,229,212,248,174,163,208,222,164, +216,151, 44,234,107, 54,216,109, 46,120,209,140, 55, 5,252, 6,249, 82,214, 7,173, 72,218, 50,241,222,174,184,236,170, 49,147, +146,213,139, 74,140,148, 35,182, 21,198, 39, 13, 40,152,124,226, 51,230,239, 97,142,212, 52,140,119,149,162, 77, 42, 2,154, 86, + 4,144, 12,250,214, 35,160,196,170,230,198,143,158,170, 43, 24,205,237,191, 33,144,220,225,234, 8,143, 78, 60, 62,250,209, 37, + 82,158, 75, 32,102, 41,102,123, 13,132,185,118, 29,196,181,233,242, 92,236, 29,171, 65,134,168, 70, 27,168,149,155,117, 9,170, +151,118, 53, 52, 52,147,245,109,201,206, 46,159, 9,221, 4, 87, 55,136, 80,190,161,233, 40,228,153,150, 53,206,196,175,182,119, + 82,216,191,149, 14,162, 65,138, 62,115, 41,229,155, 99,106,247, 41,252,175,226,228, 95,127,117,126,141,119,115, 3,190,254,146, +221, 3,105,146,224, 53,145,224, 94, 65, 63, 61, 61,197,114,185,196,239,253,193, 31,226,225,195,135,248,209, 15,127,136, 7, 15, + 31, 0, 96,164, 32,186,228, 33, 12,112,206, 99, 28, 7,236,182, 59,101, 77,139, 18, 35,165,136, 48,142,184,186,186, 66, 76, 9, +219,205, 6, 87,235, 13,198,113, 64, 24, 70,196,152, 16, 83, 64,136, 81,116,217,149,156, 37,215, 96,125,113,129,197,114,133,191, +240,213,191,136, 55, 30,189, 5,128, 16,194, 14,171,197, 2, 57, 49,118,187, 29,226, 56, 10, 75,218, 72, 33,141, 81, 33,218, 28, + 97,172,197,110,183,197, 56,142,106,253, 26, 49,108,175,112,124,176,194, 87,126,234,167,224,187, 30,159,126,244,175,208, 47,150, + 48, 93,135, 20,162, 36, 80,214,204,120,194,102,179,193,110,183,193,209,225, 17, 86, 71,199,232, 59,135,207,127,238,115, 56,190, +123, 15, 49,196,106, 34,149, 42, 97, 77,136,108,229,185,172,107, 1,125, 6,156, 53, 88, 44, 22,186, 54, 16,175,247, 24, 51,188, +115,120,231,173, 71, 56, 60, 62,209,102,194,193,169, 27, 29,215,164, 13,160,239, 60, 22,139, 37,182,187, 17,153, 89,226, 82,173, + 5,231,136, 69,215,193,120,175, 70, 61, 9,227, 40,122,114, 99,128,213,178, 23,137, 94,150, 41, 58,178,236,219,115,138,250,121, +229,138,232,100, 22, 14,133,129,146, 3,203, 90,150,156,114, 12, 50,156, 90,222,130, 12, 58,103,116,181, 34,158,237,210,196,200, + 73, 85, 38,244, 33,148,102, 65,216,250, 68,185, 58,108,150,208,165,114,246,139,230,156,244,252, 18,167,203,226, 67, 95,152,242, +149,156, 77, 82,188, 57, 75,154,157,183, 70,232, 97,138, 90, 20, 19,171,196, 9, 57, 3,148, 51,156, 3, 64, 22, 59, 54,120,113, +149,241,208,156,225,248,196, 98, 99, 14,129,193, 96, 68,192, 49, 51,238,221,205,120,124,252, 22,186,211, 79, 0,147, 20,204,230, +151, 22,246,121,212,234,109,241,200,183, 31, 47, 47,253, 43,194,204,252,108,223,221,165, 58, 26,214,236, 10,130,227, 28, 85,166, +129, 50,170,130,139,156,141,129,168, 7, 55, 81, 9,250, 40, 6, 46, 25, 57,109, 5,253,214,137,205,144,146, 89,114,105, 0,104, + 70, 50,179,147, 39,205,100, 32, 32,153, 62,117,114,157,180,238,133,180,198, 83,193,172, 4, 31,154,147,207,168, 20, 60,185, 52, + 73,208,113, 97, 98, 82,179, 39,231,249,244, 88, 8,126,185,236,210, 27, 19, 6,106, 72, 69,134,167, 93,255, 54, 1, 94, 17,135, + 84, 11,196,244, 62,120, 70,230, 83,248,132,120,111, 22,157, 88,234,109, 49, 45, 63,167,130, 62, 8,152, 80,141,210,184,236,195, + 60,243,237,229, 68,246, 26,206,159,226,195, 75, 66, 38, 91, 67,239,139, 28,207, 52,208,110,249,190,197, 76, 39, 53,211,111,166, +169,161, 40,142,111,204, 37,228,167,188,239,182,176,183,164,254,102,202,214, 9,134,149,232, 86,194, 43,138, 50,118, 70, 8, 43, +205, 29,115,227,253,191, 55,245, 55,220,133,234,249,255,154,197,184, 76,233, 69,178, 88,238,249,207, 20,164,254, 26,117,118, 63, +201,244,230,160, 37,198,220,112,136,247,186,254, 91, 28,172,170, 10,227, 6,223,246,107, 95, 70,141,135,245,205, 36, 68, 50, 6, +103,103,103, 72, 49,226, 15,190,243, 15,240, 51, 63,243,179,248,211, 63,253, 19, 28, 31,157,200,129,170, 83, 90, 72, 17, 93,215, + 97, 59,236,176,217,108, 17,194, 40, 33, 42,163, 22,236, 24, 49, 12,178, 43,143, 49, 97, 24,119,136, 41, 32,197,132,171,245, 6, +235,171,181, 90,150, 38,205,221,158, 28,218,182,195, 14,119,239,222,195, 47,252,210,215,241,249,247,223,199,233,179,231,120,252, +201,167, 24,118, 3,182,107,105, 18,172,198,154,166,152,208,245,157,200,228,212,108,198, 89,135,113, 24,113,181,185, 82, 91,220, +164, 4,183,157, 36,196,109,183,184,119,247, 46,182,155, 43, 60,127,254, 12,171,195, 99, 56, 47,209,176,163,202,183, 54, 87, 87, +224,148,112,247,254,125, 28,157,156,160,243, 14,239,190,251, 14, 30,188,241, 8,227, 56,194, 57,163, 36, 68, 97,144,119, 93, 39, +215, 47, 41, 83, 95, 37,125, 4,128,172, 20, 95, 50, 6, 29, 8,135, 7, 71,184,204,140,156, 34,142, 14, 86,184,119,239, 46,142, +143,143,229,153, 80, 73,157, 87,155,218, 66, 46,180, 70,164,115, 33, 38,120,111,197,198, 86,255,125,140,178,230,240,234, 45,111, +141, 67, 74,194,125,113, 86, 28,215,156, 53,202, 89,200,146, 79,159, 19, 18,179,236,200,247,154, 90, 71, 4,235,156,236,212, 51, + 43,106, 24,107, 2, 30, 89, 87,147,233,228,241, 21,132,214, 42,193, 78,162,110, 51, 34,107,118, 72,206,162,107,119, 29,198, 49, +192, 33,193,122, 7, 34,171,105,112, 64, 98, 3,112,150,179, 56, 50,200,202, 10,210,116, 14, 57, 11,162, 17, 99, 9,111, 41, 13, + 19,193, 50,131,156, 65,130, 1,165, 84,179,140,140, 41,254,241,172,191, 87, 11,110, 93,109,178, 5,214,209,128, 46, 34, 30,208, +115, 44, 14, 9, 67,183, 66,136,140, 85, 74,120,103, 21,240,236,193, 61,228,179,135, 48,249, 67,213,207,223,238, 36, 87, 19, 13, + 75,180,244,109,228,153,159,232, 72,153,124,229,105,198,202,106, 9,240,147,185,154,147, 16, 23,101,182, 43,187,148,107, 74,154, + 30,216, 58,225,154, 2,184,178, 78,221,172,201,109, 6,240, 74,222,128, 17, 66, 87, 80, 88,187,218,202, 50,131,205,164, 58, 23, +168, 13,213,154,112,154, 12,139,228, 13, 21,190,206,152,116,231,197,205,173,100,248,202, 3,141,121, 20, 42, 48, 35,166,205, 19, +195, 75,193, 87,189, 55, 97,143,113, 92,118,232,164, 49,146, 4, 50,194, 64, 47,255, 38,237,229, 85, 51, 21,174, 1,207, 35, 80, + 43,223, 80, 17,130,166, 40,215, 9,149,247,145, 1,198,200,147,127, 59,215,200,214,249,148,122, 83,147,192,123,187,234,152, 10, +196,156,235, 77,183, 48, 6,137, 35,198,204,176,218, 5,115, 99,179, 89,109,103,169, 41,150,141,219, 81, 86,151, 64,211, 64,221, +212,198,196, 98,110,111, 91, 69, 21, 57, 79, 97, 38,204,205, 42,165, 72, 17,169,222, 27,153,231,166,165,109,131,176,175,157,103, +213,103,243,107,153,176, 77,206,137, 44, 25,195,211,105,158,159,145, 0, 0, 32, 0, 73, 68, 65, 84, 39,246, 19, 60,112, 55,237, +210,185,113,108, 37,126, 37,221,109,198,120,111, 35, 33,248,117,252,245,246, 34,112,107,194,215, 13, 30,249,116, 75, 67, 64,100, +112,113,126,142,113, 28,241,247,254,187,223,197,215,191,254,239,226,187,127,246,167, 88, 46,151, 56, 56, 60,196, 56,140, 26,170, + 34, 48,238,122,189,197,102,187, 17,227,150, 81,136,107, 33,140,202, 92,150, 16,143,138, 66,105, 97,218,165,157,236,221, 57,193, + 24,135,196, 65, 14, 92, 38,132, 20,177,221,238,112,116,176,194,207,254,219,255, 22,222,126,247, 93, 92, 93,172,241,252,217,169, + 72,200,188,192,252,187,221, 78,167, 75, 57,172,183,195, 78,166, 53,205, 45,119,206, 97,179,217, 97, 24, 70,128, 25,195, 24, 48, + 12, 59, 45, 54, 73, 50,217, 99,196,189,251,247, 17,195,136,113,183,147,168,215,237, 22,200, 9,214,123,248,126,129,123,247,238, + 98,181, 58,128,181, 6,239,189,247, 30,238, 63,124,136,156, 19,250,174,131,177,182,178,239, 23,171, 21,140,181,216,108,182, 88, + 56,171, 33, 71,178, 55,142, 33,202,185,105,196,155,157,188,193,202,202, 30,221, 25,224,238,221, 59, 56, 60, 60,146,116, 53, 67, +176,222, 3,156,177, 90, 45,113,113, 53, 98,216,109,112,120,176, 68,223, 47,132,109, 14, 96,177, 92,130,200, 96, 55, 14,200, 73, + 52,247, 76, 50, 17, 19,184,166,199,121,239, 48,236,228, 51, 35, 35,246,170, 69, 9, 33,187,124, 41,218,101, 21, 67,196, 88,116, +174,230,180,179, 74,161, 10, 47,201, 84,139, 91, 13,159,210,194,154,115,243,108,150,120,212, 18,234, 98, 9,228,156,248,191,115, +134, 51, 4,134,149,137, 93, 35,110, 51, 41, 76, 15,249,125,137,106, 37, 18,197, 20, 51,195, 25,134,235, 61, 82, 18,103, 65, 25, +165,160,186,251,105,130,167, 6,127, 44,254, 5, 70,135,185, 76, 22, 49,101, 24, 22,199,195,133, 3,182,236,113,118, 5,220,119, + 47,128,149,195,128, 21, 98,218,224,158,141,184,119,223,227,233,227,183,209,157,127, 10, 50, 9, 12,119,171,151,195,204,212,185, + 9,241,186, 70,160,249, 9,246,234,184,134,248, 22, 18,184,174,206, 52,192,172,181,159,117, 33,103,201,156,213, 9, 44, 53,187, +222, 88,242,203,155, 84, 51,163,147,112, 86, 79, 99,111,132,100,103,181,228, 26,155,209,177,216,200, 70,213,188,143,108,145, 12, + 43,243,122, 98,168,167,214,241,173,232,217, 85,219, 77,205,100, 37,182,135,178,231, 55,181,192,105,145,213, 93,126,235,239, 62, + 47,208,194, 42, 47,146, 53,130,176,249, 77,211,233,112, 33,151, 53, 71, 95,185, 33,202,190,183, 72,220,108,141, 84,155,100, 65, + 45,230, 74, 13,207,124,182,255,109,246,234,118,150, 13,142,102,245,176, 23, 54, 83, 94, 95,215, 13,220, 76,243,179,228,181,107, +232,130, 74,220,244, 51,104, 33,238,222, 16, 66, 54, 24, 74,236,100, 43, 25, 3,207,172, 68, 39,187, 87,110,212, 14,251, 62,248, + 37, 21, 15,123,252, 1, 93,145,236,233,209,115, 49, 6,169, 36, 66,158,165,217, 97,175,144, 51,243,245,120, 67, 52, 54,151, 51, +114,221, 77, 15, 72, 67, 8, 99,154, 77,209,252,175, 49,145,109,182, 9,185, 33,199,190,160, 10, 32,122, 5, 23,189,109, 80, 95, +218, 77, 92, 55,156, 41, 38, 74,170,101,229,219, 40,247,141, 73, 21, 25,131,243,179, 51, 12,195, 14,127,247,219,191,139, 95,249, +235,127, 3,223,251,222,159, 33,231,136,163,163,135, 10,121,111, 33,107,204,136,221,110,139,231,207, 78,197, 90, 56, 6,108, 11, +123, 61,134, 90, 4, 10, 46,101,172, 1,143,122, 47, 91, 3,239, 61,188,119,216, 13,161, 26, 24, 49,145, 78,116, 30,239,188,243, + 46, 30, 62,122,128,227,227, 19,124,124,254, 17,134, 97,135,197, 98,161, 16,187, 48,222, 75,180,103, 78, 25,219,157,152,136, 56, +103,212, 29,110,196,229,229, 90, 83,254,184,174, 20, 66, 28, 49,142,131,172,125, 72,154,214,163,147, 19,108, 46,215, 50,189,198, +132,229,106,129,187,247, 31,224,232,240, 8,198, 73,168,209,187,239,190,135,123,247, 31,200, 78,219, 89,248,206, 35, 4,129,178, +239,222, 57,129,247, 61, 46, 46, 46,167, 53, 64,158, 98, 71,173,153,100, 92,206, 59,120,221,193,119,206,161,239, 60, 58, 13,126, +241, 53,131,221,160,239,122, 24,235,241,226,252, 9,194,110, 64,127,184,210,159,153,209,119, 22,157,247,178,230,140, 25, 11,239, + 65,198, 97, 28, 6,101,158, 43,121, 53, 51,198, 49,212, 12,131,113,140, 24,134, 65, 10, 32, 9,177, 16,121,210,129,123,231,107, +202, 90, 49,159, 41,133,223,146,216,227,114, 29,246, 84,250,156, 19,172, 3,140,145, 52, 54,202, 89,141,133,148,124,236,196,121, +143,156,120,239,231,152, 36,162,213, 58,125,166,117,112,202, 98, 26,102,141, 5, 89,171, 22,181, 50, 20,230,156, 84,166, 43,123, +123, 2,144,140, 65,138, 4,228,168,251,120, 65, 11, 10,199, 86,214, 8, 70,118,232,166, 65, 8, 49,207, 58, 54, 68,232, 12,225, + 42, 27,248,203,136, 99,251, 2,185,127,128,113, 92, 96,149,182,120,107, 53,224,244,193, 61,240,229, 67, 32,127, 2, 24,247,210, +167,113,174, 85,153,138,109,187,115,255, 44,133,253, 54, 45, 46, 53, 28,152,249,217,202,179,129,192,137, 17,191, 20,172, 88, 83, +216,168, 66,227, 96, 66,210,137,209, 19, 64,153,106,161,153,180,180,166, 78, 90, 4,249,128, 60,141, 48,129,177, 99, 2,187, 99, +216,131,128, 59, 97,141,221, 54,227,170,216,155, 54, 94,226,132,121,234, 22,205, 32, 73,106, 76, 0, 52, 93,136, 76, 37,215,149, + 93,152,120, 62,243,236,251,181,246,171,212, 4,207,164, 61, 66,150, 45, 83,187,158,202,142, 10, 73, 76, 73,131,237, 62, 95,205, + 81,234,244,156,209,248,205,210,172,136,181, 94,233,134, 90,169,151,238,204, 53, 53,104,159,173,108,154,244, 39, 91, 58,232,218, +112,208, 12,162,110,237, 11,107,176,133,254,240,150, 38, 43, 84,203,140,139, 24, 4,170, 52, 84, 39,182,242,178, 70, 87, 13, 51, +123, 95, 76,201,103,173,213,109,110, 26,175, 76,220,242, 50,107, 35, 80,252, 14,136,184,113, 0,203, 51,210, 92, 77,118,187,133, +248,177, 63,173, 51, 55, 52,246,150, 29,202,123,205,206,222,138,162,237,174,102, 44,252,198,198,182, 52, 30,159,121, 74,167,185, + 46,189, 93,146, 51,163,198,189,230,234,189,205, 55,144,228,246,203,239,205, 39,192, 75,141,100,249,230, 86,133,102,252,250,233, + 65, 51,198,226,244,244, 57, 98,140,248,123,191,251,247,241,215,190,241, 13,124,240,253,239, 97, 24,118, 56, 62, 58, 65,140, 9, +187,221,149, 58, 47,202,238,251,236,197, 57, 78, 79, 79,209, 57, 89, 18, 85, 11, 81, 53, 64, 17,171, 85, 33,154, 49,203,212,154, + 57,163, 95, 44, 96,189,199,184,219, 33,134, 17, 45, 77,147,192, 56, 58, 62,193, 27,143, 30,225,206,201, 29, 88, 34,236,134, 1, +171,229, 10, 49,138,164, 44,168, 35, 91, 89, 3,164,152, 16,134, 1,166,235, 49,166, 36,114, 58,230, 42,121, 35, 2,124,231,164, + 40,230, 92,109, 77,101,114, 77,232,188, 67,232, 58,144, 9, 56, 57,121,132,163,147, 19, 9,116, 97, 70,138, 1,111,188,249, 8, +119,239,221, 23, 66,159, 53,232, 22, 29,140,145,212,182,174,243,112, 94, 10, 86,215,123, 24,125, 95,142, 80,125,230,125,231, 36, + 43, 62, 68,157, 64, 73, 76,107,150, 11,225, 21, 89, 35,202, 20,231, 48,142,163, 54, 3, 78,220,217, 88,190,175,120,213, 68, 44, +122,143, 69,191, 64, 38,131, 16,118, 88,116,242,154, 65,237,107, 73,121, 5,212, 52,125,153,129, 97,179, 3, 56,193,170,249, 13, + 71,221,165, 43,233,181,243,130, 60,140, 33,214,157,183, 53, 6, 57, 19,148,239, 88, 27,250,148, 39,151,190, 12,104,210, 26,207, +216,170,172,110, 52,197,155, 62,113,195, 21, 82,173, 55,105,179, 83, 27, 8,206,176,214, 32, 27, 3,142,185,218,115,151, 6, 32, +165,140, 20, 18, 12, 36, 64, 38, 82, 83,155,154, 1,132, 32,122,127,144, 65,180, 86,144, 65, 36, 93, 11,136,113,151,129, 85,121, +156,184,209, 25,202,184,200, 14,116, 17,112,116,252, 28,212,223, 71, 8, 43,220,195, 22,199,247, 12,206, 30,191, 9,191,126, 2, +152,136, 54,232, 5,183, 32,164,173,118,156,136,167,136, 85,126, 45,114,205,107, 73, 88,235, 89, 71,180,167,126,149, 95, 56,168, +219, 79, 41, 4, 70, 59, 67, 25,106, 76,133,167, 77, 67, 84, 48,218,109,229, 12, 68, 76,132, 21, 75, 37, 29,177, 76,176, 34,239, +162,116,129,188, 5,118,153, 16,185, 61,200, 74,193,156, 52,222, 5,130, 23,232,221,236,193,173,212,144,155, 26,189,245,158, 7, +180,220,120,218,100, 84,163, 24, 86,141,227,228, 70, 87, 57, 27,202,196, 52, 90, 20, 45, 77,105,109,229,231,176, 96, 69, 50,184, + 22,162, 92, 9, 3, 42, 99, 83, 70,186,105,141, 90,154,207,195, 26,113,187, 75, 89, 72, 54, 81, 59, 12,179, 55,201,151, 21,131, +216, 66,202,247,163, 74, 68,156,131,179,134,246, 81,233,146,106,133, 38,179,125, 58,212,219,242, 81, 9, 99,205,180,156,219,247, +130,169,193,186, 9,223,206,104,221,255,230, 51, 38,215,150, 50,215, 87, 21, 72,140,234, 26,187,245,122,223, 39,236,237, 23,119, +102,110,106, 62,207,246, 87,251,150,204,180,127,159, 83,179,119,226,249, 3, 88, 94,211, 41,246, 31,126,210, 65,125, 47, 36,173, + 45,172, 41, 39,172, 14, 15, 96,140,192,220, 19,169,165,189,162, 55,170,197,111, 62, 66,218,207,130,111, 84,211,206,191, 79,219, + 92, 22, 9,161, 53,120,254,252, 57, 58,223,225, 15,190,243, 63,226, 23,190,254,139,248,224, 7,223,199,184, 27,144, 83,198,102, +187, 81, 95, 4,134,179, 14,139,254, 0, 79,159, 62,198,179,167, 79,225,212,173, 45, 38,113, 80, 75, 49,194,117,122, 8,199,132, +174,183,240,222, 34, 69,192, 90, 47,159,247,110, 64,223,119,122, 63, 48, 98, 74,162, 17,207, 9, 93,183,192,193,209, 17, 34,103, + 44, 87, 75, 73, 78,139, 1,214, 89,129,216, 33,211,220, 38,110,177,221,108,145, 98,172,186,234,237,118,163, 18, 44,129,125,199, + 16,116,202, 99, 96,148,235, 84,108,101,219,107, 97,140, 65,191,232,177, 52, 11,156, 28, 31, 35,107, 18, 27,152,113,124,120,136, + 7,111, 60,106, 32,107,217, 23, 27, 7, 28, 28, 30,169,193,139,220, 41,157,239,224, 93, 70,140,162, 2,170,124,145,242, 44, 27, + 41, 42,206,137,175, 59, 67, 10,176,181, 26, 43,155, 19, 86,203, 37, 58,239,208,117, 29,194,110, 68,231, 44,250,147, 59, 72, 26, + 15,219,119, 11,128, 8,195, 56,194, 90,130,115,157,132,219,176,129,233, 60,134,221, 32, 59,116, 34, 24,206,176,222, 99, 24, 71, +244,157,133,115,189,184,213,165,140, 97, 24,145,194, 8,130,129,119,226,233,144, 99,172,207,185, 36,236,101, 36,101,199,195, 88, +132, 33,232, 20, 47,127,111,173,120,213, 11,250, 36,214,206, 57,101,201,191, 40,171, 70,171,121,237,234,225,110,141,236,208,133, + 36, 8, 16,217,202,149,201, 73,238, 25,235, 8,198, 78,142,113, 49, 50,192,210, 80,145,161,106, 34,100, 8, 32,107, 64,214, 32, +100,134,201,218, 52, 41, 31,200, 48,195, 26, 6, 89, 66, 98,229, 0, 64,152,253, 89,163, 94, 73, 37,189,142, 8,129, 12,158,110, + 9,148,214, 88,221, 3,118,238, 1,108,244,120,115, 21,113,126,255, 1,242,213,125,152,252,228,165,211, 58,223,192,136,175,230, + 94,133, 79, 67, 37, 93,148, 94, 89,216, 95, 57,200,243, 13, 40, 65, 89,231,103, 65,203,165,168, 39, 45,120,152,147,110,202,108, +232, 90, 7,170,118, 66,211,147, 51,137, 99, 13,146, 33, 80, 78, 32,102, 68,102,140, 89,245,213,121, 68,138, 6,107,154,138, 63, +148, 61, 42, 4,187,172,164, 56,177,165, 5, 3, 73,188, 83, 27,217, 17,102,221,189,153, 49,163,105,239, 32,231,250,247, 73,101, + 15,164,162,247, 66,123, 48, 52,135, 77,106, 65,203, 92,199,173,208, 76,238,115,138,194,190, 49,127,107,120,147,145, 26,121, 75, +203,191, 74,105, 90,160, 23, 7, 52, 82,119,184,201,117,109,218,191, 23,187,216, 92, 28,228,234, 39, 50,151,146,149,249,108, 66, + 41,132,147,208, 30,237,220, 54, 15, 45,220, 14, 49,118, 40, 94,215,133, 41, 77,234,183, 92, 38,116,154, 17,252,166, 48,158,130, + 48,240,158,221,168, 72,107, 90, 9,155,153,140,111,180,129, 48,234,216,150, 57,207, 32,255, 18,102,209, 58,159, 1,123, 5,125, + 15, 90,199, 75,210,233,166,169,153,167,187,100,182,159,215,204,131,220, 72, 5,127, 18, 93,122,195,187,107,190,181, 52,115,214, + 98,183,221,106, 4,166,153, 53, 51, 55,177,224,111,123,172,175,217, 12,239,193,123, 55,171,219, 27,255, 5, 53, 62,185, 56,191, +128,181, 6,127,240,157,239,224,231,191,246,139,248,222,247,254, 12, 65,221,223,140,177, 18, 24, 98, 12,150,139,165, 22,181,132, + 97,187, 19,196,199,119,176, 68,232,224,177,217,108, 64,222,193, 11,189, 24, 33, 74, 81, 53,214, 98,100,134, 65,134, 1,233,110, +220, 1,220, 99,187, 27, 52,169,204,194,195,193,172, 86, 88,173, 86,184,123,239, 14, 86,135, 71, 56,125,254, 76,204,155,148,119, +115,181, 27,112,117,121,133,237,102,131, 20, 35, 66, 74,141,190, 93,238,196,160,198, 49,242,127,154,222,197,210, 80,165,156,132, +241,173,247,123,223,121,132, 64,176, 54,195, 57,135, 16,131,252,140, 60,121, 89,132, 97, 64,191, 92, 41,164,155, 49, 14, 1, 93, +231, 49, 12, 35,178,134,205,244, 93,135,152,146,186,230, 9, 83, 58,235,180, 99,116,151,157,116,106, 23,125,182, 65, 24, 71,244, +125,167, 18, 46, 11,231, 29,156, 53, 88,173,150,200,100,177, 61, 61, 3,167,160,158,250,140,148, 2,172, 21,222,147,183, 4,231, +151,178,107,182,178,196, 28,199, 0,231,100,207,159, 98,192, 56, 74,179,209,247, 30,206,200,153,154,179,238,180,189, 3,145,252, + 58, 6, 9,165,145, 56,213, 44, 13, 90, 74, 64, 84,187,222,108,128, 20, 5, 77, 85, 46, 20,116, 7, 94,221, 13,152,148, 35, 65, + 32, 99,225, 53,242,150,200,234,103, 20,235,117,133,174, 98, 1, 41,236,204,114,214,179, 53,178, 82, 8, 9,206, 68,144,245, 90, +188, 9,201, 24,157,184,129,162,183,235, 44, 1,174, 71,204, 25, 46,166, 74,170, 46, 67, 68,202, 44,132, 59,202, 74,254, 21,235, +112, 57,199,132,152,105, 72, 26,150,152, 33, 59,122, 2, 46,130, 67,119,181, 67,119,124, 9,184, 99,188,225, 8,159, 60, 52, 56, +127,246, 54,236,230,185,140,114,213, 42,246,230, 66,204,215, 45, 72, 38,211, 24,106, 56, 95,159,149,148,203,175, 30,226,171, 63, + 26, 1, 46, 47, 78,224,121,139,195, 93,194,176, 51,216,233,225,207,197, 52, 68,237, 98, 11, 89,171,236,126, 19,105, 33,207, 6, +201, 48,188,147,233,186,228, 27,199, 18,221,202, 83, 56, 75, 75, 66, 99, 53,193, 48, 58,169, 91, 18, 72, 36,101,128,220, 1,204, +210,226, 48,175, 49, 14,140, 45,166,157,189,216, 62,139, 79,113, 34, 15,235, 80, 35, 84,139,197,172,213,178, 23,103, 36, 10,221, +197,100,192, 88, 91,211,198,152,247,172, 67,155,233, 30, 13, 36, 95,164,119,118,102, 2, 51, 89,231, 78, 57,239,147,111,123,129, +182,185,129,179, 67,222, 79, 81,155, 32,103,131,214, 80, 64,186,248, 81,209, 18,206, 19, 92, 79,220,112, 2, 74, 51, 97,212, 59, +158,209,144,193,208,228,178,207,239,165,201,100,136,225,124, 15, 52,150,182, 21, 94,167, 22,114,167,107, 19,186, 41, 36, 70,204, +101,147,211,215,112,211,152,228, 38,107, 92,160, 52, 67, 52,133,227,212,239, 97, 42, 20,159, 27, 59, 96,162, 57, 90, 48,249, 50, + 79, 46,117,252, 42,189, 8,237,153, 10, 53, 13, 67, 98,126,165, 26,238,149,106, 57,122,201, 3, 14,104, 80,200,124,167, 78, 55, +230,178,209,237,112,192, 77,208,196,117, 33,254,245,198,166,249,238, 97, 12,216,108, 54,248,187,223,254, 54,126,225,235, 95,199, + 7,223,255, 62,142,143, 79, 64, 96, 92,174,215, 32, 99,177, 88, 46,176, 90, 44,145,153,113,121,113, 1, 34,194, 98,181,132, 53, + 22, 49, 6,216,197, 2,113, 8, 26,224, 33,205, 93,215,119,226,169, 29, 18,198,113,168,108,107, 33,209,201,191,181, 86,166, 54, + 34, 83,205,131, 14, 86, 7,120,243,205, 71,248,194, 23,223,159,193,210,235,243, 11,236, 54, 91,172, 47,214, 56, 63,191, 16, 68, +192,201, 14,125, 28, 3,134, 49, 86, 73,219,168,122,113, 34,130,115,174, 58,156, 77,166, 80,133,188, 42,147,187,120,103,200, 90, + 43, 4,192, 57, 82, 31,117, 96, 55,140,248,248,227,143,113,255,254,125,220,189,127, 31,139,190, 23, 56,123, 8,232,123,225, 6, +144, 34, 0,210,120, 88, 24, 87,158,193, 92,155, 85, 86,105, 73, 78, 2, 23, 27,107, 97, 23, 11, 88, 69, 9,136, 8,227, 56, 74, + 52,112,223, 97, 59,102,236,182, 27, 13,155, 17, 68, 35,232, 84, 47, 57,240,146, 86, 55,134,128, 28, 19,156,115,122,141, 25,187, +221,136,148, 2, 58,103, 37, 68,102,228, 70,174,198, 72, 77,190,123,166,172, 62,240,194, 92,143, 77, 66,101,206, 18,173, 42,193, + 45, 89,175, 19,137,247,185, 62,159, 98, 76, 35, 79,126,239, 29,136, 36,159,194, 56, 43,154,245, 36,112,121, 36,139, 49, 70, 48, +199,154,170, 38,102,101,172,233,117,226,235,158, 73, 28, 68, 83,150,221,123,206,128,163, 36,235, 8, 29, 86,140, 19,143,120,163, +164,228,148, 1,103, 50, 96,101,197, 2, 78,136,108, 0, 53,186, 73, 89, 6,172, 18,242,101,136, 96,156,211,243, 47,201, 36, 45, +110,196,232, 29, 16,179,197,197, 46,227,200,110, 96,151, 14, 71,190,199,219,247, 8,231, 15,222, 6,127,248, 49, 8, 79,193, 88, +220,120, 18,220, 22,239, 50, 89,187, 82,245, 51,217, 55,175,249,215,241, 95,187,241,115, 70,137, 6,157,145,139,187,205, 69, 33, +137,154, 19, 14,237,148, 98, 67, 32, 67,150, 11,150, 56, 41,116,159,167,244,181,198, 88,132,155,233,134, 9, 83, 60,231, 12,222, +213,223,115, 2,216, 32,230,136, 46, 72, 4, 99, 44,226,126, 13, 80, 49, 57, 33,211, 33,236,201, 18,199,124,142,184,101,196,150, + 75,156, 51, 50,140,122,163,163,186,169,129, 19,216,174,224,151, 6, 46,108, 49,166,201,242,207,176,124, 77, 69, 9, 26, 54,119, +109, 10, 26,194, 25, 26,242, 26,205, 4, 6, 37,167,188, 17, 38,213,203, 71,234,118,196, 10,171, 77,137,112, 5,138,146, 52,187, +201,191,221, 40,137,136, 33,132,183, 26,193,218,232, 38, 43,239, 32, 95,247,195,167,154, 0,135, 89,102, 54, 53, 11,144,152, 34, + 78,238, 61,196,202, 38,252,248,211,199,146, 27,173,100, 34, 2,129,172,169,186,242,118, 2,205,212, 56,193, 97, 50,127, 49,138, + 18,212, 29,127,149, 11,106,146, 26,246, 56, 5,237, 53,194,220, 66,119, 58,148,149, 40, 3,134,101,170, 77, 22,102, 76,249, 87, + 4,184,208, 36, 87,220,255,247,159, 37,175,133, 95,163,195,166, 61, 11, 90, 46,159,255, 53,102,250, 77,101,157, 95, 65,118,191, + 97,105,143,121,232, 14,207,233,129,179, 6,128, 96,240,228,233, 39,248,247,191,241, 13,252,234, 55,127, 13, 31,125,248, 33, 14, + 15,143,177, 92, 44,112,126,126, 6, 99,101,239,219, 57,143, 97, 24,176,217,108,144, 84,167,124,176, 58,192,157, 59,119,241,233, +227, 79,235, 78,222,121, 47,127,159,101, 90, 22, 89,155,250,119,231,128,221, 78, 92,227,118,195, 0, 36,229, 50, 80,150,134, 45, +196,234, 15,191, 58, 88,193,144,193,176,221,226,232,240, 16, 57,101, 60,127,250, 28,235,139,181,200,230,162,196,173,230,144, 96, +146,193, 48,136,105,140,113,174,226,119, 5,253, 42,114, 48, 82, 14, 80, 74,185, 90, 24, 23,226, 89,145, 71, 9,161,203, 1, 73, +237, 91, 85,139, 29, 83,198,227, 39, 79,145, 83,194,219,239,190,135,190,247,176,214,161,239, 59,244,125, 47,217,241, 48,232,157, + 69,192, 8,223, 45, 38,242,172, 26,227, 48,137,134, 61,154, 36, 69, 88,175, 87,223, 57,244,203, 37,134,113,132, 49, 6,222,121, +196, 40,114, 58,228,140,213,234, 16,219,113, 68, 8, 3,124,231,145, 51,193, 27,130,113, 18, 63,219,121,143,129, 13, 98, 10,245, +190,118,206,194,169, 13,247,102,179, 3, 33,193, 58, 95, 21, 0,150, 12,140,161,106,161, 43, 77, 71, 22, 99, 23, 98,152,174, 3, + 66,148, 0, 47, 50,240, 70,180,224, 37, 33, 47,178,196, 19,155,226, 69, 65, 52,227,186,164,204,146,222, 70,182,162, 65,208,115, +195, 80, 65, 46, 5, 74,231, 86,206,169, 69,222,144,220, 79, 69, 26, 55, 70,134, 73, 35,156, 53, 10,125, 11,235, 62, 67, 92, 60, +137,133, 31, 33, 28,132, 4,241,179,137, 34,143,142, 9,222, 48,224,189,102,199,100,228, 76,149, 64, 7, 77,171,139, 73, 56, 46, + 30, 25,206, 25,108,216,129,175, 34, 14,112, 14,135, 19,188,213, 3, 31,189,185,196,229,179,119,209,109,158,129,108,214, 96,151, +185,185,242,235, 12,212, 45,103,142, 90, 34,248,103,138, 85,190,233,223, 94,127, 47, 14,187, 75,132,179,140,231, 60, 69,113,166, +114,184,232, 94,187,120,240, 18, 8, 81,175,137,197, 52,245,128, 35, 82, 4, 54,234,239, 94,180,167,165,126, 39,180,214,155,178, +155,206, 37, 42,181,113, 90, 75,246, 24,174, 79, 88,197, 45,198,129,176, 6,161, 73, 11,212, 73, 54,131,225,129,213, 1,238,211, + 5, 46,118, 25, 47,178,198,205,145, 5,140, 18,217, 56, 87,130,132, 64,202, 12,216, 37,150, 71, 6,203,171, 43, 60, 89, 19,216, +180,154,101,204,245,202, 74, 82, 99, 22, 9,155, 85,102, 99,170, 83,162, 20, 37, 75, 52, 77,128,213, 84,102,190,189, 46,147,178, + 41, 95,163,208, 92, 46,100,187,107,187,101,181,140,213,230, 98,200,121, 50, 0, 82, 56,179,117,246,107,253,215,139, 15,128,165, + 73,158,198,215, 2,112, 38,184,166,115, 14,155,243, 23,216, 41, 59,213, 84, 56, 91,118, 92,149, 25,159,210, 76,110, 70,173,119, + 92,158,190, 31,183, 76,204,134,200,152,120, 46,119,219,151,223,181,183,106, 37,247, 97, 94,187,136,167,123,106,223,221,245,165, +106, 54,218,251,243,194, 78,229,215,203, 18,111,255, 43,215,192,220, 22,244,194,215,217,239, 19, 71,134,111,227,191,188, 62, 53, +150,111,110, 69,110,180,171,212, 15,166,240, 9,182,195, 6,247,238,222,197,183,126,253, 55,176,217,108, 16, 99,196,209, 81,135, +171,205, 26, 67, 24,113,176,146,221,255,118,171, 6, 46,128,236,176,137, 96,157,197,253, 7,247,177,217,110,176,185,186, 66,228, +168,112,171,236, 89, 99,140,114, 95,107,177,136,106,200,178,219, 14, 88, 95,172, 69,110,163,147, 29, 33, 35,134, 4, 99, 9, 99, + 24,240,226,236, 5,222, 29, 6,176,247,248,254, 7,255, 10, 31,253,232, 99,156,191, 56,195,118,183,171,141,109,214, 0, 18,102, + 32,134, 8,223, 57,140, 33,170,183,188, 16, 74,161, 12,112,210,115,192,152,226,145, 32,214,175, 49,230,249,133, 82,185,150,181, + 78, 61,221, 19,188,119, 74,152, 4,158, 60,125,134,229,114,133, 7,111,188,129,190, 23,141,124,136, 17, 93,231,209,119,189, 52, +154,142, 36,120,133, 25,139,229, 10,235,171, 45, 98, 88,163,235,186, 74,102,117,222,195,119, 14,119, 78, 78, 96,188, 69,138, 9, +222, 58,120,239,148, 36,215,225,234,106, 3, 32, 97,177, 92, 96, 23, 37,191,220, 59, 33,232,229,156,193, 37,191,156, 8,203, 69, +143,245, 85,212,189, 53, 33, 27,194, 48,102,196, 24,128, 44,138,159, 52,142, 24, 67, 20,249,154,147,115, 76, 26,116, 89,135,112, + 78, 72,156,225,173, 76,190, 68, 12,227,164, 73,115,198,106, 96,140, 1,147,129, 3, 97, 80,107, 89,215,117,200,170, 64, 40,104, + 69,142, 73, 28,229,220, 68,172,149, 0, 54, 11, 75, 92,243,210,235,186, 78,159,197,162,113, 47,196, 55, 89,171,136,126, 61,115, + 22, 61,189,209,159,145,100,143,142,148,208, 57, 32,194,129, 32,133,156,161,217, 1, 12,176, 49, 96,202,224,148, 21, 33,212,252, + 1, 78,240, 22,112,206, 34,194,129, 83,132, 67, 70,182, 86,206,176, 28, 17, 73, 86, 1, 91, 55,224,208, 16,222,187, 99,241, 47, + 31,190,131,252,195, 15, 97,248, 41,136,150, 51,242, 27,223,194,138,231,151, 20,118,230,210, 16,241,171,201,115, 76,175,113,200, +205,255,200,254,244,151, 63,247,157, 16, 70,145, 37, 49,102, 90,111,162, 2,177, 78,158,218,121,182,251,203, 85,239,189,223,113, +100, 66,253,115, 54,115,248,124,255, 53,106, 48,137, 91,192,245,140, 3,142, 8, 73,190,206,204,252, 51, 8, 68, 22,134,118,160, +171, 51, 92, 92,101,236, 10, 17, 42, 51,162,191,143,195,123, 29,238,242,128,141,189,131,213,138,225, 99, 68,132,145,201, 51,109, + 49,110,183,216, 6,170, 70,166, 92, 33,123,130,163,102,167, 93,166,244, 70, 63,125,205, 95,189, 37, 59,146,169,100,191, 82,244, + 10,219,189,200, 45, 8,115,159,251,125, 19,154, 25,129,173, 22,104,110,246,254, 77,193,221,251,172, 91,157,127, 70,177,222,157, + 67,210,188,247, 90,101,130, 46,230, 20,198, 24,245,158,215,117, 75,243, 32,150, 72,198,125,157,125,189,177,219,253,255,158,169, + 5, 87,205, 50,205,160,116,222, 99,161,223, 84,233,184,145,132,217,118,111, 65,141, 62,190, 74, 87, 26,169, 22,237, 49,254, 90, +126, 25,191,238,124,190,103, 22,164,166, 32, 55,234,211,209,248,192,208,203, 57,110, 63, 49,192,191,111, 36,255,186, 13, 0, 77, +108,127, 34,194,179,167,207,240,215,126,229,175,227, 63,252,230,175,225,147, 31,127, 90, 19,178, 98, 78,232,251, 30,200, 42, 97, + 43, 70, 80,106, 1,237,172,213, 2, 2,172, 86, 7, 48,214,169,107, 91,134,119, 29, 66, 76,216,141, 35, 82, 12, 8, 49, 32,140, + 17, 97, 12,216,237, 6, 92, 94, 92, 98, 28,118, 48, 86,138,201,118,183, 67,138, 89,119,217,194, 10, 7, 3,203,213, 10,207,158, + 61,197, 7,223,255, 0,231, 47,206,176,217,110, 36, 62, 52, 51,198, 32,158,243, 69, 99,237, 59,135, 16,197, 61,141,244,179, 65, +227,115, 96,116,234,206, 73, 2, 90,106, 62,119,158,100,149,214,136,244,170, 32,105, 73,167,117,107,108, 77, 67,139, 41, 33,134, + 17, 71, 71, 71,112,174, 19, 19,151, 20,177,236,123,248,174,175,140,122,163,176,191,177, 22, 81,163, 72,157,115, 8,227, 8,239, + 61,156,115, 18,240,210,247, 21, 37, 88, 46, 22, 88, 44, 86,176,214, 98, 24, 35,206, 94,156,138,125,107, 16,103, 62,231,165,232, + 59,231,101, 55,111,141,132,171,132,136,144, 34,198, 65, 10, 51,148,179,144, 82,227,210,167, 74,128,178,242,144,102, 39, 41,137, +143,171, 63,134,117,182,202,206,130, 34, 46, 37, 80, 73, 1,217, 58,164, 20,253, 57,172,234,205,139, 34,167,160,136, 96,109,242, +140,242,173,242,116,173,173, 26,212, 48, 55, 40,162,169,232, 6, 41,172, 94,254,189,172, 43,140,140, 37, 90,236, 11,210, 98, 13, +131,200,194, 26,209,160,203,207, 33,114, 54, 11,134,117, 6, 67, 54,136, 99, 16, 56, 30,114, 63,192, 24, 37,176,105, 82,159,149, + 70, 53,195,106, 16, 18, 16,217, 32,198, 12,147, 71,116, 6, 56, 94, 88,156,118, 7, 88,159, 57,184,237, 39,128,203,168,137,229, +213, 65,147, 94,251, 81, 39,180,235, 87, 82,169, 26, 93,211,188, 95, 63, 11,249,214,131,161,252,179,190,239, 97,127,250,203,239, +126, 39, 14, 99,101, 47,230, 6, 98, 76,106, 45, 89, 73, 18,196,117, 50, 69, 78,160,152, 17,146,197,174,154,180,180, 97, 44,251, +174,226, 83, 33,226, 89, 86,118,129,201, 1,202, 59,164, 33, 98,147,228, 27,149,127,111,246, 33,140,146,211,174,206,102,168,175, +151, 96,210,136, 20, 50, 6,114,232,109, 4,135,132, 49, 11,244, 36,142,119, 66,100,155,105,203,137,230,251,105,154,159,253,252, +178, 73,136, 91,150,127, 29, 85,171, 67,154, 37, 3,111, 44, 58,213,167, 21, 98, 32,235,123, 55,141,228,189, 18,235,154,107,148, +139,129, 79,123, 51, 20, 9, 32,205,139,243,180, 47,167,153, 96,122, 34,181,221, 2, 53, 23,120,172,202,206, 48, 39,146,229, 52, +227,117,180,150,174,220, 26,233,236,237,151,103,112,243, 94,252,175, 33,122, 37,232,196,251,204,247,178, 59,111,156,234,176, 39, + 91, 51, 68,243, 97,185,252, 92,220,198,180,125,118,177,232, 56,142,120,239,115,159,199,221, 59, 39, 56, 61,125, 94, 27,137, 22, +114,223,111,172, 95, 73,174,155,201,186,110, 2,244,176, 7,203, 23, 98, 0,189,246,226,160, 85, 18,164,156,145, 83,198,111,254, +214,111,225,157,119,223,193,217,197,121, 3,101,200,243, 31,198,208,200, 21, 5,174,181,214, 32,198,132,231,207,158,227,197,217, + 25,152, 25, 71, 71,135,184,119,239, 30, 82, 76,120,113,118, 38, 28,151, 20,170,182, 56, 68,205, 85,223,238, 48, 12, 91, 49,131, + 25,130,202,167, 18, 98,214, 41,211, 24,101, 83, 51,206,206,206,112,122,122,134,221,110,135, 49,236,244, 25,215,103, 54,139,140, + 77,154, 77,205,210,142,162,169, 54, 78, 52,220,165,112,129, 25,198,201,238,126,167, 48,125,153, 30,173,181,178,131, 37,134,119, + 82, 48,129, 44,186,109, 2,186,206,107,238, 59,106, 46,251, 24,162,132,186,116, 29,156,115,232,251, 30,100, 8,206, 24,116,125, +143, 20, 35, 22, 93, 15,231,186, 26,154,226,172, 83,242, 37, 99,185, 92,194,119, 98,217, 90, 28,230,172,145,221,188,117, 22, 33, +102,124,252,227, 31, 35,142, 91,248,174, 71, 12,130, 72,172,150, 11, 24,215, 97, 28, 6, 44,213,243,126, 28,119,136, 42,155, 3, +184,242, 3, 80,174, 83, 74,106,229,172,113,170, 52, 69, 22,139, 69,108, 66,210,116, 55,214,181, 10,115,174,208,151, 52,232,166, + 42, 1, 38, 55, 72, 76,190, 17, 42, 75,205,154,190,151,152, 4,205, 1,106,241, 46,247, 92, 73,117, 51,245,208,106,116, 39,205, +196, 78,186, 39, 79, 42, 89, 44,228,187,122,206,233,215, 57,210, 6,142, 12,166, 40, 34, 86,182,124, 82,171, 88,185, 30,214, 50, +152, 28, 60, 49,156, 55,128,241,202,226,207,176,200,186, 90, 36,169,101, 98,171, 8, 2, 35, 66,145,212, 20,112,128,140,195,195, +140,199,238, 62,226, 25,195,142, 79,160, 24,254,156, 75,243, 25, 67,160,104,239,240,158,106, 16,125,198,105,128,102,191,234,250, + 30,246, 43, 95,124,247, 59,187, 97, 0,167, 44,150,124, 25,136,186,147, 54, 51,222,247, 84,236, 82, 30,145,242, 18,227,209,155, +112, 15,129,159,242, 25, 46,102, 92, 37,194,158,124,112,198, 10, 43,251, 86,106, 24,212,134, 90, 7, 50, 82,111,248,178, 59, 46, + 69,189,108, 8,169,174, 5,114,217,153, 85, 38, 59,129,120,196, 56, 36, 12, 12,152,184,195,118,200, 34, 81,170, 30,243, 98,167, +104,244,215,166, 24,206,236, 77,189, 73,179,115,185,117,233,224,189, 94,170, 20, 88,162, 61, 73,154,124, 56,174, 64,242, 77,131, + 48, 65,208, 83, 65,183,100, 20,110,198, 20,147,216, 76,188,251, 89,220,118, 15,225,168,251,234, 6,126,159, 21,124,162,155,245, +205,250,198,138,121,204,180, 66,104,248, 1, 58,217,144, 18,100,234, 86,182, 22,198,233, 58,206, 16,136, 89, 34, 26, 53, 29,106, +113, 6,156,203,234,218, 2,127,173, 88,182,240, 53,243,172,115,229, 38, 0,168, 98, 69, 85,115,126,253, 94, 52,159, 97,135,254, + 50,248,125,171,225, 37,100,232,134, 22,252,186,112,149,110, 45,184,251,204,117, 2,221, 40,155,217,203,231,171,254,144,175,201, + 6, 80,147,153, 23,167,167,120,239,115,239,225, 55,254,147,255, 20,219,237, 78, 24,233,157, 71,136, 1, 79, 30, 63,198,118,187, +193,193,225, 97, 37,144, 9, 3, 61, 87,248,251,226,242, 18, 79,159, 60,134,181, 98, 93,234,189,199,193,234, 16,155,237, 6, 49, + 14, 34, 19,235,123,244,202, 18,191,188, 88, 99, 12, 35,198, 97, 16, 30,137, 78,179, 37,136,165,188, 47,145, 45, 9,249, 45,132, +128, 48,142, 8, 74, 32, 75, 73,161,119, 77, 50,148, 29,171,132,120,228,156,208,247, 30,222,247, 2,159,235, 46, 91, 12,105, 28, +198, 49,214, 34, 95, 92, 45,173, 30,200, 82, 96,157, 78,246,185,121,118,197, 53,177,220,151,206, 10, 52,191,217,108,177, 27, 54, + 72, 33,234,228,105, 96,172,188,231,201,255, 61, 35,140, 65,139,107, 70, 74, 17,171,197, 66,166, 39, 55, 21,115,201, 64, 55, 85, +218,121,126,121,137,231, 79,159,170,206, 90,200,106,198, 8, 42,148,146,124, 14,214, 26, 12, 65, 76,101,188,243, 48,198,106, 81, +149,107, 52,134,160,110,123,185,102,206,123,209,159,137,235,158, 22,216, 97, 16,226, 26,179,152, 9, 25,149,255,138,115,156, 85, +102, 61,129,200,105,250,155,144,228, 72,209,140,204,243,236,134, 34,223,171, 72, 92,187, 63, 87, 4,179, 56,205,153,242, 26,173, +123,185,162, 42, 80, 30,131,129, 32, 40,130,136,209,100, 80, 99, 45, 24, 86,195,114,196, 72,167,160, 50,101,197,145, 65, 96,109, +164,156, 1,172,243, 0,140,178,221,205, 20, 93,170,161, 48, 18, 24,163,104, 2, 84,169, 33,111, 18,137, 25, 67,204,216,141, 9, +119,243, 14,221, 9,227, 9, 30,130, 95,108, 97,242, 11, 93, 39,152, 25, 68, 71, 52, 91,124,221, 82,164,175, 31, 27,220, 34,180, +215,166,117,122,229,247,169,235,212,174,135,253,153, 47,189,243,157,113, 24, 68, 62,193, 70, 82,112,138,212,169, 57, 81, 43, 84, +205, 25,156, 12,210,193,251, 24, 62,223,225,103,238,158,226, 43,151, 9, 31,108, 24, 67, 97,198, 3,179,233,151,105,234,202, 36, + 36,128,170,139, 91, 87, 32,224,166,216,145,162, 2,148, 37, 48, 37, 72, 30,144,120,187,235,228,149,235,132,188,151,216, 86,225, +114,211, 64,179,165, 49,144, 45,243,204,253,172,201,100, 47,190,242,166,161, 50,115,109, 53,110,186,136,243,138, 91, 14, 5, 71, +168,239,177,200,184, 18,230,174,105,174, 22, 71, 77, 69, 82, 54,248,204, 50,117, 31,134,230, 9,150,183,123,235,219,226, 39, 64, +123, 52, 12,190, 86,204,231,125, 74,249, 25,136,171,213,204,172, 86,152,246,231,167,105, 37, 3, 67,226,209,204, 52,203,100, 35, +208,108, 50,125,121,228, 44, 95, 51,151, 49,205,191,173, 17,180,229,167,161, 38, 54,156,246,117, 28,243,132,178,153,252,141,218, +101,207,188, 46,190,110,113,103,101,235,239,118, 59,236,118,187, 10,103,222, 84, 84,169,241, 98,246,206,171, 22, 59,182,138,254, +107,175,251,202,135,159,113, 93,162, 49,211,210,221,178,220,215,206, 57,140, 1,159,126,250, 41,190,245,173, 95,199,215,126,241, +235,120,242,228,137,154,197, 88,172,175, 46,176,221,108,112,126,113, 33,210, 59, 3,120,133,154, 89,181,200, 70,225,247,113,216, +225,206,201, 29, 44,151, 75,108,183, 59,128, 8,157,247,184,188,188, 68,215,117,224,156,177,217,136,235,220,229,229, 26,227, 48, + 34,196, 8,239, 28,250, 69, 15, 67, 34,123, 43,147, 49, 64,232, 58, 95,159,157, 49,140,250,247, 42, 69,211,174,205, 59,167,140, +237,140, 16,146,106,194, 1,231, 58,248,174,155,238,117,205, 73,151,232,213,164, 33, 51, 50,205, 90,109, 32,178,254, 92,194,196, + 79,213, 10, 21, 48,202, 8, 55,106,162, 35,238,112,133, 77, 31, 99,198,110, 55, 74,226,220, 40,107,134,221,110, 16,228, 33, 6, + 12,218,148,236,134, 1,156, 19, 14, 15, 15,176, 90,173,224,156, 7, 67, 50, 25,172, 53,213, 35,158, 0,140, 33,227,233,147, 39, +200,105, 4,105, 81, 53,198, 32,103,198, 48, 12, 32,206,232,187,190,137, 77, 38,181,128,142, 8, 33, 74, 49,143, 65,167, 97, 65, + 46,199, 16, 52, 68,137,244,250,113,109,110, 36,101, 47,170, 49,203,100, 81, 44, 78,110, 34, 21, 36, 38,120,141, 64,205,202,114, + 47,118,222, 99,136, 98, 98,131, 70,109, 3,113,196,131,134,172, 24,221,147, 23, 24,221, 90, 43,178,178, 92, 12, 89,204,236, 54, + 37, 35, 69, 54,199, 0,107, 88,117,238,154,118,167, 62,247,178,195,206,106, 59, 11,125,109, 97,202, 27,102, 56, 39,197,152,213, +112,203,121, 21, 83, 42, 10, 33,126,240, 25,214, 48,216, 56,196, 40,104,115,113,158,179, 52,201,120,193, 18,110,102,172,193, 8, +135,205,142,113, 20, 54,232, 14, 19,206,236, 61,228,117,132, 77, 23,210,216,151,159,133, 85, 1, 69,252, 19,141, 13,116,141,146, +243,250, 39, 84,251,138, 93,215,195,254,244,151,223,251,206, 56,108,144,179, 7,186,135, 24,239, 69, 60, 90,140,184, 55, 0,207, +146,122,203, 98,202, 55,143,121, 68,118,239, 96,120,239, 30,190,244,224,123,248,234,199, 87,248,191,126, 76,248, 65, 38,209,179, +183,250,111,162,217,158,160, 76,184,197,180,197,235,191,139, 77,129, 46, 54,174, 25, 6,228, 59, 28,117,192, 33, 50, 66,214, 41, +159, 12,224, 44,156,201, 32,246,192, 98,133, 3, 31,144, 67, 70,224, 57, 36, 59,223,255, 78,240,118,153, 72,229,224, 55,213,241, + 12,213,110, 86, 62, 28,222,139,195,220,151, 23, 21, 70,127,153, 88,109, 49,188,209,247, 41,134, 7, 73, 76,102, 72, 95, 7, 52, + 27,180, 10, 12, 85,246, 70, 21, 62, 86,105, 94, 42,246,184, 77, 99,212,174, 4,236,108,237, 66,141, 95, 63,234, 58,165,238,221, +155, 24, 89, 67,102,138,233,196, 20,232, 66,123, 19,242, 20,184, 50,135,215, 75,226, 93,198, 60, 26,119, 63, 86,143,111, 96,136, +210, 13, 16,251,190, 38,221,144,242,229, 25, 51, 57,101,245, 57,166,219,249,161,237,214,153,249,229,242,123, 99,103, 0, 0, 32, + 0, 73, 68, 65, 84, 59,251,207,242,248, 25, 61,236, 95, 14,115,183, 13, 67, 99,115,123,205, 37,146,175, 93, 81,218,139,193,189, + 81,198, 54,243,108,167,219, 31,242, 38, 53,138,115,198,179,103,207,240,183,254,214,127,137,223,252,207,255, 11, 60, 59,125,134, +163,195, 67, 0,132,245,250,162, 22,167, 98,230,114,126,118,142,237,118, 11,128, 38, 77,181,115,240,206,139,181,169,239,144, 83, +194,243,231,207,112,121,185,214,248, 82,217,119,110, 54, 27,156,159, 95,224,114,125,133,113, 24, 48, 12, 99,245, 10,223,108, 36, +173,205, 59, 87,245,209,198, 24, 24,103,107,190,248, 48, 12, 98, 62,163, 92, 15, 34,146, 93,191, 33, 12, 97,172,200,156,192,220, + 70,100,116,122,105,156,181,181, 8,100,206, 90,108, 99, 85, 1,144,198,188,134, 16,213, 58, 65,130, 79, 0,209,181, 23,118,118, + 27,103, 90, 58, 73, 49,125,145,104, 80,107, 12, 66,148, 66, 14,102,217,129,231, 84,253,222, 83, 74, 88,244, 30,247,238,223, 87, + 63,117, 70,223,117,162,205,183,162,239,230, 44,225, 52,151,235, 13,158, 61,125, 44,144,178,202,186,188,243,138, 42, 16,250,197, + 82,246,211, 10,173, 79,107,148,132,144, 18,178, 74,213, 74,161, 79, 81,254, 92,166,115,121,166, 66, 74,218, 0, 68,112,142, 85, +107,158, 88,229,103, 70,116,229,224,172,129, 50,130, 96,196,204, 24,195, 8, 82, 63,249,152, 33,228, 50,103, 37, 24,137,147, 16, + 31,173, 81, 3, 51,214, 34, 41,163, 86, 41,212,206, 2,198,122,204,125, 66,121,198, 31, 74, 44, 59,123, 75, 66,166,100,133,194, + 75,227, 44,206,191,146,247, 17, 66,134, 69,172,118,188,172,153, 18,211,106, 79, 67,194, 82,129,253,141,114, 8, 84,179,174,114, + 56,103, 45,200,122,100,166,154,168, 87,208, 68, 91, 96,126,213,179,167,196,184, 99, 34,150, 71, 6,103,221,125,196, 75,192,196, + 23, 10, 19,183,193,101, 84,215,164, 63,177, 60,173,218,125,243,107,158, 79,211,185,221,119, 61,236,191,249,229,183,191,179,219, +142, 96,123, 23,241,216,224,112,121,129,119,183,140,179, 45,225, 28, 4, 87,108, 77,244,226,123,178, 0, 70, 96,251, 20,230,217, +136,143, 95, 88,124,204, 6,214,170, 12, 75,139, 57,163, 37,185, 81,157,178,202, 36,236, 10, 28, 95, 44, 85,152,192,110, 9,219, +101,116, 44,123,159, 12,201,122,247,156, 49,100,170, 26,116, 38, 3, 67, 25,148, 2, 66, 18,121, 76,141,211,110,154,131, 25,193, +238,218,251,104,139,158, 76,201,182, 37, 86, 85,194, 92, 6,215, 8,234, 73,111, 79,123,147,116, 9, 65, 49, 13,100,159,192, 96, + 61, 4,152,211,222,110,158,230,178, 99, 76, 78,119, 53,162,148, 38,244,161,221,185, 82, 19, 15, 91,161,225, 50,211, 54, 16, 55, + 53,209,164,220,120,168, 85, 93, 61,241,204,135,133,110, 40,148,237, 78,190, 45,152, 70,155,152,140,219,163, 79,139,116,205,220, + 52,213,222,120, 67, 55,172,250,218,104,177, 74, 11,165, 81, 66,201,161,223,131,233,105,127,167,255,146,125,212,205, 54,170, 55, +191,167,219, 36,108,173,114,163,213,160,222,246,245,109,171, 72,173,150,245,165,220, 58,158, 16, 8,218, 19,196,223,210,183, 79, +168, 6,225,201,227, 39,248,249,175,254, 60,126,247,247,255, 0,155,221, 22,157,247, 56, 62,185,131,148, 18,158, 63,123, 38, 54, +172, 99,132,247, 30, 57,103,108,119, 3, 46,215,107, 92, 94, 94,224,206,157, 59, 56, 57, 62,194, 48,136,183,123,215,117, 24,199, + 1,103,231, 47,176, 94,111, 42, 65, 11, 0, 82,136, 50,165, 63, 63, 69, 12, 1, 93,231, 52, 0,196, 74,227, 48, 12,178, 83,214, +105, 50,243,180, 38, 97,100,140, 97, 4, 43,220,206,234, 6,100,173,132,113,108,183, 59,164, 36, 7,121,230,140, 20, 51,156,179, +232,187,110, 22,100, 99,197,217,164, 58,221,149,196,177,212,216,243,166,156, 42, 20, 62,177,227,169,230,193,151,239,231,156,157, +154, 56,150,137,211,170,199,185,209,176, 22,113, 89,211,134,128, 24, 49,101,116,214,224,173,183,222, 66,191, 88,202,142,219, 26, + 61, 3,184,217,154,136, 3,218,217,217, 57,182, 87,151,112,222, 87,132,174, 91,244,186, 2,144, 39, 48,132, 17, 73, 33,127, 82, + 55, 63, 33, 9, 14, 98, 20,147, 84, 78,152,180,177, 64,177,144, 22,159,248,148,162,238,208,197,253,141, 57, 87,195,169,168,133, +207, 58, 7,228,105,248,202, 26,118,148,117,143,102,136,224,189, 5,200, 86,164,195, 24,130, 83, 93,124, 53,150,209,102,188,164, +163,133, 36,187,110, 67, 70,229,130,102, 70,160,149, 70,128, 97,140, 3,179, 17,191, 18,107,246,116,164, 26,203, 74,146,206,103, + 40,195, 59, 43,137,111, 80,168,190,153,254,139, 34,167,156,111,150,178,144,228, 50, 85,142,134, 65, 22,244,156, 9,206, 8, 18, +101,244,250, 26,205, 36,136, 25,200, 49,195, 66, 84, 26,129, 45, 14,115,194,226,128,113,230,239, 34,173, 1, 27,207, 68,127,127, + 83,138, 3,209,103,158,218, 39,228,149,155,241,160,221,169,210,203,207, 51,150,157,186, 51, 26,198,146,242, 14,121, 55,194,109, + 18,158, 94, 17, 62, 73,128, 45, 24,176,228,225, 97, 97, 18,250,148,177, 77, 3,120,157,113,154, 28,158,120,131,133, 21, 62,160, +197, 13, 43,104,154,147,175,178, 66, 62,134,129,192, 13,241, 13,140,148, 70, 24,202, 48, 89, 10, 14,165, 17, 87,145,112,174,246, +179,150,197, 33,142,210,136, 72, 29,104,217,227,144, 55, 24,135,140,208,236,122,173,190, 70,158, 21, 59,136,219, 91, 37, 4,170, +148,162, 4, 21,148, 92,247, 25,149, 89,136, 22,206,137,113, 77, 72,141,244,140,230, 81,176,173,108,169,104, 98, 83, 78, 48,253, + 17,142,151,140,245,217, 57, 6,150,160,136, 50,112,217,198,168, 38, 53, 70, 55,164,186,244,145, 27,119,236,242, 90,196,181,208, +150,236,246,121, 53,227,198,195, 93,174, 5, 51, 95,131,120,185,238,162,168,166, 75,181,137,113, 51,173,248,126, 24,168, 18,248, +218,253,127, 69, 10, 56,207, 30, 46,111, 45,188, 33,108, 99,186, 6, 51,241, 75,139, 96,201, 88,166,185,158,125,230, 26, 55,121, +221,147,198, 5,183, 33, 59,109, 28, 46,209,148,119,252,178,226,121, 83, 97,127,149, 38,253,134, 45,194,107,152,212,208,126,107, +119,123,112, 75,251,225,190,142, 11, 85, 89,209,232,119,149,221, 52,227,215,254,163,191, 9, 24,130,247, 29,156,243, 24,134,128, +206,119,176,214, 97,184,188,148,200,202,156,116, 58, 22,230,177,183, 6,231,167,167, 58,193, 10,156, 42,147, 49,227,226,226, 76, + 14, 17,239, 49,166, 40, 6, 51,227,136,243,179,115,132,113, 68, 74, 17, 68, 50,241,165, 20, 16,134, 81,220,220,124,135,156,162, + 64,202,204, 66,220,138, 73,226, 74,169, 88,167,114,141,245,149, 41, 88,246,250, 69,106, 54,142, 1, 93,223, 99,177, 88,214,172, +112,198, 4, 91,151, 24,213,160, 94,231,133,157,142,204,234, 97,206, 88, 46, 58,157,170, 35,172, 51,138,236, 82,189,196,222,201, +196,138, 26, 21, 44,108,242,156,229,117, 58,191, 20,105,157, 38,211,197, 24, 17, 98,192,225,106,137, 55, 30,189,131,126,177,194, +110,144,235,208,119, 94,155, 12, 53,146, 81,109,253,238,106,135,171,245, 57,172,147,189, 55, 88,166,195,113, 12, 24,199, 29,136, +197,245,206,123,145,238,149, 93,249,180,110,147,235, 19,245,250, 65,125,212,211,168,169,109, 89, 50,238,115,146,124,143, 18,204, + 34,225, 51,178,133,238,212, 31,159,181,249, 72, 41,171,251,158, 56,133, 26,237, 92, 99,204,232, 76, 86, 69, 1,193, 57,163,104, +159, 1, 39,153,176, 89,247,231, 78,244,184, 34,137,243, 22, 41, 48, 40, 5, 88,248,105,184, 48, 70,189, 62, 10, 50,151,225,189, + 65, 78, 30, 57, 70, 24,103,144,149, 15, 32,167,179,160, 54,157,183,200,236,192, 72,213,169, 18,149, 81,159,209, 89, 32,249, 30, +227, 16,145, 34, 11, 34, 98, 37, 25,144,167, 61, 47, 98, 38, 80, 98, 88,147,148, 75, 96, 16, 57, 3,250,103, 35, 44, 56,100, 44, +108,128,241, 61, 18, 12, 82, 2,118, 41,224, 13, 19,145, 30, 57,252,128,223, 71,254, 48,192,164,199,128,237,111, 62, 83,246,189, +223, 63,115,121,111,140,206, 48, 25,161,205,179,168,231,255,185,172,211,143, 31, 47,192,103,132,211, 44,137,106,190,178,138, 44, +200, 91,116, 62,227, 40, 51, 40, 49,118, 44, 6,252,206, 0, 29,101,112, 54, 34,169, 42, 54,117, 90,108, 82, 61,151,154, 28,118, +181, 81,141,205,142,151, 53,106,149,242,136, 56, 26, 68,141, 83, 45,150,178, 69, 86,151,185,201, 86, 7,129,108,135,133, 27, 64, + 65,224,121, 64, 62,196, 64, 6,206, 58,233, 0, 83, 66,208, 38, 2,154,221, 78,150, 96, 85,110, 65, 77, 64, 64,230, 50,209, 23, + 19, 26, 49, 98,176,214,136, 22, 31,147, 62,186, 66,210, 13,161, 16,141,252,170,184,169,229, 97,141,139, 32,186, 75,170, 50, 44, +141,148, 45, 63, 91,102, 56, 67, 48,204, 8, 57, 35,155,201,176, 37, 54, 22,173,213, 98, 87, 15,252, 86,110,152,231,156,196, 58, +205,151, 57, 48,237, 89,147, 82, 27,134,194,205,172, 72,243, 27,134,103,197,136, 39, 7, 5, 46,206,128,140,113, 28, 64,100,225, +188,157,241, 11,114,230,153,116,142,111,151,116,207,107, 25,166,192, 26,107,172,122, 83,167, 89,161,181,198, 52,177,132,147,118, + 31,152, 28,248,232, 37,100,199,215,121, 31,175,165, 28,223,183,197,111,158,179,151, 55, 5,251,166,199,183,171,216,120, 63,225, +237,182,226, 78, 19,167,192, 16,225,241,167,159,226,223,251,229, 95,198, 95,248, 75,127, 9, 99, 72,176,214, 87, 23,179,203,245, + 37, 22,139,133, 64,180, 49, 72,129,180, 2,175,243, 32, 59,222,103,207, 79,113,113,181,197, 23,222,255,188,192,178, 89, 72, 97, + 19, 60,193, 24,199, 29, 54, 87, 91, 12,219,157,144,224, 88, 38,194, 33,141,154,236, 37,104,154, 72,196,132,129, 45,112,185, 1, +147,195, 16, 66,221,133,146,177,176, 16,182,187,117, 22, 97, 12, 48, 70,116,222, 12, 41,172, 97,140, 56, 58, 58,196,225,225, 1, +206,206,206,100,122,214, 73,125, 8,146,213, 94,154, 67, 67,166, 38, 25,166,156, 17, 67,209,214,147,146, 29,229,215,214, 27,205, +179,200,122,191,169,178, 38,113,109,114, 74,140, 49, 32,240, 59, 48,194, 56,135,205,213, 22,222, 71, 44, 22, 61,238,223,187,135, +195,163, 99, 12,170,241,247, 78,116,249, 37, 12, 69,124,227,197,164,101, 55,236, 20, 77,104, 72,186, 41,105,130, 26, 77,108,121, + 50,112,186, 86,144,166, 36,201,181,235,122,156,159, 95, 0, 57, 73,150,124, 22,180, 35, 21, 86,186, 38,208,101,102,140, 33,137, + 13,176, 66, 74,146,126,166,203, 59,163,102, 57, 28, 39,249,169,213, 66, 23,131,100,147, 19,176, 27,195, 68, 54, 54,182,166,194, + 21, 34, 37, 43, 58, 0,107, 17, 99,134, 53,128, 51, 22,176, 14,156, 99, 61,111, 43,225,213, 0,150,197, 7,133, 82,134,115,132, + 68,182,168,208,170, 27, 91, 57,147,156, 33, 48, 89,164,152,145, 19, 96, 82, 2, 89,101,223,167, 44,230, 50,150,164, 30, 85, 18, + 95,150,131,214,202,231,214, 89, 66,130,171,209,179, 25,133,160, 23,117, 63,174,177,219,204,240, 46,195,250, 30, 76, 30,150, 51, +140, 3, 24, 30, 59, 16,222,230,132,241, 77,135,143,199, 47, 1,159, 12, 32, 62, 7,168,123,121,105,190,169, 24,191,142,239, 12, +181,225,105,123, 42,176, 42,183,225, 25,121,218,217, 82, 17, 32,251,164,142,202,100, 84, 44, 94, 45, 50, 50, 22,156,129, 4,108, + 74, 96, 8, 76,101,178,179,238,125,131,182, 18, 17,173,107,142,238,164,116,135, 83,118,187, 99, 67,200,154,184,237,132,108,212, +164,165, 72, 80, 96,193,222,163,199,136, 24, 89,146,127, 8, 0, 15, 72,151, 59, 60,131,209,204,102, 6,200, 75, 97,137, 27,108, + 54, 9,201,123, 28, 57,153,240, 65, 92,167,118,107, 45, 92,206, 8,113,138, 73, 77, 92,189, 40,102,192, 40,242,136, 97,203,211, +222, 27,147,157, 43, 97, 98,208,243, 30,100, 90,250, 75,228,132, 49,171, 60, 6,243, 56,211,196,162,183, 60, 88, 46,241,246,157, + 30,135, 38,227,241,217, 26, 31, 95, 69,192,152,170, 4, 40, 19,117, 11,249, 90,213,197, 59,253, 76,199,148,117,122,214,204,115, +221, 61,182,233,110,121,118,163,105,138, 26,207, 19,215, 18,183,193,177, 55, 16, 4, 27,254, 65, 86, 39,169,183,222,122, 15,227, +238, 18, 47,206,206, 65,106,181,105, 0,116,186,171, 11, 73,155,145, 66, 12,108,118,251,116, 75,177,151, 41,107,218,173, 87, 90, + 79,249,249,155, 57,183, 56,214,165, 74,120,156,210,253, 94, 87,215,205, 55,117, 22,183,125,101,131, 4, 92,171,181,204,183,180, + 15, 45,106,240, 18, 23,120, 13,216, 56, 63, 59, 19, 23,177,190,195,241,209,177, 30,166, 60,183,168,186,225, 24, 49,198,224,201, +227, 79,240,197, 47,125, 9,255,213,127,243,183,177, 90, 29, 99, 24, 36,247,220, 24,131,205,102,131,237,230, 10,214, 73, 30,248, +122,125,133,227,147, 67, 88, 75, 8,129,171,126,153,172,197,118,183,193,233,233, 41, 30,222,127, 88, 67, 60,136,140,164,168,169, + 94,122,187,217, 98, 84,210, 24,107, 17, 47,249,222,229,176,233,186,226, 15,159,224,157, 67,212, 66, 71, 86, 34, 72,189, 38,191, +177, 26,128, 20,171, 84, 33,171, 89, 12, 67,208,125, 56,195, 59,241, 94, 55,198, 32,105,186, 87,138,169,202,153, 88, 25,227, 41, +234, 14, 29, 10,187, 90,131,190,239, 42, 68, 91,214, 1,229,254, 42,217,236,160,189,228, 60,205,109, 47,124,146,194,122,239,136, + 16,147, 65,223,123, 60,188,127, 15,199, 39,119, 16, 67,212,221,188,173, 26,243,156,179, 6,186,104,179,158, 51,174,214,151, 74, + 96, 19, 14,128,181,114,150,229,148,181,113, 82,214,190, 90,236, 70,229, 24, 24, 99,144, 66,196,168, 1, 47, 33, 3,195,118, 51, + 73,145, 83, 66, 80, 73, 90,241,191, 39,213,111, 67,141,172, 82,206, 53,121,141, 52,249,210, 91, 43,171, 18,206, 74,110, 44,241, +169, 73, 33,123,217,169,247,222, 2,228, 48,142, 1,156, 35,188,183,210,224, 39,174,205,124, 74,172,232,138, 52, 0,145,141, 72, +199,140, 54, 78, 26,118, 83,238, 99, 86, 14, 69,155,228,152,100, 15,163, 72,140,209,230, 48, 3, 57, 33,131, 49, 38,128, 82, 20, +159,125, 16, 56,234,207,196, 25, 22, 12, 82, 4, 70, 57,114,226, 42,170,207, 86,213,205, 39, 65, 9,152, 12, 44, 3,217,202,231, +217, 33, 72,163, 71,146,115,159, 84,159,231, 40,139,162,128, 13,222,112, 9,167,247, 22,216,157, 61,130,221, 94,148, 66,243,210, + 51,101,230,107,194,244,138,194,206,115,242,212,158,178,102, 31,239,107,153, 10,142, 27, 47,115,195, 98,185,202,170,255, 46,110, +113, 8, 6,187, 60,137,255, 3, 83,157, 16, 83,129,211,155,162,209,146,184, 50, 38, 39,176,246, 24,171,177,161,133,165,206, 19, + 19,221,169, 54, 62, 0,136,156,192,129, 49, 18,223, 60,209, 25, 11,114, 12,147, 50, 98,202, 72,203, 99,124,254,141, 7,184,183, + 98,240,217,143,241,253,199,140, 75,163, 36, 54, 34, 88, 68,164, 33, 34,106, 81, 32, 78, 72,166,199,162, 55, 48, 97,135, 93,148, +206,149, 90,217, 27, 85,132,103, 98,196, 23,231, 56,110,217,245, 77,186,173, 86, 95,107, 13, 40, 55, 49, 48,141,221, 43,103,209, + 68, 62,122,120, 23, 63,251,198, 10, 62, 7, 60, 88, 89,208, 71,103,248,209, 54,213, 32,133,178,135, 74,154,117,108, 21, 69, 72, + 76,112, 6, 48, 44,221,115,217,217, 21,109,106,226,155, 21, 87, 53,181, 75, 63,199, 74,216,227,185, 55,122, 1,107,210, 62,241, +173,144,240,114, 70, 98,224,115,239,191,143,243,199, 63,196,227, 39,207,177, 88,186,218, 28, 48, 77, 1, 38,173,163,219,204,208, +139,104,230, 84, 87,140, 51,140,186,246, 84,248,157,219, 91,216, 84, 50, 35, 49, 79,145,226,133, 39, 81,243,229,167,181,194,171, +166,110,254, 44, 62, 49, 51,229,196,205, 53,252,118,159, 41,186,245,253, 24, 99,176, 94,175,113,113,126,142,175,254,252,215,240, +181,175,125, 13,223,251,238,119,241, 71,127,244,143, 36, 95,220,154, 91,225, 60, 34,131,243,243, 23,176,214,225,239,252,206,239, +224,253,247,191,136,171,245, 22, 80,115,144, 48,142,184,188, 56,131,113, 22,207,159, 62,197,197,197, 37, 22,203, 5, 66,148,103, + 99, 98,247,115,245, 28, 63, 63, 59,195,209,225, 33,150,171, 21, 66,140, 42,243,218, 97, 12, 67, 13, 82, 25, 67,192,110, 87, 82, +213, 12, 18, 98,149, 63,149,109,109, 73,219,202,250, 62, 83, 76,232,189,175, 83,124,140, 73,137, 74, 84, 99,106,173,198,140, 14, +227, 88,221,227, 58,253,154,150,215,192,218, 64, 36, 45, 10,130,166,178,248,103, 40,114, 88,152,238,164, 4, 54,106, 36,150,117, +125, 14,181,150,117,226,126,101,148, 64,103,148,192, 89,126,166,152, 72,166,197, 64, 56, 60, 88,225,228,238, 93,109,116,101,218, + 23, 61,181, 66,162,214,105,160, 15, 0,114, 56,127,241, 28,235,203, 11,213,205,151,233, 29,112, 78,195, 95,212,209, 46,170, 65, +143,192,238, 90,252, 98, 22,163,159, 20,170,194,135, 1,105,218, 98,192, 56,140,242, 30, 85,134, 41,205,132, 48,186, 81,108,112, + 99,134, 49,185,154,202, 20,131, 41,153,196, 77, 45,230,226, 63, 37,159,133,183, 22,201,120, 49,198,177, 58, 44,100,105,142,114, +102, 88, 18,102,121, 24, 35, 88, 53,227,140, 17,206, 9,239,129, 51,102, 49,203,101,114,245,154,168,134,204, 24, 19, 35, 13, 3, +122, 79,128,134,187,144,158, 39,166,156, 41,200, 96, 99,234, 30,191, 40, 93, 18, 67,167,117,136, 31, 63, 84,158, 6, 70,142,185, +122,193, 87,171, 88,136,124,143,141,147,179, 50, 9,204, 47, 43,125,139,152, 12, 44,141,146,227,158,196,102, 54, 0,240, 38, 96, +112, 22, 54, 56, 28,249, 1,155,131, 67,152,237, 1,136,175, 0,242, 47, 65,250,246,126, 85,237,229, 94,190, 16, 36,204,235,198, +109,164,186,130, 84, 42, 82,174, 41, 85,165,168, 38, 52, 4, 9, 37,134,101, 97,112,103, 61,201,178,106,199,219, 77,173,105,166, +171,220, 50, 71,245, 86, 44, 19,182, 65,179,227,173, 62,240,162, 59, 55, 96,233, 50,148, 40, 96, 51, 99, 0, 1, 28,193, 16,139, + 70, 71, 2,143,128,228,215,210,113, 74,135, 75, 8, 72,219, 75, 92,118,192,129, 37,152, 76,141,151,248,164,105,158, 32,243, 38, + 2, 54, 69,181, 59,157, 2,197, 73,139,140,153, 37,176, 76,140,168,220, 78,148,197,189,173, 30, 88, 18, 82,147,179,250,168, 55, + 19,113, 57, 70, 50, 49,198, 24,112,149, 8,119,238, 28, 99,185,189,192,102,109,113,183,239,112, 54, 14,184,212, 2,152,103, 85, +105, 74,117, 3,228, 33,128,198,196, 22,134,120,209,191, 39,157,210,175,153,231, 52, 46,121, 78,119, 82, 9,101,234,159,194, 97, + 18, 11,175,194,212, 92,100,158,229,141,147,174, 12,254,217, 63,249,199,224,204, 88, 44, 23,179,155, 57, 51, 55,222,240,211,132, +254, 82, 29,184,178,161, 23, 93,135, 48, 10, 28, 92,148, 44,115, 86,253, 20,195, 91, 46, 77, 89,215, 36,206,179, 45, 66,235,246, +254,186,255,241,103, 72, 80, 98, 92, 83,211,189,226,235,169,233,174,185, 1,225,185, 18,195, 78, 79, 79,145, 82,196,127,253,183, +255, 14,254,242, 47,255,101,196, 97,196,207,253,249,159,195,197,249, 5,254,201,255,243,127,227,228,228,228,150, 61, 63, 97,179, +185,194,197,249, 5,126,231,219,223,198, 95,252,234,207,227,242,226, 18,222,119,184,186,186, 4,192,216, 13, 35,156,247,184,186, + 90,227,227,143, 63, 6,144,170,115,219,118,187,195,225,193, 1, 8,172, 97, 28, 2,125,135, 16,240,248,241, 99,124,225, 11,239, +195, 89,139,139,139, 11,156, 95, 92,160,243,146, 16,182,219, 13,146,148,150, 50,250, 69,135, 97, 20,114,151, 43,142,101,200, 10, +241,150,224, 16,177, 59, 54,234, 94,182,217,238, 16, 83,172, 69, 37,215,104,101,214, 4,178, 88,247,238,206, 90,116,139, 30, 70, + 39,120,231,156, 6,154,228, 58,229,149, 34,197, 41, 77,178, 40,102,116,157, 83, 29,190, 22,119,109, 6,172,149, 34, 92,118,214, + 66,236, 82,215,179,146, 50, 6,130,117,186, 11, 6, 41,145,142,208,119, 14,247,239, 63,144, 34, 28, 34,186,190, 3, 51, 48, 14, + 35,250,190,135,247,110,242, 72, 79, 98,229,122,181, 94, 35,198, 8,239, 23, 90,100,163,216,236, 70, 89,129,148,247, 64, 69, 5, + 2,214,212,182,168, 90,116, 32,132,164,158,233, 18,235,186, 3, 16,199, 0,103, 37,119, 60,231, 66, 44, 68,221,231,203,138, 33, + 2, 70, 52,255, 22, 6, 28,133,108, 54, 4,125,125,163,164, 60,103,171,241,147,119, 78,159, 69,141,127, 14, 17,142, 8,212,121, + 12, 33,193, 81,134,237, 22, 8,177,149, 8,150,134, 33,233,154, 67,121, 90,112,152,141, 15, 26,243, 13, 18,203, 90,183,232, 36, + 74,150,141, 20, 36, 50,112,134,193,100,101, 64, 34, 11, 98,137,129,101,214,226, 12,130,241,182, 18, 16, 83,148, 2,109,196, 74, + 78, 53,242, 70,121, 27,166,242,113,178,218,127,247, 14,128,247, 24, 51,129, 67,148, 0, 34, 68, 36, 3,228,164,249, 32, 4, 81, + 97,133, 4,199, 9,206, 49,238,186,140,211,147, 30,233,252, 46,108, 88,223, 22,187,254,146,125,251, 75, 16, 55,230, 38,209,237, + 53,214,134, 52,213, 22,251,231,190,248,246,119,118,187, 45,178,216,250, 10,140,129, 44,254,193, 9, 50,149,147,236,187, 76, 91, + 24, 43, 43, 91,138, 86,106,166,240,212, 20,142,226, 1, 95, 76,100, 74, 96, 73, 73,130, 67,141,206,147, 11,238,116,223,156,244, + 67,207, 42, 7, 51,212, 4, 84,104, 48,202,164,195, 22,183, 56,130,129,201, 35, 46, 46, 47,240,163, 39,151,248,248,202, 0,222, +160,107,246,140,220,216,210,202, 36,110, 96, 32,210,151,200,141,237, 95,171,251,102,220, 48, 93, 81,101,218,219,106,174, 3, 85, + 8, 72, 65,139, 51, 54,247,116,160, 87,216, 88,161,225,245,102,135,139,205,136, 97,187,197,143, 79, 47,241,253,203, 17,219, 74, + 90,107,210,223, 76,171,109,111,118, 53,229, 53, 90,102,255,158, 70,125,242,135,231, 25, 92,227,173,193, 81, 39,233, 69, 99, 22, +153,135, 55, 86,146,183, 10,243,180,141, 7,161, 86,234,195,213,148,165, 28,146,183,107, 47,111,103,187,231,204,176,206,225, 96, +181, 66, 12, 35, 82,226, 73,162, 72, 60,163,224, 87,169,101,219, 68,128,117, 74,163, 73, 14,194,244, 82,151,183,255, 63,255,241, + 30,193,254,118, 21, 11,163,141,171,153,155, 9, 79,203, 27, 99, 12, 94,188,120,129, 20, 19,126,255, 15,255, 7,124,243,155,191, +134, 63,251,211, 63,193, 63,255,227, 63, 6, 71,217, 49,255,203,255,247, 95,160,211,201,231,166,107,121,126,126,142,211,211, 83, +252,230,111,253, 54,190,245, 27,191,129,205,213, 22, 49, 6, 60,123,246, 24,151,151, 23,240, 93, 7, 67, 6,167,167,207,241,209, +135, 63,170, 13,233,229,197,165, 76,102,106,128, 2,133,189,235,238,159,228,160, 52,100,176,217, 94,225,244,244, 69,101, 23,111, +174, 54, 88, 95,110,228,126,114, 14,198, 26,209,176, 55,146, 36, 82,175,240,204, 89,243, 15, 38,215,177, 24,131, 64,241,229,115, + 83, 59, 81,113, 38, 22,104,184, 16,210,138, 25,204,155,111,190, 9, 34,131,139,139, 75,157,118, 51,194, 56,168,163,154,209,105, + 59, 85, 93, 59, 80,216,236,182, 38,171,145,106,148,203,190,220,168,219, 92, 49, 79, 49, 80,182,180,162, 82,101,170, 55, 86, 56, + 59, 41,101,140,195,128,247,222,123, 27,247, 31, 60, 18, 51,156, 69, 47,106,161, 6, 78, 47, 70, 69,101, 7, 61,142, 35,206,207, +207,133, 72,166, 48,187,115,194,172, 15,234,204, 86,194,102,178,174, 18, 72, 9, 75, 37,144,101,183, 11, 24,134, 1,195, 48, 32, +132, 17,227, 16, 16, 53,168, 37, 55, 59,216,114,109,188, 53,112,222,171,241,138,174, 55,114, 2,169,209,206, 24,229,247,134,196, + 26, 23,152, 62,135, 82, 16, 51,147,168, 36, 44,224,156, 87, 25, 44,132, 7, 97, 12, 66, 6,226, 56,194, 89, 82, 21, 65, 33,255, + 90, 69, 58,101, 64, 34,107,192, 60, 25,218, 84,179, 40, 18,181,147,243, 14, 37, 43,148, 89,194,184, 74, 83, 84,172,105, 91,185, +155,152,212,228,201, 63, 62,211,180, 38,210,104, 88,134,232,228,203, 68,111, 56,137, 74, 75,181,243, 12,130,101,101,185,195, 34, + 71,217,179,115, 53,209,209,100,148, 18, 25, 75, 4,207,132,131, 14, 88,251, 37,182, 87, 22,102,247, 2,160,252,153,228,108, 52, +251,127,116,211, 95,188, 90,219,222,156,139,125,223,195, 37,221,237, 22,199,179,152, 19, 24, 7, 72,135,199,232,143,206,241,149, +237, 22, 87,231, 6, 31, 37, 66,178, 50,205, 85,221,186, 78, 98,185, 33, 84,241,108, 98,159, 72, 76,211,122,147,145,170,169, 75, + 6,229, 34,175,202, 66,204, 40,201,106,218,141,182,222,194,164,175, 37,133,166, 88,195, 50,144, 35,162,218,174, 50, 89,116,222, +192,123,170,209,142,197,250,182,216,211,146,242, 2, 64,147,180,194,146, 5, 55, 76,121,110, 2, 91,168, 76, 13,213,252, 69, 60, +134,115,102,149,215,149, 66,163,249,232,214, 98, 69,140, 33, 37,140, 76,141,211, 16,207,248,206,117,103, 30, 7,252,201,143, 62, +193, 7,186,115,203, 4,184, 98,184, 80,116,246,166, 16, 1, 21, 94,175,187,125, 13,108,217, 43,246,241, 6,251, 2, 87, 26, 22, + 69, 27, 50,128, 93, 74,232,157,197,145,183, 72,172,187, 80,149,166,116, 70,166,164, 9, 97,152,224,247, 18, 12,225,200,192, 88, +133,219,249,230, 72, 66,186, 86,218,174,155,210,176, 54, 5, 57, 69,156,157,157,213, 38,134,247, 1,146, 41,189,181,114, 58,138, + 90,160, 40, 27,168, 73,200, 35,204,153,239,175, 38,233,189, 94,160, 10,209,117,178, 28,241,203,190,126, 94,208, 91, 91, 29,110, + 32,247,243,179, 51, 12,195,128,127,240, 63,253,207,248,198, 55,126, 5,255,219, 63,252, 95,113,246,226, 5,118,219, 29,118,187, + 45,150,203, 5, 92, 77, 37,107, 82,178, 50,227,114,125,137,245,229, 37,222,124,235, 45,252,103,191,253,219,248, 43,127,245,175, +226,147, 31,255, 24, 57, 51,182,187, 43,196, 16,240,232,209,155, 32, 16,158, 62,125,130, 31,252,224, 3,172,215, 87, 88, 46,122, +176, 38,172, 93, 92,172,113,120,116, 40, 8,142,179,232,123,129, 96, 37, 97, 78, 10,221,143, 63,253, 68, 29,206,172,232,202,199, + 17,195, 48, 86,153,148, 83,111,242,242,243, 21,184,221, 89, 11,182,140, 24,178, 62,139, 69,102,166,141,187,126,110, 2,169,231, + 90,192,137, 72, 88,228,234, 63, 15, 34,248, 78,146,210, 82,150,198, 99, 24, 36,197,141,140, 4, 78,136,108, 75, 9,122,121,186, +113,196, 94, 54, 43,129,109,238,103,144, 89,230, 71,111, 39,249,110,212, 38,167,248,193,215,164,183, 49, 34,217,140,206,121, 60, +184,247, 0, 71, 71, 39,226,100,231, 93,149,116, 45, 23, 11,120,223, 99,179,221,194,230,140,126,209, 35,171,188,108, 24, 71,177, + 97, 85,100,201, 40, 50,102, 53, 87,189,178,233, 67, 16, 52,204, 58,228,156,208,121,249, 60, 66, 8,232, 59, 3,107,150, 56, 59, +147,226, 94,246,246,153,115,221,161,231, 44, 10, 28,206, 12,182,164,118,187,169, 38,217,137, 66, 65, 25,237, 89,158,117,227,196, +105, 79,254, 46, 85, 67, 28,112,150, 70,198, 57, 73,211, 4,195, 59,131,144,128, 48, 14,162, 13,215,117,160, 85, 29,123,206,169, +234,255, 13, 49, 82, 18,118,189,133, 72, 10,165,216,235,125, 64,168,246,176, 33, 18,144,130,200, 25, 51, 1, 49, 40,199, 8,226, +118,103, 92,153,102, 36,182, 85, 39,197,196, 18,183,106,140,172,117,147, 6, 91,145, 53, 24,163, 1, 82, 40,204,100,192,102, 48, +172,196,138,167, 40, 74, 2, 16,124, 76,232,156,193,216,121,112,132, 6,198, 0, 57, 1,196,130, 78,176, 53,210, 56, 80,134, 99, +224,200,103,188, 56, 60, 0, 46, 14, 0,156, 1, 13,123,234,149,100,219,102,245, 60, 25,125,240,117,248,253, 21, 78,114,237, 25, +231, 10, 9, 41,101, 77,241, 81, 87,161,184,120, 23,221,251, 71,248, 55,226, 15,177,252, 94,192, 63, 60,101, 60,205, 64, 50,123, +134, 39,152,194, 1, 50,225, 6, 18,208,196,114, 79, 45,138, 74, 66,108, 51, 54,195,228,164,123,250,172,250,244,125, 99,146,249, +215, 83,113,104,155, 49,188,185, 78,226,162,239,206,170,187,100, 36, 51,223,129,115, 3,199, 83,163,171,159,144,140,226,234,198, +141, 94, 20,205, 1,148, 85,234, 50,237, 51,106,225, 39,209,216,102,163,197,184,144,214,102,230, 44,250,190, 74, 84,171, 33, 24, +139, 74, 80,180,144, 78,179,234, 97, 85,122, 7, 42,233,118,211,247,107, 75,185, 20, 20, 83,161,152, 54,198,180,157, 36, 51,207, + 33,250,179, 97,196, 82,161,169,164,193, 6,150,244, 61,112,227,211, 94,252,159,169,228,164, 79, 13, 93,177,186,205,205,130,153, +110,128,254,111,228,125, 52,238,115,101, 63, 86,101, 89, 60,145,227, 26, 11,129,250, 94,218, 40, 87,236,179,196,247,238,159,246, +181,173, 30,208,252,147,192,238, 52,215,169,183, 25,245,237,212,204,188,255, 19,243,158, 38,125,154,208, 47, 47, 46, 48, 14, 3, +126,255,191,255, 67,252,234,175,126, 19,255,231,255,241,143,112,113,126,142,113, 24, 48, 14, 3, 22,203, 30,238, 74,246,142,153, + 51,194, 16,176,219,109,171,195,221, 23, 62,255, 5,252, 59,255,193,223,192, 87,191,246, 11,120,251,237,119,240,228,241, 19,113, +103, 11, 1, 71,199, 39,120,243,209, 91,184, 92, 95,226, 7, 63,248, 0,207,159,157, 98, 24,118, 24,135, 29,172,146,190,174,174, + 54,184, 90,111,196,225,109,161, 4, 52,157,216, 58,223, 33,197,164,112,188, 48,200, 99,138, 18,254,162,140,119, 99, 8,148, 53, + 0, 69, 83,221, 88,189,230,141, 49, 58,129, 10,121, 44,132, 80, 13,144,136,128, 28, 99,125,166,246, 27,167,172,166, 43, 57, 51, + 18, 25, 88,178,184,115,114,140,126,177,192,118,183,131,115, 14,155,171, 43,140, 97,208,130, 42, 25,221, 81,223, 43, 26, 35, 32, +144,129,247, 18,112, 98, 84,162, 55, 25,160,136, 60,204,123, 7,167,230, 43, 73, 25,219,166,172,216,108,113,124,147,157,208,131, +251,119,240, 51,127,254,231,112,121,185,198,213,213, 21,142, 78,142, 37,225,204, 57, 0,234,159,174,242,173,168,158,247, 99, 12, +226,218,167, 40, 64, 29,119, 85,158,102, 13,193,123, 15, 99,133,111, 16, 98, 80,243, 27, 87, 81,136,206,121, 4, 61, 93, 79, 78, +142,176,190, 50, 88, 95,174, 49,134, 32, 63,183, 78,246,133,153,158,153, 65, 97,146,219, 86, 39,189,204,200,214, 0,156, 85,118, +231,144,114, 84,228, 81,211,247, 12, 33, 37, 84,242, 89,231,197,141,109, 12, 73,118,232,228, 96,141, 4,163,196,196,250, 92, 65, + 62, 99,102, 73,123, 51,128,129, 81,211, 29, 32,101,145,159, 89, 29,144, 98, 98, 16, 5,225,202, 16,195,146, 5,156,196,166,118, +150, 17,105, 1, 78, 65, 26, 49,227,229, 76,206, 60,161,143,144,134,168,216, 90, 23,115, 49,131,201,132, 6,137,225, 29, 35, 27, + 15, 78, 66,196,150,213,168,232,226,139, 87, 65, 98,192, 36,198,129, 77,224,190,199,144,150, 72,227,136, 28, 71, 32,103, 24,155, +197,168, 77,135,218,148,129, 67, 23,224,150, 29,146, 59,130, 13, 47,170,254,253,186,132,150,110,101,219,180,202,149,207,194,240, +217,255, 91,199,141, 51,154,104,183, 61, 56,175, 97,158,254, 25, 46,221,151,241, 71, 95,250, 28,254,202,151,126,132, 95,226,136, +255,253, 12, 56,205,197,230, 85,167, 55, 77,153,145,173,137,178, 53, 73, 63, 68, 45,144,197,236,196, 72, 98, 0, 50,140,152,218, +168,182,145, 76,134,205, 83,150,120, 41,186, 53, 6, 84,247,200,166, 72,224,116,122, 70,102, 33,234,209, 4,105,179, 22,173,194, +108, 19, 86,227, 20,188,130, 54, 26,180, 20, 61,157,220,139,188, 45,183, 28,101,106, 3, 78,138,119, 48,215, 2, 90, 29,234, 26, +162, 86, 73,147, 10,234,229, 62,115,165, 43,185,242, 58,165, 23, 14,130,197, 60,208,163,205,159,231,226, 45, 92,154,167,134,205, + 78, 52, 15, 47,105,211,221, 91, 86,254, 68, 54,209,247, 87,101,113,242, 51,237,212, 31, 26, 12,196,196,200, 37,146, 71, 73, 70, + 89, 61,151,179, 26,241,180,215,251,166,130, 86,201,144, 68, 55, 50,201,121,182, 38,215, 6,169,232, 77,103, 78,132, 92,123, 64, +190,222,158, 86,216,189,252, 17,113, 99,194, 70,124,163,163,156, 33,177,229,141, 57,207, 36,131, 63, 17, 12,207,123, 70, 49,179, +181, 66, 70, 29, 20,193,123, 52,185,102, 66, 63, 63,199,250,242, 18,223,254,221,223,195,183,190,245,235,248,103,255,244,159,226, +211, 79, 62, 69,138, 9,187,221, 14,222,123, 28, 30, 28,226,249,233, 41,158, 62,123,134,197, 98,129,135, 15, 31,224,189,207,125, + 14, 95,249,202, 87,240,238,231,222,195, 87,190,242, 83,184,115,247, 30, 94,188, 56,197,139,211, 23, 66,152,113, 14,143, 30, 61, + 2, 25,139, 31,252,224, 3,124,248,163, 15,101, 74, 12, 1,222, 57,228,148,177, 94, 95, 97, 28, 71, 92,173,175,116,223, 59,202, +129, 63, 45,169, 52,153, 76,138,185,100,106, 75,179,185, 29, 7,229, 48,240,156, 16,167, 83, 23,181, 14,136,137,171, 81,145, 53, +194, 64, 7, 73,196,107,187,210, 74, 57,171, 12, 77,164, 91,169,144,184,146,190,174, 37,172, 86,146,108,182,190, 92, 99,187,221, + 32,115,227,180,150,185,225,185, 24, 24, 6, 98,142,112,106,209, 90, 2,129, 66,144,196, 57,209,190, 11,164, 30,115,210, 6,197, + 34,166,164,104,217, 20,100, 34,207,117,170,147,232,118, 24,113,113,126, 38,215, 45, 37,196, 16, 64,203, 5,198, 24, 17,214,107, +241,124,215, 72,215,164, 49,165,156, 25,222,123,244,125,135, 97, 39, 72, 64, 84,162, 33, 51, 99, 24,133, 92,232, 59, 7,239,172, + 18, 3, 5,166, 15, 65,164,136, 89,127,182, 49,142,149,167, 80,124,234, 57,231,134,148,156,180, 57,209, 24, 82, 45,234, 62,201, + 42, 39,106,227, 69, 36,176,191,179,162, 64,200, 89,244,233, 37,234, 54,231,194, 21, 18,130,164,177, 86,239, 9,134,247, 25,126, +209, 33, 37,241, 6,149,157,122,150, 66,111,236,100, 31,203,128,119, 34, 73,203,234,136,151,116,170, 22,158,194,196,123,168,206, +111,170, 79, 23,191,127,175,254,240, 12, 78, 99,245,122,167,230,108,182,132,170,109, 55,142,145,217, 74,208, 75,140,240, 38,131, +172,151, 52, 82,203,200,217,130, 88, 72,113,172,235, 1,217,193, 67,253,249, 13,200,137,165,239,214, 46,176,131,131, 13, 87,200, + 38,201, 90, 72, 73,153, 12,198,146, 8, 7, 43,194,217,242, 24, 54,120, 0, 73, 80, 8,208, 28, 57,188,165, 56,215,241,171,149, + 30, 23,211, 49,230,215, 30, 52, 4,145, 45, 19, 79,158,210,195,178,113,160,244, 20,253,135,192, 15,195, 27,248, 95,222, 90,226, +151,142, 46,240,185, 53,112, 54, 18, 70, 35, 7,102,199,132,108, 15,144,143, 34,190,144,119, 24,174, 12, 62,209,194,145,160,186, +204, 82,128,235, 84, 37,197, 61,195,192,112, 0, 2, 48, 66, 89,166,122,140,120, 61, 12, 83,243,131,149,175,167,114,140, 23, 88, +155, 49,203, 11,103,222,143,183,107,192, 74,206,215,104, 83,233, 6,105,149, 16,104, 90, 71,179,189, 29, 48, 21,162, 32,215, 38, + 96, 86,178, 26,168,191, 64,250,166, 53, 6, 85,210, 92,189, 17,117,252,116, 0, 2, 10, 59,190,188, 66, 70, 44, 62, 0,251, 72, + 66,163,145,230, 27,166,205,162, 69, 55,141,116, 48,211,156,189,205,205, 8, 91, 37, 49,121, 74,210,171,215,158, 39, 95,248,226, + 19,127, 83,239,105,102,117,151,170,174,159,111,113,107,171, 97, 48,188,199, 65,184,145,181, 46,191, 27,135, 1,198, 88, 97, 10, +103,190, 33, 19,144, 95, 74, 44,205, 44,171,145,207, 98, 52,243, 42,178, 11,243, 92, 7, 95,167,192,246,129,109, 30,109,210, 9, +238,233,211,167, 48,198,224,191,253,189,191,143,255,248, 91,223,194,191,248,231,127,140,143, 62,250, 80,138,104, 78, 56, 58, 62, + 70,223,117,232,151, 11,156,220,189,131, 95,253,230, 55,241,165, 47,127, 9,239,127,241,139,184,127,255, 33, 14, 14, 15, 16, 67, +192,233,233, 41,190,247,221,239,226,240,240, 16,111,189,253, 14,172,115,200, 41,226,252,226, 28,223,251,238,119,241,236,233,115, +157,226, 24, 49, 6,164,152, 97,157,193,110, 24, 64, 96, 44,186, 14,195, 24,176,190, 88,227,206,157, 19,184, 19, 95,239, 33,107, + 12,118,105, 16,231, 56, 42,123,112,177, 70,133, 78, 70, 69, 66,101,117,154,205, 44,123,112,163,158,223, 5, 85,201, 57,163,115, + 14,198,200,186,135,212, 16, 36, 51,131, 82,129,101,229,249, 29, 67,172,104, 81, 82, 29,179,117, 22,171,213, 10, 49, 70,156,157, +157, 35,132, 81, 53,199, 10, 41,199, 48,197, 42,231,194,224, 55,250,190, 72,229, 84,202,209, 81,246, 60,180,232, 58,149, 64, 69, + 53, 98,105, 40,173,117,146, 39, 18, 73, 94,223,121, 28, 28, 28,226,242,242, 18,253, 98,129,197,162, 71,223,247, 24, 71, 49,179, +233,251,133,166,188,233, 58,207, 72,179, 76,144,125,180,177,226,213, 25, 98,172, 4, 63,231, 44, 50,235, 48, 68, 86, 27, 80,212, + 16, 21, 34,209,141, 27, 34, 56,239,149, 53,191, 70, 24,163,184,241,113,134,247, 22, 68,190, 58,217,201,255, 90, 12,227, 8,210, +216,218, 93,138,112,181,223,120, 62, 0, 0, 32, 0, 73, 68, 65, 84,234,145,111,172,173,140,148,148,147, 54,253,194,109,136, 12, +112, 16, 24,188,184,118, 90,195, 42, 33, 46,100, 62, 57,112, 83,206,242,236, 59, 87,121, 63,197, 30,184,166,189, 25,146, 16,108, +133,210, 5,173,128,192,249, 52, 17, 16,197,124, 72,244,245,156, 24,198, 4, 24,227,196,118, 54, 69, 37, 29, 83,221,171, 79,161, + 92,122, 70, 41,242, 65,204,176,158,144,216, 11,159, 35, 9,177,176,142,139,101,117,172,134, 68, 96,134,183,130,232,132, 12,184, + 24, 97, 45,227,192, 59,120,219, 99, 24, 12,194, 48,192, 96,128,181,146, 17, 31,217,160,203,140,227, 62,225,236,240, 8,124,113, + 0,226,255,143,181,119,251,181,109,203,206,187,190,214,122,239, 99,204,117,217,247,115,115, 85,157,186,218,229, 68,184,236, 92, +100, 35,197,150, 28, 59,150, 5, 50,201, 3,145,192, 88,178, 83, 66, 1,161,132, 0,121, 64, 36, 16, 80,224,157, 7,132,248, 3, +120,224,153, 63,128, 55, 8, 33, 65,136, 4,112,176,171, 92,101, 87,157,203,190,156,179,111,235, 50,231, 28, 99,244, 75,227,161, +181,222, 71,159,115,173,125,206,169,132,146,172, 42,159,179,247, 90,243, 50,198,104,189,181,246,125,191,239,181, 78, 58,250,245, +243,231,116,219, 7,141,153,200,225, 36,147, 62, 67,253,222, 13,190,235,223,242, 96, 58,200,198,110,122, 97,127, 2,146,215,184, +251,201, 22, 47, 94, 59,252, 79,158,112,146,245,169,237,237, 11, 46, 60, 32,111, 8, 15,125,198,233, 30,120, 85, 86,207,112,105, +164, 52,181, 16,120, 20, 68, 97,141,111,237, 48,160, 77, 87, 45, 4, 97, 70,144, 2,226, 13,104, 4, 78,243, 30,211, 66, 72,164, +248,192, 38,214,146, 67, 59, 89, 27,217,154,208,102,237,160,104, 13,231,147, 85,137, 95,186,177, 57,147, 89, 34, 72,125,228,196, +176,211,238, 74,123, 59, 16,136,153, 91,128,168,118,218,181,115, 71, 35,179,173, 5,110, 29,215, 23,226, 70,188,107, 59, 85,233, +198,227,164, 55,203, 0, 40, 43,190, 43,155, 98, 62,201, 42, 92,169,135, 9, 22, 90,167, 7,221,215, 92,250,110,151,214, 17,119, + 57,250,115,117,215, 47, 93,245, 76, 41, 27,242,146,218,231, 86, 47,206, 34, 43, 64,131, 26, 75, 91, 12,141, 43,183, 58,166,107, + 87, 94,201,118,114,212,226, 10, 14,227, 89,229, 24,176, 32,116,184,200,177,110,254,157,119,223, 69, 92,102, 92, 92, 92,169,231, +244,152, 82, 87,149,252,183,156,145,229, 95, 64,237,126, 99,160, 46, 95,204, 3,119, 0,241, 33, 96,191,219,227,249,243,231,248, +234,215,190,138,191,249,183,254, 67,252,242, 47,255, 10,254,228,143,255, 4,143, 31, 63,198, 48, 4, 56,127, 7,195,240,200,178, +184,149,111,253, 83, 95,249, 10,254,250,191,243,239,194, 15, 1,151, 23,151,120,245,234, 37,158, 62,125,210,198,211, 76,192,221, +123,247, 48,140, 3, 46, 47, 46,240,241, 71, 31,226,241,227,199,120,253,234, 66,139,184,171, 93,170, 6,143,184,228, 32, 82, 52, +110,212,146,190,230,121,198,197,229, 21, 30,189,243, 22, 78, 54,167, 88,162,238,204, 75, 41, 70,102, 99, 44,166,108, 47,185, 32, +165,220, 92, 11, 84,149,234, 57, 35,151,245, 3, 41, 89, 97, 50,196,132,113, 8,218, 13,118,116,180, 16,148,106, 22, 83, 66,176, +135,191,100,187,167,178, 30, 14,170,104,111,179, 57, 69, 24, 54,120,250,236, 25, 46,175, 46, 32, 57,173, 99, 87, 17,243, 31, 19, +144,212, 14, 91, 74,214,160,153,218,237, 59, 7, 18, 32,152, 56, 52, 38, 29,151,215, 6,129,153,224,131, 38,148, 9,170, 95,124, +237,182, 97,116,187,183, 30, 61,192,217,217,185, 22,220, 92,247,226,218, 97,143,227,198, 18,205,214, 85, 85,177,194,161, 90, 1, +198,102, 51,106, 36,109, 84,129,144, 22,113,203,244,206, 25, 28,163,198,188, 14, 3,150,148,177, 44,139,118,217,131, 38,102,236, +247, 19,230,121, 82,215, 7,107, 52,110,201, 81,159,163, 34,205,234,165, 59,116,224,244,100, 68,140, 25,211,126, 54, 47,187, 78, + 6, 66, 88, 5,139, 76,206,200,119,177,165,201,165,142, 70, 25, 83,212,181,221,160, 57,239, 57,101,155,142,100,164,152, 17, 88, +192,102,133,163,102,179, 82,113, 27, 59,134,136, 83,113, 30,213,213,139,173, 67,179, 62,227,200,232,125,169,232,223,169, 35,105, +245,192,103,148, 26, 94,221,137,146, 91,244,171, 21,109, 66,209, 63, 95,106, 42, 28,153, 75,130, 80, 44,109,132, 76,197, 46,201, + 14, 8, 2,245,159,219, 4, 38, 21, 21, 39, 10, 11, 92, 41, 8, 94,112, 26, 60,156, 27,177,115, 30,113,239,128,188, 55,246,137, + 22,129, 59, 46,195,159,109, 32,225, 28,148, 94, 31,106,222, 90, 97,167,110,206,250, 89,132, 43,122,131,203,253, 51, 10,251, 65, +167, 78, 12,113, 10,220, 41, 69,223,160, 51, 2,155,144, 3,113, 66,152, 51, 94, 47,132,215,172, 98, 43,182,222,179, 16,193,201, + 30,195,117,194,199, 51, 53,137, 64,178, 2,196,102,235,178, 51, 29, 2, 84,204,148, 77, 87,238,142, 20,251, 21,227, 42, 0, 92, +181,166,116,123,123,125, 30,150, 46, 57,173, 31,255,174,196, 51, 58, 70, 99, 83,111,105,163, 53,188,139, 84, 80,225, 88, 86,187, +149,172,167,188,210,226, 89,165,137,212, 74, 85,231,154,176, 48, 48, 33,144,202, 41,146,172,147,129, 22, 64,114, 48, 22, 63,196, +186, 80,231, 1, 87,120, 79,233,130, 82,168, 11, 8, 88,119,218,235,254,185, 11,104,145, 26, 64, 99,140,245, 22, 83,218,209,238, + 76,196,215,116, 4,117, 24,218, 70,217, 58, 61,121,244,232, 45, 44,211, 53,174,118,179, 58, 30,104, 61,160,149, 58, 37,176, 31, + 66,210,237,235,187,253,250,218,223,172,177,136, 58, 49,176,177,170,172, 99,105,105, 98, 17,234,188, 12,235,133, 65, 71,249,232, + 34, 90, 32,190,242,149,247,241,250,213,115, 60,127,254, 2,236,198,131, 4,187,227,236,247,207,178,174,137,252,100,217, 11,183, +197,178,203, 23, 60,133,167,148,112,125,125,141,221,110,135, 7, 15, 31,226, 95,255,171,127, 21,255,198,111,255, 54,238,221,191, +143,239,127,255, 15,145, 98, 66, 24,130, 22,133, 54,177,208,209,119,240, 14, 97, 24,240,244,147,167,152,246, 19, 74, 46,216, 79, +123, 75, 61,171, 86, 49,193, 18,103, 60,121,252, 24, 63,252,193,247,241,201,179,231,200, 41,155, 66,218,246,222,172,221, 42, 1, +136,105,177,112, 14,193,126,154, 44,145,139,112,241,250, 2, 41,101,132, 97, 80,223,243,178,232,107, 51, 33,167, 34, 73,197, 2, +110,244,123, 13, 94,119,229,185, 84, 31,185,199, 92, 10, 98, 86,250,217, 48, 4,229,107,179, 38,121,129, 9,101,209, 98,236,135, +128, 17,104,176, 25,169,188,118,251, 61, 34, 5,227,184, 1,136,112,239,254, 93, 0, 5,175, 94,189,210,113,183,169,140,148,178, +170,163,218,156,138,169,229, 11,134,160,250,128,184, 68, 72, 0, 70,231, 65, 78,159, 63,170,178,198,218, 85, 90,138,104, 78,122, + 87, 58,238, 24,232, 22,192, 82, 68,112,239,238, 57,238,221,187,143,104,133,183,122,232,135,205,136, 64,235,225,109, 12, 65,149, +230,166,220, 87,168,140,107,201,111,128,224,249,243,231, 77,165, 94, 73,127, 4, 96,183,219,195, 59,198,184,217,180,137, 73, 46, +185,221,175, 49, 37, 76,211,132, 24, 51,118,251, 61,138,145,252,114,133,201,212,213, 84,209,100,181,113,208, 41,202,201,233, 73, +167, 55, 80,150,186,247,154,218,145, 77,216,230,134,128,148, 10, 8,122, 13,204,211,164, 22, 51,118, 40,146,224,196, 33,166,108, +128, 23,143,101, 90,140,175,174, 99,121,170,254,240, 98,217,238, 96, 72,202, 32, 54,145,179,115, 7,192, 49,214,139,104,141,199, +181, 36, 55,177,154, 80,187,119, 72,105,105,106,149, 23,146, 50, 44,137,175, 24,168,102,173, 25, 25, 26,196,194, 69,215, 1,196, + 78,159,171,230,169, 87, 61,129,192, 3,128,120,139,109,181,137, 3, 51, 50, 24, 75,212,123,106,136, 11,194, 48,224,254, 24, 48, +133, 19,236,166, 17,121,217,130, 75, 66,129, 96,227, 8,227, 6,216, 13,231,224, 88, 9, 45,188,202,199, 76, 97,143, 47,208,181, + 31,104,118,106,195,116, 11,108,234, 77,171,119, 15, 51, 15,100, 57, 74,183, 50,168, 71,134, 42,227, 60,173,163,216, 26,222,193, +121, 66,218, 18,158, 0, 90,188, 73,201, 62,149, 38, 71, 68, 24, 29,192,197, 14,164,118,194, 98, 0, 81, 86,222,186, 22, 10, 66, +170, 59,232,188, 83, 49, 6,248,144,236,212,119,122, 36,135,106,165, 82,139,240,234, 41, 85, 96,145, 30,197,196, 68, 57,210,209, + 83,170, 98, 89, 99,113,245,180, 88, 82, 65,225,128,224, 77,144, 39,210, 65,104,234,110, 73,191,176, 96,182, 28, 77, 84, 83,144, + 76,169,189,175,200,129,245,173, 10,252, 0,180, 96, 26, 28,141,101,171, 37,139,140,146,199, 7,235, 3,253,121, 97, 51,130, 74, +198,180,196,149, 20,215,237,174,179,237,215,184,251,136,214, 12, 16, 50,141,128,116,162, 65, 91, 75, 20,209,155,174, 50,213,237, +115,202, 69, 14, 40,114,235,200,188, 78, 44,112,128, 59, 61,200, 74,239,225, 50, 88,119,157,189,176, 76,186, 9, 81, 83,170,243, +225,239,105,255, 93,147,181,136,240,255,254,254,255,163,233, 87,227,216, 44,136,206,222,104,146,210, 50,226,139,188,185,160,123, + 87,139, 84,194,231, 70,159,210,103, 8, 84,228, 80,188,231,131, 1,120,236, 97,126,117,117,133,237,246, 26,119,206,239,224,155, +223,250, 38,126,238, 59, 63,143,191,244,151,126, 3,223,252,233,111,225,245,235, 75,124,248,225,135, 16, 99,152,143,227,198,126, +198,128,113, 51, 2, 16,108,119, 91,204,243,140,253,180,195,171, 87,175,240,226,211,231,184,115,126, 87,247,125,203,210, 84,221, +243, 60,227,250,234,251,152,118, 59,188,124,161,214,184,148,178,101,109,155, 7,220,113, 59, 28,141,195, 0, 71,174,117,129, 57, +173,105, 99,251,237, 30,242, 64, 15, 80, 33,120, 43,112, 5,203, 92,253,224, 38,234,180,253,120,178, 7,171, 88,230,185,226, 74, + 11, 60, 51, 54,227,104,136, 83,195,150, 90,247, 6, 20, 99,157, 47, 77, 12, 86, 74, 50,213,122,110,116, 58,102,181,133,157,157, +157,225,209,195, 7,184,188,188,194,246,122,219, 77,227,160, 97, 35,208,145,125,138,170,234, 70, 29,201,215, 73, 6,115,179,225, +137,209,212, 42,104, 71,138,180, 85, 91, 49,149,181, 35,135,100,187,238,122, 1,120,199,120,240,224, 1,198,113, 99,209,174,122, + 0, 56, 63, 59, 5,153, 55, 93,189,235, 27, 44, 73, 9,120,245, 25,227, 28, 97,240, 94,133,124, 57,194,177,199, 56,142,152,247, +123, 45, 46, 22, 24, 19,185, 24, 21, 82, 84,115, 80, 45,126, 82, 48, 79,139,185, 3, 10,216,121,196,189,137,184, 72, 95,175, 6, + 71, 25, 30,215,138,100, 48, 17, 91,142, 51, 70,219,231, 47, 75, 52, 88, 15, 35,102,157, 62, 0,130, 98, 73,132,142, 73,163,184, + 23, 37, 16, 50, 9,206, 78, 55,166,220,207,170,179, 49,134, 73,240, 78,197,116, 69, 16, 60, 41,113,205,126, 86, 61, 48,197, 76, +160,152, 48,122, 15,239, 28, 98,177,145, 61,153, 13,205,190, 19, 50, 43, 93, 17, 66,145,108,207, 48, 11,157,113,222,158, 73,122, + 93,214,238, 28,118, 16,104, 81,168,214,124,177,194,244,109,250, 32, 96,138,109,229, 66,221,180, 82,170, 45, 78,178, 90,170,109, +199,158,164,232,125, 73, 25, 49,123,228, 57, 97,112,130,147,129,129,147, 13, 38,156, 3,241, 26, 89, 50,156, 8, 78, 92,198,118, +216, 0,219, 1,144, 89, 87, 10,221,196,177, 98,111, 63,151, 5,191,218,247, 15,133,197,183,252,221,219,224, 87, 94,114, 70, 78, +162,236,116,133,169, 53,150,120, 31,140,193,213,187, 77,107,161, 41, 64, 23, 57,103, 35, 48, 98, 8, 51, 60, 51,198,154, 90,198, +128,183,236,219, 66, 4,111, 34,176, 10, 10, 17,232, 7, 88,136, 21,118,210,109, 70, 93,247,251,170,103,178,206, 26,170, 42,154, +132, 1,231, 16,144, 20, 19,216,141,202, 43,223,166, 88,225, 93, 59,232, 85, 17,175,204,119, 43, 59, 65, 57,191, 37, 31,238,210, +155,120,142,214, 73,128, 35, 32, 79, 91, 60,157, 9,103,103, 39, 24,220,154, 84, 38, 71,226,169,166,118, 37,181, 93, 36, 11, 93, + 49,177,122,219,157, 56,123,183, 69, 20,206, 33,180,154,159, 10, 8, 33,140,112,101,193,188, 44,221,103,194, 7, 74,116,105,194, +194,195, 47,188,142,202,169,230, 11, 87,186, 31, 86, 16,199,203, 23,207, 1,114,240, 78,119,158,108,167,217,108,113,141,125, 33, +147,163,109, 49,117, 71,144,117,158,114, 72,143, 47, 7, 74,119, 57, 16, 17,246, 83,153, 3,149,251, 45,106,144, 37, 70,229,242, + 91,152, 7,108,109, 65,232,199,118,159,221,165,251, 97, 0, 1,216,110,163, 65, 42, 62,231,228,220, 91, 80,228, 72, 28,215, 49, +239,235, 40,248,213,203,151,152,151, 5,223,254,246,183,241,103,255,252,159,195, 47,252,153, 63,139,111,124,243,155,184,119,239, + 62, 82,140,248,209,143, 63,192, 98, 59,109,231,189,138, 17,189,199,201,201, 6,119,238,220,197,197,229, 5,254,248, 7, 63,192, +235, 87,175, 48,207, 51,166,121,194,245,213, 78,197,115,206,225,221,159,122, 79,167, 49,118, 72,221,239, 38, 92,111,183,216, 94, + 93, 91, 74, 90,208, 17,108,142,250,128, 47,235,200,178, 20,193, 20, 19,242,126,106, 29,229, 60,207, 24,135, 1,165,232, 65, 96, +115,178,193,245,245, 22,119,206,206, 48, 12, 3, 62,248,224, 35,196, 20, 85,145,110,190,102,103,157, 42,113,251,193,218,169,123, +143, 28,180,187,117,236,154, 8, 77,237,110,234,245, 45, 6, 50, 73, 49, 25,112, 69,143,121,243,146,212, 15, 12, 29,133,250, 65, +213,198,111,191,253, 54,156, 15,248,228,211, 79,109, 87, 76,237,103, 56, 34,164,152,140,249,175,247,142,247,190, 89,189, 92,205, + 99, 47, 6, 64,161, 53,230, 88,227, 89,185, 77, 96, 24,107,102,133,247,234, 93, 15,230,247, 62, 59, 59,197,184, 81,170, 30,153, +208, 46,184,161,209,250, 0,198,178, 36, 85,115,231,180,138,243,236, 53, 44, 41,233,100,197,118,222,222, 7, 36, 31, 91,188, 45, +177,129,164, 44,247,189,136,180, 67, 87,140, 17,201, 34, 95,227,178, 88, 8, 76, 65,178,239, 67, 69,105,186, 66,131, 6,147,169, +240,203, 60,218,204,140, 37,103, 4,172,217, 12,204, 6,198,178, 11,186,126, 63,222,115, 19,110, 13,131, 67, 46,192, 50,207,246, +153,170,160, 44, 11, 33,199,132, 33, 56,120, 63, 98,137,218,214,144, 87,139, 92,181,253,146,165,231, 21,179,204,106,194,155, 67, + 42, 58,147, 44, 32, 13, 24,226, 4,248,161, 41,149,114, 46, 96,201,109,247, 47, 38,164,204, 57, 91,138, 95,229,251,139,161, 91, + 21,191, 11, 19, 23, 30, 79,249, 52,123, 93,225, 62,130,234,157, 23,163,164, 72, 39,234,163,102,152,214, 26,224,144, 1, 44,169, + 0, 41, 97,227, 8,231, 39, 1,137, 79, 48, 95, 10, 92,190,192, 70, 18,206,135, 1, 47,206, 78, 33,175, 79, 65,216,223, 24,143, +171,231, 94,190, 40,175,178,177, 82,142,157, 59,199,214,216,227, 31,231,217, 44, 32, 10,134,177,142, 71, 86, 37, 58, 58, 27,153, + 84,220, 43,245,214, 43, 52,229, 60,245,221,188, 0,194,210, 8, 68,165,219,237, 38,209,174, 87,121,240,140, 60, 4,220, 25, 50, +198,152,241, 58,174,121,235,142,235,142,154, 77, 92, 87,237, 88,101, 77, 39, 19, 85,208, 59,231,224,145, 13, 29,184,106, 3, 86, + 81, 69,177,135,252, 42, 48, 91,195, 91, 4,146,174,113,193,127, 26,191,252,123,191,133,191,248,244,127,192,127,247, 63,190,192, +124,186,193,232,185,121, 62, 43, 75,210, 17,195,165, 5,113,243, 46,126,241,207,253, 2,222,154, 30,227,127,251,195,167,120, 49, + 19,130, 99, 3, 42,172, 73, 83,253,136, 86, 58, 31, 84, 6, 33,128, 48, 56,245, 10, 36, 17,204,182,179,231,166,188, 95, 51,218, + 1,193,246,234,210,172, 38,174, 77, 46,164,243,161,167, 58, 73, 17, 65,130, 90, 76, 50,148, 10,199,157, 58, 94,191,103, 90,253, +238,109, 12,233,218, 77, 69,128,210,177, 44, 41,107, 13, 71, 89,139,175,116,243,235,181, 27, 47,141,230,214, 60,233,157, 54,225, + 13, 84,228,131, 11, 90,142,243, 94,187, 11, 88, 44,112,226, 88, 63, 66,210,159,102,229,214,205, 84,175, 58,159,246,251,246,191, +127, 34,113, 92,191, 80,151,155, 63,247,242,226, 2,151, 87, 87,248,185,239,252, 28,126,235, 95,251,203,248,197, 95,250,151,113, +239,254,125,236,247,123,188,126,245, 10, 63,126,245, 39,152,230,201,188,249,102, 7, 74,250,160,187,127,231, 14,206,207,207,241, +227, 31,253, 8,255,251, 63,250,199,120,254,252, 83,165, 99, 89,167, 60, 91,218,217, 60,237,177, 44, 11,222,122,235, 17,182,219, + 29,130,215, 4,179,253,118,139,235,237, 86,177,193, 21, 6,101,221, 36, 65,217,223,197, 98, 60, 83, 84,126,249,110, 82,212,235, + 48,120,120,199,184,186,222, 98,191,223, 41,169,204, 57, 75, 1,219, 27, 59, 66, 5, 85, 58,102,119, 32, 39,173,227,211, 17,182, +118,199,228, 24, 46, 69, 72,209,144,149, 34, 98,148, 64,177,145,191, 89,130,236,225,236, 61,183, 53, 65,211,145, 72,209, 24, 78, + 2,238, 63,184,143, 71, 15, 31,226,201,211, 39,152,166, 29,134,193, 53,203, 86, 46,235, 46,191,126,239, 85,181, 95, 45,101, 33, +120,245,121,167,108,247, 62, 27,254, 52,183, 2,174,202,252,149,254,166,171, 72, 37,198, 21,227,144,223,189,123, 87, 71,238, 41, +106, 81,118,222, 20,244,192,126, 63, 97,115,178, 1,195,171,130,157,131,218,164,114,196,233,233, 9, 8,140,105, 81, 97, 31, 59, +103,144, 23,189, 64,163,217, 2,157,133,229, 16, 72,191, 83, 43, 70, 41, 46,118, 40,145, 86,224,182,215, 59, 44,243, 12, 71, 26, +130, 85, 57,251, 76, 14, 5, 81,115,217, 65,152,230,168,182, 53,115, 28,212, 67, 69, 77,165, 99, 38, 48,235,239, 77, 89,249,249, + 49,234, 40, 59, 56,110,159, 69,156, 35, 70, 41,128, 11,202, 5,112,206, 18,231,116, 13,201,155, 17,203,178, 32, 72,129,115,222, + 28, 6,162, 5,212,120, 5,139,173, 69,194, 48,130,153, 80,178,128, 44,253, 45, 38, 32, 80,210, 84,208, 26,240, 99, 9,129,169, + 0, 57, 69, 21,202,145, 40, 68,168,122,172,164,218,209, 74,139, 85,173,208, 48, 34, 61,100,194, 51,114, 33,117, 53,100,101,208, +175,246, 95,115, 91,217,116,130,161,161, 90,156,213,153, 5,155, 28, 72, 17,100, 42,152, 18, 99,140, 17,119,130,131,156,111, 32, +219, 2,148, 45, 78,124,129, 31, 3,138, 63, 5,197, 23, 7,116,185,207, 37,200, 29, 60,100,228,243,162, 30,215, 39,101,185, 25, + 36,237,254,244, 55,191,244,247,119,211,220,102,161,141, 24, 39,235, 3,156,110, 17,251, 52, 8, 73,167,164,174,232,206,106, 17, + 75,178,166,145,161,162,104,109,175, 94,108, 72, 95,204, 55, 69,131,195, 29,206,224, 36,216, 9,186,112,209,174,135, 35, 28, 57, +179,187, 81,122, 73, 72,121, 37,217,173, 10,117,180, 17,127,169,227,219,163, 40, 81,237,232, 29, 28, 11,210,197, 83, 60,254,232, + 5, 94, 76,166,214,188,165,129, 99, 19,122,148, 56,227,178,156,224,253,111,191,143,119,242, 39,248,227,103, 11,200, 51,248,192, +143,190,210,202,235,103,200,221, 74, 65,236, 53,157,216, 73,118, 6,225,238, 24, 48, 80,193,100,214, 93, 58, 32,185, 29, 90,179, +152,120,181, 10, 17, 29,176,219,143,163, 5,152,106, 17,175,135,157,155,185,236,171,112, 77,223,123,140,217,148,183,235,234,226, + 32, 13,156, 86, 11, 94,221,137,201,145,250,253, 88, 16, 87,169,125, 61,119,251,198, 69,219, 87,207,227, 55, 46, 71, 17,166,210, + 81,207,228,230, 49,225,179, 32, 51,130, 47,158,120,220,109, 33,218,189,210,175, 25,150, 24,241,228,241, 99,220,189,119, 15,191, +251,221,191,134,127,239,111,252, 77,124,231, 23,254, 12, 94,189,126,133,103,207,158,226,242,242, 53, 82,140,216,156,156, 34,132, + 1, 67,208,238,124, 55,237,225,152,241,229, 47,125, 5,231,231,119,240,131, 63,250, 30,254,151,255,249, 31,224,217,147,103, 45, +110, 51, 26,194, 83,227, 44, 21,217,185,204,179,174,157,178, 10,150,182,187,157,237,217,181, 91, 75, 49, 54,108,144,216, 78, 37, + 25,110, 85, 1, 44,218,125,206,203, 12, 66,193,102, 51, 34,166,140,253,110,143, 59,119,239,226,225,219,143, 16,231, 69,199,250, +215,215, 16, 17,101,187,155, 5,172,148,140,101,137, 86,152,215,121,150,115,154, 64, 54, 77,139, 77, 10, 74,115, 3,176,217,133, +212,226, 85, 12, 48, 99,126,244, 84, 51,212, 89,199,170, 69, 33, 56,167,103,167,248,234, 87,191,134,171,235, 43,124,242,236,147, +150,214,151,115,253, 59, 98, 34, 43,133, 23,213,238,162,122,202,107,176,202, 24, 60,156,211,162,134, 38,214, 21,108,198, 65,179, +213,169,118,132,166,152,247, 14, 32, 13, 45,154,166, 25,119,206, 79,241,232,173,183, 90,162, 92, 69,161, 58,219,147, 39, 91, 23, + 12,227,128, 33, 12, 45,145,110, 8,234,185,158,163, 90,177, 54, 6,206,217,237, 38,253,142,196,148,217,172,180,181, 24, 53,255, +156,137, 27,225,175, 70,206, 50,105, 8, 84, 92, 34,246,147,138,229, 96,137,118, 21,218,163,106,127,111, 93, 50, 44,149,142, 15, +166,134, 21,207, 91, 59,116,199,220,193,155, 42,163,126,157, 80,122,214,169,130,152, 11, 0,165, 96,244, 22, 88, 83, 0,130,238, +230, 99, 38,228,184,152,200,177, 24,176, 7,109, 45, 80,133,195,193, 51,136,189, 37,169, 85,206,125,214,208, 23, 66,115, 44, 20, +219,167, 23, 11,149,113, 68,202, 11, 48,141,144,126,207, 78, 33, 59, 57, 43, 78,150, 61, 74, 49,190,244, 42, 65,191,193,178,208, + 93, 61,106,218, 75,133,149, 2, 76,138,139,205,185,242, 81,117,207,223,114,211,245,115, 58,101,129,219, 56, 76, 56,133,143, 9, +236, 18, 46, 36, 96,190, 78,224,229, 21,186, 66,112,248,104,251,108,252,228,141,135,160,188,225,223, 80, 11,148, 90, 5,216,195, + 56,192,253,169,111,188,247,247,167,221,130, 82, 44,240,192,196,114,125,108,101,161,155,227,228,222, 68,212,135,182, 52,121, 79, +209,113,104,169,227,111,232,184,189, 10,229,106,103,207, 16,112, 78, 88,230,140, 75,117,184,173,172,245,163, 36,183,195, 2,223, + 21,151, 35, 97,156, 28,239, 35, 12,172,210,143,163, 15,113,170, 4,176, 71,160, 61, 46, 30, 63,198,135, 87, 94, 3, 94,168,123, +128,119,159,166, 90,212, 25,158, 4,211,139, 39,248,167,255,236,199,248,104,235, 48,122,110,162, 60, 52,129, 91,235,145,214, 97, +117, 87,204,200, 62,151,217, 2,115,170, 64, 71, 63, 43,106,113,182,210,193,111, 68,110,150,171, 10,126,225,238,247,247,102,170, + 21,148,115,155, 74,157, 15,247,251,196,237,224, 86,253,242,109,127,217, 49,134,251,223,114,155,130,252, 6,112,134,250,131,226, +106,249,171,106, 18,106,145,103,116,171, 24,228,134,103,243, 22,149,219, 27,142, 9,111, 84,187,127,209,130,222,145,130,187, 21, +148, 66, 54,174,174,174,240,226,229, 11, 64,128, 95,251,141, 95,199,127,240, 31,253,109,252,234,175,253, 58, 46, 46, 46,240,193, + 7, 31,168, 13,201,146,209, 78, 54,103,184,123,239, 46,130, 15, 56, 57, 61,193,217,233, 25,124, 8,248,169,247,190,132,179,243, +115,252,179,223,255,125,252,195,127,240,191,226,226,213, 5,130,121,171, 79, 79, 55, 22,246,225,224,156,142,212,171, 21,173, 22, +166, 82, 10,230,105, 50,134,248,170, 72,239,207, 68,245,161, 95, 35, 61,117,148,155,218, 61,203,172,157,235, 60, 47, 16, 0, 15, +223,122, 8, 64, 52,137, 45, 38, 21,166,217,254,185, 70,122, 86,209,100,106,162, 54,209, 96,145,101,105, 46, 17,181, 90, 5,205, +100,207,218,213, 47,203,162, 99,237,224, 90,119,200,206, 41,156,164,118,176, 68, 24,199, 17, 95,250,242,151, 17, 99,196,211,103, + 79, 33,162, 7,137, 98,120,211, 98,215, 78,240,218, 13, 86,247, 70,240,190,105, 28,244,115,116, 54,170,151,198, 0,167,238,225, + 66,198, 79,207,165, 22, 88,103,226,198,220, 8,123,247,239,221,195,184, 57, 65, 92,244, 51, 27, 55, 99, 75, 43,116,142, 49,110, + 70, 12,195,128, 92, 10,166,101, 86, 10,155, 87,228,105, 5,238, 80, 39,244, 98,118,173, 48,171,229, 75,147,216,114,138, 13,185, + 91,203,112,165,228,137,168,174, 97,154,103,196,101,214, 81,188,229,169,215, 67, 4, 53, 36,173, 81,254,156, 3,217,251, 95,153, +242,180, 50,248,237, 61,212,144, 38, 38,101,228, 59,246,150,204, 86, 86,212,173,104,151, 92,223, 55, 67, 15, 20,217,242,232,139, +137,239,234,245, 84,247,229, 21,255,203, 76,237, 62, 87,237,155,154,138, 99, 17, 80, 73,237,217, 93, 87,117,245,251,168,220, 18, +212, 32,151,186,127,183,215,213, 39,206, 85, 78, 73,239,238,201, 54,213,241, 44, 10,182, 1,175, 83, 29,170,194, 62,125,175, 82, +197,114,173,182, 21, 56, 7, 20,114, 26,249,138,108,201,111,132,145, 50, 16, 28, 10, 6,108, 56,225,218, 59, 92,109, 3,220,246, + 21, 64,179, 78, 29,110,105,179,155,128,154,232,150,246,251, 22, 98,236,109,207, 36,194, 97, 30, 43, 17,198, 97,132, 79,121,125, + 40, 83, 3,192, 24,207,189,250, 11,165,247,125,119,123,211, 62, 33,169,249,177,165, 9,180,216, 66, 8, 10,245,214,162, 58, 80, + 95,119, 5,213,115,189,102,155, 87, 46,124,245,154,210,193, 72,253, 56, 88, 69, 85,210,188, 42,195,218,164,150, 86, 79,100, 93, +125,150,210,198,251,232,198,218, 36, 5, 9, 14,195,233, 25, 6,226,117,229, 0, 90, 49,176, 29, 72,160,146,166,194,230, 4, 15, +218, 30,187,243,112,211,122,172, 96,172, 30,125,106, 42, 95, 90,193, 53, 66,102,167,200, 64, 46,216, 46, 6,147,232, 68, 28, 68, + 5,169, 8,156, 9,254,212,106, 82, 58,155,156, 24,170,147,218,126,252, 32,177,172, 49,188,117,140, 84, 8, 55, 96, 40,245,223, +115, 51,255,161, 33,118, 91,189, 45, 21,122,115, 24,151,210, 79, 15, 14,252,231,183, 20, 83, 58, 62, 92,116,133,153, 26,143, 89, +237,143,180,202,245, 45,147, 26, 7,239, 69, 15,157, 98,215, 40, 53,205,133,116,135,141,159,220,129,126,235,122, 75,161, 74,182, +167,187,186,190,198,245,245, 21, 30, 62,124,132,159,249,217,111,227,253,247,191,138,191,240, 43,191,130, 95,252,165, 95,194,126, + 63,225,135, 63,248, 1, 64,130,243,179,115,140,227,136,105,218, 35,109, 18,198,205,104,202, 99,237, 52,239,156,223,193,157,123, +247,176,204, 51,254,241, 63,250,135,248, 39,255,199,255,137,121,142,184,115,231,220,118,143,140, 57, 46,237,125,131, 9,203, 60, + 99,218, 79, 56, 63, 59,133, 72,193, 52, 79,109,116, 90,133,147, 34, 5,158, 21, 96, 18, 83,212,152, 81, 19,138,213, 56, 91,136, + 66, 77,166,121, 50, 40,138,180,209,249,179, 39, 79,241,244,227,199,248,202,251,239, 99,154,102,164,168, 54, 39,113, 14,113,154, +215,224, 20, 91, 77, 5,175,163,251,235,235, 45,166,105, 6, 59,106,226, 58,102,135, 97, 8,152, 38, 61,136,100, 35,158, 57, 70, + 19,216,181, 53,129,237, 93,116, 29, 48,226,209, 91,111, 99,158,103,188,126,253, 10, 69,106, 40,204,170, 88,103, 6, 98, 44,150, + 20, 86,187,118,187, 22, 24, 96, 23, 26,234, 85, 25,239,104,148,200,122, 48, 80, 70,188, 98, 76,197,160, 57,165,232,133,158,114, + 70, 8,132,123,247,238,226,236,252, 78,155,116,184,102,125, 83,118,253, 18, 29,198, 81, 33, 52,234, 52, 96, 21,197,149,130,148, +102, 21,228, 85,254, 61,151,102,253, 13, 33, 96, 79, 14, 49,205,144,168,135,128, 97, 24, 86,177,148, 89, 21, 85, 3,160,227,235, +121,137,216,237,246,136,203,220,184,244,197, 32, 64, 68,108, 40, 92,213,218, 20, 1, 22, 35,252,113,245, 64, 55, 37,182, 30,134, +152, 29,230, 88, 71,219,104, 98, 52,231, 28,156,168,144,110, 94,116,221,224,216, 55, 64, 84,150,130, 37,101,140, 68, 96, 23, 20, +149,203,172, 40,217, 18,117,162,144,149, 60,167,130, 60, 61, 4,128,216,210,248, 84,209,206,206,112,174,214, 20,165, 12,181,155, +177,179,107,222,153,144, 15, 7, 29,183, 0, 64, 42,141,176, 89, 76, 48,237, 28, 80,152, 90,125,169,140,121,117,142, 59,219,109, + 23,101, 24, 16, 65,216,105,206,132, 36,253, 92,172, 19,173,186, 41, 61, 28,171,110, 41, 18, 97, 94, 8, 27, 89,176, 7,161,236, + 5,227,120,141, 43,127, 10,204, 35,238,242, 30,207,206, 78, 81,220, 29,112,185,250,204,174,161,159, 54, 11,100,245,165,145,124, + 17,192,236, 33,178,186,211,101,249,130,178,238,189,235,248,253, 64,251, 83,108,237,108, 44,245,131,132,179,149,235, 14,104,116, +171,116, 29, 54, 29, 68,148,118, 29, 52,117,173, 47,169, 87,188,116, 97, 39,221,178,188,117, 34, 61, 96,128,141, 42,215, 11,170, +178,137,192,184,171, 84, 44,178, 22,241,163,242,181, 2,222,122,115,156, 62, 52,153,228,192,135,157,107,188,234, 17,228,165, 88, + 52,106,243,191,219,161,166,202,218, 20,254,223,199,178,172, 30,247, 58,138,114, 21, 82,211, 33, 43, 93,203, 81, 95,143, 75,245, +189, 22, 0, 39,142,225, 75,193,108,244,168, 3,254,191,125,174,206,118,220,135,243,141,181, 64, 75, 23, 1,219,230, 0,157,234, +146,100,253,119, 98,239,161,216, 94,157,250,209, 69, 21,255,245, 74,252,207,181,146, 29, 29, 71,233, 8,128, 67,114, 99, 25, 85, + 11, 92, 61,152,129,142, 69,106,116,224, 27,167, 55,184, 60,255,121, 32, 51,245, 47,179,193, 63,158, 61,123,138,119,223,253, 41, +252,229,191,242, 87,240,231,127,241, 23,241,229, 47,127, 25, 15, 44,118,243,233,211, 79, 48, 77,123, 12,198, 39,175,163,230,113, +179,129, 15, 1,151, 23, 23,120,125,241, 10, 15,238, 61, 0, 49,225,242,234, 18, 32,224,251,223,251, 30,190,255, 7,127,136,224, + 2, 78, 31,156, 41,135,191, 36, 56,235,230,106,228,104,206, 5,251,253,164, 59,231,148, 16,171,122,184,114,206,205,205, 80, 31, +204, 18, 99, 43,112, 53,241,174,122,182,137,116,143,157, 98,196,102,220,160,228,162,144, 18,227,238,255,240,251, 63,196,253,123, +247, 49,132,128,121,154, 84,228,101, 74,250, 42,178,202, 81, 69,120,222, 59,108,175, 23, 29, 17, 59,253,142, 42, 88,229,100,179, +209,145,185, 29,110,197,210,219,234, 84, 65,170, 61, 14,140, 88,102, 83,179, 7,156,223, 57, 71, 76, 11,174,175, 46,205, 55,110, +215,164, 83, 4,107, 41, 43,244,167,192,198,179, 94,247,177,217,220, 4,206,249,166,172, 6,139,209, 48,107,123,193,173,227, 97, +195, 17, 58, 99,157, 39,179,122,109,198, 17,142, 9, 39, 39, 39,240, 94, 25,236,103,103, 39, 40, 69, 87, 25, 76,206,144,174, 9, + 23,151, 87,112,222,227,100, 51,226,228,244, 68, 83,213,100, 81, 49, 92,206,112,102,177, 75, 53,243,221, 14, 85, 33, 4,164, 52, + 91,156,171,122,242,157, 77, 13,180, 11,213,110,118,137, 9,203,162,241,182,203, 52, 33, 38,229,192,171, 11,129,144,225,212,246, +101, 44,119,212, 53,161, 61, 7,197,166, 4,122, 96, 26, 80,196,181,216,220,224,156, 58,146, 74, 90, 15,203,185,186, 72,148, 27, +224,195,202,161, 15,158,145,196,217,132, 64, 52, 32,197,180, 60,222, 17,114,241, 77, 60, 88, 98, 2,115,213,224,232,190, 26, 57, + 97, 51, 6, 68,241, 96, 73, 32, 63, 96,154, 11, 74, 90,180,144,122, 15, 33,221,185, 23,209,233, 65, 1,235,212,192,166,137,154, +217,158,237, 16,199,112, 78,243,209,139, 29, 18,107,147, 85,113,219, 85,213, 46, 69,127,134,179, 8,214, 82,204, 39,127, 99,111, +103, 81,183, 6, 70,242, 92,128,224,144,104, 80, 48, 79, 46,144,100,207,102, 79,200,240, 56, 3, 48,158, 9,150,241, 46,176,127, +250, 19, 60, 98,104,125,166,201,231,168,227,143,158, 77,114, 4,221,242,169,212,132,181,190,139,167, 67, 79,110,103,153, 39, 19, +166,173, 41, 88,210, 70,179,246,253,119, 77,180, 28,242, 64, 69, 83,224,214,205,132, 10,222,146, 16,136,209,112,174,133,180,112, +175,202,222,142,216, 69,212,241,194,169,237,217,171, 74, 63,131, 14,169,102, 85,228,102,211, 2,234, 2,102, 88,216,162, 0, 75, + 83,131, 91, 88,212, 90, 6, 59,251, 91,238, 8,115,108,234,117,105,123,167, 14, 91,203,107, 62,121,233,144, 47, 76,132,145, 89, +105, 82, 44,109, 36,167, 5, 51,183,228, 56, 64, 45,128,212,230, 26,197,166, 29,122, 88,152,242,186,130,104,194, 49,251,172,196, +126, 86, 1,224,124,192,200,132,101,209, 29, 23,211,161, 45,173,207,181,215,136,199,210,174,146, 58,141,144,245, 44,117, 48,173, + 41,157, 97,251,182, 66,217,139,227, 14,121,232,199,167, 80, 58,132, 30,117, 83,130, 6,168, 17,125,240,220,189,119, 15, 82, 50, + 46, 47,175, 12,102,209, 77,159,136, 58,239,235, 27, 32, 56,255, 28, 5, 93,186, 3, 83,206, 9,207, 95, 60,199,111,254,230,191, +138,191,241,239,255, 45, 60,124,244, 8, 47, 94,190,192, 52, 77,120,246,233,167, 72, 81,247,203,103,167,103, 42,126, 51,129, 97, + 78,218,181,236,118,215,248,232,227,143, 48, 77,123, 44, 95,138,120,247,221,119,113,121,121,137,143, 62,252, 16,207,158, 60,129, +115, 1, 97, 80,109, 5,178,142, 57,235,247, 31, 99, 50, 47,243,172,106,113,235,182,227,162,161, 31,206,121, 67,156,174,135,173, +156,147,174,137,172, 99, 84,118, 4, 99,158, 23, 56,178, 36, 45, 8,198, 97, 0, 8,205,239, 78, 12,132,113,192,171,151, 47,241, +195, 31,252, 0,223,254, 83,223, 70,140, 9,211, 94,197,121,243,180, 40,131,192, 64, 44,204,132,105,154, 49, 77,115,243, 12,215, + 98,145, 75,182,215,168,135,155, 24,147,222,171,118,216,169, 36,203,100, 0, 23,245,177, 11,130,169,240, 47, 94,111,219, 1,162, +222,255, 26,114,162,126,244, 98,135, 29,101, 31, 8, 60, 57, 43,106, 58, 33,168, 22, 62, 2, 44, 90,181,198,179,174,171, 9, 87, + 11, 66,221, 47, 59, 70,182, 29, 49,147,122,236, 55, 39, 39, 72, 57,129, 1, 60,122,248, 16,115, 76,184,124,253, 10,227,102,196, + 56,110,176,204,202,104, 31, 67, 80,222,121, 27,221,154, 6,135, 93,203,156,175,113,160,232,226, 91,209,189,190,121,158,225,156, +183,238, 30, 40, 57,181, 41, 70,140, 9,187,221,222, 70,246,104, 32, 25,239,171, 86,161,238,244,140,255,222,248, 13,181,112,233, +251, 94,154, 32,209, 60,248,164,161, 59, 9, 26,205,234, 8, 8, 67, 64, 44,250, 92, 30,204, 47, 95, 53, 59, 41,103,120,231,192, + 97, 80, 93, 64,201,166, 65, 80, 52,111,113, 64, 73, 81,139, 58, 51,114, 73, 42,186,131, 87,128, 15,235,122, 51, 56,167,160, 33, +123,254,197, 36, 16,202, 45,177, 77, 72, 87, 54,142,181, 72, 23,169, 76,145,210, 80,196, 77, 73,100, 33, 36, 84,186,181, 74, 5, + 94, 91,194, 27, 89,170, 92, 29,127, 23,176,178,232, 45,230,185, 34,180, 41,215,125,124, 69,129, 19, 82, 81,247,187,138,143, 25, + 57, 9, 82, 73, 64, 18,220, 57,205,192,233, 57,114, 57,199, 24, 4, 83,216,192,237,130, 53,176,252,133, 10,180, 28,246,101,159, + 45,168,147, 55,244,241, 2,120, 77,242, 49,128,131,237,190,157,244, 52,179,227,157,245, 90,196,245, 67,208, 2, 92,192, 16, 38, + 56,235,185, 75, 63,186,173,227, 80, 82,172, 96, 29,107,231,218,209,211,138,127,173,184,187,254,160,194,116, 72, 34,147,222,187, +222,176,172, 74,157,147, 34, 72,164,200,213, 78,146,220,229, 86, 91,116,158, 17,224,186, 16,167, 38,170, 43,210, 77, 25,142, 67, + 66,168,235, 8,169, 3,218,244, 4,183,222,182,213,113,168,139,125, 6, 57, 71,216, 10,178,195,197,174, 49,143, 48,118,254,186, + 17,170,255,159, 52,196,108,145,117,111,175,145,232,213,246,119,168, 76, 47, 7,202,241,206, 16, 65,135,182,172, 34, 25,129, 53, +167, 56, 54, 67, 26, 58,212, 45,110, 65,254,220, 14,121,145, 35,166, 0,223, 50,138, 63,254, 79,245, 62, 59, 43, 52,149,100,215, +235, 34,118,187, 93,151,228,181,234, 45, 24,192,178, 40, 54,118, 8,190, 67, 18,227,214, 53,192, 79, 84,205,101,213, 0,124,242, +201, 39,248,245,223,248, 77,252,215,255,205,127,139,203,139,215,248,225, 31,255, 81, 83, 82,231,162,226,166,179,211, 51,120, 31, +176,219,110,181,152,166,130,101, 73,240, 94,176,221,110, 85,216, 4,224,217,147, 39, 72,203,130,203,203, 75,188,122,249, 2,126, + 24,192, 73,163, 31, 61, 57, 80, 84,123,209,245,110,107, 41,104,122, 8, 92,230,165,229, 85,103,179, 52,121, 14, 88, 22, 13,243, + 24,130,165,184, 85,241, 32,171,176, 73,108,148, 88, 76, 78,237, 66, 64,178,226,235,172, 3, 77, 41, 55,171, 22, 4, 24,198, 17, + 31,126,240, 33, 74, 41,120,248,232, 17,230,105,193,245,246, 90, 73, 98,185,232,161,212,246,195, 49, 70,203,245, 14,218,149,161, + 32,197, 12,100, 75,237, 50,177, 19, 68,127, 31, 49, 65, 68,249,235,169,216,244,197,238, 69, 23,148,240,166, 59,124, 90, 97, 42, +117,143, 75, 12,207, 14, 25,165, 5,151,228, 84,218,235, 46,182,203,214,224, 22, 61,240, 28, 36,252, 65,185,228,108,127,183,234, + 56,148,191, 94,112,178, 57, 1,241,137,118,196,243, 30,231,231,239,168, 10,219,226, 92, 95,188,124,105, 63, 83,239,183,184, 68, +141, 93, 29,149, 79, 62, 47, 11,194, 56, 52,207,126,177,247, 86,149, 73,184, 38,170, 0, 0, 32, 0, 73, 68, 65, 84,237, 57,107, +231,170,226,176,100, 26, 7,111,122,131,154, 46,183, 96,154,197,114,197, 77, 12,105,147,146,146, 83, 99,197,135,193,183,194, 95, +108,175, 92,105, 86,185, 70,200, 50,175, 26,139, 38,138,131, 57, 6, 10,200,178,194,153, 4,227, 16,144,179,199,188, 76,144, 37, + 2,102, 79, 36,214,176, 19, 88,151,158,165,134, 78,193,192, 63,250, 93,215,231,121,240,132,133,130,170,243,189,218,156,139,101, +185, 59,102, 20, 98, 44, 41,131, 93,212,134, 74, 10, 6, 71, 40,195,128,188,204,112, 69, 15,164, 32, 40,225, 45, 39,176,179,213, + 8,122,246, 58,181, 5, 51,213,149,131, 83,109, 8,108,194,235,236,112, 3, 43,220,108,208,177,138,225,230,186,154,177,159,199, + 86,135,115, 1,184, 78, 2, 76, 25,175,164,186, 4,128,237,208, 65, 72, 2, 44, 17, 56, 73, 11,134, 97,192,217,224,240,250,228, + 4,114,121, 10,200, 5,136,134, 35,202,235,155,138,181, 28,110,149, 15, 37,243,159, 67,161, 91,255,142, 63,160,147, 53,207,120, + 63, 26,189,153,172,197, 29,157,173, 66, 89,216,192,255,185,177,205, 13, 80,211,168,105,220,192, 51,210,169,218,219, 40, 86,128, +100, 5,211,117,114,188,210,249,127,215, 63,127,136, 57,109, 7,141,224,113,206, 25,243, 82,176, 8, 55,229,120, 79, 57, 19,163, +153, 85,138, 90,174, 74,106, 94,225, 39, 77, 8, 37,199,220,247, 46,194, 85,138,198,174, 98, 69,214,242, 13, 6,123, 61,180, 24, + 66,179, 8,182,149,145,108,133,156, 27,121,141, 90, 46,189,158,238,117,135,150, 91,124,104,233, 56,116,107,252,234,186,166,232, + 61,224,122,193,149, 20, 91,135, 79,157,135,189,102, 37, 51,161, 3,107, 72,139,165,172, 21,191, 64,185, 5,183, 9, 21, 15,167, +227,116, 96,175,115, 54, 65, 72,199,136, 86,145,163,154, 73,230,138, 40,216,156,158, 33, 48,227,122,123,189, 18, 0,235,129,168, + 54, 31, 41,117, 66,190,149,177,206,204,248,214,215,223,199,235,139, 75,124,242,233, 75,140,155,205,154,218,116,203,239,254,162, + 35,247, 94,233,190,159,247,120,240,240, 33,126,247,247,254, 26, 68, 10, 30, 63,249, 88, 97, 24, 32, 76,211,212,162, 49, 53, 85, +109,105,163,180, 24, 23, 83,107, 59, 43, 18,115, 83,135, 95, 94, 92, 52, 37,182,138,138, 84,128, 6,203,209,222,109,183,234, 71, +182,110,106,158,163, 61,248,117, 23,237, 72, 31,182, 49,105,144,198, 16, 66,179,137, 57,231, 14,156, 7, 92, 41,136, 89,217,228, + 2,193, 18,213,255, 44,166,170,159, 12, 44, 51, 4,181,199,193, 17,152, 28, 62,254,232, 35,236,118, 59, 12,195, 9,230,105,209, +212,173,154,108,150,180,176,143, 67,176, 81,166, 32, 4,253,119,123,153, 44,140,196,181,181,143,115, 26, 97, 58, 79,169,185, 41, +164,212,238, 94,192,172, 22,177,138, 18,117,206,155,102,128, 90, 32, 74, 21,220, 1, 98, 32,147,132,147,147,141, 78, 39,138,178, +172,125, 24,225, 28,183,145,100, 29, 59, 51, 19,136,180,160, 51, 49,192,165,233, 64,200, 66, 81,178, 89,200,150, 37,226,100, 51, +106,180,106,180, 3, 87,240, 88, 98,130,204, 11, 54,163,226,103,183,251, 29,130,115,200, 69,125,241, 33,132, 6,182, 17,104, 10, + 94, 8, 1, 18, 19,170,159,182,138,211, 28, 51,124,240,112,139, 51, 6, 64,182,247,170,215, 78,180,148,188, 34, 5,211,172,193, + 59, 37, 39, 56,239, 48,205, 51, 56,235,115, 68, 12,137, 90,153, 34, 20,140,218,102,170,247,202,228,103,162, 70,146,240, 78, 39, + 17, 57,107, 80,143,178, 29, 74,115,211, 36, 67,232,150,146,225, 93,192,224, 25, 41,235, 33,113,240, 14,112, 1,243, 28,193,164, + 97, 41, 41, 23,120, 68,112, 24, 16,147, 32,199,197, 16,206, 74,162,147,156,225,157,141,240,115,193,180, 20, 12, 60,129,252, 8, +177,204,244,224, 25, 40, 30, 34,118,112, 49,210, 92, 73, 25, 35, 9,200, 15,198,239, 40,205,103, 94,108, 58,233,204,110, 77,198, + 51, 17, 38, 72, 89, 5,113, 48, 39, 65,177, 12,245,106,117,214,213, 11,183,159,199, 88, 65,102,108, 5,221,252,223,200,236, 64, + 69, 99,169, 43,180, 44, 23,194,117, 22,200,117,196,253,243, 11, 60, 60,187,139,167,247, 30,160,188,184, 7, 78,175,213, 35,254, + 5,186, 8, 58,154,124,146, 77, 74,223,180,152,151, 91,138, 59,129,224,169,143,183,108,226, 48, 52, 10, 24,219,201, 5,157,178, + 93,106,255,104,227,238, 66,132,112,128, 8, 89,189,233,235, 6,127, 13,100,169, 34, 56, 22,160,143,189, 32,233,196,114,230,179, +174,107,219, 58,196,230,166, 36, 63, 50, 49, 75, 70,140,192, 46, 16, 6, 11, 72, 46,181,147,149, 94, 96,183,118,146,212, 41,231, +165,159, 51,119, 43, 6,245,219,243,141,238, 28,149,242,212,118, 47,170, 86,175, 60,248,122,227,148, 66,230,137,148,118, 83, 53, +132,106,253, 26,164, 38,141,173, 50,196,108,158,124,144, 97,123,237, 53,212, 66, 85,164, 91, 77,160, 19,142,152,176,177, 10,201, +142, 97,186,108,163,243, 34, 69,179,142,171,191,188, 78, 13,142,196, 23,249, 32,122, 22, 7,252,248,186, 42,168,131,251,254,210, +117,182, 14, 72,102,117,227,227,113,118,213, 88,216,119,165, 15, 55,215,118,244,125, 65,199,145,160,174, 29, 46,108,239, 95,114, +198, 18, 51,190,249,245,175,227,254,189,251,248,232,241, 19,164,156,108,165,240,249, 99,247, 55,157,155,251,223,125,125,117,133, +191,240, 43,191,106,177,166,207,224,157,199, 44,115,203,197, 14, 97,192,203,231,159, 32,166,140,247,222,251,146, 61, 8, 4, 97, + 8,240,217, 97,191,223,227,226,226, 21,150, 24, 33,211, 2, 65,193,178, 68, 91,141,104, 49, 39,123,224,199,152, 48, 47, 51,138, +237,156, 83, 86,197,183,198, 89,234, 67, 38, 69, 29, 5,111, 54,163,198,160,118,162, 64, 41, 2, 56,177,184, 78, 1,155, 61,168, +238,195,153, 3, 38, 43,232,204,100, 32, 31,189,192,107, 65, 79,150, 70,230,131, 67, 97,194,167,159, 62,135,119, 30,155,205, 9, +124,112, 77,123,195, 68,214,121,179, 69,150, 10,118,187, 29,230, 89, 19,196,134, 33,232,110,191,168,171, 24,206, 48,181,172, 92, +247,250,181,214,236,240,113,180, 64, 16,130,241, 30,214, 67,177, 88,241, 42,165,180,185, 91,140, 9,196,108, 35,108, 29,203,215, +177,187,136,190,119,111, 30,254,152, 18,134, 16,140, 98,167,217,218,117, 37,196,180, 90,191,234,119,194, 4,220,191,255, 0,108, +171,148, 26,178,130,202,173,183,211,166, 99,197,190,110,198,161,217,180, 82, 74,141,150, 55,120,130,247, 27,237,140, 23, 93,111, + 12,131, 83, 1, 25, 4,193,171,152, 47,248,128,189, 69,167,170,230, 79,191,135,156,103,108,119, 59, 92, 93, 94, 97,154,247, 77, +199,224, 88,181, 5,142, 89, 17,182,157, 88, 21,117,151,110,162,201,186,148,212, 9,143, 52,118, 1,155,112,176, 30,144, 83,158, +193, 0,134, 16, 16,147,160, 46, 16, 97,162,231,122,127,238,231, 5, 99,112, 24,135, 0,201,108,197,151, 90,231, 95, 21, 11,236, + 28,166, 37, 35, 45,179, 21,197,161, 81,241, 98,204, 32,202,216,120,143, 66, 78,145, 85,182,239,174, 65, 96, 53,162,151, 29, 35, +147, 3,165,210, 40,112,173,174, 52, 96,154,106, 0, 42,103,189,194,201,108,117, 14,152, 84,174,214, 37, 50,109, 78, 86, 54,176, +197,176, 58,163,210, 41, 71,133,156, 91,227,164,219,253,165, 10,120,144,135,131,198,102,103, 98,108, 51,224,183, 25,119,249, 18, + 39,119, 2,182,155,135,112,215, 31,183, 38,234,179,159, 69,132, 35,151,118, 91,175,222,222,146,191, 25,194,225, 87,115,210,218, +135, 73, 43, 0,117,132, 75,237,134,114, 7, 1, 34, 85, 89, 71,200,180, 50,214,181, 16, 21, 20,225, 53, 77,199, 70,235,201,164, +112,220,132, 92,135,113,161, 21,117,122, 83,219, 38,205, 94,135,206, 47,189,254, 28,128, 75,194, 60, 17,102, 66,227,150, 87,192, + 63, 72,213,253, 2, 58,200, 71,135,209,230,184,239, 31, 43, 11, 93,116,127, 71,210,197,178, 86,165,125, 95, 12, 68, 26, 45,142, + 13,239, 88,176,122, 7, 75, 78,141, 35,223, 71,170, 2, 85,133, 94,183,229, 43,151, 77,217,243,220,168,115, 92,237,100, 21,169, +136,195,164,180,110,113,172,123,156, 66, 56,152, 57, 30,201, 37,201,236, 34,189, 72,163, 67,207,173,211, 20,238,192, 49, 71,133, + 78,250,176,155,234, 27,181,131, 71,129, 32, 16,195, 3,138,207, 53, 97,151,247,254, 48, 54, 14, 42, 78,218, 95, 95, 97, 11,221, +235,213,100, 46,122,195,120,127, 45,252,122, 12,242,206,225, 71, 31,124,136, 23,175, 47,241,237,111,126, 29,247,238, 92,226,217, +139, 87, 8,129, 63,179,160,211,231,240,225,251,185, 66, 41, 5,143, 30, 61,196,229,197, 5,118,251, 45,134, 49, 88,192,141, 90, + 16,159, 60,254, 24,251,105,143,175,127,253, 27, 24,198, 17,211,188,199,180,223, 99,191,223, 97,183,219, 98,183,221, 97,187,221, + 41,104, 36,106, 49,143,113,209, 98,187, 68,236,167,185,169,197,231,217, 50,202,137,177,159,167,150,197, 93, 11,111,181,165, 9, +138,217,126,180,187, 75, 89,201,104,181,179, 72,214,217,178, 40,162,181,148,210, 98, 51,245,223, 39, 80, 89,241, 78,213, 23,189, +196,184, 94, 75, 38,146,173,123,249,221,126, 11,158,181, 0,177, 77, 3, 98, 92, 16, 19,161,148, 9,132,170,104,207, 8, 67, 80, + 53,246,146,109, 84, 43,246, 58, 51, 90,176,198,162, 81,175,232,208,166, 49,101, 11,121,209,235, 32, 4,219,133,183,110, 94,239, +133, 98,113,166,158, 73,117, 2,222,227,244,228,164, 9,195,130,177,221, 43,175,158,141, 22,150,114, 54,244,233,234,152, 33,230, +230,213,118,182,218, 56, 57, 61,193,249,249,185,197,147, 42,214, 20, 49, 25, 44,199,153, 63, 95,193, 54,155,205,168,207, 6, 99, +223,179, 29, 72,156, 21, 81, 29,151, 3,236, 84, 55, 48,205,115,163,172,137,136,130,113, 76,136,154,179,216,161, 84, 95,251,110, +183,197,197,235, 43,108,175,174,116, 77, 98,239,165,118,118, 53, 44, 39,103, 65, 69,230, 81, 23,155, 91,213,219, 58, 45, 44, 45, +229,109,153, 23,100,201,117,104,137,246, 11, 77,111, 33,144,102, 65,156,150,212, 32, 88,193, 59, 0, 3,230,101,198, 41, 19,200, + 13, 38,100, 37,228, 76,205,123, 14, 38,236,231,132, 20, 53,139, 60, 9, 33, 75,180,169,140,106, 4, 18,235,186, 66,132,161,153, + 61,190, 77, 34, 97,147, 7, 71, 0, 57,167,130,229, 26, 42,101,137,162, 36,182, 51, 55, 71, 15, 74, 94,159,105,188, 66,134,104, +157,187,183, 57, 49, 59,110,163,255,250, 76,101,201, 77, 80, 72, 29, 44, 70, 63,235,162,244, 82, 46,200, 96,184, 34, 10, 88, 19, +101, 45, 56, 38, 92, 21,143,179,109,198, 93,126,141,171,211, 19,224,234, 20,144, 43, 8, 13, 29, 28,235,150,125, 57,117, 74,229, + 27, 29, 7,221, 62,126,127, 3,171,166, 6,174, 53, 35,217,154,147, 77,235,248,216,107, 28, 42, 11, 33,118, 29, 93,238, 80,117, + 73,214,209, 58,119,230,183, 6,220, 35,180, 34, 92,237, 2, 69,214,152,147,213,222, 85,101,222,171,193,189,244,241,167, 82,139, +180,193, 17,236,187,170, 2, 56,238, 14, 29,174,247, 54, 75,111, 29,192, 13,166,124,159,139,154,187,184,210,118,152, 64,191,251, +239, 59, 90, 58, 80,183, 87,176,142, 98, 48, 59,126,138,200, 97,134, 56, 29,241,236, 9,199,164, 95,176,200,129,191,156,172, 56, +150, 3,122,218,250,185,175, 15,125, 58,120, 63,168,123, 40,224,192,254, 65,192, 65,126,239,129,197,162, 83, 73,210, 45,215,148, +220, 34, 66, 59, 76, 88, 35, 68,251, 0, 52,189,106,192,131,251, 15,112,125,117,161, 99,126,234,245, 25,122, 3, 59, 28,139,238, +110,134,174, 86, 78,107,139,156, 21,253,190,198,205, 6, 34, 5,223,251,193, 15,177, 68, 29,119,126, 97, 17,220, 27,254, 89, 15, +141,243, 33,224,227,143, 62,194,118,123,141,205,233, 6, 49, 38,120, 23,176, 57,223, 96,183,221, 34,132,128,179,243,115,196,148, +240,242,227, 15, 49,205, 19,230,253,132,235,237,117,219,155,214, 34, 52,207, 19,166,253,164, 52, 52,139,197, 76, 41, 34, 67,247, +200,185, 84,175,185, 88, 68, 40,161, 44,121,245, 82,155, 56, 76,105,101, 89,167, 87, 54, 94,149,234,141, 46, 64,204, 26,155,169, +251,233,100,227,111,110,175,163,142, 75,184, 22, 6,183, 2, 74,156, 87, 47,115,182,215,209,148,192,185,192, 3,200, 37, 34,217, +232,157, 44, 35, 32,219,138,200, 7, 15,111,233,114,234, 24, 72,237,193,218, 48,159, 38, 26, 91,230,185,117,144,236,212,250, 54, + 12,131,249,156, 93,139,139, 85, 17,157, 22,174,186, 59,206, 57,155,134, 64,199,250,193, 59,219,185,147,142,240,153, 91, 42,152, +118,235,107,246, 64,141, 86,109,239,173,118,181, 45, 72,166,224,225,131, 7, 24,198, 17,100,171,169,246,104,146,181,195,175, 30, +234,154, 90, 23,130,199,224, 7,221, 69, 27,126, 55,198,136,156, 76,215,192, 58, 13, 32,169, 9,103,197, 8,140,102, 39,117, 12, + 74, 70,132,172, 81,185, 49,227,234,122,139,101,154,154,133,144,156,152, 69,143, 27, 12,134,169,138,149, 85,191,211,252,221,182, +122,105, 92,140,162, 19,128,202, 45,168,135,148,210,228,123,220, 88, 1, 92, 69,101, 53, 44,134, 9, 72,132,147,209, 35,134, 83, +164, 20,225, 89, 81,181, 37, 69, 12,158,144,200, 97,217,207, 58, 66,207,162, 34,188, 49, 32,139, 77,152, 76,173,174,103,119, 61, +196, 49,169,176, 81,255,155, 87, 33,116, 17, 77,210, 36, 7, 87, 4, 5,245, 48,181, 50, 23,168,185, 99, 8,133,148, 87, 64, 84, +208, 18, 54, 76, 75, 34,166,221, 96,148,230,232, 33,100,139,136,117, 43,107,165, 77, 10,181,224,175,156, 15, 94,193, 49, 82, 99, + 91, 1,161, 98,245, 70,239,231,165, 56,220, 67,198, 39,231, 30,249,213, 67,184,120, 9, 56, 89,195,196, 8, 55,131,171,229,102, + 43, 65, 7,220, 21, 58, 88,235,214,201,246,109,122, 33, 95, 95,177,163,117, 15, 94, 79, 6, 2, 66, 97, 37,173, 5, 93,146, 98, + 46, 86,111,233,248,135, 21, 72, 97, 20, 90, 71,221, 45,206,176,155,181,114,135,227, 18,107, 40,185, 13, 10,164,141,163,155,176, +205,186,104,233,162, 67,181,104, 48, 54,158, 16,164, 96, 41, 58, 41,104,224,149, 46, 54, 53,247, 19, 8,233,120,192,117,148,210, +253,252, 21,100, 83,247,233,235,190, 26, 38, 38,169,126,197, 86, 80,155, 40,171, 19,221,217, 69,195, 77,216,227,192, 70,166,210, +223,119, 4, 76,169,177,178,221,161, 68,186, 2, 44, 5,234,109, 21,106, 66, 57, 57,160,161,224, 6,136, 71, 58, 10, 31,213,206, +174,142,171,123, 59,155,177,159, 87, 97,223, 10,193,161,163, 93, 57,125,129,241,117,237, 30, 42,183,158, 76,163,193,236,113,118, +122,138,235,171,215,186,111,100,182,252,128, 53, 70,182, 98,113,143,209, 51,114, 67, 84,167, 30, 7,238,138, 16, 12, 4,115,144, +201, 46,242,185, 29,185,188,105, 8,214,157,192, 20,102, 18,240,127,255, 95,255, 20, 47, 94,190,192,207,190,243,179,184,188,186, +130,247, 1, 23,175, 94, 97,183,219,227,254,253, 7,240,131, 90,191,230, 69,247,229, 58, 38,214,235,103,158,102,221,139, 79, 11, +226, 18,149,196, 86,178,161, 50, 11,114, 76,205,135, 95,247,199,245, 59,137, 75, 52,205,133,118,139,197, 84,191, 53,134,151,156, +235,172,138, 48,187, 85,110,251,184,250, 0, 7,128,101, 81, 49,220,224,131,226, 78,173,216, 87,239,246, 74, 2, 84,170,155, 20, +209,128,156,202,180, 47, 2, 63,168,141, 43,230,164,233,103, 45, 35, 0, 13,242,193, 45,236, 8, 88,150,216,186,210,170,144, 79, +185,232,195, 23,106, 95, 82,241, 99,193,102,179,193,217,233, 25,118,251, 93, 27,241, 87,241, 87, 85,213,215,243,111,240,190, 77, + 16,180, 35,245, 74,134,115,230,206,200, 53, 86, 85,197,114,185,100,179,105, 73, 3,162, 56,231,186, 8, 89,105, 88,220,187,231, +103, 24, 55, 39,170, 65,112,154,133,224, 66, 80, 68,110, 92, 45,125,108, 92,114, 85,160,251, 22, 18,148, 98,198,236,227, 1,147, +157,192, 54,226, 94,154,104,141,160,235, 1, 77, 94, 91,131, 92, 52, 44,166, 32, 69,181,202,197,121, 2,217,254,187, 78, 97,156, + 29, 48, 82,214, 16, 30,199,132, 97, 8, 90,120,179, 52, 63, 57, 19, 35,150,130,146, 83,115,200,136, 29, 66,196,178,226, 53, 16, +201, 35,139,226,106,203, 74,140, 66, 41, 5, 39, 99, 64, 4, 99,222,237, 53,115,220, 90,180,105, 73, 24, 75, 4,249, 77,107,126, +150, 37,233,222,159, 1, 14, 14, 37,219,132,128, 29, 54, 99,176,104,211, 2, 56,104,110,128,165, 83, 42, 45,142, 65,194, 45, 32, +134,204, 82, 91, 15,100, 49, 23, 32, 39,120, 7, 48,123, 19, 99,235, 58,167,234, 37, 50, 84,167, 33,182, 31,111,194,106, 49,219, +167,100, 19,164, 11, 28, 21,144,161,129,219,122,175, 24, 18,189,121,255, 77, 64,110,107,208, 2, 94,121, 10, 2, 56,235,238,133, +148, 18, 95,216,225,156, 24,239,222, 77,248,248,225,219,224,103, 23,160,242, 26,224,193,148,248,192, 65, 4,171,124,246, 34,240, +224,159, 54,199, 19,189, 17, 39,235, 43,131, 61, 25,239,189, 7,198, 3, 5, 46, 23,148, 4, 92, 88,135,205, 93,186, 69,237,174, +155,248,205,246,228,201,186, 70, 39, 43, 78,150, 15, 4,100,171, 40,143,186, 98, 46, 29,103, 77, 72,208, 5,170,174,234,110,187, + 72, 7,199,216,176,128, 11, 97,161,106, 39,227, 38, 62, 19,235,152,219,131, 89,214, 17,179,244,147,131, 70, 76, 91,139, 56, 49, + 53,196,236,141, 98,102, 15,210,210,219,248,108, 91,211, 20,254,168, 66, 51,219,165,212, 81, 62, 29,177,211,187,144, 19,234,118, +214,125,209, 47, 54, 94,226, 66, 77,240,211,142, 60, 34,237,253, 54, 47,166, 8,226, 1,117,141,154, 86,162,212,213, 6, 90,246, + 70,243,232,214, 67, 78,193,225,138,130,186,189, 14,117, 7,142, 94,221, 94,142, 4,112,189, 23, 50,139,134,149,196,121,143, 15, + 62,250, 64, 3, 62, 44,228,130, 32,240,108,167,222, 54,114,151,155,216,218,110,196, 36, 16, 60,122,244, 22,230,105,143,235,237, +206,200, 95,114,240,118,249,232, 53,125,113,193,251, 74,224,171, 83, 0, 34,198,118,187,197,197,197, 5,126,231,247,126, 15,239, +127,245,125, 60,123,246, 20,206,121, 60,125,252, 24, 79,159, 60,193,213,245, 21,216, 57,220,189,123, 23, 15, 30, 60,196,195, 7, +143, 48, 12, 35,158, 61,123,138,156, 34,174, 46,175, 0, 8,150,105,193,197,197, 5,226,162,129, 60, 53,208,131,105,221,255, 85, + 98,215, 48, 12,234, 1, 78, 73, 15,101, 44, 88, 22, 13,207, 80, 33,150,180, 16,148,156, 74,203, 47, 39,195,213, 50, 59,140,222, + 91,162, 85,110,251, 89, 17, 24,112,196, 14,156, 76, 7,239, 62,165,220, 38, 66, 68,100,135, 98,187,175, 5, 24, 70,125, 0,198, + 57, 53,107, 89, 76,186,218, 34, 2, 74, 74,152,226,210,224, 46,171, 56,179,168, 0, 45,229,214,145,170,245,204, 30, 68,214,217, +199,148,177,219,237,155,133,176, 20,131,185, 88,113, 41, 38,230,244,222,169,242,187, 78, 82,124, 80, 68,166, 91,179,203,235,164, + 80,201,104,134,149,173, 83, 14, 11,158,241,222, 70,229,194, 13, 16,227, 8,184,127,255, 30, 66, 8, 90, 68, 69,112,122,126,142, +205,230, 4,215,219,107,236, 22, 93,155, 20, 17,141, 40,101,214,251,171, 8, 98,204,216,108, 84,192,184,219,237,245,122, 55,182, +127,177, 81,119,237, 44,157,121,190,199,209, 99, 28, 79,176,189,222,233, 68, 5, 5, 67, 8,216,197,140, 23, 47, 95,227,250,242, + 66,225, 88,181,171, 55, 21,185, 70,216,242,138,113,134,166,245, 9, 52, 32,199, 25, 21, 79,186,212,204,212, 18,217,234,234,203, +216,234,169,128, 41,183, 67, 0,152,218,202,160,221, 25, 2, 12, 65, 39, 13, 49,149,150,182,231,153, 65,193, 99,142, 17,113,138, +102,177,173,113,177, 90, 76,133, 52,107, 96, 28, 60,188, 15,152,151,136, 82,146, 98, 97, 77,141, 79, 41,193,217, 84, 65,100,213, + 94, 84,124,215,146, 10,156, 36,248,193,194, 96,114, 71,174, 99,215,248,252, 53,239, 3,165, 88,146, 92,165,123,242, 42,186,166, +106,105,115, 22,104, 99,201,119,149,203, 97,188,140, 34, 12, 7,229, 17,128,156, 41,248, 5, 44,201, 20,253,250,124,244, 92,236, + 53, 88, 7,159, 5,239,112,193,213, 91, 3,174,118, 95, 70,184,220, 1,156,117,122,112,160,218,191,101, 57,254,134,238, 99,181, +215,214,102,115,101,169, 28,118,234, 69,165,251,185,141,119,245, 97,235, 80,253,235, 10, 54,112,205, 7,222,209, 57,173, 59, 40, + 61, 19,158,160, 93,125, 19,202, 89, 98,151,172, 39, 11,233, 5, 87,180,122,214, 33,220,141,161, 87,170, 91,159, 24, 87, 69, 96, + 57, 39, 92,103,105, 54, 60, 88,206,123,243,147,215,254,220, 78, 96, 78, 9, 47, 72,237,117, 80,167, 30,148,142,213,110, 35, 73, +102,189,145, 68,173, 33,220,141, 64, 26, 71,254, 32,243,219,162, 81, 93,192, 41, 9,182, 41, 35, 29,140,215,215,233,129,116,130, + 66,129,133, 56, 88,252,169,136, 58, 8,216,240,109,170, 66, 14, 56, 57, 25,177, 76, 91,204,169,192, 51,217,142,157, 14,198,243, +165, 91, 35,112,235,192,215,117, 10,215,137, 76,251, 76, 11,164,144,158, 90,205,199, 90, 41, 91,212,196,129,114,112,152, 59, 62, +228,200, 77,172,207,250, 32,145, 67,180,171, 35, 62,228,184, 19,110, 9,109,185, 29, 15, 91, 47, 94,234, 48,151,114,203,240,137, +110, 41,232,199,122,128, 55,137,226,156,133,228,228, 54,169, 96,188,124,249, 18,113,153,241,187,223,253, 46,254,205,223,249, 29, +124,252,225, 7,184,184,120,141,121,158,241,236,217, 39,152, 77,237,238,188,195,126,183,195,147,199, 31, 35,132, 1,193,235,206, +113,182,157,248,213,213, 22,219,235, 45,150,101, 50, 43, 85, 1, 83,176,224, 18,106,140,119,226, 53,165, 47,166, 4, 88, 74, 89, +154,102,117, 68,216,190,215,177, 1, 70,236,193,172,244, 69,235,168,105,197, 11,215,157,127, 46,122,111,140, 67,128,119, 14,211, +172,221,226, 24, 60,114, 17,176,183,180,180,250,217, 26, 82, 21, 82,218, 90,132, 72, 52, 52, 40,101, 37,133, 73, 85, 5,107,151, +157, 43, 78,180,104, 87,157,218,180,193,152,239,150, 98,198, 92,227, 89, 19,216, 59,220,189,115, 7,103,103,103,173,147,206, 37, +153,144, 42, 42,233,139, 8, 49,101,136,216,168,212, 58,179, 26, 26, 50,237,103,124,245,107, 95, 3, 17,112,125,117, 9,231,189, + 69,122,106,228,104,145,104, 5,194,124,240, 53, 72,199, 57,251, 89,220,186,247,184,204, 56, 61,217,224,252,206, 29,133,178,120, +143,179,243,115,140,227, 6, 62,184,246,247,171, 71,223,143, 67, 43, 96,206,194,156,150, 24, 49, 14,131,114, 0, 44,114, 54,248, +128,192, 90,156,156,211,188,242, 98,251,119, 34,215, 88,253, 76,250, 60, 6, 8,187,253,140,121,191,111,235, 44,125, 15, 12,150, +130, 16, 70,181,132,153,238, 0, 2,144, 83, 47,117, 74, 11,198,209,195, 57,117, 67,232, 4,200,246,211,172,246,227,148, 35,188, +231,150,124,230,109, 45, 80,245, 35,196,171,176, 43, 23, 77,240, 27,194, 0, 97,165,196,149, 18,225, 29, 97, 24, 3,166,148, 65, +101,175,171, 26,139,248, 21,209,117,147,216, 53, 58, 4, 70,225, 1,169, 20, 16,180,139, 47,133,193,148,219,100, 32, 9,144,205, + 63,239,160,123,244,148, 11, 28, 34,114, 33,144,100,179,239,234,146, 32, 9, 65, 74, 70, 16, 1,187,160,150, 51, 49,152,145,137, +221, 5,220, 8,122,234,113,207,173,115,175, 22,224,170, 3,227, 14,118,230,234,136,158,244,103,146,100,133,199, 10, 44, 59, 94, +155, 17,189,183, 28, 82, 73,112,200, 42,176,182,103, 76, 0,225,221, 49, 99,247,232, 28,101,255, 46, 56,125, 88, 35, 2, 15,162, + 45,110, 20,120,122,195, 8, 81,186,141,234, 1,174,253,240, 47,248, 66, 53, 49,109, 13, 92,129,217,208,228, 32, 84,165, 83,169, +119, 63,132, 59, 36,103, 63,187, 20,116, 89,214, 2, 21,210,117,138,243,166,124,151, 53, 66,181, 90,195,234, 14, 26, 71,234,234, +245,200,146,145,178,170,238,171, 14,128,142,232,100,178, 62,225, 77,201,190,146,240,164, 22,246,110, 63, 70, 77,124,102,254,195, +154,207,222,237,125,197,226, 26,143,195, 61,250, 34,146,115,194,206, 94,175,179,155, 68, 4, 7,246,170,117, 28, 46, 16, 14,170, +254,140, 51, 98,103,213,147,166,252, 36,136,232, 30,182, 20,179, 91,200,202,121,111,140,156, 42, 58,179,240, 24, 50,129, 73, 27, +231,154,221,112,116, 26,191, 88, 74, 23, 6, 83, 71,236, 93, 17,206, 37, 55,225,210, 58,234, 93, 83,217, 8,199,241,169, 56, 16, +212,221, 8, 44, 32,234, 64, 62, 54,143, 16, 28,173, 69,164,131,235, 31,199, 26,172,194,149, 79, 63,253, 4,196,164,106,235,227, + 2, 46,242,153,130,184,207, 98,189,215,192,155,250, 97,124,250,233, 51,188,253,206, 59,248,238,191,253,215,241,175,252,214,111, +225,227,143, 62,196,199, 31,125,132,147,147, 83,188,124,241, 10, 31,252,232, 67,176,163,166, 94, 46, 34, 72, 81, 11, 72,140,169, + 17, 34, 68,128,237,245, 86, 33, 50, 73,187,181, 33,132,182,203, 85,129,219, 10,124, 90,247,186,122, 69,122,239,108,103,110, 15, +117,134,169,229,245, 1,226,188, 71, 48,177, 88,101,155,107,198,122,178,207,218,210,174,204,239, 29, 83,212,189,179,119,235,234, + 40,229, 54, 69,137,113,245,170,215,251,162, 88,222,119,178, 98,237,189, 83,255,187,212, 4,199,210, 10,123, 41,235,239,132,253, + 51,102,175,249,237,222,196,111,222, 97,216,140, 32, 48,206,206,207,244,103,207,150,231,110,221,113,177,113,127,245, 16, 3,108, + 66, 51, 15,102,135,224, 61,152, 24,231,103,103,120,251,237, 71,248,244,211, 79, 27,251,221, 27, 8,165, 69,189,218, 33,136,121, + 45,192,149, 28,103,155, 3, 4,175,246,178,123,247,239, 33,248,160,150,177, 16,224,124,176,239, 54, 53, 85,191,247,154, 80,166, +107,134, 67,159,113,202,138, 75,221,156,158,152, 59,194,235, 68,205, 59, 16,188,238,188,205, 82,164,174,132,132,253,180,199,180, +204, 45,207,126,183,159,176,189,188, 66,140,170,183, 96,231,236, 26, 83, 95,245,249,249, 57,174,119,123,204,187, 93, 11,180,169, +238, 26,120,143, 37, 22,229,146,155,222,161,133,224,216,164,164,177,215, 13,154, 37,180, 90,240,106,214, 60, 1, 13,222,163,233, +124,197, 62, 91,229,164,151,156, 13,245, 43,200,211, 78,175, 71,131, 7,105,248, 10,224, 6,143, 84,214, 85,199, 52, 11, 40, 45, + 10,128, 17,193, 16, 28, 18, 2, 36, 70,187,255, 20, 33, 91,144,173,121, 42,109,114,204,182,254, 92, 82,182, 5,185,165,241, 9, + 32, 57,193, 59,143, 82,211, 43,237,153,235,184,106, 12, 8,108,226, 61, 1,175,132,189,178,138,149,245,126,100,203,104,173, 7, +125, 0,226, 53,173,173,194,203,192,109,223,174,181,157, 90,168, 12, 83, 86, 46, 10,233,235,186, 79,130, 71,247, 10,158, 93,191, +141,240,252, 2,144, 75,128,134, 55,120,108,222, 12,155,161,163, 37,187,244,154,169,219,118,234, 45, 40, 30,165,165,169, 53, 59, + 24,233,190, 19,196, 96, 42, 24,160,221,122,185,145,132,189,198,120, 22, 61,170, 35, 39,143, 37, 0, 27,110,205,113, 19,170, 81, +255,114, 77, 13, 46, 86,157,250,147, 75,133,193,244, 97, 40,117, 15, 93,113,177,181,211, 47,114,156,220, 85,199, 0, 69, 79,113, + 76,171, 55,187,198,176,178,117,222, 77, 96,167, 89,234,186,115, 89, 21,221, 43,174,116, 61,217, 1,104, 54,182,138,101, 77,185, + 32, 17, 99,180,238,165,116,172,251,234,143,103, 11,192,209, 81, 92,198, 50, 21,244,217,230,212,117,246,250,208,204, 74, 46,178, + 61,125,219,220,219,158,212,213, 43,176,251, 62,184,177,158, 13,158,101,231,152, 41,154, 98,251, 56, 40,199, 58,253,126,167,220, +239,110,143,204,250,102,183,144, 27,251,158,166, 79,232, 14,101,114, 60, 86,175,154, 13, 58, 74, 27, 2, 29,120, 47,233,240, 76, +219, 38, 41,206,187, 53,246,245, 11, 16, 94, 63,107,135,222,255,243,216, 5,137, 60,249,248, 99,252,244,183,127, 22,255,201,223, +253, 79,241,115, 63,255,243,216,111,119, 8, 97,192,233,233, 25,158, 61,125,138, 79,159,125,130,237,213, 21, 54,155, 17,217,101, +236,246,251,134, 59,173,159, 89,240, 26, 86,178,221,237, 90,184, 72, 41, 5,228,108,188, 13,105, 35,246,218,121, 19, 17,114,205, + 26,207, 85,165,110, 34,160,214, 81,106,183,236, 3, 25,197, 75, 71,130, 85,101,237,140,182, 87,133, 78, 41,102, 19,167,101,181, + 5,153,186,185,221, 75,204,205, 43,159, 13, 55,235, 44,220, 5,198,237,166,162, 15,176, 12,180, 61,118, 13, 3,169,221,157, 52, +241,146, 30, 60,168, 0,203,162,251,246, 16,188,118, 61, 6, 0,129, 33, 92,153, 21,189, 27,227,130,101, 73, 77,192,215, 52, 35, +108,222,125,195,244,170,144, 91, 37,176,203, 18,241,222,123,239,225,221,247,222,197,110,167, 57,243,131,121,199,235, 33,208, 91, +234, 90, 77,117,131, 16,156,167,150,240, 86,187,105, 7, 13,151, 25, 56,104,104,139, 49, 17,198,205, 6,195, 16,192, 32,204, 75, +108, 46, 4, 50, 82, 95,213,229, 56,230, 54, 69,241,206,161, 64,112,125,189,131,247,140,205, 48,194, 13, 1, 41, 46, 8,126,176, +251, 86, 15, 58,113, 89,144, 69,193, 68, 41, 45,198, 41,103, 92,111,119,152,166, 93,107,110,226, 82, 73,116,130, 92,128,203,203, +171, 78,180, 5,248,202, 22,176,188,139,220,210,215,156,185, 35,164,235,188, 51,188,179,148,182, 92,214, 84,187,166, 87, 65,131, +250,112,251,222, 9,211,178, 96,244,132,113,115, 2,148,128,152,247, 10, 43,130, 2,133,146,217,217,170, 23, 28, 34, 8, 38, 82, + 76, 41,194, 83,130,119, 12, 34, 7, 97,245,162,199, 66, 70,176, 51, 59, 89,157, 38, 8,131,178,254,121, 97,111,160, 36,105,145, +177,197, 96, 65, 84,165,242, 70, 21, 68,183,158,108, 28,139,170,111, 50,223,122,139,197,110, 69,158,218, 84,170,217,215, 12,125, + 11,183,166,185,145, 61,179,146, 0,174, 20,141, 29,134, 90, 19,197,233,129, 68, 10, 25, 24,167,106, 1, 8,111,185,140,139,135, + 30,203,245, 59,112,211, 22,112,229,200,194, 38,159,107, 97,147, 55, 21,249,131, 2,143,186,154,178,157, 18,149, 3,181, 29,219, +195, 67,173, 88,235,222,188,180, 29,250, 74, 26, 91,125,195,164, 37, 95, 6, 44,119,238,227,237,123, 23,120,255, 98,198, 31, 94, + 17,182, 92, 85,121,135, 41,111, 26,139,170, 59,116,234,138,185, 96,181, 85, 29, 72,166, 68, 58, 93,253, 90, 8,235, 72, 34,203, + 26,249, 73,189,229,170,117,232, 90,200, 85,245,202, 24, 28,129, 75,198, 78, 86,128,140,122, 24,215,209, 8, 19, 14, 4, 99,220, + 35,109,104, 21,252,233, 5,169, 54,174,220,193,105,164, 99,245,163, 8,132,187,112,144,162, 98, 62,103, 35, 43,116, 25,234,185, + 90, 59,172,251,174, 99,115,106, 25,192,166,192,165,188,170,251, 5, 45, 8,166, 81,231, 90, 58,147, 29,210, 44, 20, 70, 4,240, +162, 9, 73,197,118,209,199,133,178, 28,137,205, 90,199,221,173, 21,110, 67,196, 54, 39,195, 13,202, 92, 47, 70, 92,103,235,116, +235, 21, 76, 45, 92, 8,213, 79,223,167,187,245, 35, 44,185, 9,152,161,159,208,194, 86,223,223,227,143, 62,194,191,244,157,239, +224,239,252,103,127, 15, 95,255,198,183,112,117,113,141,121,217,227,250,234, 18, 47, 95,190,192,235,215,175, 81, 32,184,115,247, + 12,203, 28,177,219, 93,183,247, 27,151, 98,136, 75,135, 36, 25,243,146, 16, 77, 4, 71, 6, 8, 97,184, 70, 36,219, 79,123,237, + 74,205,250, 84,133, 94,245, 1, 51, 4,111,216, 96,125,239, 75, 76, 38, 10,114,237,147, 72, 41, 90,172, 48,224,137, 13,153,170, + 10,240,148,106, 49,211, 98, 31,188,211,113,187,237, 13,201,177, 98, 95,139,104,160,144, 61, 84,115, 86,154, 91, 24,130, 5,174, +216, 94, 50,235,142, 94,138, 38,147, 33,151,102, 87,147, 82, 9, 93,235, 88,183, 90,160, 42,203,188,148, 85, 80, 86, 85,239, 21, + 59, 92,202,154, 46,167,247,104, 57, 12,110,194, 26, 98, 92,125,247,187,221, 14, 47, 95,190,196,197,235, 11, 5,231, 12, 30,234, + 60, 83, 1,160,119,250, 57, 85,104, 79,117,201,136,232,225,208, 27,237,174,238,189, 79, 79, 71,132, 48, 96,137, 11,198, 16,176, +217,140,240,206, 27,227, 92,169,110, 97, 24,180, 72,164, 2, 55, 88,242,152,185, 0, 84,175, 80, 19,223,164,133, 14,150,148, 85, + 91, 98,202,122,116,150,169,253,180,199, 52,207,144, 84,204,231, 63,225,250,242, 26,113, 89,224, 61,195,249, 17,201,101, 76,203, + 12,239, 24,128,195, 50, 79,138, 89,245,190,206,153, 33,164,135, 22, 41, 74,162,203, 54,206,214,105, 34,105, 97,245,172,182,177, + 82,173, 91, 12,231,201,246,251,182, 66, 33,129, 3,107, 46,187,137, 55, 83,202,166,237,240, 88,162,186, 42,132, 60,242,178,135, +115,108,172,246, 2,228,168,123,126,131, 3, 45,169,160, 72, 4, 74,117,105, 48,118, 11, 65,226, 86,189,231,138,216, 68, 38,129, + 43, 89, 95, 7, 19, 92,177,195,155, 89,241, 28,161, 5,175,148, 84, 52,172,167, 98,112, 43, 57,179, 0,108,188, 16,116,171, 40, + 49,235, 89,215, 54, 52,139,242,170, 61, 35,211, 40, 41, 96, 38,155,144,147,145, 32,164,118, 58, 47, 9,228, 9,158, 60,200,145, +237,222,209, 58,120, 18, 3,253,212,123,200, 49, 98, 38,108,114,194,163,113,198,227,123,119,129,249, 62, 32, 47, 0, 10, 7,144, +207,118, 20,249, 60, 60,236,209, 40,190,223,179,215, 81,188, 23, 97,243, 35, 3,148,143, 67, 98,212,204, 95,187,118, 38,129, 19, +221,181,175,201, 99,253,142, 92,172,187, 59, 1,238,222,195,195,243,215,184,115, 81, 16,197,173,212,156,214, 36, 91,119, 47,104, +251,234, 10,149,105, 83,130,163,173,168,116,214,177, 22, 5,218,241,220, 87,107,182, 61,242,153,110, 36,130,181,253,190, 1,107, +230, 72,173,224, 50, 73, 27,233, 8,173,128,147, 99, 31,187,180,223, 95,224,172,112,151, 78,200, 80,250, 34, 70,221,159,175,129, + 56,196,144, 56,227,197, 62,227,228,252, 20,103, 94, 86, 0,132,160,195, 31,174, 1, 48,135, 54,178,110, 98,209, 68,115,221,239, +151,190,104, 74, 19, 53, 58, 94, 59, 95, 13,191,209,139,144, 93,209, 93,156,113,247,251, 3,211, 77,155,187,220,240,140,215,149, +196,155,196,105,212, 17,234,214, 43,153,218,225, 68,110,209,186,175,133, 91,142, 98,126, 75,243,141, 30,208,251,254, 5,162,216, +214,175,134,241,248,241, 71,248,233,159,249, 54,254,238,223,251, 47,240,165, 47,127, 9,187,237, 14,187,237, 53,158, 63,255, 4, +143, 63,254, 16,151,151, 87, 77,236,229,156, 71, 76, 59,245,155, 51, 99, 28, 6, 20, 95, 12,161,186,224,122,210,149,137,116,254, +223,154, 62, 38, 2,196, 56, 55, 82, 96,206,171,173,169, 30,134,134,193, 55,198, 59, 76,229, 76, 4,112, 81,162, 22, 21,128, 69, +255, 76,177,145,181,115, 30, 36,218, 57,198,168,129, 31,108, 52,173, 97, 8, 72, 69,173, 84,193,172,114,217,208,176,142,217,224, + 79, 90,164,185, 10,168,114,182,152,203,202,251, 55,117,187, 29, 16,107,104, 70, 93, 21, 57,246,141, 13, 46, 69, 3, 75, 0,157, + 44, 16,107, 34, 88,253, 44,198,113, 68, 74,185,121,169,217,248,240,213,227, 45, 68, 13,113, 74,214,129, 86,219,153,119,132,147, +147, 13,182,187, 45,230,121, 15,231,188, 69,149,154,118,196,185,230, 71,172,135,139, 33,120,181,128,217, 10,196,187,122,253,219, + 14,184,100,156,158,156,168, 51,195,188,249,196,154,191,174,233,112, 5,193, 59,203,110,215,239,140,205,154,197,118, 95,103,195, +240,138, 61,243, 8,192,180, 44, 8,185,180,116, 60,231,189, 30, 36, 88,233,120,251, 73,243,234, 29,233, 52,224,229,139,151,216, + 94, 95,171,130, 27,190,173,118,148,157, 78,200, 57, 41,146, 22,172,215,150,169,217,153, 86,112, 80, 74, 73, 25,246, 45,171,153, +214,201, 23, 17, 18, 8,146,138, 49,245, 73,145,190, 16, 45,250, 53, 59,192, 48,196,213,138, 37,214,205, 10, 5,204,243,162, 7, + 67, 31,204,249,100, 0, 43,243,142,143,193, 67,136, 49, 45, 17, 84,162,118,214, 75,134, 80, 65, 90, 50, 88, 50,146, 29, 0,215, +231,180, 78,165,234,180, 66, 58, 20, 74,197,219, 58, 14,200, 92, 0,219,113,183,112, 22, 43,224, 43,153,173,123,114, 16,183,105, + 97, 21,208, 49,213,216,214, 26, 36,166,167,226,234, 87,209,151,229,108,119,174,147, 28,242, 4,144, 87,110,139, 40,188,134,170, + 5,142, 76, 52, 87,146, 62,163,152, 65,165,181,174,120,228, 9,175, 31,120,236,174,223,134,223, 94, 2, 46, 3,228, 58,138, 28, +186,160,172,207, 1,100,201,155,154, 20,179, 39,186,186,187, 40, 58,246, 19, 89, 89,221, 48, 62,186,138,183,184,219,169,215,199, +109,239, 69,175,247,170, 7,104,139,225,217, 15,241,227, 39,130, 63, 18, 15,120,193, 32,235, 24,125,125,171,230,139,151,181,224, + 86, 59, 84,203,212,109, 74,249, 78, 94, 70,135, 37,160, 70,195,246, 73,112, 43, 25,174,207,237,174,137,107,210,237,216,245,103, + 58, 58,220,219,183,174,222, 58,103,161,110,255,127, 52,106,206,221,238, 95, 76,143, 64, 80,133,109, 66, 5, 81, 84,122, 10,140, +116, 0, 0, 32, 0, 73, 68, 65, 84, 79, 48, 16,231, 25, 39,111,125, 9,255,214,183, 78,240,163,239,253, 24,255,228,138,112,226, +169,237,171, 87, 21,252,202,112, 63,200,105, 63, 42,182,220, 77, 80,106, 62,187, 72, 61, 40,117,110, 5, 89, 17,138,161, 30, 54, +152,225,161, 34,148,138, 28, 74, 93, 92, 43,209, 26, 53,251, 38, 24, 76,169, 17,189, 29, 9,238,224,162,171,137, 81, 93,129,146, +131,221,144, 28, 98,127, 59, 81, 92,157, 14, 73, 23, 31, 72,116,204,153,255,252,177,251,103, 17,228,106, 65,127,241,252, 83,124, +235, 91, 63,131,255,252,191,252,175,240,238,187,239, 96,183,221, 67, 74,198, 71, 31,254, 24, 31,126,248, 1, 46, 47, 46,112,125, +117,173, 99, 81, 67,181, 18, 43,200,131,173, 51, 21, 0,211,188, 96,154, 38,188,253,246, 59, 56, 59, 59,133,115, 14,195,176,193, +147,167, 79,113,113,113, 1,102,214, 14,221, 68,127, 26,230, 97,120, 95,239,117, 15, 94, 96, 30,115,155,198,212, 98,234,184, 63, +218, 54,101,120, 5,202, 8,107, 23, 30, 99,198,180,159,116,220,105, 74,243, 16, 28,202, 34, 88, 82, 4, 70,237, 98,151, 57,182, + 29,179,171, 2,210,188, 34,132, 83,212, 17,168, 15,206, 8, 96, 80,244,103,187, 30,202,193, 67,183, 94, 15,138,115,173, 31, 46, +183, 3,160,247,154,235, 29,151,132,224,131,177,184,201,130, 84,188, 69,236,102, 19,251, 41,167,179,106, 59,106,164,113,177, 29, +241,224,130,145,209,212,167, 95,202, 26,251,236, 28, 55, 52,172, 24,108,198,177,179, 29,122, 93, 63,172, 66,215,156,245,112, 90, +191,175,146,245, 16,162,250,128,210,108,115,197, 70,179, 33,120,157, 98, 72, 1,231, 2,118, 27, 68,131,170,212, 49,252, 56, 14, +166,146,183,231, 94, 81,123, 91,181,252,197,152,176,159, 39, 37,176,137, 96,183, 44,120,253,242, 2,251,221, 53, 28, 3, 75,174, + 28,120, 45,166,228, 28,246,251, 25, 37, 46,192, 56,216,116, 77,236,176,163,171,195,224,149,110, 55, 71, 66, 73,185, 85,197,186, +190, 73,165,128,165, 88,212,168,172,163,247, 10, 53,178, 21, 80, 21,136,177,197,197, 6, 7,240,184,209,207, 33, 38,187,167, 83, + 43,226,235, 97, 84,107,137,144,118,211,155,160, 74,117, 95, 18,156, 31, 81,224, 33, 72, 40,177, 96,240, 12, 33,103, 56,108, 66, + 78, 73,161,101,164,163,119,110,182, 87,205, 7, 96, 75,144, 35, 16, 10,105,160, 74,201, 25,137, 4,156,201,184, 53,100, 22, 52, + 6, 87,162, 74,205,222,144, 67, 97,109, 11,122,169,218, 40,227,163, 16, 76,117, 79,234,138, 88, 97,163,107, 30, 71,133,219,212, +221, 61, 74, 6,138, 46,159,179,173, 53, 72,199,198, 72, 34, 24, 73,240,214, 38,226,195, 7,119, 81,166, 71,224,242, 68,111,250, + 46,156,165,115,172,125,246, 72,241, 22,110, 77, 79,215,240, 84, 51,150, 69, 67,223,139,141, 58,122,194,107,207,105, 47, 88,217, +232,124,227,225, 88, 79,244,122,186,143,166, 60, 36,193, 1, 2,181,238, 81, 75, 3,209, 72,227,197,163, 99, 53, 59,220, 2, 70, +233,152,236,210, 89,195,218, 67,166, 43,228,189,162,176, 47,238, 53,221,147,153,251,133,174,141,113,214, 55, 47,165, 42,223, 87, + 88, 78, 99,130, 31,140,227,117,228, 77,182,231,201,214, 81,214, 87, 81,119,165,117,140, 95, 74, 1,133, 1,195,102,163,164,181, +204, 88,135, 25, 85,144,150, 87,175,120, 59,137, 83,151,118, 42, 7, 69,205,117,112,130, 82, 53, 5,164, 99, 88,103, 7,165,108, +187, 82,103, 34,153,154,103, 12, 27,199,183, 7,162,141,102,107,105, 46, 56,220,157,203,109, 35,109,145, 3,116,172,220, 56, 65, + 18,130,243, 40,146,173,211, 61,252, 97,199, 23,114,255,119,197,246, 43,117,143,223,139,247,126, 18,176,204,155, 39,238,132,235, +171, 43,156,156,158,225,111,255,199,127, 7, 95,251,218,215,240,209, 71, 31, 34,167,132,103,207,158,226,135, 63,248, 33,166,221, + 30,243,180, 32,165, 5, 37, 23,236,118,219,118,208,216, 12, 35,156, 83, 80,202,213,245, 22,251,253,132,247,222,123, 15,223,248, +198, 55,213,199, 76,192,211,103,159, 98, 89, 34,198,205,136, 37, 46, 40,201,204, 98, 78,218, 8, 26,162, 92,237, 90,116,114,182, +228,177,224, 76, 69,124, 8, 34,210, 14, 56, 86,164, 19,134,193, 44,108,185, 0, 69,154,117,141,157, 67, 8, 42, 46,115,172,209, +158, 82,128,101, 78,200, 34, 24, 60,183,149, 13, 64, 88,155, 53,193,208,145,197,156,105,136, 96,172, 3,141, 77, 45, 53, 71,176, +179,109, 74,235,182,200, 28, 15,149,187,190, 70,230,174,241,166,196, 58, 34, 37, 2,216, 51, 36, 73,163,178,149,162, 29, 85, 50, +190,189,115, 42,230, 11, 67, 48,168,141, 52,193,158,247,190, 77, 16, 52, 21, 78, 45,124, 67, 80,152, 77, 76,201,244, 2,220,232, +122,196, 80,101,125, 17,156,223, 61, 71, 8,163,142,205, 77, 27,145, 82,182,239,144,204,147, 47, 77, 28, 23, 99,194,233,201,136, + 71,143,222,194,213,245, 22, 57,171, 31,159,136,176, 25, 2, 78, 78, 78, 84,196,149,146, 9, 13, 53,235,220,179, 78,173, 82,210, + 40,213,189,121,247,175, 46,175,177,189,188, 92, 19,210, 82, 66,140, 25, 57,171,149, 81, 76,248,229, 76, 8, 39,148,149,193, 46, +108,187,112,187,191, 29, 99, 28, 70, 44, 20, 65, 57, 2, 76,109,117,192,108, 99, 99,155,170,186,170, 61,146,149, 64, 87,239,120, + 38,192, 13,193, 84,205,217,186, 98,134, 32,131, 89,144,133, 81,114, 84, 91,170, 37,221, 37, 34,148,148,144, 83, 1,202,162,130, +200,224,113,114,122, 6, 12, 35, 82, 18,176, 95, 48,237,128,156, 23,157, 6,219, 14,157, 73,215, 65, 40,186, 34, 21,203, 93,103, +100, 56, 27,129,235,148,201, 0, 75,118, 64, 20,137,152,115,129,179,177,111,141,102, 21, 19,186,101,114, 22,199,186, 10,219,178, +232, 90,146, 81,133,110,118,221,118, 99,108, 29, 63, 27, 19,181,137,131,171, 77,121,213,255, 72,209,238,223, 35, 91,152,204,234, + 22,169, 13, 75, 17,224, 62, 23,188,188, 3, 92, 95,188, 5,190,124, 5,208,162,171, 16,194, 13,113,112,143, 53,199,109, 17, 90, +244,230,101,187, 39,178, 20, 27, 39, 8,250, 44, 88,121,236,150,220,211, 27,163, 96,227,120, 88,209, 93, 55, 93,118, 81, 84,207, + 54,233,126, 67,164,210,203, 14,189, 75,245,119,212,241,251,186,151,183,241,187,229,187,115,119,132,161,206,211, 39, 66,221, 96, +246, 80, 41,223,132, 92,159, 51,116,205, 37,183, 60,247, 84,104,221,107,116,123,249,106, 21,171, 84,187,234,119,151, 62,191,155, +234,216, 92, 58, 74, 27, 89,119,125,152, 87,158, 33,240,227,136,221,211, 63,193,127,255,163,130,243,179, 19, 60,218,168, 56, 49, + 99,181, 94,200, 58,104, 95, 63, 51,177, 3, 82, 61, 77,217,232,127,117, 96, 98,221,237,116,224,151,186,251,206, 34,154, 75,205, +116, 48,161, 16, 36, 99,207,163, 81,154,170,143,185, 5, 68, 80,237,154,203,103,230,150, 31, 23, 90,234,190,246,152,150,131,113, +252, 17,107,119,237,224,235,225,175,117,103, 55, 91,242, 47,130,127,197,231,224, 95,235,143, 45,165, 96,123,125,133,223,254,221, +239,226, 59, 63,255,115,120,250,248, 99, 60,123,250, 20,207, 62,121,134,151,207, 63,197,246,106,139,156, 84,240, 22,188, 71, 76, + 81,247,140, 49,183, 98, 43, 4, 60,124,251, 45,220,185,127, 31, 57,102, 60,122,251, 45,204,203, 12, 34,194,197,197,107, 60,121, +242,180, 41,219, 83, 76,107,209,182,189,113,201,170, 71,169, 76,254,205, 70,187,162, 37, 69,228,226,140,122,165,112,151, 16,156, +210,232, 82,110, 7,188, 58,162,173, 16, 15, 30,180,203, 72, 57, 91, 64, 10,183,137, 79, 8, 42,158,186,186,222,226,238,217, 9, +222,126,112, 15, 57,103,236,166,121,141,176, 4, 48, 45, 81,115,207,179, 41,159,177,118,116,245,255, 96,157, 74,142,217,108,102, + 42, 98,172,246, 49,101,144,163,197, 21, 43, 33,140,204, 82,182, 90,204, 74, 91,227, 48,220,232, 80,146, 90,250, 4,122, 56,241, +228,154, 61,203, 59,175, 5,196, 20,251,154, 68, 23, 81,114,198,201,233, 9,200, 66, 99, 52,111, 59, 97, 56, 81, 11, 89,142, 26, + 23, 90, 47,191,234, 89,175,218,158,211,211, 83,144,243, 40,121,182,117,128,107,138,241,156, 51, 82,156,155, 38, 65,225, 62,162, +209,161,196,200, 41,183,240,143,224, 29, 78, 78, 54,154,147, 62, 47,200, 85,240, 37,100,136, 85, 70, 78, 17, 33,120,228,171,130, +203,139, 11, 44,203,140, 28,151,102,105, 75,134,254,101, 42,128,115,152, 99,212,100, 57,171, 53, 97,112, 38,142, 4, 80, 82,187, +249,147, 37,232, 17, 19, 60, 51, 98,113,152,231, 25,204,149,170,103,186, 5, 16,200,249,166,147,232, 96,141, 38, 8, 86,117, 56, +114, 54, 14, 60, 33,167, 5, 12, 65,240, 85,253, 13,144, 56, 19,220,233, 4,196,177, 38,178, 5, 38, 20, 10,136,115,196,249, 88, + 48,108, 54, 16,246, 26,254, 98, 29,217,126, 34,228,101, 50, 94, 60,129,157, 62, 47, 7,207, 40,208, 40, 97,148, 98, 28, 17, 61, +224,178, 20, 56,167, 90, 0,239, 24, 18,156, 30, 32, 44,142,181,136, 3,178,128, 40, 25,218,215, 50, 56, 44,156,138, 60, 65,216, + 55,183,144, 52, 71, 78,133,135,149, 78,176, 91,149,242,186, 96, 78, 34,224, 4, 56,151,109,194,176,174, 64,117, 92,207, 43, 94, +182,172, 75,105,141,115, 21,120, 1, 30, 13, 17,219,123, 35,202,238, 33, 56, 63,182,176, 23, 58,196,165,203,205, 8,214,131,108, + 76,185,189,158, 75,143,137, 21, 97, 20,100, 67,155,118, 2,181, 6,141, 89, 11,168, 28, 1,238, 74,199,137, 71,183, 83,230, 46, +129, 76,228, 38,101,174,135, 34,180,204,223,126,247,108, 96,148,108, 35,107, 58,216, 35,244,175,162, 34,243, 42, 27,126, 21,201, +161, 59,241,208, 17,126,148, 58,107,160,116, 40, 24,166, 21,183, 90,128,131,221,254,161,197,186, 71,149,226,198, 33,162,134,218, + 84, 24, 10,119,194, 66,148, 2,118, 1, 15,238,232, 23,144,203, 90,208, 5,199, 99,238, 85, 73, 94,199,157, 26, 18,163, 62,250, + 12,130, 55, 72, 8,137,170,240,221, 74,219, 95, 95,135,145,163, 72, 8,169, 72,155,182, 20,161, 3, 49, 92,105,233, 64,178,102, +199,219,119, 84, 99, 26, 24, 64,166,242,153,193,103,116, 44,120,163,155,187,160, 91, 41,137,157, 58,190, 84,167, 68,143,247,253, +255,233, 63,253,103,188,223,239,241,238,151,190,140, 95,253,181,191,136,151, 47, 62,193,147,199,143,241,244,241, 99,188,124,253, + 18,219,171,107,204,251, 25, 75, 92,236, 32,152,144,178,118,108,202, 36,175, 29, 43,112,117,117,141,251, 15,239,195, 17,227,217, +179,167,216,237,118, 0, 41, 77,206, 27, 8,102, 94,230, 86,160, 91,248, 78,213, 64,152,170,138,153,177,223, 79,134, 70, 53,209, + 78,165,112, 89, 38,186,152, 70,103,244, 3, 74, 46,109, 58, 3,209,241, 56,155,154, 63, 24, 81, 77, 25, 4,132,251,247,238,227, +249,139, 23,120,249,242, 21,126,250, 27, 95,199, 79,189,251, 22,166,105,209, 3, 75, 46,112,198,226, 78,185,118,110, 53,189,140, +144, 83, 37, 31,230,131,201, 76, 77, 29,108,200,204, 14,238, 33, 88,249,254,206, 57,163, 0,214, 81,188,199,233,249, 57,246,187, +189,222,119,172,197,209,121,135, 57, 47,107,119, 15, 69,174,106, 34,222,108,191, 75,154,250,158,205,194,150, 83,193, 50,207, 24, +198,141,137, 21,181,107, 74, 89,187,114,103,135,109, 54, 64,141, 10,251,204, 90,198,220, 50,220,107,130, 27,179,142,132,107,204, +105,189, 15,153,117,117, 17,194,128, 88, 10, 94,190,248, 20,227, 48, 32, 23, 61,244,120,239,177,164, 4,231, 3,130,247, 40, 57, +193, 7,143, 49, 12,112,222, 99,191,223,195,121,143, 57,102,196, 56,227,252,244, 20,143, 47,175,177,219,238, 32, 34,152,150, 89, +149,247,163, 71,202,140,178, 68,211, 27,100, 68,179,149,141,102,145,139, 41,175, 40,235, 92,218, 66, 52, 47,121, 61,124,155, 29, +177,136, 18,233,106, 92,115, 43, 74,102,251,138, 41, 43, 12,198,180, 54,173, 75, 20,105, 25, 32,108, 7,153, 37, 11, 8, 9,193, +132,137,154,135,190, 30,182, 11,128,192,192,233,221, 19,128,189,241,252, 25,193, 51,136,157, 78,163,130,199,229, 37,163,196, 45, +152,117,125, 35, 84, 15,145, 9,140, 2,242, 14,169,232, 74,134, 76, 52,185,216, 40,222, 57, 45,236, 76,126, 21, 69, 23,129,176, + 67, 37,113,232, 84, 86,215, 86,197, 72,141, 42,204,182,231,152, 94,180,154, 50, 74,172,122, 20, 42, 13, 64, 83, 80,199, 83,202, + 56,225,108,251,124, 86,184,154,247, 2, 33, 77, 40,204, 38,218, 99, 0,226,128, 88, 60,168,100, 4, 84, 21,189,199, 61, 0,231, +119,128,203,171,183,192,175, 95, 3,101, 15,112, 56,208, 18,221, 20,254,210, 77,224,134,188, 97,141, 8,192,151,162,114,253,218, +137,234, 14, 89,251,177, 82, 69,113,180, 22,237,190, 26,246, 99,238,131, 56,213,174, 80, 31,244,170, 21,172,114, 99,122,208, 73, +250,111,188,254, 67, 95,185, 61,246, 90, 33, 23,220, 72, 25,105, 15, 71,170, 99,106, 89,197,112,135, 59,243,190, 56,247, 39,165, + 91, 60,214,109, 63, 92,214, 81, 12,250, 56, 28, 89, 9,115, 93, 35,202,173, 27, 62,234,189,165, 32,230, 26, 55,219,237,148,143, + 2,115,170, 53,132, 44, 91,184, 18,158,200,246,212, 4,209,189,189,189,198, 8,101, 14,112,139,104,229, 78,216,183,162,118, 27, + 10,214,188,237, 13, 24, 97, 7,180, 34, 53, 5, 13,107,106,150, 33,127,143,129, 7,212,237,193,111,116,197,149,210,119,220,149, + 19,221, 30,135,218, 37, 2,154, 99,239, 32,110,247, 77,104,196,207,235,210,185,187, 86, 75, 39,158,212,145,166,195, 60,205,120, +241,226, 57,198,192,248,222, 31,252, 1,174,119, 59,160,100, 3,198,164,118,132,101,203, 39, 87,161,149, 7,243,255, 71,218,187, + 62, 75,118, 92,215,157,107,103,230, 57,167,170,238,163,187,129, 70, 3, 36, 8,129, 36, 64, 82, 22, 69, 73, 36, 69,122, 28,178, + 37,121, 44,197,132,190,204,200,243, 23,225,239,154,152, 79,227,112,132, 44,143,237, 24,203,150, 37, 8, 32, 8,128,125,251,121, +223,245, 56,143,204,220,243, 97,239,204,147,231, 84,221,238, 6, 13, 5, 67, 64, 63,238,173,170, 91,149, 59,247,222,107,253, 86, + 68,223,201,193,239,175,111,176,221, 74,116,236,102,189, 67,221, 84, 90, 84,101,212, 42,251,111, 40, 5, 79, 95,155, 4,118,177, + 18, 40,210, 15,163, 90, 62,237,212,211,165,166,174,171,172,203,128,113, 42,140,147,241, 56, 5, 41,250,117,237, 50, 82,181,105, +234, 44,134, 75,180,180, 97, 24,176,104,106,252,201,191,248,231,248,193, 71, 31,225,252,242, 18, 79,159, 62, 69,136,140,182, 29, +228, 98,207, 49,239,158,147, 95,220, 89,167,163,238, 46,139, 55, 83,156,167, 32, 65, 71,116,166,215, 16,144,242,181, 31,187,113, +192,146, 85, 15,189, 40,227,125,229, 48,116,130, 84, 13, 49,192,194, 41,194,118,208,200,221,152, 17,199,139,133,136,235, 54,155, + 22,214, 18,108, 83, 43, 27,222, 2, 86,105,144, 42, 2,100, 21, 14,166,231, 18, 85, 17, 77,209,228,247,163,181, 66, 71,171,154, + 90, 83,237,188,188,239, 43, 21,165, 41,183, 63, 40,114, 54, 89, 22, 93,229,242,103,118,185,104, 96, 93, 37, 26, 12, 8, 22,151, + 9,162, 27, 80,184, 79,240, 29, 56, 70, 28, 87,167,185,104,222,174,111, 49, 12, 29,182,109,143,245,237, 26, 67,215, 41,179, 93, + 88, 0, 81, 89, 17,146,151,174,151,186,236,167,158, 56, 76,245,140, 32, 37, 11,114, 70,201, 34,117,214,250, 92,156,200,198, 53, +237,207, 40,235,128,224,163, 38,128, 40, 37, 45,198,136,218,141, 9,124, 66,253,141, 5, 83, 68,145,148,214,101,221,132, 37,134, + 37,185,104, 12,253, 14,117, 99, 80,185, 5, 34,137, 48, 48,248,128,170, 6, 42, 87,231,201,223,209,106,129,174,141, 48, 34,155, +195,224, 5, 3,203, 58,118, 37,101,207, 27, 14,128, 19, 2, 97, 44, 2,129, 82,227, 25,141,142,192, 45, 16,204,200,149, 71, 62, + 39,147, 85,206,234, 30,213, 67,243,224,100, 45,201,146,125, 16, 33,130,235,202, 36,182,190,136, 65,153, 9,142, 0,227, 8,198, + 84,218, 84,233,252, 90,199,167, 73,148,104, 16, 53,142,156,179, 38,201,168, 62,173, 54,132,135, 11,194,250,193, 17,226,246, 29, +152,225,235,131,231, 96,201,250, 96,198,126,157,123,197, 63,246,135,223,125,239,147,174,109,229, 54,148,236, 98, 76, 99, 44,104, + 26, 59, 99,236, 72,203,153,191,201, 99, 83,202,136, 84, 51,187, 67,100,127,122,137,176, 41, 68, 42,227,190,121,236,162,247,187, + 99,202,123,100,100, 53, 62,101, 61, 0,131,246, 3,110, 12,237,193, 75,104,118,171, 97, 20,248,214,226, 98, 2, 28,200, 82, 47, +202,114, 44, 67,104, 48, 62, 7, 42,108, 95,134,132,140,148,115,231,211,235, 71,211,169, 6, 79, 6,237, 83,222,185,117, 21,154, +218, 10,242,144, 75,183,246,152,238,198,197,126,159,117, 39,158,223, 76, 41, 96, 39, 79, 31,184, 64,160, 82, 22, 25, 26, 18,229, +123,152,237,206,199, 11, 35,141, 5, 87, 63,215, 41,155, 25,152,238,211, 39, 59,246,130, 45, 63,221,115, 83,129,148,157,255,192, +199,159,208,248, 51,199,161,192,129, 55, 42,236,150, 12,172,145, 3, 31,166,184,104,234,235,230, 42,135,237,250, 22,207,158,189, +192,253,211,251,248,234,203, 95,235,142, 84, 58, 63, 99, 36, 55, 92,136,103, 65, 21,218, 6,195, 48,100,224, 11,235, 13,136, 35, +231, 75, 64,234, 38, 37,234, 50, 42,115,129, 51, 85, 45,105, 38,100,228, 46,170,240,160,145,167,105,207,174,226, 96,209, 61, 24, + 73,164, 3,179,100,122,171,213, 40,117,244,214,166, 93, 60,103, 12,171,129,201, 74,253,186,170,240,171, 95,253, 10,255,234, 79, +254, 21,254,250,175,255,119,124,241,229,151, 50,226,230,136,155,155,219,156,229,157, 70,219, 48,146,167, 62,143,141,140, 49, 10, +179, 59, 49, 24, 72, 60,237,140, 40, 93, 91, 74, 2, 36, 82, 95,178, 17, 80,140, 45,213,237, 12, 87, 85, 56, 58, 58,210,191, 43, +123,243,244, 24, 42,231,178,158,130,145,148,216,156, 21,242, 62,120, 52,117,141,202, 85,226, 10, 72,169,104,214, 73,247,166, 32, + 21,147,132, 85,165,152, 75, 63,159,105,111, 30,252,128,227,227, 99,156,222, 59,213,142, 60,249,150, 21,173, 28,130,218,189, 68, +232,103,173,203, 5, 83, 72,108,146,109,190, 90, 52, 32,227,208,105, 72, 77, 85, 59,221,253,235,251, 38, 74, 70,122, 93, 9, 38, +117,183,221,224,234,122,131,167, 79,159,161,221,137,139, 34, 40,154, 53,117,212,233,163,225,245, 49,144,145,245, 65, 82,236,139, +195, 64, 21,249, 24, 47,137,163,168,148, 51,210, 86,136,119, 38,103,210,115,129,138,141,202, 95,231,148, 91, 15,134, 51, 6,182, +114,226,189,214, 76,246,160,217,230,153,109,162, 56, 94, 80,154,236,136,130,253,164,142, 56,185,127, 15, 29, 55,136,125,135,202, + 2,182,170,242, 36,137, 20,235, 26, 67, 98,168,107,108, 43,196,122,105,173,203,241,177,164,103,132,201,162, 75,210,207,143,236, + 61,211,228, 4,100,245,242,167, 58, 21, 81,159,202,251,159,100,221,131,108, 5, 77, 46, 9,185,216, 25, 99, 16,148,205,159, 66, +118, 98, 90, 69,166, 26,165, 83,158,252, 53,146,122,158,145,145,185,105,124, 63,230, 79,232,247, 49, 0, 91,139, 8,139, 6,140, +173,137,104,119, 11,152,238, 6, 64, 55,138, 73,239, 58,208,210, 13,230, 53,231, 95,211, 52,176, 63,248,238,123,159,180,237, 14, +236, 73, 11,123, 1, 90,209, 3, 53,143,224,179, 88, 64, 95,184, 73, 30,186,238, 20, 70, 41,220, 72,130, 43, 70,225, 84,142,206, + 11, 38,252, 94, 62, 13, 77, 11,111,238,170,243, 88,153, 38,153,187, 37, 0,133,202, 11,201, 33,144, 40, 77, 73,101, 9,198, 63, +190,126, 69,187,157, 68,100, 52, 41, 53,211, 14, 53, 97, 88, 13,141,226,193,189,224, 22,202,145,152,124, 32,137,103,156, 8, 20, +240, 83, 6, 76,181,192,170,113,240,125, 7,159,237,109,243, 32, 23, 20, 2,186,148,237, 94, 78, 85,166, 1, 49, 57, 20,128, 71, +127, 35,103,213, 60, 79,166, 19,204, 37,156,232,110, 33,102,105,151, 57, 36, 79, 39,154,129,100,202, 41,207, 36, 80,102,186, 63, +103,126, 61,109,233,117, 69,221, 24, 41,142, 76, 34,190,225,180, 50, 41,172,112, 77,211,224, 31,255,225, 31,112,124,114,138,143, +190,247,125,156, 61, 62, 83, 49,149, 65,215,117, 34,178, 82,225,154,120,164, 3, 56,176,142,114, 99, 78,255, 74, 94,108,155, 14, +221,156,123, 29,114, 65, 41,133,110, 41, 53, 75,166, 50, 35,123, 91, 1,106,185,155,141, 49,162,109,123, 56,165, 6, 25, 99,208, + 52, 77, 30,215,215,149,197,162,174, 4,212,162,106,246, 20, 47,185, 92, 44,176, 92, 54,120,249,226, 28,255,244,217,103,112, 85, +141, 63,254,249,207,113,121,125,161,113,170, 59,137,133, 85,248, 72, 34,200, 25,152, 12,169, 73,190,113,235, 42,109,161, 56,227, + 95,131,238,157,163, 30, 30, 73,160,151,172, 68,198,136,103,222,168, 55, 93,152,239,162,210, 95,174,150, 99, 38, 59,198,142,216, + 85,110,180,249,233,196,160,174, 42,241, 63,235, 97,107,149,178,214, 15, 3, 42,107,208, 52,245, 4,117,108,244,146,149,136,107, +164,171,139,180,142, 72, 23, 75,107, 8, 15,223,126, 27,117,179, 64,140, 34,222, 19, 65,115,200, 49,174,172, 36, 68, 42, 46, 43, +130,189,213,164, 60, 34, 88, 87, 97,232, 7, 77,184, 3,154,186,129,113, 34,120, 19,145,154, 94,230,140,193,243,231,231,120,254, +236, 57,174,174,175,177,190,190, 65,223,137,189,177,105,106, 24, 75,234, 51, 23, 17, 96,162, 11, 10,172,199, 22, 43, 60,185,152, +164, 15, 96,186, 8, 50,199,236,203, 55, 42, 96,147,255, 89, 12,129,209,245,131, 70,251,142, 23,241, 84,248, 51, 41,148, 0,103, +133,141, 30, 21, 72,227,156,147,124,241,224,165, 64,194,102,104,139, 49, 22, 62,178,116,252,125,135, 15,222, 57,194,201,163,239, + 32,178,203,211, 14,107,141,210,249, 40, 39,165,245, 62, 72, 4,108, 24, 80, 81,204,191, 15,142,153, 27,159,216, 26,182, 16,249, +149, 82, 42, 9,135, 50,234, 83, 71,182,170, 65, 5,115, 86,159,144,184,239, 69,108,152, 56,237, 70,133,111, 33, 93, 42,146,219, +129, 1, 31,197, 19,207, 28,132,127,194, 34,130,230, 64,176,144,207,106, 76, 57,245,197,218,212, 32,157, 55, 26, 61, 46,153,188, + 10,204, 33, 84,209,131,108,196, 77,172,193,187, 8, 10,215, 99,209, 62,136,183, 46,218,161,215,104,197,234,166,129,253,225,119, +191,253,201,110,183,131,151,231, 50, 98, 50,117, 63,109, 10,177,220,216,189,206,169,219, 5, 72,166, 40,154,243, 83,150, 38,118, +182, 50, 16,133, 11,198, 4,141,251,105,154, 49,187, 73, 4, 24,181,166,175, 49,211,228,113, 77,187,242,114,220,122,224, 1,209, +124, 23, 65, 7, 95,175, 49, 45, 46,229, 18,149, 83, 12, 20,244,170,116,147,164, 61,214,184,209,145, 78, 44, 16,168, 19,238,252, +140,153, 86,254,252, 98, 24,208,245, 62, 63,206, 4,142, 65, 25,157, 90, 16,161, 18, 34,177,188,160,196, 82, 26,166,191,105,204, +228, 59, 78, 49,182,169,147,209, 53, 1, 48,141, 64,159,170,226,229, 22, 92,134,210,150,209, 60, 37,220,157,246,124, 12,211,139, +199, 52,189,128,114,225, 32,250,102, 5,125, 18,159,154,133, 80,105, 76,153, 68, 55,251,120,166, 24, 60,142, 78, 78,241,251, 63, +254, 49,214,183,215,168,106, 39,234,228,221, 46,127, 85,163,220,125,175,163,226, 68, 98,180,214,101, 94,122,122, 61,141, 25,113, +164, 41,122, 51, 93,245,198,228, 49,206, 69, 90,162, 38,245,242,165, 5,201, 90, 11,231, 42,244,126,200,170,109,142, 81,161, 40, +210,161,213,206, 98,181, 88, 72, 17, 36, 30,149,238,214,226,104,181, 66, 8, 1, 95,254,250, 75,124,245,245,111,224,156,195,175, +127,253, 5, 62,254,248, 99,124,252,241, 71,120,250,244,153, 38,153, 1,215, 55,183, 0, 51,134,190, 47,132, 98,162, 52,238,135, +160,194, 62, 30,109, 69,106, 93,243, 33,228,247, 50,145,136,184, 72,253,207,206, 85,112,213, 24,129,105,173,174, 7,212,137,113, +239,228, 84,119,172,102,244,179, 83, 17,202,146, 81,148, 66, 45, 19, 22, 60,114, 81,103,176,210,214,204,104,169, 76,142, 16, 91, +174, 57,180, 40,149,232,227,200,136, 28,240,224,222, 41,222,122,235,237,236,103,135,218, 81, 57, 57, 87, 64,104,154, 74, 81,187, + 50, 45,177,206,229,207,125,250,122,125, 63, 8,187,194, 73,232, 78,136, 17,109,215,102, 10, 98,229, 28,152, 8,207, 95, 92,224, +217,147,199,146,232,215,118,216,181, 59,133,218, 36,182,188,138,115,131, 62, 55,157,106,144, 17,113, 86, 93, 87,178,110,208,247, +116, 90, 47,164, 28,120,147,113,173, 50, 1,138, 24,121, 16,253, 32,100, 65,171,174, 8,161,252,197, 12,232,129,126,222,140,146, +224,146, 24, 55, 69,241,198, 40, 23, 87,249,218,138, 31,214, 49,171, 96, 96, 35,190,125,194,248,206,247,191,143,117, 56, 70,232, +182,104, 42, 3,227,170,252, 49, 79,159, 11,144,193, 16, 34,124,223,195, 65,210,210,146,133, 53,198,152, 79, 27, 82, 33,114,178, +246,153,164,229,144,226,164,151,231, 8,107,100, 13, 51,198,170, 22,172,172, 68, 3,213, 46,158, 73, 80,183, 28, 2,162,126, 14, + 29,123,212, 21,193, 85, 53, 34, 89, 16, 71,229,188, 75,113,246, 81, 86, 77,172, 14, 1,171,128,249, 17,142,165, 54,233, 68, 97, + 76, 83,110, 50,185,104,147, 98,111, 29, 9,144,173,107,107,152,110, 13, 80, 11,164,168,216, 61,245, 27, 21,103,226,171,233,152, +117,211,192,254,224,195,111,127,178,109,187,140,100, 77,251,228, 28,146,162,221,244, 4, 6, 67, 99,161, 52, 7, 40,113, 80, 66, +220, 40,254, 42,139, 44,205,132, 96, 4, 62,192,192, 37,226,252, 1,203, 4, 59, 50,217,110, 23,138,174, 63,210, 56,142, 79,104, +219,146, 94,134,217, 1, 63,223, 89,148,207,141,137,246,109, 5, 49,102,193,222,161,162, 61,118,158, 52, 25,171,199,226,235, 65, + 69,136,169, 27,159, 20,170,194,170, 54,238, 8,184,136, 17,229,105,108,109, 18,183,204, 46, 22,102, 6,169, 65, 17,163,154, 51, +210,105, 10,160, 65,225, 47, 79,135, 84,178, 7, 38,111,110,178,135, 16, 29,186, 73,210, 4, 52,103, 32,161, 31,163,235,191, 8, +113,201, 79,215,236, 91, 53,230,230,123,154,184,242,127,107, 17, 92, 94,255, 68,202,227,194,148, 30,150, 53,121,250,119,234,186, +198,179,103,207,241,224,237,183,240,232,157,135,184,188,188, 66,223, 15,185,200,164,215, 63, 68,225,167,203,207, 51,141,103, 25, + 41,220, 41, 97, 84,173,118,114, 2, 94, 25,237, 94, 2, 20, 75,249,224, 81,167, 37,200,214,189,244,103,141,218, 46,125,140,136, + 33, 96,177,168,115, 7,182,108, 22, 0, 8,203,166,193,201,209, 42, 43,206,147,250,124,209, 44,176, 90, 44,241,228,201, 83,124, +250,233, 63,225,252,252, 2, 85, 37, 89,229,183,183,183,136, 96,252,236,167, 63,197,197,229, 5,150,139, 5,124, 8,216,110, 55, + 98,249, 34,131,170,150,212,173,160, 42,239, 16, 56,171,193,211, 4, 35, 70, 85,168, 71, 30,179, 10,204, 8, 34, 50,214,161,170, +180, 24, 26,147,197, 89,204, 64,219,118,168,235, 6, 39,167,167,154, 55, 79,168,106, 89, 86,249,193,143,222,106, 37,215, 25, 99, + 51,186,149, 11, 78,127, 10,117,241, 33,228,130, 81, 57,245,144,235,165, 40,132, 0,103,157,118,214,163, 68, 55, 4,143,163, 69, +131,119, 30,189, 11,167,124,119,176,236,194,229,241, 84,185,192, 49, 51,200,136, 56, 14,196, 99,194, 28, 71, 52, 77,131, 33, 4, + 56, 67,162,190,215, 11, 4,171,136, 85,148,240, 14,117,211,224,226,106,141,167, 79,206,228,178,222, 13,216,110,182, 18, 25, 12, +228,139,192,174,109,213,211,110,199,144, 30, 61,145,132,159,239,114,166,124,140, 44, 80, 29, 45,232,210, 8, 72, 34,156,161, 17, + 1,156,254,172,172, 61, 68,179, 96,236, 72,189, 35, 45,122, 34, 88,164,113, 10,163, 34, 53,235,180, 19,207,194, 65,217, 72, 27, +107, 49, 4,128,195,128, 0,131, 69,232,241,131,239, 61,130,185,255, 59,224, 48,192, 89,163,143,207,141,218, 28,197,188,230,168, + 94, 93,101, 64,149,255, 33,217,231,242,244, 65,206,187,236, 43, 39,100,247, 4,107,202, 90,210,254, 24, 75, 0,217,113, 66,152, + 47, 0, 82, 88, 83,188,179, 64, 16, 89,199,229, 50,173,113,214,128, 92, 5, 34,167,150, 58,155, 67,147,210,202, 85,208,178,137, + 62,202, 57, 56,136, 53,236,101, 68,196,218,108,129,131,254,252,146, 88, 59,128,224, 36, 56, 5, 55,112,192,142, 65,225,102,175, + 91,159, 29,155,175, 60,231,120, 50,126,255,232,253, 79, 98,191, 3, 5,198, 16, 69,251, 16,139, 93, 51, 83, 42,171, 69,131,155, + 9,107,200, 15, 50,168,173, 45,145,215, 66,138, 73,197,200,247,166,130,110,206,227,145,127,248,232, 38,236,237,181, 13, 24,158, + 89, 84,136,115, 85, 58, 70,165, 54, 97,196, 54, 78,109,249, 56,176, 43,159,142,233,231,251,247,108, 3,114,137,135, 62, 21, 0, +210, 29, 42,175, 50,223, 60, 70,121,204,245,234, 8, 75, 39,183,111,214,152, 88,162,162,178,104, 7, 45,216,202, 26,149,179,224, + 16, 38,187,237, 67,223,211,204, 47, 43,119,220,226,178, 11, 1,211,120, 85, 20, 0,159, 84, 80, 99, 12,104,150,199,120,112,239, + 24, 93,183,203, 42,232,201, 37,166,176,254,161,200,107, 79,157,250, 4,197, 88, 78,142,104,140, 63,228,189,185, 8, 21, 59,239, +153,149,227, 27, 97,226,120, 70,140,159, 78, 35,242,106,181,120,222,198, 24,236,182, 91,180,125,143,143, 62,250, 33,206, 95,190, +148,240, 19, 43, 59, 71, 81, 16, 71, 57,216, 66,208,116,180, 49,133, 76, 26, 9,233,148,196, 70,166, 64, 26,197,130, 74,113, 25, +125,214, 41,184, 37,195, 95,244,235,153, 12,244, 49,186,203,149, 61,179,236,230, 61,150,139, 26,239,188,253, 16,117,213,224,248, +248, 72,139,153,193,241,241, 9, 42,215, 32,132,128,151,231, 23,248,226,139, 95,225,235,223,252, 6,204,140,166,105,242,207,175, +105, 26,124,245,229, 87,248,248,227,143,241,253,239,127, 15,231, 23, 23,216,108, 91,236,118, 59,132, 65, 20,205, 94,189,219,204, +140,174, 27,198,168, 74, 30, 69,179,105,237,144,108,177,214,164, 93, 52, 9,222,212, 90,133,194, 32, 59, 41, 4,225, 42,157,253, +162,105,176, 92,173,242,215, 0, 1,237,174, 67,223,247, 35,226,152, 8,117, 93,107,122, 91,200, 60, 0, 31, 98, 46,252,203,101, +163,143,103,204, 79, 63, 62, 57, 22,238,121,240, 57,196,196, 58, 81,223,123, 21,157,173,150, 13, 30, 61,122, 23,117,179,144,239, +153, 82,208, 52, 41,175,174, 42,177,207,153, 4,193,161, 92,208,170,170,150, 66, 93,215,242,254,240, 1,149,179, 2,156,113, 21, +130,151,238, 55,189, 6, 33, 70,220,108, 90,156,157,157,161,107, 55,136, 76,216,172,183,232,123,181,188, 57, 89, 11, 13,126,208, +203,209, 88,208, 73,185, 5,149,118,235,222,123, 41,206,214,101, 26,104,140, 80, 70,190, 70, 67,171,243, 33,229,173, 3, 80, 26, +158,201, 29,182,212,189,244,190, 78,116, 42,233,220,155,202,130,108,149, 47, 6,253, 16, 53,129, 77,102,116,206, 57, 12,145, 4, +255,170,251,237,205,182,199,135,247, 34,190,243,195, 31, 97, 27, 86, 48, 60,128,172,205, 98, 60,210,105,140,213,130,217,123, 15, + 63,200,103,137,181, 51,103, 0,150, 99,158,178,100, 93,142,186, 17,210, 68,216, 41,184, 38, 97,141, 83, 1, 54, 36, 96,105,147, +132,116,101,195,165,130, 55, 41,230, 58, 73,211,169,198, 88,244,141,138,221, 36,202, 59,120,192,178,207,188,127,102,171, 58,130, +168,162, 87,210,177,167,153, 64,210,114,104, 23,153,188, 71, 43,211, 82, 12,128,218, 0, 27,107,208,181, 13, 76,119, 11,160,149, + 11,201, 1,198,251,152,247, 78,119,175,221,115,167,254,189,247, 62,105,119, 59,120, 15,248, 72, 89, 29, 93,104,193, 11, 36,169, +116,197, 17, 81,163, 88,105, 34,236,154, 8,165,114,193, 54,217, 62,149, 70,182,135,250,169,233, 80,158,198,203, 3, 21, 72,216, + 50, 0, 4,227, 52,130,138,107, 66,218,235,154, 98, 60, 61,191,132,148, 99,110,194, 24, 58, 79,134,166, 65, 39,204,136,118,137, +247,191,251, 22,190,119, 60,224,242,218,163,213,219,183,201,249,233, 99, 54,188,220, 42,121, 82,244,152,185, 32,213,105, 14,242, +172,240,150, 24,219,220,157, 42,125, 45,127,176,245,169, 24,152, 60, 11, 39, 20,130, 55,236,231,190, 83,145, 13,190,135, 99,161, + 98, 84, 95,216,248,178, 0,145, 25,182,106,208, 52, 53,186,221,174, 48,229,205,220, 0,196,147, 4,191, 50,201,109,122, 17, 68, +238, 56,236,228, 79,207,102, 52,140,226,146,194,248,166,141, 58,239, 65, 28,238, 96, 52,148,118,186, 66, 8,218,212, 53,174,175, +174, 64,182,194,189,147,227,124,216, 39, 8, 9,169,138, 56, 29, 2, 50,118,116,217,255,156, 94, 71,159,232, 99,250, 90, 52,218, + 37, 55, 77,147,119,202,101,119, 73,165, 16, 46, 65,140,116,204, 89, 87,149,216,188,218, 30,203,229, 18, 31,124,251, 3, 28, 47, + 79, 80,213, 53,150,203,165,134,162, 4, 92, 94, 93,225,241,227,199,248,250,241,215, 56, 59, 59,195,110,183,195, 98,177,152, 28, +144,105,127,122,113,113,129,227,147, 19,252,242,151,191,196,147,167, 79,229, 61, 24, 36,254, 51,112,200, 20,192,228,165,119,137, +208,166,147,130,168,136,100,214, 36,173,172, 10, 79,187,102,229,174,103, 32,141, 94,250,162, 62,103,107, 13, 22,141, 92, 74,172, +218,220,218,110,192,110,187,131, 31,124, 86,175,167,241,101,223, 15, 69,222,188,201,147, 9,142, 17, 15, 31, 62,196,163,119,223, +197,110,187,205,239, 95,185,224, 84,232,218, 86, 46, 80,172, 72, 82, 18, 65,222,209,209, 10, 15, 31, 62,132,117,181, 10,245, 56, + 95, 98,136,228,130, 69,186, 47, 79, 23,133,148, 23,146,198,248,201,125, 96,140, 81, 68,109,174, 66, 57, 68,197,135, 40, 9,139, + 12,156, 61,121,134,245,205,149,184, 28,218, 94, 47,203, 17,222,139, 90, 62, 40,175,222, 40,191,159,195, 56, 74,119,206,230,105, + 69,240, 1,181,115,112,117,157,133, 93,145, 49,134,236, 24, 41,160,145, 89,193, 58, 17,141,115,178,211, 13, 1,149, 53,128, 17, +205,194, 92,228,154,208,176,129, 9, 62, 12,168, 45, 1,174, 66,223,247, 32,246, 34, 62, 83, 76,170, 73,226,104, 98,144,117,168, + 67,143, 63,252,225,123, 56,254,224,199, 8, 65,184,239, 60,244, 42,118, 29, 31, 19, 88, 68,120, 32, 73,140,244,253, 0, 40,108, + 11,154, 68,104,141, 92, 10, 73,145,189, 86,201,121, 70,133,151, 92,122,143,244,172, 77,151,206,160, 8, 87,185, 67,216,252,253, +179, 93, 58, 71,134,143, 66,225,128,169,160, 55, 29, 61,145, 8,186, 80, 87,251,164,198,224,106,167,101, 68,137,171,157,122,194, + 37,171,160,147, 12, 98, 52,146,241, 94,128,111, 72,249, 44,142, 25, 48, 17,183,108,193, 91,200,110, 61,233, 1,104,127, 35, 73, + 51, 33,246,161,195,177,110, 26,216,239,190,255,238, 39,219, 93,151,237, 67, 83, 97, 85, 97,101, 43,160,176, 52,217,217, 23,204, +245,226,247, 9, 73, 13, 46, 48, 25, 46,163, 53, 11, 34, 61,151, 93,241,100, 63,191,103,154,154,110,228, 39, 62, 88, 76,216,238, + 57, 42,117, 50, 1,160,201,250,182, 52,247, 27,140,167, 58,207, 66,102, 37, 91,208,227,226,182,199,214,235, 27, 11,211,194, 47, + 2, 28,228, 75,130,153, 96,116,139,175, 23, 67,206, 74, 38, 58,208, 90, 23, 17,128,164,225, 22, 92, 20,244, 88, 20, 35,115, 80, + 0, 64, 26, 85, 40,214,146,228, 58,160, 73, 90,218,212, 54, 88,190, 22, 92,136,213,140, 49, 8,125,135,245,102, 35,207,153,230, +171,137, 84,132, 41, 63, 46, 83,248,227, 71,142, 57,101, 97, 26, 32,120,218,149,115, 66, 36,227,169,224, 37, 77, 29, 18,196,232, +155, 55,231,252,141, 27,249,249,143,129,140,193,208,247,120,241,242, 5,254,236, 95,255, 57, 40, 6, 60,127,121,142,229,162, 17, +166,249,224, 39, 63, 39,171,177,160, 81, 59, 10,103, 43,233,148, 98,212,145,107, 45, 7,190, 94,206,250,126,144,113,177, 15,197, +103, 72,226, 44, 75,117,118,121,169, 78,156,241,163,163, 37,190,245,206, 35,244,221,128, 23,231, 47,112,113,117,129,199,143,127, +131,199,143,207,240,245,111,190,198,151,191,254, 53, 94,158,191, 68,223,139,194,186,170,220,157,119,162,170,170,112,246,228, 9, +254,217,239,254, 46, 30, 61,122,132,237,118,167,132,179, 46, 11,222, 98, 12, 32,155, 21, 39,153,195,158,132,191, 73, 93,206, 96, + 4,175,158,113,205, 15, 79, 48, 28,232, 1,205,202, 99, 72, 25,229,181,142,182,151,203, 21, 92, 37, 2,179,190,247,232,135, 62, +159, 87,181, 19,150,121,219,182, 50,253, 83, 12,107, 82,113,203,215,169,209,182, 45,222,123,247, 17,222,126,231, 33,182,155, 45, +188,218,246,170,170, 70,215,247, 66,161, 51,170,136,215,131,247,193,253, 7,104,154, 5,188,226, 72,211,167,122,212,112, 40, 40, + 71,149,218,204, 18,182,225,156,193,178, 89,160,170,107, 21, 57,134,188,254, 10, 44, 91,213, 16, 82,238,123, 58,123, 13, 94,188, +188,192,237,245, 69, 70,243,238,118,180,230,206, 30, 0, 0, 32, 0, 73, 68, 65, 84, 91,116,125, 39, 2, 67, 93, 57, 24,221,215, + 15, 94,187, 98, 5,248, 72,113, 83,123,163,226,110, 89,119,224,206, 90,120,213,108, 4, 93, 79,164,194,153, 44,134,206, 24, 56, +221,105,231,200,213, 20,154,197,227, 41, 89,142,199, 89, 85,229, 1,164, 98, 49,104,212,168,236,150, 17,101,165, 17,137,224, 7, +143,221,192,248,254,169,199,239,255,241, 31,226, 50,190,139,184,187,202,130, 73,161, 0, 90, 52,181, 3,155, 90,232,118,193,139, + 19, 2,132, 62, 50,250,174, 3,216,103,113,101,140,177,176, 5,171,248, 77,227, 76, 67,148, 92,116,167,130, 55, 48, 10,171,174, + 76, 15,160,140,147, 4,119, 74,157,246, 56,193,165,189,220,137,212,129,167, 38,208, 26,100,155, 27,148, 49,159, 25,250,100, 18, +228, 92,215, 77,186,215, 71, 66,242,106,140, 43,243, 56, 53, 32,154,226,180, 97,176, 32,198,174, 98,236,252, 10,118,183, 3,176, + 41,214, 7, 51, 77, 89,174,176,179,110,105, 94,212, 63,254,240,189, 79,252, 78,109, 57, 17, 25, 5,155,159, 2,149, 35,114,202, +225, 43, 37,124,102,202, 61,195,164,179,231, 98,177, 57, 1,180,240,254,152,122,238,253,158, 23, 60,115, 80,232, 70, 19, 33,222, + 92, 15,199, 84,142,129,105,236,238, 11,173,192, 33,101, 95,242,155, 19, 7,236,182, 29,122, 79,147,160,137,169,251,106,220,227, +147,138,169,202, 43,133,153,136,200,166, 99,103,154, 93, 98, 70,145,156, 16,161,132,229,206, 88, 53, 13,222,105,128,245,118, 64, + 79, 22,149, 98,248, 74, 97, 98,238,108,116,142,111,211,184,176, 88, 51,240,196, 35, 78,123, 58,181,209,159, 78,147, 24, 81, 20, +130,160,148,126, 84,174, 55, 50,158,150,202,233,205, 56, 63, 73, 31,154,123,171, 26,141, 51, 88,247,195,196,250,145, 57, 5, 69, +186,219, 92, 72,255, 63, 83,196,239,218, 71,209,252,146, 2,224,118,125,139, 95,252,243,255, 5,127,253,111,255, 79, 12,125,139, +203,243,115, 21, 46, 69, 25, 23, 70,197,240,216, 36,123, 35, 13,182, 25,253, 14,199,203,149, 16,197,124, 64, 93, 47,240,193,239, +252, 14,214,235, 13, 54,235,141,116,229,160, 76, 67, 19, 44,178,116, 32, 94,173, 98,229,244, 43,132,128,197, 98,129,190,107,241, +233,167,255,128,207,126,245, 25,206,206, 30,227,217,179,167,120,241,226, 5,174,148, 72,102,173,140,104,147, 39,253, 85,255, 56, +231,240,252,217, 51,156,158,158,226,103, 63,251, 25,206, 47, 46,224, 67, 64,215,118,185, 99,245, 65,198,221, 4,202,161, 38,208, +206, 89,198,234, 49,167,170,177,170,217,131, 90,254,100,114,193, 89,140,101, 20,249, 9, 0,139, 69,147,139,127, 85, 55,224, 8, + 12, 67,175, 32,149,168, 5,133, 80,213,117,166,185,205,245, 28, 49,198,236, 21, 31,134, 14, 85,229,240,214, 91,111, 35, 50,227, +242,242, 18,214, 24, 44,151, 71,104, 59, 65,176, 26, 69,214,246,253, 0, 75,132,123,247, 78, 97, 93, 53, 17,220, 85,206,161,169, +155, 17,117,171, 72, 86, 67,163, 74, 62,179, 3, 84,236, 23,131,232, 29,162,138,210,210, 37,217, 24, 89,213,112,100,172, 55, 91, + 92, 92,188,132, 31, 68,135,177,217,110,176, 89,175, 69,216,168, 4,193,152,130,125, 84,140, 69,202,179,151, 68,187,209, 14,104, + 73, 50,223,163,194,136,172,115, 74,145,243,217,251,159,198,192, 73,113, 94,185,106, 20, 6,234,206,218, 96,164, 16,166,194,103, + 53,131, 30,156,146,244, 42, 97,105,244, 61, 42, 43, 4,186, 33, 8,213,173,170, 42,101, 37, 72,154, 36,175,111,241,111,255,244, + 67,188,253,179,191,194,213,249, 22, 28, 90,117, 15, 0,150, 56,239,213,201,138, 69, 82, 86, 13, 17,125, 47,249,244,193, 75, 55, +155, 94,219,108, 89, 43, 29, 84,164, 49,234, 49,192, 17,103,107,153, 36,182, 26, 24,102,181,203,141,159,195,180, 18, 19,100,191, +104, 67, 4,176,147, 46, 49,233,194,202,227,191,147, 78,204, 97, 96, 89, 29, 46, 25,233,149,206,120, 40, 72, 73,118,233, 86,125, +190, 76,102, 79, 60,110,213, 51, 28, 52,135, 93, 64, 58, 18, 85,236, 0,212, 21,112,109, 45,226,182,134,233,175, 0, 19,114, 59, + 77,123,123,213,195,217,147,229, 78,221,128,229,141,197, 81,198, 22,101, 66,151, 41,172, 94, 54, 11, 76,228,255, 66,177,151,205, +114, 56, 30,115,217, 57,129,237,245,215,163, 90, 66,210,173,138,105,236,212, 51, 72,134, 49, 41, 7,163, 26,155, 51,225,141,247, +204,111,242,119, 75, 38, 73, 30,247, 78,110,172, 40, 40, 73, 52,107,217, 34,166,172,255, 41,181,220, 57, 43,129, 6, 24, 71,250, + 49,197,253, 65,173, 14, 69, 27, 29, 98, 1, 92,209,103,232,136, 38,132,184,220,164, 22,143,111, 14,229, 41,127,189,243, 17,205, +189, 7,248,243, 31, 62,196,135,117,196, 16,199,159,197, 56, 70, 31,109, 90,172,135, 43, 21, 76,120,230,189,193,255,228,215,169, + 16,227, 69,245,105,150, 69,219, 20,107,140, 81,111, 80, 76, 80,162,124,128,198,232,220, 56, 37, 30, 17,112,211, 14,120,185,235, +116,108,151,104,123,197,197,100, 34,192,163, 55,194,190,126,163,110,126,246,120,120,118, 19,140,202, 57,255,131, 63,250, 41, 24, + 1, 67,136,248,240,187, 31, 98,181, 92,232,206, 53,161, 77,197, 54, 36,111, 31, 17,151,133, 65,210,177,150, 77, 35, 49,172,195, + 0,103,101,207,250,224,193, 3,172,150, 75, 84,174,130, 81, 84,171,192,100, 52,212, 69,111,200, 41, 78, 23,122,227, 39, 2,234, + 90,148,238, 95,127,245, 37, 46, 46, 47,228,253, 84, 85, 50,126, 95,173,176, 90, 45, 81, 87,181, 94, 22, 14, 94,224,247, 94,131, +200,140,211,211, 83,252,237,223,254, 71, 60,121,242, 20,167, 39, 39,194, 44, 95, 46,199,132, 43,146,244, 46, 34, 66, 83,215,112, +214,162,118,149,140,135,131,138, 48,245, 61, 96,157,201, 84, 48, 82, 29,137,209,142, 35, 77,149,156,211, 49,181, 42,153, 99,136, + 8,195,160,182, 53,131,166,169,212,246, 22, 81, 87, 82,172,250,190,207, 98, 47,233, 38, 45, 66,128,174, 68, 6,116,125, 11, 87, + 85,120,250,236, 57, 94, 60,147,231, 97, 93, 5, 63,120, 84,170,186, 39,189,108,183,109, 11, 63, 12, 56, 61, 61,197,114,185,202, +147,190,160,250, 8,209, 29, 72,129,181,214,228,132,185, 92,208,141,209, 57, 92,145,152,167,185,234,139, 69, 35,160,167, 68,175, +179,226,156,120,121,126,142,243,139,151,224, 24, 17, 3, 99,189,222,160,221,181,217,138, 33,218, 3, 41,188, 49, 74,199,157,184, + 7, 86,191, 14,212,105, 96, 85,232, 39, 41,117,210,189,247,195,128, 24,124,190, 92,101,138,136, 10,191, 92,186,104, 40,174, 55, +198, 40,205,130,118,254, 38, 91,196, 8,195, 16, 68,221, 93, 10,120,180,115, 77,231, 1,179,124, 6,162, 6,239,196,200,168, 12, +176, 51, 53, 62,255,242, 57,222,174, 90,156, 60,124, 23,171,229, 18,117,179,204,235, 9, 9, 5, 18,134, 64, 85, 57, 84, 85, 45, +112, 36, 87,105, 98,157, 60,198,196,242, 96,221,149, 39, 46, 0,200,194, 48,163,118,162,254,183,174, 82, 74,161,145,226, 78, 70, + 66, 94,162,226, 96,213,230,150,190,174,252,204,228, 61,227,253,128, 97,144,255,207, 33,228, 56,172,145, 40, 74, 40, 37,224,150, + 25,100,129,160,133, 61, 17,248,196,178,110, 36, 7,158, 40, 79,178, 99, 36, 61, 7, 99, 14, 1, 83,225,190,252,122,140,224, 40, +213,177, 7,227, 36, 50,190,117, 52, 32, 62, 60, 5,187,111, 1,202,241,159,186,141, 74,187,122,185,112,222, 95, 97,218,143, 62, +120,244, 73,219,246, 26,238, 62, 85,110,231, 81, 5,141, 9,100,249, 38, 88, 40,166,115, 98,217, 12, 44, 66,121,202,110,114, 55, + 59,170,202, 11, 88, 75,142,191, 27,191,222,252, 72,231,188,213,165,220,214,210,161,254,139,166,192, 26,148, 95, 51,217,206,138, +221, 59, 21,126,114, 46,176,151, 35,204,101, 28,153,152, 2, 39, 59, 23,120,165, 28,246, 44,112, 47,125,246,197,154, 32,150, 5, + 17,251, 32,154,185,186, 0,218,197,193, 15,120,186,141,120,240,238, 67,188,111, 7,156, 93,247,136,134,198, 61, 79,138, 94, 77, +136,199,226,199,109,104,188,208,164,131, 31,188,223,204,149,141,111,220, 19,150,241, 68,149,110,148, 67,205,204, 51,207, 34,239, + 91, 49,168, 24, 35,235, 3,181,233,185,143,116,211,145, 59, 95,168,245,233, 64,103, 78,133,107,225,183,233,208, 25,251,237,121, + 97,142,132, 31, 6,184,122,129, 15,191,251, 1, 46,206, 95,162,221,117, 24,186, 94, 14,127, 75,153,236,101,117, 44,235,156,168, +188, 23, 77,131,251,167,167,104,154, 5,172,115, 56, 90, 30,163,174,107, 92, 92,156,227,243,207, 63, 7, 25,139,147, 19,217,245, + 74, 7,172, 57,213,137,133, 80, 36,146,161, 32,234,221,191,127, 15, 79, 30, 63,198,197,197, 57, 22,203,101, 97,151,161,131, 43, +132, 3, 32,196,131, 63,232,186,174,241,244,217, 51,156,156,156,224,167, 63,253, 41, 46, 46, 46, 48,120,143,174,109, 51,235, 61, + 12, 62,195,113, 36,170, 84,214, 59,233,194, 40, 54,187,196,100,183,234, 4, 8,153, 15,144,130, 62,210,220, 74,132,110,234,133, +143,210,133, 47, 20,235,202, 42, 96, 18, 63,184,193,118,215, 98, 24,134, 60, 65, 52,198,168,138, 48,230, 46, 76,154, 45, 1,242, + 28, 31, 31, 97,177, 88,225,242,242, 18, 28, 2,222,126,248, 80, 64, 53,195,144, 29, 9,149,179,120,247,209, 35, 24, 87,101,208, + 13, 16, 81,171, 90, 62,120,143,202, 90,216,202,193,185, 74,133,143,178,174,144,253, 54,229, 34,156,206,143,168, 63,199,202, 90, + 44, 22, 13,250, 65,244, 13,235,245, 45,182,155, 53, 56, 68,116, 93,143,118,215, 98,232,123,244,106, 25, 20, 75,163,215,159, 59, +101,129, 42, 25, 73,235,171,170,106,252, 92, 20, 92,131,168, 41,140, 81,161, 70, 66,193,139, 89, 76,149,200,125,181, 90,210,210, +123, 43,209, 41,229, 82, 89,103,151, 69,106,206, 18,232,165,170,172,218,188, 66, 46,240, 50, 25, 16,133,191,177,138,134,101, 41, +112,141, 51,184,140, 75,252, 95,255,247,127,198,207, 79,191,192, 15,254,229, 95,225,236,197, 0, 12,235,252,253,173, 62, 39,107, + 45, 2, 8,125,239,181,176,122,112,240,242,190, 98,228,245,161,232,230, 66,102,123,152,116,214, 89, 43, 12,124,189,152, 68, 24, +201, 88,143, 33,251,204, 13, 73,250, 36, 77, 38,126, 5,176,204,200, 90,208,112, 4, 25,206,153,236,105, 21, 86,164,100,143, 19, + 91, 77,126, 11, 62,141,254, 5,211,107, 72,109,136,170, 29, 51, 73,207,101, 83, 17, 48,197, 42,155, 51, 17,211,148, 75,237, 8, +220,183, 17,155, 37, 97, 51,220,135,221,108,193,180, 6,200,225,208,230,124, 82,220,105, 90, 41,235,166,129,253,232,131,247, 62, +105,219, 46,239, 89,162, 22, 97,194,116,228,205,197,205, 96, 20,249,171,226,124, 66,148, 75,246,179,217, 13, 99,182,195,205,246, +177, 60, 6, 49, 25,106,147, 70,177,230,192,152,116,212,125, 77, 9,113,135, 11,123,153, 24, 54,238,248,137,203,206,144,112, 8, + 97, 71, 7,108,211, 76, 99, 23,105,246,198,253, 51,198, 60,149,195, 26, 73,113,195,172,152,242, 36,196,132, 50,171,120, 12, 92, + 25,181,219,100, 12, 92,232,240,213,243, 91, 60,235, 89,147,227,138,177,190,153,249,214, 81,224,124,179,247, 28,211, 60,244, 3, +167, 62,207, 94, 67,158,173, 85,120,238, 6, 79, 99,167,242, 30, 69,229, 88,157, 75, 44,157, 90, 79,202,130, 74, 69,193, 30, 65, +195, 68,251, 26,136,242,241,254,214,133,157, 15,116,178,179, 47, 81,213, 53,254,233,211, 79,113,239,254, 91,120,239,209, 59, 56, +123,252, 24, 55,183,107, 4, 31,245,112,151,241,117, 26,141, 46,151, 75, 28,173,142,112,255,222, 61, 88,227,240,252,229, 57, 46, + 46, 47,240,228,201, 25,190,254,250,107, 60,125,122,134,203,203, 75, 92,223, 92, 97,125,123,171,168,214, 21,142, 79, 78,114, 39, + 35,234, 89, 17,161, 37,159,185, 15, 30, 15, 30, 60,192,250,246, 22,191,254,226,115, 81, 63, 31, 16,152,242,236, 57,241,107, 38, + 21,229,235, 73, 68, 56, 59, 59,195, 79,254,224, 39, 56, 61,189,135,245,237, 26, 93,215, 97,187,217,101, 47,189,215,189,177, 85, + 8, 78, 8, 60, 17, 87,102,111, 52, 9,155, 93, 50,227,171,252, 62, 49, 10, 77, 17,173,132, 40,179,155,166,134, 33,139,174,239, + 85,188, 87, 41, 41, 77, 69,132, 58,238,143, 57, 52, 38, 22, 4, 74,147,213,178, 98, 79,140, 88, 45, 23,120,248,246, 59, 88, 30, +173,224,123,143,235,235, 43, 44, 22, 75, 56, 87, 97,187,221,228, 46,247,104,181,194,201,233,169,142,189, 37,216, 38,113,231,193, + 49,219,195,210,184,214, 25,131,229,114, 33,227,116,245,205,215,117,157, 47, 39, 94, 45,125,134, 8, 85,237, 64,214,225,246,118, +141,205,250, 70,113,166,194,158,111,119, 45,186,174, 67,219,181,249, 12,141, 5,236, 41, 17,243,146,222,161,174, 68,209,111,245, + 34, 33,151,168,132, 5, 22, 65, 47, 89,139,182,109, 81, 17, 64,214, 21,150, 84,228, 51, 35,164,127, 79,184,104,157, 4,165, 44, + 8, 31,164,107,148, 11, 26,101, 97, 30,116, 21, 4, 30,225, 94,134,100,199, 92,146,238,140,124, 24,112,121,189,197,217,243,115, +124,245, 63,254, 27,254,244,247, 79,193,239,255, 2, 23, 79,206,224,253,128, 48, 12,168,172, 0,134,172,147, 2,232, 67, 68, 63, + 12,232,219, 30, 28,125,158,250,164,139, 69, 30,143, 27, 41,218,150, 24,145,108,158, 4,230, 20, 63,140, 59,244,178,216,101, 27, +118, 74,164, 75, 66, 54, 26,207,103,103,132, 14,215, 71, 11,242, 30,198, 4, 89, 41, 20,159,143,200,114,137,183,196,146,127, 96, + 44, 66, 36, 56, 30, 84,115, 96, 37,179,149,226, 24, 27,110,138,138,149,225, 91, 99,225, 53,137, 65,162,154, 36, 31, 35, 22,145, +113,188, 8,184, 92, 44,224,119,247, 96,187, 11,192, 12,135,189,235,119,236, 18, 57, 89,218, 62,254,142,116,234,194, 22, 54, 89, +169,109, 15,128, 99,198,226,158,240,144,200, 29, 57, 17,100,135,139,177, 35,223,223,114,239,119, 22,188, 71, 71,155,211,228,166, +133,211, 96,127,247,125,216,155,108,102,221,252, 56,238, 55,101,193, 42,196,113,134,166,244,181, 82, 53,159, 71,209,229,136,179, + 36,168, 81, 17,186,146, 65, 39, 69, 97,167,241,135,121,104, 28, 60,119, 26, 36, 76,201,100,231, 77, 22, 21,105, 98, 86, 22,236, +113,113, 33,160,187, 15,245,164,134,167,253,215, 20,119,188,134,165, 16,113,218,220,206, 74,251, 76, 0, 66,115,121,249,188,125, +228, 41,204, 38,240, 24,172, 81,168,139,178,199, 84, 98, 55,189,142,225,254,231, 82, 93, 14, 50, 6,246, 8,116, 6, 28, 60, 30, +159, 61,193,251,239,127,128,161,107,113,115,187,206, 42,228,170,170,224,156,195,201,241, 41,238,157,222, 7, 25,131,245,122,141, + 95,125,241, 43,252,227,103,159,226, 55,143,191,198,203,151, 47,177,190, 93,163, 31,122, 85,236, 18,250,190,199,237,205, 13,174, +174, 46,113,125,125,133,205,102, 13,239, 61,154,102,129,163,163, 35,212, 85,149, 61,205, 33, 4,188,253,214, 67,196, 16,240,247, +255,237,191,138, 93, 75,193, 45,119,188,164,175, 93, 85,228,108,233,114, 7, 87,215,120,254,252, 57, 42, 87,225, 23,191,248, 99, +220,220, 92, 99,219,118, 66,249, 74,194,171,200, 25, 66,148, 14,122, 99,204, 4, 27,155, 56,240, 65,199,210, 85,218,157,234, 79, + 50, 38,233,120, 76, 99,103,171,138,104,185,188, 16, 24,139,102,153, 27,133,212, 89, 7, 31,180,139,147,199, 48, 38,196,141,151, +122,163, 81,163,247, 31, 60,192,209,209, 49, 54,219, 45,174,174,175,209, 52, 53,234,166, 65,223,181,146, 83, 31, 34,222,126,235, + 45, 84,117,163,160, 21,202,251,227, 52,133, 73,157,110, 82,239, 75,132,171,207,206,132, 74, 59,248,182,235,213, 90, 38,151,176, +197,114,137,110,240, 56,191,184, 64,183,219,138,170, 61, 4,244,131, 71,223,118,224, 24,208,123,143,161,235,100, 95,171, 22, 46, +167,162, 81,202,113,194,128,171,172,194,101, 40,175,215,146, 37, 47,249,110,200, 24,108,187, 30,190,107, 81,215, 14,108,140,116, +249, 90,192,157,142,133,131, 38,176, 37,178,161,129, 0, 95,192,162,151, 16,209,153,136, 23,173,181, 96, 45,244,178,115,183, 99, +142,125,222, 87,139, 47,220, 25, 3,227, 44,106,103,176,141, 53,158,158,189,192, 49, 95,225,179,203, 10,246,201,255,135,191,248, +139, 63,194,115,250, 62,186,203, 51, 17, 55, 18,195, 86, 14,149,181,112,117,141,129, 45,182,187, 30, 67,219, 34,248, 65, 35,168, + 35, 12,162,118,210, 35, 83, 35,241,240,145,186,221, 2, 62,147,166, 86, 57, 10,117,246, 57, 47,163,185,115, 5, 83,253,179, 64, +101,204,204,211,142, 17,161,203,106, 49, 78,118, 93, 8,101,143,245, 23, 29, 49,162,177,242, 94,228,152, 59, 6, 78, 13, 43, 75, + 82,105, 18, 25,167,233, 64,106,132,136,108, 38,183,122, 38,220, 3, 16,151, 1,151,116, 15,102, 13,144, 63,215,204,245,195,164, + 57,204,206,113, 2,161,110,106,216,239,255,206,123,159,244,125,151, 43, 89,220,235,216,104,106,153,202, 47, 38,166,171,252,162, + 32,206,121, 34, 49,117,191,137, 81, 78,243,146, 70, 25, 92, 66, 76, 51,112, 78, 25,158, 50, 21,167,149, 35,115, 58, 48,158, 40, +111, 71,115, 93, 29, 31, 16,212,101,156,239,228,210, 48,178,123,161,222,233,189, 66, 72, 83,126, 90,121, 25,224,226,208,141,152, +118,154, 57,169,171,124, 9,179, 16,113, 58, 77,200, 25,247,102,170,218,132,250,194, 99, 10, 46,160,114,130,193,121,108, 57,102, +169, 76, 87, 23, 60, 7,237,188,170, 32,100,155, 96,122,172, 60, 25,217,115,225, 9, 21,111,246,172,115,207,211, 23,154,236,118, + 99,241, 34, 81,129,127, 99,136,247,246,232,232, 8,167,199, 75,236,218, 54, 79, 89,190,105, 37,231,153,240,110, 42,173, 24,227, +118, 81, 8, 78,174,174, 46,240,242,252, 28, 15,223,121, 7,171,213, 10,141, 90,210, 22,205, 18,139,197, 10,109,215,225,203,175, +191,196, 23,191,254, 2, 95,126,245,107,156,159,159,195,251, 1, 85, 85,161,114,149,238, 16, 93,254,102, 54,239, 21, 29,134,161, +199,245,213, 37,174, 46, 47,112,117,117,137,205,118,141,200,140,197,114,129,193,139,192,104,232, 7,252,253,223,255, 29,118,187, + 29, 26,221,211,223,117, 75,161,195,176,196,189,139, 29, 31,128, 86, 84, 85,133,175,190,252, 18,223,251,222,247,240,240,157,183, +113,123,115,139,147,211, 19,236,218, 29,118,219,118, 42,197,225, 4, 37, 25,217,254,162, 45, 24, 25,226,105, 58, 99,173,145,223, + 75, 22, 32, 34,217,197,107,224,139, 85, 79,120,210,130, 84,206,201, 72, 53,141,215, 99,196,208, 15,136, 16, 59, 90, 2, 46,121, + 29, 11,167,253,103, 93, 87, 88, 52, 11,180, 93,143,155,219, 13,110,110,175, 17,125, 68, 83, 85, 56, 58, 90,161,109, 59, 12,195, +128,229,162,198,131,183,222, 82,107,149, 28,182,203,229, 2,198, 90,205,165, 39, 29,229,106, 22,189, 53, 25, 38,100,117,119, 30, + 89,210,239, 56,178,160,121, 23, 13,108, 85, 97,189,217,225,226,229, 57,118,187,141,162,108, 69,144,182, 85,239,191, 15, 94,113, +169,234, 80, 81,119,132,100, 8, 4,248,224, 37, 98,182,146, 93,177,177, 14,121,239,160, 59,253,116, 86, 88, 50,104,135,128,118, +187,133,115, 40,210,199, 88,199,236, 81, 50, 0, 34,192, 44, 74,124, 9, 96, 11,121,186, 98, 72,126,238,233,140,119, 86,168,111, +109,231, 1,237,156,141,138, 8, 99, 26, 74, 27,165,172, 89, 3,102,217, 87, 55, 77,131,103,235,136,203, 39,191, 65,197, 45,234, +163, 35,252,221,175,174,240,227,227,167,248,221,127,249,151,120,252, 50,194,244, 55, 42, 48, 52,168,107, 11,114, 53,250, 8,220, +110, 58,180,155, 53, 98,232,229,185,234, 10, 32, 42, 16, 39, 17,253, 28, 1,209,168, 25, 95, 71,231, 73,153,110,212, 93, 65,214, +192,144, 69,229,128, 64, 85,206, 79, 15, 0,140,134,221, 8,102, 86,186, 99, 67, 12, 38, 39,197, 73, 47,139,148,237,165,197, 10, +152,120, 2,255, 33, 22, 87,192, 0, 11,246, 12, 75, 30,100, 92,138,186, 43, 34,183, 49,186,192, 76,154, 24,152, 49, 1,115, 90, + 64, 16,212,206,123, 68, 17,183, 53,163,237, 78, 97,183,183, 32,218, 74,230,250, 29, 57,171, 60,171,184, 82,212, 63,120,244, 73, +183,235, 17, 2,193,207,207, 10,125,112, 86,187,112, 20,105, 93,169,139,179,197, 8,112,204, 77,199, 4, 13,202,123,244, 48, 2, +221,161, 67,102,226,189, 96, 23, 46,130,101,128,105,183, 61,245,157, 23, 32,253,194, 76,198, 52,159, 14,148,154, 1,168,223,190, +188,109, 76,247,239,156, 85,145, 52, 27, 73,207,208,178, 5,252,166,124,158,165,112, 49,149,215,136, 41,247,158,230,221,242,100, +133, 64,147,113,189, 49, 52,129, 42, 16, 97,162,122,205,136,213, 50, 52,133, 74,244,207,184,235, 63,188,175, 17,244,235, 62, 73, +117, 54,137, 56, 48, 23, 32, 46,231, 14, 52,209, 28, 48,128, 74,215, 4, 67,142,104,228,233,243,167,105, 51,190,107,183,248,238, +199,191,135, 31,125,252, 61,124,245,197,231,136, 48,121,207,246,141,148,113, 37,168,175,116, 85,206, 49,189, 52, 18,209,154,197, + 2, 23, 23, 23, 56,123,114,134,237, 86, 60,197, 12,194,245,205, 53,126,245,197,231,248,244,179, 79,113,246,228, 12,187,118, 7, +107,173,142,101,221,204, 66, 74, 88, 45,151, 96, 78,153,228, 35,187,221, 85,149,168,151,135, 1, 55, 55,215,184,188, 56,199,203, +231,207,113,126,113,142,171,139,115,124,253,245,175, 49, 12, 61,154,102,161, 54,179, 3,245,156,238,240,224,191, 18,198, 51,253, +236, 56,231,112,123,123,139,203,171,107,252,244,143,126, 10, 70,196,197,197, 21,174,174,174,115,129, 45,111,236, 82, 36, 66, 46, +234,172, 1, 50, 41, 17,142,149,166,231,156,205, 23,189,100,107, 74,244, 61, 73, 60, 83, 56,139,118,132,131,151, 76,244,190,151, +160, 28,231, 36,138, 53, 79,141,162, 20,148, 52,146,119,149,131,181, 14,139,166, 70,179, 88, 96,187,221,224,246,230, 90,124,217, + 77,141,197,162,134,177, 78,237, 98,140,119, 30, 61, 66,211, 44, 68,245, 29, 34,156, 37,212, 77,131,200, 82,196, 83,104, 78, 83, +139, 29,144, 33,221, 58,171,170,191,169, 43, 13,120,145,130, 44,159,127, 73,214, 59,127,121,142,190, 19,159,252,224,133,136,215, +118, 3,118,187, 22,155,205, 6, 93, 43, 42,124,161,151, 89, 29,163,203,197, 36, 68, 81,129, 87,214,194, 85,117,126, 79, 86,117, +149,181, 71, 80, 53,189,209,105,104,223,117,112,102,228,223, 15,131, 87, 49,171, 81,203,159,136,232, 42, 55, 10,254,132, 81, 31, + 51,229, 47,157, 25,253, 32, 59,121,137, 0, 15,250,117,144, 29, 3, 46, 77, 13,184, 8,140, 81,114,100,103, 44,206,158, 94,193, + 95,157,193, 84, 14,181, 33,172,177,196,111, 62,253, 20,255,230,143, 78,193,239,255, 9,118,231, 79,101,204,237, 25, 6, 30,206, + 89,248,104,176,222,118,216,221,222, 2,161,203,107,130,164,112, 79,246,214,228,136,177,202,133, 48,218, 62, 19,138, 96,158,204, + 52,129, 8, 45,141,203,232, 88, 73, 87,139, 57,228,199, 88, 97, 12, 68, 21, 28,178,170,208,193, 34,214, 19, 27,190,153,106,187, +210, 42, 64,250,110, 41,236, 36, 35,125, 10, 17,108,130, 8,249, 82,168, 19,132, 6,137,188, 10,136, 89,251, 65,229, 90, 86, 95, +103,210, 61,191,103,194, 42, 2,166,242,184,180, 11, 96, 83, 1,195,121, 82,254,189,150, 52,151,199,239, 31,190,175, 66,185,172, + 36,151,234, 19,114, 20, 43,246,108,104,172,217,207,115,223,114,217, 1, 71,154,118,155,148,177,173,249, 86,144, 21,226, 37,201, +141,139, 48, 24,162,185,254,111, 90, 96,112,240, 48,147,189,208,202, 24,221, 99,115,246, 74, 27,218, 31, 95,228,132,181,121,167, + 61, 43,178, 84,192,229,203,209,187, 33,236, 45,203, 71, 81, 93,122,189,104, 70, 85, 43, 58,195,244,186, 48, 50, 52, 71,185, 51, +123,129, 52,121, 39,150,119, 92,242,198,136, 60,130,112, 38,126,247, 61,101, 36,237,101,173,240, 29,197,157,247,113, 53,123,251, +109, 42, 43,203, 30, 62,103,204,134,159,112,248,213, 2, 99, 74,112, 78,202,226,158, 12,205,180,224, 88,135,237,118,141,103,207, + 94, 40,110,213,252, 86,222,181,156,207, 83,254,236,153, 95,123, 27,168,235, 10,193, 15,184,188,188,192,139,151, 47,240,236,249, + 83,156,233,142, 60,117,244, 9, 78, 50,231, 59,141,145,152, 70,242,166,231, 84,190, 98, 42,224, 84, 65, 27, 66,128,247,157, 88, +175,140,116,110, 99, 97,221,239,206,185,216,218,188,234,170, 19,239,176,239,165,255, 94, 46, 22,248,234,171,175,176, 90, 29,225, + 71,191,251,187,248,205,111,126,131,174,107,197,167, 13,133,208, 36, 49,150, 94, 30,123,239,181, 64,139,136, 46,249,163, 67,244, + 57, 25, 46,125,179,209,126, 38,227,251,170,118,176,149, 8,174,146,173, 44,132,128, 24, 34,118,187, 29,162,247,114,225, 81, 59, +155, 81, 49,218,200, 93,208, 12,244,202, 97,181, 90,230, 21,215,106,181, 68,229,244,215,136,176, 92, 72, 72,203,241,241, 49, 30, + 60,120, 27,149,106, 33, 98,100, 41,154, 44,157,115,229,170, 12, 2,114, 86,252,213,117, 37, 57,217,172, 22,189, 4,227, 49,102, +244,236,251, 16,113,115,187, 70,187,219,192,105,122,155,209, 53,197,110,187, 85,113, 92,151, 95,155, 20,161,108, 84,184, 38, 99, +127,163,231,182,157,164,167, 73,115,108,149,143, 16, 50, 69,174, 27, 2,250,110, 7,235, 52,129,204, 88,181, 92, 6, 56, 39, 42, +254, 8,194, 16, 36,106,213, 24,151,133,124,100, 93, 86,214, 39, 65, 98,134,212,104,218,157, 53,132,186,114,136,144, 40, 90,103, + 77, 14,139, 16, 74,162,142,236,107,135,231,107,198,197,217, 99, 56, 94,131,140, 48, 26, 86,141,193,103,231, 6,139,151,255, 29, +127,249,111,126,134,167,230, 35,220,188,124, 10,246, 59,201, 18, 48, 12, 15,131,237,182, 71,183,219, 33,248, 94,198,252,186,187, + 78,182, 55,155,222, 23, 76,224, 16, 36,153, 78,245, 73,206, 57, 4,205, 94,231, 48,102,199, 71, 38, 24, 30, 45,140,242, 53, 8, +100,149, 64, 23,197,190, 22,201,140, 98, 63,196,209,174,104,198, 84, 66,168, 16, 16, 19, 22, 92, 90, 79, 51,200, 18, 2,156,168, +227, 13,139, 51,162,208,100,165, 17, 63, 67,125,231, 57, 61, 14,136, 52,238,226, 83,205, 11, 0,108, 36, 28,155,128,117,195,216, +250,123,176,155, 29,192,215,210,173,191, 65,239,210, 52, 13,236,247,191,243,238, 39, 93,215,103, 43, 84,156, 65, 91, 70, 31,186, +176,220, 83,231, 28, 39, 86,248,105,208,203,216,153, 77, 59, 74, 20, 7,124,185,119,165, 73, 87, 88,198,189,242,108,164, 95,182, +220,251, 61, 38,113, 68,164, 10,182,169,241, 78,197,176,129,177,211,241,191,225, 3,157,103,121, 0,207,128, 55,115,138, 93,222, +149, 20,177, 36, 68,227, 99,202,123,122,166, 61,223, 62, 21,161, 53,153,136,158,215, 21,163, 64,206,150, 99,106, 67, 96, 63,224, +102,231, 1,107,225, 12,231,145, 99, 70, 13, 82,145,170, 87,118, 98, 51,120, 9,202,209,242, 29, 55,188,201,202, 64,213,181,116, + 64,136, 70, 7, 46, 81,147,159, 7, 79, 9,118, 84,116,255,156,184,231,179, 43, 39,179,140,210, 26, 37,100,241,108,191, 61,244, + 45,182,187,157, 38,132,189, 30, 64,179, 87, 56,203,194, 14,198,155,216,219, 75,143, 3,165,174, 90,173,108,194, 70,175,179,130, +249,206, 79,152,126, 35,233,162, 14,139,250,120,166, 83, 48,218,121,101,175,249,161, 7, 59,139, 13, 40, 87, 55,135, 42, 59,243, +158,188,113,255,103,169,168,204, 47,190,248, 2,239, 60,124,136,183, 30, 60, 64,187,219, 97,232, 7,108,183, 45,250,190,135,171, + 92, 38,167, 89, 43,123, 91,112,132,171, 4,139,218, 13, 67, 58, 89, 71,248, 16,148,144, 6,210, 48, 17,233,182,171,166,209,145, +108, 58, 60,229,128,142,201,134,169, 90, 10,175, 93,111,242,246,167, 87,205, 26,139,229,106, 33, 86,190, 20,133,201,208,130,190, +192,234,232, 8, 33, 4,156,158,156,224,189,111,189, 7,130,133,117,146, 10, 23, 52, 0,101,181, 58, 22,239,242,224, 51, 33, 46, +241, 25,100,138,224,244, 34,170, 40,213, 8,141,208,149,167, 57,248,136,155,219, 27,180,219, 53,172, 49, 24,124,128,211,142,172, +237,122,116,157, 48,220, 73,187,103, 99,109,158,100,132, 24,179, 56,204, 26, 81, 45,147,177,217, 94,103,157, 22, 44,253, 44,178, +142,189, 35, 8,187,237, 14, 96,159,199,186, 34,162, 27,221, 19,164,186,128,168,161, 43,137,249,110,140, 67,215, 15, 32, 14,185, +243,163,226,182,157, 38,116,198,169, 31, 29, 17, 62,138,101,215, 56,139,224, 25,150, 34,140,115,112,150,208,146,195,217,147, 43, +132,235, 51, 21,192,141,205,139,107, 26,252,247,207, 94,224,151,239, 94,227,253, 95,252,111,120,124,182, 70,227,175,112,239,100, +137, 88, 45,177,233, 60,182,187, 14, 67,187,131, 31,122, 85,192,143,173,132,108, 19,229, 2, 37,225, 43, 82,244,157, 33, 84,214, + 2,182,210, 4,180, 56, 70, 73,171, 13,212,232,174, 58, 87, 39, 29,169, 71,214,203,117,185,103, 87,134,125,101,160, 34, 56, 11, + 7, 47,151, 0,140, 43,193,241,223,185, 88, 41, 50, 6, 38, 80, 0, 44,121,192,184, 89,190, 8,171,103,222,142, 13, 78,126,150, + 74, 69, 84, 75, 53,145,252, 41, 79,192,146, 45,140, 11,184,178, 53,120,219,128,250, 11,192, 4,204, 72, 45,211, 72,214, 73, 81, +255,224,209, 39,237,174, 67, 8,140,160,153,242, 49, 31,218, 38,123,137, 75,194,205, 40,100,155,229,110, 17, 77, 94,204, 88,140, + 48,144, 95, 92,158, 69,102,239, 87, 25, 42, 46, 12, 76, 37, 60,150, 39, 22, 53,204,119,237, 69,241,108, 3,163, 99,134,231,241, + 7, 64,124,184, 43,157,116,226,152,138,235,120, 2,211,225, 3, 99,119,141, 93,213, 52, 35,208, 1,158, 61,237,175, 29, 40, 79, + 8,244,141, 92, 8,251, 88,247,113,113,113,138, 63,252,240, 30, 92,183,198,197,160,190,200,153,167,186, 4,218,228, 97, 1,209, + 76,193,207, 7, 20,223, 84,164,200,141, 23, 56,128,116,135, 72, 89, 28,120,151, 43, 64,172,141, 69,118, 51,232, 96,241,153,171, +237,185, 84,228,107,210, 23,145,240,208,197,115, 59, 45,204,148,138,220, 27,252, 35,127,142, 15, 22,182,132, 24, 77, 32,142,187, + 60, 95,243,169,211,196,221,144,132, 57,119,253, 37,221, 65,240,236,189,117,183, 74, 95,245, 16, 83, 15,232, 40,126,124, 13,249, +158,231, 15,148, 94,189, 71,167,253,123,193, 72,163,170,106,236,118, 45,190,252,242, 75,124,240,254, 7,104,234, 26,187,182, 85, + 54,185, 85, 50,156,230,109,199,136, 70,199,195,131,151, 14, 59,170, 56, 44,133,182,164,253,175,143,130, 75, 37,144,146,243,140, + 82,220,164, 27, 54, 70, 44,105, 41,102,148, 8,154, 41, 63,226,152,133,252, 38,127,222, 90,131,102,177,200,105,105, 9, 61, 91, +213,146, 25,223, 44, 22, 66,164, 83, 23,193,253,251, 15, 96, 84, 20,227,172, 3, 25,194, 98,177,196,182,237,112,123,115,163,151, + 40,163, 59,110,130,171,164, 99, 11, 26,252,147, 80,165,187,182,149,180, 61, 6,122,239,177, 94,175,209,238,182, 58,194,149,113, +110, 18, 57,110,119, 59,116,173, 32,111,161, 25,225,210,229, 67, 87, 46, 94, 35, 76,149,135,174,158,116,107, 72,166, 51, 44, 72, + 87, 97,155,147,134,184, 0, 93,215,129,227,144,115,229, 77, 82,176,235,215,162,194, 10,154, 73,126, 33, 98, 89,215,136, 68, 82, +212,244,107, 39,139, 24, 41,139, 35,194,104,196,174, 8,186,140,190, 6,150, 34,140,113,122, 81, 8, 88, 86, 6,213, 98,137,179, +171,128,171,179, 47, 81, 97, 7, 54,213,100,233,218, 88,198, 69, 88,226,249,231,159,226,207,126,250, 22,252,163,159, 3,183,151, + 56, 58, 94,192,187, 21,110,215, 29,174,111,214,232, 55,107, 32, 14,170,173,209,207, 40,100,154,231,125, 84, 18, 35,231, 53,162, +201,211, 14,241,221, 75,148,170, 18, 75,121,108, 2, 19,170, 53,146, 20,254, 8, 26, 35, 95,217, 40,249,109, 92, 95, 48,185, 28, +106,131,148,214,167,223, 35, 21,254,212,193,115,105,108, 38,192, 71, 3, 27, 3,140,101, 25,253, 99,220,135,102,161, 97,174, 31, + 60,198,177,114,216,251, 20,202,110,221,224,196, 68,108,235,136, 77, 56,129,217,120, 32, 92,231, 44,249, 3,101, 37,175, 34,234, +166,134,253,222, 7,143, 62,233,219, 94, 70, 17,101, 9, 80,149,183, 77,132, 31, 42, 85,227,242,164,226,164,176,210,225,216,213, +201,112, 93,173,106,148, 56,240,229, 62,124,118,216, 24,217,215,115,222,149,243,104,184,167,153,117,109,126, 29,136, 1, 67, 68, + 94, 33,100, 20, 45, 97,134, 53,153, 82,222, 48, 41,224, 80,155, 93, 74,245, 42,242,228,199,106, 51,229,178,107,145,142, 92,118, +196,251,151,133, 76, 77, 42,210,235,136, 70, 33, 33,136, 64,190, 69,188,255, 33,126,252,163,119,177, 57,251, 10, 47, 58,139,218, +154, 49,209,171,152,106, 36,127,188, 49, 52, 29, 45,211,161,241,248,190,170,170,124, 78, 49, 50, 86, 71, 39,168, 44,161,237,250, + 25,207,159,238, 24,150, 80, 86,207,209,225, 85,251,120, 11, 40,153,252,197,133,139, 53,242,115,234, 0,248, 6,171,115,237,230, +142,142,143, 17, 67,192,224,195,152,103, 63, 19, 63, 18,189,218,246, 53, 23,105,190,113,150,123,225,226, 43, 85,252,175,251, 43, + 84,236, 5, 75,220,253, 43,215, 3,244, 70,191, 52, 83,184,224, 96,199, 94, 94, 79,155,166,193,203,151,231,176,214,224,231, 63, +255, 41, 46, 47, 47,180, 75,141, 57,107,157,200,168,152, 79,148,227,217, 87,159,160, 67,106,253, 50,218,113,166, 0, 23,217,129, +219,252, 26, 53, 77,157,211, 30,211, 37,119,204,166, 31, 23, 6,148,144,171, 69,215,213, 52,141, 0,110, 44,101,241, 89,229, 44, +142,142,143, 16, 34, 33,196,128,213,106,133, 97, 16,161, 88,211, 44,242,243, 92,212, 53,186, 33,224,171,175,191,198,203, 23, 47, + 16, 57,226,228,248, 24,139,197, 82,149,252, 78, 8,122, 74,138,107,219, 14,215,215, 55,184,189,185, 22,239,180,181,232,218, 14, +219,205, 6, 49,122,184,170,206, 98, 54, 31, 2,134,193,139, 56,175,239, 69,249,173, 35,245,160, 99, 98,168, 27,192, 90, 89, 65, + 90,235,242,142, 94,229,215, 26,177,203, 69,144,136, 16,254,188, 31,114, 58,154, 33, 69,166, 66, 96, 52, 9,175,106, 72,146,253, +164, 16,201, 41,202,100,209,246,131, 52, 6,206, 76, 62, 55,162,100,119, 99,225, 84, 22, 63, 25,200, 90, 69, 33,186,206, 9,203, +223, 26,198,109,172,112,246,248, 37,248,246, 41, 76,229, 14,190,239, 86,141,197, 63, 62,139,120,176,253, 12,191,248,147,159,226, + 89,255, 8,253,246, 10,196, 30,125, 4,174,111, 91,244,235, 27,128,135, 76,126,211, 99, 21, 12, 89, 79, 16, 7,209,178,177,106, +187,108,178,220,201, 84, 33,225, 99,185,200,220, 21, 58,106,200,239,151,192,146,148,200,234,178,200,226,228,212,100, 16, 33,176, + 85,177, 30,195,179, 1,133, 0,107, 2,216, 56,245,177,203,106, 32,227,230,146,163,128, 0,107,129, 0,141,114,229,152, 83,227, +152, 24,196, 38, 43,227,141,166,196, 65,115,221,141,137,186,110,177,147,201,106, 96, 96, 1,134,173, 34, 46,109,141,176, 91,193, +180, 87,128,233,116,240,127,247,103, 92, 59,245,119, 62,233,118, 93,238,208,203,144,148, 88, 90,128, 40, 89,143,212,207,158,128, +248,116,120,223, 26, 75,131, 55,209,129,147,231, 46,219,219,190,226, 29, 69, 97,159,167,168,129,104, 95, 0, 68, 84,236,254,202, +194, 94, 16,225,138,203,196, 60,178,148, 38, 9,117,227, 42, 96,162, 0, 47,237, 97, 84, 12,220,137,166,187,242,114, 50,158,253, +147,210,165, 56,189, 13, 68,157,136, 80, 1,145, 49,174,134,217, 93,225,239, 62, 61,195, 13, 47,112,175,145, 29, 88,156,128,106, +138,113,208,126, 31, 93, 20,116, 76, 51,215, 15,164,186, 1,163,171, 97, 24, 6,244,131,159, 60,223,253,238,149, 38, 19,155,253, +113,242,254,247, 97,236,251,211,243,216, 25,179,199,122,199, 72,125, 14,160,153, 11,220,210, 65,204,147,221,243,184,214, 96,126, +179,241,251,190,168,140,222,168,160,103,245,209,155,252,157,226,254, 78,179, 75,210, 65,161, 59, 99,106, 73,164,215, 20,116,230, +189,238,252,117,151, 0,232,225,125,121,117,133, 63,253,211, 63,199,183,222,125, 7, 47, 94,188,208,128, 25,217,255,250, 16, 37, +146, 86, 31,179,213, 78, 23,234, 65, 23,117, 59,235,110, 90,148,230,146,159,158, 44, 98, 1, 85, 93,161,170, 43, 25,175,103,206, + 2, 77, 32, 33,204,200,118, 64,249,140,137, 69, 75,124,238,141,118,233,113,210, 54,200,197, 65, 58,212,163,229, 2, 33, 70,108, +183, 27,220,191,119, 15, 85, 93,195, 26,224,232,232, 24, 23,151,151,184,190,186, 4, 51,163,239,122,128,229, 18, 32, 25,226,132, +182, 27,208,238,118,184,185,185,197,213,213, 21,118,187, 13,172, 94,122,134, 97, 64,215,117,240,195,160, 99,245,100, 51, 35,244, + 93,192,237,237, 45,218,118, 7, 14, 1, 77, 35, 65, 42,125, 63,104, 83, 36, 23,243,200,140,232, 3, 22, 77,173, 48,151,152, 93, + 5,195,224,117, 82, 54, 58, 77,124,100,244,125, 47,158,108, 48,106,103, 1,178, 26,247, 43,148, 87, 0, 0, 32, 0, 73, 68, 65, + 84, 13,172, 92,115,125, 37, 82, 30, 65,130,229, 36,143,125, 90,173,129, 41, 79, 93,100,156, 46, 84,183,116,121, 74,225, 61,163, +152, 86,166,184, 6, 12,227, 44,250, 72, 56,123,177,198,250,217,215,168,173,207,251,222,249,234,203, 16,192,245, 2, 95,124,254, + 12, 63,251,118,135,251, 63,250, 23,216, 94,111, 16,201,227,166,141,184,186, 90, 35,236,110, 37,204, 37,209, 9,121,140,214, 77, + 2, 53, 38, 17, 99, 86, 70,108,113, 68, 22,129, 13, 40, 70, 84,149, 1,185, 58, 95,224,179,213, 90,211,230,140,238,203,153, 12, + 98, 0, 12,137,130, 62, 21,222,152,172,103,153,133, 47, 35,241, 73, 40,140,177,217,210, 38, 28,181, 34, 98,156,197, 67,111,156, +129,135, 19, 69, 60, 6,125,253,173, 16,251, 18,156, 70, 85,247,242,126,182,121,154, 64,100, 51,167, 37, 79,168, 35,227,152, 24, + 93,205,184,229, 99,152, 77, 4,133, 75,109,182,103,231,173, 30,245, 61, 3,236, 84,253,190,235,250,124, 26,143, 72,213, 67,254, +152,253, 29,249,100, 7, 57, 70,135,143,254,241,116,144, 22,111,144, 61,207,122, 49, 22,159,116,141,180,127,188,230,189, 55,209, + 94,151, 63, 61,192,104, 90, 59,202,156,242, 89,151,206, 68, 19, 49, 87, 42,208,210,253, 90,172,156, 65,149, 16,176, 60, 85,157, +151, 32,157,212,213,143, 1, 39,211, 34,102,201, 76, 80,171,121, 76, 78,172, 33, 48, 52, 3,136, 68, 52,150,245,182,204,121,172, +150, 10,147, 49,154,209, 91,146,226,202, 2,144, 24,200, 5,153,173, 92,149, 24,218, 95, 61,140, 31,124,158, 42, 53,247,190,248, +161,142,115,159, 47,192,243, 2,158, 46, 75,175,169,172,124,112,135,127,120,140, 93,254, 90, 18,149,149,190,121,252,150,214,246, + 87,243,218,238,178,140,205,157,240,252,106,207,124,225,173, 27,187,135,226, 52, 47,254,241, 67,159,197, 83,229,101,145,136,192, +111,248, 90,190,201, 53,195, 58,135, 23,207,159,227,157,183, 31,226,127,253,139,191,196,229,229, 57,182,219,141, 66, 96,138,140, +129,132, 89,141, 18, 74, 2, 38,116,237, 80,248,125,211,110, 60,230,124,121, 99,132,186, 81,215, 85,158,116, 1,200,185,236,114, +177,149,110,217, 41,172, 36,233, 4,131,250,176, 71,178,155,205,169,100, 18,192, 34,187,111,231, 42, 88, 98, 44,151, 43,152,170, +194,205,245, 45,250,190,195,163, 71, 15,113,114,114,140,186, 89, 98,189,222,224,230,234, 10,171,213, 2,139,197, 2,109,187,131, +177, 22,203,213, 49,174,111,214,184,186,186, 66,187,219, 98,183,219, 34, 12, 34, 22,179,149,122,239, 99,204, 3, 88, 42,186,190, +174, 27,176,217,238,208,182,219,108,163,138, 65,226, 84,141,138,220,210, 72, 63,106,232, 77,221, 44, 96,213,139, 28, 53,241, 46, + 77,111,156,149,203,127, 8,178,214,224, 48,100,203, 85,208,148, 63, 34,206,100,195, 74,215, 6,131,247,170, 13, 80,191, 59, 84, + 35, 96,172, 8, 85,131,207, 72, 95,241,166, 91,176, 62, 30, 31, 8, 28, 69,164, 25, 41,225, 78,211,133, 50, 98, 8,140,155, 93, +196,249,243,151, 48,221,133, 96, 94,147, 67,202, 89,181,252,142,239,198,133, 35, 60,221,213,232,158,124,142, 63,249,217,183, 49, + 60,248, 49,214,155, 13, 94, 92,110,113,243,242, 28,232,214,185, 51,103,214,243, 53, 68, 88, 19,197, 3, 30, 89,201,149, 98,235, +173,157, 3, 27,151,155,137,168, 31,112,103, 20,215,170,103, 85,138,203,101,189,140,144,149,139, 64, 84,193,106, 57, 20, 39,164, +247,181,142,237,245,181, 15,100, 96, 88, 30, 11, 25,151, 93, 55,153, 15,159, 50, 48, 88,254,219, 42,204, 38, 77, 54,144,128,101, +108, 70,138,125, 94,225,201,101, 65, 26, 96,147, 25, 35,233,115, 31,153,176, 0, 80,187,136,171,202,162,223,157, 32,108,111,224, +227, 6,125,116,104, 61,163,237, 25,253, 16, 17,134, 0, 51, 12, 56,225, 14,223, 62, 50,176,223,255,224,221, 79,186, 86, 44, 5, +227, 33, 51, 18,227,202, 46,144,112, 8, 10, 51, 29,193,203,131, 78,188,247,125,207, 58,207,243,198, 39, 54, 38,154, 20, 6,208, +161, 49, 33,101,107,195,204, 13,190,191, 19,159, 97, 52,121, 54, 81,176, 19, 80, 54, 29,196,228,112, 74, 40,211, 44,247,200, 73, + 8, 88,102,186,243,164, 51, 50, 84,172, 2, 84,120,227, 64,153,168,149, 96, 6, 49,133,160,164, 56,210,132, 49, 36,249,111,144, +222,168, 85, 88, 51,138,199, 28, 30, 46,107, 44,137,177,211,131, 16, 92,192,219, 14,116,205, 83, 59,225, 60, 25,239,240,180, 5, + 7,203, 83, 57,241,184,195,142,119, 96, 96, 61,197,222, 78,215, 19,165,179,224,160,171,225, 21, 69, 28,123, 69,127,170, 45,219, +179,224,189,162,178,205,181,247,223,228, 46,192, 57,102,181,120, 67,211,171,218, 98, 30,223,243,152,218,249,230, 99,247,212,197, +124,244,253,143, 96,173,193,205,237,109, 46,236,249,242,114,224,239,188,201,120,254, 78,181, 60, 51,182,219, 53,126,254,179, 63, +198,195, 71,239,194, 15, 61,182,219,173, 16,212,146, 87,185,120,225,146, 87,157,131,135, 15, 3,172,181,112,170,202, 14, 62,194, + 57,147, 64, 11,234, 79,151, 2,207,153, 1, 19,139,104, 77, 66,136, 50,106, 13, 41,140, 35,133,166,168, 50, 61, 89,178, 72, 63, + 35, 68,210, 69,131, 44,186,118,135,147,147, 35, 52,205, 2,189,166,159,133, 48,224,104,181,196,233,131,183, 48, 12, 61,234,166, +193,122,125, 11, 34, 66, 85, 87,112, 85, 37, 35,245,118,135,245,237, 26, 67,187, 69, 93, 59, 97,178,235,120,123,161,153,244,109, + 55,100, 44,169,172,119,133,243,222,238,118, 88,175,111, 21,218,131,172, 72, 71, 97,161,149,226,223, 1,204,168,235, 6, 76,146, +111, 94, 85, 21, 6,213, 37,164,139,184, 85, 31,118, 96, 73, 49, 35,112,182,163, 13,222,103, 52, 47, 77, 26, 28,210, 0, 19, 81, +180, 15,154,222,198,186, 39, 22,123,219,184,202, 96, 77, 32, 19,118,191,124,175,232,131, 70,213, 74,161, 30, 34,193, 96, 0,147, + 36,200, 93,222,182,216, 93,190,128, 35,177,114,141, 50, 30,147,237,203,229,187,109,209, 56,124,118,214,226,125,243, 24, 31,252, +248, 15,240,252,182,198,238,246, 2,126,183,209,125, 58, 50, 43, 61, 95, 24,141,230, 93,102,253,139, 20,119,231, 8, 48,210,153, + 55, 78, 50, 16,152, 44,134, 32,209,193,153,118,170,202,254,144, 60,114,164,160,113,142, 24,162,100, 99,128,199, 4, 55, 86,135, +150,161,160, 44,121,241,194, 7, 83, 1,145, 97, 12,107,214,186,174,143, 9,170,106, 31, 1, 65,134, 8,108, 0,142, 6,150, 21, + 66,175, 5,222,228,181,130,154,192, 21,135, 43,120,246, 49, 49,111,212, 63, 49, 64, 22,199,134,208,213,140,235,112,140,230,214, +224,184,127,138,135,110,131,239,172, 2,126,231,126,196, 15,223, 54,248,201,251, 21,126,252,189, 35,252,228, 7, 15,241,147, 31, +127, 40, 19,224,200, 52, 25,125,112, 73,100,103,154,168,134,185, 60,152,115, 10, 25,138,113,251, 24,219, 58, 29,165, 23,183, 35, +198, 76, 0,135,177,123,227, 49, 33,205, 28,176, 86,165,199,148,252,139,148, 45, 94, 60, 1,147,204, 21,232,156, 3,103, 10, 86, +125,206, 65,151, 23, 52,204,209,180, 4, 32,120,116, 65,167, 6,201,175,159,246,230,169, 47, 43,240,171, 37, 30,149,181,194, 68, + 69, 7, 18, 34, 12,203,133, 36, 20,244,180,188,234, 40,118,177,249,249,231,139,130,142,151, 35, 99,177,168,241,157,183, 23,184, + 56,191,198,147,142,209,216, 3,225,224,217, 70, 56, 29,161,167,229, 83,242,250,151, 35,250, 88, 94,216,120, 95, 72, 54, 50, 7, +210,110,168, 40, 73, 60, 23, 21, 78,167, 30,101,101, 73, 34,181,172,207,224,249, 48,122,122, 49,224, 59,198,202,120,197,175,243, +220,246,181,111, 18,184, 83, 84, 78,123, 91,103,222, 31,105,211,124,137, 94,220, 30, 38,193,204,135, 27,246,116, 51, 79,174,145, + 84,224, 35,199,187,134, 0, 5,164,167, 24,171,171,192,232, 85,175,207,161, 92,249, 67, 23,186,242,215, 86,203, 37, 30, 63,126, +140,207, 62,255, 39,252,222,239,255, 4, 15,223,125, 15,187, 93, 11,126,250, 20, 49, 6, 12, 33, 8,122,149,199, 93,113,215,247, +248,248,227,143, 16, 98,192, 63,252,143,127,132,109,148, 67,110,181,240, 26,171,239,115, 41, 88,214, 89, 29,191, 83, 46, 86, 65, + 19,202, 66,232, 81, 57,131,186,114,178, 10, 82, 34,162,128, 97,140, 10,210, 88, 72,152,214,160,178, 50, 54,239,251, 14,193,123, + 12,189, 0, 84,234,218,193, 26,198,106,245, 0, 87, 55,183,112,245, 11, 52,139, 21,110,110,110,112,122,239, 20, 87,151,151,146, + 59,175,106,252,148,201,190, 90, 45,225, 42, 9,152, 9, 49,160,114, 82,212,123,189,212,176, 42,167, 23,205, 18,219, 46, 96,187, +217, 97,179,221,162,239,187, 2,156,130,172, 49,136, 49,130, 28,161, 15, 82,104,151, 77, 35,187,243, 16, 49,104,135, 26,226, 52, +112,120,232, 61,150,203, 6, 20,156,194,105,196,143,158,156, 17,101,250,100, 30,127, 67, 47, 3,122, 49, 26,180,160, 7, 16,152, +131,104,114,244,179,234, 7, 73,107,171,221, 24, 26, 99, 8, 96,107,101,146, 16, 35, 60, 12, 12, 49,124, 36,132,174, 71, 32,131, +221,182,133,241, 59,160, 26,241, 99,129, 9,240, 97, 34, 32, 78,255, 84,134, 17,150,167,248,119,255,225,215,248,241, 47,255, 61, + 78, 31,254, 21,110, 46,151, 48,245, 2,232,182,160,216,103, 4,173,103,192,247, 1,142,131,140,201,115,238,134,145, 81,122,242, + 89,179, 90,208,156,149,189,181, 17,228,112, 84, 97,162,103,128,162,135, 53,194,129, 15, 81,210,229,200, 18,106, 88, 68, 18,241, +166,211,128,154,202, 90,121,222, 44,246,194,136, 20, 34, 22,209,123,131,133,239, 97,170, 0,166, 42,197,171, 79,132,172,172, 19, + 78, 75, 86,194,235,162, 19, 41,115,206, 88,207,208,209,236,248, 66, 1, 9, 19,125,154, 5, 69, 32,106,192, 76, 31, 1, 12,140, +143,200,227,231,223,217,226,248,195,183, 97,237, 31,162,105, 8,171,213, 9,226,178, 65,111,143, 17,177,130, 39,131, 30, 53,110, +171, 83,184,116, 35,225,168, 57,216, 52, 65,117, 11,196,164,232, 0,231, 24, 89,154, 15,180,121,244,168,155, 98, 15,205, 74,173, + 73,126,245, 18,170, 51, 90,223, 56,239,162,239, 18,243,160,216,213,167,140,118, 51,239,126,138,236,246, 57,250,117,110,108, 51, +243, 67,242,128,152,140, 72,238, 87,204,133,168, 39, 9, 50,120,236, 52, 19, 87, 56,230, 17, 61,231,156, 93, 15, 97, 13, 27,130, +236,167,116, 23, 25,146,234, 51,189,174, 52, 30,250, 89,216, 71,163,121,112, 96, 96,181,168,224, 16,113, 59,196,145,253,157, 47, + 74,133, 13,176,184, 96,196,137,181, 44, 21, 3, 76, 0, 57,102, 94,131,120, 22, 16,155,221, 5, 92, 92,154, 36, 41,192, 24,141, +141,100, 77, 25,222,203,192, 85, 85, 56,211, 8,176, 40, 58,104,115, 39,135,254,183, 28,157, 19, 38,123,245, 57,237,240, 78,225, +250,222,130,230, 21,151,134,121,169,164, 66,142,254,138,111,198,147, 48,132,209, 60,207,145,239,156, 64, 88, 75,248,252,243,127, + 82,200, 77, 51, 58, 8,222,240,194, 51, 87,245,243, 43, 46, 54,145,197,199,188,219,237,240,217,231,159,225,247,127,242, 7, 0, +128,183,222,121, 36,246,177,167, 79,112,121,125,141,192, 97, 76,239,171, 43, 17,171, 53,139, 98, 85, 21,243,103,204,135,160, 73, +133,164, 35, 97,202,185,237, 80, 21,118, 63,120, 12, 93, 15,107,157,140,157, 85, 77, 79, 58, 74,142, 28,242, 88, 25, 68,226, 13, +102, 37,218, 89,189,224,199, 32,153,229,189, 36,113,173,142,142, 84,224, 5, 12, 62,224,242,226, 2,213,162,195,147,199,191,193, +106, 37,241,184, 86,133,119,189, 15,224,182, 3, 25, 9,187, 9,145,209,117,146,199,110,172, 67, 55,200,106, 97,177,104,176,221, +117,104,156, 3,140,129,247,173, 38,126, 73,172,107, 82,218,199, 24,181, 83, 23,191,115,224, 40, 88, 96, 13,107,113,214,230,203, +127, 2,214, 24, 26,181, 58, 38, 18,118,237,128, 97,232,225, 44,105,242, 29, 35,198, 66,127,160,204,118,168,239, 58,177, 4, 18, +227,157,144,198,208,138,190, 53, 34, 4, 27, 6, 15,151, 88,251, 72,180, 57,249,122,206,138,106,220, 71, 6,188,207,141, 84,101, +128,157, 7,134,118, 39,156,244,156,221, 57,213,246, 28,186,144,158,174, 12,254,251,139, 26, 95,254,215,255,132, 15,254,143, 63, +195, 23,230, 20, 97,120, 44,168,221,168,150, 66,253,222,193, 16,122,207,112,102,200,171,150,200, 98,249, 50,214,128, 19,170,214, + 70,176,179,136,193,192, 90,130,115, 21,134,200,178, 59,135,172,132,100,221, 17, 68,209,143, 0, 38, 81,248,167, 64, 24,142, 1, +145, 3, 40,137, 59,117, 92,102, 64, 96,182,176,145, 17, 77,148,175,201, 65, 46,166, 76,210, 97, 83, 80, 39, 13,233,122, 20,176, + 28,228,245, 38,161,238, 81,169,112,215,154, 32,194, 60, 53,186, 17, 36,214, 85,215, 4,108, 8, 70,109,209,145, 24, 61, 19,154, + 30, 56, 94,108,177,122,103,133,221,233,143,112, 19,191,133,107, 31, 17, 66,143, 97, 0,134,129,128,190, 3,194, 6,139,101, 7, +251,241,135, 58,126,143, 5, 45,142,199, 80,150, 67, 19, 81,194,136,126, 53,243,130,142, 49,213,205, 76, 58,159, 98,252, 75,101, +172, 28, 77,196,103,233,137,151, 34, 55,122,157, 79,122,130,105, 85,118,180,170,116,227,108,204, 76, 19, 12,107, 18, 46, 76,173, +110,229,215, 50, 52,142,136, 13,229, 77,218,100,181,204, 52, 38,106, 16,237,123,235, 83, 71,197, 12, 9,180,208,175,237,140, 65, +163,255, 29,103, 2,176, 72,179,177,181,162, 54,171,170,194,251,199, 21,118,235, 29, 30,111,188,242,156, 89,119, 59,188,231, 10, + 40,109,129,115,148,109,249, 8,211,190,232, 46,224, 12, 14, 8,198, 40, 79, 34, 10,177,247, 93,165,130,166,171,157,116,151, 50, +251, 63,208, 59, 31,199,155,205,193,203,231, 56,243,116,190, 78,227, 54, 33, 52,188, 89,161, 28,213,107,244,102, 42,249,131, 81, +106, 35,208,229,117,118, 61, 34,179,239, 20,121,179,151,228, 27,255,211,118, 29, 86,171, 21,254,236,207,255, 28, 0,225,233,179, +167,226,217,215, 78, 46,101,203, 59, 85, 63, 51,128,103,207,158,227,233,217,153,128, 91,146,168, 54,166, 40, 89,141,225,116, 22, + 78,119,234,146,138, 38,202,235,196, 82,135, 2, 67,152,213,227,159,118,216,172,217,231,186,207,143, 74,232, 75,185,225,146,224, + 37,188,131, 78,199,238, 39,199, 43,212, 77,133,174,237, 53,155,158,177,221,172,225,156,168,171,157,181,168,234, 26, 67,144,216, + 81, 99, 8,149,115, 64,193,178, 7, 11,119, 61,165,135, 73, 33, 29,135, 38,109,215,163,239, 90, 65,178,166,189,174, 65,142, 58, + 77,193, 34, 93, 63,136,216,110,185,144, 0,155,210,222,153, 47,182,164, 30,121,249, 6,253, 32,129, 39,117,221, 32,168,239, 60, + 48,193, 7,175, 40, 94, 81,207,135, 20,139,154,208,205,122, 89,144, 88, 83,165,253, 69, 86,144,140, 5,216,195, 57, 35, 56, 90, +154, 11, 49,199, 79,132, 65, 4,147,136, 35,157, 1,214, 61, 97,115,117, 1, 27,251, 12,164,121,147, 55,160, 37,224,202, 59,216, +219,167,248,227,159,188,135,235,229,239, 97,125,241, 28,219,237, 22, 60,180,210, 81,231,230, 65,108,144, 8,131,128, 99,200, 22, +130, 76,135,202, 26,212,149,129,169, 42,128, 28, 60, 19,162, 15, 32, 14, 98, 97,142, 17, 68, 81,215, 1, 26,134,195, 97,162, 3, +225, 40,162,185, 52, 82, 79,184,234,148, 51,207,154,252, 71,218, 85,167,208, 31,206, 76,208,145, 25, 63,181, 42,115, 65,146, 75, +235, 87, 8, 5,143,138, 52,190,236,123,215,106,192, 34,160, 20, 49,184, 29, 81,181,100, 48,192,224,122, 0,134, 77, 68,104,119, +232,186, 45,218,221, 22,126,183, 70,232,214, 8,195, 26,126,104, 17,124, 15,103, 24,163,102,178, 4,180, 20, 89,215,124, 96,100, + 41, 77, 23, 77, 3, 62, 56,253,189,146,121, 86, 66, 80,102,221, 48,141,216, 23,230,185,152,135,114, 87, 8, 62, 44,154, 42, 87, + 4,172,151,137, 49, 46,207,193, 58,139, 19, 98, 56,253, 61, 51,103,213, 67,198,103, 65, 39, 20,148, 82,130, 14, 28,149, 38, 91, +241,116,247,205,177, 24,147, 22,227,103,165,187,161, 40,226,105,215, 93,136, 10, 68, 93, 25, 3,118, 62, 96,151,146,137, 48,142, +215,131,254,157,152,166, 1,197,168,193, 89,139,161, 31,240, 98,211,195,103, 59, 29,143, 94,217,180,155,225,114,122,193,175, 85, + 70, 39, 43, 17, 21, 59,220,252,103,120, 20, 14, 78, 82,222,210,129,148,158,123, 60, 60, 18,231,153,223, 58, 77, 23,172,138, 7, + 57,175, 31,120,166, 75,248, 45,213,109, 52,113,217,125,131,191, 58,165,240, 49,191,142, 58,135, 59,156, 29,175, 46,172,233,125, + 77,197, 8,157,223,140,136,163,116,198,195,197,122,111,175, 62,123, 73, 14,141,229, 15, 90, 3,245,223,155,186,193,197,249, 57, + 54,155,181, 20,152,174, 71, 63,180,226, 1,175,107,212,117,157,115,192, 57,202, 78, 51, 33, 61,141,254, 47,132,136, 90, 51,177, + 25, 50,222, 13, 33,130,140, 21,136,143,115,210,193, 6,159,161, 59,206, 8,220, 71, 0, 55,118, 84,116, 27,163,140,118, 17,148, +197, 32,131, 74,167,118,172,174,147,132, 56,144,224,106,131,170,211,137,132,185, 79, 41,218, 20, 26,218,163, 25,225, 33,196,204, +101,119,206,161,110, 22,136, 33,200,148,192, 24, 56, 71,153, 75, 63,168,165,172,170,107, 48, 89,108,182, 29,182,155,181,118,186, +162,236, 31,134, 1, 67,239,133, 84,166, 33, 40, 93, 55,128,131, 71, 85,139, 47,159, 20, 14, 19,181,224, 57, 21, 17, 90, 29,213, +133, 40,222,252,166,178, 88, 44,151, 82,112,136, 52,146, 52,102,225, 96,140,202,162, 87,207,186,209,125,112,100,217,207,167, 88, +220,228,233,237, 6,137, 58,181,206, 97, 8,178, 94, 20, 94, 60, 96,181,105,225, 24, 80,145, 92,194,124,148, 4, 57, 14, 18,193, +219,245, 3, 56,244, 96, 67,133,210,234,245,159, 73,233,214, 45,254,243, 87, 6,159,255,167,127,143, 7,199,183, 48,139,251,168, + 93,149,177,174,169,232, 26, 34, 81,247, 91, 89,177, 48, 7, 24, 13,169,169,157, 69, 93, 59, 52,139, 26,245, 98, 1, 83,213,185, + 80, 50, 25, 56,141, 61, 77, 54,177,108,199,214, 41,105,250, 30, 17, 6,222,203,165, 45,100,198, 2,163, 27, 2,124,215,131,226, +160, 83, 19,241,196, 7, 24, 12, 65,227,104,149,168,151, 21,240, 24, 63,191, 76,227, 36,146, 35,231, 58, 48,194,220, 40, 71,175, +210,228, 50, 63, 54,197, 49,127,214, 69,115, 21,152,225, 3,176,238, 3,186, 93,135,216,221, 32,198, 14, 62, 50,134, 16, 16,188, + 48, 15, 56, 6, 64,223, 7,249, 92, 74, 48,147, 20,193, 26,139, 52,182,114,215, 44, 44,120,134, 41,250,155,169,248,141, 38, 69, + 44,166,139, 3,151,153,225,101,194, 90,156,136,188,120,175,248, 78, 71,255,251,190, 91, 30,141, 65, 44,166,254, 46, 0,107,126, +253,200,145, 32,164,162, 81, 40,168,251,238,196,142, 75,143, 89, 11,118,210, 6,164, 61, 69, 44, 30,173,209, 44,232, 56,217, 37, +151,149,189,216,195, 67, 62,156, 67,136,240,121, 31,207,121,188,157,108, 64, 49, 21,119,189,110,248,161,199, 87,215, 59, 92, 7, +160,162, 34,166, 20, 83,168,203,158, 18,157,121, 79, 44,200, 60,237, 13,153,199, 75, 4, 77,180, 2,156,195, 13, 98,161,200,227, +153,147,123,250, 60,167,237,178,172,119,202, 87, 64,158,215, 16,227,236,114,193,104,154, 5,154,170,154, 36, 76,253,182, 29,251, +155,119,170, 60, 94, 22,243,158,154,191,217, 55,224,187,111, 17, 84, 94,126,121,246,238,120,211,118,155,112, 87,240,225, 43, 31, +106,198, 10, 27,122,101, 7,207,179,247,136,113, 22,219,237, 6,219,205, 90, 10,171,130, 99, 88, 25,219,174, 18, 69,176,129,196, +142, 26, 99,149, 95,174,234,100, 50, 25,169,106, 77,202, 60, 96, 21,175, 73,199, 46,118, 48,169, 98,162,208, 54,130,143, 85,146, +154,181, 86,193, 55, 54,171,233,141,218,122, 18,205, 51,248, 8,159,104,117,198,106,224,139, 88,240, 4,104, 19,177, 88,212, 88, + 46, 23,218,177,134,172,200, 95,111, 54, 24,250, 22,171, 20,236,162,130, 60, 99, 44,252, 16, 52,214, 83,198,215,181,115,104,234, + 26, 62, 68, 12, 67,175, 23,135, 30,136,146, 48, 22,116,162, 32,218, 51, 29,205,146,193, 48, 12, 0, 34,234,166, 66, 85,213,194, +126,175, 28,200,218, 28, 59, 29, 85,176,149, 66, 99,188, 23,175, 59,114,167, 47, 86,179,186,118,249,194, 84,235,235, 23, 85, 4, + 55,198,151,202,123,204,146,209,228, 57, 76,178,176, 19,202,182,174,171, 28, 73, 42,128, 27,225,220,203, 36, 86, 68,138,222, 71, +185, 28, 25,128,141, 67,240, 1,148,115,232, 95, 63, 93, 42, 15,156,198, 50,174,237, 49,254,195,223,126,134,147,203,255,130,197, +233, 3,153,108,144,203,174,138,124,150, 26, 11, 99,235,140,205,181, 16,126,123,101, 29,142, 22, 14,110,177,132,179, 21,154,218, +129,170, 70, 70,216, 49,194, 24,206,121,235,105,253,234,172, 94, 10,173,203,169,103,206,136, 13,141,148, 70,199, 49,130, 88,180, + 27,125, 16, 22, 63,124, 7, 67, 17,206, 88,229, 33,152, 12, 6, 19, 79,125,208, 51,219,100, 27,119,100, 6,197, 32, 53, 45, 77, + 50, 57,104,129, 15,122,217, 2, 76, 12, 42,202, 51,153, 46,135, 24, 64,170,215,136,106,169,179, 20,193,134,208, 49,161,245, 64, +215, 14, 64,215,193,134, 29, 64, 94,215, 4,128, 69, 64, 77, 17,100, 57, 41,239,139, 84, 25, 46,104,110, 92, 96, 81,181,123,183, +132,189,248, 83,210,161, 68, 62, 12,192,176,140,220,161,153, 60,122,158, 31, 96,180,215,177,199, 9,185,142, 4, 60, 48, 43, 36, +119,199,103,242,168, 44,140, 30, 61, 67, 67,106, 74,191,124,234,200,145,127, 8, 99, 55, 89,116,182,153,174, 55,118,161, 1,140, +144,237, 96,156,119, 21,163,128,112,228,220,199, 66, 48, 72,179,192, 82,158, 89,239,140,138, 44, 98, 97, 43,228,130,176,148,178, +157, 61, 36,187, 58,164, 32,128, 36, 67,208,159,160,165,253,100,210, 73,136, 9, 51,124,140, 24, 98, 65,245,227, 49, 86, 51, 43, +118,121,250, 88, 11,125, 93,158,162,140, 19, 1,222,239,252, 74, 37,120,178,212, 41, 52,167, 44,236,135, 66, 74,140,145,145, 99, + 55,248,252,129,195,172,139,191,179,112,241, 43, 70,221,119,193,112,202,201, 68, 65,222,163,215, 90,217,104, 86, 50,249, 13,110, + 16,115, 85,124,122,237,249,205,252,104,133,195,161,252,217,222,117,184,230, 71,168,133,225,209,163,119, 5,197, 27,194, 27, 93, +115,140,162, 90,187,174,207,156,244,132,240,172,154, 6,139,197, 82,246,199,132, 2, 94, 37, 93, 74,242,123,103, 6,183,147,160, + 27, 63, 4, 84,149,197,241,106,137,186,174,115,156,109,246,163, 27,194, 48,200,247,244, 62, 32, 4,159, 79,168, 42,117,252, 10, + 76,177, 86,198,247,253,208, 75,102,183,171, 68,108, 53, 8,161,172, 31,122, 12,195, 32,231,138, 70,173,166,110,220, 88,131,186, +170,176, 90, 46,208,212, 13, 18, 75, 94,200,106, 81, 39, 87, 99,220,236,174,235, 16, 66, 64, 93,215, 48,106,155, 25,134, 65, 46, + 8, 65, 78,147,168, 89,223,117, 37, 59,243, 16,161,202,243,128,202, 25, 44,155,133, 8, 2,205,200,156,148,110, 58,106, 96,137, +132,195,132,220,125, 9,122,215, 16,148, 89, 47,194, 61,231,156, 76, 13, 53,251,221,106, 71, 25,180,251,159,242, 47,101,231, 27, +130,151,181,134,226,111, 83,188,170,171, 92, 38, 81, 70, 61,197,125,148, 75,139, 65, 28, 35,118, 21,192,229, 67,212, 46,149, 14, +216, 55,239,238,210,211,225,125,114,228,240, 31,191, 0,190,248,127,255, 31, 60, 60,221,130,154,251, 64, 49, 41, 21, 81,159,128, +142, 44,162, 22, 97, 59, 10, 0,173,252,236,170,186, 66, 85, 53,168,156,195,162,169, 80,213, 53, 96, 43, 4, 38,125, 61, 33,127, + 86, 11, 87,212,139, 67, 12,233,108, 13, 89,255,147,190,174,100,169,143, 48,155, 46, 68,248,193,131,185, 23, 60,173,179,128,181, +136, 44,190,255,160,174, 36,210,215,156, 38,231,123,204, 83, 1, 82,178, 93,100,229,122,235,103, 62, 42, 93, 14,108,179,242,125, +116, 82,137,246, 42,166, 63,175,228,186,206, 51,186,190, 7, 15, 61, 42,120, 52,142,208,212, 14,182,118, 32, 87,203, 69,145,153, +114,158,117,250, 49,197,189,190,150, 50,102,143,153, 16,113,215,152,117,236, 64,194,172,170,152,209, 36, 55, 83,180, 39,159,184, +250, 9,203,238, 24,132, 90,201, 65, 40,130, 80,198,199,184,127,110,231,226, 76, 70,163, 92, 75,101,126, 49,234,231,177,184, 79, +148,196,101, 55,201,211,238,149, 35,143,133, 55, 61,122,189,188, 68,150,130, 95,178,188,185, 80,219,143, 13,123, 28,111,211,128, + 10, 95,210, 94, 58,170,229,141, 11,209,156,142,233, 98,186, 44,240, 40,210,211,170,206,106,251, 73,175,110,140,227,215,207,126, + 6, 6, 60, 3, 39,181,195,195,154,114,116,102, 42,228,137, 69, 93,142,106, 99,144,139, 70, 73,205, 27,149,218, 5, 93,144,121, + 42, 28,227,226, 34, 86,100, 12,151,232,196, 41,171,101, 58,238, 15, 62,225, 66,239,222,111, 31, 30, 37,167,231,206,111,180,152, +103,148, 86, 48,202, 63,111,154, 97,128, 95,223,137,208, 27,143,222,203, 57,250, 55, 65,212, 76,140, 13, 51, 88,221,107,197,113, + 26,145,119,115,115,155, 71,202,111,166, 27, 32,189,208, 6, 13, 30,177,242, 94, 83,111,184,181, 22, 71,171, 35,217,177,235,207, + 76, 34, 84, 43,176, 2, 87, 0,104,231, 78,105,228,133, 69, 83, 99,177, 90, 73, 58, 91, 84, 61,137,126, 70,130,142,241,137, 9, +129,131,114, 7,228,125, 20,195,248, 9, 55, 86,130, 74,140, 90,210, 22,203, 37,140,147,241,119, 72, 99,207,200,216,172,183,240, + 93,143, 24, 98,222,217, 27,157, 32, 68, 16,172,171,224,153,113,187,217,161,235,122,161,130, 5, 25,203, 58,107, 80, 85, 21,140, +122,211,189, 31,132,122, 72, 6,155,109,135,221,118,131,221,174, 69,212,139, 71, 76,246, 59,175,135, 61,141, 94,112,107,157, 20, + 25, 99,165,232, 59, 7,231, 12,234,186, 18, 33, 88, 44, 70,174, 81, 46, 9,206, 25,253, 28,134,252,126, 73, 60,119, 87, 57,153, + 14,132,152, 57,239,164, 69, 64,210,199, 82, 51,162,252,116,144,208,217,180,232,133,200, 24, 50, 97, 78,168,105,125,239, 17,124, + 63, 54, 2, 12, 84,142,164,195,213,247,159, 92, 8,195, 1,174,199,221,146,147,242, 15, 45, 44,227,198,158,224,223,253,205,175, + 96,158,254, 13,220,209,169,172, 97, 42, 7,103,171,156, 65,144, 28, 87, 34, 74,147, 16,160,218, 0,139,133, 69,180, 11,184,200, + 88,212,114,185,180,174, 18,128,142,218,235, 2, 3,209, 7, 88, 10,128,117, 16,159, 25,103,226,158, 76,102, 9,222, 51,252, 48, +168, 62, 33,202,107,161,151,203, 8, 32, 70,131,193,203,235,228,251, 94, 46,103,134,224,156, 5,172, 25,199,231, 28,243,250, 51, + 55,158, 76,185, 81, 27,199,240,148,207,196, 0,130,143, 6,209, 51, 16, 61, 0,143,241,183,121, 50, 41,150, 70, 59,192, 35,162, + 15, 6,221, 0,185,244,118, 45, 56,116, 10,212,113, 96, 83,129,168,134,139, 24, 73, 58, 89,137,156,230,250, 5, 36, 36, 71,149, +206,252,188, 57, 29, 71,103,172, 97,118, 95, 1, 37, 31,245, 97,219,213, 84, 12,198,185, 72, 50,148,184,131, 49, 84,134,147,122, +158, 71,154,157, 57,184,179, 44,157,231, 99,144,202, 30, 18,118, 62,158,204, 42,243, 17, 10,195,201,154,166,211, 8, 26,145, 53, + 99, 97,158, 88,179,198,147,119,252,112, 36,113, 96,121,183, 29,161, 7, 68, 18,116, 18, 19,200,130, 71,232,255,200,134,215,209, + 35, 71,133, 25,164, 92,106,202, 35,123,159, 67, 67,166,225, 49,217,199,202, 64,211, 44,177,228, 14,231, 93,175,236,246,169, 87, + 58,141, 1,193,132,202, 18, 66,223,226,214, 91,220, 59, 90,192,234,158,142, 15,188,134,105,231, 78,121,110, 48,142,231,152,167, +110,135,169,181,140, 15,232,206,232,181,158,112, 42, 88,207,101, 76, 45,229,139, 27,191,246,235,100,130, 83, 30, 59,115, 86,127, +127, 99,153, 61,223, 45, 91, 59,132, 50, 70,222,201,141, 54,209,131, 5,153,166, 22,189,137,184,158, 95, 95,208, 75,163,224,122, +125,155,217,247,111, 34, 4, 12, 49, 98,185, 88,225,244,244, 20,183,235, 13,182,237, 78, 47,182, 82,104, 72, 85,215,167,247,239, +227,234,242, 18,232, 59,241,163, 51, 48, 12, 1, 85,202,187, 38, 9, 83, 97,246, 96,239,181, 83,182, 42, 34,146,172,111, 3,194, +160,251,232, 90,209,179, 38, 38,213,187, 92, 44,160, 32, 22, 3,131,190,239,177, 88, 44, 0,212, 24, 6, 47,254,119, 59, 78,227, +156,147,241,171, 15,195,228,112, 77,254,254,232, 35,192, 1,222,171,224, 79,199,248, 0, 16,245,177, 85,206,229,207,126, 85,201, +228,193, 71,198,237,205, 22,215, 87, 87,136, 97,200,239,153,196,166,143, 17,232,134, 1, 49, 70, 73, 58,211,209,118, 85, 55, 90, + 84, 60,140,145, 75, 79,218,211,183,157,144,226,140,179,136,131, 76, 33, 90,175, 44,121,171,175,103,100,132,190, 71, 93, 89, 1, +180,164, 6, 43,248,188,135, 79, 83, 20,142, 65, 69,113, 64, 83, 57, 68, 50,176, 33, 32, 6, 17,206, 25, 35,122, 22,113, 23,120, + 48, 85,240, 33, 10,148, 70,187, 99,113,180,164,118, 44, 22, 78, 30, 46, 62,217,111, 40,213, 44, 26,122,102,224,100,101,240,247, + 79, 27,252,179,255,242, 55,120,244,203,247,241,120,113, 15, 54,158,131,217, 73, 32, 78,140,224,202, 33,122,160,250,255,153,123, +183, 94,203,182,227, 60,236,171, 26, 99,206,181,214,222,221,125, 14, 15,207, 17, 41,145, 10, 47,226,205, 18, 73, 89,176,101,229, + 38, 40, 2,228, 7, 3,121,203, 75,126, 14,255, 68,128,188, 58, 72, 30, 29, 32, 48,236,200, 82, 2,217,129, 21,203,177, 44, 65, + 84,100,200,114, 20, 37,186,146,135,231,210,167,123,239,189,214,154,115,140,170, 60, 84,141, 49,199,152,107,238, 75,147, 18,144, + 38,136, 62,189, 47,235, 58,215,168,170,175,190,139,102, 16, 5,140,145,112, 53, 50,246,135, 17, 52,236, 49,176, 73,239,178, 68, +132,144, 16,195,100,144, 59, 17,118,145,144,147,145, 57, 75, 10, 26,185, 46,220, 72, 29,112, 20, 0,200,106, 13,155,136, 0,156, + 65, 20,253, 26, 10, 94,251, 92,206, 39, 25,148,205,160, 39,178,241, 62, 4,209,245,230,104, 10,182,184,228, 77,193, 36,213,152, +136,188,190, 9, 92,190, 14, 1, 83,104,234, 2, 53,132,222,214, 89,179,120, 9,216, 32,123, 22, 5, 38, 5, 81, 2,209, 4, 65, + 48, 11,121, 18, 16, 5, 72,142,240,183,237,146,245,168,101,130, 43,199, 52,161,129,145,201,223,102,114,162,192,197,182,182,151, +158,249, 62, 54, 52,254,188,104, 10,109,119,248,180,123,118, 17,156, 4, 53,231,157, 86,230, 52,170,219, 17,161,107,192,187, 47, +246,253,125,183, 3,153,117, 87,203,196, 47, 14, 33, 51,154,233,205, 27,146,208,104,218,219,255,115,185,253,198, 33,168, 66,218, +218, 46, 44, 26, 91,196,118,178,213, 69,203,159,125,215, 95,139,174, 44, 31, 36,169,100, 50,237,144,147,234,222, 87, 30,191,127, + 16,179, 2, 67, 32,124,124,115,139, 63,189,153,107,174,249, 26,183,174,129, 50,121,198, 73, 7,252,167,127,251, 91,248,165,175, +188,141,243,249,108, 19, 16,181,168,135, 94,236, 97,237,178,150,101, 2,199,178,151,215, 39, 46,143,215, 5,191,248,142,111, 78, +236,141, 4, 83,229,146, 35,208,202,190, 47,137,100,139,225,131,190, 9,223, 94,155, 21, 3,244,114,231,241,200,228, 98,142,125, +232,200,140,143, 53, 3,157, 33, 34, 61,109,135,190, 94,193,135,198,168,228, 41,127,230,105,194,187,239,190,139,103, 47,222,194, +235, 87,175, 48,159,206,152,231, 9,146,114,245, 38, 55, 41,163, 77,193,236,178,170,105,158, 65,164, 75, 64, 74,140,216,123, 0, +203,110, 24, 16,157, 52,151,197,125,217,199, 1, 28, 24, 41,149,152, 79, 51, 80, 49, 15,114,247,156,207,106,159, 57,143,167,133, +191,183,150,189,126,198,249,124, 52, 29,189, 8, 14,251, 29,134, 97,132,168,226,116, 58,225,245,173, 69,160,150, 38,112, 24, 34, +246,251,157,193,255,100,108,249,221,104,118,173,196, 77,195,202, 92,227, 94,161,240,196,186, 51,238,238,110,145,210, 25, 80,193, +110, 48,200, 95, 36,155,171, 89,157,166,121, 89, 69, 12,163,219,130,154,122, 37,249, 30,178, 52, 88,163, 91,219,206,179, 49,240, +147, 91,225, 6, 46,190,239,229, 51,100,174,124, 37,162,215,154,151,224,231, 22,213, 85, 11, 26, 62, 76, 18, 56, 3,222, 66, 97, +184, 36, 74, 6, 70, 28,130,163, 26,185, 34,165, 37,219,190,160, 51,149,215, 2, 75,165, 51, 84,162,173, 21, 79, 41,235,253, 65, + 29,161, 56,143,123,252,223,255,254, 3,124,227,240,255,224,250,167,190, 14,145,177,202,124,195, 48,128,120,176, 21, 3,219,234, + 38,134,128,171, 49,226,250,250, 10,215, 87, 7,196,235, 43,196,221, 53,226, 16,193,209,136,209, 97, 24,172, 33,241,223, 17,138, +144,172,206,132,183,195,162, 52, 43, 32,227, 51,132, 24, 16, 56, 86,150,189, 58,113, 82,179, 64, 52,187,133, 44,170, 1,217,156, + 5,121,154, 65,249,236,178, 77, 70,202,142,166, 72,118,246, 19,160, 98,190, 0,226,254, 41,189,100,182,120,213,155,141, 45, 49, + 12,250,247,116, 57,184,125,173,104,240,227, 69, 42,147, 94, 8, 56, 9,225,120, 86,156, 79, 39,156,167, 91, 76,243,140,121, 78, +152,167, 9,115, 58,131, 35, 83,213,156,151,211,180,236,146,155,240,151,174,248,245, 91, 20,173, 26,231,234,156,179,129, 27, 94, +110, 14,181,147,207,117, 12,100, 66, 13,119, 93,195,189,192, 2,213,243, 6,137,174,118,145, 69,106,213, 92,120, 76,184,216,155, +183, 60, 0, 52, 68,193,101, 79, 78,110,193,186,232,201, 69,129,228,163, 83,209,132, 54, 54,255, 64,219,217,118, 26,129, 37,244, +134, 87, 13, 13,225,146,209,183,144,242,236,195, 90,249,237,186, 32, 43,170,232,224,124, 93,237,159,181, 97,208,207,190,159, 9, + 88, 94, 27,110,224,246, 54,111, 60, 6, 70,186,123,133,223,187, 25,241, 83,127,231,239,226, 39,174, 5,119,231, 84,109, 46,245, +145, 73,175,122,229,173,126, 88, 27,179,148,251,107,124,121,252,118,120, 93, 93, 63,195,187,239,188, 93, 99, 40, 47, 26,181,198, +150,120,141, 9, 42,182,221,217,150, 68,167,110, 17,244, 70,164,186,101,116,126,252,104, 91,152,244,218,235,237,158,220, 68,108, +200,246, 84, 31,221,246, 63,246,200, 30,106,180, 82,154,240,222,123,239, 25,161,236,230, 53,158, 61,127,134,103,207,158,225,112, +216, 91,186,154, 39,155,229,148,106, 78,121, 89, 83,229,172,190, 19, 23, 28,207, 39, 28, 39,115, 14,179,140,114, 32,207,169,238, +172, 11,151, 38, 50, 91, 78,118, 54,139, 85,118, 38, 28,187, 78,159,216,254, 63, 58,244,126,115,119, 7,149, 92,155,149, 18,243, +202,193, 34, 70, 85, 45,239,252,124, 62, 2, 16,164,148, 49, 77,147, 59,193,113, 45,224,182, 67,158, 17, 67,201, 80,183,251, 49, + 50,157, 53, 48, 73, 50,230, 36,184,125,253, 26,121, 62, 27,148,188,219, 65,193, 72, 30,221,122,158,146, 39,204, 69,183,250, 20, +236,118,163, 21,144,146, 97,238,136, 2, 59, 1,108,246, 66, 48, 12,131, 17,165,156,217,111, 59, 97,139, 90,181,189,186, 37,165, +221,157, 38,228,148, 16,216, 8, 96,228, 73, 98,115,202,198, 18,103,114, 98,153,217,210,150, 36, 72,147, 83,177, 17, 26,125, 39, +111, 4, 70,174,103,124,140, 1, 49,122,147,225,205,131,233,200, 29, 37,177,165,244,211,123, 95,221, 44, 24, 80, 0, 47,246,192, +255,241,193, 53,238,254,240,119,240, 31,255,236, 1,252,233,159,193,200, 25, 66, 1, 44,130, 49, 88,190,124,242, 9,120, 23, 9, +135,195,128,171,235, 29,226,213, 51, 32, 92, 33,251, 74, 81, 84,221,216,133, 64,158,146,166,176,176, 21,226,126,207, 85, 87,141, +146,235,170,194,154, 39,127, 61, 66,116,142, 7,213,148,210, 33, 90,243, 20,130, 53, 23,182, 87, 39, 68,100,196, 8, 71,157,236, + 32, 74, 66,174,121, 95,236,117,139, 81, 81, 65, 95,139, 24,156, 90,179, 42,207, 82,177,245,136,175, 84, 37, 91, 48,141,136,239, +232,157,227, 64,140,147, 16, 78, 19,144, 78, 19,116,186,133,228, 51,178,204,144, 44, 46,186, 35,170,110, 55,229,245, 15,104, 36, + 92,229,223,157, 52,108,129, 60,185,241, 78,191, 36,232, 74,221, 39,200,138,149,221,239, 96, 55,168,119,149,117,191,144,232, 90, +107,209, 42,159,107, 66, 58, 20,253, 36,223,195,158, 75, 90, 91,105, 12, 10,252,121,145,192,214,238,217,101,153,166, 85,115,195, +150, 95,200, 94,173, 7, 52,123, 54, 46,175, 72,116, 80,113,130, 69, 89, 41,172,139,243, 66,204,211,198,132, 71, 32,203, 97, 41, +104,204, 99,164,129,138,251, 73,184, 85, 49, 44,251,236, 69,101, 80, 27,148,238, 96,151,250,243, 2,198,126, 63,224,253, 63,252, + 29,252,195,127,252,175,240,193, 52, 98, 55,114,231,229,223,214, 27,209, 94,154, 88,112, 29, 1, 86, 23, 76, 91, 76,180,243, 47, + 95,231,147,215,226, 75,209,246,122,186,198,146,182, 11,249, 5, 57,189,198,174,210,102,149,212, 7,179, 75,239, 41,230,213, 10, + 86, 27,106,106,154, 0, 0, 32, 0, 73, 68, 65, 84,159, 36, 77,207,121,118,210,151, 54, 50,207, 55, 36,244,119, 46,121,250, 96, +237,167, 31,177,160,151, 21,199,143,125,230, 51,200,162, 78,180,162,202, 89, 40,220,131, 44,102, 93,186, 59, 28,204,171, 61,132, + 70, 86,101,239,111, 74, 54, 69,148,200, 82,184, 65, 75,224, 1, 68, 38,247,202, 41,185,236,204, 51,235,185,245,183,167,186, 79, +182,125,252, 53,206,211,236, 89,238,177,202,211,198,113,128, 16,225,120,116, 51, 24,223,117,146,250, 68, 63, 77,206,160, 54, 72, +127, 55, 12,184,218, 31,140, 4,235,182,171, 37,243, 93,253,224, 39,135, 86,231, 41,225,116, 60, 66, 37,185,247, 55, 33,137,224, +120, 58, 98,154, 38,136,199,132, 78,201,154,135,133, 63, 73,216,143, 1,251,253, 30, 28,173, 97, 24,135,136, 48, 88,218,150, 90, +180, 23,146,199, 13,103, 81, 68,182,130, 54,207, 25,243, 52,155, 47,123, 49,141,202, 69,146, 71,216,237, 45,131,189, 64,123, 54, +165,251,170, 48,144, 23,162, 80,179,232,201,119,212, 69,194,197, 30,250,210, 82, 98,205,243, 61,120,226, 88,145,251,154, 52, 79, +253, 61,165,110, 78,127,195,166,212,255, 30, 24, 56, 31,174,240,143,127,227,175,240,211,159,252, 6,190,253,203,191,128,103,239, +126, 25,135,235,107,191,142,156, 92,201, 22,226, 51,104,194,243, 67,196,120,125, 5, 26,118, 6, 93,179,185,230,157,167,132, 60, + 77, 96,117, 82,101,195, 57, 33, 42, 35,155,171, 52, 24, 24,130, 53, 51,202,228,110,127,217, 61, 5,140,241,201,238,167,207,193, + 2,136,204,167,157, 65, 20,109,149, 20, 24, 8, 17, 9,108, 8, 18,188,153,160, 80, 87, 32,164, 25,224,197, 84, 75,104,129,232, + 9,121, 25, 67,153, 59,162, 58,156,104, 29, 32, 8,108,103,150, 50,119, 3, 31,249, 36,127,206,140,121, 82, 96, 62,129,228, 4, +130,173,145,184, 88,146, 18,181,231, 21,117,184, 62,121,248, 71,235, 34,199,181,215,208,198,114,149, 58,211, 25,172, 36, 97,170, +219,155, 67, 90, 33, 52, 29,140, 78, 45, 1,174,157,204,221, 8,159, 90, 57,217,229,193, 38,205, 99,145,202,230, 95,167,153,233, +133,188,139,176,160, 5, 10,105,100,126, 11,108,219,166,214,101, 89,140,105, 90, 67,157, 66, 43, 20,109, 53,202,174,143,149,158, +194,220, 78,162,101,215, 34, 69,255,173,253,239, 86,205,123, 37,244,245, 72, 23,173,158, 95, 75, 36,108, 59, 32,105,158, 67, 71, +177,246,194,126, 24, 2,226,233, 53,206,217,180,162,180,202, 68,239, 39,194, 30, 69, 40,255, 81,247,235,155,142,105,122, 65,148, +107,255,132, 16,112,251,250, 37,222,255,193, 7, 38, 45,194,194,194,215, 78, 90,215,163,224,165, 17,235,153,231,188, 81,179,169, +107,250, 30, 47,207,237,232, 13,172,172,243, 54, 15,180, 57,101,252,248,143,255, 4,222,123,247,211,102,166,242, 6,244,184,173, +187, 16,125,202,238,254,105,109,202, 67, 13,196, 16, 35, 94,188,245, 54,238,238,142,149,165, 61,207,147, 21,188,178,154, 98,115, +131, 11, 67, 68, 28,134, 22, 95, 50, 50, 86, 74, 56,158,207,149,193,125,158,204, 49,142, 56, 32,101,139, 53,229,154,125,206,213, +172,165,232,171, 9,102, 44,163, 34, 24, 66, 64,136, 3,110,239, 78,144,156, 49, 12,209,184, 40, 98,246,161,197, 8,102, 62, 79, +134, 14,138,161, 5, 41,101, 35,180,165,185,178,242,139,108, 81, 28,149,186, 58,236, 60,123,124,130,170, 49,140,231,121, 50, 87, +185,201,124,239,167,233,140,243,228,240,184, 42,238,142, 71,136,164,197, 6, 52,152, 7,252,224,171,135, 98, 94, 21,138,211,153, +100, 79,238, 44, 41, 93, 84,247,240,183,119, 39,220, 29,143, 70, 10,243,119, 45,101,133, 72,170,111,224, 56, 68,140,187,209,101, + 96,140, 52,103, 11, 57,217, 13,142, 2,248,238,215, 27,145,148,197,124,221,131,161, 18, 73, 77, 89, 32,201,236, 97, 77, 11, 47, +238,191,111,215,255, 57, 9,230,201,208,128,121, 78, 96, 73,150,132,198,177,204,103, 91,174, 35, 63,212,245,245,238,149,226,127, +251,224, 83,248,157,127,242, 63,227,191,248,226,159,225,221,159,249,101,124,250,211,239,224,234,237,119, 16,119, 7,179,230, 29, + 2,246,227,136, 16, 35,134,129, 49,238, 15,224,184,119,213,133, 17, 30,149,172,240,147, 36, 48,171,153,226, 56,212,110,102, 62, + 75, 67,111,196,192, 0,138,182, 6, 66, 48, 52, 64,221,121,174, 16,198,165,225, 16, 36,181,247, 2, 34, 86,144,201, 72,209,115, + 38, 76, 73,144,231,132,160,201,115, 0,204,161,111,206,228, 60, 5,105,110,139,186,213,175,116,138, 47,171,163,246,121,114, 4, +197, 2,223, 61,248, 37,120,228,172,214,122, 39, 12,156, 50,227,116, 38,232,249,236, 43,129, 12,190,208, 47, 43,122,149,181,214, +121,187,146,194,138, 12,171, 0,207,226, 47,214,208,104,213, 91, 40,158, 30,216, 88,182,138,221,181,169, 6, 53,196, 51,238,160, +117, 52, 59,234,213,110,160,219,213,235,106,114,233, 27, 11,233, 19,228, 87,255,239,161,120, 92,232,179,215,123,217,197,104, 37, +160,215,113, 51,100,145,201,181, 82, 50,148, 61,112,251, 28,151, 11,160, 78,100,101,119, 94,236,104,187, 6, 99, 77, 14, 92, 30, + 39,109,238,218,219,233, 85,186,226,177, 24,221, 44,236, 97, 33,114,184, 14, 53,196,226, 98,146,214,254,245, 83, 69, 93, 65, 16, +150,140,236,135,166,195,194,212,221,130,229,153, 93, 1,177,106, 2,234,237, 53, 76,127, 87,127, 32, 6,151, 29,182, 11,129,156, + 47,186, 74,186, 55,157,248,158,189, 32,240,228, 29,122,219, 68, 37, 1,146,188, 65, 84,252, 61,166, 75, 16,125, 82,219,161,143, +170,249, 30,127, 14, 5,125, 58, 29, 75,144,139,214,201,131,153,186,168, 77,102,198, 48,140,126,208, 50,200, 37, 99, 49, 4, 64, +178,201,112, 20,184,218,239,125, 2, 34,183, 13,182,221, 57,133,104, 6, 45,126,155, 34,166,193,141, 67, 0,124, 23, 77, 28,112, +123,123,132,228,100, 97, 36,162, 53,232,133, 99,196,156, 19,210,116,174,198, 43, 42, 54, 9,167,156,220,161,205,138,190, 49,228, +129,187,187, 19,230,105, 66, 8,230, 61,191, 63,236,205,130, 23,182, 87, 61,157, 39, 28,239,142,152, 79,103, 28,143, 39,220,221, +157,144,230, 25, 57,207,142,190, 44,122,111,132, 96,190,236, 80,115,203,115,150,251, 56,142,184, 59,207, 72,243, 25,227, 16, 16, +162, 25,173,140,129,240,236,217, 21,198,157, 89,254,206,211,140,156,236,249, 79, 41, 67,196,136,134, 53,127, 94,220, 92,198, 37, +125,193,245,237,134,106,144,175, 62,140, 84, 87, 76, 83,178,179,232,125,212, 68, 18, 51,217,129,251,157,139,175,183,178,230,170, +126,129, 42, 34,171,173, 8,200, 44,104,153, 13,129, 81, 54,155,188,167,108,211, 91, 25,219,125, 52,249, 8, 32,190,216,227,191, +255, 23, 55, 24,254,237,255,128,111,125,251, 29, 60,255,204,215,240,252,173,183,241,226,249, 11, 92, 93, 63, 67, 28, 15,136,113, +192, 48,238, 16,195,136,195, 8,240,238, 0, 38, 43,118, 44,132,145,197,115,207,203,226,143, 93,121, 96,196, 72,165, 96,245, 40, + 48, 18, 49, 82,182,235,130, 84,204,186, 59, 68,100, 71, 48,202, 62,157,104,201, 54,207,217, 81, 16, 73, 32,228, 26, 94, 83,149, + 4, 57, 65,188,176,199, 64, 32, 30,205,172, 38, 89,168, 78,158,205, 66, 24,154,124,192,165,186,123, 23, 63,103,181,154,127, 21, + 40,190,220, 62,154,122,167,125,112,151,147,163,143, 9, 56,157, 50,228,116, 2,201, 17,177,192,163,129,109, 23,144,176,236,211, +213,221,114,114, 83,208, 47, 38,108, 47,234, 92, 9,119, 84,191, 39, 69, 30,190,178,157,221,186, 28,202,225, 74,141,171, 93,111, + 63,167,253,197, 2,133, 42, 47,236,109, 66, 7,197, 11,250, 56,213, 11,127,122, 20,100,161,184,200, 45, 91,239, 11,205, 51, 45, + 69,215,138,113,249,240,104,199,214,214,194, 31,232, 72,133, 85, 45,186,176, 36,169,183,110,232, 44,114,213,246,253,210,160, 36, +173,222,184, 56,219,241,198,237,105, 23, 86,231,205, 8,209,165, 46, 27,212,201,204,180, 77,155,115,254, 67,145, 83,107, 27,226, +221, 17,217, 46,227, 88, 29,250,233, 96,117,173,225, 63,235,130,178, 4,242, 92,194,242, 27, 44,248,123,156,219,180,193,165,141, +184,153,145,105,192, 23, 62,255, 57,188,250,248, 3,124,248,242,181, 39, 83,233,197,114,165, 79, 25,120,204,104,166, 55, 84,106, + 92,125, 54,127, 85, 27,247,189, 48, 4,124,255, 47,255, 28, 10,115, 98,211,199,140,109,116,245, 52,181,145, 73, 62,129,100,252, +248,148,244,148,130, 14,164,148,241,234,213, 13,152, 45,174,147,124, 26,214,154,121, 93,140,104,220,131, 29, 90,119,181,131, 79, + 18,236,166, 51,243, 52,129, 84,112,245,236, 10,227,110,172, 16,182, 17,228,204, 1, 34,167, 4, 68,243,228, 14,158,197,158, 37, + 99,140, 17,196, 3, 94,223,222, 66,114,178, 93, 49,236,241, 49, 51,246,187,161,238, 39,217,189,189,201,253,230,225, 94, 7,167, +105,198,224,187,165,224,251,236,253,110, 52, 39,186,105,194,156,197,247,210,230, 50,105,153, 24, 1,199,211, 9,147, 59,213, 73, +206,136,145, 60,190, 52, 35, 48, 99, 78,182, 75, 83, 47,152, 33,112,205,222, 30, 7, 91, 7, 72, 78,216,141,214,244,204, 98, 89, +232,202,140,211, 57, 89,193, 0, 99,136,166, 87,158,147,167,186,169, 96,244, 29, 60, 60,205,145, 96,122,251, 24,184,166,171, 9, +220,200, 36, 68, 40, 18, 32,226,110,119, 17,115,154,145,197, 66, 75,132, 98, 37,141,150,156,114,241, 20,180,170,194,241, 21, 21, +177, 89,241, 70,202, 80, 97,119,189, 83,159, 20,123,215,193,237,208,163,123, 14,249, 13,103,210,119, 15,138,223,126,255,211,248, +213,127,244,207,241, 95,255,252,111,226,207,191,242,203, 72,119, 31, 96,164, 4, 30, 6,100,188,246,160,153,140,221,200, 8,195, + 14,148, 7, 0, 1, 35, 11, 78, 67,244,245, 28, 67,148,161, 57, 53,103,104,201, 77, 39,204, 74, 96, 15,180,129, 26,251, 61,121, +174, 61,147, 90,102,186, 88,147,153,221, 8, 38, 0,160, 96,182,188,102, 4, 99, 67, 78,153,184, 7, 88, 88,140,176, 98, 22, 66, + 78,192, 16, 18,134, 16,144,104,128, 36, 53, 37, 66, 81,227, 32, 85,171,113, 83,133,201, 18,108, 69,173,162,101, 33, 64, 23, 66, + 93,249,155, 64, 29, 97, 29,100,136,203, 49, 3,114, 22,236, 78,103,112, 86,219, 75,100,184,164,202,237,244,162,147, 45,234, 96, +226,112,115, 63, 33,146,239,219, 23, 25,156, 52,211, 40, 87,255,219,134,208,180, 50,208,232, 36,109,237,177,181,250,185,150,100, +214, 77,248,122, 25,196,194,205,196,170,247,202,221,202,154, 96,225, 14,112,117,164,235,205,100,186,105,178,192,228,165, 25, 32, +238, 38,100, 21, 49,171,215,118,210, 36,170,166, 61, 97, 21,144,179, 64,236,246,250,102, 52,251,126,105,167, 80,170, 77,133, 52, +122,249,133, 20,168, 11,242,208, 34,236,218,234,200, 47,209, 5, 52,171, 17,116,144,118,235,124,167,189, 61,108,183,195,215,174, +184,214,233,159,176,185,235, 95,127,194, 31, 98,197,183, 72,192, 67,164,176,218,124,148,132, 59, 21,124,240,241, 39,184, 59, 39, +103, 33, 95,146,205,245, 73,101,114,133, 39,117, 4, 69,125,128, 24,223,152,202,144, 29,196,251,171, 3, 62,253,206,167,170,252, +240,177,187,107,249,119,186, 14,131,251, 17,254, 60,213,157,175,120,171,255,249, 95,252, 5,224, 4,183,156, 50,230, 52, 35,229, +236, 50, 50,212,204, 0,246, 29,120, 12,193,226, 64, 57, 86, 47, 4, 14, 1, 28,185, 90, 94,198, 97, 0, 17,176,219, 13, 24, 98, +196, 16, 77, 95, 28,199, 97, 81, 7,176,199,174,138,173, 47,206,211,201,108, 87,217,219,112, 70,205, 31, 47, 80,165,152,151,170, + 53, 9,133,224,230,146,181, 60,207, 72,105, 54,226,222,233, 92,205, 94,178, 67,244,183,183, 39,156,142, 39,243,102,112,203,205, +156,109,167,125, 58, 77, 56,159,207,213, 64, 41,103,115,176, 19, 79, 27, 76,115,106,108,102, 67,141,254,228, 96, 69, 58, 6, 2, +200,210,222,118,131, 77,152,211, 44,152,231, 51,210,116,182,198, 97,154,220,139,221, 61,233,201,216,234,217,165,126,101,146,203, +110,253, 90, 19,217,188, 56, 23, 93, 61, 17,123,240,203,146,159,158,178,241, 3, 24, 78,192, 99,119, 4,241,195,218, 98, 65,185, + 30,212, 41,155, 43, 90, 8,182, 95, 47,200,135, 77,145,252, 8,139,243,158,206,244,158,110,147, 21,184,126,107,196, 63,252, 45, +194, 95,254,218,127,135,159,251,242, 29, 14,159,253, 38,194,112,192,179,195,136,103,207,159, 35,238, 15, 38,113,214,140, 24, 35, +174,134,128,221, 62, 2, 97,135, 73,109, 34, 14,174,164, 0, 17, 34, 21,233, 98,168,251,109, 14, 70,188, 28, 73, 77, 58,232,147, +118,206,100, 22,187,200,238,128, 88,194,134,108,173, 3, 17, 68,118,239,133, 24, 49,107, 64,158, 25,200,166, 45, 55,106,124,132, + 80, 64,202,132,105, 18, 80,154, 48,114, 54, 54,126, 24,109,234, 22, 79,242,146, 12,169,213, 97, 89, 1,233,170, 38,224, 66, 96, +147,235, 98,171,102,109, 96,137,169, 21, 98, 28, 51,112,119, 86,132, 47,127,254,189,239,156,110, 39, 99,171,186,235, 27,161, 53, +146, 41,105, 94, 27,250,222,134, 57, 46,205,155, 72, 77,250, 58, 81,239,180,211,190,193, 61,109,105, 29, 40,210, 20,240,117,226, + 23, 53, 90,239,246,177, 16, 86,236,114,106,210,206,122,167,226, 37, 79,188,120, 2,211,170, 64,161,185,159,203,198,160,107, 70, +219,189, 56, 90,159,223,133,159, 64, 14, 9,181,100, 64, 90,201,248,150,111, 50,176,161, 91,108,131, 3, 80,145,143,246,117, 90, + 12,115, 43,177,102, 67, 89,192,104,179, 8,104, 67,250,215, 71,156, 96,227,245,191,248,156,210,242,126,171,110, 59, 66, 63, 46, +167,162, 39,192,211,212,249,186,235, 90,242,229,143,254,120,119,107,240,168, 7,115,116, 41,149,212,167,172, 17,225,194,195, 90, +171,186, 97, 19, 87,220,120,173,208,235,230,137,150,247, 7, 10,102, 35,251,205,243,244,240, 41,183,206, 70,237, 12, 41,158,218, +126,252, 40,219,206,254,198,230,148,240,181,175,127, 29,170,130,211,233,136,217, 93,218,200,189,100, 82, 50, 77,246,156,108,210, + 86, 53,207,244,228, 12,237, 37,141, 13, 72,115,194, 48,142,120,246,226, 5, 40,120,144,134,123,105,139, 67,233,102, 13,107, 48, +111, 32,212, 6,160, 52, 35,193, 19,208,180,149,140, 54, 22,179, 21, 5, 34, 51,255, 40, 63, 85,200, 87, 5,117, 42,118,202,213, + 67,222,165, 90, 41, 89,174, 67, 74,130,243, 52, 33,165,100,122,103,119, 69, 44,114, 53,219, 89,219,105, 89,206,143,224,106, 0, + 34,194, 24, 35,230,172, 70, 0,140, 1, 96,194,243,171, 29,194,184, 71, 74,185,198, 76,159,230,140,227,241, 22, 44, 22,176, 18, + 98,172, 60,148, 98, 51, 26, 73, 49,142, 3,230,140,154,115, 14, 88,177,166, 2, 3,231,217, 89,238,193,164,110,129, 65, 33,248, +116, 46,149, 92, 23, 61,248,166, 96,146, 33, 16, 50,216,222, 7,119,170, 44,178,182, 84,146, 79, 84, 17, 9, 56,105,192,235, 79, +110,192,233,246,222, 48,151, 53,141,229, 41, 14, 75,135, 8,252,201,237, 30,249,207,254, 47,252,151,191,112,192,221, 79,254,125, +124,252,193, 13,248,252, 18, 20, 25, 89, 24, 81, 5,239,189, 8,120,254,222,167, 49,133,119,144,231, 12,201, 51,206, 73, 48,221, +157,128,249, 14, 25,138,148,213,121, 9,213, 46,213,131,163,180,250,158, 18, 51,178, 88,147, 5,201,232,173,204,150,113,166, 20, +209,146,110,153,153, 45, 43, 93, 50, 4,201, 94, 85,241,236,118,191, 5,110, 2,186, 24,166,232, 8,180, 4,143, 19,212,173, 97, + 23, 11,246, 54,224, 5,170,247,191,104,132,154,102,215, 33,140,180,212,145, 16,119, 8, 63,245,249,247,190, 99,174, 72,132, 84, + 38,113,159,182,165, 59,195, 23,200, 86,155, 98, 86, 24,206,114,161, 85,110,127,150, 26,137, 17,182,139, 66,179,171,191,192, 1, +105, 61,153, 53, 44,246, 38, 62,102, 41,248,109,225,209,205,194,169, 27, 39,161,110, 24, 42, 40,209,102, 35,178,166, 90,175,139, + 95,125,205,156,249,223,245,179,212,235,216, 74,218, 19, 53, 13,130,250,125,107,165,246, 93, 48,224, 22, 57, 93,147, 97, 94, 76, + 87,218,215,132,232,210, 0,133,169, 39, 96,181,184,196,146, 21,190,250, 84,210, 86, 33,111, 87,204,151,241, 97, 15, 21,242,237, +239,173, 21, 18, 91,176, 50,117, 12,237,246,110,203, 93,247, 38, 43,218, 33, 65, 45,132,133,141,231,115,129,246,123, 33, 40, 42, +143,101,125,208, 63,143, 18, 93,137,149, 38,181, 4,137,156,206, 39,255, 89,126, 90,117, 38,188,129, 57,124,215, 7,252,208,123, +244,110,231, 25, 35, 62,248,224, 67,124,238,115,159,195,103, 63,251, 25,124,244,209, 71, 16, 89,156, 39,139, 29,171,100,197,249, +124,170,218,241,211,249,100,168, 84, 52,215, 51, 56,121, 43,165, 12, 98,224,234,249,115,140,113,196,233, 52, 97,154,230,234,147, +110,197,217, 25, 57,236,210, 30,136,235,223, 93,126,228,242,181, 92,188,213, 93, 10,183,223,239, 49, 87, 98, 93,168,141, 80,114, +150,247, 56, 70,107,150,149, 48, 12,134, 12, 12, 67,196,110, 55, 96, 28, 7, 39,165,101,204, 62,217,207,115, 66,154,179, 71,162, +138, 59,158, 69,111, 84,202,190, 90, 43,177,175, 16,227,136,201,114, 11, 16, 48,167, 9,135, 33, 66,137,113,216, 69,196,221, 1, +183,167,201, 96, 96, 16, 94,223,157,112,123,251, 26, 3,137, 49,227,171, 37,183,175, 21, 61, 69,142, 57, 66,224, 89,236,243, 84, +173, 79,115,214,186, 22, 41, 4,202, 80, 82,192, 28,221, 10,229, 98,246,224, 24, 43,232,238,179,193,193,124, 72, 28, 5, 40,131, + 80, 96,114, 56, 58,215,175,135, 96,105, 97,175, 94, 31,129,243,205,166, 43, 97, 71,196,122, 67, 95,154,113,100,124,247,207, 4, + 95,215,127,143, 95,248,165,159,197,203,253, 55,113,247,234, 37, 36, 29, 49, 9,144,167,140,183,199, 25,135, 79,189,192, 20, 62, +133, 84, 56, 8,126, 93, 36,201,152,146, 64, 83, 2, 36, 85, 25, 89, 57,195,139, 23,187, 56,199, 9,206,156,175,164, 79,129,113, +159, 72, 45,158,181, 37,141,187, 42, 65,196,248, 82,196, 25,153, 2, 72,168,250,185, 7,181, 88, 91,138,102, 11,155,136,129, 12, +176, 38,196,168,246,254,242, 80,207, 30,117, 24,191,156, 71,222,227, 54,171, 54,234,226,175, 75,154, 92, 69,133,125,175,207,181, +254,217,237,140,195,184,156, 46,178,210,149,149, 29,184, 53,148,117, 35,220,232,185, 23, 44,189,232, 4,203, 66, 95,180,199,217, +215,164,181, 22, 50, 95, 75,224, 54,217,241,139,148,175,219,126,183,165,136, 47,136,112, 84,119, 71,132,214,137,110,173,174,104, +111,167,209,155,183, 59,103,221,230, 0,244, 11, 3,194, 61,222, 97, 40, 30,223,102, 7,235, 63,199,212,173, 9, 46,229,125,218, + 89,152,234,138, 61, 69,181, 97,232,153,251,109,204,107,171,217,215,174,201, 90,180,226,151, 34, 47,237,188,208,151,215, 87, 43, + 65, 15, 43, 66,158,182, 77, 81,251,161,198,125,158,237,180, 49,244,210, 34, 11,172,128, 5,119,156,130,213, 2,161,238,247, 32, + 15, 3,129,143, 78, 20,232,245,253,253,186, 98,131,157, 79,235, 29,226,250,123, 11,191,162,174, 54,220, 72,227, 33,130, 81,215, +240,234,211, 10,177, 62,245,107, 63, 4,118,207,204,144,156,240,239,254,224,223, 97, 55,238, 16, 60,208, 67,125,167, 92, 27, 9, + 53, 35,154,148,146,145,210, 56, 32, 14,195, 2, 19, 91,128,181,173, 34, 82, 54,217, 80, 48, 88, 55, 59,121,209,118,201,138, 24, + 7,115,206,242, 98, 95,200,112,196, 64,136,161,102,176,199, 24,234,234,235,176,223, 27,155,222,201,124, 90,160, 98, 15,146,225, +192,134, 68,206, 51, 68, 44,224,197, 36,142, 1,138,128, 41, 47,190, 13, 68,240, 80,151,132, 24,109,178, 45, 77,130,229,204, 91, +115, 32, 89,170, 54,218,156,217,164, 94, 7, 89,205, 97, 46,144,241, 41,174,175, 70, 28,174,174,112,158, 5,121, 58,129,200,164, +125,243, 60,153,131, 26,219, 26, 96,154, 83,149,176, 45,241,206,166,145,207,110,101, 74, 80,111, 56,140,109,205, 37,121,206,125, +221,181,253,220,137,120, 52,171,107,242,217, 72, 99,145,141,176,103,146,172, 92,155,120,114,197, 66, 78,201,172, 71, 41,116,171, +141, 33, 40,120, 24,158,230, 36,247, 4, 91,248,118,141,122, 21, 20,249,197, 91,248,111,254,201, 71,248,222,175,254,183,248,153, +207,223,225,221, 47,252, 52,246,215,239, 96,183, 27, 65, 67,196, 71,119,140,233,213,107, 4,189, 53,184, 91, 25,147, 56,162,192, +222,116,197, 96,254,231,236,108,241,106,229,218,164,120,194, 72,180, 28, 8, 74,177,238,210, 75,177, 12,206, 11,177,226,206, 8, +172,240, 68, 27, 79,198, 83,176, 22,110,130, 98, 96, 66,185,196, 51, 41, 18,216, 18, 79, 9, 56, 11,225, 52, 43, 52,205, 8,200, +208,192,200, 20,171, 68, 90, 60,141,207,100,144,197, 47,158, 61,115,189, 40,159, 44, 21,142,218,201,156, 86,131, 88,131, 26,134, + 47,253,228,123,223, 57,157, 38, 71, 89,220,159, 22,173, 70,122, 25,237,219, 93,176, 54,228, 48,246,189,186,174, 38, 5,106, 8, +115, 23, 60, 99,186, 28, 74,182,230,177,251,160,119,172, 97,122,186,156, 56,139,132,137,233,114,158,105,167,219, 74, 74,112,179, + 1,194,125,129, 91,151, 89,229, 29,135,170, 61,152,181,181, 41,165, 13, 54, 19, 53,235, 3, 5, 58,115,213,118,138,166, 53,234, +188, 90, 77,208,197, 99,211, 7,166, 97,162, 21,214, 80,164,119,122,129,174,119,104, 69, 36,198,200,112,223, 2,109, 88,156,122, + 73, 36,243,239,109, 13,226, 91,211,249,166,199,123, 83, 44,235,247,245,129,238,239, 65,123, 89,234,174,199, 55, 42,111,229,194, + 7, 61,192, 15,216,184, 71, 93, 61,200,203,139,121,251,128,211, 94,161,240, 38,144,251,143,186, 71,223,156,214, 7,155,214,191, +242,213,175,226,249,139,231,248,193, 15,126,224,153, 0, 82,161,240, 52,207,198, 37,153,211, 18, 73,236,142,105,192,170, 1,144, +140,253,213, 1,135,235,103,245, 93,153,166, 2,233,219, 53, 83,165,108, 49, 56,161,142,221,195,158, 43, 40, 90,224,173, 16, 8, +135,195, 30,243,108,222,236, 37,179,189,112, 84,216,167,214,224, 9,103,228,137,107,204,236,140, 98,129,250,206, 58,167, 12, 82, + 91, 57,164,100,210, 67,201,166, 17,207,238,106, 88,164,146, 34, 38,127, 50,125,185,127, 22, 84,176,115,173, 61, 23, 31,113, 16, +246,251,157, 73,146, 32,136, 33,184,223,132, 51,222,115,170,211,112, 22, 91, 3, 12,163, 77,247,168,144,121, 64, 18,130,230,100, +201,108, 28,107, 94,123,185, 2, 2,163,166,189, 5,178,160,150,218,103,122,128,139,186,164,206, 94, 19, 47, 80,117, 69,177,112, +104,180,168,194,192,206, 13,176, 2,151,137,240,234, 54, 33,223,126, 98,210, 49,208, 38, 75,230,135,218,243, 64,113, 61, 2,127, +124,179,199,203,255,240, 71,248,149,159,206,216,255,212,127,134,187, 41, 66,206, 39, 51,233,153, 4,239, 29,206,208, 23,111,227, +245,249,128,243,221, 13, 78,167, 35, 78,199, 19,230,211,157, 79,238,105,145,206,250, 26,187,178,202,235, 0,107,187, 35,117,162, +115,137, 82, 37,159, 28,109,150, 95,114,210, 85, 27, 45,143, 46, 44,117,165,133,235, 85, 50,211, 5,193,206, 62,151,191, 21,148, +207, 92, 36,165,166, 23,182,106,169,138,244,250,170, 68,169, 49, 62, 83,242, 65, 58, 23,242, 3, 74, 22, 75,175, 30,179,199, 58, +140, 3,194,151, 62,247,222,119,142,167,105, 49, 53,193, 58,226,148,238,241,244,160, 70, 35,222, 78,128,253,247,218,201, 25,247, +236,212,239,187,175,237, 95,235,247,194,180, 56, 12,108,204,201, 84,243,109,219,130,183, 76,242,122,143, 24,104, 11,178,238,225, +114, 90,183, 36,164, 93, 30,119,197,212, 59,205, 58,234,125,146,162,143,172, 85,234,152,233,151,175,213, 82, 36,181, 37, 51,173, + 27,141,173,201,150, 46, 65, 97, 52,176, 92,183,110,166, 62, 82,181,251, 32,128, 16,253,201,103,109,246,232,254,132,182,216,215, + 79, 45,226,143,239,220,169,127, 73,239,173,145,116,209,156,188,129, 1,236, 19,202,230,211,194, 91,106,195, 68,111, 80,125, 91, +194,225, 19,209, 6,218,186,223, 7, 56, 0,111,250, 39,132,136,151, 31,191,196,139,183, 94,224, 27, 95,255, 42,222,127,255, 7, + 56, 79,211, 18,240, 2,212,189,115, 57,164, 82, 18,159, 36,169, 18,238, 0,139,172,204,201,252, 14,158,189,120,142, 16,134,170, +135, 78, 41,215,103,145,115, 54,242, 28, 7, 79,122, 91, 32,226,102,217, 5, 6,217, 20, 23, 7,204,179,133,147, 4,230,133,134, +148,179,195,208, 25, 87,251,157,161, 0,141,229,240, 16,131,185,227,141, 70,234,179,136,212,101,162,155,167,132,156,140, 31,144, +252,177,171,212,108, 45, 36, 75,253,168,230, 55,251, 49, 34,142, 59,207, 62, 87, 12,131, 21,224, 24,138, 83,219, 0, 14,209,137, +134,147,217,144,187,155, 93,206,130, 33,152,227,155, 33, 1,173,175,180, 25,221,104, 78, 38, 7,116, 67,153, 54, 37, 81,155,232, +104,118,203, 83,128,170,140, 45,242,130,132, 17, 27,226,193, 30,174, 93, 72,157,197, 45,147, 9,117,215,174, 69, 83,229,159,255, +215,183, 51,210,221, 39,158, 82, 73, 15, 92,252,143, 95,239,181, 97,215, 69, 72,178,223, 71,252,254,247, 8,167, 63,249, 46,126, +241,103,223,194,254, 63,250,121,188, 62, 3,233,124,194,160, 25,159, 58,100,228,231,111,227,110,186,194,124,188,193,105,154,144, +207, 70,130,156,230,140, 60, 77, 48, 51,244,110,249,219,248,133,246,153, 15, 89,220,134,149, 10, 3,157,107,190, 65,145,239,149, +215, 69, 37,131,213, 87, 68,196, 29,130,218, 34,148,236,198, 84,236, 62, 14, 32,174,249,243,236, 74,130,226,239, 80,157, 16,213, +216,240,234, 70,112,229,125,229,194,146,175,123,120,106,108,197, 23,249,112,137, 3,223, 13, 3,194,151,127,242,189,239,156,142, +231,138, 0,139,150,194, 64, 13,195,189, 23,144,107,119,152, 47,119, 0,117,222,128, 63,152, 75,173,109,211, 87,208,229,126,186, +221,143, 19,250, 0, 44,234,138,120,211, 2, 52,132,183,154,246,182,138,115,173,102, 48, 45, 51,254,158, 6,131,188,216,147, 46, + 5, 82, 47,134,109, 90,224, 14,234,129,252,182, 8,111, 77,196,168,187,242,229,204, 45,186, 71,162,109, 62, 1,249, 14,188,151, +159, 45,175,163, 94,236,187, 27,114, 32, 53,241,172,212, 30,137,253, 0,185, 36, 14,221,215, 12,216,228, 51,187,116,169, 20,158, + 37,119,189, 39,227, 61,133, 4,247,208,100, 77, 15,113, 32,222,164, 68,175,216,116,244,212,202, 74,192,138, 48,240,164,251, 93, +118, 94,116,177,106,122,236,238, 10,121,239, 77, 10,250,218,227,253,169,170,251, 55,253,115, 60,158,240,173,111,127, 27,129,129, +155,215, 55,198, 44,119,146, 27, 26, 25,171,170, 26,129,204,125, 7,164, 73, 11,179,105,216, 38,162,235,231,207,192,193,138,177, +249,165,231,186,159,142,238,228, 85,140, 56,138,161, 74,105, 12, 2, 91, 86, 56, 49, 99,191, 63, 32,101, 65,154,103, 48,177,101, +190,195,163, 86, 85,109,162, 21,155,204,199,113,112,246,186, 77,248, 49, 4,223,171,239,113,156, 18,206,167, 51,230, 52, 23,216, +199,152,243, 57,249,132,158,172,192, 17,176, 27, 7, 40, 24,243, 60, 97,116,242, 29,193,162, 62, 5,206, 92,247, 3, 59, 6,198, + 16,163,175, 31,216,155, 32,203, 97, 47,238,121,198,212, 55, 68,128, 56, 56, 25,206,141,189, 2, 25,188, 92, 76, 76, 68,171, 19, + 28,209,194, 98, 15, 30, 7, 27,200, 16,199,156,197,139,179,233,211, 89, 5, 97, 24, 22, 35, 43,111, 40,224, 36,210, 44,139, 73, + 22,107,182,228, 54, 81, 12, 36,200, 20, 33, 41, 97,140,138, 59,137,184,123,245, 26, 65,167,142, 9,191, 94, 15, 62, 81, 98,113, + 49, 44, 5, 2,120, 63,226,127,255, 15,103,204,127,244, 91,248,229,191,243, 28,251,175,252,231,120,249,154, 32,167, 87, 56, 68, + 1,237,247,184,157,119,152,143,183,230,119,126,182,247,109,158, 51, 52,217,250, 66,200, 84, 72,154,181,106,206,203,202,178,176, +248,203, 74,197,200,117,201, 80, 72, 31,152,109,104,151,229,124, 35,212,180,183,226, 48,199,205, 55, 99, 51,221,150,151, 32, 3, + 30, 6, 99, 95,140,197,212,203,121, 35,196,228,206,117,236, 86,194,188,172,140, 9,171,112, 23, 44,185,235, 21,121,160, 78,129, + 68, 80,155,212,191,248,185,247,190,115, 60,158,141,114,191, 4,116,247, 36,177,166,128, 83, 75,144,194, 90,115,189,248,178,235, +230,180, 68, 93,241,163,203,237,249, 35,240,123,179, 43, 95, 85,227,114,251, 3, 17, 2,105,235,228,222,184,188,177,135,218,247, +235, 0,218, 40,196,117,234,165,254,241,182, 82, 56, 93,145,203,148, 30, 98, 34, 47, 83,123,183, 25, 38, 91, 96,148,221, 49,211, + 37, 50, 0,119,244, 91, 20,119, 11, 18,210, 41,236,105,155,145,222,149, 35,234,185,147,109,206,252, 66, 43,167,139,219, 41,151, + 6,145, 54, 77, 77,105,234,250,251,209, 13,166,254,118,163,240, 56,235,189,107,220,180,189,207,133,159,122, 31,212,223, 18,227, +116,213, 8, 61,105, 48,255,161, 70,252,101,253,160,244,180, 95,175,136,150, 94, 54,135,111,194,116,215,191, 70,216,189,157,244, + 99,140,120,255,253,247,241,233,119,127, 12, 95,254,210, 23,241,209, 71, 31,154,131,151,115, 27,202,142,186,248,106,151,252,246, + 66,222, 42,197,131,125, 29,166, 98, 5,102,127,184, 50, 11,217, 57, 53, 89, 12, 90, 25,224,113,136,174, 9, 47,225, 49,236, 94, +230,182,111, 28,135, 0,246, 41,189, 20, 92,168, 79,246,173, 87, 70, 9, 18,113, 72, 90, 61, 15, 60, 4,198,243,235, 43, 12,227, + 14,175,111,238,144,230,201,154, 87,119,207, 43,143, 77,154,189,179,170, 65,232, 2,211,159,151,236,109,179,181, 21, 12, 49, 96, +183,115,183, 50,178,152, 89, 10,131, 73,203,210, 12,144, 98, 78,138,105,206, 96,100, 12,195, 0, 37, 70,116, 51, 31,245,120,218, + 82, 56,230, 12,179,134, 45,254, 20,132,234, 94,169, 30, 85, 27, 72,170,156,141,168, 56, 39, 54,203, 58, 90, 60, 62, 3,151,148, + 55,113, 2,152,212, 16, 24,248, 20,169,196, 72, 73, 49,152, 99,139,157,181,126,123,119,153,113,124,125, 3,150,163, 7,144, 52, +106,161, 55,252,148,180,231, 23,209, 34, 23, 29, 89, 49, 94,239,241, 91,127,114,198,247,191,251, 91,248,197,175, 17,222,250,250, +127,130, 79, 94, 7, 28,210, 75, 12, 87, 1, 71,185, 2,206,119, 16,157,112, 74,142,170,204, 51,114,154,144,213,158,211,156, 21, +154, 50,152,102,123, 13,124,226, 83, 90,130,200,202,117, 75, 98, 49,101, 54, 97,115,199, 40, 47,126, 38,133,152, 92, 62,216, 53, + 32, 85,151, 42, 35,108,108,125,201, 90,115,214, 33, 10,150, 12,130, 64,216,204,113,160, 86,236, 85,196,246,243,108, 4,207, 24, + 2, 56,184,202,131,130,203,225, 80, 19,227, 26,113,119, 93, 1, 72, 83,236,119,187, 1,225, 11, 63,241,222,119,206,167,105,129, +165,117, 67, 98,213, 96,215,117,146, 38, 90, 21, 98,170,169, 97,104,248,197,218,183, 5, 93, 49,160,203,227,123, 11,236, 92, 29, +142,180, 82,121, 57,172, 65,140, 93, 32,140,112, 57, 96, 45,114, 75,224,202,178, 59,111, 88,132, 46, 68,192, 74,214,228,165,182, + 41, 13,188,242,184,167, 5, 33, 88, 21,125,218, 92, 45,172, 25,250,218, 73,199, 72, 11,154,208, 19, 4, 24,116,209,240,172, 89, +237, 29,219,157, 54,248,249,253, 38, 96,217, 49,123,152,128,110,242,249,105, 27, 77,161,130,128,208, 69,245,161, 39, 78,232,247, + 21,241,242, 60,104,147, 64,214,116,175,247, 80,188,137,104,123,216,238, 86, 59,107,169,154,246, 65,229, 88,179,213,168, 15, 47, +127,224,136,234,204,127,168, 49, 82,122, 10,220,174,253,251,245, 38, 5,253,175,139, 24,183,221, 18,217,189, 72,154,241,201,171, +215,248,214,183,190,137,243,249,140,215,175, 95,187,139,153, 93, 91,243,100, 73, 81,229,137,100, 49,214,122, 59,177, 23,165,130, +136,201,208, 14,215, 87,136,113,192,233,116, 50, 66, 91,157,158, 76,143, 92, 60,231, 67, 8,213,115,126, 28, 12,122,206, 57,225, +250,176,199,156, 4,211, 52, 85, 73, 91,118,237,250, 16,162, 29,224,197,237,144, 77,102,198,193,189,187,149, 92, 66, 54,224, 60, +103, 68,182,219,174, 92,142,178,247,158,109,239, 45,162,174,201,183,160,151, 82, 20, 69, 76, 62,182, 27, 35,134,113, 68, 28, 34, +226, 48, 34,120, 86, 58, 40,120,184,136, 5,170,164,172,238,106, 55, 57,148,239,186,122,223,255, 39,103, 97,155,241, 14,129,196, +244,231, 82, 56,205,174, 61,215,156,236,221,145,236,146,185,104,182,211, 53,168, 26, 30, 1, 42, 8,193, 14,126,207, 70,246,162, + 38,213,129,141, 96, 30,249,129, 96,174,113,234,102, 98,206,202, 55,207,119, 67, 4, 38, 1,110,111,143,160,249,214,214, 35, 63, + 2, 38, 68,181, 33,191,240,253,196,200,138,221,245, 1,191,253,167, 25,223,255,183,255, 2,191,242,183,142,120,241, 51,191,132, +243,105,143, 16, 39,100,126,134,243,148,113,151, 18, 78,103, 65, 58,157, 32,233,188,112, 31,178, 17, 50,141,175,224, 73,104, 94, + 76,203, 53, 91,252, 65,172,152, 23,251,101, 54,127, 22, 86,100,132,133,140, 44,134, 48,217, 74,137,151,184,242,198,174,187,184, +195,177, 47,176,217,227, 87, 51, 19, 8, 30,144, 3,203,105, 47,123,124, 81,197, 92,146,225,196, 76,102, 18, 17, 20, 1,129,204, +164,200, 10,187,253, 60, 90,147, 55,127, 78,212,224,116,187, 33,218,164,126, 62, 77,141, 19,219,146,161,174,221,143,219,109, 68, +183,131,141,206, 18, 92, 67,127,245, 5,107,244,234,180, 81, 48,209,237,111,123,246,222, 69, 33,188,103,170, 87, 42,242,151,101, +210,205,170,200,173, 19, 27, 45,247, 35,116,121,251,220, 30,202,180, 66, 19, 86,219,254,234,145, 79, 43,109,114,251, 58, 17, 86, +153,243,157,119,218,106,136,222,226, 43,112,227,157, 95, 30,147, 86,114, 80, 95,211,188, 1, 35,234, 63, 86,205,237,134, 13,248, +255, 2,162,111,120, 16,171, 50,221,140,129,122,193, 41, 80,194, 74,235, 78,247, 20,247,167, 23,246,173,239,209, 74,209,240,144, +221,250,154, 8,216, 54,117,250, 32, 62, 79,141,175,253,170,205,164,199, 24,232, 84,249, 18,164,212,147, 96, 26, 77,125,239,238, +215, 40, 66,158,200, 20,126,106,161,255,107, 43,232,205,110,111, 28, 7,188,255,254,251,120,247, 51,159,197, 23,191,240,121,124, +248,225,135, 53,144,196, 44, 70,197,146,200, 6,163,204, 26,155, 87, 59,190,139, 73,211,178,201,112,156, 80,119, 56, 92,213, 68, +180, 98, 85,202,196,152,230,228,102, 51, 38,116, 77,142, 27, 15, 49, 34, 59, 25,121,220,237,141, 37,159, 82, 93,177,193, 61, 26, +202, 90, 48,184,234, 32,198,128,253,110,135, 16,131,231,185, 91, 46,246, 16,227,146,206, 22,162,223,132, 56,171, 92,171, 1,151, +122,202,150,249,121, 91,161, 85,226, 69,159, 76,214, 32,144, 23,230,148,146,215,224, 0,166,128,236,175,227,156, 4, 57, 77, 85, +118, 52, 59, 99, 63,123, 80, 75,203,126, 54,152, 29,117,183, 77,100,141, 6, 85,159,112, 70, 8,108, 67,140, 23, 19,102,242,216, +103,173,231, 72, 86,242,105, 92, 26,147, 38, 56, 20,159, 17, 3, 0,138,213, 76,135,161, 56,140, 17, 20, 71,136, 24, 8, 61,165, + 12,164, 4,138,132,219,163, 64, 78,175,107,147,131,251,164,213,244,216,181,218, 15, 44,107,107,227, 8,197,225,217,136,223,253, +222,136,247,127,231, 95,227,239,127,243,136,195,207,252, 10, 62,186,217,225,116, 60,226, 60, 39,220,158, 38, 76,199, 59,228,233, +104,161, 73,146,145, 61, 10,149,145, 17, 72,106, 51, 89, 94, 17,109,200,156, 82,148, 81,176,152,113, 72,177,119,105,179, 77,138, +169,213,226,254, 6, 98, 72,179,110, 99, 88,211, 87, 28,231,205, 49,174, 73,149,113, 34,101,134,186, 20, 78, 0,205,126,219,234, +147,123,198,156,103,164,217, 72,155,146, 50, 72,103, 71, 71,203,251, 44,139, 1, 77, 29,206,124,248, 35, 32,142, 35,194, 23, 63, +255,238,119,206,231,201,242, 95,139,147, 89, 53, 49,113,221, 34, 89,220,225, 33, 16,174, 2,227, 42, 16,246,214,123, 52,161, 38, + 13,193,110,101, 4,178,102, 33, 95,192,203, 27,236,119, 94, 65,240,186,121,189, 80,117,144,173,157, 83,155,182, 70,237,110,153, +234,206,146,170,230,126, 9,171,161,166, 80,110,104,254,253,205,108,141,108,180, 55, 77,162, 75,130, 22,225,126, 93,251,125,173, + 12,187, 1, 16, 46, 6, 97, 90,138,198, 61, 44,247,139,186,208,132,241, 84,194, 98,133,210,181, 49,137, 89,145,231, 54,139, 44, +117, 77, 76, 7,183,111, 18, 31,159, 88,200, 55, 26, 27, 90,255, 44,245,133,253, 73,208,120, 85, 32, 92,224, 36, 15,255, 82,121, + 60,170, 15,160, 15,171, 89, 91, 87,104, 3,245,215,230,102,211,209,216, 66,190,105, 61,127, 72, 4,240,215, 98, 59,135, 86,101, +185, 32, 72, 57,205,248,240,227, 79,240,237,111,127, 11, 42, 9,199,227,201,229, 94,234,251,224, 37, 67, 92, 85,106, 88, 73,129, +194,235, 14,215,223,143,192,132,171,235,107,132, 56,166,222,148,179, 0, 0, 32, 0, 73, 68, 65, 84,152,219,155, 23,194,156,141, +220, 22, 61,165, 75, 61,115, 96,240, 73, 59,205, 9,135,221,104,197,102,154, 23,174, 12,193, 92,217,216,138,104,206,234, 54,178, + 35, 2, 71,215,147,219, 62,156, 84, 16, 99,196, 48,140, 24,247,123,128, 24,119,199,147,177,222,157, 49, 95,217,238,196,149, 19, + 0, 49, 91,209, 16,184,174,203,134,104, 69,184,234,153,243,140,195,110,168, 26,249,172, 12,201, 51,230,108, 16,124,117,179, 83, +115,163, 11,148, 29, 90, 55,114, 90,167, 84, 38, 70, 80,193, 48, 4, 87,161,216, 19,205, 37, 83,130, 67,125,238,193, 82,101,140, +209,238,252,155,156, 61, 49,172,238,135,123,227,146,146,180, 87, 63,254,213, 42,214,226,109,197, 11, 73,206, 9,172, 9, 20, 24, + 55,103, 32,221,221,130, 57, 65,125,207,124, 1, 31, 61, 38, 51, 41, 82,216, 78, 2,186, 65,212, 4,112,117, 61,224,119,191,191, +195, 71,223,253, 55,248,219, 95, 59, 98,250,241, 95,196,235,143, 19, 78,119, 31, 34,159, 79, 72,211, 4, 77, 19,166,156,145,102, + 1,114, 70,208, 12,162,108,181,204,165,105,212, 30,168, 62,177,139,186,159,189,102,115,102, 83,184, 37,172, 43, 0,124,202, 46, +246,199, 96, 27, 88,197,125, 93,201,155, 41, 45, 81,193,180, 48,212,219,129,167, 12,140, 37,195, 36, 66,193,110,207,206,228,131, +169,199, 1, 51, 8, 81,197,108,101,225,133,159,101, 25, 67,165, 72,121,179, 17,236, 84, 1,202,214, 8,141, 14,191, 31,143,147, +251,211, 46,147,166,237, 32,236, 3, 50,196,136,195, 16,112, 24, 3, 14,209,131, 91, 20,152, 5,152,156, 16,208, 66,181,139,238, + 81, 31, 40,108,216,166,151,223,207,179,194,118,112, 38, 53,201,114, 88,133,191,180, 79,168, 4,240,181,151,243, 82,248, 55, 87, + 1,164,171,171,174, 61, 51,123, 54, 58,221,195,188,190,104, 66,186, 98,164, 23,251,113,169,135, 42, 93,202,241,136, 58, 51,157, +203,168,216,229,142,185,249, 92, 73, 67,200,107, 24, 6,155,124, 21, 90,173, 87,168,127,165, 47,220,254,222,180,104,111,195,236, + 4,162,251,154,123,234,173,231,215,138, 8,162,123, 10,158,118, 86,191, 68, 79, 36,200,109, 77,205,244, 16,189,110, 53,225, 83, +239,254,167, 15,160, 9,245,247,232,205,232,127,127,163, 59,244,246,150, 59,210,134, 98,183, 27,241,254,247,190,143,171,231,111, +227,111,125,227,171,248,232,195,143, 43,188,205, 30,145,153,230,228,150,156, 86, 44,202,161, 54, 37, 35,154, 5, 38,119,101,179, +200, 80, 14,140,221, 97,239, 19, 58, 16, 67,244,191, 93,186,227,251,249,221, 96, 22,178,231,148, 64,158, 83,158,196, 38, 36, 59, + 24, 13, 22, 53,166,185, 65,151,115,182,251,140, 62,221,151, 67, 86, 81, 82, 21,151,134,124,242,228, 50, 11,253,177,226, 61,165, +132,187,227, 9,231,211,217,199, 90,251,253,209, 13,101, 10, 81,112,191,223,129, 56,186, 23, 61, 33,122, 44, 42, 60,117, 46,146, + 49,229,207,167,179,133,122,136, 57,215,169,204, 22, 40, 82, 38,110, 48,166, 41,131, 52,129,163,193,233,228, 44,125, 26,118,152, +178, 58, 98, 64, 22,205, 25, 92, 96, 74,166,199, 87,182, 52, 49, 53, 74, 55,178,147,222, 66,108,226,112, 81,153,204,126,225, 73, +195, 68, 55, 84, 0, 10, 4, 5,146, 75,184, 40, 16, 82, 6, 8, 25, 33, 48,238, 18,227,124,251, 26, 92,200,114,244, 20, 25,198, +234, 58,237,200, 49,247,199, 15,169, 23,246,195, 85,196,239,254,229,136, 23,127,246,219,248,198, 79,157,113,123,248, 26,230,211, +132,121, 58, 98, 78, 9,121,206,152,114, 70,158, 51, 66,158, 64,108,147,183, 8,187,108, 77, 12, 22, 39,174,153,230, 80, 71,118, +221,115,192,248, 4, 37,142, 76, 61, 46,117,137, 83, 45,254,251, 76,108, 69,191, 72, 48,125,109, 84,189, 84,202,247,120,137,183, +134,146, 89,175,147,214, 52, 55, 45, 80, 62,185, 14, 65, 25,177, 32, 52,129,173, 65,141, 1, 20,108,117, 67, 28, 16,137, 17,130, + 33, 85,228, 72, 17,123,122, 26, 19,155,249, 76, 19,212, 85, 71,250,186, 53,102,118,184, 42, 24, 17, 3,192,156, 21,175,102,197, +135, 89,241, 74,129,249, 98,119,222,236, 47,169,175,246,235,140,150,246, 45,236,204, 81,232,254,115,246,114,170,209, 46,154, 85, + 20, 72,186,228,149, 23,230,163,174,204, 77, 22,151, 54, 19,248,231,134,144,198,221,189, 46,187,103,180, 70,250, 88,148, 2, 76, + 45,251, 83, 47,229,201,205,238,148, 86, 47, 0, 67, 54, 99,103, 75, 84,172,104,223, 80, 72, 19,143,186, 54,197,105,205,199,150, + 85, 72,163,173, 46, 4, 25,172,220,237, 54, 34,107,171,207,121,227, 88, 36,237,123,179,105,202,163,151,131,226,134, 60, 75, 47, +188,228, 47,163,111,151,151, 83, 47, 6,129,135, 10,217, 42, 65,192, 31,247,226, 21,136,123,111, 75,155,195,101, 5, 3, 52,143, + 97,237,255,190, 54,254, 81, 21,148, 16,132,251,138,172,172,188,248, 43, 74, 79,248,255,197, 31,149,222, 12,169, 52, 41,170,132, +103,215, 7,252,230,191,252, 77,124,239, 7, 47,241,147,159,255,113, 39,123,162, 78,235, 28, 8, 42,168,114, 29,114,166,182, 21, +174, 96, 5, 40,132, 26,157,123,119,123,139, 52, 37, 92, 29, 14,184,190,190,174,182,190,204, 17,129,131,195,209,230,112, 54, 39, + 65,154,108, 10, 38, 14,200,105,118,139, 86,243, 76, 31, 98,172, 70, 48, 28, 9,135,221,136, 24, 3,196, 33,115,133,184,133,173, +233,179,211,108, 30,239,251,200,184,218, 13,102, 8, 21, 2, 68,201, 72, 86,226,167, 97,145, 49,177, 77,193, 37, 86, 86,179,237, +162,143,167, 25,164, 54,177, 7,182,208,158, 66,240,115, 99,210,234,172, 55, 68,219,233, 71, 82,236,198, 1, 52, 12,110,104, 19, +252, 58, 48,219,218, 52,167,106,209, 58, 37,193,249, 60, 33,146, 79,144, 80, 79, 77, 11, 78,226, 50, 68, 64,220, 45,196,152,240, +238,185, 17, 66, 99,188, 66,158,178,103,207, 13,110,144, 67, 37, 2, 86,109,135, 31,144,145, 0,228, 89, 64, 58, 27,139,220,245, +249,164,130,195, 62, 0,195,161,179, 90,190,175, 47,220,252, 50,173, 6, 39,221, 30,213,181, 43,236,138,253,243, 29,238, 62,217, + 97,248,254,111, 34, 12,239, 67,195, 21, 64, 3,200,156,219, 1,177, 98, 75,108,171, 86, 65,240,247,201,130,122,204, 20, 45, 85, +224,154,170,228, 44,212,192,148,224,240,139, 80, 25,201,203,142,222,222,239,156,204,100,201, 26, 1, 67,108,224,156, 6, 59,175, +157,111,225,136, 55, 19, 91, 33, 38, 32,195,246,231, 73,205,200,198,245,133, 8, 48,114, 55, 23, 7, 55, 18, 8, 1, 73,131,145, +238,192, 32, 10,102, 57, 27, 9, 20,162,173,138,226, 0,132, 29,148, 70, 40, 98, 53,184, 98, 99,131,107,179, 57,134,127,147, 16, +193, 54,145,231,140,219,243,132, 87,199, 25, 31,157, 50, 94,206,130, 59, 1, 18, 86,174,108,205,212,219,196,105, 47, 50,199,170, + 47, 93,206,207,139, 34,221,212,197, 22, 70, 7,173,208, 0, 44,182,168, 53, 38,180,113, 3, 43,166, 57,236,144, 54, 53,249, 40, +221,237, 52,137, 67, 11,233, 77,107,120,202,150, 74,163, 48, 38,219,206,228,130,233,174, 27, 77, 9,173,247, 79,139, 41,138,234, +150,204,115,237,130,167,189, 51, 95, 23, 45,187,148,223, 26,128,162,109,221,214,138, 2, 20,215,191, 54,188, 5,186,184,238,213, + 73,223,157,194, 90,124, 76,165,117, 7,212,134,181,252, 64,129,190, 47, 47,125,221, 24, 52,239, 95,199,165, 80,189,112, 36, 92, +191, 31,186,153,100,166, 23,239, 89,213, 56,183,201,118,109, 55,217, 69, 38,209, 69,195,210,121, 46,107,243,130,150,219,174,136, +151, 62, 60,105,235,114, 80,190,233, 12,189,142,219, 85,125,186, 41,206, 99, 63,187, 94,175,244, 88,188, 98,119,184,194,249,230, + 37,126,253,127,249, 13,236, 15,207,241,206,219,111, 33,165,100,208,247, 48, 88, 68, 42,145,201,139, 80, 15,153,234, 76,102,169, + 89, 30,180, 65,140,121, 78,248,228,147, 79,204,155,125, 24,113,216,143,184,186, 58,120,241,116,215, 55,207, 73,159,230, 9,135, +145,113,184,186,178, 56, 77,230,234, 94, 73, 30,247, 74, 78,206, 51,230,187,133,162, 8,216,141, 87,236,231, 9,206, 7, 98,135, + 96, 97, 7,101, 33,173,229,148, 49, 79,103,168,154,212, 44,120,230,246,121, 50, 45,252,110,140, 24,130,161, 2, 74,100,172,121, + 77,216,239, 45,186, 53, 22,215,181,234,192,168, 24,162,175, 1, 66,132,146, 57,187, 37, 33,231, 3, 72, 69,164,118, 67, 68, 24, + 6,211,220,187, 92, 46,139, 32,207, 19, 34, 41,226,254, 0,112,172, 7,172,249,183, 51, 78,153,144,167,201,208, 72,207, 26, 39, +191, 94,171, 7,127, 99, 21, 27,216,158,115,118,252,146, 1,140,145,177, 31, 13, 21,200,202, 96,153,109,136,200,150,216,150,193, +200,179, 96, 31, 20, 97,127, 48,232,122,123, 34,121, 26,214,244,134,215, 62, 67, 16,135, 1, 97, 60, 32, 14, 17, 33,140, 21, 38, + 39,102,132,210, 20,177,165,219,149,181, 68, 41,216, 11, 49, 46, 55,136, 38, 33, 4, 67, 57, 68, 9, 1,234, 83,112,129,220, 45, +198, 57,150,233,216,111, 84, 61,240,101,118, 66, 30,235, 98,219, 45,206,113,144, 70, 50,200,161,240, 43, 34, 32,106, 82,201,148, +220,115,223,107,111, 32,247, 32,176,166, 55,131, 12, 13,159, 21,167, 41,227, 60, 39,107,108,213, 92,235,236,245, 55,242,221, 44, +132, 57,187, 92,243, 75, 63,241,238,119, 78,167,185,153,202,150,204,110, 75, 10,147,186,211,154,187, 20,177,149,173,234,198,126, + 81, 87,158,216,212,233,239, 46, 97,223,245, 12, 85,243,200,171,221,235,246,148,181,102,228,175, 73, 96,109,240, 73, 89, 8,104, +179,111,238,110,203,191, 30,154, 2, 33, 27,215, 35,109, 60,226, 22, 81, 90, 51,198, 47,186, 3,218,102,105, 99, 83,174,134, 46, +115,125,235,119, 8,180,233,210,167, 23,204,244,222,247,124,177, 97, 45,228,194, 69,154, 88, 96,242, 26, 44,226, 31, 2,189,215, +160,135,182, 85, 13, 79,128,228,239,251, 90,251,159, 91,171, 15,108, 52, 56,219,124,141, 21,255,160,172, 2, 91,246,127,123,209, + 60,166, 43,107,195, 86,126, 84, 53, 56,253,112, 63, 74, 64,181,251,125,202, 31, 81,197, 97, 55,226,234,106,111, 4, 45,209, 94, + 49,176, 9,157, 46, 69,190, 52,129,135,195, 30,127,245, 23,127,142, 51, 34,126,238,219, 63,141,211,237, 45, 78,211, 92,223,175, + 44, 2, 73,142,251,121, 18,154, 17,189,108,135,152,220,201, 44,122, 54,120,206, 6, 55, 43,172, 49,224, 48,152, 46,220, 37, 91, +115, 50, 91, 84,130,224,197,179,103,160,184,179, 68, 53,207, 24, 87, 38, 72, 86, 47,212, 86,216, 45,183,220,242,177,137,212,166, +156, 97,240,124,112,143, 19,101, 66, 8,209, 38, 81,152,134,190, 32, 89,228,254,236, 39,103,245, 75, 78, 8,176,199, 76,113,240, +221, 60, 48,205,134, 22, 12, 67,196, 48,238, 49,103, 91, 49,132, 24,107, 38,186,193,167, 6,147,103, 39,209,229,156,220,244,132, + 92,199,175,181, 9, 40,230, 38, 54, 97,219, 84, 14, 98,207, 89, 23, 12,172,238, 56,103, 5, 59,129,145,231, 25,251,168, 72,110, +229, 27,124, 98, 87,181, 1, 45, 35, 0,206,152, 79, 2, 35, 98, 1, 96,119, 82,147, 34,211, 98,115, 68, 27, 89, 64,145,161,202, + 96, 85, 24,210,111, 97, 38, 60, 16,110,230,128,116,243, 10, 76,169, 79,110,123,138, 45,172,127,238,122,196, 94, 31,161,173, 40, +206,137,240,245,235,132,111,124,243, 10,167, 31,251,123, 56, 79, 47,144,167, 91,104, 78,152,179,224,156,103, 36, 35, 46, 64, 52, + 67,179,159,222,196, 75, 84,181, 35, 47,168,153,232, 77,234,166,239,170, 75,204,108, 93, 85,146,237,186,205, 95,196,232,115,129, +164,186,207,113, 65,132,105, 33,220,154,133,111,113,138,166,186,201, 45, 25,245,194, 4,213,224, 8,130,184,227,156,173, 71,164, +160,198, 85, 82, 7,143,254,117,158, 71,202,208,156,221,129,208, 37,164,106, 4,188, 33, 70, 71, 31,106, 62,185,237,199, 85,109, + 10,159,160, 16,178, 28,217,129,138, 6,220, 10, 11,175,152,241,109,164,170,182,187,237,134, 52,215, 6,191, 40,245, 14,118,141, + 61,192,197,174,149,232, 50, 24,102,155,104, 89,195, 76,205,139, 58, 43,166,134,217, 93, 24,252,213,228,224, 98,133,186,124,176, + 82,237, 14, 21, 65,215, 53,153,112,185, 5, 90,246,170, 92, 98,241,202, 51, 83,221, 78, 45,195, 70,226, 91, 3,199, 75,247,115, +218,147, 17, 87,143, 91, 75,230,238,106,159,222,175,185, 46, 97,123,241, 72,221, 30, 74,246, 72,192,234,111,188,101,177,170,117, +250,149, 21,204,210,215,153,251, 38,247,213,227,107, 96,237, 22, 6,214, 38,134,112,125,155,235, 42,190,142,201, 93,146,236, 47, +139, 91,206, 90, 97,240, 98,224,160, 45,172,244, 88,177, 94, 36,253,184,199,243,248,225,105,123,221,208,210,227,162, 57, 93, 29, +140,242,134, 99,190,177,124, 25,231, 84, 76, 57, 46, 87, 34,151,112,200,114,244,238,198,193, 44, 67, 65,120,251,197, 51,252,155, +127,245,155,248,157, 63,248, 99,124,249,203, 95, 70,228, 80,173,145, 11,219, 60,198,176,248, 47, 52,132,160, 24, 67,109,210,119, +227,104,154,226,211,209,200, 96,234, 86,169,113,196, 56, 12, 24, 35,227, 48, 14, 64,217,151, 15, 3,142,231, 9, 41, 77, 14, 29, +115,149, 17,101,135,203, 57, 4,204,115, 2,187,249, 11, 51,129, 99,244,195, 54,120,222,185,253,108,202, 25, 36,150,129, 29, 98, +168,215, 68,136, 3,166,172,238, 34,151, 49, 48,155,123, 93,136,184, 59, 30,113,115,119,215,124, 62, 8,154, 77,254,102, 59,121, +155,238,163,155,206,168, 26, 42,144, 85, 65,226,153,235,146,205,206, 53, 6,112,176,181, 65,117,118,211,229, 51, 33,197,233,147, +131,245,154, 57,225,156,213,201,109, 90, 13,149,198,200, 16, 30,108, 82,131, 32, 70, 0,193,222,175,217, 97,245,232,217,227,209, + 5,114, 36,217,200,183,110,138, 99, 16,115, 2, 33, 35, 19, 35,137, 33, 2,234,146,184,171,129, 49, 94, 95, 33,134, 17,187,221, + 0, 9,251,218, 4,189, 41,203,147,148, 42,190,184,245, 49,235,206, 87,106,253, 37, 8,211, 44,152,206,103,100,201, 72,106,188, + 47,142, 17,224,209,118,207,238,118, 39,180,152,200, 44, 33, 86, 30, 53,158,221,182,213,237,112, 73,201,149, 6,132,156, 20,164, +201, 52,224, 26,140, 3, 81,214, 15, 94,192,213,167, 89,102,159,244, 3, 65, 56,160, 4,145,151,231,201, 40,123,119, 11, 76,155, + 69, 60, 60,198, 97, 19, 95,187,248, 27, 0, 72, 66,114,110,128,204, 9, 42,201,207, 88,107, 64, 44, 88, 38, 67,114,130,164, 25, +115,118,130,105, 78, 0,102,128, 13,145,170, 5,142, 96,206, 67, 42, 38,131, 72, 32, 36,242,125,133, 31,238, 3,200,118, 0,190, +231, 88, 56,242,122, 65, 60,163,166, 97,104, 83, 55,214,231, 71, 87, 84, 87,169, 96,155,123, 98, 92,230,162,211,106, 9,147, 85, +161,129,240,124, 0, 14, 36,198, 54,244, 20,165, 72, 75, 26,156, 92,108, 80, 13,157, 16,181,189,138, 77,243, 46, 89,168,143, 91, + 55, 14, 92, 93,253, 77,253,243,187, 40, 98, 15,113, 74,214,136, 7, 58, 59, 66,221, 56,118,181,145,221,232, 70,235, 81, 77, 56, + 26,232, 88,187,151,108, 41,190,212, 64,253,162, 11, 76,101,175,129,108, 82,165,245,161,169,121,181,151,238, 26,128,142, 55,168, + 29, 4,191,188,110,219, 59,247,229,235,122,241, 94, 44,193, 54,114,127,145,116,200,108,136,161,121, 30,122, 63,131, 92,183,223, + 34, 34,237,148, 12,164,143,156,105,205,250,190, 62, 14,125,244, 28,236, 45, 43,127, 24, 93, 48, 51,206,231, 19, 78,119,183, 79, +115,184,233,118, 19,176, 3,200,237, 73,195, 48,226,249, 62,224,159,253,211,127,138,223,255,163, 63,197, 87,191,244,147,117,165, + 49, 12,198, 82, 47,191, 22,156,244,134, 70,226, 99, 36, 47,207,238, 38,139,101, 37,133, 65,212, 49, 32,137, 32,101, 51,162,217, +237,119,184,218, 69,236,118, 59,100, 37, 32,155,239, 58,177,157, 53,145,128, 97, 24, 23,127,115,166,106, 81,203, 33, 26,243,185, +172,160,220, 18,116, 24,162,241, 97,220,228, 38,249,133,110, 28, 51, 99, 77,231, 60,131,144, 45,213,141,108,148, 97,102,236,199, + 17,154, 51,210,116,194, 24, 3,134, 97, 64, 24, 6,119,210,179, 48,150, 2,219,219,203,152,145,157,212, 55, 12,209,229,117,163, +231,109, 15, 16,177,194,144, 43,164,142,202, 79, 48, 70,182,120, 94,187, 64, 57,216,196, 54, 79, 0, 4, 70,246,206, 62,205, 1, + 65, 51,118,145, 32, 97,135, 57,185,241, 79, 22, 0,217,157,211,124, 85,225,228, 57, 81,174,158,240,218,240,120,179, 0, 58, 79, + 32,164,154, 7, 50,139, 66, 17, 48,114,192,245,213, 0,218, 95,215,245,241, 99,187,244, 14,204,211, 39, 78,232,205,119,185,156, +235, 98,133, 45,165,132,211,121,194,221,113,198,233,238, 8, 73,103,227, 21, 16, 97, 2, 67, 50, 33, 84,246,218, 98, 26,195, 80, + 40,155, 60, 44, 39, 1, 36, 45,133, 29,130, 72,106,235, 17, 1,162,115, 41,216,239,220,146, 2,179, 15, 51, 22,187,106, 86,179, + 4, 18, 66, 80,242,157,190, 66,203,202,195,157, 56,115, 73,235, 20,227, 87,144,100, 68,100, 67,144, 60,236,168, 12,212,209,223, +139, 12,123,140,146,147, 93,243, 34, 32, 41, 37,202,175,117,111, 6,231,156, 49,207, 25,115,246, 92,121,110,216,225,220,152,204, +147, 26,124,147,137, 32, 78,178,136,108,236,247, 2,137,115,153,222, 27,136,188,183,118,105,117, 11,186, 33,105,164,213, 78,155, + 46,118,165,242, 0,156,203,205,239,118,250,241, 48, 96,255, 44,224,197,129,113, 21, 9, 3,140, 13,154,117,137,152,181,201,157, + 23, 66, 79, 39, 83, 83,111, 14,108,183, 81,190, 95,114,144,117,115,150, 89, 74,169,174,104, 91,165,220,202, 3,107, 37, 90,239, +206,203, 20,172,219,104,194,214,126, 21,226,223,107,221,201, 84, 47,247,210, 77,241,234, 16,147,118,250,246, 67, 61,171,120, 48, + 2,245,187,239,135, 10,251,214,207, 96,131,220,215,238,209,155,202, 85,147,229, 58,200, 97,107, 7,173,117,106, 93, 51, 12, 42, +202,211,220,222,186, 21, 35,178, 73,233,146,156,167,157,203,219,250,154,236, 46,235, 58,182,111, 39,250,109,110, 5,232, 82,210, +115, 95,202, 42,173, 16,141,167,201,243,238,185,255, 34,205,217, 34, 27,210,170, 59, 94,221,193,249,124,170, 81,159,170,138,113, +127,133, 65, 79,248,245, 95,251,103,120,255, 38,225, 11,159,251,113,155,246,148,220,250,114,137,169,101, 90,204,169,138,129,153, +148,141, 54, 91,168,203,237,237,109,253, 28, 51, 25,210, 53, 79, 51,152, 25, 47,222,122,142,113,183,199, 60,205, 8,129, 17, 56, + 32,132, 8,102,182, 29, 54, 5, 12,193,146,186,200, 11, 92, 9,243,112, 54,157, 29,118,171,179, 34, 43, 48,205, 25,154,147,187, +222,105, 77, 7,220,143, 3,198,113,103,144,102,100,164, 44, 16,201,136, 33,226,217,213, 1,227, 56,152,251, 29, 57, 33, 75,169, +174, 0,106, 17, 40,112,172, 59,229,101,101, 35, 88, 13,209,138, 75,202,182, 43, 14, 70, 70, 22, 55,133, 89,114,225,109,157, 16, +217,124,248, 1, 96, 8, 54,185,151,168, 81,201,158, 60, 7, 65,140, 4,138, 3, 84, 8,193,146,210, 49, 68,128,227, 88, 27,140, + 57,137,187,212,217, 90, 34, 70,174, 13, 87, 49, 99,217, 15,140,209, 9,137,228,175, 75, 6, 35,165, 51,146,100, 92, 15,132,241, +234, 25, 4, 3,172,210,188,129,174,130,202,218, 75,241,216, 66,222, 26,224,229,156,154, 51,129,211,140,145,207,230,194,135,140, +227,148, 48, 31, 79, 64, 58,187,195, 33, 65,211, 12,104,242,179,157,157,217,111, 18, 75, 41,102, 95,206,124,135,228,186,167,117, + 19, 61, 95, 41,104, 69, 50, 6,102,196, 96, 54,190, 69, 77,164,229, 63, 32,254, 53,129,253,207, 2,115, 10,243,190,204,180, 65, + 77,190,168,164, 86, 87,196,164,155,182,183, 15, 8,209, 16, 41, 22,227, 48, 16,171, 73, 22,213,248, 4,129, 4,129,197,106,112, +180, 70, 48, 50, 89, 74, 92,112,139,246, 4,176,186,174, 54, 20,167,154,162,161,211,214,174,222,138,122,246,253,213,192,192,158, + 80, 39,246, 34,185, 47, 19, 63, 58,230, 53, 58, 88,149,238, 81,206,180,197, 70, 58, 65,146, 94,146,202,213,173,254, 26,242, 92, +209, 94,147,138,153, 66, 12, 1, 17,132, 83, 6,142, 89,113, 20,152,125,160,195,212,237,174,153,155, 70,132, 27,184,185,188, 35, +180,218, 23, 27, 99, 93,187,117,195,122, 2,171,100, 53,244,108,233,126, 71,113, 9,147, 95, 18, 7,245, 2,217,208,238,117, 89, + 10,124, 11,177,139, 19,133,180,149,159,235, 6, 65, 95,181,115, 52,211,134,157, 45, 21,150, 69, 23,223,218,145,189,244,145, 66, +190,250,189,158,200,183,242,201, 91, 17,228,138,179,215,197,124,222,221, 71,211, 10,117,176,142,128, 67,180,131,112,161,174,215, +201, 94,253,142,178, 36,156,207,211, 61,231,138,222, 67, 46,211,197,145,111,165,148,120,144, 0,172, 61, 82, 5, 69,147,142,168, +253, 26, 0, 61, 41,184,125, 12,244,196,161,232,169,196,185,203, 7,120,127, 67,176, 94,113, 92, 63,127, 11,233,238, 19,252,163, +255,241,127, 66,142, 7,124,233,243,159,245, 93, 61, 47,235,168,192, 24,198, 1,236, 33, 35,182,115, 54, 24, 60, 16, 35, 80,128, +228,140,233,116,194, 52,207, 24, 34,227,234,112,192,213,213, 1,207,159, 29,144,149,113,123,182, 80,149,113, 96, 12, 67,180,192, + 18, 71, 90,146,168, 77,250,254,225, 13, 33, 24, 3, 58,231,142,172, 84,125, 87,188,249, 42, 92,151,236, 68,191,253,110,192,110, +191, 67, 22, 96, 58,159,237,208, 38,147,137,129, 34, 56,152, 65, 72,150,140, 73, 24, 83, 6,230,100,107,190,121,206,144, 60, 91, + 50,155, 79, 95, 37, 42, 54, 75,110, 96,230,150,148,204, 24, 2,220,223, 30, 94,232, 67,117, 26, 19,231, 34,160,184,217,249,237, +170, 23,122,118,247, 60, 20,213,133, 39,202,157, 37, 32,205,102, 73, 75, 33, 98,214,128, 57, 45,231, 85, 36, 96,112,134, 89, 86, + 20, 28,217,134, 36,151,223,229, 44, 8,204, 21,133,152,133, 13,193, 20, 32,207, 9,163,158,241,236,249, 1, 18,159, 57,244,251, + 56, 5,229, 2,181,211,181, 12,103, 99, 93,232, 59,233,194,127, 49, 15,117,193, 24, 4,135,253,136,195,126,135, 48,140,230,177, + 62, 79, 96,157, 17,217,237, 83, 93,198, 22, 88,141,128,198,238,211, 47, 98,146, 64, 22, 80,240,245,136,102,183, 92,245, 61,186, +147,239,184,130, 75,198, 95,136, 49,120,115,229, 43, 11, 89,206, 50,123,156, 10,202,106,136,119, 49,251,169, 81,229, 62, 24,134, + 37, 31, 93, 92,173, 97,201,132, 2,142,140, 28, 3, 4,174,252,240,200,220,194,148, 23, 16,102, 37,107, 14, 17, 64, 28, 17, 66, +192,232, 57, 6, 60, 68,139, 94, 61,187, 36, 67, 27, 22,251, 58, 32, 68,125,185, 90,118,172,129, 76,119, 87, 9,103, 27,110,112, +161,221,131,175, 35, 75,123, 30,212,198,111,111,145,208,214, 81,167,212,184, 48,181, 19,187,209,185,114,202, 72,115, 54,111, 96, +162, 70,191, 78,139,165, 42,245,174,107,151,249,107,212,201, 48,208, 17,246, 86,186,116,194,131, 30,230, 91,145,177,219, 82,189, + 77, 15,213,117,202,236, 6,241,109, 33,184,213,234, 65,116,207,253,227, 17,253,117, 79, 54,227, 21,215,190,125,222,213,135,157, + 46,221,232,232, 30, 50,156,170, 77, 46,251, 64, 6,155,122, 58,145,226, 30,130,219,102, 18,159,118,183, 75,157,232,144,106,195, +115,143, 90, 28,151,247, 70,143,187,205, 52,188, 3,125, 18,124,221, 90, 42,183,191, 79,203,122,234, 9, 59,248,191, 17,233,218, + 22, 44,160, 15,153, 29,111,236, 4, 20, 24,119, 35,110, 62,122, 31,127,245,209, 45,254,222,207,255, 93,176, 76,184,185, 59,122, + 33,213,106,165,106,112,187, 21, 11,118,121, 88,100, 70, 12, 17, 89,237, 56,221,237,119,216, 31,174, 12,174, 38, 35,120,221, 30, +239, 32,243, 4,149,108, 69, 87, 25,121,158, 76,161, 19, 99,149,105, 49, 25,243,155, 61,255,188,176,220, 69,253,112,244,125,255, + 48,216, 86, 57,176,219,187, 14, 62,225,187, 89, 78,206, 9,105,158, 49,205, 51, 36,155,156,108,158,103, 71, 56, 24,231,105,198, + 52,157, 1,177,168, 89,201, 25,187, 24, 48,196,224,214,179, 17,201, 39,193, 24,150,224, 16,170, 81,176,237,199,203, 25,238, 89, +144,179,133,189,144,102,136, 79,244, 84,124,236, 11,225,176, 32, 31, 80, 68, 55,164, 25,216, 97,125, 38,100, 14,152,102,129,166, +201, 27, 10,111,150,115, 50,108, 68,129, 72,138,224,232, 6,220,105,142,157,116, 87,144, 28,209,165, 89, 85, 50, 89, 92,240,169, +146, 92,139,175, 49,226,213, 81, 64,199, 87,139,187,220, 19,136,158, 74, 79,189,166, 27,131, 46, 50,162,220, 23,199,140,111,126, + 35,224,230, 39,126, 14,231,233,179,208,124,196, 41,103,220, 29,203,180,126, 4,144,155, 59, 16,255, 76, 59, 11,140,116, 49, 25, +243,149,212, 12,107,170, 84, 50,178, 90,156,174,237,189,169, 22, 23,109,246,255,133,108,201,196,158, 86, 87, 28, 19,117, 89, 99, + 84,143, 27,110, 32,184, 69,237,196, 84, 80, 24, 2,216,206,146, 66,212, 51, 36,120, 73,107, 83,210, 38,229,147,170,165,173,148, +160, 36, 40,196, 17,137,221,110,135, 88, 29,177,219, 0, 0,159,218,115,123,140,186,150,219, 4,243, 70,180, 8, 12, 12,106, 30, +183,185,176,252, 24,216,145, 98, 80,224,164, 70,183,191, 96, 98,119,253,170, 94,236, 12,105,227,192,164,149,158,186, 55,124, 89, + 73,194, 52, 3,201, 44,249,146, 46,171,133, 30,123,160,133,112, 68,125,228,135,250,191, 75,145,225, 38,221,172, 56, 43, 19,217, +152,165, 78,138,208, 86, 98, 71, 61,244,206,221, 51,106,252,228,133, 58,226,104,123, 98,210,154,224,165,139,233,204,186,175,237, + 37,110,212,237,103, 85,197, 77, 39,180, 91, 87,212,225,120, 51,162,180,199, 15, 84, 23,139,221,206,208, 81,251, 64, 31,104, 27, +253, 90, 38,111,234,165,105,180, 56, 45,137, 42, 78,121,201,133,166,102, 66,191,140,105,107, 86, 5, 13, 99,191, 66,210,116, 65, +227,171, 94,215, 23,205,139, 46, 76,213, 5, 29,232,117,236,247,214,177, 18,141, 8,237, 19,102,128, 62,251, 29,139,209, 73,235, +187,175,173, 12,173,153,126,183,118,228,127, 83,197, 28,155, 48,255, 26, 74,211,173, 15,108, 95,251,155, 27,123,235, 83,159,194, +159,252,225,239,225, 87,127,227, 61,252, 87,255,224,151,144,178,224,251, 31,124,140, 68,201, 52,251, 76, 24,119, 3, 82,202, 94, + 32,201,227, 75, 13, 81, 97,247, 35,215,100,134, 46, 49, 4,112, 12, 56,221,156, 0,201, 32,182,169, 54,134, 96,210, 50,151,147, +205,217,156, 27,246, 59, 11, 77,201,170, 72,217, 25,236, 62,181,203, 52, 55,173,233,162,244, 72, 41, 33,196,128,125,180,194,174, + 74,152,230,132,236, 13, 39,207, 51,152,200,242,205, 79, 9,144,108, 59,119,201,216, 69, 64,105, 64,112,230, 56,249,158, 94,200, +248, 0,133,203,161,209,244,246, 16, 23,143,177,251,134,187,169, 78,185,126, 35, 19, 88, 51,104, 96,156, 39, 54, 86,122,160,106, +241,202,148, 17, 56, 32,165, 50,125, 90,224,199, 24,237, 44,202,100,132, 46,201, 2,198, 4,138,206,146, 82,219, 3, 7,182,210, +205,106,172,246,217, 43, 43, 55,206,120, 20, 34,230, 4,227, 5, 4,243,169, 39,201, 80,100,236, 88,161,113,168,136,163,168,226, +121, 20, 92,189,120,142,155, 87, 87, 24,244, 14,160,248, 8,175,116,181, 99, 67,227,226,217,108,216,105,133,246,182,176,253,148, + 9, 52,101, 76,233,132,143,111,103,232,205, 29, 34, 4,195, 48, 98,226, 88,173, 84, 1, 51, 68, 90,120, 59,139, 29,171, 5,104, +149,152, 22, 39,213,105,240,196,214, 84,215, 31,234, 17,180, 20, 2,160,188, 60, 86, 81, 4, 54,206, 22,116, 48,146,166,255, 14, +187,137, 82, 33,157,195,253,220,209, 36, 48,154,210,192, 35, 85, 61, 51,221,254, 93,228, 83,185, 36,168, 87,153,108,205, 83, 33, + 63, 67,101, 9,164,209, 44,208, 44, 32, 22, 72, 74,136,178,112,195,156, 16,167, 96,223, 25,231,242, 86, 20,135, 58,247, 1,158, +217, 95, 14,159,114,163, 31,142,137,217, 48,127, 53,227,255, 25,203, 20, 44,197,230,212, 79, 4, 65,239,231,141,106,140,143,206, +171,187,141, 12,181,110, 28,139, 94,184,196,228,109, 16, 48,104, 35, 41,110, 77,178, 18, 93, 17,156,168,129,233,136,160,108, 76, +118,109,216,109, 84,104,253, 94, 80, 24,122,129, 34, 85,251,207,106, 71,173,171, 34, 76, 93, 85,165, 70, 22, 77,186, 77,130,235, + 11,219, 3,206,123,126, 49,162,250, 22,183,251,185, 53,233,106, 41,188,109,192, 73,253,113,109, 73,120,125, 83,193,222,153,138, +246,147,178,125,136, 30, 40,246, 53,255,153,160,146,155,132, 53,183,173,173,241,244,122,105, 84,209, 61,199,181,250, 66, 46,165, +110,212, 79,215, 75, 30, 59, 93, 78,252,218, 7,226,220, 23,212,214,178,112,107,228,176, 39, 56,209, 61,211,239,162, 95,167, 86, + 7,183,120, 4, 60, 65,190,166,127,173, 5, 93,239,159,188,183, 42,190,222,143,115,168,219,190, 42, 1,239,188,245, 2,255,250, + 95,254,115,124,227,235, 95,193,207,126,227, 27, 56,254,222,119,241,137,120, 60,171,235,210,119,187,161,154,115, 40, 51, 82, 78, +214,120,150,171,197, 99, 68,247,135, 43, 28, 79,147,237,144,227, 0, 66,198,179,235, 3,132, 7,196, 57, 65, 56,154, 51, 93,177, +176, 85,115, 85,139, 12, 76,243,226, 82,145,230,140, 33,178, 79,230,240,189,181, 45,249, 44,216,197,140, 73,200, 29,215, 84, 21, +211,233,228,102, 57, 35, 78, 58, 27,186, 16,216, 52,230, 41,155,129, 78, 28, 33,146, 44,141,141,131,193,173,254, 88, 84,196,145, + 8,131,138,179,227,152, 33, 6, 76,105,153,208, 11,204, 11, 48,194, 24, 49,205, 4,204, 9, 67,180, 66,156,212,160, 98,102, 84, +230,117, 12,134,112,100, 0,193, 63,107, 73,252,117,204, 9,204, 75,195,205,129, 16, 40,152,217, 78, 57,167,136, 48, 37, 51, 73, + 25, 49, 35, 12,209,204, 80,200,167, 83,183, 64,101, 15,172, 81,181,107, 55,139, 58,177,208,206, 73, 1, 99, 32,197,219,111, 29, +112,243,225,167,128,219, 27, 32, 62, 12, 55,117, 54, 29, 93,204,176,222,123,185,145,175,210,202, 63,142,153, 64,243,140,235,221, + 4,196, 17,183,119, 51,166,243, 75,219, 67, 15, 1,105, 26, 33, 46, 65,100,205,182, 89,192, 66, 68,171,249, 0, 72, 53,129,141, +148, 22,174,140,107,218,139,193, 80, 61, 3,201,148,239,220,229,109,169,171, 27, 24, 1,128,248, 20, 72,133, 85,239,159,121,110, + 76,199,200,135, 70, 51,250,113,163,153,230,211,190,184,218, 1,172,132,236,196, 88,114,210,111,246, 23, 49, 52,145,105,149, 77, + 36, 98,154,249,160,218, 37,170, 21,158,122, 49,186,103, 45,169, 51, 90,237, 19, 69, 8, 51, 8, 19, 8,137, 22,200, 59,144, 49, + 45,143,153,112,238, 52,236, 14,125,185, 44, 46,178, 34,146, 54, 46,199, 43,153, 15, 45,240,125,149,103,209, 18,131, 87,159, 74, +129, 39,148,186, 85, 53,175, 89,241,247, 8,132,244,162, 27, 92,252,225, 27,235,180,149,116,206, 98,250, 58,229, 83,251, 56, 87, +186, 35,213,237, 97,103, 45,231, 91, 11,243,244, 65,110,168,110, 16,211,208,200,177,250,231,183,150,179,201,198,142, 91,154, 66, +211,255, 44, 93,220, 47, 26, 79,131, 82,168,101,253, 26, 61, 34, 99,187,112,159,107, 38,128,110, 72, 84, 92,240, 23,122,201,218, +229, 4,122,159,185,202, 5,175,195, 31,163, 25, 89, 44,241,133, 45, 55,128, 26,134, 61,181,255, 94,153,211,168,234, 69,146, 94, +135, 40,181,156,138, 31,134,224,134, 31, 57,239,101, 85,208,245,254, 14,226,169,127, 68, 59,162, 64, 24, 70, 28,162,226,127,253, +181, 95,199,140,136,175,126,229, 75,248,212,167,222, 70, 28,108, 18,151,108, 82,177,221,126, 87,109, 75, 11,167, 32,198,136,148, + 51,206,211,140,156,237,223,162,192, 52, 77, 24, 34,227,249,179,103,200, 52, 34,205, 9,163, 51,200,135, 24, 49,238, 70,196,113, + 64,202, 51,152,108, 98, 99,102,239,187,203, 4, 61, 98,136,193, 83,218,162,235,123, 19, 2, 19,174,247,123,132, 16, 49, 39,177, +169,223, 37, 98,105,158, 49,103,193,156, 18, 72, 18,136,216, 96, 89, 34, 36, 13, 80,153, 49,198,193, 38,105,149,154, 63,142,194, +140,110,174,241,210, 64,103,245, 6, 36,231, 26, 0, 82, 27,209, 18, 13,170, 98,205, 50, 5,104, 22,112,217, 7,151,152, 83,106, +114, 30, 72,113,202,130,121, 58,131,213, 28,243, 44, 74, 85, 61,124,198, 57, 41,108, 83, 60,121, 40,142,136, 32,232,100,132,176, + 16,161,176,251,154,125, 50, 15,209,246,189, 33, 88,222,119, 12, 64,162,128,156, 50,160,115, 61,205, 82, 86, 92, 15, 25,251,183, +222, 66,194, 30, 54,234, 62,116,241, 45, 9,149, 79,106, 83, 75,225, 47,131, 4, 1,175, 19,227,229,203, 4, 58,125,130,195,129, + 65,251,231, 56,205,140,233,238, 14, 65, 78,216, 13,132,195, 24,177, 27, 24, 8,214, 36, 74,182,138, 86,214,196, 35, 27, 66, 97, + 43, 63, 15,229, 33, 87, 60,101, 67,158, 11, 78,154, 0, 76,217,208,159, 57,139,191, 6,213, 48,118,241,211,111, 8,231,234,250, +119,248,250,135,156, 52, 74, 12, 80, 48, 75,224,104,108, 55, 8,199, 90,228, 33,102,199,155,178,239,234,203,210,192, 87, 30,182, +242,118, 98, 94,206, 96, 73, 96,204,118,141, 56, 31, 96,114,164, 0,182,210,183, 55, 74, 28, 54, 16, 39,190, 21,102,123, 33, 5, +137,187,140, 73, 38,204,162, 56,139,233,217, 1, 65, 16,131,148,187, 20,177,102, 47, 17,136, 49, 48, 97,143,210,212,105, 71,137, + 44,166,249, 78, 86,245,191,181,237, 39,156,229,220, 23,190,174, 44, 54,235, 64, 90,161,137,221, 49, 91, 23, 59, 82,167,118, 99, + 70,182, 17,163,139, 33,203, 37,195, 79,107, 26,157, 82, 79,150,171,244,200, 7, 72, 77,180, 34,126,193, 59,111, 96,219, 22,247, + 62,217, 91,125, 53,214, 83,150,162,166, 16,225,162,136,163, 99,232,107, 37, 6, 74, 45, 93,180, 42,226, 91,100,181,220, 22,115, + 93,228,111,104,136,139,216,146,177,105, 79, 0, 19,189, 44,126,107, 42, 92, 81, 30,208, 5, 81, 79,183,153,226,186,165,101,111, +208, 20, 39, 76,210,210,224, 94,174,211,107,241,190,212,208,163, 90, 16,111,207, 24,116,207,164,253,212,125,226,155,168,132,158, + 10,183,247,175, 21,109,244,185,212, 67, 78,143,248,119,119,139, 51,239,104,159, 61,127, 11,127,250, 39,127,140,223,251,189,239, +226, 11, 95,248, 18,222,125,239, 61, 92, 95, 95, 99, 28, 99,125,127,135, 97,112, 89,155, 21,231,236, 5,150, 65,200,233,108,132, + 39, 63, 86, 99,176,166,235,156, 8,146, 38, 39, 43, 69,196, 56,120, 99, 96,196,180,253, 48,128,216, 92,225,134, 49,186, 61,170, + 59,210,129,173,176,145,199,147,170,173,196,134, 24,128, 96,178,178, 57,205, 78,142,203, 16, 48,206, 73,112, 62,222, 2, 50, 35, +122,241,158,166, 25, 36, 25, 47, 70,155,152,179,103,184, 77, 41, 35,231,108,209,175, 46,123,130, 42,134,192, 62,241,153, 60, 47, +167, 25,197,144,103,246, 88,208, 92, 73,105,150,167,109,193, 45,193,139,187,147,122,165,129,167,125,175, 30,204, 26, 14,154, 1, +205, 51, 68,179, 27,161, 80,109,204, 85,129, 57,101, 47,106,203, 91, 27,252,156,157, 53,152, 87,186,195,189,131,102,187, 79,152, + 99, 25,139, 96, 24, 8, 51,155,236,142, 36, 87, 38, 60, 49, 35, 41, 33,228,132, 23,215, 3,116,247,194, 88,228, 15,212,243,218, + 51,223,211, 69,234, 70, 3,222,234,216,137,128, 73, 8,211, 81,112,186,253, 8,243,241,181,163,233, 59,131,187,231, 25,144, 4, +142,140,113,183,195,245,213, 1,187,253,222,154, 34, 53, 43,214,125, 36,236, 6, 2,141, 12,196, 17,160,104, 6, 63,110,140, 20, +120,209, 97,129,221,108, 70, 1,202,142,158, 72, 54, 93,184, 24, 71, 65,154,212, 59, 16, 53,241,220,161,158, 87,166,155,103,168, +186, 5,177, 24, 25,209,222, 39, 6, 35, 58,255,172, 88,207,100,139,100,205,166, 71,103,127, 93,213,119,240, 99, 0,194, 64, 16, + 10,150,162,167,197,216,201,247,252,117, 42, 39,241,104, 57,234,160,218,245, 33,205, 16, 99,103,138,120, 3, 96, 16, 65, 49, 59, + 12, 12, 12, 5,158,237,200, 92,140, 76,132, 25,176, 9, 31,212, 5, 42,132, 38, 0, 67,116,177,110, 89,222, 90,233,119,197, 23, +115, 26, 85, 35,134,198, 48,117, 51, 32,164,103,250, 82, 5, 48, 10, 91,177, 88,253,181,157, 2,119,135, 28, 45, 50, 51,109,119, +253,218,237,102,183,167,241,213,225,223, 76,189, 2,237,152,231, 15,157,246,218,152,182, 95,232,191,215,101,124,195,163,189, 51, + 87, 89, 77,208,107,220, 64,161,247,222,198,154,217,174, 91, 95,219, 96,191,246, 43,220,141,219,215,101,250,229,246,250,208,222, + 15,224,146,188,182,241, 74,175,181,236, 34,125,115,146,230,202, 34,190,159,230, 88,116,251, 77, 50,251, 19,170,237,197, 54,224, +137, 3, 10,109,188,155,143, 5,211, 61,124,201, 60,245,193, 42, 54, 46,138,237,125, 60,245,167,182, 17,169, 25, 99,100,252,193, +255,249,251, 16, 5,222,253,177,207,224,240,236, 57, 56,140,216,239, 7, 12, 46, 1, 51, 6, 59, 33, 3,253, 37, 17, 0, 0, 32, + 0, 73, 68, 65, 84,122,129, 87,101, 12,113, 0,212, 92,218,110, 78, 19, 52,103, 92, 31,246,136,113, 7,149,217,125,211, 7,131, +135,217,116,214, 28,140, 61, 31,226,224, 72, 91,118, 9, 19, 99, 28,184, 78,198, 57,101, 75, 72, 35,113,249, 80,112, 63,249,140, + 52, 37, 12,129, 49, 4,115,187,155,211, 4,146, 25, 49,216,161, 62, 37,207, 27,103,197, 16,128,171,103, 47, 48,209, 30,231,243, + 17,243,156,156, 7, 96,110,109,209,189,221,139,132,170,236,196, 9,214, 57,146,136,135,193, 40,210, 60,251,234, 65,124,202,135, + 63,167,232,166, 38,198,178,102,135,100, 11,191, 39,248,250,103, 22, 32,184,142, 94,193, 96, 18,196,200,245, 49,152,209,142, 37, +144, 13,172, 53,123, 37,176,249,241, 67, 9, 1, 9, 28,128,192, 17,113, 96,232, 48, 66, 53,184,132,205, 13,168, 16, 16, 53, 33, + 6, 1,130, 9,229,146,203,223, 41, 41, 62,125,149,113,120,231, 29, 36,221,187,183,250,195,159,131, 86,150,249,240,117,171, 13, +209,205,134,204,163, 2,199,163,130,228, 14, 39, 81,228,243, 25,148, 39,132,146,153,174,182, 75, 54,196, 2, 24,199,128,195,213, + 14, 97,220, 33, 18, 99, 12, 4,140, 1, 33,238, 16,121,132,178, 67,228, 32, 15, 70, 49, 79,125, 1, 87,207,252, 0, 5,241,146, + 69, 47,202,182,199,150, 4, 38, 89,217,151,147,199,253,146, 93,103,238, 3, 99, 77, 27, 47, 73,109,254, 56, 3,102, 75,233, 99, + 84, 95,130, 64, 84, 67, 90, 4, 64, 16, 96,240, 38,175, 68,192, 14, 4,196,129,192,195, 0, 66, 4,137,130,196,252, 88, 34, 53, + 30,216,178,146,209, 8, 86,201,107,100,233, 61, 98,235,117,247,218, 45,230,249,158, 64,227,187,147,208,112,157,196, 53,226,164, +130,228,255, 93,225, 11,234, 39,161,150, 97, 45,174,239, 92, 28,136,154,159,161,141, 75,198,247,201,124, 95, 46,251, 67,135,149, + 94, 66,230,178, 21, 34,212,228, 99,183,210,168,150,225, 92,221,215,180, 39,182,233, 6, 12, 47, 13,164,155,218, 38,198,121, 7, +244,200,180, 84,239, 87,116,123,184,210,102,167,219,237,139,165, 54, 52, 5,185,232,202,229, 5,219,124,209,231, 19,173, 11,123, + 27, 7,235,254, 6,212, 55,131,186, 98,199,235,138,100, 86, 52,222,235,189,184,170, 86,146,158, 93,208,139,244,203,174,145,214, + 95,160, 48,133,233,226,104,168,175,195, 69,166,109,223,216,220,247,122, 47, 13,132, 56, 63,100, 67,222,183, 82,117,212,107,167, + 85, 9, 60, 96, 86,119, 95,172, 58,109,182,106, 63,194,254,124,139, 45,240,196,142,163, 76,252,132,197, 70,184,107,164, 84,177, + 63,236,241,193,251,223,195,171, 87,159,224,197,219,111,227,237,183,158,227,116,123, 3,205,193,236, 59,211, 25,195,184,135, 8, + 48, 79,231, 26,148, 18,152, 48,165,132,155,155, 59,100,144, 27,181, 12,144, 36,158,129, 30, 12, 18, 22, 43,138,136, 1, 89, 50, +246,131, 65,200,211,156,156, 0,103,163, 74,140, 35,152,197, 8,113, 33, 96, 96,212,244, 51,248,206, 52, 4,184,107, 23,129, 57, +250, 26, 81, 49,238, 70,188, 62,102,164,124, 50,131, 18,216,234,224,148, 21,119,159, 28,145,211, 12,146,100, 58,121, 6,148, 2, + 78,231,140,221, 0,236,247,131, 53, 12,230,112,130,129, 9, 51, 34,180,200,166, 82, 66,244, 41, 47,168, 64,157,228,198,100, 14, +152, 34,130, 44, 14, 3, 59,161,180, 64,188,234,196, 16,174,132, 83, 1,152,193,194,134,180, 41, 65,153, 45, 11,158, 0, 13, 1, +172, 25, 28,204, 43,156,169, 97,208, 59,148,159,200,170, 7,193, 8, 97, 17, 2,101, 32,171, 17,243,118, 33, 65,198,136, 44,140, +164,140,156, 44,246, 51,194,138,209, 24, 8,239,188,251, 2,127,254,242, 93,232,221,159,129,134,248, 0,154,254,116,222,187,174, + 62, 68,145,128,215, 74,248,232, 21,225, 75,199,151, 8,135, 51, 70, 13, 72, 97, 70, 14, 4, 74, 12,132, 0,206, 64,140,138, 44, +140, 32, 9, 99, 4, 36, 70,104, 14,200,154, 33, 4, 32, 15, 32, 42, 50,200, 80,237,162,165,150, 93,233,134, 1, 91,255, 18,130, +187,193, 41, 1, 73, 5, 49, 27,164,204, 62, 80,138,159, 81, 68, 78,162, 38, 90, 82,211, 8, 96,161, 74,226,181,250, 81, 53, 98, + 8, 62,200, 38, 71, 99,138, 69,109, 82, 39,127,179, 64, 41, 66,100,112, 37,131,121,216,135, 24,141,144,231,232, 66,236,180,228, +107,111,181,102,135, 13,183, 63,109,225,208,165,200,150, 67,151,161,164,136, 48,131, 26, 51, 79, 33,103,128, 47,221, 89,107, 99, + 90,142, 66,129,174, 36,111, 90,189,112, 75,167,138,134,145,222,235,167,244,114,182, 92, 89,166,182,177,166,189, 44, 75, 59,246, +122, 55,219,200,138, 4,182,208,239,154,253, 51, 26,194, 84,127, 42,151,204,242,226, 26,248, 16, 12,127, 9,211, 47,132,178,101, + 15, 69,216,148, 4, 52,149,100,209, 79,111, 84,248, 86, 86,209,113,245,244,158,110,122,163,136,119,143,105, 85,240,105,235,245, +160,139, 6,160,181, 69, 85,213,149,168,172,217, 87,251,243, 86, 1, 50,109,241, 18,124,135,185, 98,144,151,219, 44, 4, 23,106, + 96, 39, 45,100,150, 77, 10, 28, 46, 26,139,250, 42,116,122,127,237,124,232,107, 19,164,107, 91,165,123, 12,138,238, 33,158, 17, + 45,132,125,253, 17,247,232,143, 31,160,107,247, 35,122,216,214, 14,141,141, 49,181,250,140,203, 71, 24, 99,196,237,221, 29, 94, +190,252, 24,159,123,235,109, 60,127,241, 2,175,111,110,112,122,125,235,203, 46,167,249,140, 35, 8,106,201,105,115, 2,129, 49, +167, 12,184,101,236,110,120,102, 68, 36,100, 55, 72, 97,140,131, 21,204,219,187,163,233,122,197, 14,194, 24, 6, 12,158,104,102, +209,174,140,156,205, 26,181, 72,193, 66, 28, 33, 96,228, 60, 97, 23,205,118,245,156, 4,251,209,172,100,167,100, 82,140, 16, 34, +166, 41,227,124,158,204, 54,213,223,219, 57,217,105, 54,232,140,200,140,115, 54, 41, 26,147, 79, 74, 16, 76,179,177,214,227, 16, +192,106, 65, 46,137, 24,121, 50,169,154,178, 53, 13, 26,184,154, 75,169,187,128, 17,147,121,197, 43, 67,133, 32,169,225,185,144, +214, 9,223,200,125,140,200, 17, 41, 4,228,108, 33, 37, 75, 26, 92,125,167, 42,245, 65,197,144,192,168, 2,162, 80,215,114,226, +233,123,198,114,151,154,120,167, 28,129,106, 27, 43, 22,212,147, 45,241, 76, 84,192,200, 8, 65,145,201, 86, 35,239,140, 9, 55, +159,249, 52, 94,254,191, 31, 99,148, 59,128,199,149,130,230,126,149,199,253, 83,122, 95,221,153,128, 19,128, 15, 94, 5,124,237, +229,135,120,254,252, 35,224,240, 54,114, 10,200,178, 51, 63,244,201, 2, 82, 2, 8,227, 72, 16,236, 64,170, 24, 2, 33,143, 17, +146, 5,195,108, 52,112,129,154, 51, 42,123, 49,118, 20,132,124, 45, 43,126,157,103, 47, 19,193,165, 99,226, 62,237, 64,192, 44, + 12,202, 62,105, 83,240,201,223, 80, 16,130,248, 64,178,216,177, 25,143,130,125,248, 92,184, 81, 86,196, 5, 4,187, 62, 82,110, +124, 87,138,138,107,246, 90,136,236,231,114, 65, 95,100, 9, 42,179,162,190, 54, 54,209,139,233,116, 61, 20,183,174,106,181, 21, + 32,115, 94,235,216,209,133, 68,230,211,125,106, 12,179,215,158,115,193,235,180, 96,113, 16, 66, 5, 61, 91,142,122,211, 4,232, + 90, 27,173, 15,219,175,234, 6, 4,175,205,149,163,235, 37, 60,213,189,121,163,152, 92, 64,222, 78, 22, 85,146,221,168, 74,226, +106, 49,190,120,156,155,181,118, 99,142,106,110,191,147,138, 53, 13, 73,155, 73,172, 79,201,231,222, 40,204,155, 5,188,127, 13, + 46,190,190,150,171,221,243, 60, 91,230,125,249, 57,193, 18,112, 80,180,204,165, 98,234, 70,163,208,166,159,161, 97,196,183,153, +180,122, 17,242,162, 93, 24, 13, 54, 27, 19,185,100,214,119, 36, 62, 90,221,151,214,144,141,203,125,136, 94, 60,231, 69,253,112, +105,169,190,134,216,137,157,116,163,242, 67, 79,229,111, 58, 13,109,236,116,182,245,107, 23,183, 75,151,138,130,174,168, 7,124, +242,201, 43,124,244,209,135,248,226, 87,191,129, 41, 41, 66, 24,176, 63,236, 64,211, 18, 9, 52, 12,140,105, 8,184,185, 57, 34, +235, 12, 73,166, 15, 79, 57,227,112, 56,128,201, 28,218, 3,193,225,117,155, 98,204,168,195, 32, 78, 30,162,107,118,179,201,208, +242,217, 82,227, 34, 99, 8, 17,228,187,115,211, 32,195,236, 91, 93,178,166, 8,144,121,134,134,128, 41,239,108,162,135,185,120, + 37,153, 32,105,238, 63,191,106, 69, 61,196, 17,202, 12, 22,131,233,131, 71,162, 86, 61,249,156, 44,115, 59,176,165,191, 9, 16, +200,164, 82,200, 9, 32, 51, 22,129,152,141,171, 57,234,154,127,188, 25,243, 12, 24, 96,234,161,228,203, 87, 1,170, 77,105,202, + 2,226,140,113,132,221, 22,230,138,164,138,216,227, 12,158, 64,167, 98, 69,155, 37, 33, 50,131,216, 57, 83,249,255,163,237,221, +122, 44,185,174, 52,177,111,173,189, 35,206,201,204,170,172, 98,145, 85,188,138,164, 72, 81, 20, 91, 98,171,187,221, 61, 13,247, +216,238, 65,195,128,141,198,216,243, 48, 54,198,158,134, 7,240, 13, 6,108,192,176, 95,108, 3,126,209,131,127,137,255,128,159, +108, 24,227,129,253, 48,134,103,198,234,214,232, 70, 81, 45,241, 90, 36,171,138,172,123, 85,102,158,115, 34,246, 94,203, 15,107, + 69,196,142, 56,113, 78, 38,213,114, 1, 18,164,170,204,115,137, 19,103,175,181,190,245, 93, 28,117, 82,128,145, 17,131, 32,196, +224,105, 95,106,215,136, 1,229,174, 41, 50,148, 99,193, 38,118, 78,173,161, 9,150,226, 38,168, 37,225,133,107, 7, 56, 61,121, + 5,249,171, 95, 35,212,201, 78,245, 78, 73,116,206, 29, 61,181,208, 30, 16, 61, 26, 13,131, 45, 3,183, 79, 2,232,209, 83, 44, + 94,189,135,167,135, 47,128, 55,199,136,233, 4,178, 24, 24,239, 64, 50,198, 58,155,251, 96,183, 35, 95,114, 13, 33, 5,135, 53, +192,149,179,201, 27,128, 25, 68, 17,129,179, 33, 80,110,110,148,132,128,108, 5, 87, 84,124, 18,231, 94,214,106, 5,182,227, 87, +117,123, 83,203, 54, 48,174,154,120,163,110,168, 51, 83,151,127, 99,143,211,145,176, 58,235, 55,118, 20,134, 2,144,123,197, 80, +118,133, 7,249,231,155,122, 57,156,138,157, 99, 68,220, 15, 76,177,179,198, 35,108,167,141, 13,100, 55, 29,217,117, 50, 13,187, + 77,233,226, 67,189, 57, 72, 4,100,191,113, 98, 65,254,234, 62,148,110,242,239,245,222, 24,164, 98,211,248,141,105,136, 72, 9, + 37, 82, 33,123,219, 79, 52, 42,140, 89,118,238, 23,117, 7, 42, 57, 62,236,180, 95,167, 79,130,101, 70, 7,183, 75, 2,137,202, +124,171,254, 49,104, 46,117,144,118, 67,173, 84,104,194,251,249,147,134,199,236, 89,217,229,234, 66,123, 32,124, 50,113, 98,180, + 4, 80,165,249, 98,127,161,233,124, 44, 87, 3,202,215, 52, 49,229,153, 72,231,200,161,119, 81, 26,173,119,230, 26,128,158, 61, + 92, 76,252,221,123,221,130,217,119,188, 70, 21,187,105,105,132,240,104, 33,171,153, 64,254,163, 93,191, 22,174, 6, 37,182,164, +231, 23, 86, 45,229,152,147,149, 80, 33,203, 3, 60, 96, 98, 4,108,140,103, 26, 58,199, 20,231, 55, 42,230,170, 59,240,206, 93, +184, 59,134,134,181, 67,242,116,123,169, 68,100, 19,247, 23,183,191,194,239,139,244, 68, 56,170, 42,164,172, 88, 46, 23,110, 98, + 22,128,179, 6,116,182,129, 42,187,161,139,153,189, 60,173, 78,112,229,234,101, 44,171, 26, 45,213, 14, 69,154, 46, 93,179,237, +215, 21,140,148, 20, 11, 22, 44, 23,230,193,158,150, 53, 88, 4, 77,106,144, 81,163, 34,160,170, 2, 82,230,222, 0,198,216,242, + 6,175,134,142,173,220, 54, 96,205,216,116,172,113,181, 29,167,136, 5,177,168,152,150,220, 92, 8, 5, 0,155, 51,219,162,130, +144,123,221,147, 65,196, 28,109,157, 64, 66,104, 83,161,172, 1,185, 89,136,221,131,134,206,103,196, 46,128, 67,197,130, 59, 68, + 80, 17,161,225,128, 86, 50, 56,103,196,104, 76,116, 98, 2, 9, 16,217,200,108, 73,124,162,235, 50, 55, 24, 30, 72,162,198,108, + 23, 39,182,117,183, 15, 7,104, 38, 72,206, 8,212, 73, 9, 19, 68, 25, 1, 12, 13,209,124, 4,180, 69, 66, 68, 2,131, 4,160, +108,147,121, 21, 8,177, 14, 72,185,182,168, 87,109, 81,177, 37,161, 29,113,194,181,235, 87,241,229,147,231, 16,154, 47,141,229, + 72,123, 20, 23,123,118,239,170,219,200, 17,217,203,199, 39,167, 1,103, 95,174,176,208, 91,208,240,125, 64,107, 68, 40, 50, 51, + 52, 70, 48, 11,152, 92,139,159, 13, 37,142,145,144, 40, 66,132, 65, 65, 64,180,112, 95, 4,118, 46, 83,238,214,241,189,134, 61, +184, 97,145, 56,239, 33,143, 52,227, 0, 72, 6,197, 84,153, 87, 65,169, 95, 55, 10, 20,234,171,145,228, 36,195, 62, 4,134, 10, + 59, 52, 26,171, 3, 2,163, 15, 64, 50,102,124,238, 17, 65,149,224,235,113,237,215,174,157,172, 86,149, 16,222,124,229,250, 15, + 86,235,198,246, 76,180, 93,220,117,194, 98,239,164, 98, 60,120,210, 12,241,149, 90,202,194, 74,121,220, 32, 49,147, 2, 98, 87, +148,193, 47,197, 36,220, 59,244,184, 84, 96,178,239,167, 17,132, 79,179,123,208,145,235,155,142,139,204, 62, 88,115, 62,231, 98, + 90, 38,104,139,249, 76,115,239,197, 95,152,208,248,113,136,230,171, 57,205, 48,167,105,134, 21, 48, 61,224,231,188,214,186, 6, +106,250,184,229,154,106, 40,150, 52, 79, 40,156,157,248,119,105,228,231, 99, 87, 65,219,222,248, 23,184,224, 91, 46,113, 99, 23, +188, 49,253,108,190,222, 81,225,179, 78,163,155,103,103,121, 28,233,237, 7,184,138, 74,105,205,121,143, 49,153, 52, 58, 56, 98, +180,219,118,134,108,119, 10,208,212,221,142,232,220,120,218,223,108, 34,223,179,192,223,211, 52,148,222,240, 84,172,230,230, 24, + 43, 61, 87, 36, 37,100, 13,248,206, 59,111,163,109, 55,104, 27,115, 56,219,180, 9,196, 1,177,170,193,177,194,166,205, 56, 91, +173,209, 54,107,164,212,186, 74,206,118,182,151, 46, 29,226,232,242, 21,140,172,101,253, 0,169,162,145,153, 42, 6,158,185,188, +196,149, 43, 87,112,116,233, 50, 22,139, 3,160,170,113,182,206,198,150, 15,132, 88, 45,108,186,119,185, 79,136,209, 72, 98,172, +224,104,194,217, 24, 24,224,136,182, 77,104,155, 13, 82,178,244,171,142,191,193, 24, 18,190,152, 96,102, 49,129,204,214,213, 9, +122,204,193,139, 94,237, 23,168, 91, 85, 40,154,212,177,164, 13,154,205, 57,131, 84, 16,145,129, 64, 80,138,190, 35,181, 76,111, +176, 77,137,237,186,233,253,246,131,231,197,135, 64, 16,174,144, 50, 65,218,141,193,182,157,243,153, 59,217, 73,150, 94,166,106, +196, 80,234,151,160,236,239,167, 10,125,206,235,144, 71,160,132,156, 4,140, 22,153, 2,114,147, 1,105, 60,106,180,147,210,177, +147, 87, 5,145, 4, 33, 90, 49, 85,101, 28, 45, 2,206,176,192,250,201, 83, 4, 52, 80,207, 6,191, 48,236,212,175,206,116,150, +251,193, 12, 60, 88, 51, 94,195, 26,111,124, 43,226,244,210,239, 66, 86, 10,228,167, 0,101,136, 16,162, 2,117, 16, 35,146,197, +170,111,160, 59,139, 87,117,143,251, 62,173, 45,155,247,191,228,214, 62,131,206,170, 92,204,125,143,141, 89,232,138,140,208,171, +176,208,231, 20, 80,177,248,165,237,175, 24,249,112,203,190,247, 22, 83,223,228, 46,106,119,228,100, 73,253,200, 74, 93,161,237, + 99,194,217,178,214, 73, 11, 89,227,216,130,188,142, 1,225,155,175, 92,255,193,106,213,184,148,139,118,144,203,104, 84,200,139, + 85,244,214, 76,172,147, 47,190,118,191,235,183, 85, 40,154,132,209,227,211,248,208, 54,199,169,241,110,104,176, 12,156, 20,179, +233,244, 91,248, 58,207,101,181,206,237, 58,247,213,152,126,122,157,161, 51,211,200, 90,119,172, 30, 24,118,200, 52,114, 32, 29, +138, 45,237,156,214,177,151,185,143,153, 67,159,182,154, 2, 45, 42, 16,233, 92, 97, 40,190, 60, 59, 45, 99,119, 20,235,157,117, + 96,119,166,250,244,158,186, 80,179, 48,243, 36, 58, 83,216,119, 22,218,114,109, 81, 6,222,239, 91, 81,140,136,121,152, 40, 65, +138, 2, 76, 23,240,123,223,123,109,119, 5,250, 20, 89,246, 59, 31, 79,255,134,197, 92,199,137, 50,231, 21,244, 41,231,134, 48, +177,149, 27,255,169,171,136, 91,119,190,194,179,207,191,132, 55, 94,121, 17,183,190,188,139,166,105,161,185, 29, 76, 87, 56,224, +201,211, 51,108, 86,107,116, 1, 40,169, 77, 80, 17,135,214,107, 44, 22, 75, 28, 44, 43,223, 69,218,129, 90, 5,177, 48, 21, 2, + 46, 45, 43, 28, 93,121, 6,161, 62, 66, 85, 45,192, 85,141,175,158, 36,156, 60,122,140, 72,217,237, 56, 77,227,221,103,169,187, +211,154, 21,201,208, 27,141,116,141, 92,155, 21,235,117, 99,217,213,222, 12,116, 73,115, 57, 39,147,249, 6,243,105,207, 41,227, +160,102,132,186, 54, 25, 26, 51,234, 24, 16,235, 26, 89,200,205, 68, 2, 82,155,204, 99,222, 47, 91, 96,219,143,198,170,194, 70, + 34, 52,181, 32,102,228, 44,168, 34,129, 67, 13,241,152,205,156, 82,175,127, 39,130,153,197,100, 65, 12,206, 89,234, 16,135,114, + 4, 32,195,226, 67,207, 93,233,216,225,190, 34, 9, 4,142,182, 59,239,210, 43,179,250,192,230,198, 41, 29,132, 79, 48,195, 29, +143, 51,243, 62,192, 8, 98, 49, 70,112, 12, 72,136,104,178,195,252,203, 26, 79,214, 53,244,236,161, 37,150,245,132,232,139, 82, +228,230,111,205,206,131,228,169, 2,225, 4,248,219, 47, 63, 4,125,235,155, 56,149,111,162,221,156, 26, 10, 67,176,236,119,134, +251,162,215, 22,203, 74,220, 91,225, 34, 26, 2,209, 38,120, 30,185,165,235,229,110,149, 36, 5,108, 46, 70, 70, 52, 31,248,208, + 79,239,228, 38, 53,228,169,127, 66, 29, 73,110,124,222,134, 46, 8,204,173,213,251, 34, 13, 50, 95, 1,181,200,219, 46, 6, 23, +190,198,206, 74, 99,238, 79,159, 24,138,193,139,222,253,232, 45,224,200,214, 84,139,186,178, 73, 61,173, 91,240,128, 24,142, 50, +209,169, 72, 96,235,197, 61, 90, 88,216, 21, 52,128,146, 64,215, 49,150, 67,175,247,134, 81,237,157, 97, 8, 29,166,114, 45,216, +238, 37, 97,106,122,234,209,140,185, 7, 21,135, 48,109, 49,121,169,112,115,163,157,197,243,220,193,177,212,170,251,184, 70,229, +193,191, 67, 64,212,237, 56,184,115, 32,155,120,224,151,110,105,115,207, 59,142,148, 45,100, 10, 91,240,246, 92,182,252,148, 30, + 64,227,231,157,216,170,238, 45,114,187,208, 16,218,131,119,208, 84, 60, 56,254, 11,154, 69, 2,246, 21,231,242, 14,208,249,122, +191,167, 49,161,185,189, 71,249,243,131,127,235, 28, 88,190, 7,218,161, 81,191, 64,186, 19,110, 57, 95,234,243, 53,254, 16,209, +185,144,252,254, 39,221,229,153, 87, 76,219,170, 51, 4,206,242,126,221,189,134, 96, 98, 72,123,134,155, 95, 61,197, 55,222,124, + 7, 7, 88,227,254,131,199,150,143,190, 48, 51,152, 54, 19,158, 60, 57, 1,165,198, 9,115,102, 10,163,157, 46, 87,129,203, 71, + 7, 56,190,114, 12,114,121, 22, 67,176,172, 43,112,181,192,178,174,112,249,248, 50,132, 23, 54, 8, 16,227, 73, 10,184,125,251, + 14,120,243, 24, 33, 70, 4,142,189, 20,204, 72, 96,193,162, 45,221,227, 91,180,224, 73,144, 17,237,154, 38, 35,109,214,208,212, +246, 58,228,206,205,173,123,207, 49, 24,244, 45, 41, 25,209,174, 90,246, 94, 7, 92, 69, 36,170,160, 57,217, 74,210,181,241,164, + 25,145,187, 66,108,174,115, 96,182, 53,187,182, 78,226, 51,108,179,170,204,246, 86, 36, 35,186,215,119,206,157,142,217,172, 68, +197, 51, 57,162, 40, 56, 0, 9,193,249, 6, 6,241,138, 23,133,186, 98, 32, 70,211,180,119,123,119,104, 95,164,251,245, 25, 25, +150,170, 68, 72,217, 2, 92, 66,224,225,188, 86,177,248, 85,183,253,109,133, 77,162, 23, 24, 89, 44,148, 39,181, 45,150, 72,224, +197, 18,143, 79, 18,168,125,234,198, 57,123,131,166,231, 73,114,115,253,168, 2,129, 21,183,206, 24,111,224, 4,111,126, 63,226, +241,209,159, 32,173, 24,104, 79, 16,144,128, 64, 16,138,136,100,198, 57, 66,132,154, 76,234,215,187,254,113, 68,171,132,166,205, +104,147, 25, 13,169, 24, 1, 78, 52,155,238,191,239,243,196, 10,174,167,247, 85,193,120, 35,226,197, 57, 2, 16,182, 68, 79, 18, +114,119,193,193, 8,157,251,212, 48,234,145, 81,233,118,232, 93,157,112,134, 59,185,127,188, 0,200,217,255,135, 74,143,162,244, +223,125,120,250, 92, 49,209, 83, 8,168,150, 7, 8,111,190,122,253, 7,169,105, 44,134,174,183,203,158,216,158,208,120, 10,150, + 45,208, 25,147,208,150,129,226, 79,212, 21,107,131, 26,164,176, 47,165, 30, 38,198,104,191,184,117,152,238,153, 98,105,103, 53, +154,131,182,231, 67, 81,102, 37, 68,180,205, 49,216, 90,132, 83, 9, 69,210,204,115, 12,160,204, 40, 16,134, 74,210, 29, 97, 75, +101, 53, 61,110, 75, 8,121,122, 24,151,150,133,227,104,146, 29, 7,249,190, 24, 18,218,143,196,238, 42,154,123, 62, 59, 42,108, +217,169, 92,131, 16, 38,100,180,241,122, 99,220, 3,232,136,231, 65, 95, 11, 69, 24, 11,249,105, 23,212, 95, 34, 69, 61,220, 94, + 76, 62,122, 94,214, 11,253,205,170, 52,126, 43,191,126, 46, 23,174,135, 30, 80,176, 97,105,126, 63, 63,250,142, 20,144,223, 69, + 95,229, 98,177,192,163,175,110,227,131, 47, 30,226,245, 55,222,192, 33, 53,104, 83,194,225,165, 67, 80,168,241,100,213, 98,117, +114,138,138, 44,156,100,221,166,222, 18, 52,176, 21,180,197,114,137, 43,207, 92,195,114,177, 0, 1, 56, 92, 70, 80,172,208,120, +248,244,226,240,146,233,134,213,156, 44,239, 62, 56,193,250,209,151,189, 73, 77,231,215,201, 69,124,100,181,168, 16, 98,101, 26, +115, 17,176,102,196, 64,104,132,176,105, 90,164,102, 3,104, 54,105, 81,246,200,203, 24,140,125, 46, 30,131, 25,173, 89,168, 40, + 99,225,123,245, 54,217,212, 23,221,209, 78, 53, 65,178,246,217,215, 96,182,244, 45,184,236,201,207, 67,241,172,245,110,135,105, +154,117, 65,136,149,103,196, 91,113, 53,141,186,145,162, 50,216, 8,113, 80,196, 0,104,172,144,133,141,136,215,223,172,150,235, +174,172, 16,170,253,251,215,157,189,102,177, 27,131, 21,154,174,208, 43,145, 89,245,186,115, 6,179, 32,134,104,114,101, 54, 51, +159, 77, 18,180,173, 41, 5,114, 78,198,146,119,152,191,162,140,138, 20,199,135,192,186, 62,198,233,163, 21,130,158, 1, 28,119, +174,106,182,199,161,194, 3,164,248,183,232,255, 16,161,120, 10,194,163,187,132,191,117,237, 54,234,183, 95, 71,147,190, 5,110, +159, 0,200,168,217, 96,104, 51,233, 19,247, 32,168, 32, 44,144, 16,144, 17,145, 92, 90,150,133,208,180,130,212, 52,200,109,234, +141,124,204,139, 75, 7, 37,145, 42,178, 71,166,138,122,154,103, 12,222,108,218,222,221,228,134,236,247,112,238,189, 53,132, 58, +211, 52,234,211,249,208,223, 3,218,175,246, 58,207, 50, 38, 35, 76,114,232, 66,100,212,200,113, 78,196, 68,111, 4,103,126,254, + 93,171, 39, 96,212,213, 2,225,205, 87,111,252, 96,179,218, 88,215,169, 83, 68,141, 48,109,200,101,199,225,163, 52, 78,120,235, +187,125,116, 10, 11,103,199,123,167,193, 4, 84,174, 61, 20, 66, 1,209,219,193, 43,189,148,142,102,131,163,116,110,163, 92, 72, +191, 70, 50,164,153,247,115,158,180,108, 74,128,163,157, 9, 94,123, 86, 2, 52, 33, 21, 99,112,169, 83, 42, 97,114,255,255,180, + 3, 42,221,211,172,244, 37,157,198, 18, 35,217, 53,105, 94,100, 39,188,111, 98,222, 3,147,207,123,236,207,201,187,104,231, 99, +110,239,207,167,228,193,153, 11,181, 7,222,166, 30,247,167,253,181,151, 48, 50,224, 31,194, 21,244, 66,215,165, 72,134, 44,118, +228, 52,132,230,236, 24,136, 21,187, 61, 12,126,171, 21,157,230, 22,226,180,131, 59,167,243,203,119,189, 64, 50,221,232,128,102, + 44, 23, 21, 30,222,250, 20, 95, 61,222,224,237, 55, 95, 55, 3,141, 16,177,206,132,147, 39,143,209,110, 54,125,168, 11,121,232, + 73, 78,185,119,118, 60, 90, 84, 56,184,116,132,197,225, 37,115,139,171, 42,100,138,104,214,107,212, 1,160, 88, 99,221, 8, 54, + 77,139, 71, 79, 55, 56,125,120, 15,172,141,179,240,217, 29, 42,141, 5, 13, 87, 24, 40,193, 15, 99,107, 28,234, 24, 16,170,136, + 38, 41,218,181,233,210,147, 0, 77,147, 64, 42,142, 55,155,173,104, 74, 86, 52, 56,216,148,187, 88,212, 32,174, 32, 96,164,148, + 16,187,120,216,186, 66,103,176,157,178, 34,231, 60, 76,252, 4,183, 14,181,233,139,213, 37,109,100,164,188,206,107,221,226,131, + 67,239, 10,199, 33, 24, 33, 47, 68,228,172, 8,200, 22,239, 74, 17, 34,238, 57, 15,233,179,192,217,161,222,193, 42, 53,123, 16, +151,135,148,184,124,141, 67,116,111, 15,113,175,114,131,176,201,121, 11, 76, 78,186, 35, 51,197,201, 8, 72,155, 12,202,107,135, +162, 13,174, 86,101, 84, 36, 8,110,187,124,112,233, 0, 39,114,136,205,227, 7, 8,212,246,107, 16,218, 69,104, 30, 97,238,219, +162,206,224,255, 37,136, 88, 48,240,217, 58,224,234,253, 83,124,247,205,123, 56,185,254,175, 0,205, 33, 2, 86, 22, 82, 19, 25, + 84, 69, 48,215,136, 68,160,138,208,114, 68,210, 8,201,140, 44,130, 54,153,221,170,170, 66,147, 64,164, 53,254,130,100, 4,136, + 19,194,101,140, 72,187,153,144,168,153,189,132, 46,217,204,125,241,225,210,198,232, 46,117, 96,114,126,188, 73, 21,123,107,101, +146,254,172, 40, 57, 86,170,228,113,174, 78, 20, 15,182, 62, 82,226, 66, 51, 63, 12,194,157,195,106,215, 17, 44,170,202,118,234, +235, 85, 99,161,237,138,137, 99,153,157, 84, 92,176,205,119, 25, 97, 76, 67, 65, 58,134,178, 78,136,113,221,110, 32,128, 16,137, +202,212,244, 9, 57, 15,133, 55, 60, 97, 74, 27,167,201,191, 83, 9,209,238,176, 14, 45,137,120, 56,103, 82,167,153,154, 74,231, +141, 87,163, 53, 0, 13,181,100,139, 96,229, 69,120,107,164,166, 17,111, 97, 76,212,162,237, 99,127,242,187,218, 21, 36, 45,107, + 20,245,166, 45,211,157,241,223,168,176,207, 78,244,147,191,215,129,119,176,107, 87, 78, 59, 38,221,209, 59,165,178, 25,208, 29, +136,248,110,148,129,102, 9, 93,243,239, 79, 49, 68, 31,242,206, 18, 75,115,125, 82,143, 76,232, 62,226, 6,237,124, 53,255, 63, + 78,234, 83, 9,231,142, 34,172,187,223,111,239, 21,116,193,214, 99,200, 65, 48, 19,153, 7, 95,125,142,239,190,245, 42, 94,122, +249, 69, 60, 62, 91, 97,179,218, 0,169, 69,187,105,145, 83,235, 44, 94, 70, 43, 70,146,203, 57, 33,137,226,248,210, 1,110, 92, +191,230,132, 43,155,172,152, 0,214,108,147,117, 2, 86,171, 53, 78, 78, 87, 88,157, 62, 1,218, 51, 48, 19,170,200, 8, 29,123, +184, 55,186,178,201,180,142,193, 10,173, 90,150,186,194, 44, 54, 1,139, 93,205, 89,208,166,108, 6, 51, 78,243, 21,247, 77, 39, + 85, 44, 34, 97,113,112,136,117,235,144,122, 93,153,174, 88, 50,142, 22,140,176,168,145, 41, 96,149, 8,237, 38,129,197,221,192, +224,174, 98,206,104, 14,197,247,159, 67,128,176,233,211,161,217, 38,230, 44, 94, 84, 2, 68,108,191,223,133, 89,117,134, 85,102, + 63,106,140,124, 18,243,141,239,148, 30,230,204,201,206,138, 54,150,124,112, 31,113, 37,238, 27, 56, 17,187,113, 51, 5,144,152, + 46, 91,221,221, 46,163,243,231,135,179,201, 5,181,195,189,134, 74, 88,207, 35, 24,164, 95,153, 8, 27,173,192,162,136, 7, 11, +156,108, 34,228,236, 17, 56,184,155,185, 35,143,211, 84, 13,154,197,227,169,111,142,115, 31,250,197, 8, 80,164,168,184,117,191, +194,187,250, 5,158,121,231, 16, 43,250, 30, 56,173, 60,202,212,131, 86,136, 16, 34, 33, 19, 35, 83,132, 74,128,164,140,172, 9, + 77, 54, 95, 1,105, 18, 84, 51,178, 59,165, 90, 6,170,120,148, 47,245,215,184, 99,165,195,229,106, 70, 78,147,126,117, 17,217, +205,145,216,245,232,140, 65,183, 14,179,136, 53,143, 1,237, 37,208,220, 77,239,101,137, 35,244, 62,254, 34,198,165, 48, 63,121, +119, 89,213,201, 53,235, 89,234, 98,254, 8, 34,131, 39,111,199, 84, 31, 49,248,220, 0, 70, 39,146,159,210,252,115, 8,190, 40, + 10, 57,149,187,113,119,200,161,161, 16, 11,128, 70,213, 45, 19,208,155,211,116,222,243,101,178,101, 47,220,215,193, 60,127,206, +136,164,247,231,166,237,226,188,175,136, 43,246,136,220,232, 28, 18, 84,121, 24,234,118,163, 51,202,124, 47,175, 93, 23, 68, 83, +146,232, 58, 31,116, 29, 83, 3,116,215,120,169, 51,239, 66,199,187,251,142,248, 49,134,196, 75,123,217,237,240,151,242,205,232, +185, 64,217,204,223, 23,159, 3,233, 32,127,220,186,102, 91,246,180, 83,168,188,115, 93,218,237, 95,191,117, 87,234, 52, 40, 70, +183, 93,207,166,143,161,227,255, 12, 33, 53, 59,163,240,198,182,248,229,227,208,108,199,187,125,175, 20,215, 96,223,125,248, 91, +195,221, 75,146,204,100, 2,234,131,108,102, 95, 38,245,246,199,231,218,205,206, 4,244,152, 79,121, 64, 78, 9,151,143, 2,222, +120,243,117, 44,171, 26,181, 99,169, 49, 18,234, 42, 32,229,140,179, 77,139,212, 52,253, 36,169, 34,104,154, 6, 49, 86, 56, 62, + 58, 52,214,186,107,125,195,226,208, 66, 72,206,158,162, 93,157,161, 57,123, 10,106,207, 16,221,196,133, 57,128,163, 77,150, 85, +240, 61,169, 36,131,225,131, 77,214,154,205,105, 45,231, 22,109,106,176, 78, 98,176, 62,134,176, 41, 45,120, 57,172, 2, 98,194, + 70, 8,103,141,183, 10,106, 62,221, 41, 43, 46,215,138, 75,199, 7, 72,188, 64,206, 4,202, 13, 72, 54, 0,178,187,150, 17, 82, + 22,131,240, 85,221, 60, 36, 58, 1, 79,144, 91,113,187, 83,131, 88,141,235,166,208,212, 34,116, 83,183, 26,148,207, 68,150, 1, + 95,156, 52,236, 76,109, 99, 72,187,221,168,154,145,119,197,100, 48,189,107,164, 43,246,207,212,119,182,201,209,128,236,205,131, +180, 2, 73, 13,146, 0,109,171,166,217,247, 36, 56,104,131,122,193,168,151, 7,214,164, 68, 66,197, 1,139, 72,208, 96, 28,130, +220,180,104,207,214, 56,206,167,184,254,252, 49,242,193, 13,104,235, 76,172, 29,247,219,150, 23,194,112,178, 15,141,162, 0,144, + 22, 10,193, 37, 6,190,168, 34,254,247,191,170,113,240,211,127,140,227,227,143, 80, 29,221, 64, 93, 69, 44, 23, 21,150,139,136, + 42,178,217,224,198,128,192,110, 73, 76, 0, 41,163, 66,199,243, 82,243,140,135,173, 23,152,140, 33,223, 24, 49,222,154, 58, 14, +200,106,222,254,185, 91,155,104, 64, 22,130,230,100, 77,168, 5, 11,152, 5,113, 92, 0,161, 70,160, 10, 21, 71,227,116, 56,254, +220,229, 88, 88,122,161, 37,173, 72,177,134, 86,114,255,127,207,121, 79, 41, 33, 55, 45, 36, 39,228, 36, 72, 73, 32,201, 25,251, +106,106,248, 46,229, 67, 77,162,110, 87, 83,252, 63, 25, 24,164, 16, 93, 1,214, 14,191,159,158, 91,165,146,157,134, 47, 1,166, + 41, 85,110, 32, 81,124,225, 91, 37,108, 0, 52,118,203,143, 82,217,184,140, 45,165, 33, 92,101,219,201, 99, 27,167,166,153,227, +155, 70,175, 71,139,169, 99,254,100,210,201, 26,251,226,128,163,246,156,131,109,111,177, 61,197, 97,196,239, 43,138, 91,191, 26, +211,193, 8,192,201,135,177,187,158,115,215, 66,169,128,189, 39, 71,177,142,169,124,218,233,223,117, 78,125,173, 51,233,106,219, +255, 54, 71, 17, 44, 67,227, 74, 75, 93,221,249, 24, 99,243,150, 50,245,140, 70,127, 55,253, 93,157,145, 87,235, 56,192, 68,117, + 71, 54,141,140,138,190, 14,126,119, 67,192,141,158,247,121, 23,205, 68,215, 63,209,222, 79,188, 15,177, 65, 39,141, 44,222,151, +254,214, 11,253,200,215,120,212, 45, 14, 9,133,219,237, 17, 13, 97,127,160, 11,124, 3,202, 21,147,186,134,118,180,112, 33, 43, +174, 55, 94,124, 5,151,175, 92, 65,172,106, 44,234,136,101, 29, 17,130,229, 96,231,102, 3,201,201, 33, 95, 99,145,231, 44, 16, + 73,168,150,135,198,110,103,198,186, 85,164, 54, 99,185,168,176, 88, 68,132,160, 61,115, 24, 33,130, 57, 32,121,104,134, 8,129, + 56,130, 98, 4, 59, 59,189,201, 22, 99,169, 52, 28,218,109, 22,172,207, 86,144,118,141, 38, 37, 75, 44, 83,119,235, 34, 12,190, +224, 10,228,172,144,205, 41, 42,110,161,177, 66,211, 0,148, 91,112, 32,108,170, 99,172, 90, 70,211,172,109, 2,143,209, 38, 95, + 79,102,139, 4,176, 38,128,196,137,109, 10, 56, 25,173,130,249,203, 19,133, 34,195,130,156,109,110, 68,173, 44, 86,232,153, 20, + 20, 25, 9,150,102,215,165,116,169,119,244,170,100, 44,250,186, 2, 81, 64, 29, 1,174, 35,148,236,154, 38, 53,195, 19,179, 60, + 85,168, 50, 52,101, 32,103,207, 39, 87, 51,221,202,138,168, 25, 17,201,140, 89,130, 89,197,106, 54, 41,155,112, 5,213, 96,204, +253,192, 80,174, 17, 16, 80, 83,198,162, 82, 68, 22, 60,127,148,113,237,229, 23,208,134,103,128,220,204, 14, 7, 52, 59,102,141, + 53, 30,157,135,122, 87, 7, 8,192,165,165,226,159,157, 28,225, 23,255,244, 30,174,221,255, 95,177,188,194,136,203,107, 64, 85, + 33,198, 10,245,114,137, 88, 31,128, 67, 5, 14, 4,142, 1, 49, 4, 84,108,215, 53,179,103,209,195,214, 37, 93, 96, 94, 12, 38, +163, 20,152,151, 0,114, 26,206, 21, 49,158, 67, 23,212,147,196,156,223,224,211,181, 37,185,101, 99,216,171, 57, 23, 86,193,204, +150,130,251,250, 71,227, 46,142, 98,197,123, 41, 91,151, 65,226, 46,118,193, 3, 70, 36,103,136,180, 22, 58, 36, 98,153, 6, 57, + 33,139,107,236,189,246,176, 8,208,138,155,247, 23,141,146,120, 10,151, 22, 83,220,118, 76,168,142,204,226,185,152,176,165, 55, + 27,113,184,172, 63, 92, 13, 82,234, 88,167, 89, 9,169,248, 96,251,100,184,201,148,218,235,227,177,181,182,199,144, 29,174, 91, +195,137,206, 35,213,123,139,117, 9, 3,237,116,214, 59,167,176,111,215, 91,218,129, 6,232, 40, 20,102,180,250,244, 29, 14, 77, + 38,173, 92,240, 19,118,206,208,162, 69,108,234, 57, 83,183, 14, 54, 63,180,179,128,239,254,125,157, 78,188, 69,115, 53,250, 55, + 42, 10,177,206, 5,193, 76,166, 65,221, 17, 31, 59,189,182, 82, 52, 17, 58,220,103, 91,217,245, 91, 77,202,182, 17,187, 78,151, + 65,147,215,171, 51, 67,184,142,160,251, 93, 77,208, 20, 80,212,145,157,177,246, 77, 28,141,254,158,166,205, 83,105,235,172, 23, +109, 54,169,120, 59,101, 35,164,187,192,246,173, 41,159, 20, 59,143,222, 81,227,172, 24, 53,137, 0,122,131,148,171,151, 14, 16, + 15, 46,227,232,210, 37, 28, 31, 45,113,112,116,136,250,224, 8, 66, 1,145, 44, 44,197,166,222,132, 44,106,187,222, 16,208, 38, + 51,175,137, 49, 32,112, 64,133,140,128, 12, 81,182,148, 53,142,166,223,246,221, 85, 86,238, 83,209, 8,130,148, 51, 52, 11,170, + 42, 34, 35,224,116,213,224,116,213, 96,189, 73, 32, 77, 16,233,136, 95, 9, 1, 6, 93, 74,219, 32, 4,133, 32, 24,217,205, 53, +238,182,167, 54,130,146,194, 33,126,201,168, 88,144,185,194,234,116, 5,110,207,144,115,139,245,166, 69, 78,198,162,174,216,146, +213,108,223, 91, 33, 41, 35, 37, 65, 78,246, 51, 16,247, 91,231,202,163, 91,201,156,220,178, 49,175,179, 24, 49, 46,178, 37,101, +166, 44,200, 30, 78,161, 57,163,130,216,190,219,217,243, 80,248,228,104, 5, 87,152, 1,138,125,138, 24,103, 69,165,217,140, 88, +216,164,119,129,205, 11,159, 24, 16, 98,128, 42, 84,164,168, 42, 0, 85, 5,112,229,209, 39, 4,233,120, 2,174,141,207,146,237, +117,103,245,226, 79, 16,102,228, 80,131,169,194,203,215,106, 28,190,252, 13,180,122, 4,146,102,132, 6,119,196, 84,154, 24, 74, +233,232, 32,245,255,231,205, 85,135,237, 46, 1, 60,173, 9, 63,250,236, 50,248, 23, 63, 66, 69,255, 47,232,224, 26, 66, 56, 68, +228,218, 86, 28, 33,128,252,117, 16, 49,152, 35, 56, 50,196,249, 8,170,209,108,116, 37,155,126,220, 95, 77,100, 91,213, 84, 49, + 32,178,154, 91, 93, 39, 79,131,251, 9, 64,236,254, 48, 41,132,169, 29, 58,131, 34, 73,125, 18,159,186, 51, 32, 71,134,134, 10, + 66, 21, 64, 22,222, 99,185, 6, 60, 81, 44,107,127, 60, 5, 88,174, 10, 5, 99,188,219,164, 47,195,217, 32,198, 13,176,192, 32, + 5,139,232,214, 4, 46,216,142,255,220,254, 34,235,104,103, 76,163,242, 79, 61,204,129, 2, 28,232,254, 27, 29,235, 79,135, 93, +112,234,147,219, 20, 21, 20, 85,177,127,212,209,235,161,193,126,182,159,238,183,142,226,253,219, 69,157,211,217,235,216, 57,110, +239,123, 63, 7,122,156, 77, 43,219,197,244, 30, 67,195, 58,241, 19,149, 17, 74, 43,197,212,169,200,123,182, 1,218, 35, 40,147, +201,118, 47,108,238,152,139,254, 6,112,188, 98, 52,161,247, 46, 75,251,214, 5,211,231,217,177,243,208,105, 83,164,187,208, 26, +157,113, 2,150, 25,248,127,238, 90,116, 19,183, 12,228,147,109, 60,121,118,234, 47,211,250,168, 40,188,115,136, 59,237, 69,172, +117,228,208,166, 90, 25,223,136,104, 0, 0, 32, 0, 73, 68, 65, 84,114, 85,252, 49,123, 66,228, 16,255,123, 94, 77, 87, 45,163, +104,181, 28,193,247, 78,247,219,110,221,186,205, 86, 45, 66, 47,184, 59,140, 60, 89,107,232, 67, 4,145, 5,151,175, 92, 65,168, + 22, 88, 44, 22, 56, 60,126, 6,245, 98, 9,142, 11, 24, 23,205, 76, 91,172,112,187, 99, 90, 54,134,181,120,206,249,209,193, 2, + 7, 7, 53,226,242, 0, 28, 43,219, 49,167,108, 13, 0, 44,244, 69, 65, 30,141,217,154,142,152, 8,129,141,192,149, 65,144, 44, +184, 94, 39,220, 56,200,184, 86,219,196,220, 8, 33,181, 9, 34, 25,141, 18,146, 48,152, 61, 23, 93,236,181, 3, 54,252,216,174, +214,226, 84,219,214, 14,237, 69,205,200,196, 88,103,219, 51,107, 23,131,170, 25,146, 91,179,254,101,130,132, 26,173, 50,218,228, +196,181,220,192,120,236,118,226,166, 12,100,111, 46,152,196, 33,119,237,253, 36, 34,164,103, 92,167,156,145,155, 6,164,201,247, +228, 64, 85, 69, 67, 42, 68,176,168,188,117,204,173,201,247,178, 17, 16, 9, 54,133, 86,149, 57,195,129, 43, 51, 53,177,202, 1, +226, 0,102, 51,146, 97, 21,132, 8,228, 16,209, 74, 4,137,103,123, 19,219,148, 43, 10,201,166, 88,176,228, 49, 27,216,114, 22, + 39,118, 5,228,100,123,235,144, 50, 94,124,238, 16,241,217,215,144, 82,152,164,185, 77,227,180,231,111,204,172,142,172,104, 63, + 66, 2, 0,234,168,248,245,186,198,147, 79, 51,174,158,254,115,196,197, 25, 22,225, 8,117, 32, 84, 85, 64, 93, 17,170, 16, 16, + 61, 27, 94, 25,104,180,147,252, 25, 1,210,239,142, 30,161, 75, 98,249,242, 89,196,172,120, 67, 5,174,162,195,248, 54,229,135, + 0,196,104, 44,117, 56,105, 45,107,118, 52,133,192,162, 8,106,249,165,173, 55,171,146, 19, 2,204, 22, 58, 75,128,241, 39,197, +165,105, 1,194,193, 17, 28,179,140, 85, 16, 90,255,202, 6,255,236,152,163,217, 74, 23,209,232,220,217,208,194, 36,144,243,146, +150, 29, 4,158,146,248, 54, 14,224,192,196,222,211,190,212,217, 33, 70,154,153, 87,203, 8,112, 1, 65, 88, 17, 93,247,215,103, + 2, 23,135,136, 76,115,211,117,191, 77, 44,237,220,165,151, 19, 28, 21, 4, 97,157,152,212,206,239,210, 47, 6,201, 23,254,248, + 52, 87,216,181, 71, 1, 6,243,209,130,101,220,237, 96, 10,223,247,129, 60,168, 91,136, 66,153,178, 69, 19,166,154,246, 77,208, + 96,165, 58, 15,121, 13, 51,118,231,194,180, 21,116, 51,243,158,104,223, 85, 81,237, 37,127,179, 13, 87, 7,179,143,172,111,183, +187, 41, 45, 50, 3,202,198,105,250,119,165,253, 45,237,124,158,201,223,161,132,153,117,231,119, 96,174, 9,162,157,124,139,225, + 90,151,247, 27,205,211,215,118,148,250,109,222,129,110,177,240,134,235,176,253, 5, 46,194,127,183,110,226,217,101,203,214,202, +168,203, 56, 40,155,205,173, 41,223,225,118,166,242,254, 29, 55,170, 49, 48,170,197, 1,146, 6, 52, 26,176,202,140, 77, 14, 56, + 91,219, 33,215,186, 91, 91, 86,187,195,235, 69,133,186,147,129, 9,144,114,139, 80, 31, 64, 88,209, 54, 27, 48, 41,234, 42, 96, +157,179,155,195, 4, 75, 16,147, 22,228,108,242,232,228, 55, 2, 80,215, 21, 90,101, 28,160,197,115,207, 63, 11,240, 18,155,156, +240,244,206, 99, 52, 95,125,133, 58, 90,115,210,122,240,138,229, 19,152, 17, 76,134, 57,208, 33,103,207, 11, 24,120, 41, 41, 37, + 80, 85, 67,136,177, 89,173, 17,163, 79,175, 34,182,175, 23, 47, 70, 45,160,109,107, 19,159,113,197, 7,200,220, 73,107,154,179, + 75, 7,185, 71, 3,140, 75,148,177,136, 64,166,128, 38, 5, 0,150, 46,150, 37, 33, 74, 64,116, 34, 24,251,117,102, 55,169,225, +106, 1,202, 9, 57,103,139,127, 85, 35,112,133,200,200, 20,208, 9,215,236,179,180,223,167,110,164, 11,209, 8,131,217,172,107, + 41, 43, 50, 90, 32, 16, 34, 5, 43,100,204,216,180,110,156, 18,204,235, 62,146, 37,196,229,156,251, 5,130, 66,145, 18,112,137, + 51,158,127,225, 18,190,216,188, 12,122,122, 19, 84,149,226,230, 49,244, 52,190,133,117, 82, 47,242,232,231, 22, 12,220, 17,224, +214,157, 5,254,228,233, 77, 60,189,254, 57,214,205, 59, 16, 60,245,159,168,144,152, 16, 52, 33, 72, 68, 10,138,181, 10, 54, 77, +130,166, 4, 11,119, 1, 68,184, 79, 32, 4,140, 56,174, 34,136,104,109,253, 66,206,215,160,193, 2,150,196, 17, 38,192,188,225, + 29, 37,100,191,143,253,162, 26, 2, 39,236,113,185,201,163, 86,217,136,123, 2, 48,153,244,176,251, 76,186,248,111,117,255,120, + 82, 35,151,195,141,155, 20,236,252, 43,203, 64,233, 24,214,226,247,129,165, 96, 41, 60, 18,117,248,195,147,201, 81,119, 64,205, +218,147,215,180,159,196, 71,190,113, 90,104,146,167,178, 5,149,226, 20,103,100, 0, 27, 40, 26,127,254,168, 58,233,228,198, 7, +142, 96,119, 60,239, 52,139,122,138, 72, 64,203,169,138,182, 44,254,118, 77,230,180, 27,120,223, 38,116, 77,167,246,146,128, 68, +211,230, 70, 39, 68,145,129,216,166,122, 30, 89,111,162,235,236, 28,137,138,233,178,179,244, 37, 96, 7,204, 62,105, 4,116, 55, + 33,173,124, 83, 58, 55,205,110, 47,146,119, 54, 97, 84, 76,165,227,157,248, 76, 3,160,219,217,236, 90,124,134, 37,115, 77, 47, +196, 17,240, 24, 68, 29, 41,100, 81, 98,220,179, 68, 63, 12,215,118,180, 79,166,153, 49,121,114,143,206,243, 11,126, 3,242,219, + 22, 60, 83,254, 71, 38,141,228, 20, 37,210,157,107,129,254,250,147,206,118,177,164,243,139, 31,227,222, 72,239, 99,221, 35,127, + 98,105,101, 49,214,200, 57,163,230,140,118,125, 2,109,215, 64, 90,185, 15,124,180,162,166, 70, 4,218,180, 25,202, 53,132, 44, +140,133, 84,177,217,180, 64,110, 64, 44,200, 89, 45, 52, 37, 90,244,105,134,185,182, 65, 18,152,201,164, 95,236, 7, 38, 20,194, + 17,151,170,128,197,149,203,120,208, 28, 64, 16,241, 48, 93,194,217, 38,160,102, 27,255,170, 64, 88, 4,117,164,192,194, 54,132, +130,211,145,179,163,190,195, 89, 23,216, 48,194,213, 58, 65,218, 12, 86, 53,171,219,108, 19,177,136, 2,217,152,239,172,130, 3, +110,193,148, 33,228, 51,149, 75,215, 52,231,222,158,212, 28, 98, 7,105, 89,197,138,186, 34, 80, 21,208, 96, 97,211,178,102,111, + 92, 3, 42, 18,155,178, 41,248,243, 10,184,178,137, 47,123,188,103, 12,228, 68, 57,219, 19, 91,179,110,123,113,150, 22, 21, 18, + 58, 17,108,197,100, 48,175, 26,243, 58,183, 10,106, 27,144, 54, 80,100, 99,242, 35,163, 85,131,221, 99,136, 0, 5,180, 34, 38, +145, 7, 1,209, 32,101,139,172, 55,163,154,224, 46,116,215, 22, 45,174,190,120, 29,109,117, 29, 72,109, 15,189,239,217, 37,158, +251, 39, 18,176, 98,224, 87, 15, 42,240,151, 39, 56, 14, 31,163,186,124,132, 80, 31,187, 62, 62, 26, 51,189,170, 80, 85, 53, 56, +154,119, 74, 74, 4,105, 90, 80,187,246,164,179,110,111,108,139,203, 72,132, 64,150, 25,144, 69, 76,191, 46,210, 27, 18, 69, 50, +201,100, 23, 84, 47,204,110,180,195,190, 94, 30, 88,102, 12, 66, 36, 70,116,151,190,148, 5,146, 18, 4, 25,137,216, 60,246, 85, + 17, 57,219,254, 61,146,175,147,134,149,245,128,134, 38, 59,192,125,173,162,204,163,111,113,212, 98,145, 62,242, 99,223,195, 26, + 23,104, 79,168,238,160, 65, 42, 26,129,110, 26,146,137, 33, 74,169,217,165, 81, 14,153,142,234,187,210, 0,177,107, 49, 69,143, +217,227,251,181,189,180,167, 40,235,148, 20, 71,115, 56,233,238,121,124,215, 20, 87, 90,179, 78, 39, 92,242, 9,119,108,106, 51, +104,160,166,243,102,233, 76,166,163,100, 60,237, 45, 68,105,134,224, 55, 77,207,155,219,157,107, 33, 83, 84,156,231,241,164,147, +148,184, 57,102, 53,109,167,142,109, 69,168,206, 79,250, 37,123,183,203,159,231, 18,146,219, 21,243,218, 55, 40,197, 52, 44, 5, +193,123,196,109,152,123,140,110, 88, 45, 27,137,193, 97,134, 49,211, 60, 76,188,215, 9, 99,163,150,238,250,211, 30, 2,102, 89, +216,247, 70,247,253, 54, 20,108,123,101,106,251,224, 39,234, 81,178,173, 40,221, 9, 76, 86,174,197,116, 18,232, 83,126,207,152, + 45, 23,122,211,182, 88, 46, 15,112,180,168,208, 86, 4,138, 53,210,233,202, 9,134,110,135,169, 45,144, 21,194, 9, 21, 87,168, +162,253,190,102, 69, 18,113, 34, 89, 99, 30,242, 49,154,215,250,166, 5, 57,164,171, 5,125,215,108, 67,237,112, 14,203, 0,165, + 67, 28,203, 41, 26, 28,225,233,147, 53,228,233, 93,107, 2, 56, 0, 16, 80,172,128, 54, 33, 68,133, 34, 34,167,236,118,169,108, + 17,167,238,140, 73, 33, 64,153,221, 85,173, 65,197, 10, 13,209,189,199,109,114,141, 96, 43,214, 46, 85,163, 8,128, 23,200,171, + 6, 76,238,251,237,201, 95,162, 30, 6,227,218,102,245, 8, 78, 9, 1, 77, 54,167, 50, 74, 25, 42, 27,128, 9,146,129, 90, 5, +139, 10, 88,135, 26,109, 99, 76,119,228, 12, 97, 6,115, 48,253,184,100,211, 91, 7, 6,185,105,138,184,166,154, 2,140, 32, 71, +182,185, 37, 17,131,161, 57, 34, 2,238,255,174,208,172, 67,144, 21,236, 11,154,149, 64,173,130, 56, 89, 49,243,212,183,164, 25, + 16, 3,131,137, 9, 68,149, 57,174, 73,134,144, 34, 72,192,141, 35,194,233,141,151,208,222, 58, 67,212, 51,128,170,194,182, 88, +119,224, 71,187, 69, 37, 12, 0, 17,248,232,148,113,250,121,198,229,245,175,177, 62, 58,193,122,243, 12,176,222, 64,115,139,144, +220, 41, 15, 21, 24, 21, 16, 20,160,141, 75,216, 18, 72, 91, 4,247, 76, 81,146, 97,248, 33, 75, 75, 83, 33, 80,231,163, 27,128, + 4, 32,100, 5,177, 66,136, 33, 26,220, 76,134,124,182, 86,100,181,104,224,206, 94,191,112, 19, 55,163, 32, 81,184, 22,210,200, +154,112,150, 56,219,250,130,130, 53, 89, 80,111, 44, 50,192,118,211,248,144,202,189, 42,172,203, 46, 37, 12, 17,233,253,138,141, +102, 72,113,135,135, 71,120,247, 15,255,213,129,157,173,227,141,115,151, 85, 46,197,182,111,254,171, 93, 66,171, 99, 75, 88,118, +234, 73,119, 36,138, 90,244, 32,156,233,205, 51,147, 91, 55, 91,247, 14,109, 58,127,182,237, 43,205,125,216,128,238,167,195,209, + 94, 56,191,212,229,110,255, 91,231,255, 59, 26,102, 75,212,161,131,158,123, 93,122, 65, 80, 84, 26, 21,234,190,248,232, 54, 95, + 95, 65, 88, 30, 28,226,187,223,255, 67, 16,117,255,251,143,198,112,188,103, 1,119, 46,127,164, 23,100, 88,239,253, 57,103,103, + 22, 53, 82, 21,123,150, 23,197, 4, 59,105, 23, 59, 72, 92,231, 86,246,115, 40,209, 12,164,178,141,220,232,132,245,143, 45, 2, +206, 96, 35, 59,143, 40,232,132,164, 54,171, 84,155,227, 17,204, 64,237,138, 93,232,215,111, 83,197, 70,123,152, 49,243, 47, 80, +203, 4,186,115,214, 91,180,219,100,121,235, 95,152, 9,155,172,120,178,218, 32, 53,107,187, 86,241, 0,107, 9,102,116, 66, 25, + 73,164,247,100, 31,249, 82,112,192,114,185, 68,172,140, 42, 44,109,194, 34, 8, 22,139, 26, 25,140, 86,204, 9,206, 34, 45,217, + 63, 71, 35,153, 25, 44, 79,160, 80, 35, 6, 32,233, 18,199, 33,225,232,218, 37,156,166, 37,214,167,143,177, 12, 77, 63,197,162, + 99,163,187, 39, 55, 51,163,138,220, 51,121,152, 77, 44, 20, 3,131, 99, 52,171,207,156,193,200, 70,142,114,184, 54, 1,104, 37, + 32,137,160,161,136, 54,217,181, 93,183, 70,168, 50,189,125, 70,202, 48,120, 91, 76, 82, 37,146, 76,125, 36,132,160, 22,235,153, + 51, 65,154, 12, 89,175,204,192,133, 25, 57, 3, 17,130, 69, 20,180, 33,162,213, 26,104, 21, 65,146,229,109,231, 12,146, 22,145, + 5,129,130, 55, 15, 64,197, 0, 5,131,224,149, 25,141, 18, 26, 9,104, 50, 27,217,203,115,187,219, 22,104, 51, 32, 28,192,177, + 66,168,205, 63, 61,196,232,141,140,203,188, 96,188, 7, 21,247,158,103, 25, 20, 21,146, 32,201, 18,230, 2, 9, 36, 48, 36, 91, + 88,204, 66, 90, 92,191, 22, 65, 87, 94,130,100, 6, 52, 21,103, 55,109,147,227, 46, 48,184, 47, 3,240,105, 75,248,236,139,128, +195, 71,159, 97, 89,221, 70,117,120, 25, 92, 29, 33,114, 13, 10,209,154, 33, 34,100, 13,200,146,145,157, 84,105, 17,244,118,247, +139,121,174,218, 74,196, 97,246,192,190,147, 15, 12, 33,177,240, 30, 79,109, 19,207,177, 37, 31,220,200, 61,222,216,253,226,213, + 9,139, 41, 91, 74, 91, 82,130, 40,131,157,106, 71, 8, 96,177, 21, 6,156,143,144,218,132,212, 36, 52,173,160, 77,254,243,204, +136, 21,129, 98, 0, 16, 6,141,188,116, 36,245,174, 22,170,161,219,226,133,145, 61, 52, 64, 74,119, 47,218,134,177,167, 7,136, +244,178,149,146,100, 51, 15, 79, 51,128,229,225, 17,190,253,206,187,248,217,143,254, 69, 63,229, 92,190,122, 21,175,188,254, 22, +110,127,254, 9, 30,220,187, 87,110, 3, 29,146,242,116, 66,184,142,157,208, 79,191,101, 90, 13, 0, 28, 28, 30,225,173,119,222, +197, 79,253,241,231,110,134,239,253,222, 31, 21,131,135, 5, 61,228, 60,236,106,126,254,147, 31,126, 45, 52, 72,103,199, 30,103, +202,206, 17,175,138,137,149,180,160,180,141, 32, 6, 45,125, 98, 49,245,243, 82,108, 79,187, 23,194,172,116,104, 2, 64,165, 48, +113,191,212,175,204,107,159, 38,190,245,249,242, 58,103, 34,160, 35,239,119,154, 76,145, 74, 24, 73,201,202, 60,242, 41, 26, 48, + 26, 22, 71,252, 8,111, 8,251,199,164,157, 49,177,219, 38, 23,226,246,197, 52, 33,160,209, 12,191,209, 37,145,251,166,236,153, +253,253,148, 37, 94, 78,249,227,230,238,183, 57,169, 79, 99,102, 47,240,171, 90,218, 54,239,193,113,116,146,162,229, 32,135, 78, + 19,233, 96,135,226,233, 38,225,246, 87, 15,241,150, 36, 75,247, 10,198, 48,103, 86,228, 80, 65,115,235, 13,167,153,126,152,245, +166, 17,127,170,170, 2,133, 26,208, 13, 66, 32, 52, 57, 56, 90,213, 90, 0, 76,179,177,253,119, 96,100, 18, 72,182,168, 80,138, + 17,224,136, 0, 6, 87, 17, 53, 54,224,229, 17, 30,165,203, 56, 57,121, 4,108,206,204,249,141, 35,186, 50, 21,115, 70, 18, 70, + 78, 98, 22,163, 85, 0,137,201,154,212,139, 45, 8, 16, 10, 70,224,131, 66, 29,230,151,212, 26,175, 32, 89,234,168,197,167,219, + 78, 28,158,176, 70,218, 24, 75, 61, 17,144,237, 90,152, 41, 12,245,187,120,144,130, 42, 70, 70,132,166,140,192,201,101,144,230, +111, 15, 18,212,198, 16,195,153, 44,128,182, 69,197,141,127, 26,193, 38, 67, 88,241, 22,138,150,135,141,108,118,165, 84,161,205, +228, 22,168,112, 38,186,162, 88,173, 3,240,204,118, 85, 84, 76, 16,159,232,109,103, 75,230,247,174,201,191, 7,108, 13, 10, 76, +154, 7,237,200, 90, 4,101, 32,169, 34, 64, 16,185,118, 66, 90, 3, 17,193,213, 64, 88, 93, 63,198,253,213, 13, 84,155, 91,208, +192,192, 76,229,160, 25,244,117,238,207,130,128,123, 0,222,187, 93,225,251, 95, 60, 64,245,141, 15,192,245,187,224,250,208, 9, +106, 98,188, 7, 82, 36, 33, 4,247,176,207, 2,255,247,108, 4,191, 46, 50, 89,105,194, 37, 85,100,182,235,171,125,208,139,213, + 34, 22, 5, 81,246,102,160, 83,113,121,196,184, 12, 22,233, 93, 20,106, 40,178, 68,196,135,185,233,209,105, 96,129,103,184,103, +219,180,135, 64,118, 79,135,202,107,245,160,116,232,124, 10, 2,187,157,174, 21, 86,218, 50,209, 80,103, 28,202, 68,166, 52,146, + 44,109,237, 98, 29, 8,208,242,111,236, 20,230,201,249,146,253, 95,175, 95,127, 30, 47,190,252, 42,110,126,252, 43, 60,125,244, +120,200,206,214,194, 12,199, 33,227,126,255, 77,195,227,118, 63, 56, 93,207,204,153,122,117,255,255,231, 63,254, 97,255,191, 15, + 14,143,240,246, 59,239,226,103, 63,254,225,132,211,214, 21,151,237,131,106, 39, 25,175, 8,197, 25,166,238,185, 95,156,196,127, + 17,141, 10, 57, 41,102, 88,199,229,198, 91, 1,229, 1,111, 32,221, 66, 42, 46,180,151, 85,187,150,243,196,184,253,112,123,217, + 84, 15,131,174, 98,151, 97,108,175, 46,160,201,187,209,161,176, 79, 53,244, 68, 59,218, 38,151,127,245, 30,137, 52,105,122,230, +136,113,221,125, 66, 52,134,167, 20, 5, 57,113,158, 16, 87, 54, 18, 68, 37, 36,189, 43,250,181,128,162, 47,100, 11,175, 35,166, + 63,104,251,254,213, 11, 89,252, 22,215,122,139, 77, 74, 59,219,207,173,198, 73,186,235, 49,131,145,168, 78,162,141, 49, 86, 38, + 76, 39,117, 34,180, 25,248,240,227,155,248, 83,217, 32, 81,196, 90, 42,247, 83, 39,155, 94, 73, 16,216, 34, 80,147,203,200,114, + 22, 44, 43,198,225,178,182,249, 39, 27, 19, 57,165, 12,149,228,211,120,182, 41,188,181,196, 48,219, 57, 27,145,140,216, 72, 71, +117, 72, 32, 62,192,225,146,176,193, 1,154,147,167,104, 86,167, 32,217, 32,199,170,111,170, 3, 19,168,142,222, 66, 39,203, 85, + 7,153,165,171, 40, 42, 77,136,117, 64,163, 17, 72,230,115,190, 86,128, 90, 65,229,113,104, 34, 9,129, 2, 2, 41, 18, 2, 8, + 25, 76,182,147,205,170,168,153, 81, 87,193,188,220, 53,131,201,119,162,206,210, 7,147,233,224, 85,145, 28,185, 96,245,204,119, + 55,138, 9,108,197,163,209, 10,104, 1, 78,107,228, 40, 32,170, 12, 38,134, 55, 5, 26,250,239, 86, 86, 66,206,238, 82,103,226, +107,243,115, 15, 62,157,106,193, 79, 34, 69,197, 64, 80, 65, 38, 35,144, 69,117,134,184,175, 78,163, 67,240,112, 29,181,102, 5, + 82,178,115,190,115, 84, 11,140, 86, 2,164,201,168,171,132, 28, 3, 88,204,196,133, 69,113,237, 48,227,244,185,235,216,220, 58, + 65,148, 39, 0,215, 23, 94,164, 79,127,138, 1, 72, 4,126,254, 40,226,228,147,167, 88,124,255,103,208,195, 63, 3,232, 16,160, + 53, 20,166,110, 72, 2,172, 19,161,221, 24,154,160, 36,246,253, 22, 11, 84,129, 36,143,178,149, 30, 41,144,146,211, 85, 38,158, +169, 58, 62,105,121, 17, 66,221,254,207,245,255, 80, 8,163,143,195,165, 30,166,205, 62, 72,154,255, 65,238,236, 98,252,187,195, + 10, 8,149, 17,180,226,232,147, 64, 91, 75,243, 3,117, 81,116,157,103,255, 16, 33, 22,187, 11,146,251,137,219, 36,248,170,229, +164,110, 79,118,229,217,235,120,254,165,111, 32,196,136,199, 15,239,227,243, 79, 62, 68, 86,224,185,235,207,227,185, 27,207,227, +151,239,253,172,255,178, 87,139, 5,126,231,221,223,199,123, 63,253, 17,218,182, 25, 12, 68,104,224,240,136, 2, 47,190,248, 13, + 92,191,126, 3, 31,253,234,125,156,157,158,244,135, 70, 96,198, 43,175,126, 19,199, 87,159, 1, 17,240,248,209, 67,220,186,249, + 49,160,130,163,195, 75,120,227,157,239,225,147, 15,127,133, 23, 94,254, 6,234,122,129,245,122,133,207, 63,254, 0,155,166,193, +183,222,254, 46, 0,224,187,223,255, 67, 40,128, 59, 95,220,196,253,187, 95,142,124,235,247,177,155, 15, 28, 73,184,249,201, 7, +120,254,133, 87, 80,213, 53,126,246,227, 31,226,217,231,110,224,185, 27, 47,160,170,236,230, 59,121,250, 4, 95,220,252, 4, 41, +181,246, 59,223,249, 30, 62,249,232,215,120,225,197,151, 81, 47, 22, 88,175,215,248,252,211,143, 80, 47, 22,120,225,197, 87, 80, + 47,150,216,172, 87,184,249,233, 71,216,172, 87, 56, 56, 56,196, 91,223,249, 46, 62,253,248, 3, 60,255,226,203,168,235, 26,155, +245, 26,159,223,252, 24,117, 93,227,249,226,119, 62,187,105,191, 3,151, 67,188,244,242,107,184,124,197,174,205,147,199,143,240, +197,103, 55,123, 63,225, 11,125, 37,148, 70, 68,135,158,224,120,110, 97, 31,119,125, 35,207,250, 82,115,189,115,250,212, 34, 25, +170,179,216,160,130,112,182, 99, 98,166,178, 89,232,154,129,146,237, 95,184,233, 97,102,135,143,194, 76,173, 95,190, 79, 88,224, + 37, 27,126, 58,157,119,251,114,154,243, 50,164,189,107,158,114,234,159, 11,139,219,219, 16,116,239,149, 10, 66,161,219,254,206, +191, 86,140, 63,219, 17,156,174,123,215,239,228, 58,246,206,221,176,148,212, 41,182,152,158, 5,232,115, 14,139,147, 8,139,186, +198, 71, 31,124,136,175, 30, 60, 66,155, 43, 60,121,244, 20,171, 77, 70,202,174,187,118, 8, 84, 40, 32,185, 44, 76, 18,161, 14, +140,203,151, 47, 97,229, 5,178, 51, 3,201,109, 99,158, 13,162, 0, 71, 8, 26, 64,140,112, 71,149,177,148,155,172, 56,132,128, + 15,142, 76, 94, 84, 47,208, 72,132, 96,133,220,182,134, 22, 72, 30,118,240,106,132,179, 24, 97, 48,119,211, 66,115,114, 29, 55, + 0,111, 56,204, 57, 52, 67, 3,163, 2, 65,218, 53, 0,219,239,231,228,135,183, 23,233,156, 19, 32,206,196, 79,130,156, 26, 72, + 48,191,120,176,184,221, 40,247,214,161, 68,193,223,151, 25,152,144, 26,121,176,151, 73,145,155,145, 4, 43,242, 81, 91,132,168, +216, 40, 35,136, 5,211,168, 90, 60,171, 0, 30,233,105, 72,148,117, 5,226,241,170, 98, 17,171,220,217,126,117,217,235,166,129, + 14, 78, 54,204, 32, 32,217,130, 33, 6,147,128, 73,178, 85,169, 4, 35,155, 5, 16, 40,116, 5, 78, 93,164,199, 32, 97, 44,137, +144,137,208,182, 27,160,170, 32, 90, 1,218, 90,114,154, 42,174, 93, 9,184,243,244, 5,232,163, 51,128, 19,160, 97,118, 53,117, + 17, 4,235, 32, 0,191, 90, 17, 62,252, 56,224, 59, 15, 62, 68,117,244, 41, 82,248,221, 94,243,205, 0, 88, 50,178,102,108,146, +162,221,108,128,212,244,196, 88,210,220, 79,101, 10,140, 88,230,182,194, 24,156, 6,201,186, 0, 4, 29,204,215, 58,119,246, 46, +102, 92, 61,221,212, 86,118,118,253,173, 97,112,186, 91,199, 23,234,210,219,196, 28, 3, 59,193,158, 20,154,113, 41,150, 94, 42, + 50, 60, 35,117,206, 1,232,131, 93,120,228,195,230,111, 60, 98, 26,251,105,127, 46, 95,185,138, 15,222,251,151,248,240,167, 63, +194,225,225, 17, 94,124,229, 53, 48, 20, 15,239,223, 69,189, 48, 51,137,174,137,121,246,185, 27,120,250,228, 49,218,166,241, 46, + 68, 10,102,188,189,196,215, 95,255, 38,174, 61,251, 44,126,245,254,207,113,122,242,180, 63,200, 25,138,215,190,249, 38, 66, 12, +120,255,103, 63,198,123, 63,249,151,168,170, 26,207,191,252,106, 15,150, 2,192,213,103,174,225,195, 95,254, 28,239,253,248,135, + 88,175,206,240,242,107,111, 64, 36,227,195,191,126, 15, 0,240,222, 79,254, 18, 63,255,241, 15,113,255,238,151, 51,206,103,231, +223, 44,151,143,175,226, 87,191,252, 57,126,254,147,191, 4, 0,180, 77,131,143, 63,248,107,252,236, 39,127,137,247,223,251, 9, +152, 3, 94,121,245,155,163,199,187,114,245, 26, 62,248,245, 47,240,222, 79,127,132,245,234, 12,175,191,249,109, 92,185,122, 13, + 31,254,250,125,188,247,211,191,194,106,117,134, 87,190,241,250,232,121,174, 92,125, 6, 31,253,250,125,188,255,179,127,137,245, +122,133,215,222,120, 11, 87,174, 94,195, 71, 31,188,143,247,127,246, 87, 88,175,207,240,242, 43,175,247,175,254,149, 87,223, 0, +135,136, 95,253,226, 39,248,235,247,126,140,170,170,240,194, 75, 47, 15,110,176, 23, 44,236,115, 72, 64, 73,250,210,115,126, 91, + 75,130,183,238,209,191,207, 78,251,131,135,219, 72,219,160, 58,111,233,186,181, 43, 47, 38,255,114, 93,177,195,126, 86,225, 30, +202, 14, 45, 15,174, 10, 83,173,247,120, 95, 63, 38,142,234,224, 6, 55, 93,168, 43,206, 97,180, 15, 54,200,138,139, 58,197,233, +152,181, 95, 64, 35, 90,234,213,167,207, 59, 98, 89, 94,112,236,209,209, 70,125,148, 67,175, 58, 47, 45, 2, 58, 93,250,249,111, +230,224,224, 0,159,125,118, 11,191,252,229, 71,136, 16,164,245, 9,210,250, 12, 77,211,130, 53,163, 38,207,254, 86,241, 9, 22, + 72,109,198,229, 5,176,184,116,108,214,163,254, 58, 2, 11,146, 88, 62,185,186,131, 87, 21, 3,212,109, 96,149,237,152, 11, 32, +196, 5,160,116,136,203, 11, 96, 77, 53, 56,173,177,145,128,102,179,134,122, 28, 39,245,126,252,217, 11,159, 23,119,102,212, 21, +155,105, 12, 71, 44,234, 10, 21, 51, 2,137,153,177,104,192, 50, 50, 14,150, 53, 66, 32, 68, 86,139,133,101,143,101, 21,216, 46, +151, 12, 73, 91,212, 1, 28, 3,154,156, 1,201,195, 38, 84, 7,201,153, 41, 0, 82,111, 75, 27,157,147, 96,251, 89,123,125,236, + 33, 34, 76,228, 97, 43, 1, 49, 86,189,151, 60,135, 96, 30,242, 57, 65, 53,129,196, 7, 55,191, 87,109, 66, 55, 73,154, 34,246, +247, 79,176,135,117,237,179, 34, 19, 65, 16, 92,131, 13,104,242, 46,158,171, 1, 61, 37, 54,243, 19,195, 58, 64, 20, 12, 94, 22, + 49,230,191,180,136, 53,160,177, 54,183, 92, 77,110, 93,106,239,247,106,204,184,122,253, 16,105,121,195,225,233,109, 30, 19, 93, +112, 13,186, 36,224, 1, 1, 63,186,189, 0,223,188,139, 58,255, 20, 84,103,196, 88, 57, 25,146, 81, 5,251, 60,213,211,240, 76, +173,208, 24,185,205,181,235, 61,237, 76,217,137,175,140,224, 70,238, 22,182,226, 9,142,190,182, 5, 49,132,128,164, 5, 73,147, + 6, 63,247, 46, 38, 85,123,198,156,123,194,119,113,170,210, 43, 37,157, 93,230, 26,250, 94, 26,202,133, 34,105,122, 6,102,136, + 27, 40,169, 27,198,177,162, 84,153,233,112,120,149, 64,168,191,144, 59,183, 63,135,168,162,205, 45,238,222,254, 28, 87,159,125, +206,165, 27,130,135, 15,238,225,185,231,110,140,138,250,189,187,119, 70,143, 53,253,115,229,234, 51,120,242,248, 17, 54,155,117, + 15, 89, 19, 44, 50,241,248,234, 53,220,254,236, 83,179,141, 20,193, 87, 95,222,198, 51,215,158,117,183, 31,219,191,220,253,226, +166,101, 22,139,224,193,221,175,112,120,116, 9, 91,105, 45, 51,207,191,143, 58, 84,254,228,157,219,159,185,203,144,253,237,147, + 39,143,208, 52, 27, 91, 29,164,132, 47,239,220,194,165,227, 43,163,223,191,253,197, 77,228,156, 33, 42,120,112,255, 46,234,122, +129, 91, 95,124,214,107, 69, 31,220,247,215, 89, 60,219,237, 91,159, 33,101,243,144,238,126,231,206,173,207, 33,190,227,121,120, +255,110,255, 59, 33, 68, 28, 95,121, 6,119,110,127,102,144,158, 40,238,125,117, 7, 87,159,185,246,181,118,167,152,149,223, 97, +152,128,167,103,245, 28, 9,177,168,178,178,111,127,175,243,133,157,102, 73,103, 58,149,172,110, 21,158, 17,231, 64,101,134, 55, + 49,150,174,245,133, 89,117,236,131, 63,121,159,187,164,123,227,250,189,203,202, 77,103,159,119,219, 16, 73,183,229,114,250,117, + 65,199, 73,145, 47, 93,231,186, 47,116,105,177,119, 78, 6,203,212,222, 25, 58,254, 59, 76,114, 30,166,136,194,246,218,103,251, +155, 85, 87, 17, 15, 30,159,224,253, 31,253, 24, 36, 9, 85, 80,212, 44,230, 37, 78, 64,172,107,112,136, 80,115, 55, 49,216, 28, + 25, 47, 60,123,132, 54, 94, 66,179,105,205,155, 60, 11, 4,230, 32,167,154,253, 99,204, 30, 35, 26, 33, 34,168, 3, 33, 4,194, +241,130,209,240, 17, 22,178, 1, 29, 30, 0,169, 6,199,140,117, 43,160,220, 64,179,145, 70, 57,116, 78,107,230, 74, 71, 76, 6, + 63, 7,130,112,109,176, 48, 49,136, 34,170,197, 18, 33,214,168, 57,160,102,219,157, 47, 22, 75,212,139, 37,192,150,246,182, 60, + 88,128,136,144, 82,178,231,128, 69,155,102, 5,148, 43,136, 16,114,110,123, 6,124,231,233,209,122,190,123, 22,103,217,187, 3, + 93, 34, 54,178,148,167,175,117, 68, 60, 22,115,128,147,222,122,204,173,108,212,120, 12,145, 93, 78,197, 22, 27,170, 74, 61, 9, + 87,136,205,222,213,119,177, 29, 81,151, 24, 8, 33,152,195, 25, 27, 99, 62,104,238, 67, 92,178, 7,146, 80,151,230,198, 10,142, +230,174,198, 42, 46,163,131,121,174, 71,219,193, 43, 4, 33,152, 93,109,103,170, 99, 25, 30,130, 0,224,218,145,162,190,254, 28, + 18, 93, 5,180,157, 61,149,206,109,130,187,253,119, 13,252,240, 65,196,151,239, 43, 22,143,126,134, 80,221, 71, 8,151,193, 33, + 96,195,140,181,154, 21, 44, 87, 21,152,106, 35,193,171, 53, 89,164, 98,146, 61,119,107, 35, 79,107,172,160,168,221,241,144,216, +245, 95,142,158,100,245,137,154,236,243, 49,119, 61,251, 12, 85,108, 64,142,108,247, 21,251, 52,157,148, 33, 98,122,242,224,211, +117, 86,187,143,137,114,103, 86,107, 13, 88,151, 17, 80,152,174,117,231,170,184, 92, 76, 61, 67, 69,220, 79, 62,118,172,245, 33, + 90,117, 16, 10,144, 67,155,228, 36,137,205,102,211,231,173,111,154, 13, 98,172,252, 39, 21, 15,239,126,137, 55,222,254, 29,124, +246,217,167, 56,190,124, 5, 32,194,163,135, 15,247, 58,181,124,240,215,239,227,141,183,190, 3, 40,240,217,103,159, 12,186,195, +170, 6, 17,225,173,119,222, 29,157, 19, 68, 60, 68,178, 2, 72, 14,235,119,144,132,197,108,142,161, 81,238,119,162,165, 25,200, + 54,129,111,238,232,108, 55,205,136,134,117,245,234, 51,184,254,252, 75, 88, 44,150, 61, 41,144, 71, 26, 65, 32,165,118, 88,223, +122,215,159, 82,235,124, 55, 75, 60,154, 66,184,169,109, 7,242, 90,241, 59,221, 27, 23, 25,178,172, 43,191, 54,223,250,246,239, +140,185,200, 93, 18,155,206,163, 17,122,174,140,105, 70, 16, 88, 18,227,104,155,240,213,145, 19,123,239,127,218,163, 52, 24, 65, +238,133,212,175,248, 92,104,107,194,167, 49, 87,112,150, 32,184, 79,118, 55,118, 9,236,200, 41, 42,229,118, 96, 28,120,162,179, +187,108,157,157, 23,166,121,240, 52, 75,215,191,200, 18,124,128,219,137,126,179,150,108, 27,125,161, 49, 28,191, 83,220, 89,188, +106, 25, 79,227,187, 60, 5,134, 53,135, 77,160,219,134, 56,219,175,112,149,129, 43,148,241,183,142, 63,198,195,211, 19, 48, 71, +196,197, 1, 64,107, 52,173,249,144,183, 25, 22, 49, 10,197, 70, 24,223,190, 34,120,229,149,231,177,198, 18, 11,125,136,164,150, +158,150,154,214,228,101,176,172,114, 34,179,248,140, 49,152, 3, 24, 71, 28, 6, 66,125, 16, 16,218,136,227, 67,193,134,143, 81, +227, 41,190,204,198,122, 63,136,210,123,185,117, 4, 52, 43, 63, 6,117, 70, 18,155, 72, 83, 2,177, 17,251, 58, 24,183,142, 17, + 49, 40,178, 70, 36, 81,136,178,249,133, 83, 70,155, 18, 98,140,168,235, 0,108, 54,104,157,237, 78, 12,135, 95,237,117, 55, 73, +177,112, 30, 65,106,115,159,164, 22,212, 96,253,156,179,113, 2, 56,120,229, 72, 54,195, 5, 67, 1, 72,146, 21, 22, 54,118,180, +177, 3,237, 75,153,179,165,188,113,100,243,122,247, 6,176, 82,133,146,160, 21, 6,139,185,246, 5, 79,117, 83, 97,231, 40,160, +215, 93, 7,138,182, 91, 14,134,162,180, 20,128,236, 83, 56,101, 4,102, 52, 86,209, 16, 66,180,105,215, 11, 90, 4, 64, 85,128, +104,128, 72,114, 42,170, 23, 39,102, 8,219, 61,159, 5, 56, 0,225,217,171,192,173,147,231,161, 15, 79, 64, 49,161,163,123,237, +146,177,237,250,115, 20,128, 15, 55,192, 79,255,186,198,159,126,242, 1,240,189,159, 65,195,191, 1,225,136, 6, 45, 54, 57, 34, +109, 24,104, 7,173, 55,119, 69,132,197,141,150,116, 36,152,235,156,219,200, 37,134, 57, 7, 80, 54,189,120,150, 33,108, 57,248, +244,157,161,189,135, 69,246, 51, 37, 16, 35, 68,130, 8, 35, 73, 30,188, 49, 88, 93, 70,231,102, 86, 50, 16,133,181,148,151,250, +142,189, 51, 31, 19, 47,250,157, 90,164, 3,224,161, 64, 76,133,233,140,206,136, 96, 84,135,135,143,213, 2,235,205,202, 32,250, +106,105,197,202,191,203,171,211, 19,108,214,107, 60,243,204, 53, 92,125,230, 89,220,191,247, 85, 15,229,238,250,115,118,118,138, + 95,253,242,231,120,235,237,239,130, 67,192,205,143, 63,128, 2,104, 90, 43,104,239,191,247, 99,228,182,237, 55,150, 82,196,191, +194,119, 14, 58,137,138, 30, 79,133,221, 62,177,136, 48, 85,108,101,178,211, 57,108, 96,243, 83,168,240,218, 55,223,194,205, 79, + 62,192,163, 71, 15,161,170,184,116,233, 24,223,250,246, 59, 95,163, 88,238,127, 86,157,241,141,159,254, 84, 87,236,127,245,139, +159,250,255,166,217,194, 81, 78,127, 97,231, 36, 61,175,169,223,106, 5,116,219, 40,167, 39,171,245, 43,111,237,117,230, 59,223, +157,142, 37,124,138,121,253,250, 22, 59,190,107,171,136,246, 95,201, 50, 4,134,230,176, 8,154, 37,252, 17,205,237,178, 11, 98, +220,192,204,155, 65, 46,246,233,225, 49,210,110,211, 5,138,123, 79, 0,252,141,181,108,219,238, 92, 59,143,195,222,237,111,184, +214,116,238,225, 89,122,118,119, 95,190,233,243,141,191,129, 2,224,238,131, 22,255,197,239, 17,254,189,255,248,239,225,127,254, + 23,132,167,143, 31, 67, 99,133, 44,150, 11,158,218,198,200, 91,200, 56, 67,192,129, 52,248,215,126,247, 57, 44, 94,126, 27, 39, +167,138,197, 98,129, 54,101,156,173, 54, 96,202, 96,205,104,179,160, 84,165,103, 48, 66,101,204,224,170, 86, 80,125,140,103,151, + 27,172, 23,199,160,148,241, 36, 84,120,112,119, 13, 61,185, 11,170, 13, 82, 77,169,131,194,129,192, 1, 77,231, 69, 26,208,147, + 47, 67,167,142, 81,179,238,164,192,200,108, 97, 42,109,110, 93,231,108,122,244,200,140,148, 26, 48, 87, 8, 85,133, 44,173,105, +180,187,149,134,216, 4,174, 0, 82,211, 98,177,168,161, 49, 32,165,100,240, 46,251,154,198,217,207,228, 48, 44,147, 77,134, 22, +179,198,182,106, 8, 10,145, 96, 36, 53, 53,140, 61,178, 66,131, 13, 2,214, 80,152,161, 87, 16, 1, 7,193, 6, 4,109, 3,146, + 36,203, 38,247, 44,117,114, 15,123,168, 64, 56,131,114, 0, 5, 69, 38, 32, 32, 66, 88,125, 27,111,204,134, 36,140, 10, 22,109, + 42, 98, 83,102,246, 29,116, 32,237,211,228,200,211,205,200, 61,236,173,239, 16,103,138, 71, 16, 11, 36, 11,158, 9,138,147,231, +142,240,228,236, 6,170,230,115,211,145, 79, 40,183, 59,125, 73,138,191,168, 1, 60,174,128,127,114,171,198, 31,252,226, 41, 14, +222,248,103, 88, 85,127,128, 86,151,104,101,141,148, 9, 77,155,209, 52,107,180,105,229,219, 22, 91, 25,136, 75,208, 58, 25, 0, + 21,166,105,226,227,174, 25,194,176, 57,165,102,184, 50,129,205,148, 70, 4, 93,172,182,118, 66,109,149, 33,147,221,205,106,106, + 38, 36, 17,207,172,144,222, 14,214,124,111,250,121,190, 47,192,170,221,170, 3,254,115, 93, 93, 35, 31,189,213,173,102,253, 89, +125, 47, 95,176,168, 75,115, 63, 67,248,131,255,235,139, 47,189, 2, 38, 6,135, 10, 55, 94,122, 25, 15,239,223,243,100, 24,211, + 56,222,191,251, 37,158,127,225, 37, 92,185,114, 21,247,239,126, 57, 12, 9,123,164, 95,155,245, 26,191,122,255,231,184,116,249, + 50, 94,127,243,219, 22, 79,152, 90, 60,126,244, 0, 47,191,242, 26, 98, 48, 18, 71, 8, 21, 46, 93, 62, 30,125,168, 82,146,160, +138, 9, 35,181,102, 66, 81, 47,150,227,224,128, 11,206, 59,115,127,130,107, 96,115, 54,248,169,174,106,188,240,226,203, 23, 28, +162,102,150,206,122, 78,255,185, 99, 85,153, 83,194,147,199, 15,241,226, 43,175, 34, 4, 35,149,196, 24,113,233,210,229,201,129, + 59,188,227,188, 15, 24,189,144,153,253,140,123,220, 80, 23,139, 6, 98,170, 63,159,153,242,186,189,244, 44,252,175,123, 95,139, +106, 41,242,159, 20,211,173, 29, 58,198, 48,251, 76,180,235,212,241,111,250,124,211,253,183,106,153,202,182,159,193,190, 13,189, +235,197,125, 96, 46,234, 29, 48, 87,112,245,235,220,225, 52,106, 88,182, 44, 27,246,244,163,164, 10,204,138,144,166,204,119,224, +238, 41,240,251, 71,119,241, 15,255,225,223,193,221,151,254, 2,111, 63, 23,112, 36, 39, 56, 89,181,200, 57,129, 67, 64, 85,217, +247,139, 3, 35,109, 4,127,252,226, 6, 47,255,193, 31,227, 49,189,140,245,250,204,246,223,117,141, 24,221,205, 34,154,175,184, + 73,207, 44,209, 45,144, 77,192,151, 23,192, 98,121,128,227,144, 65,151, 46, 35,181, 75, 60,109,206,112,247,129, 32,156,126,133, + 24,236,112, 87,144,177,208,217, 80, 46,241,184, 18,168, 21,121,118,227, 15,130, 21,114, 98, 11, 85, 73, 10,108, 18,144,155, 4, + 77,109, 31,228,145,221,163,126, 17, 35, 72,141, 4,200, 33,128,189,240, 73, 6,178,154, 6, 62,248,242, 90, 36,129, 56,128, 40, + 90,233, 80, 69, 78,102, 52,162, 57,155, 3, 29,139, 35, 97, 38,181, 67, 78, 80,216,207,144, 42,136, 76, 6,152,125,167, 42, 48, + 55, 61, 38,178,134, 67,146,105,233, 73, 33, 82,219,174,158,178,187,198, 37,228,214,116,237, 33, 24, 84, 31, 8,238,225,158,250, + 27, 34,171,250, 78,220, 79,123, 81,139,107,149,100, 65, 52,232,121,120, 32, 49,100, 66,148,122,227, 26,227,106,229, 62,194, 87, +105, 72, 6, 85, 0, 49, 3,215,143, 4,213,179,207, 33,227,216,188,251,177,149,138,124,238,119, 66, 1, 92,173,128,191,106, 8, +255,248,135, 53,142, 63,252, 41,192,191, 64, 67,135,144,164, 72,238, 69,223,186, 69,172,230, 4,245,117,105, 71,110, 83,116,187, +244,242, 59,225, 65, 56, 74,230, 52, 23,224, 77, 64,112,194,123, 23,121,171,238, 8,104,234,128,206,202, 21,106,210, 55,117,162, + 30,179, 37, 10,154, 35,145,163,202,228,235,140,222,175, 99,248, 94,119, 18, 28, 29, 0, 0, 18,211, 73, 68, 65, 84,246,235, 67, +183, 23, 38,240, 32,187,115, 2,175,184, 68, 46,118, 69,153, 10,159,203, 46, 63,185,139, 65,237, 46,229,233,227,199,248,238,247, +126, 15, 33, 70, 60,122,248, 0, 95,124,241,217,168, 80, 60,184,119, 23, 47,125,227,117,156,156, 60, 69,179, 94, 15,166, 48,221, + 1,185, 67,250,211, 52, 86,216,223,122,251,119,240,198,183,222,198,199, 31,252, 53, 62,249,232, 67,188,242,141, 87,241,246,247, +126, 31,196,140,182,109,112,255,238,151, 56,125,242,120,228,164,218,133,144,116,143,205,176, 8,199,123, 95,221,193,183,190,243, +221,126,207,253,224,238,151,174, 7,164, 18, 89,190,152, 46, 88,129, 77,179,193,173, 47,110,226,213,215,222, 4, 49, 99,179, 94, +225,193,253,187,184,116,249,248,226, 51,212, 57, 1, 26,219,187,229,121,232,246,243, 79, 63,196, 11, 47,189,138,111,255,206,247, + 65,196, 72,109,131,251,247,190,194,201,211, 39,147, 9,113,123,223,173,231,145,225, 47,194,120, 63,175, 94,232,192,216, 46, 27, +174,113,129,219, 1,215, 23,222, 70,163,137,189,240,172, 31,179,219, 71,232,249,100,106, 47, 50, 10,116, 48,233, 33,218, 47, 63, +163,146,211, 62,147, 78,214, 27, 99,232,246, 99,105,231,233, 79, 52,203, 91,216,173,127,159,187, 8, 91,174,215, 19,175,251, 93, + 31,213,249,243,118, 39,171, 84, 96,108,242,112, 78,207,176,117, 73,116,247,142,135, 0,156,102, 66,245,244, 49,254,171,127,244, + 34,174,254,237,255, 28,191,248,224, 62,158,127,237, 69,252, 81,250, 22,254,207,255,231,125,220, 93, 53, 88, 6,203, 21, 87, 74, +120,212, 4,188,123,249, 49,254,248, 95,127, 7, 15,143,190,143,205,253, 39,144,205, 25, 86, 68, 56,107, 8, 73,163, 77,185,201, + 63,223,108, 18, 50,179, 38,101, 28,167, 21,174, 28, 45, 81, 93, 58, 6, 42,198, 73,115,132,117,122,140,219,143, 20,225,228, 14, + 24, 43,104, 88,152, 92, 43, 91, 20,171,121,202,168,159,131,130,101, 12,200,100,146,209,186,234, 76,101, 24,172, 70, 30, 75, 9, +144,156, 16, 41, 33, 50,185,252, 88, 65,217,160, 84, 14, 1, 21, 7, 80,219, 98,211, 26,123,190,114, 19, 18, 81,147,127, 49, 17, + 2, 7, 40,137,251,164,155,167,184, 20,156, 11,133,162, 85, 35, 98,169,235,189,193, 64,146,140,138, 8, 53, 17,148,196, 39,232, + 96,231, 96,238, 38, 97,131,139, 57,152,230, 90, 32,230,171, 47, 22,159,197,209, 99, 93,157,181, 45,162,110,103, 23,144,124,156, +139,202,136, 16,247, 30,239, 62,236,220, 59, 90,170,164,222, 12, 28,125,106,153,137,184,137,109, 16,210, 12, 79, 55,115, 13,119, + 32, 36, 55,230,129, 24,220, 12, 8, 26, 2, 14, 53,227,202, 51, 21,238,157,188,136,240,228, 12,224,140, 34,176,251,194,231,108, + 4, 80, 45,129,255,229,243, 5,222,250, 39, 15,241,202,139,255, 27, 62, 63,120, 19,103,233, 18, 86,205, 29,108, 82, 50, 89,100, +155,128,212, 64,180, 1, 75,139,220, 75, 86, 7, 53, 66, 23, 82,212,155,155,185, 46,187, 38, 69,172, 8, 13, 69, 31,244,146,123, +194,243,128,120, 59,210,162,170, 46,119, 99,179, 56,118,253, 32,163, 75,101,172, 12,213, 0,250, 85,141,184, 17,146,168, 24, 82, +212,133,164,117, 28,177,222, 77,147,134, 97,131,220,245,242,247,190,247, 29, 61, 57,121,186,117, 50,118, 68,122, 46,166, 62,246, + 67,178,113,232,187, 52, 59,233,220,224,222,249,221, 63,192,157,207,111,226,209,131,251, 64, 17,231, 58,107,216, 54, 78,133,244, +115,129, 11,218,253,112,152, 83, 25,120, 82, 10,185,105,188, 63,231,222, 8,127,224, 12,117,175,175,156,102,148,118,215,165, 89, +182,229, 76, 40,201,197,179,214,135,221,200,126, 68,147,118, 60,191, 31,228,164, 24,214,241,133, 67,221,174, 87, 65,197, 35,158, +219,196,208,185, 57,224,131,115, 46,125,141, 47, 89,153, 11, 80, 48,170,203,247, 75,123, 94,188,238, 94,251,211, 57,239, 65,103, + 63,177,237, 7,152,181,187, 40,232, 25,189,157, 44,237,241, 27,220, 97, 52,179,127,167,254, 53,139,245,228, 94,234, 89,234,122, + 81,188,105,178,118,209,225,238,210,125,213,121,110, 69, 68,211,230, 97,230,247, 24,184,249, 85,198,127,246,206, 93,252,215,255, +211,127,135, 79,174,252, 71, 88,125,241, 19,132,229, 37, 28, 31, 6,220,255,197, 63,197,255,245,127,255, 24, 31,220, 79,184,116, +105,137,123, 79, 54,120,102,243, 0,255,225,159, 61,131,229, 31,254, 7,184,251,232, 8,205,217,125,228,205, 10,171, 38,225,201, + 89,131,118,189, 66,219,182,104,155, 53,144, 90,136, 36,147,153,113,196,179, 75,198,141,103, 25,249,240, 57,156,181, 53, 84, 3, +214,237, 6,159,222, 91,227,236,206, 29, 28,240, 99, 84,117,141, 38,137,125, 44,238,132, 38, 68,104,179, 21,151, 40,150, 76,118, +166, 17,205,170, 69, 12,118, 48,139, 88, 80, 75, 82,130,166, 46,137, 77, 16, 66,116,148, 84,144,186,125, 50,155,141, 44, 41,144, +115, 66,211, 52, 22,222,162, 4,201,217,147, 0,209, 51,178,205,130, 54,187, 20,201,224, 87, 81, 69, 0,144,252,243, 13, 46, 55, + 76, 10,180, 89, 17, 37,225,104,201,200, 49,162,105, 25,148,115,225, 92, 98,159, 71,232,214,142,254, 30, 55, 73,161, 73,192,104, + 65,238,160, 23,124,140, 22, 0,172,182, 63,102, 0,173,147,188, 22, 17,104,131,185,200, 25, 91, 92,250, 38,155,196,200,126,232, + 43, 3,250,105,145, 97, 9,105,160, 8,245, 40, 93,209,236, 6, 52, 17,154, 45, 86,150,145,205,255, 28,132, 90,128, 13, 3,159, + 61,137,104,111,125,129,144,239, 12, 76,123,156, 15, 66,141,220, 81, 9,120,212, 40, 94,105, 91,252,167,255,230, 10,244,239,252, + 5,126,246,228,239,225,225, 71,159, 98,115,239, 22,242,211,251,144,245, 67,160, 61,133,232,202, 72,151, 93,168,151,127, 47,178, + 55,232,150,170, 86,176,217,137,251,147,172, 5,208, 36, 65,106,205,162,151, 72, 93,138, 86,108,126, 73,138, 88,115, 67,150,136, +131,121, 42,184, 52,110,152,190,186, 60, 83, 3,225, 73, 58, 41,157, 13,174, 66, 29,242,106,168,129,153, 96,121,150,187,154, 28, + 59,188,120,227,217, 31,108, 54,155,158, 54, 63,136,121, 59,151, 26,251,171, 88,108, 56,180, 8, 90,237, 78, 34, 38,194, 51,215, +158,197,241,213,107,248,252,211,143,156,128, 50, 19,162, 66,219,104, 97,151,149,142, 93,126,105,189,236,150,138, 67,108, 60,152, + 80,145, 9, 68, 37,180,216, 63,207,246,188, 72,115,230,103,187,110, 30,194,214,142,231, 55,217,124,238, 63,223,105,155,112,133, +194, 22,153, 74,169, 17, 77, 26,176, 29,143,126,225,194, 62, 95,180, 74, 51, 34,154,188,214,139, 52, 53,195,239, 16, 74,229,245, +197,154,137, 65,167, 77,211,194, 65,187,222,241, 56,241,173,111,165,118,190,247,237,235,178,203, 62,231,252,198,135,118,125, 4, + 59,188,243,103,222, 39,125,205, 59,105, 26,182,114, 33,120,159, 10, 30, 10,125,173, 70,173,111,172, 93,166, 5,162, 33,251,157, + 38,176,251, 25,225,219,225, 75,252,143,255,237,159, 98,253,157,255, 18,247, 62,255, 18,208, 6,237,102,131,204, 11, 92,126,225, +101,188,116,141,240,232,214,231,184,245, 88,112,148, 50,254,254, 31,100, 60,255,167,127, 23, 15,219,111, 34,175, 30, 2,210, 34, + 57,121,168,105, 54, 72,155,141,153,112,136, 69,142,198, 16, 80,139,224,249,131,132,197,213, 26, 79,150, 47, 0,124, 25, 85, 78, +216,164, 21,190, 56, 3, 86, 95, 61,196, 82,238, 66, 9,168, 98,101, 94,222,201,124,211,201,201,100, 42, 54, 81,114,100,180, 84, + 65, 51,155,166, 60, 11, 66, 48, 31,243,238,144,173, 40,187,115, 30,185,132,140,156,112,101,136, 71,246, 6, 64,212, 12,112, 2, +119,234,102,238,229, 78,162,230,234,198, 68, 96, 38, 87,121, 21,103,151, 18,152,196, 77,103, 60,195,219,205,105, 84,196, 10, 34, + 43, 52, 44,144, 51,131, 36, 21,150,217,195,183, 37, 4, 75,112,235, 32, 90,149,236,195,150,177,179,216, 11, 22,148, 17, 97,142, +100, 28, 96,118,164, 98, 68,174, 20, 34,178, 4,243, 58,135,237,192, 73,179,189, 27,178,223, 87, 98,164,110,141,163, 22, 38, 3, + 15,221, 81,151,124, 41,200,144, 4,117,249,158,218, 30,186,103, 69, 8,176, 68, 70, 91, 1,167,237, 18,188, 58, 3,113,211,171, +157,190,238,121,187,140,192,151, 18,241,235, 15, 18,110,172,126,141,203,223,120, 14,167,205,107,104,238,221, 6, 54, 15,192,249, + 20,164, 27,168, 38,139,180,233,214, 1, 62,153, 7,194,176,134,235,252, 27, 96, 44,247,224,142,121, 93,180, 47, 40, 64, 53,184, + 52, 81, 70,124, 28,237, 80, 19,178,207, 85,123, 21, 78, 55,218,152, 13,155,217,216,114, 63, 81,112,183, 55, 39, 35,243, 41,117, +110,134,126,254,106,231,194, 39, 16, 82, 40, 49,170,186, 70,120,225,185,235, 63,104,154,102,148, 93,206,126, 99,112, 47,108,183, + 2,158,137,138,253, 44, 13,122, 60, 16,222,253,189, 63,194,229, 43, 87,113,243,147,143,176, 58, 59, 27,133, 61,236,170, 95,138, +129, 13, 93,218,200,206, 23,249,201, 60, 69,227,147,122,154,111, 61, 45,193, 52,119, 52,237, 56, 12,233,156,162,123,254, 1,186, +155, 12, 71,231, 87,191,237, 3,116,196,238,155, 22,150,178, 40, 93, 96, 98,223, 55,229, 78,254,173, 95,181,210,246,203, 43,227, + 62,105, 63,101,171, 96,232,239, 43,222,227,233,184,103, 53,234,215,123,205,219,197,117,250,237,218,255, 26,198,169,181,180,255, + 83,164, 57, 27, 75,218,187,102, 57,191,104,127, 93, 6,124,249,146, 6,199, 40, 58,239,103, 59,150, 99,215, 36,211,185,118, 56, +197, 37, 45,187, 76, 29, 53, 90,221,207,108,148,176,121,112,138,255,254,207, 43,124,251, 31,252, 15,184,253,232,101,208,234, 38, +146, 16, 84, 90,104,110,209, 74, 5, 58,254, 6,174, 31, 3,155, 59,159,227,143,158,123,130,119,255,252,207,240,104,241, 39,200, +167,143,177,105, 26,180, 89,209,166,140, 85,178, 61,104,110, 91, 52,173,101, 84, 55, 25, 56,172, 35,174, 93, 37,180, 87,175,224, +118,126, 30,247,190, 74,104,214,167,200,117,141,187,107,198,211, 47,159, 96,185,249, 28,168,131,105,178, 25, 8, 28,161,154,144, +153, 29,250,116,168,149, 0,237, 83,217, 60,239, 59,183,142,252, 5, 27,110, 88, 64,129,160, 8, 3,251,152, 12, 46, 37, 88,186, + 86,206,174,198, 97, 43,220, 74, 0, 56,248,119,201,252,194,179, 55, 42,157, 34, 35,112,232,205, 73,122,247, 77,166, 30, 10,102, +223,195,118,175, 67, 97,242, 37,114,226, 84, 69, 98,251, 88, 30,140, 74, 58, 11,240, 12, 39,211,217, 60,222, 75,182,130, 67,239, + 68, 4,166, 0,102,241,194,226,218, 45,138,200,170, 32,177, 6, 38,136, 33, 23, 96,215,208,187,143, 60, 60, 66, 86,124, 81,206, + 80, 84,236,207,167,169,104, 98,186, 91, 47,247, 46, 17,102,138, 99,247, 35, 43, 80, 65,160, 81,113,138, 5,244, 76,129,252,116, + 52,104, 94,100, 74, 47,255,199, 97,165,120,160, 53,126,253,235, 19,200,253,247,112,229,198, 21, 44,235, 27,144,211,123,208,246, + 20, 74,217, 96,119, 53,148,151, 84, 33, 57, 67,250,203, 69, 78,200, 54,174, 69,137, 62, 6,230, 62,111,160,107,108,108, 48, 23, + 71,185,221,233,147,180, 95, 13, 7,234, 32,115, 43,254,230, 19, 95, 44, 20, 29, 85, 81,229, 17, 45,156, 10,196,197,146,120,236, +185,250,120, 86,223,177,214, 85,133,240,194,245,103,127,208, 54, 77,113, 16, 82,175, 19, 45, 15, 56, 49,158, 68, 65,179, 31,251, +109,125,121,231, 22,190,186,243,197,224,122,182, 51, 3, 76, 39,133,107,114, 78,210, 57, 7, 56, 48, 91, 28,104, 14,228,222,241, + 88, 83, 39,174, 93, 25,215,116,129,194,190,227, 21, 94,240,231,246, 21,117,221,182,237,158,233, 66,232,188,194, 78,115,175, 13, +187,161,231,105, 61,212,243,178,235,247, 61,222,204,103, 77, 23,170, 78,253,190,104, 84, 68, 46,136, 52,208,185, 23,157,118,222, + 99,229, 43, 38, 58,175,184,111,255, 27, 97,158, 5,127, 94, 67,240,245,127,230, 60, 50,220,124,115,160,197, 88,109, 1, 20, 58, +219,130,234,204,247,162, 75,116,220,250,206, 76,174, 45, 49,112,251,145,224,207, 95,186,135,255,228,191,249, 11,220, 60,248,119, +177,185,127, 19,161, 98,180,173, 21, 73,118,143,129,179,213, 6, 56,120, 14,223,125, 94,241,230,187,215,241,228,198,191, 5, 89, + 37,156,165, 53, 86,171, 13,180,217,160, 73, 25,103,103,107,232,102,131,172, 25,235, 77,107,118,167,185,133,144,224, 81,125, 29, +183, 30, 93, 66,186,247, 8,124,246, 5,214,103, 79,113,186, 18, 52, 79, 86,224,179, 59,136,117,134,240, 2, 16,139, 71, 37,159, +136,164,245,244,106, 50, 2, 19,147, 5,157,168,100, 47,166,240,132, 45,117,104,221,172,173, 19,162,187, 32,202,200,183, 32,139, + 34,134, 0, 10, 1, 41,231,190, 96,138, 12, 54,214,221, 14,159, 36, 27, 75,217,239,237,192, 64,136,236,133,216,173,155,137, 60, +163,222, 65,121, 38, 36,113,182,185, 23,195, 14,159, 12, 80,196, 72,208, 16,109, 50, 55, 59, 57,164,158,149,214, 9,248,224,132, + 44,244, 5,153,217, 38, 79,227,135,185,189,108,238, 34, 91,156,209, 70,121,208,202,132, 8,229,136, 12, 69,102, 6, 83, 68,244, +102, 66,243,208,152, 80,231,119,239,245,145, 84, 93,231, 62, 64,172, 29, 1,140,161, 96, 82, 48,219,107, 91, 49, 99,179,174, 64, +205, 9, 64,109, 63,230,237,231,242,236,158,216,155,184,196,103,159,157,224,254,103,191, 0, 85, 17,135,151,159,195, 97,157, 81, +235,198,164,130,202, 8, 29,212, 78, 86,209,201,167,238,126,151,228,172, 96, 38,237,155,128,232,206,123,212,201, 35, 93, 81, 78, +197,142, 91,168, 11, 73,235,248, 95,228,122,119,238,102,244,190,152,119,187,251, 46,190, 24,158,113,175, 52, 72,130,253,106, 13, +235,215,142,136,167,138,186,170, 16, 75, 26, 83,119,118,138,239, 22,186,228, 26,214,185,107, 39, 91,108, 51,221, 59,107,234,220, + 86,115, 84,100,141, 80,167, 23,132, 16,135, 23, 61,221,155,150, 4, 41,198,126,107, 76,157,231,122,255, 6, 59,243,173,197,243, +215,251,163,152, 88,123, 14, 59,207, 17, 28, 65, 69,178, 28,205,175, 54, 70, 38, 95, 58, 26,240,199,127,129, 41, 65,174,208, 32, +235,208, 96,169, 94,160,152,108, 17,223,116, 82, 42, 7,221,249,254, 98, 53,252,236, 56,107,121,172,155,159,109, 32, 10,137,154, +170,110, 69, 11,205,198,183, 98,176,221,167, 30, 98,155,236,101, 10,105, 29, 77,201,122,147,176,154, 93,196,187,217,235, 53,121, +170,173,107,183,245, 24,165,100,173,136, 38,212,185,176,100,237, 61,235, 71,139, 70, 42,178,226, 39,105, 77, 58,209, 43,142, 81, +135,193,106, 86,183,222, 81,249, 77, 86,156,180,132, 27,233, 49,254,193,223,125, 11,103,111,252,251, 56,187,249, 8,146, 79, 1, +170, 81, 49, 97,221, 36, 72, 8, 88, 80,134, 74,139,170, 77,120,246,173,239,161,185,244, 34,210, 19,194, 38,159,224,233,202,124, + 34, 8, 25,171, 86,192,185, 5,168, 69, 35, 10,201,130,136,140, 16,129,211, 77,194,234,139, 7,208,205, 25, 34,159, 65, 22, 53, + 52, 41,170,149,169,111, 54,156,208,230, 26,129,128,218,135,156, 36,210,195,219,226,240, 38,113,112,249,145, 59,116, 56,201, 44, +171,197,152,178,102,180, 41, 67,147, 90, 8, 75, 48,153,154,144, 21,215,206, 66,180, 77, 45, 16,106, 48, 87,200,210,244, 26,103, +133,248,101, 87, 16, 7, 84, 53, 89, 83,226,207,105, 86,185, 17,204, 21, 40,139,239,240, 21, 28, 12, 25, 16, 49, 73,157,167,196, +244,166, 49, 34,131, 41,138,185,150, 7,159,136, 91,107, 30, 50,129,114, 66, 96,133,211,213,140,144, 71, 6,250, 50, 8,149, 19, +184,148,120, 40, 72, 29, 27,220, 79, 80,246, 47, 86, 22,242,141,175, 57,172,105, 2, 18,212, 87, 1, 4,228, 8,104,107,239, 83, +140, 21,222,173, 96,205,177,205,208,139,168, 22, 29,151, 93, 86,217,165,140,101,111, 2,150, 17,120,122,184, 0,206,142, 65,121, + 13,229,139,183,179,115, 86,198,203,160,168,175, 92,198,227,199, 43, 60,252,231,255, 7, 46,221,120, 13,207, 60,255, 42, 46, 31, + 95, 70,189,108,193,121, 3,110, 19, 40, 37, 44, 20,128, 90, 72, 15, 89, 58,144,191, 54, 91,125,176,170,251, 26, 24, 47,195, 92, +253, 34,106,178,119,145,252, 61,118, 82, 51,231,170,251,251,215,190,217, 83,247,137, 79,106,210, 8, 67,138,120,192,169,105,104, + 32,114,119,255, 24,173,209,155,235, 48, 52, 94,158,253, 65, 80,196,179,147, 39,246,132, 40, 35, 47, 7,217, 17,131,204, 92,190, + 48,176,160,222,238,210,247,128, 59,136,103,132,177,212, 76, 49,246,179,158,110, 20,117,118,231,186,151, 28, 60, 98, 59, 15, 83, + 18,149, 36,236, 49,233,105,114, 86, 79,119, 31,123, 39,234,125,245, 90, 75, 23,240,253, 10,248,157, 15,163, 19, 24,181,192, 59, + 70, 7, 61, 13,215,125,168,147,180,181,162, 61,143,242, 52,242,111,199, 57,157,206,142, 7, 43, 37,133, 84,232,212,203, 95,218, +178, 51,217,171,103, 31, 81,178, 38,248,203,188, 81,204,180, 25,208,177,107,250,168,153,152,251, 20,186,251,100,100,135,175,243, + 55,192,156,129, 17,237,148, 15,236,208,223,207, 52, 67,187,239,139, 73, 3, 50,219, 63,234,133,142,187,105,216,142,106, 25, 59, +171,163,192,152,174, 49,210,146, 28,217, 53,121, 50,238, 7,202,238, 81, 9,120,252, 36,225, 31,189,147,241,189,127,251,239,227, +195,167, 47,128,154, 95, 34, 18,129,165, 69,168, 35, 14,218, 13,114, 74, 72,188,196, 2,140,235,199, 25,233,232, 37,172, 54, 75, +180,233, 33,158,174,128,205,233, 41,180, 89, 65,152,145, 54, 27,108, 82,139, 86, 43, 72, 90,131, 36, 33,145,241,156, 53, 55,192, +230, 62, 72, 90,100, 14, 8,201,165, 83, 33, 0, 90,153, 25, 74,179, 65,168, 24, 82, 49, 24, 70,108, 75, 98,225, 35,154, 77,250, +221, 35, 45, 42,166,255, 6, 33, 40, 67,217, 92,210, 2, 51,132,179, 39,179,101,100, 88,145, 53,215, 71,159,128,217, 28,197,144, +146, 95, 63,130,182,130, 80, 25,185, 10,126,166,230, 12,115, 32,139,181,161, 2,106, 5, 55, 39,215,165,243, 16,166, 19, 24,255, + 95,103,103,151,219,182, 17,196,241,223,236, 46, 73, 73, 81, 90, 3, 65, 80, 39, 71,232, 17,122,129,190, 53,247,127, 13,138,162, + 15, 65, 11, 24,146,107,145,187, 51,121,152,161, 68,217,150,228,244, 0,146, 72,241, 99,119,254,159,180,228,202,118,154,231,147, + 59, 69,127,226,162, 85,141, 92,178, 43,166,171,146, 99,154,116,142,219,225,225,185, 39,221,155,151,213,161,252,104, 43,147,220, + 92, 97, 79, 10, 87,138,198, 19, 23,141,121,226, 42,117, 77, 96,121,110,120,107,199, 69, 71,212,155,241,172, 9,102, 30,159,139, +212,240,245, 7,164,175,145,129,174, 39,117,191, 68,152, 78, 10,255,253, 12,202,103, 21,122,160, 12,208,186, 45,180,127,142,212, +193,143, 79, 74,231,111,135, 97,189, 6,107, 28,190,125,229,207,111,127,147,182,191,208,253,244,145,178,121, 71,233,215,148,212, +145,101,164, 16,190,250,228, 61,245, 37, 56,113, 36,147, 81,214,192, 54, 54,133, 45,164,109, 57,119,222, 5, 16, 93, 6,214,218, + 2,134,143,161, 85,102,226,222, 23,246, 25, 25,152,227, 98,221,178,214, 60,101,206,201, 33,114,208, 46, 53, 32,115,177, 89, 82, + 30, 57,242, 50, 47,248,198,254,113, 79,185,191,191,103,183,219, 7,180, 46,103,226,179,133,136,245,108, 79,110,139, 73,121, 57, + 13, 45, 63, 51,171, 40,101,177,224,233, 43,188,246, 37, 17,221,165,188, 95,121, 54,161,190, 64,164,237, 60,218, 86,176,103,231, +176,236,138,255, 31,117,151,114,157, 29,151,139,120,196,219, 96,248, 51,129,185, 93, 63,142,215,212,213,114,182,120, 62,187,181, +133, 99, 33,193,101,124, 94,126, 72,148,146, 22,135,170, 47,137,241, 43,184,216, 53,136,249,245, 69, 82, 46, 66,245,243,189,119, +190,201,148, 27, 84,193,237,107, 36, 87,168,160,147, 98,253,197,213,126,181, 20, 71,110,156,135,189,253,126,124, 54,100,203,205, +255,122,137, 56,200,121,123,226, 21,113,234,165,218,226,107,191,241, 88,225,215,187, 7,254,248,242, 27,255,125,250,157,244,215, +191,108, 86,153, 44, 93, 64,140, 61,219,148,152,166, 3, 99,203,220,173,133,225,195,103,118,237, 61,117,220, 49, 42,216,248, 68, +177, 17,233, 18, 7, 77,244, 89,104, 41,209,158, 42,125, 22,100, 53, 68,124,115,130,222, 64, 87,104, 43,228,156,200,197,115,208, + 75, 42,116,120,148,107,237,125, 2,204, 41,211,229,132,165,204,211, 88, 41,145, 55,223, 34,240, 71,194,127,175,164, 16,149, 41, + 85,123,166,234, 62,230,110, 24, 60, 97, 46, 32,212,177, 26,170,213,185,240, 4, 41, 57, 12,123,202,195, 31,208, 54,185, 39,185, +148,200,135,241,239, 85,213,227,251, 82,155,210,128, 85, 51,247,103,135,181,172,195, 43, 91, 39, 41,148, 22, 92,116,107,228, 20, + 2, 69,157,243, 27,148,148,133,148,186,224, 86,125,202, 31, 16, 90,139,160, 26,177,104,246,194,251,203, 61, 64,158,108, 13, 73, +138,228,158,106,110,163,146,216, 20,120, 12,111, 4,206, 4,162,112,236, 5,154, 53, 7, 71, 4, 46,250,197,171, 81, 52,147,114, +143,198, 52,107, 73, 24,200,180,106,152, 78,206,187,155,226,221, 53,238,245,174,214,220,206, 23, 86,175, 4, 28,146,240, 52,221, +145,118,123,224,241,228,233,182,183, 76,233,118,227,142,253,217, 55, 70,211, 3, 60,236,177,221, 6,235,182,180,178,166,149,194, + 33, 23,167, 39,202,233,157, 38, 88,196,231, 66, 39,190,168,127, 30,132,247, 67, 65, 83,161, 73,166, 90, 97,108,194, 56, 86,234, +180,130, 58, 34,156, 52, 4,243,115,107,106, 71,161,161,178,104,127, 83,195,104, 71,152,244,108, 96, 72, 94, 25,227, 26,135, 89, + 8,236,105,115, 22,170,253,205,230, 29,223, 1,210,128,212,206, 14,153,242,124, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, +}; diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c index cfa9585868e..8e83b01fc2f 100644 --- a/source/blender/editors/gpencil/drawgpencil.c +++ b/source/blender/editors/gpencil/drawgpencil.c @@ -114,12 +114,14 @@ static void gp_draw_stroke_buffer (tGPspoint *points, int totpoints, short thick /* don't draw stroke at all! */ } else { - float oldpressure = 0.0f; + float oldpressure = points[0].pressure; /* draw stroke curve */ if (G.f & G_DEBUG) setlinestyle(2); - + + glLineWidth(oldpressure * thickness); glBegin(GL_LINE_STRIP); + for (i=0, pt=points; i < totpoints && pt; i++, pt++) { /* if there was a significant pressure change, stop the curve, change the thickness of the stroke, * and continue drawing again (since line-width cannot change in middle of GL_LINE_STRIP) @@ -144,6 +146,9 @@ static void gp_draw_stroke_buffer (tGPspoint *points, int totpoints, short thick glVertex2f(pt->x, pt->y); } glEnd(); + + /* reset for predictable OpenGL context */ + glLineWidth(1.0f); if (G.f & G_DEBUG) setlinestyle(0); } diff --git a/source/blender/editors/gpencil/editaction_gpencil.c b/source/blender/editors/gpencil/editaction_gpencil.c index 937d24eed04..b6398c6a2f5 100644 --- a/source/blender/editors/gpencil/editaction_gpencil.c +++ b/source/blender/editors/gpencil/editaction_gpencil.c @@ -259,7 +259,7 @@ void duplicate_gplayer_frames (bGPDlayer *gpl) /* Copy and Paste Tools */ /* - The copy/paste buffer currently stores a set of GP_Layers, with temporary * GP_Frames with the necessary strokes - * - Unless there is only one element in the buffer, names are also tested to check for compatability. + * - Unless there is only one element in the buffer, names are also tested to check for compatibility. * - All pasted frames are offset by the same amount. This is calculated as the difference in the times of * the current frame and the 'first keyframe' (i.e. the earliest one in all channels). * - The earliest frame is calculated per copy operation. diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index ab3c754458e..10dcd1f0906 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -123,7 +123,7 @@ typedef struct bAnimListElem { /* Some types for easier type-testing - * NOTE: need to keep the order of these synchronised with the channels define code + * NOTE: need to keep the order of these synchronized with the channels define code * which is used for drawing and handling channel lists for */ typedef enum eAnim_ChannelType { diff --git a/source/blender/editors/include/ED_fileselect.h b/source/blender/editors/include/ED_fileselect.h index 1eedd7ec782..df4113ca07a 100644 --- a/source/blender/editors/include/ED_fileselect.h +++ b/source/blender/editors/include/ED_fileselect.h @@ -106,7 +106,7 @@ void ED_fileselect_clear(struct bContext *C, struct SpaceFile *sfile); void ED_fileselect_exit(struct bContext *C, struct SpaceFile *sfile); -int ED_file_extension_icon(char *relname); +int ED_file_extension_icon(const char *relname); #endif /* ED_FILES_H */ diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index a816c1612a1..b6c72c2e96f 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -575,7 +575,7 @@ static void ui_draw_links(uiBlock *block) /* NOTE: if but->poin is allocated memory for every defbut, things fail... */ static int ui_but_equals_old(uiBut *but, uiBut *oldbut) { - /* various properties are being compared here, hopfully sufficient + /* various properties are being compared here, hopefully sufficient * to catch all cases, but it is simple to add more checks later */ if(but->retval != oldbut->retval) return 0; if(but->rnapoin.data != oldbut->rnapoin.data) return 0; @@ -640,7 +640,7 @@ static int ui_but_update_from_old_block(const bContext *C, uiBlock *block, uiBut // but->flag= oldbut->flag; #else /* exception! redalert flag can't be update from old button. - * perhaps it should only copy spesific flags rather than all. */ + * perhaps it should only copy specific flags rather than all. */ // but->flag= (oldbut->flag & ~UI_BUT_REDALERT) | (but->flag & UI_BUT_REDALERT); #endif // but->active= oldbut->active; @@ -748,7 +748,7 @@ static int ui_but_is_rna_undo(uiBut *but) if(but->rnapoin.id.data) { /* avoid undo push for buttons who's ID are screen or wm level * we could disable undo for buttons with no ID too but may have - * unforseen conciquences, so best check for ID's we _know_ are not + * unforeseen consequences, so best check for ID's we _know_ are not * handled by undo - campbell */ ID *id= but->rnapoin.id.data; if(ID_CHECK_UNDO(id) == FALSE) { @@ -865,7 +865,7 @@ void uiEndBlock(const bContext *C, uiBlock *block) /* inherit flags from 'old' buttons that was drawn here previous, based * on matching buttons, we need this to make button event handling non - * blocking, while still alowing buttons to be remade each redraw as it + * blocking, while still allowing buttons to be remade each redraw as it * is expected by blender code */ for(but=block->buttons.first; but; but=but->next) { if(ui_but_update_from_old_block(C, block, &but)) @@ -1211,7 +1211,7 @@ void ui_delete_linkline(uiLinkLine *line, uiBut *but) * an edit override pointer while dragging for example */ /* for buttons pointing to color for example */ -void ui_get_but_vectorf(uiBut *but, float *vec) +void ui_get_but_vectorf(uiBut *but, float vec[3]) { PropertyRNA *prop; int a, tot; @@ -1249,27 +1249,34 @@ void ui_get_but_vectorf(uiBut *but, float *vec) vec[0]= vec[1]= vec[2]= 0.0f; } } + + if (but->type == BUT_NORMAL) { + normalize_v3(vec); + } } /* for buttons pointing to color for example */ -void ui_set_but_vectorf(uiBut *but, float *vec) +void ui_set_but_vectorf(uiBut *but, const float vec[3]) { PropertyRNA *prop; - int a, tot; if(but->editvec) { - VECCOPY(but->editvec, vec); + copy_v3_v3(but->editvec, vec); } if(but->rnaprop) { prop= but->rnaprop; if(RNA_property_type(prop) == PROP_FLOAT) { + int tot; + int a; + tot= RNA_property_array_length(&but->rnapoin, prop); tot= MIN2(tot, 3); - for(a=0; a<tot; a++) + for (a=0; a<tot; a++) { RNA_property_float_set_index(&but->rnapoin, prop, a, vec[a]); + } } } else if(but->pointype == CHA) { @@ -1280,7 +1287,7 @@ void ui_set_but_vectorf(uiBut *but, float *vec) } else if(but->pointype == FLO) { float *fp= (float *)but->poin; - VECCOPY(fp, vec); + copy_v3_v3(fp, vec); } } diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c index c35996701ee..6c661ba014e 100644 --- a/source/blender/editors/interface/interface_anim.c +++ b/source/blender/editors/interface/interface_anim.c @@ -179,6 +179,7 @@ int ui_but_anim_expression_create(uiBut *but, const char *str) dtar = &dvar->targets[0]; dtar->id = (ID *)CTX_data_scene(C); // XXX: should we check that C is valid first? + dtar->idtype= ID_SCE; dtar->rna_path = BLI_sprintfN("frame_current"); } diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 6417a6b58dd..f4400d2d7db 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1252,6 +1252,86 @@ static short test_special_char(char ch) return 0; } +static int ui_textedit_step_next_utf8(const char *str, size_t maxlen, short *pos) +{ + const char *str_end= str + (maxlen + 1); + const char *str_pos= str + (*pos); + const char *str_next= BLI_str_find_next_char_utf8(str_pos, str_end); + if (str_next) { + (*pos) += (str_next - str_pos); + if((*pos) > maxlen) (*pos)= maxlen; + return TRUE; + } + + return FALSE; +} + +static int ui_textedit_step_prev_utf8(const char *str, size_t UNUSED(maxlen), short *pos) +{ + if((*pos) > 0) { + const char *str_pos= str + (*pos); + const char *str_prev= BLI_str_find_prev_char_utf8(str, str_pos); + if (str_prev) { + (*pos) -= (str_pos - str_prev); + return TRUE; + } + } + + return FALSE; +} + +static void ui_textedit_step_utf8(const char *str, size_t maxlen, + short *pos, const char direction, + const short do_jump, const short do_all) +{ + const short pos_prev= *pos; + + if(direction) { /* right*/ + if(do_jump) { + /* jump between special characters (/,\,_,-, etc.), + * look at function test_special_char() for complete + * list of special character, ctr -> */ + while((*pos) < maxlen) { + if (ui_textedit_step_next_utf8(str, maxlen, pos)) { + if(!do_all && test_special_char(str[(*pos)])) break; + } + else { + break; /* unlikely but just incase */ + } + } + } + else { + ui_textedit_step_next_utf8(str, maxlen, pos); + } + } + else { /* left */ + if(do_jump) { + /* left only: compensate for index/change in direction */ + ui_textedit_step_prev_utf8(str, maxlen, pos); + + /* jump between special characters (/,\,_,-, etc.), + * look at function test_special_char() for complete + * list of special character, ctr -> */ + while ((*pos) > 0) { + if (ui_textedit_step_prev_utf8(str, maxlen, pos)) { + if(!do_all && test_special_char(str[(*pos)])) break; + } + else { + break; + } + } + + /* left only: compensate for index/change in direction */ + if(((*pos) != 0) && ABS(pos_prev - (*pos)) > 1) { + ui_textedit_step_next_utf8(str, maxlen, pos); + } + } + else { + ui_textedit_step_prev_utf8(str, maxlen, pos); + } + } +} + static int ui_textedit_delete_selection(uiBut *but, uiHandleButtonData *data) { char *str= data->str; @@ -1294,13 +1374,17 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho /* mouse dragged outside the widget to the left */ if (x < startx && but->ofs > 0) { - int i= but->ofs; + short i= but->ofs; origstr[but->ofs] = 0; while (i > 0) { - i--; - if (BLF_width(fstyle->uifont_id, origstr+i) > (startx - x)*0.25f) break; // 0.25 == scale factor for less sensitivity + if (ui_textedit_step_prev_utf8(origstr, but->ofs, &i)) { + if (BLF_width(fstyle->uifont_id, origstr+i) > (startx - x)*0.25f) break; // 0.25 == scale factor for less sensitivity + } + else { + break; /* unlikely but possible */ + } } but->ofs = i; but->pos = but->ofs; @@ -1314,9 +1398,13 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho /* XXX does not take zoom level into account */ while (startx + aspect_sqrt * BLF_width(fstyle->uifont_id, origstr+but->ofs) > x) { if (but->pos <= 0) break; - but->pos--; - origstr[but->pos+but->ofs] = 0; - } + if (ui_textedit_step_prev_utf8(origstr, but->ofs, &but->pos)) { + origstr[but->pos+but->ofs] = 0; + } + else { + break; /* unlikely but possible */ + } + } but->pos += but->ofs; if(but->pos<0) but->pos= 0; } @@ -1391,48 +1479,7 @@ static void ui_textedit_move(uiBut *but, uiHandleButtonData *data, int direction data->selextend = 0; } else { - if(direction) { /* right*/ - if(jump) { - /* jump between special characters (/,\,_,-, etc.), - * look at function test_special_char() for complete - * list of special character, ctr -> */ - while(but->pos < len) { - but->pos++; - if(!jump_all && test_special_char(str[but->pos])) break; - } - } - else { - but->pos++; - if(but->pos > len) but->pos= len; - } - } - else { /* left */ - if(jump) { - - /* left only: compensate for index/change in direction */ - if(but->pos > 0) { - but->pos--; - } - - /* jump between special characters (/,\,_,-, etc.), - * look at function test_special_char() for complete - * list of special character, ctr -> */ - while(but->pos > 0){ - but->pos--; - if(!jump_all && test_special_char(str[but->pos])) break; - } - - /* left only: compensate for index/change in direction */ - if((but->pos != 0) && ABS(pos_prev - but->pos) > 1) { - but->pos++; - } - - } - else { - if(but->pos>0) but->pos--; - } - } - + ui_textedit_step_utf8(str, len, &but->pos, direction, jump, jump_all); if(select) { /* existing selection */ @@ -1498,21 +1545,10 @@ static int ui_textedit_delete(uiBut *but, uiHandleButtonData *data, int directio changed= ui_textedit_delete_selection(but, data); } else if(but->pos>=0 && but->pos<len) { + short pos= but->pos; int step; - - if (jump) { - x = but->pos; - step= 0; - while(x < len) { - x++; - step++; - if(test_special_char(str[x])) break; - } - } - else { - step= 1; - } - + ui_textedit_step_utf8(str, len, &pos, direction, jump, all); + step= pos - but->pos; for(x=but->pos; x<len; x++) str[x]= str[x+step]; str[len-step]='\0'; @@ -1525,20 +1561,11 @@ static int ui_textedit_delete(uiBut *but, uiHandleButtonData *data, int directio changed= ui_textedit_delete_selection(but, data); } else if(but->pos>0) { + short pos= but->pos; int step; - if (jump) { - x = but->pos; - step= 0; - while(x > 0) { - x--; - step++; - if((step > 1) && test_special_char(str[x])) break; - } - } - else { - step= 1; - } + ui_textedit_step_utf8(str, len, &pos, direction, jump, all); + step= but->pos - pos; for(x=but->pos; x<len; x++) str[x-step]= str[x]; @@ -1966,8 +1993,6 @@ static void ui_do_but_textedit_select(bContext *C, uiBlock *block, uiBut *but, u static void ui_numedit_begin(uiBut *but, uiHandleButtonData *data) { - float softrange, softmin, softmax; - if(but->type == BUT_CURVE) { but->editcumap= (CurveMapping*)but->poin; } @@ -1977,10 +2002,12 @@ static void ui_numedit_begin(uiBut *but, uiHandleButtonData *data) } else if(ELEM3(but->type, BUT_NORMAL, HSVCUBE, HSVCIRCLE)) { ui_get_but_vectorf(but, data->origvec); - VECCOPY(data->vec, data->origvec); + copy_v3_v3(data->vec, data->origvec); but->editvec= data->vec; } else { + float softrange, softmin, softmax; + data->startvalue= ui_get_but_val(but); data->origvalue= data->startvalue; data->value= data->origvalue; @@ -3004,6 +3031,9 @@ static int ui_numedit_but_NORMAL(uiBut *but, uiHandleButtonData *data, int mx, i /* button is presumed square */ /* if mouse moves outside of sphere, it does negative normal */ + /* note that both data->vec and data->origvec should be normalized + * else we'll get a hamrless but annoying jump when first clicking */ + fp= data->origvec; rad= (but->x2 - but->x1); radsq= rad*rad; @@ -4429,7 +4459,7 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event) /* check prevval because of modal operators [#24016], * modifier check is to allow Ctrl+C for copy. * if this causes other problems, remove this check and suffer the bug :) - campbell */ - (event->prevval != KM_PRESS || ISKEYMODIFIER(event->prevtype)) + ((event->prevval != KM_PRESS) || (ISKEYMODIFIER(event->prevtype)) || (event->type == EVT_DROP)) ) { /* handle copy-paste */ if(ELEM(event->type, CKEY, VKEY) && event->val==KM_PRESS && (event->ctrl || event->oskey)) { diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 6fb7677da6e..12e9d39e896 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -350,8 +350,8 @@ extern void ui_window_to_region(const ARegion *ar, int *x, int *y); extern double ui_get_but_val(uiBut *but); extern void ui_set_but_val(uiBut *but, double value); extern void ui_set_but_hsv(uiBut *but); -extern void ui_get_but_vectorf(uiBut *but, float *vec); -extern void ui_set_but_vectorf(uiBut *but, float *vec); +extern void ui_get_but_vectorf(uiBut *but, float vec[3]); +extern void ui_set_but_vectorf(uiBut *but, const float vec[3]); extern void ui_hsvcircle_vals_from_pos(float *valrad, float *valdist, rcti *rect, float mx, float my); diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 622d50752fa..028ab05464b 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -368,7 +368,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but) /* create tooltip data */ data= MEM_callocN(sizeof(uiTooltipData), "uiTooltipData"); - /* special case, enum rna buttons only have enum item description, use general enum description too before the spesific one */ + /* special case, enum rna buttons only have enum item description, use general enum description too before the specific one */ if(but->rnaprop && RNA_property_type(but->rnaprop) == PROP_ENUM) { const char *descr= RNA_property_description(but->rnaprop); if(descr && descr[0]) { diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index 02b5250f67a..8945cac428b 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -337,7 +337,7 @@ void EM_editselection_normal(float *normal, EditSelection *ese) } /* Calculate a plane that is rightangles to the edge/vert/faces normal -also make the plane run allong an axis that is related to the geometry, +also make the plane run along an axis that is related to the geometry, because this is used for the manipulators Y axis.*/ void EM_editselection_plane(float *plane, EditSelection *ese) { @@ -345,7 +345,7 @@ void EM_editselection_plane(float *plane, EditSelection *ese) EditVert *eve= ese->data; float vec[3]={0,0,0}; - if (ese->prev) { /*use previously selected data to make a usefull vertex plane */ + if (ese->prev) { /*use previously selected data to make a useful vertex plane */ EM_editselection_center(vec, ese->prev); sub_v3_v3v3(plane, vec, eve->co); } else { @@ -361,7 +361,7 @@ void EM_editselection_plane(float *plane, EditSelection *ese) } else if (ese->type==EDITEDGE) { EditEdge *eed= ese->data; - /*the plane is simple, it runs allong the edge + /*the plane is simple, it runs along the edge however selecting different edges can swap the direction of the y axis. this makes it less likely for the y axis of the manipulator (running along the edge).. to flip less often. diff --git a/source/blender/editors/mesh/mesh_navmesh.c b/source/blender/editors/mesh/mesh_navmesh.c index 4ae1cdeed02..b8ace26991e 100644 --- a/source/blender/editors/mesh/mesh_navmesh.c +++ b/source/blender/editors/mesh/mesh_navmesh.c @@ -424,36 +424,49 @@ static Object* createRepresentation(bContext *C, struct recast_polyMesh *pmesh, return obedit; } -static int create_navmesh_exec(bContext *C, wmOperator *UNUSED(op)) +static int create_navmesh_exec(bContext *C, wmOperator *op) { Scene* scene= CTX_data_scene(C); - int nverts= 0, ntris= 0; - float *verts= NULL; - int *tris= 0; - struct recast_polyMesh *pmesh= NULL; - struct recast_polyMeshDetail *dmesh= NULL; LinkNode* obs= NULL; Base* navmeshBase= NULL; CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { - if(base->object->body_type==OB_BODY_TYPE_NAVMESH) { - if(!navmeshBase || base == scene->basact) - navmeshBase= base; + if (base->object->type == OB_MESH) { + if (base->object->body_type==OB_BODY_TYPE_NAVMESH) { + if (!navmeshBase || base == scene->basact) { + navmeshBase= base; + } + } + else { + BLI_linklist_append(&obs, (void*)base->object); + } } - else - BLI_linklist_append(&obs, (void*)base->object); } CTX_DATA_END; - createVertsTrisData(C, obs, &nverts, &verts, &ntris, &tris); - BLI_linklist_free(obs, NULL); - buildNavMesh(&scene->gm.recastData, nverts, verts, ntris, tris, &pmesh, &dmesh); - createRepresentation(C, pmesh, dmesh, navmeshBase); + if (obs) { + struct recast_polyMesh *pmesh= NULL; + struct recast_polyMeshDetail *dmesh= NULL; - MEM_freeN(verts); - MEM_freeN(tris); + int nverts= 0, ntris= 0; + int *tris= 0; + float *verts= NULL; - return OPERATOR_FINISHED; + createVertsTrisData(C, obs, &nverts, &verts, &ntris, &tris); + BLI_linklist_free(obs, NULL); + buildNavMesh(&scene->gm.recastData, nverts, verts, ntris, tris, &pmesh, &dmesh); + createRepresentation(C, pmesh, dmesh, navmeshBase); + + MEM_freeN(verts); + MEM_freeN(tris); + + return OPERATOR_FINISHED; + } + else { + BKE_report(op->reports, RPT_ERROR, "No mesh objects found"); + + return OPERATOR_CANCELLED; + } } void MESH_OT_navmesh_make(wmOperatorType *ot) diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index 526bf177ab7..e6836d7d5aa 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -957,7 +957,7 @@ long mesh_mirrtopo_table(Object *ob, char mode) } } else { for(a=0, medge=me->medge; a<me->totedge; a++, medge++) { - /* This can make realy big numbers, wrapping around here is fine */ + /* This can make really big numbers, wrapping around here is fine */ MirrTopoHash[medge->v1] += MirrTopoHash_Prev[medge->v2]; MirrTopoHash[medge->v2] += MirrTopoHash_Prev[medge->v1]; } diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index ebbc4137628..20ca50581bf 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -1163,9 +1163,6 @@ static int multires_external_save_invoke(bContext *C, wmOperator *op, wmEvent *U if(CustomData_external_test(&me->fdata, CD_MDISPS)) return OPERATOR_CANCELLED; - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - if(RNA_property_is_set(op->ptr, "filepath")) return multires_external_save_exec(C, op); diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index 019d6df9b73..740fd5137de 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -2970,7 +2970,7 @@ static void brush_puff(PEData *data, int point_index) VECSUB(dco, lastco, co); mul_mat3_m4_v3(imat, dco); /* into particle space */ - /* move the point allong a vector perpendicular to the + /* move the point along a vector perpendicular to the * hairs direction, reduces odd kinks, */ cross_v3_v3v3(c1, ofs, dco); cross_v3_v3v3(c2, c1, dco); diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 4da1ecd8fdf..939a36e9c69 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -1222,9 +1222,6 @@ static int envmap_save_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event { //Scene *scene= CTX_data_scene(C); - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - if(RNA_property_is_set(op->ptr, "filepath")) return envmap_save_exec(C, op); diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 1c53be15a0f..c5af8971907 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -3387,7 +3387,7 @@ static void project_paint_end(ProjPaintState *ps) } /* This is a BIT ODD, but overwrite the undo tiles image info with this pixels original color - * because allocating the tiles allong the way slows down painting */ + * because allocating the tiles along the way slows down painting */ if (is_float) { float *rgba_fp = (float *)tilerect + (((projPixel->x_px - x_round) + (projPixel->y_px - y_round) * IMAPAINT_TILE_SIZE)) * 4; @@ -3966,7 +3966,7 @@ static int project_paint_op(void *state, ImBuf *UNUSED(ibufb), float *lastpos, f copy_v2_v2(handles[a].mval, pos); copy_v2_v2(handles[a].prevmval, lastpos); - /* thread spesific */ + /* thread specific */ handles[a].thread_index = a; handles[a].projImages = (ProjPaintImage *)BLI_memarena_alloc(ps->arena_mt[a], ps->image_tot * sizeof(ProjPaintImage)); diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index cf90c43f3e1..87411b97061 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -1619,7 +1619,7 @@ static void do_weight_paint_vertex( /* vars which remain the same for every vert } } - /* important to normalize after mirror, otherwise mirror gets wight + /* important to normalize after mirror, otherwise mirror gets weight * which has already been scaled down in relation to other weights, * then scales a second time [#26193]. Tricky multi-paint code doesn't * suffer from this problem - campbell */ diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index d03c2b19300..50dda49bead 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -164,9 +164,6 @@ static int open_exec(bContext *UNUSED(C), wmOperator *op) static int open_invoke(bContext *C, wmOperator *op, wmEvent *event) { - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - if(RNA_property_is_set(op->ptr, "filepath")) return open_exec(C, op); @@ -264,9 +261,6 @@ static int mixdown_exec(bContext *C, wmOperator *op) static int mixdown_invoke(bContext *C, wmOperator *op, wmEvent *event) { - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - if(RNA_property_is_set(op->ptr, "filepath")) return mixdown_exec(C, op); diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index a05053a2d9d..7bf0f98b471 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -246,20 +246,32 @@ static void get_keyframe_extents (bAnimContext *ac, float *min, float *max, cons /* go through channels, finding max extents */ for (ale= anim_data.first; ale; ale= ale->next) { AnimData *adt= ANIM_nla_mapping_get(ac, ale); - FCurve *fcu= (FCurve *)ale->key_data; - float tmin, tmax; - - /* get range and apply necessary scaling before processing */ - calc_fcurve_range(fcu, &tmin, &tmax, onlySel); - - if (adt) { - tmin= BKE_nla_tweakedit_remap(adt, tmin, NLATIME_CONVERT_MAP); - tmax= BKE_nla_tweakedit_remap(adt, tmax, NLATIME_CONVERT_MAP); + if (ale->datatype == ALE_GPFRAME) { + bGPDlayer *gpl= ale->data; + bGPDframe *gpf; + + /* find gp-frame which is less than or equal to cframe */ + for (gpf= gpl->frames.first; gpf; gpf= gpf->next) { + *min= MIN2(*min, gpf->framenum); + *max= MAX2(*max, gpf->framenum); + } + } + else { + FCurve *fcu= (FCurve *)ale->key_data; + float tmin, tmax; + + /* get range and apply necessary scaling before processing */ + calc_fcurve_range(fcu, &tmin, &tmax, onlySel); + + if (adt) { + tmin= BKE_nla_tweakedit_remap(adt, tmin, NLATIME_CONVERT_MAP); + tmax= BKE_nla_tweakedit_remap(adt, tmax, NLATIME_CONVERT_MAP); + } + + /* try to set cur using these values, if they're more extreme than previously set values */ + *min= MIN2(*min, tmin); + *max= MAX2(*max, tmax); } - - /* try to set cur using these values, if they're more extreme than previously set values */ - *min= MIN2(*min, tmin); - *max= MAX2(*max, tmax); } /* free memory */ diff --git a/source/blender/editors/space_buttons/buttons_ops.c b/source/blender/editors/space_buttons/buttons_ops.c index 99e5c6d693e..75b3eb950a5 100644 --- a/source/blender/editors/space_buttons/buttons_ops.c +++ b/source/blender/editors/space_buttons/buttons_ops.c @@ -201,6 +201,8 @@ static int file_browse_invoke(bContext *C, wmOperator *op, wmEvent *event) RNA_string_set(op->ptr, path_prop, str); MEM_freeN(str); + /* normally ED_fileselect_get_params would handle this but we need to because of stupid + * user-prefs exception - campbell */ if(RNA_struct_find_property(op->ptr, "relative_path")) { if(!RNA_property_is_set(op->ptr, "relative_path")) { /* annoying exception!, if were dealign with the user prefs, default relative to be off */ diff --git a/source/blender/editors/space_file/file_draw.c b/source/blender/editors/space_file/file_draw.c index 611bf79603e..85edcce35ca 100644 --- a/source/blender/editors/space_file/file_draw.c +++ b/source/blender/editors/space_file/file_draw.c @@ -181,7 +181,7 @@ void file_draw_buttons(const bContext *C, ARegion *ar) but = uiDefButTextO(block, TEX, "FILE_OT_directory", 0, "", min_x, line1_y, line1_w-chan_offs, btn_h, - params->dir, 0.0, (float)FILE_MAX-1, 0, 0, + params->dir, 0.0, (float)FILE_MAX, 0, 0, UI_translate_do_tooltip(N_("File path"))); uiButSetCompleteFunc(but, autocomplete_directory, NULL); uiButSetFlag(but, UI_BUT_NO_UTF8); @@ -189,7 +189,7 @@ void file_draw_buttons(const bContext *C, ARegion *ar) if((params->flag & FILE_DIRSEL_ONLY) == 0) { but = uiDefBut(block, TEX, B_FS_FILENAME, "", min_x, line2_y, line2_w-chan_offs, btn_h, - params->file, 0.0, (float)FILE_MAXFILE-1, 0, 0, + params->file, 0.0, (float)FILE_MAXFILE, 0, 0, UI_translate_do_tooltip(overwrite_alert ?N_("File name, overwrite existing") : N_("File name"))); uiButSetCompleteFunc(but, autocomplete_file, NULL); uiButSetFlag(but, UI_BUT_NO_UTF8); diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index 0955d264ca8..559873bd601 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -666,7 +666,7 @@ void file_operator_to_sfile(SpaceFile *sfile, wmOperator *op) if((prop= RNA_struct_find_property(op->ptr, "filepath"))) { char filepath[FILE_MAX]; RNA_property_string_get(op->ptr, prop, filepath); - BLI_split_dirfile(filepath, sfile->params->dir, sfile->params->file); + BLI_split_dirfile(filepath, sfile->params->dir, sfile->params->file, sizeof(sfile->params->dir), sizeof(sfile->params->file)); } else { if((prop= RNA_struct_find_property(op->ptr, "filename"))) { @@ -1143,7 +1143,7 @@ int file_directory_exec(bContext *C, wmOperator *UNUSED(unused)) if(BLI_exists(sfile->params->dir) && BLI_is_dir(sfile->params->dir) == 0) { char path[sizeof(sfile->params->dir)]; BLI_strncpy(path, sfile->params->dir, sizeof(path)); - BLI_split_dirfile(path, sfile->params->dir, sfile->params->file); + BLI_split_dirfile(path, sfile->params->dir, sfile->params->file, sizeof(sfile->params->dir), sizeof(sfile->params->file)); } BLI_cleanup_dir(G.main->name, sfile->params->dir); diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c index f56a4294bf4..e45ecfd24f4 100644 --- a/source/blender/editors/space_file/filelist.c +++ b/source/blender/editors/space_file/filelist.c @@ -736,7 +736,7 @@ static int file_is_blend_backup(const char *str) } -static int file_extension_type(char *relname) +static int file_extension_type(const char *relname) { if(BLO_has_bfile_extension(relname)) { return BLENDERFILE; @@ -769,7 +769,7 @@ static int file_extension_type(char *relname) return 0; } -int ED_file_extension_icon(char *relname) +int ED_file_extension_icon(const char *relname) { int type= file_extension_type(relname); diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c index e3571886cf4..f36145aaba0 100644 --- a/source/blender/editors/space_file/filesel.c +++ b/source/blender/editors/space_file/filesel.c @@ -113,7 +113,7 @@ short ED_fileselect_set_params(SpaceFile *sfile) if (!sfile->params) { sfile->params= MEM_callocN(sizeof(FileSelectParams), "fileselparams"); /* set path to most recently opened .blend */ - BLI_split_dirfile(G.main->name, sfile->params->dir, sfile->params->file); + BLI_split_dirfile(G.main->name, sfile->params->dir, sfile->params->file, sizeof(sfile->params->dir), sizeof(sfile->params->file)); sfile->params->filter_glob[0] = '\0'; } @@ -125,6 +125,7 @@ short ED_fileselect_set_params(SpaceFile *sfile) const short is_filepath= (RNA_struct_find_property(op->ptr, "filepath") != NULL); const short is_filename= (RNA_struct_find_property(op->ptr, "filename") != NULL); const short is_directory= (RNA_struct_find_property(op->ptr, "directory") != NULL); + const short is_relative_path= (RNA_struct_find_property(op->ptr, "relative_path") != NULL); BLI_strncpy(params->title, op->type->name, sizeof(params->title)); @@ -141,7 +142,7 @@ short ED_fileselect_set_params(SpaceFile *sfile) sfile->params->file[0]= '\0'; } else { - BLI_split_dirfile(name, sfile->params->dir, sfile->params->file); + BLI_split_dirfile(name, sfile->params->dir, sfile->params->file, sizeof(sfile->params->dir), sizeof(sfile->params->file)); } } else { @@ -228,6 +229,11 @@ short ED_fileselect_set_params(SpaceFile *sfile) params->display= FILE_SHORTDISPLAY; } + if (is_relative_path) { + if (!RNA_property_is_set(op->ptr, "relative_path")) { + RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); + } + } } else { /* default values, if no operator */ @@ -607,7 +613,7 @@ void autocomplete_directory(struct bContext *C, char *str, void *UNUSED(arg_v)) DIR *dir; struct dirent *de; - BLI_split_dirfile(str, dirname, NULL); + BLI_split_dirfile(str, dirname, NULL, sizeof(dirname), 0); dir = opendir(dirname); diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index dc5e71f0406..37e6c0b73c9 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -340,7 +340,7 @@ static void draw_fcurve_handles (SpaceIpo *sipo, FCurve *fcu) int sel, b; /* a single call to GL_LINES here around these calls should be sufficient to still - * get separate line segments, but which aren't wrapped with GL_LINE_STRIP everytime we + * get separate line segments, but which aren't wrapped with GL_LINE_STRIP every time we * want a single line */ glBegin(GL_LINES); diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index 33c3ae45a58..725b5f5c02d 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -843,10 +843,6 @@ static int open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) if(ima) path= ima->name; - - - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); if(RNA_property_is_set(op->ptr, "filepath")) return open_exec(C, op); @@ -1167,9 +1163,6 @@ static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) Scene *scene= CTX_data_scene(C); SaveImageOptions simopts; - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - if(RNA_property_is_set(op->ptr, "filepath")) return save_as_exec(C, op); diff --git a/source/blender/editors/space_info/space_info.c b/source/blender/editors/space_info/space_info.c index 75e13b24ede..9157df6960f 100644 --- a/source/blender/editors/space_info/space_info.c +++ b/source/blender/editors/space_info/space_info.c @@ -290,7 +290,7 @@ static void recent_files_menu_register(void) mt= MEM_callocN(sizeof(MenuType), "spacetype info menu recent files"); strcpy(mt->idname, "INFO_MT_file_open_recent"); - strcpy(mt->label, "Open Recent..."); + strcpy(mt->label, _("Open Recent...")); mt->draw= recent_files_menu_draw; WM_menutype_add(mt); } diff --git a/source/blender/editors/space_outliner/outliner_edit.c b/source/blender/editors/space_outliner/outliner_edit.c index 6bfe370d105..1d1abf80fe4 100644 --- a/source/blender/editors/space_outliner/outliner_edit.c +++ b/source/blender/editors/space_outliner/outliner_edit.c @@ -947,7 +947,7 @@ void OUTLINER_OT_show_hierarchy(wmOperatorType *ot) /* ANIMATO OPERATIONS */ /* KeyingSet and Driver Creation - Helper functions */ -/* specialised poll callback for these operators to work in Datablocks view only */ +/* specialized poll callback for these operators to work in Datablocks view only */ static int ed_operator_outliner_datablocks_active(bContext *C) { ScrArea *sa= CTX_wm_area(C); diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index b390b7dbdb5..7fa4e62359a 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -321,7 +321,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad char dir_only[FILE_MAX]; char file_only[FILE_MAX]; - BLI_split_dirfile(seq_load.path, dir_only, NULL); + BLI_split_dirfile(seq_load.path, dir_only, NULL, sizeof(dir_only), 0); RNA_BEGIN(op->ptr, itemptr, "files") { RNA_string_get(&itemptr, "name", file_only); @@ -380,9 +380,6 @@ static int sequencer_add_movie_strip_invoke(bContext *C, wmOperator *op, wmEvent sequencer_generic_invoke_xy__internal(C, op, event, 0); - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - WM_event_add_fileselect(C, op); return OPERATOR_RUNNING_MODAL; @@ -434,10 +431,7 @@ static int sequencer_add_sound_strip_invoke(bContext *C, wmOperator *op, wmEvent } sequencer_generic_invoke_xy__internal(C, op, event, 0); - - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - + WM_event_add_fileselect(C, op); return OPERATOR_RUNNING_MODAL; @@ -543,9 +537,6 @@ static int sequencer_add_image_strip_invoke(bContext *C, wmOperator *op, wmEvent } sequencer_generic_invoke_xy__internal(C, op, event, SEQPROP_ENDFRAME); - - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); WM_event_add_fileselect(C, op); return OPERATOR_RUNNING_MODAL; @@ -721,10 +712,6 @@ static int sequencer_add_effect_strip_invoke(bContext *C, wmOperator *op, wmEven sequencer_generic_invoke_xy__internal(C, op, event, prop_flag); if (is_type_set && type==SEQ_PLUGIN) { - - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - /* only plugins need the file selector */ return WM_operator_filesel(C, op, event); } diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 0f5398f24a7..13e54c9a4c0 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -187,8 +187,14 @@ static void drawseqwave(Scene *scene, Sequence *seq, float x1, float y1, float x if(!seq->sound->waveform) sound_read_waveform(seq->sound); + if(!seq->sound->waveform) + return; /* zero length sound */ + waveform = seq->sound->waveform; + if(!waveform) + return; + startsample = floor((seq->startofs + seq->anim_startofs)/FPS * SOUND_WAVE_SAMPLES_PER_SECOND); endsample = ceil((seq->startofs + seq->anim_startofs + seq->enddisp - seq->startdisp)/FPS * SOUND_WAVE_SAMPLES_PER_SECOND); samplestep = (endsample-startsample) * stepsize / (x2-x1); @@ -508,47 +514,48 @@ static void draw_seq_text(View2D *v2d, Sequence *seq, float x1, float x2, float char str[32 + FILE_MAXDIR+FILE_MAXFILE]; const char *name= seq->name+2; char col[4]; - + + /* note, all strings should include 'name' */ if(name[0]=='\0') name= give_seqname(seq); if(seq->type == SEQ_META || seq->type == SEQ_ADJUSTMENT) { - sprintf(str, "%d | %s", seq->len, name); + BLI_snprintf(str, sizeof(str), "%d | %s", seq->len, name); } else if(seq->type == SEQ_SCENE) { if(seq->scene) { if(seq->scene_camera) { - sprintf(str, "%d | %s: %s (%s)", seq->len, name, seq->scene->id.name+2, ((ID *)seq->scene_camera)->name+2); + BLI_snprintf(str, sizeof(str), "%d | %s: %s (%s)", seq->len, name, seq->scene->id.name+2, ((ID *)seq->scene_camera)->name+2); } else { - sprintf(str, "%d | %s: %s", seq->len, name, seq->scene->id.name+2); + BLI_snprintf(str, sizeof(str), "%d | %s: %s", seq->len, name, seq->scene->id.name+2); } } else { - sprintf(str, "%d | %s", seq->len, name); + BLI_snprintf(str, sizeof(str), "%d | %s", seq->len, name); } } else if(seq->type == SEQ_MULTICAM) { - sprintf(str, "Cam: %d", seq->multicam_source); + BLI_snprintf(str, sizeof(str), "Cam | %s: %d", name, seq->multicam_source); } else if(seq->type == SEQ_IMAGE) { - sprintf(str, "%d | %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name); + BLI_snprintf(str, sizeof(str), "%d | %s: %s%s", seq->len, name, seq->strip->dir, seq->strip->stripdata->name); } else if(seq->type & SEQ_EFFECT) { int can_float = (seq->type != SEQ_PLUGIN) || (seq->plugin && seq->plugin->version >= 4); if(seq->seq3!=seq->seq2 && seq->seq1!=seq->seq3) - sprintf(str, "%d | %s: %d>%d (use %d)%s", seq->len, name, seq->seq1->machine, seq->seq2->machine, seq->seq3->machine, can_float ? "" : " No float, upgrade plugin!"); + BLI_snprintf(str, sizeof(str), "%d | %s: %d>%d (use %d)%s", seq->len, name, seq->seq1->machine, seq->seq2->machine, seq->seq3->machine, can_float ? "" : " No float, upgrade plugin!"); else if (seq->seq1 && seq->seq2) - sprintf(str, "%d | %s: %d>%d%s", seq->len, name, seq->seq1->machine, seq->seq2->machine, can_float ? "" : " No float, upgrade plugin!"); + BLI_snprintf(str, sizeof(str), "%d | %s: %d>%d%s", seq->len, name, seq->seq1->machine, seq->seq2->machine, can_float ? "" : " No float, upgrade plugin!"); else - sprintf(str, "%d | %s", seq->len, name); + BLI_snprintf(str, sizeof(str), "%d | %s", seq->len, name); } else if (seq->type == SEQ_SOUND) { - sprintf(str, "%d | %s", seq->len, seq->sound->name); + BLI_snprintf(str, sizeof(str), "%d | %s: %s", seq->len, name, seq->sound->name); } else if (seq->type == SEQ_MOVIE) { - sprintf(str, "%d | %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name); + BLI_snprintf(str, sizeof(str), "%d | %s: %s%s", seq->len, name, seq->strip->dir, seq->strip->stripdata->name); } if(seq->flag & SELECT){ diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index bd93a1270f6..45543a9313e 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2961,9 +2961,11 @@ void SEQUENCER_OT_change_effect_type(struct wmOperatorType *ot) static int sequencer_change_path_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); Editing *ed= seq_give_editing(scene, FALSE); Sequence *seq= seq_active_get(scene); + const int is_relative_path= RNA_boolean_get(op->ptr, "relative_path"); if(seq->type == SEQ_IMAGE) { char directory[FILE_MAX]; @@ -2974,6 +2976,12 @@ static int sequencer_change_path_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; RNA_string_get(op->ptr, "directory", directory); + if (is_relative_path) { + /* TODO, shouldn't this already be relative from the filesel? + * (as the 'filepath' is) for now just make relative here, + * but look into changing after 2.60 - campbell */ + BLI_path_rel(directory, bmain->name); + } BLI_strncpy(seq->strip->dir, directory, sizeof(seq->strip->dir)); if(seq->strip->stripdata) { diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index 7e718dc176a..53a520a355d 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -530,7 +530,7 @@ void SEQUENCER_OT_select(wmOperatorType *ot) -/* run recursivly to select linked */ +/* run recursively to select linked */ static int select_more_less_seq__internal(Scene *scene, int sel, int linked) { Editing *ed= seq_give_editing(scene, FALSE); diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index 5c2013ee863..45908801147 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -362,7 +362,7 @@ static void sequencer_drop_copy(wmDrag *drag, wmDropBox *drop) PointerRNA itemptr; char dir[FILE_MAX], file[FILE_MAX]; - BLI_split_dirfile(drag->path, dir, file); + BLI_split_dirfile(drag->path, dir, file, sizeof(dir), sizeof(file)); RNA_string_set(drop->ptr, "directory", dir); diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 14708259a8a..5241d5a9259 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -765,7 +765,7 @@ void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, floa else glDepthMask(0); for(vos= strings->first; vos; vos= vos->next) { -#if 0 // too slow, reading opengl info while drawing is very bad, better to see if we cn use the zbuffer while in pixel space - campbell +#if 0 // too slow, reading opengl info while drawing is very bad, better to see if we can use the zbuffer while in pixel space - campbell if(v3d->zbuf && (vos->flag & V3D_CACHE_TEXT_ZBUF)) { gluProject(vos->vec[0], vos->vec[1], vos->vec[2], mats.modelview, mats.projection, (GLint *)mats.viewport, &ux, &uy, &uz); glReadPixels(ar->winrct.xmin+vos->mval[0]+vos->xoffs, ar->winrct.ymin+vos->mval[1], 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth); @@ -6749,7 +6749,10 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec } else { Mesh *me= ob->data; - if(me->editflag & ME_EDIT_VERT_SEL) { + if( (me->editflag & ME_EDIT_VERT_SEL) && + /* currently vertex select only supports weight paint */ + (ob->mode & OB_MODE_WEIGHT_PAINT)) + { DerivedMesh *dm = mesh_get_derived_final(scene, ob, scene->customdata_mask); glColor3ub(0, 0, 0); diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 0854f9f3685..115b3756029 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -450,7 +450,7 @@ static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event) sub_v3_v3v3(my_pivot, rv3d->ofs, upvec); negate_v3(my_pivot); /* ofs is flipped */ - /* find a new ofs value that is allong the view axis (rather than the mouse location) */ + /* find a new ofs value that is along the view axis (rather than the mouse location) */ closest_to_line_v3(dvec, vod->dyn_ofs, my_pivot, my_origin); vod->dist0 = rv3d->dist = len_v3v3(my_pivot, dvec); diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index 02a6cee5140..b66440738b2 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -179,7 +179,7 @@ typedef struct FlyInfo { /* fly state state */ float speed; /* the speed the view is moving per redraw */ - short axis; /* Axis index to move allong by default Z to move allong the view */ + short axis; /* Axis index to move along by default Z to move along the view */ short pan_view; /* when true, pan the view instead of rotating */ /* relative view axis locking - xlock, zlock @@ -725,7 +725,7 @@ static int flyApply(bContext *C, FlyInfo *fly) RegionView3D *rv3d= fly->rv3d; ARegion *ar = fly->ar; - float mat[3][3], /* 3x3 copy of the view matrix so we can move allong the view axis */ + float mat[3][3], /* 3x3 copy of the view matrix so we can move along the view axis */ dvec[3]={0,0,0}, /* this is the direction thast added to the view offset per redraw */ /* Camera Uprighting variables */ diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 992c047ecd3..beabd700e8b 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1922,7 +1922,7 @@ static void protectedQuaternionBits(short protectflag, float *quat, float *oldqu quat[3]= oldquat[3]; } else { - /* quaternions get limited with euler... (compatability mode) */ + /* quaternions get limited with euler... (compatibility mode) */ float eul[3], oldeul[3], nquat[4], noldquat[4]; float qlen; diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c index a1e1c0e0b1d..1c3241237f5 100644 --- a/source/blender/editors/transform/transform_input.c +++ b/source/blender/editors/transform/transform_input.c @@ -312,6 +312,15 @@ static void calcSpringFactor(MouseInput *mi) void initMouseInputMode(TransInfo *t, MouseInput *mi, MouseInputMode mode) { + /* may have been allocated previously */ + /* TODO, holding R-key can cause mem leak, but this causes [#28903] + * disable for now. */ +#if 0 + if(mi->data) { + MEM_freeN(mi->data); + mi->data= NULL; + } +#endif switch(mode) { diff --git a/source/blender/editors/util/crazyspace.c b/source/blender/editors/util/crazyspace.c index 9560924941d..53ccd37952d 100644 --- a/source/blender/editors/util/crazyspace.c +++ b/source/blender/editors/util/crazyspace.c @@ -384,7 +384,7 @@ void crazyspace_build_sculpt(Scene *scene, Object *ob, float (**deformmats)[3][3 int totleft= sculpt_get_first_deform_matrices(scene, ob, deformmats, deformcos); if(totleft) { - /* there are deformation modifier which doesn't support deformation matricies + /* there are deformation modifier which doesn't support deformation matrices calculation. Need additional crazyspace correction */ float (*deformedVerts)[3]= *deformcos; diff --git a/source/blender/imbuf/intern/IMB_indexer.h b/source/blender/imbuf/intern/IMB_indexer.h index bd5a455df98..08fa51966f2 100644 --- a/source/blender/imbuf/intern/IMB_indexer.h +++ b/source/blender/imbuf/intern/IMB_indexer.h @@ -37,7 +37,7 @@ #include "IMB_anim.h" /* - seperate animation index files to solve the following problems: + separate animation index files to solve the following problems: a) different timecodes within one file (like DTS/PTS, Timecode-Track, "implicit" timecodes within DV-files and HDV-files etc.) diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c index b9500c2f798..c1ef8c4792b 100644 --- a/source/blender/imbuf/intern/anim_movie.c +++ b/source/blender/imbuf/intern/anim_movie.c @@ -745,9 +745,9 @@ static int ffmpeg_decode_video_frame(struct anim * anim) " FRAME DONE: " "next_pts=%lld pkt_pts=%lld\n", (anim->pFrame->pts == AV_NOPTS_VALUE) ? - -1 : anim->pFrame->pts, + -1 : (long long int)anim->pFrame->pts, (anim->pFrame->pkt_pts == AV_NOPTS_VALUE) ? - -1 : anim->pFrame->pkt_pts); + -1 : (long long int)anim->pFrame->pkt_pts); anim->next_pts = av_get_pts_from_frame(anim->pFormatCtx, anim->pFrame); @@ -767,9 +767,9 @@ static int ffmpeg_decode_video_frame(struct anim * anim) anim->next_packet.stream_index, anim->videoStream, (anim->next_packet.dts == AV_NOPTS_VALUE) ? -1: - anim->next_packet.dts, + (long long int)anim->next_packet.dts, (anim->next_packet.pts == AV_NOPTS_VALUE) ? -1: - anim->next_packet.pts, + (long long int)anim->next_packet.pts, (anim->next_packet.flags & AV_PKT_FLAG_KEY) ? " KEY" : ""); if (anim->next_packet.stream_index == anim->videoStream) { @@ -796,11 +796,11 @@ static int ffmpeg_decode_video_frame(struct anim * anim) " FRAME DONE: next_pts=%lld " "pkt_pts=%lld, guessed_pts=%lld\n", (anim->pFrame->pts == AV_NOPTS_VALUE) ? - -1 : anim->pFrame->pts, + -1 : (long long int)anim->pFrame->pts, (anim->pFrame->pkt_pts == AV_NOPTS_VALUE) ? - -1 : anim->pFrame->pkt_pts, - anim->next_pts); + -1 : (long long int)anim->pFrame->pkt_pts, + (long long int)anim->next_pts); } } av_free_packet(&anim->next_packet); @@ -824,13 +824,13 @@ static void ffmpeg_decode_video_frame_scan( av_log(anim->pFormatCtx, AV_LOG_DEBUG, "SCAN start: considering pts=%lld in search of %lld\n", - anim->next_pts, pts_to_search); + (long long int)anim->next_pts, (long long int)pts_to_search); while (count > 0 && anim->next_pts < pts_to_search) { av_log(anim->pFormatCtx, AV_LOG_DEBUG, " WHILE: pts=%lld in search of %lld\n", - anim->next_pts, pts_to_search); + (long long int)anim->next_pts, (long long int)pts_to_search); if (!ffmpeg_decode_video_frame(anim)) { break; } @@ -841,7 +841,7 @@ static void ffmpeg_decode_video_frame_scan( AV_LOG_ERROR, "SCAN failed: completely lost in stream, " "bailing out at PTS=%lld, searching for PTS=%lld\n", - anim->next_pts, pts_to_search); + (long long int)anim->next_pts, (long long int)pts_to_search); } if (anim->next_pts == pts_to_search) { av_log(anim->pFormatCtx, @@ -938,13 +938,13 @@ static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position, av_log(anim->pFormatCtx, AV_LOG_DEBUG, "FETCH: looking for PTS=%lld " "(pts_timebase=%g, frame_rate=%g, st_time=%lld)\n", - pts_to_search, pts_time_base, frame_rate, st_time); + (long long int)pts_to_search, pts_time_base, frame_rate, st_time); if (anim->last_frame && anim->last_pts <= pts_to_search && anim->next_pts > pts_to_search){ av_log(anim->pFormatCtx, AV_LOG_DEBUG, "FETCH: frame repeat: last: %lld next: %lld\n", - anim->last_pts, anim->next_pts); + (long long int)anim->last_pts, (long long int)anim->next_pts); IMB_refImBuf(anim->last_frame); anim->curposition = position; return anim->last_frame; @@ -957,7 +957,8 @@ static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position, av_log(anim->pFormatCtx, AV_LOG_DEBUG, "FETCH: no seek necessary: " "next: %lld next undecoded: %lld\n", - anim->next_pts, anim->next_undecoded_pts); + (long long int)anim->next_pts, + (long long int)anim->next_undecoded_pts); /* we are already done :) */ @@ -1031,7 +1032,7 @@ static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position, "FETCH: " "error while seeking to DTS = %lld " "(frameno = %d, PTS = %lld): errcode = %d\n", - pos, position, pts_to_search, ret); + pos, position, (long long int)pts_to_search, ret); } avcodec_flush_buffers(anim->pCodecCtx); diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c index d79e881e5a2..635813d856e 100644 --- a/source/blender/imbuf/intern/indexer.c +++ b/source/blender/imbuf/intern/indexer.c @@ -87,7 +87,7 @@ anim_index_builder * IMB_index_builder_create(const char * name) BLI_make_existing_file(rv->temp_name); - rv->fp = fopen(rv->temp_name, "w"); + rv->fp = fopen(rv->temp_name, "wb"); if (!rv->fp) { fprintf(stderr, "Couldn't open index target: %s! " @@ -797,7 +797,7 @@ static int index_rebuild_ffmpeg(struct anim * anim, while(av_read_frame(iFormatCtx, &next_packet) >= 0) { int frame_finished = 0; - float next_progress = ((int)floor(((double) next_packet.pos) * 100 / + float next_progress = (float)((int)floor(((double) next_packet.pos) * 100 / ((double) stream_size)+0.5)) / 100; if (*progress != next_progress) { @@ -840,8 +840,8 @@ static int index_rebuild_ffmpeg(struct anim * anim, start_pts_set = TRUE; } - frameno = (pts - start_pts) - * pts_time_base * frame_rate; + frameno = floor((pts - start_pts) + * pts_time_base * frame_rate + 0.5f); /* decoding starts *always* on I-Frames, so: P-Frames won't work, even if all the diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index d0e054e415a..1509eade0dd 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -340,8 +340,8 @@ typedef struct bPose { void *ikdata; /* temporary IK data, depends on the IK solver. Not saved in file */ void *ikparam; /* IK solver parameters, structure depends on iksolver */ - bAnimVizSettings avs; /* settings for visualisation of bone animation */ - char proxy_act_bone[32]; /*proxy active bone name*/ + bAnimVizSettings avs; /* settings for visualization of bone animation */ + char proxy_act_bone[32]; /* proxy active bone name*/ } bPose; @@ -423,6 +423,8 @@ typedef enum eItasc_Solver { * This is also exploited for bone-groups. Bone-Groups are stored per bPose, and are used * primarily to color bones in the 3d-view. There are other benefits too, but those are mostly related * to Action-Groups. + * + * Note that these two uses each have their own RNA 'ActionGroup' and 'BoneGroup'. */ typedef struct bActionGroup { struct bActionGroup *next, *prev; @@ -652,7 +654,7 @@ typedef enum eAnimEdit_AutoSnap { * Constraint Channels in certain situations. * * Action-Channels can only belong to one group at a time, but they still live the Action's - * list of achans (to preserve backwards compatability, and also minimise the code + * list of achans (to preserve backwards compatibility, and also minimize the code * that would need to be recoded). Grouped achans are stored at the start of the list, according * to the position of the group in the list, and their position within the group. */ diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h index e04bdd4ec45..00f6f2433af 100644 --- a/source/blender/makesdna/DNA_constraint_types.h +++ b/source/blender/makesdna/DNA_constraint_types.h @@ -228,7 +228,7 @@ typedef struct bMinMaxConstraint { int minmaxflag; float offset; int flag; - short sticky, stuck, pad1, pad2; /* for backward compatability */ + short sticky, stuck, pad1, pad2; /* for backward compatibility */ float cache[3]; char subtarget[32]; } bMinMaxConstraint; diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h index b259d592864..a4d0b3685e3 100644 --- a/source/blender/makesdna/DNA_gpencil_types.h +++ b/source/blender/makesdna/DNA_gpencil_types.h @@ -99,7 +99,8 @@ typedef struct bGPDlayer { float color[4]; /* color that should be used to draw all the strokes in this layer */ - char info[128]; /* optional reference info about this layer (i.e. "director's comments, 12/3") */ + char info[128]; /* optional reference info about this layer (i.e. "director's comments, 12/3") + * this is used for the name of the layer too and kept unique. */ } bGPDlayer; /* bGPDlayer->flag */ diff --git a/source/blender/makesdna/DNA_ipo_types.h b/source/blender/makesdna/DNA_ipo_types.h index 8fe8b3bcf70..201ea8994ca 100644 --- a/source/blender/makesdna/DNA_ipo_types.h +++ b/source/blender/makesdna/DNA_ipo_types.h @@ -30,7 +30,7 @@ * \deprecated * The contents of this file are now officially depreceated. They were used for the 'old' animation system, * which has (as of 2.50) been replaced with a completely new system by Joshua Leung (aligorith). All defines, - * etc. are only still maintained to provide backwards compatability for old files. + * etc. are only still maintained to provide backwards compatibility for old files. */ #ifndef DNA_IPO_TYPES_H diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index f0c7cf8cc45..6faf86b74a5 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -412,14 +412,14 @@ typedef struct DupliObject { #define OB_EMPTY_IMAGE 8 /* boundtype */ -#define OB_BOUND_BOX 0 -#define OB_BOUND_SPHERE 1 -#define OB_BOUND_CYLINDER 2 -#define OB_BOUND_CONE 3 -#define OB_BOUND_POLYH 4 -#define OB_BOUND_POLYT 5 +#define OB_BOUND_BOX 0 +#define OB_BOUND_SPHERE 1 +#define OB_BOUND_CYLINDER 2 +#define OB_BOUND_CONE 3 +#define OB_BOUND_TRIANGLE_MESH 4 +#define OB_BOUND_CONVEX_HULL 5 /* #define OB_BOUND_DYN_MESH 6 */ /*UNUSED*/ -#define OB_BOUND_CAPSULE 7 +#define OB_BOUND_CAPSULE 7 /* **************** BASE ********************* */ diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h index 9fec5207dbb..da2fce4da82 100644 --- a/source/blender/makesdna/DNA_particle_types.h +++ b/source/blender/makesdna/DNA_particle_types.h @@ -386,7 +386,8 @@ typedef struct ParticleSystem{ /* note, make sure all (runtime) are NULL's in #define PART_DRAW_HEALTH 16 #define PART_ABS_PATH_TIME 32 #define PART_DRAW_COUNT_GR 64 -#define PART_DRAW_BB_LOCK 128 +#define PART_DRAW_BB_LOCK 128 /* used with billboards */ +#define PART_DRAW_ROTATE_OB 128 /* used with dupliobjects/groups */ #define PART_DRAW_PARENT 256 #define PART_DRAW_NUM 512 #define PART_DRAW_RAND_GR 1024 diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index cb1137fbe57..420fe319d08 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -320,9 +320,15 @@ static int rna_IDPArray_length(PointerRNA *ptr) int rna_IDMaterials_assign_int(PointerRNA *ptr, int key, const PointerRNA *assign_ptr) { ID *id= ptr->id.data; + short *totcol= give_totcolp_id(id); Material *mat_id= assign_ptr->id.data; - assign_material_id(id, mat_id, key + 1); - return 1; + if(totcol && (key >= 0 && key < *totcol)) { + assign_material_id(id, mat_id, key + 1); + return 1; + } + else { + return 0; + } } #else diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 810db9f3634..371c387e871 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -40,6 +40,8 @@ #ifdef RNA_RUNTIME +#include "BLI_path_util.h" + static int rna_GPencilLayer_active_frame_editable(PointerRNA *ptr) { bGPDlayer *gpl= (bGPDlayer *)ptr->data; @@ -90,6 +92,17 @@ static void rna_GPencil_active_layer_set(PointerRNA *ptr, PointerRNA value) } } +void rna_GPencilLayer_info_set(PointerRNA *ptr, const char *value) +{ + bGPdata *gpd= ptr->id.data; + bGPDlayer *gpl= ptr->data; + + /* copy the new name into the name slot */ + BLI_strncpy_utf8(gpl->info, value, sizeof(gpl->info)); + + BLI_uniquename(&gpd->layers, gpl, "GP_Layer", '.', offsetof(bGPDlayer, info), sizeof(gpl->info)); +} + #else static void rna_def_gpencil_stroke_point(BlenderRNA *brna) @@ -176,6 +189,7 @@ static void rna_def_gpencil_layer(BlenderRNA *brna) /* Name */ prop= RNA_def_property(srna, "info", PROP_STRING, PROP_NONE); RNA_def_property_ui_text(prop, "Info", "Layer name"); + RNA_def_property_string_funcs(prop, NULL, NULL, "rna_GPencilLayer_info_set"); RNA_def_struct_name_property(srna, prop); /* Frames */ diff --git a/source/blender/makesrna/intern/rna_image_api.c b/source/blender/makesrna/intern/rna_image_api.c index 50ce816d7a1..473278440e6 100644 --- a/source/blender/makesrna/intern/rna_image_api.c +++ b/source/blender/makesrna/intern/rna_image_api.c @@ -157,7 +157,7 @@ static void rna_Image_unpack(Image *image, ReportList *reports, int method) return; } else { - /* reports its own error on failier */ + /* reports its own error on failure */ unpackImage (reports, image, method); } } diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 813375a3549..061a21056d0 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -1871,7 +1871,7 @@ static void def_cmp_id_mask(StructRNA *srna) prop = RNA_def_property(srna, "index", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "custom1"); - RNA_def_property_range(prop, 0, 10000); + RNA_def_property_range(prop, 0, 32767); RNA_def_property_ui_text(prop, "Index", "Pass index number to convert to alpha"); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 428599af977..bbbec3bcf9a 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -83,8 +83,8 @@ static EnumPropertyItem collision_bounds_items[] = { {OB_BOUND_SPHERE, "SPHERE", 0, "Sphere", ""}, {OB_BOUND_CYLINDER, "CYLINDER", 0, "Cylinder", ""}, {OB_BOUND_CONE, "CONE", 0, "Cone", ""}, - {OB_BOUND_POLYT, "CONVEX_HULL", 0, "Convex Hull", ""}, - {OB_BOUND_POLYH, "TRIANGLE_MESH", 0, "Triangle Mesh", ""}, + {OB_BOUND_CONVEX_HULL, "CONVEX_HULL", 0, "Convex Hull", ""}, + {OB_BOUND_TRIANGLE_MESH, "TRIANGLE_MESH", 0, "Triangle Mesh", ""}, {OB_BOUND_CAPSULE, "CAPSULE", 0, "Capsule", ""}, //{OB_DYN_MESH, "DYNAMIC_MESH", 0, "Dynamic Mesh", ""}, {0, NULL, 0, NULL, NULL}}; @@ -430,8 +430,8 @@ static EnumPropertyItem *rna_Object_collision_bounds_itemf(bContext *UNUSED(C), EnumPropertyItem *item= NULL; int totitem= 0; - RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_POLYH); - RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_POLYT); + RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_TRIANGLE_MESH); + RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_CONVEX_HULL); if(ob->body_type!=OB_BODY_TYPE_SOFT) { RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_CONE); @@ -934,9 +934,9 @@ static void rna_GameObjectSettings_physics_type_set(PointerRNA *ptr, int value) ob->gameflag &= ~(OB_RIGID_BODY|OB_OCCLUDER|OB_SENSOR|OB_NAVMESH); /* assume triangle mesh, if no bounds chosen for soft body */ - if ((ob->gameflag & OB_BOUNDS) && (ob->boundtype<OB_BOUND_POLYH)) + if ((ob->gameflag & OB_BOUNDS) && (ob->boundtype<OB_BOUND_TRIANGLE_MESH)) { - ob->boundtype=OB_BOUND_POLYH; + ob->boundtype= OB_BOUND_TRIANGLE_MESH; } /* create a BulletSoftBody structure if not already existing */ if (!ob->bsoft) @@ -1804,7 +1804,7 @@ static void rna_def_object(BlenderRNA *brna) {OB_BOUND_SPHERE, "SPHERE", 0, "Sphere", "Draw bounds as sphere"}, {OB_BOUND_CYLINDER, "CYLINDER", 0, "Cylinder", "Draw bounds as cylinder"}, {OB_BOUND_CONE, "CONE", 0, "Cone", "Draw bounds as cone"}, - {OB_BOUND_POLYH, "POLYHEDRON", 0, "Polyhedron", "Draw bounds as polyhedron"}, + {OB_BOUND_TRIANGLE_MESH, "POLYHEDRON", 0, "Polyhedron", "Draw bounds as polyhedron"}, {OB_BOUND_CAPSULE, "CAPSULE", 0, "Capsule", "Draw bounds as capsule"}, {0, NULL, 0, NULL, NULL}}; diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index a6e0e9f3331..c36dca22731 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -53,7 +53,7 @@ static EnumPropertyItem effector_shape_items[] = { #ifdef RNA_RUNTIME -/* type spesific return values only used from functions */ +/* type specific return values only used from functions */ static EnumPropertyItem curve_shape_items[] = { {PFIELD_SHAPE_POINT, "POINT", 0, "Point", ""}, {PFIELD_SHAPE_PLANE, "PLANE", 0, "Plane", ""}, diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c index f0f782fede2..43d5f87f0d5 100644 --- a/source/blender/makesrna/intern/rna_particle.c +++ b/source/blender/makesrna/intern/rna_particle.c @@ -505,6 +505,17 @@ static int rna_PartSettings_is_fluid_get(PointerRNA *ptr) return part->type == PART_FLUID; } +void rna_ParticleSystem_name_set(PointerRNA *ptr, const char *value) +{ + Object *ob= ptr->id.data; + ParticleSystem *part= (ParticleSystem*)ptr->data; + + /* copy the new name into the name slot */ + BLI_strncpy_utf8(part->name, value, sizeof(part->name)); + + BLI_uniquename(&ob->particlesystem, part, "ParticleSystem", '.', offsetof(ParticleSystem, name), sizeof(part->name)); +} + static PointerRNA rna_ParticleSystem_active_particle_target_get(PointerRNA *ptr) { ParticleSystem *psys= (ParticleSystem*)ptr->data; @@ -1467,7 +1478,7 @@ static void rna_def_particle_settings(BlenderRNA *brna) static EnumPropertyItem rot_mode_items[] = { {0, "NONE", 0, "None", ""}, {PART_ROT_NOR, "NOR", 0, "Normal", ""}, - {PART_ROT_VEL, "VEL", 0, "Velocity", ""}, + {PART_ROT_VEL, "VEL", 0, "Velocity / Hair", ""}, {PART_ROT_GLOB_X, "GLOB_X", 0, "Global X", ""}, {PART_ROT_GLOB_Y, "GLOB_Y", 0, "Global Y", ""}, {PART_ROT_GLOB_Z, "GLOB_Z", 0, "Global Z", ""}, @@ -1722,7 +1733,7 @@ static void rna_def_particle_settings(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "rotmode"); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_enum_items(prop, rot_mode_items); - RNA_def_property_ui_text(prop, "Rotation", "Particles initial rotation"); + RNA_def_property_ui_text(prop, "Rotation", "Particle rotation axis"); RNA_def_property_update(prop, 0, "rna_Particle_reset"); prop= RNA_def_property(srna, "angular_velocity_mode", PROP_ENUM, PROP_NONE); @@ -1787,7 +1798,12 @@ static void rna_def_particle_settings(BlenderRNA *brna) prop= RNA_def_property(srna, "use_global_dupli", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "draw", PART_DRAW_GLOBAL_OB); - RNA_def_property_ui_text(prop, "Use Global", "Use object's global coordinates for duplication"); + RNA_def_property_ui_text(prop, "Global", "Use object's global coordinates for duplication"); + RNA_def_property_update(prop, 0, "rna_Particle_redo"); + + prop= RNA_def_property(srna, "use_rotation_dupli", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "draw", PART_DRAW_ROTATE_OB); + RNA_def_property_ui_text(prop, "Rotation", "Use object's rotation for duplication (global x-axis is aligned particle rotation axis)"); RNA_def_property_update(prop, 0, "rna_Particle_redo"); prop= RNA_def_property(srna, "use_render_adaptive", PROP_BOOLEAN, PROP_NONE); @@ -2617,6 +2633,7 @@ static void rna_def_particle_system(BlenderRNA *brna) prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_ui_text(prop, "Name", "Particle system name"); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER|NA_RENAME, NULL); + RNA_def_property_string_funcs(prop, NULL, NULL, "rna_ParticleSystem_name_set"); RNA_def_struct_name_property(srna, prop); /* access to particle settings is redirected through functions */ diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c index b61495edc94..e3a3f93b5f3 100644 --- a/source/blender/makesrna/intern/rna_pose.c +++ b/source/blender/makesrna/intern/rna_pose.c @@ -139,6 +139,17 @@ static void rna_BoneGroup_color_set_set(PointerRNA *ptr, int value) } } +void rna_BoneGroup_name_set(PointerRNA *ptr, const char *value) +{ + Object *ob= ptr->id.data; + bActionGroup *agrp= ptr->data; + + /* copy the new name into the name slot */ + BLI_strncpy_utf8(agrp->name, value, sizeof(agrp->name)); + + BLI_uniquename(&ob->pose->agroups, agrp, "Group", '.', offsetof(bActionGroup, name), sizeof(agrp->name)); +} + static IDProperty *rna_PoseBone_idprops(PointerRNA *ptr, int create) { bPoseChannel *pchan= ptr->data; @@ -657,6 +668,7 @@ static void rna_def_bone_group(BlenderRNA *brna) /* name */ prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_ui_text(prop, "Name", ""); + RNA_def_property_string_funcs(prop, NULL, NULL, "rna_BoneGroup_name_set"); RNA_def_struct_name_property(srna, prop); // TODO: add some runtime-collections stuff to access grouped bones diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index fa2b2eae8db..b505b4b80fa 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -815,8 +815,8 @@ static void rna_SceneRenderLayer_name_set(PointerRNA *ptr, const char *value) { Scene *scene= (Scene*)ptr->id.data; SceneRenderLayer *rl= (SceneRenderLayer*)ptr->data; - BLI_strncpy_utf8(rl->name, value, sizeof(rl->name)); + BLI_uniquename(&scene->r.layers, rl, "RenderLayer", '.', offsetof(SceneRenderLayer, name), sizeof(rl->name)); if(scene->nodetree) { bNode *node; diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c index b350956047c..28b96f3b08b 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.c +++ b/source/blender/makesrna/intern/rna_sculpt_paint.c @@ -131,13 +131,23 @@ static EnumPropertyItem *rna_ParticleEdit_tool_itemf(bContext *C, PointerRNA *UN { Scene *scene= CTX_data_scene(C); Object *ob= (scene->basact)? scene->basact->object: NULL; +#if 0 PTCacheEdit *edit = PE_get_current(scene, ob); - - if(edit && edit->psys) { - if(edit->psys->flag & PSYS_GLOBAL_HAIR) + ParticleSystem *psys= edit ? edit->psys : NULL; +#else + /* use this rather than PE_get_current() - because the editing cache is + * dependant on the cache being updated which can happen after this UI + * draws causing a glitch [#28883] */ + ParticleSystem *psys= psys_get_current(ob); +#endif + + if(psys) { + if(psys->flag & PSYS_GLOBAL_HAIR) { return particle_edit_disconnected_hair_brush_items; - else + } + else { return particle_edit_hair_brush_items; + } } return particle_edit_cache_brush_items; diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index a75166c3e99..b90f10693ac 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -443,7 +443,6 @@ static PointerRNA rna_SequenceEditor_meta_stack_get(CollectionPropertyIterator * static void rna_Sequence_filepath_set(PointerRNA *ptr, const char *value) { Sequence *seq= (Sequence*)(ptr->data); - char dir[FILE_MAX], name[FILE_MAX]; if(seq->type == SEQ_SOUND && seq->sound) { /* for sound strips we need to update the sound as well. @@ -453,11 +452,11 @@ static void rna_Sequence_filepath_set(PointerRNA *ptr, const char *value) PointerRNA id_ptr; RNA_id_pointer_create((ID *)seq->sound, &id_ptr); RNA_string_set(&id_ptr, "filepath", value); + sound_load(G.main, seq->sound); + sound_update_scene_sound(seq->scene_sound, seq->sound); } - BLI_split_dirfile(value, dir, name); - BLI_strncpy(seq->strip->dir, dir, sizeof(seq->strip->dir)); - BLI_strncpy(seq->strip->stripdata->name, name, sizeof(seq->strip->stripdata->name)); + BLI_split_dirfile(value, seq->strip->dir, seq->strip->stripdata->name, sizeof(seq->strip->dir), sizeof(seq->strip->stripdata->name)); } static void rna_Sequence_filepath_get(PointerRNA *ptr, char *value) @@ -479,11 +478,7 @@ static int rna_Sequence_filepath_length(PointerRNA *ptr) static void rna_Sequence_proxy_filepath_set(PointerRNA *ptr, const char *value) { StripProxy *proxy= (StripProxy*)(ptr->data); - char dir[FILE_MAX], name[FILE_MAX]; - - BLI_split_dirfile(value, dir, name); - BLI_strncpy(proxy->dir, dir, sizeof(proxy->dir)); - BLI_strncpy(proxy->file, name, sizeof(proxy->file)); + BLI_split_dirfile(value, proxy->dir, proxy->file, sizeof(proxy->dir), sizeof(proxy->file)); } static void rna_Sequence_proxy_filepath_get(PointerRNA *ptr, char *value) @@ -539,20 +534,13 @@ static int rna_Sequence_input_count_get(PointerRNA *ptr) /*static void rna_SoundSequence_filename_set(PointerRNA *ptr, const char *value) { Sequence *seq= (Sequence*)(ptr->data); - char dir[FILE_MAX], name[FILE_MAX]; - - BLI_split_dirfile(value, dir, name); - BLI_strncpy(seq->strip->dir, dir, sizeof(seq->strip->dir)); - BLI_strncpy(seq->strip->stripdata->name, name, sizeof(seq->strip->stripdata->name)); + BLI_split_dirfile(value, seq->strip->dir, seq->strip->stripdata->name, sizeof(seq->strip->dir), sizeof(seq->strip->stripdata->name)); } static void rna_SequenceElement_filename_set(PointerRNA *ptr, const char *value) { StripElem *elem= (StripElem*)(ptr->data); - char name[FILE_MAX]; - - BLI_split_dirfile(value, NULL, name); - BLI_strncpy(elem->name, name, sizeof(elem->name)); + BLI_split_dirfile(value, NULL, elem->name, 0, sizeof(elem->name)); }*/ static void rna_Sequence_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 35df17b57ea..5de11f7446b 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2521,20 +2521,22 @@ static void rna_def_userdef_system(BlenderRNA *brna) /* locale according to http://www.roseindia.net/tutorials/I18N/locales-list.shtml */ /* if you edit here, please also edit the source/blender/blenfont/intern/blf_lang.c 's locales */ static EnumPropertyItem language_items[] = { + {0, "", 0, "Nearly done", ""}, {0, "DEFAULT", 0, N_("Default (Default)"), ""}, {1, "ENGLISH", 0, N_("English (English)"), "en_US"}, + {8, "FRENCH", 0, N_("French (Français)"), "fr_FR"}, + {9, "SPANISH", 0, N_("Spanish (Español)"), "es_ES"}, + {13, "SIMPLIFIED_CHINESE", 0, N_("Simplified Chinese (简体中文)"), "zh_CN"}, + {0, "", 0, "In progress", ""}, {2, "JAPANESE", 0, N_("Japanese (日本語)"), "ja_JP"}, {3, "DUTCH", 0, N_("Dutch (Nederlandse taal)"), "nl_NL"}, {4, "ITALIAN", 0, N_("Italian (Italiano)"), "it_IT"}, {5, "GERMAN", 0, N_("German (Deutsch)"), "de_DE"}, {6, "FINNISH", 0, N_("Finnish (Suomi)"), "fi_FI"}, {7, "SWEDISH", 0, N_("Swedish (Svenska)"), "sv_SE"}, - {8, "FRENCH", 0, N_("French (Française)"), "fr_FR"}, - {9, "SPANISH", 0, N_("Spanish (Español)"), "es_ES"}, {10, "CATALAN", 0, N_("Catalan (Català)"), "ca_AD"}, {11, "CZECH", 0, N_("Czech (Český)"), "cs_CZ"}, {12, "BRAZILIAN_PORTUGUESE", 0, N_("Brazilian Portuguese (Português do Brasil)"), "pt_BR"}, - {13, "SIMPLIFIED_CHINESE", 0, N_("Simplified Chinese (简体中文)"), "zh_CN"}, {14, "TRADITIONAL_CHINESE", 0, N_("Traditional Chinese (繁體中文)"), "zh_TW"}, {15, "RUSSIAN", 0, N_("Russian (Русский)"), "ru_RU"}, {16, "CROATIAN", 0, N_("Croatian (Hrvatski)"), "hr_HR"}, @@ -2542,11 +2544,14 @@ static void rna_def_userdef_system(BlenderRNA *brna) {18, "UKRAINIAN", 0, N_("Ukrainian (Український)"), "uk_UA"}, {19, "POLISH", 0, N_("Polish (Polski)"), "pl_PL"}, {20, "ROMANIAN", 0, N_("Romanian (Român)"), "ro_RO"}, - {21, "ARABIC", 0, N_("Arabic (العربية)"), "ar_EG"}, + /* using the utf8 flipped form of Arabic (العربية) */ + {21, "ARABIC", 0, N_("Arabic (ﺔﻴﺑﺮﻌﻟﺍ)"), "ar_EG"}, {22, "BULGARIAN", 0, N_("Bulgarian (Български)"), "bg_BG"}, {23, "GREEK", 0, N_("Greek (Ελληνικά)"), "el_GR"}, {24, "KOREAN", 0, N_("Korean (한국 언어)"), "ko_KR"}, - /*{25, "Nepali", 0, N_("Nepali (नेपाली)"), "ne_NP"},*/ + /*{25, "NEPALI", 0, N_("Nepali (नेपाली)"), "ne_NP"},*/ + /* using the utf8 flipped form of Persian (فارسی) */ + {26, "PERSIAN", 0, N_("Persian (ﯽﺳﺭﺎﻓ)"), "fa_PE"}, {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "UserPreferencesSystem", NULL); diff --git a/source/blender/makesrna/rna_cleanup/rna_cleaner.py b/source/blender/makesrna/rna_cleanup/rna_cleaner.py index ae17ade36d7..5df6e9a86ff 100755 --- a/source/blender/makesrna/rna_cleanup/rna_cleaner.py +++ b/source/blender/makesrna/rna_cleanup/rna_cleaner.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python3.1 +#! /usr/bin/env python3 """ This script is used to help cleaning RNA api. diff --git a/source/blender/makesrna/rna_cleanup/rna_cleaner_merge.py b/source/blender/makesrna/rna_cleanup/rna_cleaner_merge.py index 8d2fe07b774..89d95b5a627 100755 --- a/source/blender/makesrna/rna_cleanup/rna_cleaner_merge.py +++ b/source/blender/makesrna/rna_cleanup/rna_cleaner_merge.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python3.1 +#! /usr/bin/env python3 import sys diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c index 486c98f82a0..663faf0ed19 100644 --- a/source/blender/modifiers/intern/MOD_screw.c +++ b/source/blender/modifiers/intern/MOD_screw.c @@ -357,7 +357,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, if (!totedge) { for (i=0; i < totvert; i++, mv_orig++, mv_new++) { copy_v3_v3(mv_new->co, mv_orig->co); - normalize_v3_v3(vc->no, mv_new->co); /* no edges- this is realy a dummy normal */ + normalize_v3_v3(vc->no, mv_new->co); /* no edges- this is really a dummy normal */ } } else { diff --git a/source/blender/modifiers/intern/MOD_simpledeform.c b/source/blender/modifiers/intern/MOD_simpledeform.c index b2e3c9532b6..7c852527c3d 100644 --- a/source/blender/modifiers/intern/MOD_simpledeform.c +++ b/source/blender/modifiers/intern/MOD_simpledeform.c @@ -326,7 +326,7 @@ static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *dm = derivedData; CustomDataMask dataMask = requiredDataMask(ob, md); - /* we implement requiredDataMask but thats not really usefull since + /* we implement requiredDataMask but thats not really useful since mesh_calc_modifiers pass a NULL derivedData */ if(dataMask) dm= get_dm(ob, NULL, dm, NULL, 0); @@ -346,7 +346,7 @@ static void deformVertsEM(ModifierData *md, Object *ob, DerivedMesh *dm = derivedData; CustomDataMask dataMask = requiredDataMask(ob, md); - /* we implement requiredDataMask but thats not really usefull since + /* we implement requiredDataMask but thats not really useful since mesh_calc_modifiers pass a NULL derivedData */ if(dataMask) dm= get_dm(ob, editData, dm, NULL, 0); diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c b/source/blender/nodes/composite/nodes/node_composite_image.c index c18a35fdd98..5e32800fe45 100644 --- a/source/blender/nodes/composite/nodes/node_composite_image.c +++ b/source/blender/nodes/composite/nodes/node_composite_image.c @@ -38,7 +38,7 @@ /* **************** IMAGE (and RenderResult, multilayer image) ******************** */ static bNodeSocketTemplate cmp_node_rlayers_out[]= { - { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Image", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_FLOAT, 0, "Alpha", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_FLOAT, 0, "Z", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, diff --git a/source/blender/nodes/intern/node_common.c b/source/blender/nodes/intern/node_common.c index fa5a3c727c2..56f80840112 100644 --- a/source/blender/nodes/intern/node_common.c +++ b/source/blender/nodes/intern/node_common.c @@ -199,6 +199,9 @@ bNode *node_group_make_from_selected(bNodeTree *ntree) } } + /* node groups don't use internal cached data */ + ntreeFreeCache(ngroup); + /* make group node */ ntemp.type = NODE_GROUP; ntemp.ngroup = ngroup; diff --git a/source/blender/nodes/intern/node_exec.c b/source/blender/nodes/intern/node_exec.c index 608347bc258..154f7613223 100644 --- a/source/blender/nodes/intern/node_exec.c +++ b/source/blender/nodes/intern/node_exec.c @@ -174,11 +174,13 @@ bNodeTreeExec *ntree_exec_begin(bNodeTree *ntree) exec->stacksize = index; exec->stack = MEM_callocN(exec->stacksize * sizeof(bNodeStack), "bNodeStack"); + /* all non-const results are considered inputs */ + for (n=0; n < exec->stacksize; ++n) + exec->stack[n].hasinput = 1; + /* prepare group tree inputs */ for (sock=ntree->inputs.first; sock; sock=sock->next) { - ns = setup_stack(exec->stack, sock); - if (ns->hasoutput) - ns->hasinput = 1; + /* ns = */ setup_stack(exec->stack, sock); } /* prepare all internal nodes for execution */ for(n=0, nodeexec= exec->nodeexec; n < totnodes; ++n, ++nodeexec) { @@ -191,14 +193,12 @@ bNodeTreeExec *ntree_exec_begin(bNodeTree *ntree) node->need_exec= 0; ns = setup_stack(exec->stack, sock); - if (ns->hasoutput) - ns->hasinput = 1; + ns->hasoutput = 1; } /* tag all outputs */ for (sock=node->outputs.first; sock; sock=sock->next) { - ns = setup_stack(exec->stack, sock); - ns->hasoutput = 1; + /* ns = */ setup_stack(exec->stack, sock); } if(node->typeinfo->initexecfunc) diff --git a/source/blender/nodes/intern/node_socket.c b/source/blender/nodes/intern/node_socket.c index aabaf5b86de..51e48b84383 100644 --- a/source/blender/nodes/intern/node_socket.c +++ b/source/blender/nodes/intern/node_socket.c @@ -128,6 +128,21 @@ static bNodeSocketType node_socket_type_boolean = { /* buttonfunc */ NULL, }; +/****************** SHADER ******************/ + +static bNodeSocketType node_socket_type_shader = { + /* type */ SOCK_SHADER, + /* ui_name */ "Shader", + /* ui_description */ "Shader", + /* ui_icon */ 0, + /* ui_color */ {100,200,100,255}, + + /* value_structname */ NULL, + /* value_structsize */ 0, + + /* buttonfunc */ NULL, +}; + /****************** MESH ******************/ static bNodeSocketType node_socket_type_mesh = { @@ -153,6 +168,7 @@ void node_socket_type_init(bNodeSocketType *types[]) INIT_TYPE(rgba); INIT_TYPE(int); INIT_TYPE(boolean); + INIT_TYPE(shader); INIT_TYPE(mesh); #undef INIT_TYPE @@ -241,6 +257,17 @@ struct bNodeSocket *nodeAddOutputRGBA(struct bNodeTree *ntree, struct bNode *nod return sock; } +struct bNodeSocket *nodeAddInputShader(struct bNodeTree *ntree, struct bNode *node, const char *name) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_IN, name, SOCK_SHADER); + return sock; +} +struct bNodeSocket *nodeAddOutputShader(struct bNodeTree *ntree, struct bNode *node, const char *name) +{ + bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_OUT, name, SOCK_SHADER); + return sock; +} + struct bNodeSocket *nodeAddInputMesh(struct bNodeTree *ntree, struct bNode *node, const char *name) { bNodeSocket *sock= nodeAddSocket(ntree, node, SOCK_IN, name, SOCK_MESH); @@ -271,6 +298,9 @@ struct bNodeSocket *node_add_input_from_template(struct bNodeTree *ntree, struct case SOCK_RGBA: sock = nodeAddInputRGBA(ntree, node, stemp->name, stemp->val1, stemp->val2, stemp->val3, stemp->val4); break; + case SOCK_SHADER: + sock = nodeAddInputShader(ntree, node, stemp->name); + break; case SOCK_MESH: sock = nodeAddInputMesh(ntree, node, stemp->name); break; @@ -299,6 +329,9 @@ struct bNodeSocket *node_add_output_from_template(struct bNodeTree *ntree, struc case SOCK_RGBA: sock = nodeAddOutputRGBA(ntree, node, stemp->name); break; + case SOCK_SHADER: + sock = nodeAddOutputShader(ntree, node, stemp->name); + break; case SOCK_MESH: sock = nodeAddOutputMesh(ntree, node, stemp->name); break; diff --git a/source/blender/python/generic/IDProp.c b/source/blender/python/generic/IDProp.c index e6883eb30af..1524812086b 100644 --- a/source/blender/python/generic/IDProp.c +++ b/source/blender/python/generic/IDProp.c @@ -254,7 +254,7 @@ static PyObject *BPy_IDGroup_Map_GetItem(BPy_IDProperty *self, PyObject *item) idprop= IDP_GetPropertyFromGroup(self->prop, name); - if(idprop==NULL) { + if (idprop==NULL) { PyErr_SetString(PyExc_KeyError, "key not in subgroup dict"); return NULL; } @@ -273,20 +273,20 @@ static int idp_sequence_type(PyObject *seq) for (i=0; i < len; i++) { item = PySequence_GetItem(seq, i); if (PyFloat_Check(item)) { - if(type == IDP_IDPARRAY) { /* mixed dict/int */ + if (type == IDP_IDPARRAY) { /* mixed dict/int */ Py_DECREF(item); return -1; } type= IDP_DOUBLE; } else if (PyLong_Check(item)) { - if(type == IDP_IDPARRAY) { /* mixed dict/int */ + if (type == IDP_IDPARRAY) { /* mixed dict/int */ Py_DECREF(item); return -1; } } else if (PyMapping_Check(item)) { - if(i != 0 && (type != IDP_IDPARRAY)) { /* mixed dict/int */ + if (i != 0 && (type != IDP_IDPARRAY)) { /* mixed dict/int */ Py_DECREF(item); return -1; } @@ -309,7 +309,7 @@ const char *BPy_IDProperty_Map_ValidateAndCreate(const char *name, IDProperty *g IDProperty *prop = NULL; IDPropertyTemplate val = {0}; - if(strlen(name) >= sizeof(group->name)) + if (strlen(name) >= sizeof(group->name)) return "the length of IDProperty names is limited to 31 characters"; if (PyFloat_Check(ob)) { @@ -335,7 +335,7 @@ const char *BPy_IDProperty_Map_ValidateAndCreate(const char *name, IDProperty *g PyObject *item; int i; - if((val.array.type= idp_sequence_type(ob)) == -1) + if ((val.array.type= idp_sequence_type(ob)) == -1) return "only floats, ints and dicts are allowed in ID property arrays"; /*validate sequence and derive type. @@ -369,7 +369,7 @@ const char *BPy_IDProperty_Map_ValidateAndCreate(const char *name, IDProperty *g error= BPy_IDProperty_Map_ValidateAndCreate("", prop, item); Py_DECREF(item); - if(error) + if (error) return error; } break; @@ -415,7 +415,7 @@ const char *BPy_IDProperty_Map_ValidateAndCreate(const char *name, IDProperty *g } else return "invalid property value"; - if(group->type==IDP_IDPARRAY) { + if (group->type==IDP_IDPARRAY) { IDP_AppendArray(group, prop); // IDP_FreeProperty(item); // IDP_AppendArray does a shallow copy (memcpy), only free memory MEM_freeN(prop); @@ -598,7 +598,7 @@ static PyObject *BPy_IDGroup_Pop(BPy_IDProperty *self, PyObject *value) idprop= IDP_GetPropertyFromGroup(self->prop, name); - if(idprop) { + if (idprop) { pyform = BPy_IDGroup_MapDataToPy(idprop); if (!pyform) { @@ -1050,7 +1050,7 @@ static PyObject *BPy_IDArray_slice(BPy_IDArray *self, int begin, int end) case IDP_FLOAT: { float *array= (float*)IDP_Array(prop); - for(count = begin; count < end; count++) { + for (count = begin; count < end; count++) { PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(array[count])); } break; @@ -1058,7 +1058,7 @@ static PyObject *BPy_IDArray_slice(BPy_IDArray *self, int begin, int end) case IDP_DOUBLE: { double *array= (double*)IDP_Array(prop); - for(count = begin; count < end; count++) { + for (count = begin; count < end; count++) { PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(array[count])); } break; @@ -1066,7 +1066,7 @@ static PyObject *BPy_IDArray_slice(BPy_IDArray *self, int begin, int end) case IDP_INT: { int *array= (int*)IDP_Array(prop); - for(count = begin; count < end; count++) { + for (count = begin; count < end; count++) { PyTuple_SET_ITEM(tuple, count - begin, PyLong_FromLong(array[count])); } break; @@ -1094,7 +1094,7 @@ static int BPy_IDArray_ass_slice(BPy_IDArray *self, int begin, int end, PyObject alloc_len= size * elem_size; vec= MEM_mallocN(alloc_len, "array assignment"); /* NOTE: we count on int/float being the same size here */ - if(PyC_AsArray(vec, seq, size, py_type, is_double, "slice assignment: ") == -1) { + if (PyC_AsArray(vec, seq, size, py_type, is_double, "slice assignment: ") == -1) { MEM_freeN(vec); return -1; } diff --git a/source/blender/python/generic/bgl.c b/source/blender/python/generic/bgl.c index 35c211d5424..e8dd0274568 100644 --- a/source/blender/python/generic/bgl.c +++ b/source/blender/python/generic/bgl.c @@ -95,7 +95,7 @@ static PyObject *Buffer_to_list_recursive(Buffer *self) { PyObject *list; - if(self->ndimensions > 1) { + if (self->ndimensions > 1) { int i, len= self->dimensions[0]; list= PyList_New(len); @@ -213,7 +213,7 @@ PyTypeObject BGL_bufferType = { static PyObject *Method_##funcname (PyObject *UNUSED(self), PyObject *args) {\ arg_def##nargs arg_list; \ ret_def_##ret; \ - if(!PyArg_ParseTuple(args, arg_str##nargs arg_list, arg_ref##nargs arg_list)) return NULL;\ + if (!PyArg_ParseTuple(args, arg_str##nargs arg_list, arg_ref##nargs arg_list)) return NULL;\ ret_set_##ret gl##funcname (arg_var##nargs arg_list);\ ret_ret_##ret; \ } @@ -222,7 +222,7 @@ static PyObject *Method_##funcname (PyObject *UNUSED(self), PyObject *args) {\ static PyObject *Method_##funcname (PyObject *UNUSED(self), PyObject *args) {\ arg_def##nargs arg_list; \ ret_def_##ret; \ - if(!PyArg_ParseTuple(args, arg_str##nargs arg_list, arg_ref##nargs arg_list)) return NULL;\ + if (!PyArg_ParseTuple(args, arg_str##nargs arg_list, arg_ref##nargs arg_list)) return NULL;\ ret_set_##ret glu##funcname (arg_var##nargs arg_list);\ ret_ret_##ret; \ } @@ -289,7 +289,7 @@ static PyObject *Buffer_new(PyTypeObject *UNUSED(type), PyObject *args, PyObject int type; Py_ssize_t i, ndimensions = 0; - if(kwds && PyDict_Size(kwds)) { + if (kwds && PyDict_Size(kwds)) { PyErr_SetString(PyExc_TypeError, "bgl.Buffer(): takes no keyword args"); return NULL; @@ -307,7 +307,7 @@ static PyObject *Buffer_new(PyTypeObject *UNUSED(type), PyObject *args, PyObject if (PyLong_Check(length_ob)) { ndimensions= 1; - if(((dimensions[0]= PyLong_AsLong(length_ob)) < 1)) { + if (((dimensions[0]= PyLong_AsLong(length_ob)) < 1)) { PyErr_SetString(PyExc_AttributeError, "dimensions must be between 1 and "STRINGIFY(MAX_DIMENSIONS)); return NULL; @@ -332,7 +332,7 @@ static PyObject *Buffer_new(PyTypeObject *UNUSED(type), PyObject *args, PyObject else dimensions[i]= PyLong_AsLong(ob); Py_DECREF(ob); - if(dimensions[i] < 1) { + if (dimensions[i] < 1) { PyErr_SetString(PyExc_AttributeError, "dimensions must be between 1 and "STRINGIFY(MAX_DIMENSIONS)); return NULL; @@ -490,7 +490,7 @@ static int Buffer_ass_slice(Buffer *self, int begin, int end, PyObject *seq) for (count= begin; count < end; count++) { item= PySequence_GetItem(seq, count - begin); - if(item) { + if (item) { err= Buffer_ass_item(self, count, item); Py_DECREF(item); } @@ -1293,7 +1293,7 @@ PyObject *BPyInit_bgl(void) submodule= PyModule_Create(&BGL_module_def); dict= PyModule_GetDict(submodule); - if(PyType_Ready(&BGL_bufferType) < 0) + if (PyType_Ready(&BGL_bufferType) < 0) return NULL; /* should never happen */ diff --git a/source/blender/python/generic/bpy_internal_import.c b/source/blender/python/generic/bpy_internal_import.c index d29bc798399..0346c421f68 100644 --- a/source/blender/python/generic/bpy_internal_import.c +++ b/source/blender/python/generic/bpy_internal_import.c @@ -62,7 +62,7 @@ void bpy_import_init(PyObject *builtins) /* move reload here * XXX, use import hooks */ mod= PyImport_ImportModuleLevel((char *)"imp", NULL, NULL, NULL, 0); - if(mod) { + if (mod) { PyDict_SetItemString(PyModule_GetDict(mod), "reload", item=PyCFunction_New(&bpy_reload_meth, NULL)); Py_DECREF(item); Py_DECREF(mod); } @@ -74,7 +74,7 @@ void bpy_import_init(PyObject *builtins) static void free_compiled_text(Text *text) { - if(text->compiled) { + if (text->compiled) { Py_DECREF((PyObject *)text->compiled); } text->compiled= NULL; @@ -102,7 +102,7 @@ PyObject *bpy_text_import(Text *text) char modulename[24]; int len; - if(!text->compiled) { + if (!text->compiled) { char fn_dummy[256]; bpy_text_filename_get(fn_dummy, sizeof(fn_dummy), text); @@ -110,7 +110,7 @@ PyObject *bpy_text_import(Text *text) text->compiled= Py_CompileString(buf, fn_dummy, Py_file_input); MEM_freeN(buf); - if(PyErr_Occurred()) { + if (PyErr_Occurred()) { PyErr_Print(); PyErr_Clear(); PySys_SetObject("last_traceback", NULL); @@ -135,7 +135,7 @@ PyObject *bpy_text_import_name(char *name, int *found) *found= 0; - if(!maggie) { + if (!maggie) { printf("ERROR: bpy_import_main_set() was not called before running python. this is a bug.\n"); return NULL; } @@ -147,7 +147,7 @@ PyObject *bpy_text_import_name(char *name, int *found) text= BLI_findstring(&maggie->text, txtname, offsetof(ID, name) + 2); - if(!text) + if (!text) return NULL; else *found= 1; @@ -169,7 +169,7 @@ PyObject *bpy_text_reimport(PyObject *module, int *found) //XXX Main *maggie= bpy_import_main ? bpy_import_main:G.main; Main *maggie= bpy_import_main; - if(!maggie) { + if (!maggie) { printf("ERROR: bpy_import_main_set() was not called before running python. this is a bug.\n"); return NULL; } @@ -177,24 +177,24 @@ PyObject *bpy_text_reimport(PyObject *module, int *found) *found= 0; /* get name, filename from the module itself */ - if((name= PyModule_GetName(module)) == NULL) + if ((name= PyModule_GetName(module)) == NULL) return NULL; - if((filepath= (char *)PyModule_GetFilename(module)) == NULL) + if ((filepath= (char *)PyModule_GetFilename(module)) == NULL) return NULL; /* look up the text object */ text= BLI_findstring(&maggie->text, BLI_path_basename(filepath), offsetof(ID, name) + 2); /* uh-oh.... didn't find it */ - if(!text) + if (!text) return NULL; else *found= 1; /* if previously compiled, free the object */ /* (can't see how could be NULL, but check just in case) */ - if(text->compiled){ + if (text->compiled) { Py_DECREF((PyObject *)text->compiled); } @@ -204,7 +204,7 @@ PyObject *bpy_text_reimport(PyObject *module, int *found) MEM_freeN(buf); /* if compile failed.... return this error */ - if(PyErr_Occurred()) { + if (PyErr_Occurred()) { PyErr_Print(); PyErr_Clear(); PySys_SetObject("last_traceback", NULL); @@ -229,14 +229,14 @@ static PyObject *blender_import(PyObject *UNUSED(self), PyObject *args, PyObject //PyObject_Print(args, stderr, 0); static const char *kwlist[]= {"name", "globals", "locals", "fromlist", "level", NULL}; - if(!PyArg_ParseTupleAndKeywords(args, kw, "s|OOOi:bpy_import_meth", (char **)kwlist, + if (!PyArg_ParseTupleAndKeywords(args, kw, "s|OOOi:bpy_import_meth", (char **)kwlist, &name, &globals, &locals, &fromlist, &level)) return NULL; /* import existing builtin modules or modules that have been imported already */ newmodule= PyImport_ImportModuleLevel(name, globals, locals, fromlist, level); - if(newmodule) + if (newmodule) return newmodule; PyErr_Fetch(&exception, &err, &tb); /* get the python error incase we cant import as blender text either */ @@ -244,7 +244,7 @@ static PyObject *blender_import(PyObject *UNUSED(self), PyObject *args, PyObject /* importing from existing modules failed, see if we have this module as blender text */ newmodule= bpy_text_import_name(name, &found); - if(newmodule) {/* found module as blender text, ignore above exception */ + if (newmodule) {/* found module as blender text, ignore above exception */ PyErr_Clear(); Py_XDECREF(exception); Py_XDECREF(err); @@ -278,14 +278,14 @@ static PyObject *blender_reload(PyObject *UNUSED(self), PyObject *module) /* try reimporting from file */ newmodule= PyImport_ReloadModule(module); - if(newmodule) + if (newmodule) return newmodule; /* no file, try importing from memory */ PyErr_Fetch(&exception, &err, &tb); /*restore for probable later use */ newmodule= bpy_text_reimport(module, &found); - if(newmodule) {/* found module as blender text, ignore above exception */ + if (newmodule) {/* found module as blender text, ignore above exception */ PyErr_Clear(); Py_XDECREF(exception); Py_XDECREF(err); @@ -359,10 +359,10 @@ void bpy_text_clear_modules(int clear_all) */ while (PyDict_Next(modules, &pos, &key, &value)) { fname= PyModule_GetFilename(value); - if(fname) { + if (fname) { if (clear_all || ((strstr(fname, SEPSTR))==0)) { /* no path ? */ file_extension= strstr(fname, ".py"); - if(file_extension && (*(file_extension + 3) == '\0' || *(file_extension + 4) == '\0')) { /* .py or pyc extension? */ + if (file_extension && (*(file_extension + 3) == '\0' || *(file_extension + 4) == '\0')) { /* .py or pyc extension? */ /* now we can be fairly sure its a python import from the blendfile */ PyList_Append(list, key); /* free'd with the list */ } @@ -374,7 +374,7 @@ void bpy_text_clear_modules(int clear_all) } /* remove all our modules */ - for(pos=0; pos < PyList_GET_SIZE(list); pos++) { + for (pos=0; pos < PyList_GET_SIZE(list); pos++) { /* PyObject_Print(key, stderr, 0); */ key= PyList_GET_ITEM(list, pos); PyDict_DelItem(modules, key); diff --git a/source/blender/python/generic/noise_py_api.c b/source/blender/python/generic/noise_py_api.c index 7be0998c0a1..2171f1f7f39 100644 --- a/source/blender/python/generic/noise_py_api.c +++ b/source/blender/python/generic/noise_py_api.c @@ -136,7 +136,7 @@ static void init_genrand(unsigned long s) { int j; state[0] = s & 0xffffffffUL; - for(j = 1; j < N; j++) { + for (j = 1; j < N; j++) { state[j] = (1812433253UL * (state[j - 1] ^ (state[j - 1] >> 30)) + j); @@ -157,16 +157,16 @@ static void next_state(void) /* if init_genrand() has not been called, */ /* a default initial seed is used */ - if(initf == 0) + if (initf == 0) init_genrand(5489UL); left = N; next = state; - for(j = N - M + 1; --j; p++) + for (j = N - M + 1; --j; p++) *p = p[M] ^ TWIST(p[0], p[1]); - for(j = M; --j; p++) + for (j = M; --j; p++) *p = p[M - N] ^ TWIST(p[0], p[1]); *p = p[M - N] ^ TWIST(p[0], state[0]); @@ -176,7 +176,7 @@ static void next_state(void) static void setRndSeed(int seed) { - if(seed == 0) + if (seed == 0) init_genrand(time(NULL)); else init_genrand(seed); @@ -187,7 +187,7 @@ static float frand(void) { unsigned long y; - if(--left == 0) + if (--left == 0) next_state(); y = *next++; @@ -207,7 +207,7 @@ static void randuvec(float v[3]) { float r; v[2] = 2.f * frand() - 1.f; - if((r = 1.f - v[2] * v[2]) > 0.f) { + if ((r = 1.f - v[2] * v[2]) > 0.f) { float a = (float)(6.283185307f * frand()); r = (float)sqrt(r); v[0] = (float)(r * cosf(a)); @@ -237,7 +237,7 @@ static PyObject *Noise_random_unit_vector(PyObject *UNUSED(self)) static PyObject *Noise_seed_set(PyObject *UNUSED(self), PyObject *args) { int s; - if(!PyArg_ParseTuple(args, "i:seed_set", &s)) + if (!PyArg_ParseTuple(args, "i:seed_set", &s)) return NULL; setRndSeed(s); Py_RETURN_NONE; @@ -251,7 +251,7 @@ static PyObject *Noise_noise(PyObject *UNUSED(self), PyObject *args) { float x, y, z; int nb = 1; - if(!PyArg_ParseTuple(args, "(fff)|i:noise", &x, &y, &z, &nb)) + if (!PyArg_ParseTuple(args, "(fff)|i:noise", &x, &y, &z, &nb)) return NULL; return PyFloat_FromDouble((2.0f * BLI_gNoise(1.0f, x, y, z, 0, nb) - 1.0f)); @@ -275,7 +275,7 @@ static PyObject *Noise_vector(PyObject *UNUSED(self), PyObject *args) { float x, y, z, v[3]; int nb = 1; - if(!PyArg_ParseTuple(args, "(fff)|i:vector", &x, &y, &z, &nb)) + if (!PyArg_ParseTuple(args, "(fff)|i:vector", &x, &y, &z, &nb)) return NULL; noise_vector(x, y, z, nb, v); return Py_BuildValue("[fff]", v[0], v[1], v[2]); @@ -292,15 +292,15 @@ static float turb(float x, float y, float z, int oct, int hard, int nb, int i; amp = 1.f; out = (float)(2.0f * BLI_gNoise(1.f, x, y, z, 0, nb) - 1.0f); - if(hard) + if (hard) out = (float)fabs(out); - for(i = 1; i < oct; i++) { + for (i = 1; i < oct; i++) { amp *= ampscale; x *= freqscale; y *= freqscale; z *= freqscale; t = (float)(amp * (2.0f * BLI_gNoise(1.f, x, y, z, 0, nb) - 1.0f)); - if(hard) + if (hard) t = (float)fabs(t); out += t; } @@ -312,7 +312,7 @@ static PyObject *Noise_turbulence(PyObject *UNUSED(self), PyObject *args) float x, y, z; int oct, hd, nb = 1; float as = 0.5, fs = 2.0; - if(!PyArg_ParseTuple(args, "(fff)ii|iff:turbulence", &x, &y, &z, &oct, &hd, &nb, &as, &fs)) + if (!PyArg_ParseTuple(args, "(fff)ii|iff:turbulence", &x, &y, &z, &oct, &hd, &nb, &as, &fs)) return NULL; return PyFloat_FromDouble(turb(x, y, z, oct, hd, nb, as, fs)); @@ -329,18 +329,18 @@ static void vTurb(float x, float y, float z, int oct, int hard, int nb, int i; amp = 1.f; noise_vector(x, y, z, nb, v); - if(hard) { + if (hard) { v[0] = (float)fabs(v[0]); v[1] = (float)fabs(v[1]); v[2] = (float)fabs(v[2]); } - for(i = 1; i < oct; i++) { + for (i = 1; i < oct; i++) { amp *= ampscale; x *= freqscale; y *= freqscale; z *= freqscale; noise_vector(x, y, z, nb, t); - if(hard) { + if (hard) { t[0] = (float)fabs(t[0]); t[1] = (float)fabs(t[1]); t[2] = (float)fabs(t[2]); @@ -356,7 +356,7 @@ static PyObject *Noise_turbulence_vector(PyObject *UNUSED(self), PyObject *args) float x, y, z, v[3]; int oct, hd, nb = 1; float as = 0.5, fs = 2.0; - if(!PyArg_ParseTuple(args, "(fff)ii|iff:turbulence_vector", &x, &y, &z, &oct, &hd, &nb, &as, &fs)) + if (!PyArg_ParseTuple(args, "(fff)ii|iff:turbulence_vector", &x, &y, &z, &oct, &hd, &nb, &as, &fs)) return NULL; vTurb(x, y, z, oct, hd, nb, as, fs, v); return Py_BuildValue("[fff]", v[0], v[1], v[2]); @@ -370,7 +370,7 @@ static PyObject *Noise_fractal(PyObject *UNUSED(self), PyObject *args) { float x, y, z, H, lac, oct; int nb = 1; - if(!PyArg_ParseTuple(args, "(fff)fff|i:fractal", &x, &y, &z, &H, &lac, &oct, &nb)) + if (!PyArg_ParseTuple(args, "(fff)fff|i:fractal", &x, &y, &z, &H, &lac, &oct, &nb)) return NULL; return PyFloat_FromDouble(mg_fBm(x, y, z, H, lac, oct, nb)); } @@ -381,7 +381,7 @@ static PyObject *Noise_multi_fractal(PyObject *UNUSED(self), PyObject *args) { float x, y, z, H, lac, oct; int nb = 1; - if(!PyArg_ParseTuple(args, "(fff)fff|i:multi_fractal", &x, &y, &z, &H, &lac, &oct, &nb)) + if (!PyArg_ParseTuple(args, "(fff)fff|i:multi_fractal", &x, &y, &z, &H, &lac, &oct, &nb)) return NULL; return PyFloat_FromDouble(mg_MultiFractal(x, y, z, H, lac, oct, nb)); @@ -393,7 +393,7 @@ static PyObject *Noise_vl_vector(PyObject *UNUSED(self), PyObject *args) { float x, y, z, d; int nt1 = 1, nt2 = 1; - if(!PyArg_ParseTuple(args, "(fff)f|ii:vl_vector", &x, &y, &z, &d, &nt1, &nt2)) + if (!PyArg_ParseTuple(args, "(fff)f|ii:vl_vector", &x, &y, &z, &d, &nt1, &nt2)) return NULL; return PyFloat_FromDouble(mg_VLNoise(x, y, z, d, nt1, nt2)); } @@ -404,7 +404,7 @@ static PyObject *Noise_hetero_terrain(PyObject *UNUSED(self), PyObject *args) { float x, y, z, H, lac, oct, ofs; int nb = 1; - if(!PyArg_ParseTuple(args, "(fff)ffff|i:hetero_terrain", &x, &y, &z, &H, &lac, &oct, &ofs, &nb)) + if (!PyArg_ParseTuple(args, "(fff)ffff|i:hetero_terrain", &x, &y, &z, &H, &lac, &oct, &ofs, &nb)) return NULL; return PyFloat_FromDouble(mg_HeteroTerrain(x, y, z, H, lac, oct, ofs, nb)); @@ -416,7 +416,7 @@ static PyObject *Noise_hybrid_multi_fractal(PyObject *UNUSED(self), PyObject *ar { float x, y, z, H, lac, oct, ofs, gn; int nb = 1; - if(!PyArg_ParseTuple(args, "(fff)fffff|i:hybrid_multi_fractal", &x, &y, &z, &H, &lac, &oct, &ofs, &gn, &nb)) + if (!PyArg_ParseTuple(args, "(fff)fffff|i:hybrid_multi_fractal", &x, &y, &z, &H, &lac, &oct, &ofs, &gn, &nb)) return NULL; return PyFloat_FromDouble(mg_HybridMultiFractal(x, y, z, H, lac, oct, ofs, gn, nb)); @@ -428,7 +428,7 @@ static PyObject *Noise_ridged_multi_fractal(PyObject *UNUSED(self), PyObject *ar { float x, y, z, H, lac, oct, ofs, gn; int nb = 1; - if(!PyArg_ParseTuple(args, "(fff)fffff|i:ridged_multi_fractal", &x, &y, &z, &H, &lac, &oct, &ofs, &gn, &nb)) + if (!PyArg_ParseTuple(args, "(fff)fffff|i:ridged_multi_fractal", &x, &y, &z, &H, &lac, &oct, &ofs, &gn, &nb)) return NULL; return PyFloat_FromDouble(mg_RidgedMultiFractal(x, y, z, H, lac, oct, ofs, gn, nb)); } @@ -440,7 +440,7 @@ static PyObject *Noise_voronoi(PyObject *UNUSED(self), PyObject *args) float x, y, z, da[4], pa[12]; int dtype = 0; float me = 2.5; /* default minkovsky exponent */ - if(!PyArg_ParseTuple(args, "(fff)|if:voronoi", &x, &y, &z, &dtype, &me)) + if (!PyArg_ParseTuple(args, "(fff)|if:voronoi", &x, &y, &z, &dtype, &me)) return NULL; voronoi(x, y, z, da, pa, me, dtype); return Py_BuildValue("[[ffff][[fff][fff][fff][fff]]]", @@ -455,7 +455,7 @@ static PyObject *Noise_voronoi(PyObject *UNUSED(self), PyObject *args) static PyObject *Noise_cell(PyObject *UNUSED(self), PyObject *args) { float x, y, z; - if(!PyArg_ParseTuple(args, "(fff):cell", &x, &y, &z)) + if (!PyArg_ParseTuple(args, "(fff):cell", &x, &y, &z)) return NULL; return PyFloat_FromDouble(cellNoise(x, y, z)); @@ -466,7 +466,7 @@ static PyObject *Noise_cell(PyObject *UNUSED(self), PyObject *args) static PyObject *Noise_cell_vector(PyObject *UNUSED(self), PyObject *args) { float x, y, z, ca[3]; - if(!PyArg_ParseTuple(args, "(fff):cell_vector", &x, &y, &z)) + if (!PyArg_ParseTuple(args, "(fff):cell_vector", &x, &y, &z)) return NULL; cellNoiseV(x, y, z, ca); return Py_BuildValue("[fff]", ca[0], ca[1], ca[2]); @@ -698,7 +698,7 @@ PyObject *BPyInit_noise(void) setRndSeed(0); /* Constant noisetype dictionary */ - if(submodule) { + if (submodule) { static PyStructSequence_Field noise_types_fields[] = { {(char *)"BLENDER", NULL}, {(char *)"STDPERLIN", NULL}, @@ -747,7 +747,7 @@ PyObject *BPyInit_noise(void) PyModule_AddObject(submodule, "types", noise_types); } - if(submodule) { + if (submodule) { static PyStructSequence_Field distance_metrics_fields[] = { {(char *)"DISTANCE", NULL}, {(char *)"DISTANCE_SQUARED", NULL}, diff --git a/source/blender/python/generic/py_capi_utils.c b/source/blender/python/generic/py_capi_utils.c index bf14102bb0d..1bccc8a24c4 100644 --- a/source/blender/python/generic/py_capi_utils.c +++ b/source/blender/python/generic/py_capi_utils.c @@ -43,13 +43,13 @@ int PyC_AsArray(void *array, PyObject *value, const int length, const PyTypeObje int value_len; int i; - if(!(value_fast=PySequence_Fast(value, error_prefix))) { + if (!(value_fast=PySequence_Fast(value, error_prefix))) { return -1; } value_len= PySequence_Fast_GET_SIZE(value_fast); - if(value_len != length) { + if (value_len != length) { Py_DECREF(value); PyErr_Format(PyExc_TypeError, "%.200s: invalid sequence length. expected %d, got %d", @@ -58,30 +58,30 @@ int PyC_AsArray(void *array, PyObject *value, const int length, const PyTypeObje } /* for each type */ - if(type == &PyFloat_Type) { - if(is_double) { + if (type == &PyFloat_Type) { + if (is_double) { double *array_double= array; - for(i=0; i<length; i++) { + for (i=0; i<length; i++) { array_double[i]= PyFloat_AsDouble(PySequence_Fast_GET_ITEM(value_fast, i)); } } else { float *array_float= array; - for(i=0; i<length; i++) { + for (i=0; i<length; i++) { array_float[i]= PyFloat_AsDouble(PySequence_Fast_GET_ITEM(value_fast, i)); } } } - else if(type == &PyLong_Type) { + else if (type == &PyLong_Type) { /* could use is_double for 'long int' but no use now */ int *array_int= array; - for(i=0; i<length; i++) { + for (i=0; i<length; i++) { array_int[i]= PyLong_AsSsize_t(PySequence_Fast_GET_ITEM(value_fast, i)); } } - else if(type == &PyBool_Type) { + else if (type == &PyBool_Type) { int *array_bool= array; - for(i=0; i<length; i++) { + for (i=0; i<length; i++) { array_bool[i]= (PyLong_AsSsize_t(PySequence_Fast_GET_ITEM(value_fast, i)) != 0); } } @@ -95,7 +95,7 @@ int PyC_AsArray(void *array, PyObject *value, const int length, const PyTypeObje Py_DECREF(value_fast); - if(PyErr_Occurred()) { + if (PyErr_Occurred()) { PyErr_Format(PyExc_TypeError, "%s: one or more items could not be used as a %s", error_prefix, type->tp_name); @@ -119,7 +119,7 @@ void PyC_ObSpit(const char *name, PyObject *var) fprintf(stderr, " ptr:%p", (void *)var); fprintf(stderr, " type:"); - if(Py_TYPE(var)) + if (Py_TYPE(var)) fprintf(stderr, "%s", Py_TYPE(var)->tp_name); else fprintf(stderr, "<NIL>"); @@ -134,7 +134,7 @@ void PyC_LineSpit(void) int lineno; /* Note, allow calling from outside python (RNA) */ - if(!PYC_INTERPRETER_ACTIVE) { + if (!PYC_INTERPRETER_ACTIVE) { fprintf(stderr, "python line lookup failed, interpreter inactive\n"); return; } @@ -162,18 +162,18 @@ void PyC_FileAndNum(const char **filename, int *lineno) } /* when executing a module */ - if(filename && *filename == NULL) { + if (filename && *filename == NULL) { /* try an alternative method to get the filename - module based * references below are all borrowed (double checked) */ PyObject *mod_name= PyDict_GetItemString(PyEval_GetGlobals(), "__name__"); - if(mod_name) { + if (mod_name) { PyObject *mod= PyDict_GetItem(PyImport_GetModuleDict(), mod_name); - if(mod) { + if (mod) { *filename= PyModule_GetFilename(mod); } /* unlikely, fallback */ - if(*filename == NULL) { + if (*filename == NULL) { *filename= _PyUnicode_AsString(mod_name); } } @@ -225,7 +225,7 @@ PyObject *PyC_Err_Format_Prefix(PyObject *exception_type_prefix, const char *for error_value_prefix= PyUnicode_FromFormatV(format, args); /* can fail and be NULL */ va_end(args); - if(PyErr_Occurred()) { + if (PyErr_Occurred()) { PyObject *error_type, *error_value, *error_traceback; PyErr_Fetch(&error_type, &error_value, &error_traceback); PyErr_Format(exception_type_prefix, @@ -259,7 +259,7 @@ PyObject *PyC_ExceptionBuffer(void) PyObject *format_tb_func= NULL; PyObject *ret= NULL; - if(! (traceback_mod= PyImport_ImportModule("traceback")) ) { + if (! (traceback_mod= PyImport_ImportModule("traceback")) ) { goto error_cleanup; } else if (! (format_tb_func= PyObject_GetAttrString(traceback_mod, "format_exc"))) { @@ -268,7 +268,7 @@ PyObject *PyC_ExceptionBuffer(void) ret= PyObject_CallObject(format_tb_func, NULL); - if(ret == Py_None) { + if (ret == Py_None) { Py_DECREF(ret); ret= NULL; } @@ -303,7 +303,7 @@ PyObject *PyC_ExceptionBuffer(void) * string_io = io.StringIO() */ - if(! (string_io_mod= PyImport_ImportModule("io")) ) { + if (! (string_io_mod= PyImport_ImportModule("io")) ) { goto error_cleanup; } else if (! (string_io = PyObject_CallMethod(string_io_mod, (char *)"StringIO", NULL))) { @@ -360,7 +360,7 @@ const char *PyC_UnicodeAsByte(PyObject *py_str, PyObject **coerce) result= _PyUnicode_AsString(py_str); - if(result) { + if (result) { /* 99% of the time this is enough but we better support non unicode * chars since blender doesnt limit this */ return result; @@ -368,7 +368,7 @@ const char *PyC_UnicodeAsByte(PyObject *py_str, PyObject **coerce) else { PyErr_Clear(); - if(PyBytes_Check(py_str)) { + if (PyBytes_Check(py_str)) { return PyBytes_AS_STRING(py_str); } else { @@ -380,7 +380,7 @@ const char *PyC_UnicodeAsByte(PyObject *py_str, PyObject **coerce) PyObject *PyC_UnicodeFromByte(const char *str) { PyObject *result= PyUnicode_FromString(str); - if(result) { + if (result) { /* 99% of the time this is enough but we better support non unicode * chars since blender doesnt limit this */ return result; @@ -412,7 +412,7 @@ PyObject *PyC_DefaultNameSpace(const char *filename) PyDict_SetItemString(interp->modules, "__main__", mod_main); Py_DECREF(mod_main); /* sys.modules owns now */ PyModule_AddStringConstant(mod_main, "__name__", "__main__"); - if(filename) + if (filename) PyModule_AddStringConstant(mod_main, "__file__", filename); /* __file__ only for nice UI'ness */ PyModule_AddObject(mod_main, "__builtins__", interp->builtins); Py_INCREF(interp->builtins); /* AddObject steals a reference */ @@ -437,7 +437,7 @@ void PyC_MainModule_Restore(PyObject *main_mod) /* must be called before Py_Initialize, expects output of BLI_get_folder(BLENDER_PYTHON, NULL) */ void PyC_SetHomePath(const char *py_path_bundle) { - if(py_path_bundle==NULL) { + if (py_path_bundle==NULL) { /* Common enough to have bundled *nix python but complain on OSX/Win */ #if defined(__APPLE__) || defined(_WIN32) fprintf(stderr, "Warning! bundled python not found and is expected on this platform. (if you built with CMake: 'install' target may have not been built)\n"); @@ -450,7 +450,7 @@ void PyC_SetHomePath(const char *py_path_bundle) #ifdef __APPLE__ /* OSX allow file/directory names to contain : character (represented as / in the Finder) but current Python lib (release 3.1.1) doesn't handle these correctly */ - if(strchr(py_path_bundle, ':')) + if (strchr(py_path_bundle, ':')) printf("Warning : Blender application is located in a path containing : or / chars\ \nThis may make python import function fail\n"); #endif @@ -481,7 +481,7 @@ void PyC_RunQuicky(const char *filepath, int n, ...) { FILE *fp= fopen(filepath, "r"); - if(fp) { + if (fp) { PyGILState_STATE gilstate= PyGILState_Ensure(); va_list vargs; @@ -508,13 +508,13 @@ void PyC_RunQuicky(const char *filepath, int n, ...) ret= PyObject_CallFunction(calcsize, (char *)"s", format); - if(ret) { + if (ret) { sizes[i]= PyLong_AsSsize_t(ret); Py_DECREF(ret); ret = PyObject_CallFunction(unpack, (char *)"sy#", format, (char *)ptr, sizes[i]); } - if(ret == NULL) { + if (ret == NULL) { printf("PyC_InlineRun error, line:%d\n", __LINE__); PyErr_Print(); PyErr_Clear(); @@ -525,7 +525,7 @@ void PyC_RunQuicky(const char *filepath, int n, ...) sizes[i]= 0; } else { - if(PyTuple_GET_SIZE(ret) == 1) { + if (PyTuple_GET_SIZE(ret) == 1) { /* convenience, convert single tuples into single values */ PyObject *tmp= PyTuple_GET_ITEM(ret, 0); Py_INCREF(tmp); @@ -545,13 +545,13 @@ void PyC_RunQuicky(const char *filepath, int n, ...) fclose(fp); - if(py_result) { + if (py_result) { /* we could skip this but then only slice assignment would work * better not be so strict */ values= PyDict_GetItemString(py_dict, "values"); - if(values && PyList_Check(values)) { + if (values && PyList_Check(values)) { /* dont use the result */ Py_DECREF(py_result); @@ -567,10 +567,10 @@ void PyC_RunQuicky(const char *filepath, int n, ...) PyObject *item_new; /* prepend the string formatting and remake the tuple */ item= PyList_GET_ITEM(values, i); - if(PyTuple_CheckExact(item)) { + if (PyTuple_CheckExact(item)) { int ofs= PyTuple_GET_SIZE(item); item_new= PyTuple_New(ofs + 1); - while(ofs--) { + while (ofs--) { PyObject *member= PyTuple_GET_ITEM(item, ofs); PyTuple_SET_ITEM(item_new, ofs + 1, member); Py_INCREF(member); @@ -584,7 +584,7 @@ void PyC_RunQuicky(const char *filepath, int n, ...) ret = PyObject_Call(pack, item_new, NULL); - if(ret) { + if (ret) { /* copy the bytes back into memory */ memcpy(ptr, PyBytes_AS_STRING(ret), sizes[i]); Py_DECREF(ret); diff --git a/source/blender/python/intern/bpy.c b/source/blender/python/intern/bpy.c index a9b75734288..b77270bddf7 100644 --- a/source/blender/python/intern/bpy.c +++ b/source/blender/python/intern/bpy.c @@ -111,7 +111,7 @@ static PyObject *bpy_blend_paths(PyObject *UNUSED(self), PyObject *args, PyObjec list= PyList_New(0); - for(BLI_bpathIterator_init(&bpi, G.main, G.main->name, 0); !BLI_bpathIterator_isDone(bpi); BLI_bpathIterator_step(bpi)) { + for (BLI_bpathIterator_init(&bpi, G.main, G.main->name, 0); !BLI_bpathIterator_isDone(bpi); BLI_bpathIterator_step(bpi)) { /* build the list */ if (absolute) { BLI_bpathIterator_getPathExpanded(bpi, filepath_expanded); @@ -151,10 +151,10 @@ static PyObject *bpy_user_resource(PyObject *UNUSED(self), PyObject *args, PyObj return NULL; /* stupid string compare */ - if (!strcmp(type, "DATAFILES")) folder_id= BLENDER_USER_DATAFILES; - else if(!strcmp(type, "CONFIG")) folder_id= BLENDER_USER_CONFIG; - else if(!strcmp(type, "SCRIPTS")) folder_id= BLENDER_USER_SCRIPTS; - else if(!strcmp(type, "AUTOSAVE")) folder_id= BLENDER_USER_AUTOSAVE; + if (!strcmp(type, "DATAFILES")) folder_id= BLENDER_USER_DATAFILES; + else if (!strcmp(type, "CONFIG")) folder_id= BLENDER_USER_CONFIG; + else if (!strcmp(type, "SCRIPTS")) folder_id= BLENDER_USER_SCRIPTS; + else if (!strcmp(type, "AUTOSAVE")) folder_id= BLENDER_USER_AUTOSAVE; else { PyErr_SetString(PyExc_ValueError, "invalid resource argument"); return NULL; @@ -195,9 +195,9 @@ static PyObject *bpy_resource_path(PyObject *UNUSED(self), PyObject *args, PyObj return NULL; /* stupid string compare */ - if (!strcmp(type, "USER")) folder_id= BLENDER_RESOURCE_PATH_USER; - else if(!strcmp(type, "LOCAL")) folder_id= BLENDER_RESOURCE_PATH_LOCAL; - else if(!strcmp(type, "SYSTEM")) folder_id= BLENDER_RESOURCE_PATH_SYSTEM; + if (!strcmp(type, "USER")) folder_id= BLENDER_RESOURCE_PATH_USER; + else if (!strcmp(type, "LOCAL")) folder_id= BLENDER_RESOURCE_PATH_LOCAL; + else if (!strcmp(type, "SYSTEM")) folder_id= BLENDER_RESOURCE_PATH_SYSTEM; else { PyErr_SetString(PyExc_ValueError, "invalid resource argument"); return NULL; @@ -217,7 +217,7 @@ static PyMethodDef meth_bpy_resource_path= {"resource_path", (PyCFunction)bpy_re static PyObject *bpy_import_test(const char *modname) { PyObject *mod= PyImport_ImportModuleLevel((char *)modname, NULL, NULL, NULL, 0); - if(mod) { + if (mod) { Py_DECREF(mod); } else { @@ -240,7 +240,7 @@ void BPy_init_modules(void) /* Needs to be first since this dir is needed for future modules */ char *modpath= BLI_get_folder(BLENDER_SYSTEM_SCRIPTS, "modules"); - if(modpath) { + if (modpath) { // printf("bpy: found module path '%s'.\n", modpath); PyObject *sys_path= PySys_GetObject("path"); /* borrow */ PyObject *py_modpath= PyUnicode_FromString(modpath); diff --git a/source/blender/python/intern/bpy_app.c b/source/blender/python/intern/bpy_app.c index 079d5223f58..bd7be8dd9c5 100644 --- a/source/blender/python/intern/bpy_app.c +++ b/source/blender/python/intern/bpy_app.c @@ -168,13 +168,13 @@ static int bpy_app_debug_set(PyObject *UNUSED(self), PyObject *value, void *UNUS { int param= PyObject_IsTrue(value); - if(param < 0) { + if (param < 0) { PyErr_SetString(PyExc_TypeError, "bpy.app.debug can only be True/False"); return -1; } - if(param) G.f |= G_DEBUG; - else G.f &= ~G_DEBUG; + if (param) G.f |= G_DEBUG; + else G.f &= ~G_DEBUG; return 0; } @@ -230,7 +230,7 @@ static void py_struct_seq_getset_init(void) /* tricky dynamic members, not to py-spec! */ PyGetSetDef *getset; - for(getset= bpy_app_getsets; getset->name; getset++) { + for (getset= bpy_app_getsets; getset->name; getset++) { PyDict_SetItemString(BlenderAppType.tp_dict, getset->name, PyDescr_NewGetSet(&BlenderAppType, getset)); } } diff --git a/source/blender/python/intern/bpy_app_handlers.c b/source/blender/python/intern/bpy_app_handlers.c index cd3d78410f2..1a50ae79dc7 100644 --- a/source/blender/python/intern/bpy_app_handlers.c +++ b/source/blender/python/intern/bpy_app_handlers.c @@ -77,13 +77,13 @@ static PyObject *make_app_cb_info(void) return NULL; } - for(pos= 0; pos < BLI_CB_EVT_TOT; pos++) { - if(app_cb_info_fields[pos].name == NULL) { + for (pos= 0; pos < BLI_CB_EVT_TOT; pos++) { + if (app_cb_info_fields[pos].name == NULL) { Py_FatalError("invalid callback slots 1"); } PyStructSequence_SET_ITEM(app_cb_info, pos, (py_cb_array[pos]= PyList_New(0))); } - if(app_cb_info_fields[pos].name != NULL) { + if (app_cb_info_fields[pos].name != NULL) { Py_FatalError("invalid callback slots 2"); } @@ -103,12 +103,12 @@ PyObject *BPY_app_handlers_struct(void) BlenderAppCbType.tp_new= NULL; /* assign the C callbacks */ - if(ret) { + if (ret) { static bCallbackFuncStore funcstore_array[BLI_CB_EVT_TOT]= {{NULL}}; bCallbackFuncStore *funcstore; int pos= 0; - for(pos= 0; pos < BLI_CB_EVT_TOT; pos++) { + for (pos= 0; pos < BLI_CB_EVT_TOT; pos++) { funcstore= &funcstore_array[pos]; funcstore->func= bpy_app_generic_callback; funcstore->alloc= 0; @@ -124,7 +124,7 @@ void BPY_app_handlers_reset(void) { int pos= 0; - for(pos= 0; pos < BLI_CB_EVT_TOT; pos++) { + for (pos= 0; pos < BLI_CB_EVT_TOT; pos++) { PyList_SetSlice(py_cb_array[pos], 0, PY_SSIZE_T_MAX, NULL); } } @@ -134,7 +134,7 @@ void bpy_app_generic_callback(struct Main *UNUSED(main), struct ID *id, void *ar { PyObject *cb_list= py_cb_array[GET_INT_FROM_POINTER(arg)]; Py_ssize_t cb_list_len; - if((cb_list_len= PyList_GET_SIZE(cb_list)) > 0) { + if ((cb_list_len= PyList_GET_SIZE(cb_list)) > 0) { PyGILState_STATE gilstate= PyGILState_Ensure(); PyObject* args= PyTuple_New(1); // save python creating each call @@ -143,7 +143,7 @@ void bpy_app_generic_callback(struct Main *UNUSED(main), struct ID *id, void *ar Py_ssize_t pos; /* setup arguments */ - if(id) { + if (id) { PointerRNA id_ptr; RNA_id_pointer_create(id, &id_ptr); PyTuple_SET_ITEM(args, 0, pyrna_struct_CreatePyObject(&id_ptr)); diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c index 319790340ca..c5d15145ab2 100644 --- a/source/blender/python/intern/bpy_driver.c +++ b/source/blender/python/intern/bpy_driver.c @@ -99,7 +99,7 @@ void BPY_driver_reset(void) PyGILState_STATE gilstate; int use_gil= 1; /* !PYC_INTERPRETER_ACTIVE; */ - if(use_gil) + if (use_gil) gilstate= PyGILState_Ensure(); if (bpy_pydriver_Dict) { /* free the global dict used by pydrivers */ @@ -108,7 +108,7 @@ void BPY_driver_reset(void) bpy_pydriver_Dict= NULL; } - if(use_gil) + if (use_gil) PyGILState_Release(gilstate); return; @@ -157,14 +157,14 @@ float BPY_driver_exec(ChannelDriver *driver) if ((expr == NULL) || (expr[0]=='\0')) return 0.0f; - if(!(G.f & G_SCRIPT_AUTOEXEC)) { + if (!(G.f & G_SCRIPT_AUTOEXEC)) { printf("skipping driver '%s', automatic scripts are disabled\n", driver->expression); return 0.0f; } use_gil= 1; /* !PYC_INTERPRETER_ACTIVE; */ - if(use_gil) + if (use_gil) gilstate= PyGILState_Ensure(); /* needed since drivers are updated directly after undo where 'main' is @@ -175,17 +175,17 @@ float BPY_driver_exec(ChannelDriver *driver) if (!bpy_pydriver_Dict) { if (bpy_pydriver_create_dict() != 0) { fprintf(stderr, "Pydriver error: couldn't create Python dictionary"); - if(use_gil) + if (use_gil) PyGILState_Release(gilstate); return 0.0f; } } - if(driver->expr_comp==NULL) + if (driver->expr_comp==NULL) driver->flag |= DRIVER_FLAG_RECOMPILE; /* compile the expression first if it hasn't been compiled or needs to be rebuilt */ - if(driver->flag & DRIVER_FLAG_RECOMPILE) { + if (driver->flag & DRIVER_FLAG_RECOMPILE) { Py_XDECREF(driver->expr_comp); driver->expr_comp= PyTuple_New(2); @@ -199,7 +199,7 @@ float BPY_driver_exec(ChannelDriver *driver) expr_code= PyTuple_GET_ITEM(((PyObject *)driver->expr_comp), 0); } - if(driver->flag & DRIVER_FLAG_RENAMEVAR) { + if (driver->flag & DRIVER_FLAG_RENAMEVAR) { /* may not be set */ expr_vars= PyTuple_GET_ITEM(((PyObject *)driver->expr_comp), 1); Py_XDECREF(expr_vars); @@ -260,7 +260,7 @@ float BPY_driver_exec(ChannelDriver *driver) if (retval == NULL) { pydriver_error(driver); } - else if((result= PyFloat_AsDouble(retval)) == -1.0 && PyErr_Occurred()) { + else if ((result= PyFloat_AsDouble(retval)) == -1.0 && PyErr_Occurred()) { pydriver_error(driver); Py_DECREF(retval); result= 0.0; @@ -271,10 +271,10 @@ float BPY_driver_exec(ChannelDriver *driver) Py_DECREF(retval); } - if(use_gil) + if (use_gil) PyGILState_Release(gilstate); - if(finite(result)) { + if (finite(result)) { return (float)result; } else { diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 429a74fddc0..aaa813137c6 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -100,14 +100,14 @@ void bpy_context_set(bContext *C, PyGILState_STATE *gilstate) { py_call_level++; - if(gilstate) + if (gilstate) *gilstate= PyGILState_Ensure(); - if(py_call_level==1) { + if (py_call_level==1) { bpy_context_update(C); #ifdef TIME_PY_RUN - if(bpy_timer_count==0) { + if (bpy_timer_count==0) { /* record time from the beginning */ bpy_timer= PIL_check_seconds_timer(); bpy_timer_run= bpy_timer_run_tot= 0.0; @@ -125,13 +125,13 @@ void bpy_context_clear(bContext *UNUSED(C), PyGILState_STATE *gilstate) { py_call_level--; - if(gilstate) + if (gilstate) PyGILState_Release(*gilstate); - if(py_call_level < 0) { + if (py_call_level < 0) { fprintf(stderr, "ERROR: Python context internal state bug. this should not happen!\n"); } - else if(py_call_level==0) { + else if (py_call_level==0) { // XXX - Calling classes currently wont store the context :\, cant set NULL because of this. but this is very flakey still. //BPy_SetContext(NULL); //bpy_import_main_set(NULL); @@ -146,7 +146,7 @@ void bpy_context_clear(bContext *UNUSED(C), PyGILState_STATE *gilstate) void BPY_text_free_code(Text *text) { - if(text->compiled) { + if (text->compiled) { Py_DECREF((PyObject *)text->compiled); text->compiled= NULL; } @@ -273,10 +273,10 @@ void BPY_python_end(void) printf("*bpy stats* - "); printf("tot exec: %d, ", bpy_timer_count); printf("tot run: %.4fsec, ", bpy_timer_run_tot); - if(bpy_timer_count>0) + if (bpy_timer_count>0) printf("average run: %.6fsec, ", (bpy_timer_run_tot/bpy_timer_count)); - if(bpy_timer>0.0) + if (bpy_timer>0.0) printf("tot usage %.4f%%", (bpy_timer_run_tot/bpy_timer)*100.0); printf("\n"); @@ -292,7 +292,7 @@ static void python_script_error_jump_text(struct Text *text) int lineno; int offset; python_script_error_jump(text->id.name+2, &lineno, &offset); - if(lineno != -1) { + if (lineno != -1) { /* select the line with the error */ txt_move_to(text, lineno - 1, INT_MAX, FALSE); txt_move_to(text, lineno - 1, offset, TRUE); @@ -332,22 +332,22 @@ static int python_script_exec(bContext *C, const char *fn, struct Text *text, st char fn_dummy[FILE_MAXDIR]; bpy_text_filename_get(fn_dummy, sizeof(fn_dummy), text); - if(text->compiled == NULL) { /* if it wasn't already compiled, do it now */ + if (text->compiled == NULL) { /* if it wasn't already compiled, do it now */ char *buf= txt_to_buf(text); text->compiled= Py_CompileString(buf, fn_dummy, Py_file_input); MEM_freeN(buf); - if(PyErr_Occurred()) { - if(do_jump) { + if (PyErr_Occurred()) { + if (do_jump) { python_script_error_jump_text(text); } BPY_text_free_code(text); } } - if(text->compiled) { + if (text->compiled) { py_dict= PyC_DefaultNameSpace(fn_dummy); py_result= PyEval_EvalCode(text->compiled, py_dict, py_dict); } @@ -356,7 +356,7 @@ static int python_script_exec(bContext *C, const char *fn, struct Text *text, st else { FILE *fp= fopen(fn, "r"); - if(fp) { + if (fp) { py_dict= PyC_DefaultNameSpace(fn); #ifdef _WIN32 @@ -390,8 +390,8 @@ static int python_script_exec(bContext *C, const char *fn, struct Text *text, st } if (!py_result) { - if(text) { - if(do_jump) { + if (text) { + if (do_jump) { python_script_error_jump_text(text); } } @@ -401,7 +401,7 @@ static int python_script_exec(bContext *C, const char *fn, struct Text *text, st Py_DECREF(py_result); } - if(py_dict) { + if (py_dict) { #ifdef PYMODULE_CLEAR_WORKAROUND PyModuleObject *mmod= (PyModuleObject *)PyDict_GetItemString(PyThreadState_GET()->interp->modules, "__main__"); PyObject *dict_back= mmod->md_dict; @@ -450,7 +450,7 @@ int BPY_button_exec(bContext *C, const char *expr, double *value, const short ve if (!value || !expr) return -1; - if(expr[0]=='\0') { + if (expr[0]=='\0') { *value= 0.0; return error_ret; } @@ -479,13 +479,13 @@ int BPY_button_exec(bContext *C, const char *expr, double *value, const short ve else { double val; - if(PyTuple_Check(retval)) { + if (PyTuple_Check(retval)) { /* Users my have typed in 10km, 2m * add up all values */ int i; val= 0.0; - for(i=0; i<PyTuple_GET_SIZE(retval); i++) { + for (i=0; i<PyTuple_GET_SIZE(retval); i++) { val+= PyFloat_AsDouble(PyTuple_GET_ITEM(retval, i)); } } @@ -494,7 +494,7 @@ int BPY_button_exec(bContext *C, const char *expr, double *value, const short ve } Py_DECREF(retval); - if(val==-1 && PyErr_Occurred()) { + if (val==-1 && PyErr_Occurred()) { error_ret= -1; } else if (!finite(val)) { @@ -505,8 +505,8 @@ int BPY_button_exec(bContext *C, const char *expr, double *value, const short ve } } - if(error_ret) { - if(verbose) { + if (error_ret) { + if (verbose) { BPy_errors_to_report(CTX_wm_reports(C)); } else { @@ -531,7 +531,7 @@ int BPY_string_exec(bContext *C, const char *expr) if (!expr) return -1; - if(expr[0]=='\0') { + if (expr[0]=='\0') { return error_ret; } @@ -572,20 +572,20 @@ void BPY_modules_load_user(bContext *C) Text *text; /* can happen on file load */ - if(bmain==NULL) + if (bmain==NULL) return; /* update pointers since this can run from a nested script * on file load */ - if(py_call_level) { + if (py_call_level) { bpy_context_update(C); } bpy_context_set(C, &gilstate); - for(text=CTX_data_main(C)->text.first; text; text= text->id.next) { - if(text->flags & TXT_ISSCRIPT && BLI_testextensie(text->id.name+2, ".py")) { - if(!(G.f & G_SCRIPT_AUTOEXEC)) { + for (text=CTX_data_main(C)->text.first; text; text= text->id.next) { + if (text->flags & TXT_ISSCRIPT && BLI_testextensie(text->id.name+2, ".py")) { + if (!(G.f & G_SCRIPT_AUTOEXEC)) { printf("scripts disabled for \"%s\", skipping '%s'\n", bmain->name, text->id.name+2); } else { @@ -611,13 +611,13 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult * PointerRNA *ptr= NULL; int done= 0; - if(item==NULL) { + if (item==NULL) { /* pass */ } - else if(item==Py_None) { + else if (item==Py_None) { /* pass */ } - else if(BPy_StructRNA_Check(item)) { + else if (BPy_StructRNA_Check(item)) { ptr= &(((BPy_StructRNA *)item)->ptr); //result->ptr= ((BPy_StructRNA *)item)->ptr; @@ -633,10 +633,10 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult * else { int len= PySequence_Fast_GET_SIZE(seq_fast); int i; - for(i= 0; i < len; i++) { + for (i= 0; i < len; i++) { PyObject *list_item= PySequence_Fast_GET_ITEM(seq_fast, i); - if(BPy_StructRNA_Check(list_item)) { + if (BPy_StructRNA_Check(list_item)) { /* CollectionPointerLink *link= MEM_callocN(sizeof(CollectionPointerLink), "bpy_context_get"); link->ptr= ((BPy_StructRNA *)item)->ptr; @@ -656,12 +656,12 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult * } } - if(done==0) { + if (done==0) { if (item) printf("PyContext '%s' not a valid type\n", member); else printf("PyContext '%s' not found\n", member); } else { - if(G.f & G_DEBUG) { + if (G.f & G_DEBUG) { printf("PyContext '%s' found\n", member); } } @@ -759,7 +759,7 @@ PyInit_bpy(void) dealloc_obj_Type.tp_dealloc= dealloc_obj_dealloc; dealloc_obj_Type.tp_flags= Py_TPFLAGS_DEFAULT; - if(PyType_Ready(&dealloc_obj_Type) < 0) + if (PyType_Ready(&dealloc_obj_Type) < 0) return NULL; dob= (dealloc_obj *) dealloc_obj_Type.tp_alloc(&dealloc_obj_Type, 0); diff --git a/source/blender/python/intern/bpy_interface_atexit.c b/source/blender/python/intern/bpy_interface_atexit.c index ac8c90198a0..9424bdab93f 100644 --- a/source/blender/python/intern/bpy_interface_atexit.c +++ b/source/blender/python/intern/bpy_interface_atexit.c @@ -68,7 +68,7 @@ static void atexit_func_call(const char *func_name, PyObject *atexit_func_arg) Py_DECREF(atexit_func); Py_DECREF(args); - if(ret) { + if (ret) { Py_DECREF(ret); } else { /* should never happen */ diff --git a/source/blender/python/intern/bpy_library.c b/source/blender/python/intern/bpy_library.c index 4ce3e0356e2..3b0c6a9ff25 100644 --- a/source/blender/python/intern/bpy_library.c +++ b/source/blender/python/intern/bpy_library.c @@ -58,7 +58,7 @@ typedef struct { PyObject_HEAD /* required python macro */ - /* collection iterator spesific parts */ + /* collection iterator specific parts */ char relpath[FILE_MAX]; char abspath[FILE_MAX]; /* absolute path */ BlendHandle *blo_handle; @@ -184,7 +184,7 @@ static PyObject *bpy_lib_load(PyObject *UNUSED(self), PyObject *args, PyObject * const char* filename= NULL; int is_rel= 0, is_link= 0; - if(!PyArg_ParseTupleAndKeywords(args, kwds, "s|ii:load", (char **)kwlist, &filename, &is_link, &is_rel)) + if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|ii:load", (char **)kwlist, &filename, &is_link, &is_rel)) return NULL; ret= PyObject_New(BPy_Library, &bpy_lib_Type); @@ -210,10 +210,10 @@ static PyObject *_bpy_names(BPy_Library *self, int blocktype) names= BLO_blendhandle_get_datablock_names(self->blo_handle, blocktype, &totnames); - if(names) { + if (names) { int counter= 0; list= PyList_New(totnames); - for(l= names; l; l= l->next) { + for (l= names; l; l= l->next) { PyList_SET_ITEM(list, counter, PyUnicode_FromString((char *)l->link)); counter++; } @@ -237,8 +237,8 @@ static PyObject *bpy_lib_enter(BPy_Library *self, PyObject *UNUSED(args)) self->blo_handle= BLO_blendhandle_from_file(self->abspath, &reports); - if(self->blo_handle == NULL) { - if(BPy_reports_to_error(&reports, PyExc_IOError, TRUE) != -1) { + if (self->blo_handle == NULL) { + if (BPy_reports_to_error(&reports, PyExc_IOError, TRUE) != -1) { PyErr_Format(PyExc_IOError, "load: %s failed to open blend file", self->abspath); @@ -247,8 +247,8 @@ static PyObject *bpy_lib_enter(BPy_Library *self, PyObject *UNUSED(args)) } else { int i= 0, code; - while((code= BKE_idcode_iter_step(&i))) { - if(BKE_idcode_is_linkable(code)) { + while ((code= BKE_idcode_iter_step(&i))) { + if (BKE_idcode_is_linkable(code)) { const char *name_plural= BKE_idcode_to_name_plural(code); PyObject *str= PyUnicode_FromString(name_plural); PyDict_SetItem(self->dict, str, PyList_New(0)); @@ -322,27 +322,27 @@ static PyObject *bpy_lib_exit(BPy_Library *self, PyObject *UNUSED(args)) { int i= 0, code; - while((code= BKE_idcode_iter_step(&i))) { - if(BKE_idcode_is_linkable(code)) { + while ((code= BKE_idcode_iter_step(&i))) { + if (BKE_idcode_is_linkable(code)) { const char *name_plural= BKE_idcode_to_name_plural(code); PyObject *ls= PyDict_GetItemString(self->dict, name_plural); // printf("lib: %s\n", name_plural); - if(ls && PyList_Check(ls)) { + if (ls && PyList_Check(ls)) { /* loop */ Py_ssize_t size= PyList_GET_SIZE(ls); Py_ssize_t i; PyObject *item; const char *item_str; - for(i= 0; i < size; i++) { + for (i= 0; i < size; i++) { item= PyList_GET_ITEM(ls, i); item_str= _PyUnicode_AsString(item); // printf(" %s\n", item_str); - if(item_str) { + if (item_str) { ID *id= BLO_library_append_named_part(mainl, &(self->blo_handle), item_str, code); - if(id) { + if (id) { #ifdef USE_RNA_DATABLOCKS PointerRNA id_ptr; RNA_id_pointer_create(id, &id_ptr); @@ -382,7 +382,7 @@ static PyObject *bpy_lib_exit(BPy_Library *self, PyObject *UNUSED(args)) } } - if(err == -1) { + if (err == -1) { /* exception raised above, XXX, this leaks some memory */ BLO_blendhandle_close(self->blo_handle); self->blo_handle= NULL; @@ -399,10 +399,10 @@ static PyObject *bpy_lib_exit(BPy_Library *self, PyObject *UNUSED(args)) recalc_all_library_objects(G.main); /* append, rather than linking */ - if((self->flag & FILE_LINK)==0) { + if ((self->flag & FILE_LINK)==0) { Library *lib= BLI_findstring(&G.main->library, self->abspath, offsetof(Library, name)); - if(lib) all_local(lib, 1); - else BLI_assert(!"cant find name of just added library!"); + if (lib) all_local(lib, 1); + else BLI_assert(!"cant find name of just added library!"); } } @@ -426,7 +426,7 @@ int bpy_lib_init(PyObject *mod_par) /* some compilers dont like accessing this directly, delay assignment */ bpy_lib_Type.tp_getattro= PyObject_GenericGetAttr; - if(PyType_Ready(&bpy_lib_Type) < 0) + if (PyType_Ready(&bpy_lib_Type) < 0) return -1; return 0; diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index dedc5df1f1c..b5fd7851458 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -76,7 +76,7 @@ static PyObject *pyop_poll(PyObject *UNUSED(self), PyObject *args) // XXX Todo, work out a better solution for passing on context, could make a tuple from self and pack the name and Context into it... bContext *C= (bContext *)BPy_GetContext(); - if(C==NULL) { + if (C==NULL) { PyErr_SetString(PyExc_RuntimeError, "Context is None, cant poll any operators"); return NULL; } @@ -93,8 +93,8 @@ static PyObject *pyop_poll(PyObject *UNUSED(self), PyObject *args) return NULL; } - if(context_str) { - if(RNA_enum_value_from_id(operator_context_items, context_str, &context)==0) { + if (context_str) { + if (RNA_enum_value_from_id(operator_context_items, context_str, &context)==0) { char *enum_str= BPy_enum_as_string(operator_context_items); PyErr_Format(PyExc_TypeError, "Calling operator \"bpy.ops.%s.poll\" error, " @@ -105,7 +105,7 @@ static PyObject *pyop_poll(PyObject *UNUSED(self), PyObject *args) } } - if(context_dict==NULL || context_dict==Py_None) { + if (context_dict==NULL || context_dict==Py_None) { context_dict= NULL; } else if (!PyDict_Check(context_dict)) { @@ -150,7 +150,7 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) // XXX Todo, work out a better solution for passing on context, could make a tuple from self and pack the name and Context into it... bContext *C= (bContext *)BPy_GetContext(); - if(C==NULL) { + if (C==NULL) { PyErr_SetString(PyExc_RuntimeError, "Context is None, cant poll any operators"); return NULL; } @@ -167,7 +167,7 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) return NULL; } - if(!pyrna_write_check()) { + if (!pyrna_write_check()) { PyErr_Format(PyExc_RuntimeError, "Calling operator \"bpy.ops.%s\" error, " "can't modify blend data in this state (drawing/rendering)", @@ -175,8 +175,8 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) return NULL; } - if(context_str) { - if(RNA_enum_value_from_id(operator_context_items, context_str, &context)==0) { + if (context_str) { + if (RNA_enum_value_from_id(operator_context_items, context_str, &context)==0) { char *enum_str= BPy_enum_as_string(operator_context_items); PyErr_Format(PyExc_TypeError, "Calling operator \"bpy.ops.%s\" error, " @@ -187,7 +187,7 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) } } - if(context_dict==NULL || context_dict==Py_None) { + if (context_dict==NULL || context_dict==Py_None) { context_dict= NULL; } else if (!PyDict_Check(context_dict)) { @@ -203,7 +203,7 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) CTX_py_dict_set(C, (void *)context_dict); Py_XINCREF(context_dict); /* so we done loose it */ - if(WM_operator_poll_context((bContext*)C, ot, context) == FALSE) { + if (WM_operator_poll_context((bContext*)C, ot, context) == FALSE) { const char *msg= CTX_wm_operator_poll_msg_get(C); PyErr_Format(PyExc_RuntimeError, "Operator bpy.ops.%.200s.poll() %.200s", @@ -215,7 +215,7 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) WM_operator_properties_create_ptr(&ptr, ot); WM_operator_properties_sanitize(&ptr, 0); - if(kw && PyDict_Size(kw)) + if (kw && PyDict_Size(kw)) error_val= pyrna_pydict_to_props(&ptr, kw, 0, "Converting py args to operator properties: "); @@ -245,10 +245,10 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) error_val= BPy_reports_to_error(reports, PyExc_RuntimeError, FALSE); /* operator output is nice to have in the terminal/console too */ - if(reports->list.first) { + if (reports->list.first) { char *report_str= BKE_reports_string(reports, 0); /* all reports */ - if(report_str) { + if (report_str) { PySys_WriteStdout("%s\n", report_str); MEM_freeN(report_str); } @@ -315,7 +315,7 @@ static PyObject *pyop_as_string(PyObject *UNUSED(self), PyObject *args) bContext *C= (bContext *)BPy_GetContext(); - if(C==NULL) { + if (C==NULL) { PyErr_SetString(PyExc_RuntimeError, "Context is None, cant get the string representation of this object."); return NULL; } @@ -336,7 +336,7 @@ static PyObject *pyop_as_string(PyObject *UNUSED(self), PyObject *args) /* Save another lookup */ RNA_pointer_create(NULL, ot->srna, NULL, &ptr); - if(kw && PyDict_Size(kw)) + if (kw && PyDict_Size(kw)) error_val= pyrna_pydict_to_props(&ptr, kw, 0, "Converting py args to operator properties: "); if (error_val==0) @@ -348,7 +348,7 @@ static PyObject *pyop_as_string(PyObject *UNUSED(self), PyObject *args) return NULL; } - if(buf) { + if (buf) { pybuf= PyUnicode_FromString(buf); MEM_freeN(buf); } @@ -364,7 +364,7 @@ static PyObject *pyop_dir(PyObject *UNUSED(self)) GHashIterator *iter= WM_operatortype_iter(); PyObject *list= PyList_New(0), *name; - for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + for ( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { wmOperatorType *ot= BLI_ghashIterator_getValue(iter); name= PyUnicode_FromString(ot->idname); @@ -383,12 +383,12 @@ static PyObject *pyop_getrna(PyObject *UNUSED(self), PyObject *value) char *opname= _PyUnicode_AsString(value); BPy_StructRNA *pyrna= NULL; - if(opname==NULL) { + if (opname==NULL) { PyErr_SetString(PyExc_TypeError, "_bpy.ops.get_rna() expects a string argument"); return NULL; } ot= WM_operatortype_find(opname, TRUE); - if(ot==NULL) { + if (ot==NULL) { PyErr_Format(PyExc_KeyError, "_bpy.ops.get_rna(\"%s\") not found", opname); return NULL; } @@ -416,12 +416,12 @@ static PyObject *pyop_getinstance(PyObject *UNUSED(self), PyObject *value) char *opname= _PyUnicode_AsString(value); BPy_StructRNA *pyrna= NULL; - if(opname==NULL) { + if (opname==NULL) { PyErr_SetString(PyExc_TypeError, "_bpy.ops.get_instance() expects a string argument"); return NULL; } ot= WM_operatortype_find(opname, TRUE); - if(ot==NULL) { + if (ot==NULL) { PyErr_Format(PyExc_KeyError, "_bpy.ops.get_instance(\"%s\") not found", opname); return NULL; } diff --git a/source/blender/python/intern/bpy_operator_wrap.c b/source/blender/python/intern/bpy_operator_wrap.c index b5ded8b3a65..1b158f9bade 100644 --- a/source/blender/python/intern/bpy_operator_wrap.c +++ b/source/blender/python/intern/bpy_operator_wrap.c @@ -50,7 +50,7 @@ static void operator_properties_init(wmOperatorType *ot) * later */ RNA_def_struct_identifier(ot->srna, ot->idname); - if(pyrna_deferred_register_class(ot->srna, py_class) != 0) { + if (pyrna_deferred_register_class(ot->srna, py_class) != 0) { PyErr_Print(); /* failed to register operator props */ PyErr_Clear(); } @@ -72,8 +72,9 @@ void operator_wrapper(wmOperatorType *ot, void *userdata) RNA_pointer_create(NULL, ot->srna, NULL, &ptr); prop= RNA_struct_find_property(&ptr, "type"); - if(prop) + if (prop) { ot->prop= prop; + } } } diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c index 5c668590dff..5a78ac8e094 100644 --- a/source/blender/python/intern/bpy_props.c +++ b/source/blender/python/intern/bpy_props.c @@ -123,11 +123,11 @@ static PyObject *pyrna_struct_as_instance(PointerRNA *ptr) PyObject *self= NULL; /* first get self */ /* operators can store their own instance for later use */ - if(ptr->data) { + if (ptr->data) { void **instance= RNA_struct_instance(ptr); - if(instance) { - if(*instance) { + if (instance) { + if (*instance) { self= *instance; Py_INCREF(self); } @@ -135,7 +135,7 @@ static PyObject *pyrna_struct_as_instance(PointerRNA *ptr) } /* in most cases this will run */ - if(self == NULL) { + if (self == NULL) { self= pyrna_struct_CreatePyObject(ptr); } @@ -167,7 +167,7 @@ static PyObject *bpy_prop_deferred_return(PyObject *func, PyObject *kw) PyTuple_SET_ITEM(ret, 0, func); Py_INCREF(func); - if(kw==NULL) + if (kw==NULL) kw= PyDict_New(); else Py_INCREF(kw); @@ -190,7 +190,7 @@ static void bpy_prop_update_cb(struct bContext *C, struct PointerRNA *ptr, struc BLI_assert(py_data != NULL); - if(!is_write_ok) { + if (!is_write_ok) { pyrna_write_set(TRUE); } @@ -209,11 +209,11 @@ static void bpy_prop_update_cb(struct bContext *C, struct PointerRNA *ptr, struc Py_DECREF(args); - if(ret == NULL) { + if (ret == NULL) { printf_func_error(py_func); } else { - if(ret != Py_None) { + if (ret != Py_None) { PyErr_SetString(PyExc_ValueError, "the return value must be None"); printf_func_error(py_func); } @@ -223,15 +223,15 @@ static void bpy_prop_update_cb(struct bContext *C, struct PointerRNA *ptr, struc bpy_context_clear(C, &gilstate); - if(!is_write_ok) { + if (!is_write_ok) { pyrna_write_set(FALSE); } } static int bpy_prop_callback_check(PyObject *py_func, int argcount) { - if(py_func) { - if(!PyFunction_Check(py_func)) { + if (py_func) { + if (!PyFunction_Check(py_func)) { PyErr_Format(PyExc_TypeError, "update keyword: expected a function type, not a %.200s", Py_TYPE(py_func)->tp_name); @@ -255,7 +255,7 @@ static int bpy_prop_callback_check(PyObject *py_func, int argcount) static int bpy_prop_callback_assign(struct PropertyRNA *prop, PyObject *update_cb) { /* assume this is already checked for type and arg length */ - if(update_cb) { + if (update_cb) { PyObject **py_data= MEM_callocN(sizeof(PyObject *) * BPY_DATA_CB_SLOT_SIZE, "bpy_prop_callback_assign"); RNA_def_property_update_runtime(prop, (void *)bpy_prop_update_cb); py_data[BPY_DATA_CB_SLOT_UPDATE]= update_cb; @@ -270,7 +270,7 @@ static int bpy_prop_callback_assign(struct PropertyRNA *prop, PyObject *update_c /* utility function we need for parsing int's in an if statement */ static int py_long_as_int(PyObject *py_long, int *r_int) { - if(PyLong_CheckExact(py_long)) { + if (PyLong_CheckExact(py_long)) { *r_int= (int)PyLong_AS_LONG(py_long); return 0; } @@ -295,8 +295,8 @@ static int py_long_as_int(PyObject *py_long, int *r_int) return NULL; \ } \ srna= srna_from_self(self, #_func"(...):"); \ - if(srna==NULL) { \ - if(PyErr_Occurred()) \ + if (srna==NULL) { \ + if (PyErr_Occurred()) \ return NULL; \ return bpy_prop_deferred_return((void *)pymeth_##_func, kw); \ } \ @@ -304,24 +304,24 @@ static int py_long_as_int(PyObject *py_long, int *r_int) /* terse macros for error checks shared between all funcs cant use function * calls because of static strins passed to pyrna_set_to_enum_bitfield */ #define BPY_PROPDEF_CHECK(_func, _property_flag_items) \ - if(id_len >= MAX_IDPROP_NAME) { \ + if (id_len >= MAX_IDPROP_NAME) { \ PyErr_Format(PyExc_TypeError, \ #_func"(): '%.200s' too long, max length is %d", \ id, MAX_IDPROP_NAME-1); \ return NULL; \ } \ - if(RNA_def_property_free_identifier(srna, id) == -1) { \ + if (RNA_def_property_free_identifier(srna, id) == -1) { \ PyErr_Format(PyExc_TypeError, \ #_func"(): '%s' is defined as a non-dynamic type", \ id); \ return NULL; \ } \ - if(pyopts && pyrna_set_to_enum_bitfield(_property_flag_items, pyopts, &opts, #_func"(options={...}):")) \ + if (pyopts && pyrna_set_to_enum_bitfield(_property_flag_items, pyopts, &opts, #_func"(options={...}):")) \ return NULL; \ #define BPY_PROPDEF_SUBTYPE_CHECK(_func, _property_flag_items, _subtype) \ BPY_PROPDEF_CHECK(_func, _property_flag_items) \ - if(pysubtype && RNA_enum_value_from_id(_subtype, pysubtype, &subtype)==0) { \ + if (pysubtype && RNA_enum_value_from_id(_subtype, pysubtype, &subtype)==0) { \ PyErr_Format(PyExc_TypeError, \ #_func"(subtype='%s'): invalid subtype", \ pysubtype); \ @@ -359,7 +359,7 @@ static int bpy_struct_id_used(StructRNA *srna, char *identifier) #endif -/* Function that sets RNA, NOTE - self is NULL when called from python, but being abused from C so we can pass the srna allong +/* Function that sets RNA, NOTE - self is NULL when called from python, but being abused from C so we can pass the srna along * This isnt incorrect since its a python object - but be careful */ PyDoc_STRVAR(BPy_BoolProperty_doc, ".. function:: BoolProperty(name=\"\", description=\"\", default=False, options={'ANIMATABLE'}, subtype='NONE', update=None)\n" @@ -380,7 +380,7 @@ static PyObject *BPy_BoolProperty(PyObject *self, PyObject *args, PyObject *kw) BPY_PROPDEF_HEAD(BoolProperty) - if(srna) { + if (srna) { static const char *kwlist[]= {"attr", "name", "description", "default", "options", "subtype", "update", NULL}; const char *id=NULL, *name="", *description=""; int id_len; @@ -412,9 +412,9 @@ static PyObject *BPy_BoolProperty(PyObject *self, PyObject *args, PyObject *kw) RNA_def_property_boolean_default(prop, def); RNA_def_property_ui_text(prop, name, description); - if(pyopts) { - if(opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); - if((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + if (pyopts) { + if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); + if ((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); } bpy_prop_callback_assign(prop, update_cb); RNA_def_property_duplicate_pointers(srna, prop); @@ -446,7 +446,7 @@ static PyObject *BPy_BoolVectorProperty(PyObject *self, PyObject *args, PyObject BPY_PROPDEF_HEAD(BoolVectorProperty) - if(srna) { + if (srna) { static const char *kwlist[]= {"attr", "name", "description", "default", "options", "subtype", "size", "update", NULL}; const char *id=NULL, *name="", *description=""; int id_len; @@ -472,12 +472,12 @@ static PyObject *BPy_BoolVectorProperty(PyObject *self, PyObject *args, PyObject BPY_PROPDEF_SUBTYPE_CHECK(BoolVectorProperty, property_flag_items, property_subtype_array_items) - if(size < 1 || size > PYRNA_STACK_ARRAY) { + if (size < 1 || size > PYRNA_STACK_ARRAY) { PyErr_Format(PyExc_TypeError, "BoolVectorProperty(size=%d): size must be between 0 and " STRINGIFY(PYRNA_STACK_ARRAY), size); return NULL; } - if(pydef && PyC_AsArray(def, pydef, size, &PyBool_Type, FALSE, "BoolVectorProperty(default=sequence)") < 0) + if (pydef && PyC_AsArray(def, pydef, size, &PyBool_Type, FALSE, "BoolVectorProperty(default=sequence)") < 0) return NULL; if (bpy_prop_callback_check(update_cb, 2) == -1) { @@ -487,12 +487,12 @@ static PyObject *BPy_BoolVectorProperty(PyObject *self, PyObject *args, PyObject // prop= RNA_def_boolean_array(srna, id, size, pydef ? def:NULL, name, description); prop= RNA_def_property(srna, id, PROP_BOOLEAN, subtype); RNA_def_property_array(prop, size); - if(pydef) RNA_def_property_boolean_array_default(prop, def); + if (pydef) RNA_def_property_boolean_array_default(prop, def); RNA_def_property_ui_text(prop, name, description); - if(pyopts) { - if(opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); - if((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + if (pyopts) { + if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); + if ((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); } bpy_prop_callback_assign(prop, update_cb); RNA_def_property_duplicate_pointers(srna, prop); @@ -520,7 +520,7 @@ static PyObject *BPy_IntProperty(PyObject *self, PyObject *args, PyObject *kw) BPY_PROPDEF_HEAD(IntProperty) - if(srna) { + if (srna) { static const char *kwlist[]= {"attr", "name", "description", "default", "min", "max", "soft_min", "soft_max", "step", "options", "subtype", "update", NULL}; const char *id=NULL, *name="", *description=""; int id_len; @@ -555,9 +555,9 @@ static PyObject *BPy_IntProperty(PyObject *self, PyObject *args, PyObject *kw) RNA_def_property_ui_text(prop, name, description); RNA_def_property_ui_range(prop, MAX2(soft_min, min), MIN2(soft_max, max), step, 3); - if(pyopts) { - if(opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); - if((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + if (pyopts) { + if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); + if ((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); } bpy_prop_callback_assign(prop, update_cb); RNA_def_property_duplicate_pointers(srna, prop); @@ -588,7 +588,7 @@ static PyObject *BPy_IntVectorProperty(PyObject *self, PyObject *args, PyObject BPY_PROPDEF_HEAD(IntVectorProperty) - if(srna) { + if (srna) { static const char *kwlist[]= {"attr", "name", "description", "default", "min", "max", "soft_min", "soft_max", "step", "options", "subtype", "size", "update", NULL}; const char *id=NULL, *name="", *description=""; int id_len; @@ -616,12 +616,12 @@ static PyObject *BPy_IntVectorProperty(PyObject *self, PyObject *args, PyObject BPY_PROPDEF_SUBTYPE_CHECK(IntVectorProperty, property_flag_items, property_subtype_array_items) - if(size < 1 || size > PYRNA_STACK_ARRAY) { + if (size < 1 || size > PYRNA_STACK_ARRAY) { PyErr_Format(PyExc_TypeError, "IntVectorProperty(size=%d): size must be between 0 and " STRINGIFY(PYRNA_STACK_ARRAY), size); return NULL; } - if(pydef && PyC_AsArray(def, pydef, size, &PyLong_Type, FALSE, "IntVectorProperty(default=sequence)") < 0) + if (pydef && PyC_AsArray(def, pydef, size, &PyLong_Type, FALSE, "IntVectorProperty(default=sequence)") < 0) return NULL; if (bpy_prop_callback_check(update_cb, 2) == -1) { @@ -630,14 +630,14 @@ static PyObject *BPy_IntVectorProperty(PyObject *self, PyObject *args, PyObject prop= RNA_def_property(srna, id, PROP_INT, subtype); RNA_def_property_array(prop, size); - if(pydef) RNA_def_property_int_array_default(prop, def); + if (pydef) RNA_def_property_int_array_default(prop, def); RNA_def_property_range(prop, min, max); RNA_def_property_ui_text(prop, name, description); RNA_def_property_ui_range(prop, MAX2(soft_min, min), MIN2(soft_max, max), step, 3); - if(pyopts) { - if(opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); - if((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + if (pyopts) { + if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); + if ((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); } bpy_prop_callback_assign(prop, update_cb); RNA_def_property_duplicate_pointers(srna, prop); @@ -666,7 +666,7 @@ static PyObject *BPy_FloatProperty(PyObject *self, PyObject *args, PyObject *kw) BPY_PROPDEF_HEAD(FloatProperty) - if(srna) { + if (srna) { static const char *kwlist[]= {"attr", "name", "description", "default", "min", "max", "soft_min", "soft_max", "step", "precision", "options", "subtype", "unit", "update", NULL}; const char *id=NULL, *name="", *description=""; int id_len; @@ -695,7 +695,7 @@ static PyObject *BPy_FloatProperty(PyObject *self, PyObject *args, PyObject *kw) BPY_PROPDEF_SUBTYPE_CHECK(FloatProperty, property_flag_items, property_subtype_number_items) - if(pyunit && RNA_enum_value_from_id(property_unit_items, pyunit, &unit)==0) { + if (pyunit && RNA_enum_value_from_id(property_unit_items, pyunit, &unit)==0) { PyErr_Format(PyExc_TypeError, "FloatProperty(unit='%s'): invalid unit", pyunit); return NULL; } @@ -710,9 +710,9 @@ static PyObject *BPy_FloatProperty(PyObject *self, PyObject *args, PyObject *kw) RNA_def_property_ui_text(prop, name, description); RNA_def_property_ui_range(prop, MAX2(soft_min, min), MIN2(soft_max, max), step, precision); - if(pyopts) { - if(opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); - if((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + if (pyopts) { + if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); + if ((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); } bpy_prop_callback_assign(prop, update_cb); RNA_def_property_duplicate_pointers(srna, prop); @@ -744,7 +744,7 @@ static PyObject *BPy_FloatVectorProperty(PyObject *self, PyObject *args, PyObjec BPY_PROPDEF_HEAD(FloatVectorProperty) - if(srna) { + if (srna) { static const char *kwlist[]= {"attr", "name", "description", "default", "min", "max", "soft_min", "soft_max", "step", "precision", "options", "subtype", "unit", "size", "update", NULL}; const char *id=NULL, *name="", *description=""; int id_len; @@ -774,17 +774,17 @@ static PyObject *BPy_FloatVectorProperty(PyObject *self, PyObject *args, PyObjec BPY_PROPDEF_SUBTYPE_CHECK(FloatVectorProperty, property_flag_items, property_subtype_array_items) - if(pyunit && RNA_enum_value_from_id(property_unit_items, pyunit, &unit)==0) { + if (pyunit && RNA_enum_value_from_id(property_unit_items, pyunit, &unit)==0) { PyErr_Format(PyExc_TypeError, "FloatVectorProperty(unit='%s'): invalid unit", pyunit); return NULL; } - if(size < 1 || size > PYRNA_STACK_ARRAY) { + if (size < 1 || size > PYRNA_STACK_ARRAY) { PyErr_Format(PyExc_TypeError, "FloatVectorProperty(size=%d): size must be between 0 and " STRINGIFY(PYRNA_STACK_ARRAY), size); return NULL; } - if(pydef && PyC_AsArray(def, pydef, size, &PyFloat_Type, FALSE, "FloatVectorProperty(default=sequence)") < 0) + if (pydef && PyC_AsArray(def, pydef, size, &PyFloat_Type, FALSE, "FloatVectorProperty(default=sequence)") < 0) return NULL; if (bpy_prop_callback_check(update_cb, 2) == -1) { @@ -793,14 +793,14 @@ static PyObject *BPy_FloatVectorProperty(PyObject *self, PyObject *args, PyObjec prop= RNA_def_property(srna, id, PROP_FLOAT, subtype | unit); RNA_def_property_array(prop, size); - if(pydef) RNA_def_property_float_array_default(prop, def); + if (pydef) RNA_def_property_float_array_default(prop, def); RNA_def_property_range(prop, min, max); RNA_def_property_ui_text(prop, name, description); RNA_def_property_ui_range(prop, MAX2(soft_min, min), MIN2(soft_max, max), step, precision); - if(pyopts) { - if(opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); - if((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + if (pyopts) { + if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); + if ((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); } bpy_prop_callback_assign(prop, update_cb); RNA_def_property_duplicate_pointers(srna, prop); @@ -827,7 +827,7 @@ static PyObject *BPy_StringProperty(PyObject *self, PyObject *args, PyObject *kw BPY_PROPDEF_HEAD(StringProperty) - if(srna) { + if (srna) { static const char *kwlist[]= {"attr", "name", "description", "default", "maxlen", "options", "subtype", "update", NULL}; const char *id=NULL, *name="", *description="", *def=""; int id_len; @@ -856,13 +856,13 @@ static PyObject *BPy_StringProperty(PyObject *self, PyObject *args, PyObject *kw } prop= RNA_def_property(srna, id, PROP_STRING, subtype); - if(maxlen != 0) RNA_def_property_string_maxlength(prop, maxlen + 1); /* +1 since it includes null terminator */ - if(def) RNA_def_property_string_default(prop, def); + if (maxlen != 0) RNA_def_property_string_maxlength(prop, maxlen + 1); /* +1 since it includes null terminator */ + if (def) RNA_def_property_string_default(prop, def); RNA_def_property_ui_text(prop, name, description); - if(pyopts) { - if(opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); - if((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + if (pyopts) { + if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); + if ((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); } bpy_prop_callback_assign(prop, update_cb); RNA_def_property_duplicate_pointers(srna, prop); @@ -878,7 +878,7 @@ static size_t strswapbufcpy(char *buf, const char **orig) char *dst= buf; size_t i= 0; *orig= buf; - while((*dst= *src)) { dst++; src++; i++; } + while ((*dst= *src)) { dst++; src++; i++; } return i + 1; /* include '\0' */ } #endif @@ -893,12 +893,12 @@ static EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, i short def_used= 0; const char *def_cmp= NULL; - if(is_enum_flag) { - if(seq_len > RNA_ENUM_BITFLAG_SIZE) { + if (is_enum_flag) { + if (seq_len > RNA_ENUM_BITFLAG_SIZE) { PyErr_SetString(PyExc_TypeError, "EnumProperty(...): maximum " STRINGIFY(RNA_ENUM_BITFLAG_SIZE) " members for a ENUM_FLAG type property"); return NULL; } - if(def && !PySet_Check(def)) { + if (def && !PySet_Check(def)) { PyErr_Format(PyExc_TypeError, "EnumProperty(...): default option must be a 'set' " "type when ENUM_FLAG is enabled, not a '%.200s'", @@ -907,9 +907,9 @@ static EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, i } } else { - if(def) { + if (def) { def_cmp= _PyUnicode_AsString(def); - if(def_cmp==NULL) { + if (def_cmp==NULL) { PyErr_Format(PyExc_TypeError, "EnumProperty(...): default option must be a 'str' " "type when ENUM_FLAG is disabled, not a '%.200s'", @@ -924,7 +924,7 @@ static EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, i items= MEM_callocN(sizeof(EnumPropertyItem) * (seq_len + 1), "enum_items_from_py1"); - for(i=0; i<seq_len; i++) { + for (i=0; i<seq_len; i++) { EnumPropertyItem tmp= {0, "", 0, "", ""}; Py_ssize_t item_size; Py_ssize_t id_str_size; @@ -933,7 +933,7 @@ static EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, i item= PySequence_Fast_GET_ITEM(seq_fast, i); - if( (PyTuple_CheckExact(item)) && + if ( (PyTuple_CheckExact(item)) && (item_size= PyTuple_GET_SIZE(item)) && (item_size == 3 || item_size == 4) && (tmp.identifier= _PyUnicode_AsStringAndSize(PyTuple_GET_ITEM(item, 0), &id_str_size)) && @@ -941,22 +941,22 @@ static EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, i (tmp.description= _PyUnicode_AsStringAndSize(PyTuple_GET_ITEM(item, 2), &desc_str_size)) && (item_size < 4 || py_long_as_int(PyTuple_GET_ITEM(item, 3), &tmp.value) != -1) /* TODO, number isnt ensured to be unique from the script author */ ) { - if(is_enum_flag) { - if(item_size < 4) { + if (is_enum_flag) { + if (item_size < 4) { tmp.value= 1<<i; } - if(def && PySet_Contains(def, PyTuple_GET_ITEM(item, 0))) { + if (def && PySet_Contains(def, PyTuple_GET_ITEM(item, 0))) { *defvalue |= tmp.value; def_used++; } } else { - if(item_size < 4) { + if (item_size < 4) { tmp.value= i; } - if(def && def_used == 0 && strcmp(def_cmp, tmp.identifier)==0) { + if (def && def_used == 0 && strcmp(def_cmp, tmp.identifier)==0) { *defvalue= tmp.value; def_used++; /* only ever 1 */ } @@ -978,9 +978,9 @@ static EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, i } - if(is_enum_flag) { + if (is_enum_flag) { /* strict check that all set members were used */ - if(def && def_used != PySet_GET_SIZE(def)) { + if (def && def_used != PySet_GET_SIZE(def)) { MEM_freeN(items); PyErr_Format(PyExc_TypeError, @@ -990,7 +990,7 @@ static EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, i } } else { - if(def && def_used == 0) { + if (def && def_used == 0) { MEM_freeN(items); PyErr_Format(PyExc_TypeError, @@ -1012,7 +1012,7 @@ static EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, i EnumPropertyItem *items_ptr= items_dup; char *buf= ((char *)items_dup) + (sizeof(EnumPropertyItem) * (seq_len + 1)); memcpy(items_dup, items, sizeof(EnumPropertyItem) * (seq_len + 1)); - for(i=0; i<seq_len; i++, items_ptr++) { + for (i=0; i<seq_len; i++, items_ptr++) { buf += strswapbufcpy(buf, &items_ptr->identifier); buf += strswapbufcpy(buf, &items_ptr->name); buf += strswapbufcpy(buf, &items_ptr->description); @@ -1052,14 +1052,14 @@ static EnumPropertyItem *bpy_props_enum_itemf(struct bContext *C, PointerRNA *pt Py_DECREF(args); - if(items==NULL) { + if (items==NULL) { err= -1; } else { PyObject *items_fast; int defvalue_dummy=0; - if(!(items_fast= PySequence_Fast(items, "EnumProperty(...): return value from the callback was not a sequence"))) { + if (!(items_fast= PySequence_Fast(items, "EnumProperty(...): return value from the callback was not a sequence"))) { err= -1; } else { @@ -1067,7 +1067,7 @@ static EnumPropertyItem *bpy_props_enum_itemf(struct bContext *C, PointerRNA *pt Py_DECREF(items_fast); - if(!eitems) { + if (!eitems) { err= -1; } } @@ -1075,7 +1075,7 @@ static EnumPropertyItem *bpy_props_enum_itemf(struct bContext *C, PointerRNA *pt Py_DECREF(items); } - if(err != -1) { /* worked */ + if (err != -1) { /* worked */ *free= 1; } else { @@ -1118,7 +1118,7 @@ static PyObject *BPy_EnumProperty(PyObject *self, PyObject *args, PyObject *kw) BPY_PROPDEF_HEAD(EnumProperty) - if(srna) { + if (srna) { static const char *kwlist[]= {"attr", "items", "name", "description", "default", "options", "update", NULL}; const char *id=NULL, *name="", *description=""; PyObject *def= NULL; @@ -1149,16 +1149,16 @@ static PyObject *BPy_EnumProperty(PyObject *self, PyObject *args, PyObject *kw) } /* items can be a list or a callable */ - if(PyFunction_Check(items)) { /* dont use PyCallable_Check because we need the function code for errors */ + if (PyFunction_Check(items)) { /* dont use PyCallable_Check because we need the function code for errors */ PyCodeObject *f_code= (PyCodeObject *)PyFunction_GET_CODE(items); - if(f_code->co_argcount != 2) { + if (f_code->co_argcount != 2) { PyErr_Format(PyExc_ValueError, "EnumProperty(...): expected 'items' function to take 2 arguments, not %d", f_code->co_argcount); return NULL; } - if(def) { + if (def) { /* note, using type error here is odd but python does this for invalid arguments */ PyErr_SetString(PyExc_TypeError, "EnumProperty(...): 'default' can't be set when 'items' is a function"); @@ -1169,7 +1169,7 @@ static PyObject *BPy_EnumProperty(PyObject *self, PyObject *args, PyObject *kw) eitems= DummyRNA_NULL_items; } else { - if(!(items_fast= PySequence_Fast(items, "EnumProperty(...): expected a sequence of tuples for the enum items or a function"))) { + if (!(items_fast= PySequence_Fast(items, "EnumProperty(...): expected a sequence of tuples for the enum items or a function"))) { return NULL; } @@ -1177,28 +1177,28 @@ static PyObject *BPy_EnumProperty(PyObject *self, PyObject *args, PyObject *kw) Py_DECREF(items_fast); - if(!eitems) { + if (!eitems) { return NULL; } } - if(opts & PROP_ENUM_FLAG) prop= RNA_def_enum_flag(srna, id, eitems, defvalue, name, description); - else prop= RNA_def_enum(srna, id, eitems, defvalue, name, description); + if (opts & PROP_ENUM_FLAG) prop= RNA_def_enum_flag(srna, id, eitems, defvalue, name, description); + else prop= RNA_def_enum(srna, id, eitems, defvalue, name, description); - if(is_itemf) { + if (is_itemf) { RNA_def_enum_funcs(prop, bpy_props_enum_itemf); RNA_def_enum_py_data(prop, (void *)items); /* Py_INCREF(items); */ /* watch out!, if user is tricky they can probably crash blender if they manage to free the callback, take care! */ } - if(pyopts) { - if(opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); - if((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + if (pyopts) { + if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); + if ((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); } bpy_prop_callback_assign(prop, update_cb); RNA_def_property_duplicate_pointers(srna, prop); - if(is_itemf == FALSE) { + if (is_itemf == FALSE) { MEM_freeN(eitems); } } @@ -1210,8 +1210,8 @@ static StructRNA *pointer_type_from_py(PyObject *value, const char *error_prefix StructRNA *srna; srna= srna_from_self(value, ""); - if(!srna) { - if(PyErr_Occurred()) { + if (!srna) { + if (PyErr_Occurred()) { PyObject *msg= PyC_ExceptionBuffer(); char *msg_char= _PyUnicode_AsString(msg); PyErr_Format(PyExc_TypeError, @@ -1227,7 +1227,7 @@ static StructRNA *pointer_type_from_py(PyObject *value, const char *error_prefix return NULL; } - if(!RNA_struct_is_a(srna, &RNA_PropertyGroup)) { + if (!RNA_struct_is_a(srna, &RNA_PropertyGroup)) { PyErr_Format(PyExc_TypeError, "%.200s expected an RNA type derived from PropertyGroup", error_prefix); @@ -1256,7 +1256,7 @@ static PyObject *BPy_PointerProperty(PyObject *self, PyObject *args, PyObject *k BPY_PROPDEF_HEAD(PointerProperty) - if(srna) { + if (srna) { static const char *kwlist[]= {"attr", "type", "name", "description", "options", "update", NULL}; const char *id=NULL, *name="", *description=""; int id_len; @@ -1280,7 +1280,7 @@ static PyObject *BPy_PointerProperty(PyObject *self, PyObject *args, PyObject *k BPY_PROPDEF_CHECK(PointerProperty, property_flag_items) ptype= pointer_type_from_py(type, "PointerProperty(...):"); - if(!ptype) + if (!ptype) return NULL; if (bpy_prop_callback_check(update_cb, 2) == -1) { @@ -1288,9 +1288,9 @@ static PyObject *BPy_PointerProperty(PyObject *self, PyObject *args, PyObject *k } prop= RNA_def_pointer_runtime(srna, id, ptype, name, description); - if(pyopts) { - if(opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); - if((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + if (pyopts) { + if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); + if ((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); } bpy_prop_callback_assign(prop, update_cb); RNA_def_property_duplicate_pointers(srna, prop); @@ -1316,7 +1316,7 @@ static PyObject *BPy_CollectionProperty(PyObject *self, PyObject *args, PyObject BPY_PROPDEF_HEAD(CollectionProperty) - if(srna) { + if (srna) { static const char *kwlist[]= {"attr", "type", "name", "description", "options", NULL}; const char *id=NULL, *name="", *description=""; int id_len; @@ -1338,13 +1338,13 @@ static PyObject *BPy_CollectionProperty(PyObject *self, PyObject *args, PyObject BPY_PROPDEF_CHECK(CollectionProperty, property_flag_items) ptype= pointer_type_from_py(type, "CollectionProperty(...):"); - if(!ptype) + if (!ptype) return NULL; prop= RNA_def_collection_runtime(srna, id, ptype, name, description); - if(pyopts) { - if(opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); - if((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + if (pyopts) { + if (opts & PROP_HIDDEN) RNA_def_property_flag(prop, PROP_HIDDEN); + if ((opts & PROP_ANIMATABLE)==0) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); } RNA_def_property_duplicate_pointers(srna, prop); } @@ -1363,7 +1363,7 @@ static PyObject *BPy_RemoveProperty(PyObject *self, PyObject *args, PyObject *kw { StructRNA *srna; - if(PyTuple_GET_SIZE(args) == 1) { + if (PyTuple_GET_SIZE(args) == 1) { PyObject *ret; self= PyTuple_GET_ITEM(args, 0); args= PyTuple_New(0); @@ -1377,10 +1377,10 @@ static PyObject *BPy_RemoveProperty(PyObject *self, PyObject *args, PyObject *kw } srna= srna_from_self(self, "RemoveProperty(...):"); - if(srna==NULL && PyErr_Occurred()) { + if (srna==NULL && PyErr_Occurred()) { return NULL; /* self's type was compatible but error getting the srna */ } - else if(srna==NULL) { + else if (srna==NULL) { PyErr_SetString(PyExc_TypeError, "RemoveProperty(): struct rna not available for this type"); return NULL; } @@ -1396,7 +1396,7 @@ static PyObject *BPy_RemoveProperty(PyObject *self, PyObject *args, PyObject *kw return NULL; } - if(RNA_def_property_free_identifier(srna, id) != 1) { + if (RNA_def_property_free_identifier(srna, id) != 1) { PyErr_Format(PyExc_TypeError, "RemoveProperty(): '%s' not a defined dynamic property", id); return NULL; } diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index f5ecf91305d..e52df8f9320 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -85,14 +85,17 @@ static PyObject* pyrna_struct_Subtype(PointerRNA *ptr); static PyObject *pyrna_prop_collection_values(BPy_PropertyRNA *self); #define BPY_DOC_ID_PROP_TYPE_NOTE \ -" .. note:: Only :class:`bpy.types.ID`, :class:`bpy.types.Bone` and \n" \ +" .. note::\n" \ +"\n" \ +" Only :class:`bpy.types.ID`, :class:`bpy.types.Bone` and \n" \ " :class:`bpy.types.PoseBone` classes support custom properties.\n" int pyrna_struct_validity_check(BPy_StructRNA *pysrna) { - if(pysrna->ptr.type) + if (pysrna->ptr.type) { return 0; + } PyErr_Format(PyExc_ReferenceError, "StructRNA of type %.200s has been removed", Py_TYPE(pysrna)->tp_name); @@ -101,8 +104,9 @@ int pyrna_struct_validity_check(BPy_StructRNA *pysrna) int pyrna_prop_validity_check(BPy_PropertyRNA *self) { - if(self->ptr.type) + if (self->ptr.type) { return 0; + } PyErr_Format(PyExc_ReferenceError, "PropertyRNA of type %.200s.%.200s has been removed", Py_TYPE(self)->tp_name, RNA_property_identifier(self->prop)); @@ -131,15 +135,15 @@ static void id_release_gc(struct ID *id) { unsigned int j; // unsigned int i= 0; - for(j=0; j<3; j++) { + for (j=0; j<3; j++) { /* hack below to get the 2 other lists from _PyGC_generation0 that are normally not exposed */ PyGC_Head *gen= (PyGC_Head *)(((char *)_PyGC_generation0) + (sizeof(gc_generation) * j)); PyGC_Head *g= gen->gc.gc_next; while ((g= g->gc.gc_next) != gen) { PyObject *ob= FROM_GC(g); - if(PyType_IsSubtype(Py_TYPE(ob), &pyrna_struct_Type) || PyType_IsSubtype(Py_TYPE(ob), &pyrna_prop_Type)) { + if (PyType_IsSubtype(Py_TYPE(ob), &pyrna_struct_Type) || PyType_IsSubtype(Py_TYPE(ob), &pyrna_prop_Type)) { BPy_DummyPointerRNA *ob_ptr= (BPy_DummyPointerRNA *)ob; - if(ob_ptr->ptr.id.data == id) { + if (ob_ptr->ptr.id.data == id) { pyrna_invalidate(ob_ptr); // printf("freeing: %p %s, %.200s\n", (void *)ob, id->name, Py_TYPE(ob)->tp_name); // i++; @@ -163,7 +167,7 @@ static GHash *id_weakref_pool_get(ID *id) { GHash *weakinfo_hash= NULL; - if(id_weakref_pool) { + if (id_weakref_pool) { weakinfo_hash= BLI_ghash_lookup(id_weakref_pool, (void *)id); } else { @@ -172,7 +176,7 @@ static GHash *id_weakref_pool_get(ID *id) weakinfo_hash= NULL; } - if(weakinfo_hash==NULL) { + if (weakinfo_hash==NULL) { /* we're using a ghash as a set, could use libHX's HXMAP_SINGULAR but would be an extra dep. */ weakinfo_hash= BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "rna_id"); BLI_ghash_insert(id_weakref_pool, (void *)id, weakinfo_hash); @@ -220,7 +224,7 @@ static PyObject *id_free_weakref_cb(PyObject *weakinfo_capsule, PyObject *weakre GHash *weakinfo_hash= PyCapsule_GetPointer(weakinfo_capsule, NULL); - if(BLI_ghash_size(weakinfo_hash) > 1) { + if (BLI_ghash_size(weakinfo_hash) > 1) { BLI_ghash_remove(weakinfo_hash, weakref, NULL, NULL); } else { /* get the last id and free it */ @@ -246,7 +250,7 @@ static void id_release_weakref_list(struct ID *id, GHash *weakinfo_hash) while (!BLI_ghashIterator_isDone(&weakinfo_hash_iter)) { PyObject *weakref= (PyObject *)BLI_ghashIterator_getKey(&weakinfo_hash_iter); PyObject *item= PyWeakref_GET_OBJECT(weakref); - if(item != Py_None) { + if (item != Py_None) { #ifdef DEBUG_RNA_WEAKREF PyC_ObSpit("id_release_weakref item ", item); @@ -263,7 +267,7 @@ static void id_release_weakref_list(struct ID *id, GHash *weakinfo_hash) BLI_ghash_remove(id_weakref_pool, (void *)id, NULL, NULL); BLI_ghash_free(weakinfo_hash, NULL, NULL); - if(BLI_ghash_size(id_weakref_pool) == 0) { + if (BLI_ghash_size(id_weakref_pool) == 0) { BLI_ghash_free(id_weakref_pool, NULL, NULL); id_weakref_pool= NULL; #ifdef DEBUG_RNA_WEAKREF @@ -275,7 +279,7 @@ static void id_release_weakref_list(struct ID *id, GHash *weakinfo_hash) static void id_release_weakref(struct ID *id) { GHash *weakinfo_hash= BLI_ghash_lookup(id_weakref_pool, (void *)id); - if(weakinfo_hash) { + if (weakinfo_hash) { id_release_weakref_list(id, weakinfo_hash); } } @@ -289,7 +293,7 @@ void BPY_id_release(struct ID *id) #endif #ifdef USE_PYRNA_INVALIDATE_WEAKREF - if(id_weakref_pool) { + if (id_weakref_pool) { PyGILState_STATE gilstate= PyGILState_Ensure(); id_release_weakref(id); @@ -307,13 +311,13 @@ static short rna_disallow_writes= FALSE; static int rna_id_write_error(PointerRNA *ptr, PyObject *key) { ID *id= ptr->id.data; - if(id) { + if (id) { const short idcode= GS(id->name); - if(!ELEM(idcode, ID_WM, ID_SCR)) { /* may need more added here */ + if (!ELEM(idcode, ID_WM, ID_SCR)) { /* may need more added here */ const char *idtype= BKE_idcode_to_name(idcode); const char *pyname; - if(key && PyUnicode_Check(key)) pyname= _PyUnicode_AsString(key); - else pyname= "<UNKNOWN>"; + if (key && PyUnicode_Check(key)) pyname= _PyUnicode_AsString(key); + else pyname= "<UNKNOWN>"; /* make a nice string error */ BLI_assert(idtype != NULL); @@ -386,13 +390,13 @@ static int mathutils_rna_vector_get(BaseMathObject *bmo, int subtype) PYRNA_PROP_CHECK_INT(self); - if(self->prop==NULL) + if (self->prop==NULL) return -1; RNA_property_float_get_array(&self->ptr, self->prop, bmo->data); /* Euler order exception */ - if(subtype==MATHUTILS_CB_SUBTYPE_EUL) { + if (subtype==MATHUTILS_CB_SUBTYPE_EUL) { EulerObject *eul= (EulerObject *)bmo; PropertyRNA *prop_eul_order= NULL; eul->order= pyrna_rotation_euler_order_get(&self->ptr, &prop_eul_order, eul->order); @@ -408,11 +412,11 @@ static int mathutils_rna_vector_set(BaseMathObject *bmo, int subtype) PYRNA_PROP_CHECK_INT(self); - if(self->prop==NULL) + if (self->prop==NULL) return -1; #ifdef USE_PEDANTIC_WRITE - if(rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) { + if (rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) { return -1; } #endif // USE_PEDANTIC_WRITE @@ -426,26 +430,26 @@ static int mathutils_rna_vector_set(BaseMathObject *bmo, int subtype) RNA_property_float_range(&self->ptr, self->prop, &min, &max); - if(min != FLT_MIN || max != FLT_MAX) { + if (min != FLT_MIN || max != FLT_MAX) { int i, len= RNA_property_array_length(&self->ptr, self->prop); - for(i=0; i<len; i++) { + for (i=0; i<len; i++) { CLAMP(bmo->data[i], min, max); } } RNA_property_float_set_array(&self->ptr, self->prop, bmo->data); - if(RNA_property_update_check(self->prop)) { + if (RNA_property_update_check(self->prop)) { RNA_property_update(BPy_GetContext(), &self->ptr, self->prop); } /* Euler order exception */ - if(subtype==MATHUTILS_CB_SUBTYPE_EUL) { + if (subtype==MATHUTILS_CB_SUBTYPE_EUL) { EulerObject *eul= (EulerObject *)bmo; PropertyRNA *prop_eul_order= NULL; short order= pyrna_rotation_euler_order_get(&self->ptr, &prop_eul_order, eul->order); - if(order != eul->order) { + if (order != eul->order) { RNA_property_enum_set(&self->ptr, prop_eul_order, eul->order); - if(RNA_property_update_check(prop_eul_order)) { + if (RNA_property_update_check(prop_eul_order)) { RNA_property_update(BPy_GetContext(), &self->ptr, prop_eul_order); } } @@ -459,7 +463,7 @@ static int mathutils_rna_vector_get_index(BaseMathObject *bmo, int UNUSED(subtyp PYRNA_PROP_CHECK_INT(self); - if(self->prop==NULL) + if (self->prop==NULL) return -1; bmo->data[index]= RNA_property_float_get_index(&self->ptr, self->prop, index); @@ -472,11 +476,11 @@ static int mathutils_rna_vector_set_index(BaseMathObject *bmo, int UNUSED(subtyp PYRNA_PROP_CHECK_INT(self); - if(self->prop==NULL) + if (self->prop==NULL) return -1; #ifdef USE_PEDANTIC_WRITE - if(rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) { + if (rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) { return -1; } #endif // USE_PEDANTIC_WRITE @@ -491,7 +495,7 @@ static int mathutils_rna_vector_set_index(BaseMathObject *bmo, int UNUSED(subtyp RNA_property_float_clamp(&self->ptr, self->prop, &bmo->data[index]); RNA_property_float_set_index(&self->ptr, self->prop, index, bmo->data[index]); - if(RNA_property_update_check(self->prop)) { + if (RNA_property_update_check(self->prop)) { RNA_property_update(BPy_GetContext(), &self->ptr, self->prop); } @@ -516,7 +520,7 @@ static int mathutils_rna_matrix_get(BaseMathObject *bmo, int UNUSED(subtype)) PYRNA_PROP_CHECK_INT(self); - if(self->prop==NULL) + if (self->prop==NULL) return -1; RNA_property_float_get_array(&self->ptr, self->prop, bmo->data); @@ -529,11 +533,11 @@ static int mathutils_rna_matrix_set(BaseMathObject *bmo, int UNUSED(subtype)) PYRNA_PROP_CHECK_INT(self); - if(self->prop==NULL) + if (self->prop==NULL) return -1; #ifdef USE_PEDANTIC_WRITE - if(rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) { + if (rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) { return -1; } #endif // USE_PEDANTIC_WRITE @@ -548,7 +552,7 @@ static int mathutils_rna_matrix_set(BaseMathObject *bmo, int UNUSED(subtype)) /* can ignore clamping here */ RNA_property_float_set_array(&self->ptr, self->prop, bmo->data); - if(RNA_property_update_check(self->prop)) { + if (RNA_property_update_check(self->prop)) { RNA_property_update(BPy_GetContext(), &self->ptr, self->prop); } return 0; @@ -565,10 +569,10 @@ static Mathutils_Callback mathutils_rna_matrix_cb= { static short pyrna_rotation_euler_order_get(PointerRNA *ptr, PropertyRNA **prop_eul_order, short order_fallback) { /* attempt to get order */ - if(*prop_eul_order==NULL) + if (*prop_eul_order==NULL) *prop_eul_order= RNA_struct_find_property(ptr, "rotation_mode"); - if(*prop_eul_order) { + if (*prop_eul_order) { short order= RNA_property_enum_get(ptr, *prop_eul_order); if (order >= EULER_ORDER_XYZ && order <= EULER_ORDER_ZYX) /* could be quat or axisangle */ return order; @@ -604,13 +608,13 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) is_thick= (flag & PROP_THICK_WRAP); if (totdim == 1 || (totdim == 2 && subtype == PROP_MATRIX)) { - if(!is_thick) + if (!is_thick) ret= pyrna_prop_CreatePyObject(ptr, prop); /* owned by the mathutils PyObject */ switch(RNA_property_subtype(prop)) { case PROP_ALL_VECTOR_SUBTYPES: - if(len>=2 && len <= 4) { - if(is_thick) { + if (len>=2 && len <= 4) { + if (is_thick) { ret= newVectorObject(NULL, len, Py_NEW, NULL); RNA_property_float_get_array(ptr, prop, ((VectorObject *)ret)->vec); } @@ -622,8 +626,8 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) } break; case PROP_MATRIX: - if(len==16) { - if(is_thick) { + if (len==16) { + if (is_thick) { ret= newMatrixObject(NULL, 4, 4, Py_NEW, NULL); RNA_property_float_get_array(ptr, prop, ((MatrixObject *)ret)->contigPtr); } @@ -634,7 +638,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) } } else if (len==9) { - if(is_thick) { + if (is_thick) { ret= newMatrixObject(NULL, 3, 3, Py_NEW, NULL); RNA_property_float_get_array(ptr, prop, ((MatrixObject *)ret)->contigPtr); } @@ -647,8 +651,8 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) break; case PROP_EULER: case PROP_QUATERNION: - if(len==3) { /* euler */ - if(is_thick) { + if (len==3) { /* euler */ + if (is_thick) { /* attempt to get order, only needed for thick types since wrapped with update via callbacks */ PropertyRNA *prop_eul_order= NULL; short order= pyrna_rotation_euler_order_get(ptr, &prop_eul_order, EULER_ORDER_XYZ); @@ -664,7 +668,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) } } else if (len==4) { - if(is_thick) { + if (is_thick) { ret= newQuaternionObject(NULL, Py_NEW, NULL); RNA_property_float_get_array(ptr, prop, ((QuaternionObject *)ret)->quat); } @@ -677,8 +681,8 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) break; case PROP_COLOR: case PROP_COLOR_GAMMA: - if(len==3) { /* color */ - if(is_thick) { + if (len==3) { /* color */ + if (is_thick) { ret= newColorObject(NULL, Py_NEW, NULL); // TODO, get order from RNA RNA_property_float_get_array(ptr, prop, ((ColorObject *)ret)->col); } @@ -693,8 +697,8 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) } } - if(ret==NULL) { - if(is_thick) { + if (ret==NULL) { + if (is_thick) { /* this is an array we cant reference (since its not thin wrappable) * and cannot be coerced into a mathutils type, so return as a list */ ret= pyrna_prop_array_subscript_slice(NULL, ptr, prop, 0, len, len); @@ -714,7 +718,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) /* same as RNA_enum_value_from_id but raises an exception */ int pyrna_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value, const char *error_prefix) { - if(RNA_enum_value_from_id(item, identifier, value) == 0) { + if (RNA_enum_value_from_id(item, identifier, value) == 0) { const char *enum_str= BPy_enum_as_string(item); PyErr_Format(PyExc_TypeError, "%s: '%.200s' not found in (%s)", @@ -800,14 +804,14 @@ static PyObject *pyrna_struct_str(BPy_StructRNA *self) PyObject *ret; const char *name; - if(!PYRNA_STRUCT_IS_VALID(self)) { + if (!PYRNA_STRUCT_IS_VALID(self)) { return PyUnicode_FromFormat("<bpy_struct, %.200s dead>", Py_TYPE(self)->tp_name); } /* print name if available */ name= RNA_struct_name_get_alloc(&self->ptr, NULL, FALSE); - if(name) { + if (name) { ret= PyUnicode_FromFormat("<bpy_struct, %.200s(\"%.200s\")>", RNA_struct_identifier(self->ptr.type), name); @@ -826,12 +830,12 @@ static PyObject *pyrna_struct_repr(BPy_StructRNA *self) PyObject *tmp_str; PyObject *ret; - if(id == NULL || !PYRNA_STRUCT_IS_VALID(self)) + if (id == NULL || !PYRNA_STRUCT_IS_VALID(self)) return pyrna_struct_str(self); /* fallback */ tmp_str= PyUnicode_FromString(id->name+2); - if(RNA_struct_is_ID(self->ptr.type)) { + if (RNA_struct_is_ID(self->ptr.type)) { ret= PyUnicode_FromFormat("bpy.data.%s[%R]", BKE_idcode_to_name_plural(GS(id->name)), tmp_str); @@ -839,7 +843,7 @@ static PyObject *pyrna_struct_repr(BPy_StructRNA *self) else { const char *path; path= RNA_path_from_ID_to_struct(&self->ptr); - if(path) { + if (path) { ret= PyUnicode_FromFormat("bpy.data.%s[%R].%s", BKE_idcode_to_name_plural(GS(id->name)), tmp_str, @@ -872,7 +876,7 @@ static PyObject *pyrna_prop_str(BPy_PropertyRNA *self) type= RNA_property_type(self->prop); - if(RNA_enum_id_from_value(property_type_items, type, &type_id)==0) { + if (RNA_enum_id_from_value(property_type_items, type, &type_id)==0) { PyErr_SetString(PyExc_RuntimeError, "could not use property type, internal error"); /* should never happen */ return NULL; } @@ -883,23 +887,23 @@ static PyObject *pyrna_prop_str(BPy_PropertyRNA *self) while ((*c++= tolower(*type_id++))) {} ; - if(type==PROP_COLLECTION) { + if (type==PROP_COLLECTION) { len= pyrna_prop_collection_length(self); } else if (RNA_property_array_check(self->prop)) { len= pyrna_prop_array_length((BPy_PropertyArrayRNA *)self); } - if(len != -1) + if (len != -1) sprintf(--c, "[%d]", len); } /* if a pointer, try to print name of pointer target too */ - if(RNA_property_type(self->prop) == PROP_POINTER) { + if (RNA_property_type(self->prop) == PROP_POINTER) { ptr= RNA_property_pointer_get(&self->ptr, self->prop); name= RNA_struct_name_get_alloc(&ptr, NULL, FALSE); - if(name) { + if (name) { ret= PyUnicode_FromFormat("<bpy_%.200s, %.200s.%.200s(\"%.200s\")>", type_fmt, RNA_struct_identifier(self->ptr.type), @@ -909,9 +913,9 @@ static PyObject *pyrna_prop_str(BPy_PropertyRNA *self) return ret; } } - if(RNA_property_type(self->prop) == PROP_COLLECTION) { + if (RNA_property_type(self->prop) == PROP_COLLECTION) { PointerRNA r_ptr; - if(RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { + if (RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { return PyUnicode_FromFormat("<bpy_%.200s, %.200s>", type_fmt, RNA_struct_identifier(r_ptr.type)); @@ -933,13 +937,13 @@ static PyObject *pyrna_prop_repr(BPy_PropertyRNA *self) PYRNA_PROP_CHECK_OBJ(self); - if(id == NULL) + if (id == NULL) return pyrna_prop_str(self); /* fallback */ tmp_str= PyUnicode_FromString(id->name+2); path= RNA_path_from_ID_to_property(&self->ptr, self->prop); - if(path) { + if (path) { ret= PyUnicode_FromFormat("bpy.data.%s[%R].%s", BKE_idcode_to_name_plural(GS(id->name)), tmp_str, @@ -1025,7 +1029,7 @@ static void pyrna_struct_dealloc(BPy_StructRNA *self) #endif #ifdef USE_PYRNA_STRUCT_REFERENCE - if(self->reference) { + if (self->reference) { PyObject_GC_UnTrack(self); pyrna_struct_clear(self); } @@ -1038,13 +1042,13 @@ static void pyrna_struct_dealloc(BPy_StructRNA *self) #ifdef USE_PYRNA_STRUCT_REFERENCE static void pyrna_struct_reference_set(BPy_StructRNA *self, PyObject *reference) { - if(self->reference) { + if (self->reference) { // PyObject_GC_UnTrack(self); /* INITIALIZED TRACKED? */ pyrna_struct_clear(self); } /* reference is now NULL */ - if(reference) { + if (reference) { self->reference= reference; Py_INCREF(reference); // PyObject_GC_Track(self); /* INITIALIZED TRACKED? */ @@ -1082,14 +1086,14 @@ static const char *pyrna_enum_as_string(PointerRNA *ptr, PropertyRNA *prop) int free= FALSE; RNA_property_enum_items(BPy_GetContext(), ptr, prop, &item, NULL, &free); - if(item) { + if (item) { result= BPy_enum_as_string(item); } else { result= ""; } - if(free) + if (free) MEM_freeN(item); return result; @@ -1142,14 +1146,14 @@ int pyrna_set_to_enum_bitfield(EnumPropertyItem *items, PyObject *value, int *r_ while (_PySet_NextEntry(value, &pos, &key, &hash)) { const char *param= _PyUnicode_AsString(key); - if(param==NULL) { + if (param==NULL) { PyErr_Format(PyExc_TypeError, "%.200s expected a string, not %.200s", error_prefix, Py_TYPE(key)->tp_name); return -1; } - if(pyrna_enum_value_from_id(items, param, &ret, error_prefix) < 0) { + if (pyrna_enum_value_from_id(items, param, &ret, error_prefix) < 0) { return -1; } @@ -1178,11 +1182,11 @@ static int pyrna_prop_to_enum_bitfield(PointerRNA *ptr, PropertyRNA *prop, PyObj RNA_property_enum_items(BPy_GetContext(), ptr, prop, &item, NULL, &free); - if(item) { + if (item) { ret= pyrna_set_to_enum_bitfield(item, value, r_value, error_prefix); } else { - if(PySet_GET_SIZE(value)) { + if (PySet_GET_SIZE(value)) { PyErr_Format(PyExc_TypeError, "%.200s: empty enum \"%.200s\" could not have any values assigned", error_prefix, RNA_property_identifier(prop)); @@ -1193,7 +1197,7 @@ static int pyrna_prop_to_enum_bitfield(PointerRNA *ptr, PropertyRNA *prop, PyObj } } - if(free) + if (free) MEM_freeN(item); return ret; @@ -1204,10 +1208,10 @@ PyObject *pyrna_enum_bitfield_to_py(EnumPropertyItem *items, int value) PyObject *ret= PySet_New(NULL); const char *identifier[RNA_ENUM_BITFLAG_SIZE + 1]; - if(RNA_enum_bitflag_identifiers(items, value, identifier)) { + if (RNA_enum_bitflag_identifiers(items, value, identifier)) { PyObject *item; int index; - for(index=0; identifier[index]; index++) { + for (index=0; identifier[index]; index++) { item= PyUnicode_FromString(identifier[index]); PySet_Add(ret, item); Py_DECREF(item); @@ -1221,7 +1225,7 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val) { PyObject *item, *ret= NULL; - if(RNA_property_flag(prop) & PROP_ENUM_FLAG) { + if (RNA_property_flag(prop) & PROP_ENUM_FLAG) { const char *identifier[RNA_ENUM_BITFLAG_SIZE + 1]; ret= PySet_New(NULL); @@ -1229,7 +1233,7 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val) if (RNA_property_enum_bitflag_identifiers(BPy_GetContext(), ptr, prop, val, identifier)) { int index; - for(index=0; identifier[index]; index++) { + for (index=0; identifier[index]; index++) { item= PyUnicode_FromString(identifier[index]); PySet_Add(ret, item); Py_DECREF(item); @@ -1249,7 +1253,7 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val) /* don't throw error here, can't trust blender 100% to give the * right values, python code should not generate error for that */ RNA_property_enum_items(BPy_GetContext(), ptr, prop, &enum_item, NULL, &free); - if(enum_item && enum_item->identifier) { + if (enum_item && enum_item->identifier) { ret= PyUnicode_FromString(enum_item->identifier); } else { @@ -1264,13 +1268,13 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val) PyErr_Warn(PyExc_RuntimeWarning, error_str); #endif - if(ptr_name) + if (ptr_name) MEM_freeN((void *)ptr_name); ret= PyUnicode_FromString(""); } - if(free) + if (free) MEM_freeN(enum_item); /* PyErr_Format(PyExc_AttributeError, @@ -1312,7 +1316,7 @@ PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) buf= RNA_property_string_get_alloc(ptr, prop, buf_fixed, sizeof(buf_fixed)); #ifdef USE_STRING_COERCE /* only file paths get special treatment, they may contain non utf-8 chars */ - if(ELEM3(subtype, PROP_FILEPATH, PROP_DIRPATH, PROP_FILENAME)) { + if (ELEM3(subtype, PROP_FILEPATH, PROP_DIRPATH, PROP_FILENAME)) { ret= PyC_UnicodeFromByte(buf); } else { @@ -1321,7 +1325,7 @@ PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) #else // USE_STRING_COERCE ret= PyUnicode_FromString(buf); #endif // USE_STRING_COERCE - if(buf_fixed != buf) { + if (buf_fixed != buf) { MEM_freeN((void *)buf); } break; @@ -1384,7 +1388,7 @@ int pyrna_pydict_to_props(PointerRNA *ptr, PyObject *kw, int all_args, const cha item= PyDict_GetItemString(kw, arg_name); /* wont set an error */ if (item == NULL) { - if(all_args) { + if (all_args) { PyErr_Format(PyExc_TypeError, "%.200s: keyword \"%.200s\" missing", error_prefix, arg_name ? arg_name : "<UNKNOWN>"); @@ -1439,7 +1443,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb if (RNA_property_array_check(prop)) { /* done getting the length */ - if(pyrna_py_to_array(ptr, prop, data, value, error_prefix) == -1) { + if (pyrna_py_to_array(ptr, prop, data, value, error_prefix) == -1) { return -1; } } @@ -1454,12 +1458,12 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb /* prefer not to have an exception here * however so many poll functions return None or a valid Object. * its a hassle to convert these into a bool before returning, */ - if(RNA_property_flag(prop) & PROP_OUTPUT) + if (RNA_property_flag(prop) & PROP_OUTPUT) param= PyObject_IsTrue(value); else param= PyLong_AsLong(value); - if(param < 0) { + if (param < 0) { PyErr_Format(PyExc_TypeError, "%.200s %.200s.%.200s expected True/False or 0/1, not %.200s", error_prefix, RNA_struct_identifier(ptr->type), @@ -1467,8 +1471,8 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb return -1; } else { - if(data) *((int*)data)= param; - else RNA_property_boolean_set(ptr, prop, param); + if (data) *((int*)data)= param; + else RNA_property_boolean_set(ptr, prop, param); } break; } @@ -1476,7 +1480,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb { int overflow; long param= PyLong_AsLongAndOverflow(value, &overflow); - if(overflow || (param > INT_MAX) || (param < INT_MIN)) { + if (overflow || (param > INT_MAX) || (param < INT_MIN)) { PyErr_Format(PyExc_ValueError, "%.200s %.200s.%.200s value not in 'int' range " "(" STRINGIFY(INT_MIN) ", " STRINGIFY(INT_MAX) ")", @@ -1494,8 +1498,8 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb else { int param_i= (int)param; RNA_property_int_clamp(ptr, prop, ¶m_i); - if(data) *((int*)data)= param_i; - else RNA_property_int_set(ptr, prop, param_i); + if (data) *((int*)data)= param_i; + else RNA_property_int_set(ptr, prop, param_i); } break; } @@ -1511,8 +1515,8 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb } else { RNA_property_float_clamp(ptr, prop, (float *)¶m); - if(data) *((float*)data)= param; - else RNA_property_float_set(ptr, prop, param); + if (data) *((float*)data)= param; + else RNA_property_float_set(ptr, prop, param); } break; } @@ -1522,14 +1526,14 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb #ifdef USE_STRING_COERCE PyObject *value_coerce= NULL; int subtype= RNA_property_subtype(prop); - if(ELEM3(subtype, PROP_FILEPATH, PROP_DIRPATH, PROP_FILENAME)) { + if (ELEM3(subtype, PROP_FILEPATH, PROP_DIRPATH, PROP_FILENAME)) { /* TODO, get size */ param= PyC_UnicodeAsByte(value, &value_coerce); } else { param= _PyUnicode_AsString(value); #ifdef WITH_INTERNATIONAL - if(subtype == PROP_TRANSLATE) { + if (subtype == PROP_TRANSLATE) { param= UI_translate_do_iface(param); } #endif // WITH_INTERNATIONAL @@ -1540,7 +1544,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb #endif // USE_STRING_COERCE if (param==NULL) { - if(PyUnicode_Check(value)) { + if (PyUnicode_Check(value)) { /* there was an error assigning a string type, * rather than setting a new error, prefix the existing one */ @@ -1559,8 +1563,8 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb return -1; } else { - if(data) *((char**)data)= (char *)param; /*XXX, this is suspect but needed for function calls, need to see if theres a better way */ - else RNA_property_string_set(ptr, prop, param); + if (data) *((char**)data)= (char *)param; /*XXX, this is suspect but needed for function calls, need to see if theres a better way */ + else RNA_property_string_set(ptr, prop, param); } #ifdef USE_STRING_COERCE Py_XDECREF(value_coerce); @@ -1572,9 +1576,9 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb int val= 0; /* type checkins is done by each function */ - if(RNA_property_flag(prop) & PROP_ENUM_FLAG) { + if (RNA_property_flag(prop) & PROP_ENUM_FLAG) { /* set of enum items, concatenate all values with OR */ - if(pyrna_prop_to_enum_bitfield(ptr, prop, value, &val, error_prefix) < 0) { + if (pyrna_prop_to_enum_bitfield(ptr, prop, value, &val, error_prefix) < 0) { return -1; } } @@ -1585,8 +1589,8 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb } } - if(data) *((int*)data)= val; - else RNA_property_enum_set(ptr, prop, val); + if (data) *((int*)data)= val; + else RNA_property_enum_set(ptr, prop, val); break; } @@ -1608,7 +1612,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb * this is so bad that its almost a good reason to do away with fake 'self.properties -> self' class mixing * if this causes problems in the future it should be removed. */ - if( (ptr_type == &RNA_AnyType) && + if ((ptr_type == &RNA_AnyType) && (BPy_StructRNA_Check(value)) && (RNA_struct_is_a(((BPy_StructRNA *)value)->ptr.type, &RNA_Operator)) ) { @@ -1624,10 +1628,10 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb } /* another exception, allow to pass a collection as an RNA property */ - if(Py_TYPE(value)==&pyrna_prop_collection_Type) { /* ok to ignore idprop collections */ + if (Py_TYPE(value)==&pyrna_prop_collection_Type) { /* ok to ignore idprop collections */ PointerRNA c_ptr; BPy_PropertyRNA *value_prop= (BPy_PropertyRNA *)value; - if(RNA_property_collection_type_get(&value_prop->ptr, value_prop->prop, &c_ptr)) { + if (RNA_property_collection_type_get(&value_prop->ptr, value_prop->prop, &c_ptr)) { value= pyrna_struct_CreatePyObject(&c_ptr); value_new= value; } @@ -1641,7 +1645,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb } } - if(!BPy_StructRNA_Check(value) && value != Py_None) { + if (!BPy_StructRNA_Check(value) && value != Py_None) { PyErr_Format(PyExc_TypeError, "%.200s %.200s.%.200s expected a %.200s type, not %.200s", error_prefix, RNA_struct_identifier(ptr->type), @@ -1649,14 +1653,14 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb Py_TYPE(value)->tp_name); Py_XDECREF(value_new); return -1; } - else if((flag & PROP_NEVER_NULL) && value == Py_None) { + else if ((flag & PROP_NEVER_NULL) && value == Py_None) { PyErr_Format(PyExc_TypeError, "%.200s %.200s.%.200s does not support a 'None' assignment %.200s type", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), RNA_struct_identifier(ptr_type)); Py_XDECREF(value_new); return -1; } - else if(value != Py_None && ((flag & PROP_ID_SELF_CHECK) && ptr->id.data == ((BPy_StructRNA*)value)->ptr.id.data)) { + else if (value != Py_None && ((flag & PROP_ID_SELF_CHECK) && ptr->id.data == ((BPy_StructRNA*)value)->ptr.id.data)) { PyErr_Format(PyExc_TypeError, "%.200s %.200s.%.200s ID type does not support assignment to its self", error_prefix, RNA_struct_identifier(ptr->type), @@ -1666,18 +1670,18 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb else { BPy_StructRNA *param= (BPy_StructRNA*)value; int raise_error= FALSE; - if(data) { + if (data) { - if(flag & PROP_RNAPTR) { - if(value == Py_None) + if (flag & PROP_RNAPTR) { + if (value == Py_None) memset(data, 0, sizeof(PointerRNA)); else *((PointerRNA*)data)= param->ptr; } - else if(value == Py_None) { + else if (value == Py_None) { *((void**)data)= NULL; } - else if(RNA_struct_is_a(param->ptr.type, ptr_type)) { + else if (RNA_struct_is_a(param->ptr.type, ptr_type)) { *((void**)data)= param->ptr.data; } else { @@ -1686,11 +1690,11 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb } else { /* data==NULL, assign to RNA */ - if(value == Py_None) { + if (value == Py_None) { PointerRNA valueptr= {{NULL}}; RNA_property_pointer_set(ptr, prop, valueptr); } - else if(RNA_struct_is_a(param->ptr.type, ptr_type)) { + else if (RNA_struct_is_a(param->ptr.type, ptr_type)) { RNA_property_pointer_set(ptr, prop, param->ptr); } else { @@ -1705,7 +1709,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb } } - if(raise_error) { + if (raise_error) { PointerRNA tmp; RNA_pointer_create(NULL, ptr_type, NULL, &tmp); PyErr_Format(PyExc_TypeError, @@ -1732,7 +1736,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb lb= (data)? (ListBase*)data: NULL; /* convert a sequence of dict's into a collection */ - if(!PySequence_Check(value)) { + if (!PySequence_Check(value)) { PyErr_Format(PyExc_TypeError, "%.200s %.200s.%.200s expected a sequence for an RNA collection, not %.200s", error_prefix, RNA_struct_identifier(ptr->type), @@ -1741,10 +1745,10 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb } seq_len= PySequence_Size(value); - for(i=0; i < seq_len; i++) { + for (i=0; i < seq_len; i++) { item= PySequence_GetItem(value, i); - if(item==NULL) { + if (item==NULL) { PyErr_Format(PyExc_TypeError, "%.200s %.200s.%.200s failed to get sequence index '%d' for an RNA collection", error_prefix, RNA_struct_identifier(ptr->type), @@ -1753,7 +1757,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb return -1; } - if(PyDict_Check(item)==0) { + if (PyDict_Check(item)==0) { PyErr_Format(PyExc_TypeError, "%.200s %.200s.%.200s expected a each sequence " "member to be a dict for an RNA collection, not %.200s", @@ -1763,7 +1767,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb return -1; } - if(lb) { + if (lb) { link= MEM_callocN(sizeof(CollectionPointerLink), "PyCollectionPointerLink"); link->ptr= itemptr; BLI_addtail(lb, link); @@ -1771,7 +1775,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb else RNA_property_collection_add(ptr, prop, &itemptr); - if(pyrna_pydict_to_props(&itemptr, item, 1, "Converting a python list to an RNA collection")==-1) { + if (pyrna_pydict_to_props(&itemptr, item, 1, "Converting a python list to an RNA collection")==-1) { PyObject *msg= PyC_ExceptionBuffer(); const char *msg_char= _PyUnicode_AsString(msg); @@ -1801,7 +1805,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb } /* Run rna property functions */ - if(RNA_property_update_check(prop)) { + if (RNA_property_update_check(prop)) { RNA_property_update(BPy_GetContext(), ptr, prop); } @@ -1836,7 +1840,7 @@ static int pyrna_py_to_prop_array_index(BPy_PropertyArrayRNA *self, int index, P { int param= PyLong_AsLong(value); - if(param < 0 || param > 1) { + if (param < 0 || param > 1) { PyErr_SetString(PyExc_TypeError, "expected True/False or 0/1"); ret= -1; } @@ -1879,7 +1883,7 @@ static int pyrna_py_to_prop_array_index(BPy_PropertyArrayRNA *self, int index, P } /* Run rna property functions */ - if(RNA_property_update_check(prop)) { + if (RNA_property_update_check(prop)) { RNA_property_update(BPy_GetContext(), ptr, prop); } @@ -1928,13 +1932,13 @@ static int pyrna_prop_collection_bool(BPy_PropertyRNA *self) } +/* notice getting the length of the collection is avoided unless negative + * index is used or to detect internal error with a valid index. + * This is done for faster lookups. */ #define PYRNA_PROP_COLLECTION_ABS_INDEX(ret_err) \ - /* notice getting the length of the collection is avoided unless negative \ - * index is used or to detect internal error with a valid index. \ - * This is done for faster lookups. */ \ - if(keynum < 0) { \ + if (keynum < 0) { \ keynum_abs += RNA_property_collection_length(&self->ptr, self->prop); \ - if(keynum_abs < 0) { \ + if (keynum_abs < 0) { \ PyErr_Format(PyExc_IndexError, \ "bpy_prop_collection[%d]: out of range.", keynum); \ return ret_err; \ @@ -1952,12 +1956,12 @@ static PyObject *pyrna_prop_collection_subscript_int(BPy_PropertyRNA *self, Py_s PYRNA_PROP_COLLECTION_ABS_INDEX(NULL); - if(RNA_property_collection_lookup_int(&self->ptr, self->prop, keynum_abs, &newptr)) { + if (RNA_property_collection_lookup_int(&self->ptr, self->prop, keynum_abs, &newptr)) { return pyrna_struct_CreatePyObject(&newptr); } else { const int len= RNA_property_collection_length(&self->ptr, self->prop); - if(keynum_abs >= len) { + if (keynum_abs >= len) { PyErr_Format(PyExc_IndexError, "bpy_prop_collection[index]: " "index %d out of range, size %d", keynum, len); @@ -1983,12 +1987,19 @@ static int pyrna_prop_collection_ass_subscript_int(BPy_PropertyRNA *self, Py_ssi PYRNA_PROP_COLLECTION_ABS_INDEX(-1); - if(RNA_property_collection_assign_int(&self->ptr, self->prop, keynum_abs, ptr) == 0) { - - PyErr_Format(PyExc_IndexError, - "bpy_prop_collection[index] = value: " - "failed assignment (unknown reason)", keynum); + if (RNA_property_collection_assign_int(&self->ptr, self->prop, keynum_abs, ptr) == 0) { + const int len= RNA_property_collection_length(&self->ptr, self->prop); + if (keynum_abs >= len) { + PyErr_Format(PyExc_IndexError, + "bpy_prop_collection[index] = value: " + "index %d out of range, size %d", keynum, len); + } + else { + PyErr_Format(PyExc_IndexError, + "bpy_prop_collection[index] = value: " + "failed assignment (unknown reason)", keynum); + } return -1; } @@ -2003,12 +2014,13 @@ static PyObject *pyrna_prop_array_subscript_int(BPy_PropertyArrayRNA *self, int len= pyrna_prop_array_length(self); - if(keynum < 0) keynum += len; + if (keynum < 0) keynum += len; - if(keynum >= 0 && keynum < len) + if (keynum >= 0 && keynum < len) return pyrna_prop_array_to_py_index(self, keynum); - PyErr_Format(PyExc_IndexError, "bpy_prop_array[index]: index %d out of range", keynum); + PyErr_Format(PyExc_IndexError, + "bpy_prop_array[index]: index %d out of range", keynum); return NULL; } @@ -2018,7 +2030,7 @@ static PyObject *pyrna_prop_collection_subscript_str(BPy_PropertyRNA *self, cons PYRNA_PROP_CHECK_OBJ(self); - if(RNA_property_collection_lookup_string(&self->ptr, self->prop, keyname, &newptr)) + if (RNA_property_collection_lookup_string(&self->ptr, self->prop, keyname, &newptr)) return pyrna_struct_CreatePyObject(&newptr); PyErr_Format(PyExc_KeyError, "bpy_prop_collection[key]: key \"%.200s\" not found", keyname); @@ -2039,22 +2051,22 @@ static PyObject *pyrna_prop_collection_subscript_slice(BPy_PropertyRNA *self, Py list= PyList_New(0); /* first loop up-until the start */ - for(RNA_property_collection_begin(&self->ptr, self->prop, &rna_macro_iter); rna_macro_iter.valid; RNA_property_collection_next(&rna_macro_iter)) { + for (RNA_property_collection_begin(&self->ptr, self->prop, &rna_macro_iter); rna_macro_iter.valid; RNA_property_collection_next(&rna_macro_iter)) { /* PointerRNA itemptr= rna_macro_iter.ptr; */ - if(count == start) { + if (count == start) { break; } count++; } /* add items until stop */ - for(; rna_macro_iter.valid; RNA_property_collection_next(&rna_macro_iter)) { + for (; rna_macro_iter.valid; RNA_property_collection_next(&rna_macro_iter)) { item= pyrna_struct_CreatePyObject(&rna_macro_iter.ptr); PyList_Append(list, item); Py_DECREF(item); count++; - if(count == stop) { + if (count == stop) { break; } } @@ -2091,14 +2103,14 @@ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, Po { float values_stack[PYRNA_STACK_ARRAY]; float *values; - if(length > PYRNA_STACK_ARRAY) { values= PyMem_MALLOC(sizeof(float) * length); } - else { values= values_stack; } + if (length > PYRNA_STACK_ARRAY) { values= PyMem_MALLOC(sizeof(float) * length); } + else { values= values_stack; } RNA_property_float_get_array(ptr, prop, values); - for(count=start; count<stop; count++) + for (count=start; count<stop; count++) PyTuple_SET_ITEM(tuple, count-start, PyFloat_FromDouble(values[count])); - if(values != values_stack) { + if (values != values_stack) { PyMem_FREE(values); } break; @@ -2107,14 +2119,14 @@ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, Po { int values_stack[PYRNA_STACK_ARRAY]; int *values; - if(length > PYRNA_STACK_ARRAY) { values= PyMem_MALLOC(sizeof(int) * length); } - else { values= values_stack; } + if (length > PYRNA_STACK_ARRAY) { values= PyMem_MALLOC(sizeof(int) * length); } + else { values= values_stack; } RNA_property_boolean_get_array(ptr, prop, values); - for(count=start; count<stop; count++) + for (count=start; count<stop; count++) PyTuple_SET_ITEM(tuple, count-start, PyBool_FromLong(values[count])); - if(values != values_stack) { + if (values != values_stack) { PyMem_FREE(values); } break; @@ -2123,14 +2135,14 @@ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, Po { int values_stack[PYRNA_STACK_ARRAY]; int *values; - if(length > PYRNA_STACK_ARRAY) { values= PyMem_MALLOC(sizeof(int) * length); } - else { values= values_stack; } + if (length > PYRNA_STACK_ARRAY) { values= PyMem_MALLOC(sizeof(int) * length); } + else { values= values_stack; } RNA_property_int_get_array(ptr, prop, values); - for(count=start; count<stop; count++) + for (count=start; count<stop; count++) PyTuple_SET_ITEM(tuple, count-start, PyLong_FromSsize_t(values[count])); - if(values != values_stack) { + if (values != values_stack) { PyMem_FREE(values); } break; @@ -2164,28 +2176,28 @@ static PyObject *pyrna_prop_collection_subscript(BPy_PropertyRNA *self, PyObject PySliceObject *key_slice= (PySliceObject *)key; Py_ssize_t step= 1; - if(key_slice->step != Py_None && !_PyEval_SliceIndex(key, &step)) { + if (key_slice->step != Py_None && !_PyEval_SliceIndex(key, &step)) { return NULL; } else if (step != 1) { PyErr_SetString(PyExc_TypeError, "bpy_prop_collection[slice]: slice steps not supported"); return NULL; } - else if(key_slice->start == Py_None && key_slice->stop == Py_None) { + else if (key_slice->start == Py_None && key_slice->stop == Py_None) { return pyrna_prop_collection_subscript_slice(self, 0, PY_SSIZE_T_MAX); } else { Py_ssize_t start= 0, stop= PY_SSIZE_T_MAX; /* avoid PySlice_GetIndicesEx because it needs to know the length ahead of time. */ - if(key_slice->start != Py_None && !_PyEval_SliceIndex(key_slice->start, &start)) return NULL; - if(key_slice->stop != Py_None && !_PyEval_SliceIndex(key_slice->stop, &stop)) return NULL; + if (key_slice->start != Py_None && !_PyEval_SliceIndex(key_slice->start, &start)) return NULL; + if (key_slice->stop != Py_None && !_PyEval_SliceIndex(key_slice->stop, &stop)) return NULL; - if(start < 0 || stop < 0) { + if (start < 0 || stop < 0) { /* only get the length for negative values */ Py_ssize_t len= (Py_ssize_t)RNA_property_collection_length(&self->ptr, self->prop); - if(start < 0) start += len; - if(stop < 0) start += len; + if (start < 0) start += len; + if (stop < 0) start += len; } if (stop - start <= 0) { @@ -2206,16 +2218,16 @@ static PyObject *pyrna_prop_collection_subscript(BPy_PropertyRNA *self, PyObject } /* generic check to see if a PyObject is compatible with a collection - * -1 on failier, 0 on success, sets the error */ + * -1 on failure, 0 on success, sets the error */ static int pyrna_prop_collection_type_check(BPy_PropertyRNA *self, PyObject *value) { StructRNA *prop_srna; - if(value == Py_None) { + if (value == Py_None) { if (RNA_property_flag(self->prop) & PROP_NEVER_NULL) { PyErr_Format(PyExc_TypeError, - "bpy_prop_collection[key] = value: invalid, " - "this collection doesnt support None assignment"); + "bpy_prop_collection[key] = value: invalid, " + "this collection doesnt support None assignment"); return -1; } else { @@ -2229,7 +2241,7 @@ static int pyrna_prop_collection_type_check(BPy_PropertyRNA *self, PyObject *val Py_TYPE(value)->tp_name); return -1; } - else if((prop_srna= RNA_property_pointer_type(&self->ptr, self->prop))) { + else if ((prop_srna= RNA_property_pointer_type(&self->ptr, self->prop))) { StructRNA *value_srna= ((BPy_StructRNA *)value)->ptr.type; if (RNA_struct_is_a(value_srna, prop_srna) == 0) { PyErr_Format(PyExc_TypeError, @@ -2258,7 +2270,7 @@ static int pyrna_prop_collection_ass_subscript(BPy_PropertyRNA *self, PyObject * PYRNA_PROP_CHECK_INT(self); /* validate the assigned value */ - if(value == NULL) { + if (value == NULL) { PyErr_SetString(PyExc_TypeError, "del bpy_prop_collection[key]: not supported"); return -1; @@ -2285,28 +2297,28 @@ static int pyrna_prop_collection_ass_subscript(BPy_PropertyRNA *self, PyObject * PySliceObject *key_slice= (PySliceObject *)key; Py_ssize_t step= 1; - if(key_slice->step != Py_None && !_PyEval_SliceIndex(key, &step)) { + if (key_slice->step != Py_None && !_PyEval_SliceIndex(key, &step)) { return NULL; } else if (step != 1) { PyErr_SetString(PyExc_TypeError, "bpy_prop_collection[slice]: slice steps not supported"); return NULL; } - else if(key_slice->start == Py_None && key_slice->stop == Py_None) { + else if (key_slice->start == Py_None && key_slice->stop == Py_None) { return pyrna_prop_collection_subscript_slice(self, 0, PY_SSIZE_T_MAX); } else { Py_ssize_t start= 0, stop= PY_SSIZE_T_MAX; /* avoid PySlice_GetIndicesEx because it needs to know the length ahead of time. */ - if(key_slice->start != Py_None && !_PyEval_SliceIndex(key_slice->start, &start)) return NULL; - if(key_slice->stop != Py_None && !_PyEval_SliceIndex(key_slice->stop, &stop)) return NULL; + if (key_slice->start != Py_None && !_PyEval_SliceIndex(key_slice->start, &start)) return NULL; + if (key_slice->stop != Py_None && !_PyEval_SliceIndex(key_slice->stop, &stop)) return NULL; - if(start < 0 || stop < 0) { + if (start < 0 || stop < 0) { /* only get the length for negative values */ Py_ssize_t len= (Py_ssize_t)RNA_property_collection_length(&self->ptr, self->prop); - if(start < 0) start += len; - if(stop < 0) start += len; + if (start < 0) start += len; + if (stop < 0) start += len; } if (stop - start <= 0) { @@ -2345,14 +2357,14 @@ static PyObject *pyrna_prop_array_subscript(BPy_PropertyArrayRNA *self, PyObject Py_ssize_t step= 1; PySliceObject *key_slice= (PySliceObject *)key; - if(key_slice->step != Py_None && !_PyEval_SliceIndex(key, &step)) { + if (key_slice->step != Py_None && !_PyEval_SliceIndex(key, &step)) { return NULL; } else if (step != 1) { PyErr_SetString(PyExc_TypeError, "bpy_prop_array[slice]: slice steps not supported"); return NULL; } - else if(key_slice->start == Py_None && key_slice->stop == Py_None) { + else if (key_slice->start == Py_None && key_slice->stop == Py_None) { /* note, no significant advantage with optimizing [:] slice as with collections but include here for consistency with collection slice func */ Py_ssize_t len= (Py_ssize_t)pyrna_prop_array_length(self); return pyrna_prop_array_subscript_slice(self, &self->ptr, self->prop, 0, len, len); @@ -2386,16 +2398,16 @@ static int prop_subscript_ass_array_slice(PointerRNA *ptr, PropertyRNA *prop, in void *values_alloc= NULL; int ret= 0; - if(value_orig == NULL) { + if (value_orig == NULL) { PyErr_SetString(PyExc_TypeError, "bpy_prop_array[slice]= value: deleting with list types is not supported by bpy_struct"); return -1; } - if(!(value=PySequence_Fast(value_orig, "bpy_prop_array[slice]= value: assignment is not a sequence type"))) { + if (!(value=PySequence_Fast(value_orig, "bpy_prop_array[slice]= value: assignment is not a sequence type"))) { return -1; } - if(PySequence_Fast_GET_SIZE(value) != stop-start) { + if (PySequence_Fast_GET_SIZE(value) != stop-start) { Py_DECREF(value); PyErr_SetString(PyExc_TypeError, "bpy_prop_array[slice]= value: resizing bpy_struct arrays isn't supported"); return -1; @@ -2410,36 +2422,36 @@ static int prop_subscript_ass_array_slice(PointerRNA *ptr, PropertyRNA *prop, in float min, max; RNA_property_float_range(ptr, prop, &min, &max); - if(length > PYRNA_STACK_ARRAY) { values= values_alloc= PyMem_MALLOC(sizeof(float) * length); } - else { values= values_stack; } - if(start != 0 || stop != length) /* partial assignment? - need to get the array */ + if (length > PYRNA_STACK_ARRAY) { values= values_alloc= PyMem_MALLOC(sizeof(float) * length); } + else { values= values_stack; } + if (start != 0 || stop != length) /* partial assignment? - need to get the array */ RNA_property_float_get_array(ptr, prop, values); - for(count=start; count<stop; count++) { + for (count=start; count<stop; count++) { fval= PyFloat_AsDouble(PySequence_Fast_GET_ITEM(value, count-start)); CLAMP(fval, min, max); values[count]= fval; } - if(PyErr_Occurred()) ret= -1; - else RNA_property_float_set_array(ptr, prop, values); + if (PyErr_Occurred()) ret= -1; + else RNA_property_float_set_array(ptr, prop, values); break; } case PROP_BOOLEAN: { int values_stack[PYRNA_STACK_ARRAY]; int *values; - if(length > PYRNA_STACK_ARRAY) { values= values_alloc= PyMem_MALLOC(sizeof(int) * length); } - else { values= values_stack; } + if (length > PYRNA_STACK_ARRAY) { values= values_alloc= PyMem_MALLOC(sizeof(int) * length); } + else { values= values_stack; } - if(start != 0 || stop != length) /* partial assignment? - need to get the array */ + if (start != 0 || stop != length) /* partial assignment? - need to get the array */ RNA_property_boolean_get_array(ptr, prop, values); - for(count=start; count<stop; count++) + for (count=start; count<stop; count++) values[count]= PyLong_AsLong(PySequence_Fast_GET_ITEM(value, count-start)); - if(PyErr_Occurred()) ret= -1; - else RNA_property_boolean_set_array(ptr, prop, values); + if (PyErr_Occurred()) ret= -1; + else RNA_property_boolean_set_array(ptr, prop, values); break; } case PROP_INT: @@ -2450,20 +2462,20 @@ static int prop_subscript_ass_array_slice(PointerRNA *ptr, PropertyRNA *prop, in int min, max; RNA_property_int_range(ptr, prop, &min, &max); - if(length > PYRNA_STACK_ARRAY) { values= values_alloc= PyMem_MALLOC(sizeof(int) * length); } - else { values= values_stack; } + if (length > PYRNA_STACK_ARRAY) { values= values_alloc= PyMem_MALLOC(sizeof(int) * length); } + else { values= values_stack; } - if(start != 0 || stop != length) /* partial assignment? - need to get the array */ + if (start != 0 || stop != length) /* partial assignment? - need to get the array */ RNA_property_int_get_array(ptr, prop, values); - for(count=start; count<stop; count++) { + for (count=start; count<stop; count++) { ival= PyLong_AsLong(PySequence_Fast_GET_ITEM(value, count-start)); CLAMP(ival, min, max); values[count]= ival; } - if(PyErr_Occurred()) ret= -1; - else RNA_property_int_set_array(ptr, prop, values); + if (PyErr_Occurred()) ret= -1; + else RNA_property_int_set_array(ptr, prop, values); break; } default: @@ -2473,7 +2485,7 @@ static int prop_subscript_ass_array_slice(PointerRNA *ptr, PropertyRNA *prop, in Py_DECREF(value); - if(values_alloc) { + if (values_alloc) { PyMem_FREE(values_alloc); } @@ -2489,12 +2501,13 @@ static int prop_subscript_ass_array_int(BPy_PropertyArrayRNA *self, Py_ssize_t k len= pyrna_prop_array_length(self); - if(keynum < 0) keynum += len; + if (keynum < 0) keynum += len; - if(keynum >= 0 && keynum < len) + if (keynum >= 0 && keynum < len) return pyrna_py_to_prop_array_index(self, keynum, value); - PyErr_SetString(PyExc_IndexError, "bpy_prop_array[index] = value: index out of range"); + PyErr_SetString(PyExc_IndexError, + "bpy_prop_array[index] = value: index out of range"); return -1; } @@ -2544,8 +2557,8 @@ static int pyrna_prop_array_ass_subscript(BPy_PropertyArrayRNA *self, PyObject * ret= -1; } - if(ret != -1) { - if(RNA_property_update_check(self->prop)) { + if (ret != -1) { + if (RNA_property_update_check(self->prop)) { RNA_property_update(BPy_GetContext(), &self->ptr, self->prop); } } @@ -2604,7 +2617,7 @@ static int pyrna_prop_collection_contains(BPy_PropertyRNA *self, PyObject *value /* key in dict style check */ const char *keyname= _PyUnicode_AsString(value); - if(keyname==NULL) { + if (keyname==NULL) { PyErr_SetString(PyExc_TypeError, "bpy_prop_collection.__contains__: expected a string"); return -1; } @@ -2627,14 +2640,14 @@ static int pyrna_struct_contains(BPy_StructRNA *self, PyObject *value) return -1; } - if(RNA_struct_idprops_check(self->ptr.type)==0) { + if (RNA_struct_idprops_check(self->ptr.type)==0) { PyErr_SetString(PyExc_TypeError, "bpy_struct: this type doesn't support IDProperties"); return -1; } group= RNA_struct_idprops(&self->ptr, 0); - if(!group) + if (!group) return 0; return IDP_GetPropertyFromGroup(group, name) ? 1:0; @@ -2687,26 +2700,26 @@ static PyObject *pyrna_struct_subscript(BPy_StructRNA *self, PyObject *key) PYRNA_STRUCT_CHECK_OBJ(self); - if(RNA_struct_idprops_check(self->ptr.type)==0) { + if (RNA_struct_idprops_check(self->ptr.type)==0) { PyErr_SetString(PyExc_TypeError, "this type doesn't support IDProperties"); return NULL; } - if(name==NULL) { + if (name==NULL) { PyErr_SetString(PyExc_TypeError, "bpy_struct[key]: only strings are allowed as keys of ID properties"); return NULL; } group= RNA_struct_idprops(&self->ptr, 0); - if(group==NULL) { + if (group==NULL) { PyErr_Format(PyExc_KeyError, "bpy_struct[key]: key \"%s\" not found", name); return NULL; } idprop= IDP_GetPropertyFromGroup(group, name); - if(idprop==NULL) { + if (idprop==NULL) { PyErr_Format(PyExc_KeyError, "bpy_struct[key]: key \"%s\" not found", name); return NULL; } @@ -2723,12 +2736,12 @@ static int pyrna_struct_ass_subscript(BPy_StructRNA *self, PyObject *key, PyObje group= RNA_struct_idprops(&self->ptr, 1); #ifdef USE_PEDANTIC_WRITE - if(rna_disallow_writes && rna_id_write_error(&self->ptr, key)) { + if (rna_disallow_writes && rna_id_write_error(&self->ptr, key)) { return -1; } #endif // USE_STRING_COERCE - if(group==NULL) { + if (group==NULL) { PyErr_SetString(PyExc_TypeError, "bpy_struct[key]= val: id properties not supported for this type"); return -1; } @@ -2757,14 +2770,14 @@ static PyObject *pyrna_struct_keys(BPy_PropertyRNA *self) { IDProperty *group; - if(RNA_struct_idprops_check(self->ptr.type)==0) { + if (RNA_struct_idprops_check(self->ptr.type)==0) { PyErr_SetString(PyExc_TypeError, "bpy_struct.keys(): this type doesn't support IDProperties"); return NULL; } group= RNA_struct_idprops(&self->ptr, 0); - if(group==NULL) + if (group==NULL) return PyList_New(0); return BPy_Wrap_GetKeys(group); @@ -2785,14 +2798,14 @@ static PyObject *pyrna_struct_items(BPy_PropertyRNA *self) { IDProperty *group; - if(RNA_struct_idprops_check(self->ptr.type)==0) { + if (RNA_struct_idprops_check(self->ptr.type)==0) { PyErr_SetString(PyExc_TypeError, "bpy_struct.items(): this type doesn't support IDProperties"); return NULL; } group= RNA_struct_idprops(&self->ptr, 0); - if(group==NULL) + if (group==NULL) return PyList_New(0); return BPy_Wrap_GetItems(self->ptr.id.data, group); @@ -2813,14 +2826,14 @@ static PyObject *pyrna_struct_values(BPy_PropertyRNA *self) { IDProperty *group; - if(RNA_struct_idprops_check(self->ptr.type)==0) { + if (RNA_struct_idprops_check(self->ptr.type)==0) { PyErr_SetString(PyExc_TypeError, "bpy_struct.values(): this type doesn't support IDProperties"); return NULL; } group= RNA_struct_idprops(&self->ptr, 0); - if(group==NULL) + if (group==NULL) return PyList_New(0); return BPy_Wrap_GetValues(self->ptr.id.data, group); @@ -2846,7 +2859,7 @@ static PyObject *pyrna_struct_is_property_set(BPy_StructRNA *self, PyObject *arg if (!PyArg_ParseTuple(args, "s:is_property_set", &name)) return NULL; - if((prop= RNA_struct_find_property(&self->ptr, name)) == NULL) { + if ((prop= RNA_struct_find_property(&self->ptr, name)) == NULL) { PyErr_Format(PyExc_TypeError, "%.200s.is_property_set(\"%.200s\") not found", RNA_struct_identifier(self->ptr.type), name); @@ -2855,9 +2868,9 @@ static PyObject *pyrna_struct_is_property_set(BPy_StructRNA *self, PyObject *arg /* double property lookup, could speed up */ /* return PyBool_FromLong(RNA_property_is_set(&self->ptr, name)); */ - if(RNA_property_flag(prop) & PROP_IDPROPERTY) { + if (RNA_property_flag(prop) & PROP_IDPROPERTY) { IDProperty *group= RNA_struct_idprops(&self->ptr, 0); - if(group) { + if (group) { ret= IDP_GetPropertyFromGroup(group, name) ? 1:0; } else { @@ -2889,7 +2902,7 @@ static PyObject *pyrna_struct_is_property_hidden(BPy_StructRNA *self, PyObject * if (!PyArg_ParseTuple(args, "s:is_property_hidden", &name)) return NULL; - if((prop= RNA_struct_find_property(&self->ptr, name)) == NULL) { + if ((prop= RNA_struct_find_property(&self->ptr, name)) == NULL) { PyErr_Format(PyExc_TypeError, "%.200s.is_property_hidden(\"%.200s\") not found", RNA_struct_identifier(self->ptr.type), name); @@ -2924,10 +2937,10 @@ static PyObject *pyrna_struct_path_resolve(BPy_StructRNA *self, PyObject *args) return NULL; if (RNA_path_resolve_full(&self->ptr, path, &r_ptr, &r_prop, &index)) { - if(r_prop) { - if(index != -1) { - if(index >= RNA_property_array_length(&r_ptr, r_prop) || index < 0) { - PyErr_Format(PyExc_TypeError, + if (r_prop) { + if (index != -1) { + if (index >= RNA_property_array_length(&r_ptr, r_prop) || index < 0) { + PyErr_Format(PyExc_IndexError, "%.200s.path_resolve(\"%.200s\") index out of range", RNA_struct_identifier(self->ptr.type), path); return NULL; @@ -2937,7 +2950,7 @@ static PyObject *pyrna_struct_path_resolve(BPy_StructRNA *self, PyObject *args) } } else { - if(coerce == Py_False) { + if (coerce == Py_False) { return pyrna_prop_CreatePyObject(&r_ptr, r_prop); } else { @@ -2950,7 +2963,7 @@ static PyObject *pyrna_struct_path_resolve(BPy_StructRNA *self, PyObject *args) } } else { - PyErr_Format(PyExc_TypeError, + PyErr_Format(PyExc_ValueError, "%.200s.path_resolve(\"%.200s\") could not be resolved", RNA_struct_identifier(self->ptr.type), path); return NULL; @@ -2965,7 +2978,7 @@ PyDoc_STRVAR(pyrna_struct_path_from_id_doc, " :arg property: Optional property name which can be used if the path is\n" " to a property of this object.\n" " :type property: string\n" -" :return: The path from :class:`bpy_struct.id_data`\n" +" :return: The path from :class:`bpy.types.bpy_struct.id_data`\n" " to this struct and property (when given).\n" " :rtype: str\n" ); @@ -2981,10 +2994,10 @@ static PyObject *pyrna_struct_path_from_id(BPy_StructRNA *self, PyObject *args) if (!PyArg_ParseTuple(args, "|s:path_from_id", &name)) return NULL; - if(name) { + if (name) { prop= RNA_struct_find_property(&self->ptr, name); - if(prop==NULL) { - PyErr_Format(PyExc_TypeError, + if (prop==NULL) { + PyErr_Format(PyExc_AttributeError, "%.200s.path_from_id(\"%.200s\") not found", RNA_struct_identifier(self->ptr.type), name); return NULL; @@ -2996,14 +3009,14 @@ static PyObject *pyrna_struct_path_from_id(BPy_StructRNA *self, PyObject *args) path= RNA_path_from_ID_to_struct(&self->ptr); } - if(path==NULL) { - if(name) { - PyErr_Format(PyExc_TypeError, + if (path==NULL) { + if (name) { + PyErr_Format(PyExc_ValueError, "%.200s.path_from_id(\"%s\") found but does not support path creation", RNA_struct_identifier(self->ptr.type), name); } else { - PyErr_Format(PyExc_TypeError, + PyErr_Format(PyExc_ValueError, "%.200s.path_from_id() does not support path creation for this type", RNA_struct_identifier(self->ptr.type)); } @@ -3021,7 +3034,7 @@ PyDoc_STRVAR(pyrna_prop_path_from_id_doc, "\n" " Returns the data path from the ID to this property (string).\n" "\n" -" :return: The path from :class:`bpy_struct.id_data` to this property.\n" +" :return: The path from :class:`bpy.types.bpy_struct.id_data` to this property.\n" " :rtype: str\n" ); static PyObject *pyrna_prop_path_from_id(BPy_PropertyRNA *self) @@ -3032,8 +3045,8 @@ static PyObject *pyrna_prop_path_from_id(BPy_PropertyRNA *self) path= RNA_path_from_ID_to_property(&self->ptr, self->prop); - if(path==NULL) { - PyErr_Format(PyExc_TypeError, + if (path==NULL) { + PyErr_Format(PyExc_ValueError, "%.200s.%.200s.path_from_id() does not support path creation for this type", RNA_struct_identifier(self->ptr.type), RNA_property_identifier(prop)); return NULL; @@ -3052,7 +3065,7 @@ PyDoc_STRVAR(pyrna_struct_type_recast_doc, " such as textures can be changed at runtime.\n" "\n" " :return: a new instance of this object with the type initialized again.\n" -" :rtype: subclass of :class:`bpy_struct`\n" +" :rtype: subclass of :class:`bpy.types.bpy_struct`\n" ); static PyObject *pyrna_struct_type_recast(BPy_StructRNA *self) { @@ -3072,14 +3085,14 @@ static void pyrna_dir_members_py(PyObject *list, PyObject *self) dict_ptr= _PyObject_GetDictPtr((PyObject *)self); - if(dict_ptr && (dict=*dict_ptr)) { + if (dict_ptr && (dict=*dict_ptr)) { list_tmp= PyDict_Keys(dict); PyList_SetSlice(list, INT_MAX, INT_MAX, list_tmp); Py_DECREF(list_tmp); } dict= ((PyTypeObject *)Py_TYPE(self))->tp_dict; - if(dict) { + if (dict) { list_tmp= PyDict_Keys(dict); PyList_SetSlice(list, INT_MAX, INT_MAX, list_tmp); Py_DECREF(list_tmp); @@ -3120,13 +3133,14 @@ static void pyrna_dir_members_rna(PyObject *list, PointerRNA *ptr) RNA_PROP_BEGIN(ptr, itemptr, iterprop) { nameptr= RNA_struct_name_get_alloc(&itemptr, name, sizeof(name)); - if(nameptr) { + if (nameptr) { pystring= PyUnicode_FromString(nameptr); PyList_Append(list, pystring); Py_DECREF(pystring); - if(name != nameptr) + if (name != nameptr) { MEM_freeN(nameptr); + } } } RNA_PROP_END; @@ -3151,11 +3165,11 @@ static PyObject *pyrna_struct_dir(BPy_StructRNA *self) pyrna_dir_members_rna(ret, &self->ptr); - if(self->ptr.type == &RNA_Context) { + if (self->ptr.type == &RNA_Context) { ListBase lb= CTX_data_dir_get(self->ptr.data); LinkData *link; - for(link=lb.first; link; link=link->next) { + for (link=lb.first; link; link=link->next) { pystring= PyUnicode_FromString(link->data); PyList_Append(ret, pystring); Py_DECREF(pystring); @@ -3188,13 +3202,13 @@ static PyObject *pyrna_struct_getattro(BPy_StructRNA *self, PyObject *pyname) PYRNA_STRUCT_CHECK_OBJ(self); - if(name == NULL) { + if (name == NULL) { PyErr_SetString(PyExc_AttributeError, "bpy_struct: __getattr__ must be a string"); ret= NULL; } - else if(name[0]=='_') { // rna can't start with a "_", so for __dict__ and similar we can skip using rna lookups + else if (name[0]=='_') { // rna can't start with a "_", so for __dict__ and similar we can skip using rna lookups /* annoying exception, maybe we need to have different types for this... */ - if((strcmp(name, "__getitem__")==0 || strcmp(name, "__setitem__")==0) && !RNA_struct_idprops_check(self->ptr.type)) { + if ((strcmp(name, "__getitem__")==0 || strcmp(name, "__setitem__")==0) && !RNA_struct_idprops_check(self->ptr.type)) { PyErr_SetString(PyExc_AttributeError, "bpy_struct: no __getitem__ support for this type"); ret= NULL; } @@ -3211,7 +3225,7 @@ static PyObject *pyrna_struct_getattro(BPy_StructRNA *self, PyObject *pyname) } else if (self->ptr.type == &RNA_Context) { bContext *C= self->ptr.data; - if(C==NULL) { + if (C==NULL) { PyErr_Format(PyExc_AttributeError, "bpy_struct: Context is 'NULL', can't get \"%.200s\" from context", name); @@ -3224,10 +3238,10 @@ static PyObject *pyrna_struct_getattro(BPy_StructRNA *self, PyObject *pyname) int done= CTX_data_get(C, name, &newptr, &newlb, &newtype); - if(done==1) { /* found */ + if (done==1) { /* found */ switch(newtype) { case CTX_DATA_TYPE_POINTER: - if(newptr.data == NULL) { + if (newptr.data == NULL) { ret= Py_None; Py_INCREF(ret); } @@ -3242,7 +3256,7 @@ static PyObject *pyrna_struct_getattro(BPy_StructRNA *self, PyObject *pyname) ret= PyList_New(0); - for(link=newlb.first; link; link=link->next) { + for (link=newlb.first; link; link=link->next) { linkptr= pyrna_struct_CreatePyObject(&link->ptr); PyList_Append(ret, linkptr); Py_DECREF(linkptr); @@ -3321,11 +3335,11 @@ static PyObject *pyrna_struct_meta_idprop_getattro(PyObject *cls, PyObject *attr * * Disable for now, this is faking internal behavior in a way thats too tricky to maintain well. */ #if 0 - if(ret == NULL) { // || pyrna_is_deferred_prop(ret) + if (ret == NULL) { // || pyrna_is_deferred_prop(ret) StructRNA *srna= srna_from_self(cls, "StructRNA.__getattr__"); - if(srna) { + if (srna) { PropertyRNA *prop= RNA_struct_type_find_property(srna, _PyUnicode_AsString(attr)); - if(prop) { + if (prop) { PointerRNA tptr; PyErr_Clear(); /* clear error from tp_getattro */ RNA_pointer_create(NULL, &RNA_Property, prop, &tptr); @@ -3344,7 +3358,7 @@ static int pyrna_struct_meta_idprop_setattro(PyObject *cls, PyObject *attr, PyOb StructRNA *srna= srna_from_self(cls, "StructRNA.__setattr__"); const int is_deferred_prop= (value && pyrna_is_deferred_prop(value)); - if(srna && !pyrna_write_check() && (is_deferred_prop || RNA_struct_type_find_property(srna, _PyUnicode_AsString(attr)))) { + if (srna && !pyrna_write_check() && (is_deferred_prop || RNA_struct_type_find_property(srna, _PyUnicode_AsString(attr)))) { PyErr_Format(PyExc_AttributeError, "pyrna_struct_meta_idprop_setattro() " "can't set in readonly state '%.200s.%S'", @@ -3352,10 +3366,10 @@ static int pyrna_struct_meta_idprop_setattro(PyObject *cls, PyObject *attr, PyOb return -1; } - if(srna == NULL) { + if (srna == NULL) { /* allow setting on unregistered classes which can be registered later on */ /* - if(value && is_deferred_prop) { + if (value && is_deferred_prop) { PyErr_Format(PyExc_AttributeError, "pyrna_struct_meta_idprop_setattro() unable to get srna from class '%.200s'", ((PyTypeObject *)cls)->tp_name); @@ -3367,11 +3381,11 @@ static int pyrna_struct_meta_idprop_setattro(PyObject *cls, PyObject *attr, PyOb return PyType_Type.tp_setattro(cls, attr, value); } - if(value) { + if (value) { /* check if the value is a property */ - if(is_deferred_prop) { + if (is_deferred_prop) { int ret= deferred_register_prop(srna, attr, value); - if(ret == -1) { + if (ret == -1) { /* error set */ return ret; } @@ -3410,12 +3424,12 @@ static int pyrna_struct_setattro(BPy_StructRNA *self, PyObject *pyname, PyObject PYRNA_STRUCT_CHECK_INT(self); #ifdef USE_PEDANTIC_WRITE - if(rna_disallow_writes && rna_id_write_error(&self->ptr, pyname)) { + if (rna_disallow_writes && rna_id_write_error(&self->ptr, pyname)) { return -1; } #endif // USE_STRING_COERCE - if(name == NULL) { + if (name == NULL) { PyErr_SetString(PyExc_AttributeError, "bpy_struct: __setattr__ must be a string"); return -1; } @@ -3430,7 +3444,7 @@ static int pyrna_struct_setattro(BPy_StructRNA *self, PyObject *pyname, PyObject else if (self->ptr.type == &RNA_Context) { /* code just raises correct error, context prop's cant be set, unless its apart of the py class */ bContext *C= self->ptr.data; - if(C==NULL) { + if (C==NULL) { PyErr_Format(PyExc_AttributeError, "bpy_struct: Context is 'NULL', can't set \"%.200s\" from context", name); @@ -3443,7 +3457,7 @@ static int pyrna_struct_setattro(BPy_StructRNA *self, PyObject *pyname, PyObject int done= CTX_data_get(C, name, &newptr, &newlb, &newtype); - if(done==1) { + if (done==1) { PyErr_Format(PyExc_AttributeError, "bpy_struct: Context property \"%.200s\" is read-only", name); @@ -3456,8 +3470,8 @@ static int pyrna_struct_setattro(BPy_StructRNA *self, PyObject *pyname, PyObject } /* pyrna_py_to_prop sets its own exceptions */ - if(prop) { - if(value == NULL) { + if (prop) { + if (value == NULL) { PyErr_SetString(PyExc_AttributeError, "bpy_struct: del not supported"); return -1; } @@ -3482,8 +3496,8 @@ static PyObject *pyrna_prop_dir(BPy_PropertyRNA *self) pyrna_dir_members_py(ret, (PyObject *)self); } - if(RNA_property_type(self->prop) == PROP_COLLECTION) { - if(RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { + if (RNA_property_type(self->prop) == PROP_COLLECTION) { + if (RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { pyrna_dir_members_rna(ret, &r_ptr); } } @@ -3501,17 +3515,17 @@ static PyObject *pyrna_prop_collection_getattro(BPy_PropertyRNA *self, PyObject { const char *name= _PyUnicode_AsString(pyname); - if(name == NULL) { + if (name == NULL) { PyErr_SetString(PyExc_AttributeError, "bpy_prop_collection: __getattr__ must be a string"); return NULL; } - else if(name[0] != '_') { + else if (name[0] != '_') { PyObject *ret; PropertyRNA *prop; FunctionRNA *func; PointerRNA r_ptr; - if(RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { + if (RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { if ((prop= RNA_struct_find_property(&r_ptr, name))) { ret= pyrna_prop_to_py(&r_ptr, prop); @@ -3538,10 +3552,10 @@ static PyObject *pyrna_prop_collection_getattro(BPy_PropertyRNA *self, PyObject PyObject *ret= PyObject_GenericGetAttr((PyObject *)self, pyname); - if(ret == NULL && name[0] != '_') { /* avoid inheriting __call__ and similar */ + if (ret == NULL && name[0] != '_') { /* avoid inheriting __call__ and similar */ /* since this is least common case, handle it last */ PointerRNA r_ptr; - if(RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { + if (RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { PyObject *cls; PyObject *error_type, *error_value, *error_traceback; @@ -3551,7 +3565,7 @@ static PyObject *pyrna_prop_collection_getattro(BPy_PropertyRNA *self, PyObject cls= pyrna_struct_Subtype(&r_ptr); /* borrows */ ret= PyObject_GenericGetAttr(cls, pyname); /* restore the original error */ - if(ret == NULL) { + if (ret == NULL) { PyErr_Restore(error_type, error_value, error_traceback); } } @@ -3570,20 +3584,20 @@ static int pyrna_prop_collection_setattro(BPy_PropertyRNA *self, PyObject *pynam PointerRNA r_ptr; #ifdef USE_PEDANTIC_WRITE - if(rna_disallow_writes && rna_id_write_error(&self->ptr, pyname)) { + if (rna_disallow_writes && rna_id_write_error(&self->ptr, pyname)) { return -1; } #endif // USE_STRING_COERCE - if(name == NULL) { + if (name == NULL) { PyErr_SetString(PyExc_AttributeError, "bpy_prop: __setattr__ must be a string"); return -1; } - else if(value == NULL) { + else if (value == NULL) { PyErr_SetString(PyExc_AttributeError, "bpy_prop: del not supported"); return -1; } - else if(RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { + else if (RNA_property_collection_type_get(&self->ptr, self->prop, &r_ptr)) { if ((prop= RNA_struct_find_property(&r_ptr, name))) { /* pyrna_py_to_prop sets its own exceptions */ return pyrna_py_to_prop(&r_ptr, prop, NULL, value, "BPy_PropertyRNA - Attribute (setattr):"); @@ -3602,7 +3616,7 @@ static PyObject *pyrna_prop_collection_idprop_add(BPy_PropertyRNA *self) PointerRNA r_ptr; RNA_property_collection_add(&self->ptr, self->prop, &r_ptr); - if(!r_ptr.data) { + if (!r_ptr.data) { PyErr_SetString(PyExc_TypeError, "bpy_prop_collection.add(): not supported for this collection"); return NULL; } @@ -3620,7 +3634,7 @@ static PyObject *pyrna_prop_collection_idprop_remove(BPy_PropertyRNA *self, PyOb return NULL; } - if(!RNA_property_collection_remove(&self->ptr, self->prop, key)) { + if (!RNA_property_collection_remove(&self->ptr, self->prop, key)) { PyErr_SetString(PyExc_TypeError, "bpy_prop_collection.remove() not supported for this collection"); return NULL; } @@ -3637,7 +3651,7 @@ static PyObject *pyrna_prop_collection_idprop_move(BPy_PropertyRNA *self, PyObje return NULL; } - if(!RNA_property_collection_move(&self->ptr, self->prop, key, pos)) { + if (!RNA_property_collection_move(&self->ptr, self->prop, key, pos)) { PyErr_SetString(PyExc_TypeError, "bpy_prop_collection.move() not supported for this collection"); return NULL; } @@ -3648,7 +3662,7 @@ static PyObject *pyrna_prop_collection_idprop_move(BPy_PropertyRNA *self, PyObje static PyObject *pyrna_struct_get_id_data(BPy_DummyPointerRNA *self) { /* used for struct and pointer since both have a ptr */ - if(self->ptr.id.data) { + if (self->ptr.id.data) { PointerRNA id_ptr; RNA_id_pointer_create((ID *)self->ptr.id.data, &id_ptr); return pyrna_struct_CreatePyObject(&id_ptr); @@ -3657,6 +3671,11 @@ static PyObject *pyrna_struct_get_id_data(BPy_DummyPointerRNA *self) Py_RETURN_NONE; } +static PyObject *pyrna_struct_get_data(BPy_DummyPointerRNA *self) +{ + return pyrna_struct_CreatePyObject(&self->ptr); +} + static PyObject *pyrna_struct_get_rna_type(BPy_PropertyRNA *self) { PointerRNA tptr; @@ -3672,6 +3691,7 @@ static PyObject *pyrna_struct_get_rna_type(BPy_PropertyRNA *self) static PyGetSetDef pyrna_prop_getseters[]= { {(char *)"id_data", (getter)pyrna_struct_get_id_data, (setter)NULL, (char *)"The :class:`bpy.types.ID` object this datablock is from or None, (not available for all data types)", NULL}, + {(char *)"data", (getter)pyrna_struct_get_data, (setter)NULL, (char *)"The data this property is using, *type* :class:`bpy.types.bpy_struct`", NULL}, {(char *)"rna_type", (getter)pyrna_struct_get_rna_type, (setter)NULL, (char *)"The property type for introspection", NULL}, {NULL, NULL, NULL, NULL, NULL} /* Sentinel */ }; @@ -3700,15 +3720,16 @@ static PyObject *pyrna_prop_collection_keys(BPy_PropertyRNA *self) RNA_PROP_BEGIN(&self->ptr, itemptr, self->prop) { nameptr= RNA_struct_name_get_alloc(&itemptr, name, sizeof(name)); - if(nameptr) { + if (nameptr) { /* add to python list */ item= PyUnicode_FromString(nameptr); PyList_Append(ret, item); Py_DECREF(item); /* done */ - if(name != nameptr) + if (name != nameptr) { MEM_freeN(nameptr); + } } } RNA_PROP_END; @@ -3733,13 +3754,13 @@ static PyObject *pyrna_prop_collection_items(BPy_PropertyRNA *self) int i= 0; RNA_PROP_BEGIN(&self->ptr, itemptr, self->prop) { - if(itemptr.data) { + if (itemptr.data) { /* add to python list */ item= PyTuple_New(2); nameptr= RNA_struct_name_get_alloc(&itemptr, name, sizeof(name)); - if(nameptr) { + if (nameptr) { PyTuple_SET_ITEM(item, 0, PyUnicode_FromString(nameptr)); - if(name != nameptr) + if (name != nameptr) MEM_freeN(nameptr); } else { @@ -3779,7 +3800,7 @@ PyDoc_STRVAR(pyrna_struct_get_doc, " Returns the value of the custom property assigned to key or default\n" " when not found (matches pythons dictionary function of the same name).\n" "\n" -" :arg key: The key assosiated with the custom property.\n" +" :arg key: The key associated with the custom property.\n" " :type key: string\n" " :arg default: Optional argument for the value to return if\n" " *key* is not found.\n" @@ -3800,17 +3821,18 @@ static PyObject *pyrna_struct_get(BPy_StructRNA *self, PyObject *args) return NULL; /* mostly copied from BPy_IDGroup_Map_GetItem */ - if(RNA_struct_idprops_check(self->ptr.type)==0) { + if (RNA_struct_idprops_check(self->ptr.type)==0) { PyErr_SetString(PyExc_TypeError, "this type doesn't support IDProperties"); return NULL; } group= RNA_struct_idprops(&self->ptr, 0); - if(group) { + if (group) { idprop= IDP_GetPropertyFromGroup(group, key); - if(idprop) + if (idprop) { return BPy_IDGroup_WrapData(self->ptr.id.data, idprop); + } } return Py_INCREF(def), def; @@ -3856,7 +3878,7 @@ static PyObject *pyrna_prop_collection_get(BPy_PropertyRNA *self, PyObject *args if (!PyArg_ParseTuple(args, "s|O:get", &key, &def)) return NULL; - if(RNA_property_collection_lookup_string(&self->ptr, self->prop, key, &newptr)) + if (RNA_property_collection_lookup_string(&self->ptr, self->prop, key, &newptr)) return pyrna_struct_CreatePyObject(&newptr); return Py_INCREF(def), def; @@ -3897,19 +3919,19 @@ static int foreach_parse_args( *size= *attr_tot= *attr_signed= FALSE; *raw_type= PROP_RAW_UNSET; - if(!PyArg_ParseTuple(args, "sO", attr, seq) || (!PySequence_Check(*seq) && PyObject_CheckBuffer(*seq))) { + if (!PyArg_ParseTuple(args, "sO", attr, seq) || (!PySequence_Check(*seq) && PyObject_CheckBuffer(*seq))) { PyErr_SetString(PyExc_TypeError, "foreach_get(attr, sequence) expects a string and a sequence"); return -1; } *tot= PySequence_Size(*seq); // TODO - buffer may not be a sequence! array.array() is tho. - if(*tot>0) { + if (*tot>0) { foreach_attr_type(self, *attr, raw_type, attr_tot, attr_signed); *size= RNA_raw_type_sizeof(*raw_type); #if 0 // works fine but not strictly needed, we could allow RNA_property_collection_raw_* to do the checks - if((*attr_tot) < 1) + if ((*attr_tot) < 1) *attr_tot= 1; if (RNA_property_type(self->prop) == PROP_COLLECTION) @@ -3921,7 +3943,7 @@ static int foreach_parse_args( target_tot= array_tot * (*attr_tot); /* rna_access.c - rna_raw_access(...) uses this same method */ - if(target_tot != (*tot)) { + if (target_tot != (*tot)) { PyErr_Format(PyExc_TypeError, "foreach_get(attr, sequence) sequence length mismatch given %d, needed %d", *tot, target_tot); @@ -3945,14 +3967,14 @@ static int foreach_compat_buffer(RawPropertyType raw_type, int attr_signed, cons switch(raw_type) { case PROP_RAW_CHAR: - if (attr_signed) return (f=='b') ? 1:0; - else return (f=='B') ? 1:0; + if (attr_signed) return (f=='b') ? 1:0; + else return (f=='B') ? 1:0; case PROP_RAW_SHORT: - if (attr_signed) return (f=='h') ? 1:0; - else return (f=='H') ? 1:0; + if (attr_signed) return (f=='h') ? 1:0; + else return (f=='H') ? 1:0; case PROP_RAW_INT: - if (attr_signed) return (f=='i') ? 1:0; - else return (f=='I') ? 1:0; + if (attr_signed) return (f=='i') ? 1:0; + else return (f=='I') ? 1:0; case PROP_RAW_FLOAT: return (f=='f') ? 1:0; case PROP_RAW_DOUBLE: @@ -3976,17 +3998,17 @@ static PyObject *foreach_getset(BPy_PropertyRNA *self, PyObject *args, int set) int tot, size, attr_tot, attr_signed; RawPropertyType raw_type; - if(foreach_parse_args(self, args, &attr, &seq, &tot, &size, &raw_type, &attr_tot, &attr_signed) < 0) + if (foreach_parse_args(self, args, &attr, &seq, &tot, &size, &raw_type, &attr_tot, &attr_signed) < 0) return NULL; - if(tot==0) + if (tot==0) Py_RETURN_NONE; - if(set) { /* get the array from python */ + if (set) { /* get the array from python */ buffer_is_compat= FALSE; - if(PyObject_CheckBuffer(seq)) { + if (PyObject_CheckBuffer(seq)) { Py_buffer buf; PyObject_GetBuffer(seq, &buf, PyBUF_SIMPLE | PyBUF_FORMAT); @@ -3994,7 +4016,7 @@ static PyObject *foreach_getset(BPy_PropertyRNA *self, PyObject *args, int set) buffer_is_compat= foreach_compat_buffer(raw_type, attr_signed, buf.format); - if(buffer_is_compat) { + if (buffer_is_compat) { ok= RNA_property_collection_raw_set(NULL, &self->ptr, self->prop, attr, buf.buf, raw_type, tot); } @@ -4002,10 +4024,10 @@ static PyObject *foreach_getset(BPy_PropertyRNA *self, PyObject *args, int set) } /* could not use the buffer, fallback to sequence */ - if(!buffer_is_compat) { + if (!buffer_is_compat) { array= PyMem_Malloc(size * tot); - for( ; i<tot; i++) { + for ( ; i<tot; i++) { item= PySequence_GetItem(seq, i); switch(raw_type) { case PROP_RAW_CHAR: @@ -4037,7 +4059,7 @@ static PyObject *foreach_getset(BPy_PropertyRNA *self, PyObject *args, int set) } else { buffer_is_compat= FALSE; - if(PyObject_CheckBuffer(seq)) { + if (PyObject_CheckBuffer(seq)) { Py_buffer buf; PyObject_GetBuffer(seq, &buf, PyBUF_SIMPLE | PyBUF_FORMAT); @@ -4045,7 +4067,7 @@ static PyObject *foreach_getset(BPy_PropertyRNA *self, PyObject *args, int set) buffer_is_compat= foreach_compat_buffer(raw_type, attr_signed, buf.format); - if(buffer_is_compat) { + if (buffer_is_compat) { ok= RNA_property_collection_raw_get(NULL, &self->ptr, self->prop, attr, buf.buf, raw_type, tot); } @@ -4053,14 +4075,14 @@ static PyObject *foreach_getset(BPy_PropertyRNA *self, PyObject *args, int set) } /* could not use the buffer, fallback to sequence */ - if(!buffer_is_compat) { + if (!buffer_is_compat) { array= PyMem_Malloc(size * tot); ok= RNA_property_collection_raw_get(NULL, &self->ptr, self->prop, attr, array, raw_type, tot); - if(!ok) i= tot; /* skip the loop */ + if (!ok) i= tot; /* skip the loop */ - for( ; i<tot; i++) { + for ( ; i<tot; i++) { switch(raw_type) { case PROP_RAW_CHAR: @@ -4092,10 +4114,10 @@ static PyObject *foreach_getset(BPy_PropertyRNA *self, PyObject *args, int set) } } - if(array) + if (array) PyMem_Free(array); - if(PyErr_Occurred()) { + if (PyErr_Occurred()) { /* Maybe we could make our own error */ PyErr_Print(); PyErr_SetString(PyExc_TypeError, "couldn't access the py sequence"); @@ -4165,7 +4187,7 @@ static PyObject *pyrna_prop_array_iter(BPy_PropertyArrayRNA *self) /* we know this is a list so no need to PyIter_Check * otherwise it could be NULL (unlikely) if conversion failed */ - if(ret) { + if (ret) { iter= PyObject_GetIter(ret); Py_DECREF(ret); } @@ -4185,7 +4207,7 @@ static PyObject *pyrna_prop_collection_iter(BPy_PropertyRNA *self) /* we know this is a list so no need to PyIter_Check * otherwise it could be NULL (unlikely) if conversion failed */ - if(ret) { + if (ret) { iter= PyObject_GetIter(ret); Py_DECREF(ret); } @@ -4257,7 +4279,7 @@ static struct PyMethodDef pyrna_prop_collection_idprop_methods[]= { * todo - also accept useful args */ static PyObject *pyrna_struct_new(PyTypeObject *type, PyObject *args, PyObject *UNUSED(kwds)) { - if(PyTuple_GET_SIZE(args) == 1) { + if (PyTuple_GET_SIZE(args) == 1) { BPy_StructRNA *base= (BPy_StructRNA *)PyTuple_GET_ITEM(args, 0); if (Py_TYPE(base) == type) { Py_INCREF(base); @@ -4278,7 +4300,7 @@ static PyObject *pyrna_struct_new(PyTypeObject *type, PyObject *args, PyObject * * Keep this since it could be useful. */ BPy_StructRNA *ret; - if((ret= (BPy_StructRNA *)type->tp_alloc(type, 0))) { + if ((ret= (BPy_StructRNA *)type->tp_alloc(type, 0))) { ret->ptr= base->ptr; } /* pass on exception & NULL if tp_alloc fails */ @@ -4331,7 +4353,7 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat int type= RNA_property_type(prop); int flag= RNA_property_flag(prop); - if(RNA_property_array_check(prop)) { + if (RNA_property_array_check(prop)) { int a, len; if (flag & PROP_DYNAMIC) { @@ -4349,12 +4371,12 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat switch (type) { case PROP_BOOLEAN: ret= PyTuple_New(len); - for(a=0; a<len; a++) + for (a=0; a<len; a++) PyTuple_SET_ITEM(ret, a, PyBool_FromLong(((int*)data)[a])); break; case PROP_INT: ret= PyTuple_New(len); - for(a=0; a<len; a++) + for (a=0; a<len; a++) PyTuple_SET_ITEM(ret, a, PyLong_FromSsize_t((Py_ssize_t)((int*)data)[a])); break; case PROP_FLOAT: @@ -4364,7 +4386,7 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat ret= newVectorObject(data, len, Py_NEW, NULL); break; case PROP_MATRIX: - if(len==16) { + if (len==16) { ret= newMatrixObject(data, 4, 4, Py_NEW, NULL); break; } @@ -4376,7 +4398,7 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat #endif default: ret= PyTuple_New(len); - for(a=0; a<len; a++) + for (a=0; a<len; a++) PyTuple_SET_ITEM(ret, a, PyFloat_FromDouble(((float*)data)[a])); } @@ -4413,7 +4435,7 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat data_ch= *(char **)data; #ifdef USE_STRING_COERCE - if(ELEM3(subtype, PROP_FILEPATH, PROP_DIRPATH, PROP_FILENAME)) { + if (ELEM3(subtype, PROP_FILEPATH, PROP_DIRPATH, PROP_FILENAME)) { ret= PyC_UnicodeFromByte(data_ch); } else { @@ -4439,12 +4461,12 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat PointerRNA newptr; StructRNA *ptype= RNA_property_pointer_type(ptr, prop); - if(flag & PROP_RNAPTR) { + if (flag & PROP_RNAPTR) { /* in this case we get the full ptr */ newptr= *(PointerRNA*)data; } else { - if(RNA_struct_is_ID(ptype)) { + if (RNA_struct_is_ID(ptype)) { RNA_id_pointer_create(*(void**)data, &newptr); } else { @@ -4473,7 +4495,7 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat ret= PyList_New(0); - for(link=lb->first; link; link=link->next) { + for (link=lb->first; link; link=link->next) { linkptr= pyrna_struct_CreatePyObject(&link->ptr); PyList_Append(ret, linkptr); Py_DECREF(linkptr); @@ -4503,8 +4525,8 @@ static PyObject *small_dict_get_item_string(PyObject *dict, const char *key_look PyObject *value = NULL; while (PyDict_Next(dict, &pos, &key, &value)) { - if(PyUnicode_Check(key)) { - if(strcmp(key_lookup, _PyUnicode_AsString(key))==0) { + if (PyUnicode_Check(key)) { + if (strcmp(key_lookup, _PyUnicode_AsString(key))==0) { return value; } } @@ -4540,12 +4562,12 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject /* Should never happen but it does in rare cases */ BLI_assert(self_ptr != NULL); - if(self_ptr==NULL) { + if (self_ptr==NULL) { PyErr_SetString(PyExc_RuntimeError, "rna functions internal rna pointer is NULL, this is a bug. aborting"); return NULL; } - if(self_func==NULL) { + if (self_func==NULL) { PyErr_Format(PyExc_RuntimeError, "%.200s.<unknown>(): rna function internal function is NULL, this is a bug. aborting", RNA_struct_identifier(self_ptr->type)); @@ -4575,7 +4597,7 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject parms_len= RNA_parameter_list_arg_count(&parms); ret_len= 0; - if(pyargs_len + pykw_len > parms_len) { + if (pyargs_len + pykw_len > parms_len) { RNA_parameter_list_end(&iter); PyErr_Format(PyExc_TypeError, "%.200s.%.200s(): takes at most %d arguments, got %d", @@ -4612,7 +4634,7 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject #else item= small_dict_get_item_string(kw, RNA_property_identifier(parm)); /* borrow ref */ #endif - if(item) + if (item) kw_tot++; /* make sure invalid keywords are not given */ kw_arg= TRUE; @@ -4621,7 +4643,7 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject i++; /* current argument */ if (item==NULL) { - if(flag & PROP_REQUIRED) { + if (flag & PROP_REQUIRED) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s(): required parameter \"%.200s\" not specified", RNA_struct_identifier(self_ptr->type), @@ -4636,8 +4658,8 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject } #ifdef DEBUG_STRING_FREE - if(item) { - if(PyUnicode_Check(item)) { + if (item) { + if (PyUnicode_Check(item)) { item= PyUnicode_FromString(_PyUnicode_AsString(item)); PyList_Append(string_free_ls, item); Py_DECREF(item); @@ -4646,13 +4668,13 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject #endif err= pyrna_py_to_prop(&funcptr, parm, iter.data, item, ""); - if(err!=0) { + if (err!=0) { /* the error generated isn't that useful, so generate it again with a useful prefix * could also write a function to prepend to error messages */ char error_prefix[512]; PyErr_Clear(); /* re-raise */ - if(kw_arg==TRUE) + if (kw_arg==TRUE) BLI_snprintf(error_prefix, sizeof(error_prefix), "%.200s.%.200s(): error with keyword argument \"%.200s\" - ", RNA_struct_identifier(self_ptr->type), @@ -4679,7 +4701,7 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject * the if below is quick, checking if it passed less keyword args then we gave. * (Dont overwrite the error if we have one, otherwise can skip important messages and confuse with args) */ - if(err == 0 && kw && (pykw_len > kw_tot)) { + if (err == 0 && kw && (pykw_len > kw_tot)) { PyObject *key, *value; Py_ssize_t pos= 0; @@ -4694,13 +4716,13 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject arg_name= _PyUnicode_AsString(key); found= FALSE; - if(arg_name==NULL) { /* unlikely the argname is not a string but ignore if it is*/ + if (arg_name==NULL) { /* unlikely the argname is not a string but ignore if it is*/ PyErr_Clear(); } else { /* Search for arg_name */ RNA_parameter_list_begin(&parms, &iter); - for(; iter.valid; RNA_parameter_list_next(&iter)) { + for (; iter.valid; RNA_parameter_list_next(&iter)) { parm= iter.parm; if (strcmp(arg_name, RNA_property_identifier(parm))==0) { found= TRUE; @@ -4710,7 +4732,7 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject RNA_parameter_list_end(&iter); - if(found==FALSE) { + if (found==FALSE) { BLI_dynstr_appendf(bad_args, first ? "%s" : ", %s", arg_name); first= FALSE; } @@ -4721,9 +4743,9 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject first= TRUE; RNA_parameter_list_begin(&parms, &iter); - for(; iter.valid; RNA_parameter_list_next(&iter)) { + for (; iter.valid; RNA_parameter_list_next(&iter)) { parm= iter.parm; - if(RNA_property_flag(parm) & PROP_OUTPUT) + if (RNA_property_flag(parm) & PROP_OUTPUT) continue; BLI_dynstr_appendf(good_args, first ? "%s" : ", %s", RNA_property_identifier(parm)); @@ -4760,7 +4782,7 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject err= (BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE)); /* return value */ - if(err != -1) { + if (err != -1) { if (ret_len > 0) { if (ret_len > 1) { ret= PyTuple_New(ret_len); @@ -4768,7 +4790,7 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject RNA_parameter_list_begin(&parms, &iter); - for(; iter.valid; RNA_parameter_list_next(&iter)) { + for (; iter.valid; RNA_parameter_list_next(&iter)) { parm= iter.parm; flag= RNA_property_flag(parm); @@ -4782,7 +4804,7 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject ret= pyrna_param_to_py(&funcptr, pret_single, retdata_single); /* possible there is an error in conversion */ - if(ret==NULL) + if (ret==NULL) err= -1; } } @@ -4790,7 +4812,7 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject #ifdef DEBUG_STRING_FREE - // if(PyList_GET_SIZE(string_free_ls)) printf("%.200s.%.200s(): has %d strings\n", RNA_struct_identifier(self_ptr->type), RNA_function_identifier(self_func), (int)PyList_GET_SIZE(string_free_ls)); + // if (PyList_GET_SIZE(string_free_ls)) printf("%.200s.%.200s(): has %d strings\n", RNA_struct_identifier(self_ptr->type), RNA_function_identifier(self_func), (int)PyList_GET_SIZE(string_free_ls)); Py_DECREF(string_free_ls); #undef DEBUG_STRING_FREE #endif @@ -5526,7 +5548,7 @@ static PyObject *pyrna_prop_collection_iter(BPy_PropertyRNA *self) static PyObject *pyrna_prop_collection_iter_next(BPy_PropertyCollectionIterRNA *self) { - if(self->iter.valid == FALSE) { + if (self->iter.valid == FALSE) { PyErr_SetString(PyExc_StopIteration, "pyrna_prop_collection_iter stop"); return NULL; } @@ -5534,8 +5556,8 @@ static PyObject *pyrna_prop_collection_iter_next(BPy_PropertyCollectionIterRNA * BPy_StructRNA *pyrna= (BPy_StructRNA *)pyrna_struct_CreatePyObject(&self->iter.ptr); #ifdef USE_PYRNA_STRUCT_REFERENCE - if(pyrna) { /* unlikely but may fail */ - if((PyObject *)pyrna != Py_None) { + if (pyrna) { /* unlikely but may fail */ + if ((PyObject *)pyrna != Py_None) { /* hold a reference to the iterator since it may have * allocated memory 'pyrna' needs. eg: introspecting dynamic enum's */ /* TODO, we could have an api call to know if this is needed since most collections don't */ @@ -5609,13 +5631,13 @@ static PyObject* pyrna_srna_PyBase(StructRNA *srna) //, PyObject *bpy_types_dict /* get the base type */ base= RNA_struct_base(srna); - if(base && base != srna) { + if (base && base != srna) { /*/printf("debug subtype %s %p\n", RNA_struct_identifier(srna), srna); */ py_base= pyrna_srna_Subtype(base); //, bpy_types_dict); Py_DECREF(py_base); /* srna owns, this is only to pass as an arg */ } - if(py_base==NULL) { + if (py_base==NULL) { py_base= (PyObject *)&pyrna_struct_Type; } @@ -5631,10 +5653,10 @@ static PyObject* pyrna_srna_ExternalType(StructRNA *srna) const char *idname= RNA_struct_identifier(srna); PyObject *newclass; - if(bpy_types_dict==NULL) { + if (bpy_types_dict==NULL) { PyObject *bpy_types= PyImport_ImportModuleLevel((char *)"bpy_types", NULL, NULL, NULL, 0); - if(bpy_types==NULL) { + if (bpy_types==NULL) { PyErr_Print(); PyErr_Clear(); fprintf(stderr, "%s: failed to find 'bpy_types' module\n", __func__); @@ -5647,27 +5669,27 @@ static PyObject* pyrna_srna_ExternalType(StructRNA *srna) newclass= PyDict_GetItemString(bpy_types_dict, idname); /* sanity check, could skip this unless in debug mode */ - if(newclass) { + if (newclass) { PyObject *base_compare= pyrna_srna_PyBase(srna); //PyObject *slots= PyObject_GetAttrString(newclass, "__slots__"); // cant do this because it gets superclasses values! //PyObject *bases= PyObject_GetAttrString(newclass, "__bases__"); // can do this but faster not to. PyObject *tp_bases= ((PyTypeObject *)newclass)->tp_bases; PyObject *tp_slots= PyDict_GetItem(((PyTypeObject *)newclass)->tp_dict, bpy_intern_str___slots__); - if(tp_slots==NULL) { + if (tp_slots==NULL) { fprintf(stderr, "%s: expected class '%s' to have __slots__ defined\n\nSee bpy_types.py\n", __func__, idname); newclass= NULL; } - else if(PyTuple_GET_SIZE(tp_bases)) { + else if (PyTuple_GET_SIZE(tp_bases)) { PyObject *base= PyTuple_GET_ITEM(tp_bases, 0); - if(base_compare != base) { + if (base_compare != base) { fprintf(stderr, "%s: incorrect subclassing of SRNA '%s'\nSee bpy_types.py\n", __func__, idname); PyC_ObSpit("Expected! ", base_compare); newclass= NULL; } else { - if(G.f & G_DEBUG) + if (G.f & G_DEBUG) fprintf(stderr, "SRNA Subclassed: '%s'\n", idname); } } @@ -5706,10 +5728,10 @@ static PyObject* pyrna_srna_Subtype(StructRNA *srna) /* remove __doc__ for now */ // const char *descr= RNA_struct_ui_description(srna); - // if(!descr) descr= "(no docs)"; + // if (!descr) descr= "(no docs)"; // "__doc__", descr - if(RNA_struct_idprops_check(srna) && !PyObject_IsSubclass(py_base, (PyObject *)&pyrna_struct_meta_idprop_Type)) { + if (RNA_struct_idprops_check(srna) && !PyObject_IsSubclass(py_base, (PyObject *)&pyrna_struct_meta_idprop_Type)) { metaclass= (PyObject *)&pyrna_struct_meta_idprop_Type; } else { @@ -5744,7 +5766,7 @@ static PyObject* pyrna_srna_Subtype(StructRNA *srna) /* use for subtyping so we know which srna is used for a PointerRNA */ static StructRNA *srna_from_ptr(PointerRNA *ptr) { - if(ptr->type == &RNA_Struct) { + if (ptr->type == &RNA_Struct) { return ptr->data; } else { @@ -5783,7 +5805,7 @@ PyObject *pyrna_struct_CreatePyObject(PointerRNA *ptr) } } - if(pyrna == NULL) { + if (pyrna == NULL) { PyErr_SetString(PyExc_MemoryError, "couldn't create bpy_struct object"); return NULL; } @@ -5800,7 +5822,7 @@ PyObject *pyrna_struct_CreatePyObject(PointerRNA *ptr) // PyC_ObSpit("NewStructRNA: ", (PyObject *)pyrna); #ifdef USE_PYRNA_INVALIDATE_WEAKREF - if(ptr->id.data) { + if (ptr->id.data) { id_weakref_pool_add(ptr->id.data, (BPy_DummyPointerRNA *)pyrna); } #endif @@ -5818,7 +5840,7 @@ PyObject *pyrna_prop_CreatePyObject(PointerRNA *ptr, PropertyRNA *prop) type= &pyrna_prop_Type; } else { - if((RNA_property_flag(prop) & PROP_IDPROPERTY) == 0) { + if ((RNA_property_flag(prop) & PROP_IDPROPERTY) == 0) { type= &pyrna_prop_collection_Type; } else { @@ -5840,7 +5862,7 @@ PyObject *pyrna_prop_CreatePyObject(PointerRNA *ptr, PropertyRNA *prop) #endif } - if(pyrna == NULL) { + if (pyrna == NULL) { PyErr_SetString(PyExc_MemoryError, "couldn't create BPy_rna object"); return NULL; } @@ -5849,7 +5871,7 @@ PyObject *pyrna_prop_CreatePyObject(PointerRNA *ptr, PropertyRNA *prop) pyrna->prop= prop; #ifdef USE_PYRNA_INVALIDATE_WEAKREF - if(ptr->id.data) { + if (ptr->id.data) { id_weakref_pool_add(ptr->id.data, (BPy_DummyPointerRNA *)pyrna); } #endif @@ -5873,29 +5895,29 @@ void BPY_rna_init(void) #endif /* metaclass */ - if(PyType_Ready(&pyrna_struct_meta_idprop_Type) < 0) + if (PyType_Ready(&pyrna_struct_meta_idprop_Type) < 0) return; - if(PyType_Ready(&pyrna_struct_Type) < 0) + if (PyType_Ready(&pyrna_struct_Type) < 0) return; - if(PyType_Ready(&pyrna_prop_Type) < 0) + if (PyType_Ready(&pyrna_prop_Type) < 0) return; - if(PyType_Ready(&pyrna_prop_array_Type) < 0) + if (PyType_Ready(&pyrna_prop_array_Type) < 0) return; - if(PyType_Ready(&pyrna_prop_collection_Type) < 0) + if (PyType_Ready(&pyrna_prop_collection_Type) < 0) return; - if(PyType_Ready(&pyrna_prop_collection_idprop_Type) < 0) + if (PyType_Ready(&pyrna_prop_collection_idprop_Type) < 0) return; - if(PyType_Ready(&pyrna_func_Type) < 0) + if (PyType_Ready(&pyrna_func_Type) < 0) return; #ifdef USE_PYRNA_ITER - if(PyType_Ready(&pyrna_prop_collection_iter_Type) < 0) + if (PyType_Ready(&pyrna_prop_collection_iter_Type) < 0) return; #endif } @@ -5948,7 +5970,7 @@ static PyObject *pyrna_basetype_getattro(BPy_BaseTypeRNA *self, PyObject *pyname PyObject *ret; const char *name= _PyUnicode_AsString(pyname); - if(name == NULL) { + if (name == NULL) { PyErr_SetString(PyExc_AttributeError, "bpy.types: __getattr__ must be a string"); ret= NULL; } @@ -5994,7 +6016,7 @@ static PyObject *pyrna_basetype_dir(BPy_BaseTypeRNA *self) list= pyrna_prop_collection_keys(self); /* like calling structs.keys(), avoids looping here */ #if 0 /* for now only contains __dir__ */ - for(meth=pyrna_basetype_methods; meth->ml_name; meth++) { + for (meth=pyrna_basetype_methods; meth->ml_name; meth++) { name= PyUnicode_FromString(meth->ml_name); PyList_Append(list, name); Py_DECREF(name); @@ -6016,7 +6038,7 @@ PyObject *BPY_rna_types(void) pyrna_basetype_Type.tp_flags= Py_TPFLAGS_DEFAULT; pyrna_basetype_Type.tp_methods= pyrna_basetype_methods; - if(PyType_Ready(&pyrna_basetype_Type) < 0) + if (PyType_Ready(&pyrna_basetype_Type) < 0) return NULL; } @@ -6037,26 +6059,26 @@ StructRNA *pyrna_struct_as_srna(PyObject *self, int parent, const char *error_pr StructRNA *srna; /* ack, PyObject_GetAttrString wont look up this types tp_dict first :/ */ - if(PyType_Check(self)) { + if (PyType_Check(self)) { py_srna= (BPy_StructRNA *)PyDict_GetItem(((PyTypeObject *)self)->tp_dict, bpy_intern_str_bl_rna); Py_XINCREF(py_srna); } - if(parent) { + if (parent) { /* be very careful with this since it will return a parent classes srna. * modifying this will do confusing stuff! */ - if(py_srna==NULL) + if (py_srna==NULL) py_srna= (BPy_StructRNA*)PyObject_GetAttr(self, bpy_intern_str_bl_rna); } - if(py_srna==NULL) { + if (py_srna==NULL) { PyErr_Format(PyExc_RuntimeError, "%.200s, missing bl_rna attribute from '%.200s' instance (may not be registered)", error_prefix, Py_TYPE(self)->tp_name); return NULL; } - if(!BPy_StructRNA_Check(py_srna)) { + if (!BPy_StructRNA_Check(py_srna)) { PyErr_Format(PyExc_TypeError, "%.200s, bl_rna attribute wrong type '%.200s' on '%.200s'' instance", error_prefix, Py_TYPE(py_srna)->tp_name, @@ -6065,7 +6087,7 @@ StructRNA *pyrna_struct_as_srna(PyObject *self, int parent, const char *error_pr return NULL; } - if(py_srna->ptr.type != &RNA_Struct) { + if (py_srna->ptr.type != &RNA_Struct) { PyErr_Format(PyExc_TypeError, "%.200s, bl_rna attribute not a RNA_Struct, on '%.200s'' instance", error_prefix, Py_TYPE(self)->tp_name); @@ -6086,7 +6108,7 @@ StructRNA *pyrna_struct_as_srna(PyObject *self, int parent, const char *error_pr StructRNA *srna_from_self(PyObject *self, const char *error_prefix) { - if(self==NULL) { + if (self==NULL) { return NULL; } else if (PyCapsule_CheckExact(self)) { @@ -6107,7 +6129,7 @@ StructRNA *srna_from_self(PyObject *self, const char *error_prefix) srna= pyrna_struct_as_srna(self, 0, error_prefix); - if(!PyErr_Occurred()) { + if (!PyErr_Occurred()) { PyErr_Restore(error_type, error_value, error_traceback); } @@ -6119,14 +6141,14 @@ static int deferred_register_prop(StructRNA *srna, PyObject *key, PyObject *item { /* We only care about results from C which * are for sure types, save some time with error */ - if(pyrna_is_deferred_prop(item)) { + if (pyrna_is_deferred_prop(item)) { PyObject *py_func, *py_kw, *py_srna_cobject, *py_ret; - if(PyArg_ParseTuple(item, "OO!", &py_func, &PyDict_Type, &py_kw)) { + if (PyArg_ParseTuple(item, "OO!", &py_func, &PyDict_Type, &py_kw)) { PyObject *args_fake; - if(*_PyUnicode_AsString(key)=='_') { + if (*_PyUnicode_AsString(key)=='_') { PyErr_Format(PyExc_ValueError, "bpy_struct \"%.200s\" registration error: " "%.200s could not register because the property starts with an '_'\n", @@ -6145,7 +6167,7 @@ static int deferred_register_prop(StructRNA *srna, PyObject *key, PyObject *item Py_DECREF(args_fake); /* free's py_srna_cobject too */ - if(py_ret) { + if (py_ret) { Py_DECREF(py_ret); } else { @@ -6183,12 +6205,12 @@ static int pyrna_deferred_register_props(StructRNA *srna, PyObject *class_dict) /* in both cases PyDict_CheckExact(class_dict) will be true even * though Operators have a metaclass dict namespace */ - if((order= PyDict_GetItem(class_dict, bpy_intern_str_order)) && PyList_CheckExact(order)) { - for(pos= 0; pos<PyList_GET_SIZE(order); pos++) { + if ((order= PyDict_GetItem(class_dict, bpy_intern_str_order)) && PyList_CheckExact(order)) { + for (pos= 0; pos<PyList_GET_SIZE(order); pos++) { key= PyList_GET_ITEM(order, pos); item= PyDict_GetItem(class_dict, key); ret= deferred_register_prop(srna, key, item); - if(ret != 0) + if (ret != 0) break; } } @@ -6196,7 +6218,7 @@ static int pyrna_deferred_register_props(StructRNA *srna, PyObject *class_dict) while (PyDict_Next(class_dict, &pos, &key, &item)) { ret= deferred_register_prop(srna, key, item); - if(ret != 0) + if (ret != 0) break; } } @@ -6210,7 +6232,7 @@ static int pyrna_deferred_register_class_recursive(StructRNA *srna, PyTypeObject int i, ret; /* first scan base classes for registerable properties */ - for(i=0; i<len; i++) { + for (i=0; i<len; i++) { PyTypeObject *py_superclass= (PyTypeObject *)PyTuple_GET_ITEM(py_class->tp_bases, i); /* the rules for using these base classes are not clear, @@ -6222,12 +6244,12 @@ static int pyrna_deferred_register_class_recursive(StructRNA *srna, PyTypeObject * So only scan base classes which are not subclasses if blender types. * This best fits having 'mix-in' classes for operators and render engines. * */ - if( py_superclass != &PyBaseObject_Type && + if (py_superclass != &PyBaseObject_Type && !PyObject_IsSubclass((PyObject *)py_superclass, (PyObject *)&pyrna_struct_Type) ) { ret= pyrna_deferred_register_class_recursive(srna, py_superclass); - if(ret != 0) { + if (ret != 0) { return ret; } } @@ -6241,7 +6263,7 @@ int pyrna_deferred_register_class(StructRNA *srna, PyObject *py_class) { /* Panels and Menus dont need this * save some time and skip the checks here */ - if(!RNA_struct_idprops_register_check(srna)) + if (!RNA_struct_idprops_register_check(srna)) return 0; return pyrna_deferred_register_class_recursive(srna, (PyTypeObject *)py_class); @@ -6256,9 +6278,9 @@ static int rna_function_arg_count(FunctionRNA *func) Link *link; int count= (RNA_function_flag(func) & FUNC_NO_SELF) ? 0 : 1; - for(link=lb->first; link; link=link->next) { + for (link=lb->first; link; link=link->next) { parm= (PropertyRNA*)link; - if(!(RNA_property_flag(parm) & PROP_OUTPUT)) + if (!(RNA_property_flag(parm) & PROP_OUTPUT)) count++; } @@ -6292,11 +6314,11 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun /* verify callback functions */ lb= RNA_struct_type_functions(srna); i= 0; - for(link=lb->first; link; link=link->next) { + for (link=lb->first; link; link=link->next) { func= (FunctionRNA*)link; flag= RNA_function_flag(func); - if(!(flag & FUNC_REGISTER)) + if (!(flag & FUNC_REGISTER)) continue; item= PyObject_GetAttrString(py_class, RNA_function_identifier(func)); @@ -6317,7 +6339,7 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun } else { Py_DECREF(item); /* no need to keep a ref, the class owns it (technically we should keep a ref but...) */ - if(flag & FUNC_NO_SELF) { + if (flag & FUNC_NO_SELF) { if (PyMethod_Check(item)==0) { PyErr_Format(PyExc_TypeError, "expected %.200s, %.200s class \"%.200s\" attribute to be a method, not a %.200s", @@ -6342,7 +6364,7 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun /* note, the number of args we check for and the number of args we give to * @classmethods are different (quirk of python), this is why rna_function_arg_count() doesn't return the value -1*/ - if(flag & FUNC_NO_SELF) + if (flag & FUNC_NO_SELF) func_arg_count++; if (arg_count != func_arg_count) { @@ -6358,12 +6380,12 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun /* verify properties */ lb= RNA_struct_type_properties(srna); - for(link=lb->first; link; link=link->next) { + for (link=lb->first; link; link=link->next) { const char *identifier; prop= (PropertyRNA*)link; flag= RNA_property_flag(prop); - if(!(flag & PROP_REGISTER)) + if (!(flag & PROP_REGISTER)) continue; identifier= RNA_property_identifier(prop); @@ -6373,10 +6395,10 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun /* Sneaky workaround to use the class name as the bl_idname */ #define BPY_REPLACEMENT_STRING(rna_attr, py_attr) \ - if(strcmp(identifier, rna_attr) == 0) { \ + if (strcmp(identifier, rna_attr) == 0) { \ item= PyObject_GetAttrString(py_class, py_attr); \ - if(item && item != Py_None) { \ - if(pyrna_py_to_prop(dummyptr, prop, NULL, item, "validating class:") != 0) { \ + if (item && item != Py_None) { \ + if (pyrna_py_to_prop(dummyptr, prop, NULL, item, "validating class:") != 0) { \ Py_DECREF(item); \ return -1; \ } \ @@ -6402,7 +6424,7 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun else { Py_DECREF(item); /* no need to keep a ref, the class owns it */ - if(pyrna_py_to_prop(dummyptr, prop, NULL, item, "validating class:") != 0) + if (pyrna_py_to_prop(dummyptr, prop, NULL, item, "validating class:") != 0) return -1; } } @@ -6441,7 +6463,7 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param py_class= RNA_struct_py_type_get(ptr->type); /* rare case. can happen when registering subclasses */ - if(py_class==NULL) { + if (py_class==NULL) { fprintf(stderr, "%s: unable to get python class for rna struct '%.200s'\n", __func__, RNA_struct_identifier(ptr->type)); return -1; @@ -6449,7 +6471,7 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param /* XXX, this is needed because render engine calls without a context * this should be supported at some point but at the moment its not! */ - if(C==NULL) + if (C==NULL) C= BPy_GetContext(); is_valid_wm= (CTX_wm_manager(C) != NULL); @@ -6458,11 +6480,11 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param if (!is_static) { /* some datatypes (operator, render engine) can store PyObjects for re-use */ - if(ptr->data) { + if (ptr->data) { void **instance = RNA_struct_instance(ptr); - if(instance) { - if(*instance) { + if (instance) { + if (*instance) { py_class_instance= *instance; Py_INCREF(py_class_instance); } @@ -6474,16 +6496,16 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param } /* end exception */ - if(py_class_instance==NULL) + if (py_class_instance==NULL) py_srna= pyrna_struct_CreatePyObject(ptr); - if(py_class_instance) { + if (py_class_instance) { /* special case, instance is cached */ } - else if(py_srna == NULL) { + else if (py_srna == NULL) { py_class_instance= NULL; } - else if(py_srna == Py_None) { /* probably wont ever happen but possible */ + else if (py_srna == Py_None) { /* probably wont ever happen but possible */ Py_DECREF(py_srna); py_class_instance= NULL; } @@ -6493,7 +6515,7 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param * otherwise __init__() always needs to take a second self argument, see pyrna_struct_new(). * Although this is annoying to have to impliment a part of pythons typeobject.c:type_call(). */ - if(py_class->tp_init) { + if (py_class->tp_init) { #ifdef USE_PEDANTIC_WRITE const int prev_write= rna_disallow_writes; rna_disallow_writes= is_operator ? FALSE : TRUE; /* only operators can write on __init__ */ @@ -6534,10 +6556,10 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param #endif - if(py_class_instance == NULL) { + if (py_class_instance == NULL) { err= -1; /* so the error is not overridden below */ } - else if(py_class_instance_store) { + else if (py_class_instance_store) { *py_class_instance_store= py_class_instance; Py_INCREF(py_class_instance); } @@ -6548,12 +6570,12 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param PyObject *item= PyObject_GetAttrString((PyObject *)py_class, RNA_function_identifier(func)); // flag= RNA_function_flag(func); - if(item) { + if (item) { RNA_pointer_create(NULL, &RNA_Function, func, &funcptr); args= PyTuple_New(rna_function_arg_count(func)); /* first arg is included in 'item' */ - if(is_static) { + if (is_static) { i= 0; } else { @@ -6612,7 +6634,7 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param } else { /* the error may be already set if the class instance couldn't be created */ - if(err != -1) { + if (err != -1) { PyErr_Format(PyExc_RuntimeError, "could not create instance of %.200s to call callback function %.200s", RNA_struct_identifier(ptr->type), RNA_function_identifier(func)); @@ -6624,30 +6646,30 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param err= -1; } else { - if(ret_len==0 && ret != Py_None) { + if (ret_len==0 && ret != Py_None) { PyErr_Format(PyExc_RuntimeError, "expected class %.200s, function %.200s to return None, not %.200s", RNA_struct_identifier(ptr->type), RNA_function_identifier(func), Py_TYPE(ret)->tp_name); err= -1; } - else if(ret_len==1) { + else if (ret_len==1) { err= pyrna_py_to_prop(&funcptr, pret_single, retdata_single, ret, ""); /* when calling operator funcs only gives Function.result with * no line number since the func has finished calling on error, * re-raise the exception with more info since it would be slow to * create prefix on every call (when there are no errors) */ - if(err == -1) { + if (err == -1) { PyC_Err_Format_Prefix(PyExc_RuntimeError, "class %.200s, function %.200s: incompatible return value ", - RNA_struct_identifier(ptr->type), RNA_function_identifier(func) + RNA_struct_identifier(ptr->type), RNA_function_identifier(func) ); } } else if (ret_len > 1) { - if(PyTuple_Check(ret)==0) { + if (PyTuple_Check(ret)==0) { PyErr_Format(PyExc_RuntimeError, "expected class %.200s, function %.200s to return a tuple of size %d, not %.200s", RNA_struct_identifier(ptr->type), RNA_function_identifier(func), @@ -6673,8 +6695,9 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param /* only useful for single argument returns, we'll need another list loop for multiple */ if (flag & PROP_OUTPUT) { err= pyrna_py_to_prop(&funcptr, parm, iter.data, PyTuple_GET_ITEM(ret, i++), "calling class function:"); - if(err) + if (err) { break; + } } } @@ -6684,7 +6707,7 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param Py_DECREF(ret); } - if(err != 0) { + if (err != 0) { ReportList *reports; /* alert the user, else they wont know unless they see the console. */ if ( (!is_static) && @@ -6724,12 +6747,12 @@ static void bpy_class_free(void *pyob_ptr) // // remove the rna attribute instead. PyDict_DelItem(((PyTypeObject *)self)->tp_dict, bpy_intern_str_bl_rna); - if(PyErr_Occurred()) + if (PyErr_Occurred()) PyErr_Clear(); #if 0 /* needs further investigation, too annoying so quiet for now */ - if(G.f&G_DEBUG) { - if(self->ob_refcnt > 1) { + if (G.f&G_DEBUG) { + if (self->ob_refcnt > 1) { PyC_ObSpit("zombie class - ref should be 1", self); } } @@ -6754,8 +6777,8 @@ void pyrna_alloc_types(void) RNA_PROP_BEGIN(&ptr, itemptr, prop) { PyObject *item= pyrna_struct_Subtype(&itemptr); - if(item == NULL) { - if(PyErr_Occurred()) { + if (item == NULL) { + if (PyErr_Occurred()) { PyErr_Print(); PyErr_Clear(); } @@ -6784,7 +6807,7 @@ void pyrna_free_types(void) StructRNA *srna= srna_from_ptr(&itemptr); void *py_ptr= RNA_struct_py_type_get(srna); - if(py_ptr) { + if (py_ptr) { #if 0 // XXX - should be able to do this but makes python crash on exit bpy_class_free(py_ptr); #endif @@ -6831,19 +6854,19 @@ static PyObject *pyrna_register_class(PyObject *UNUSED(self), PyObject *py_class const char *identifier; PyObject *py_cls_meth; - if(PyDict_GetItem(((PyTypeObject*)py_class)->tp_dict, bpy_intern_str_bl_rna)) { + if (PyDict_GetItem(((PyTypeObject*)py_class)->tp_dict, bpy_intern_str_bl_rna)) { PyErr_SetString(PyExc_AttributeError, "register_class(...): already registered as a subclass"); return NULL; } /* warning: gets parent classes srna, only for the register function */ srna= pyrna_struct_as_srna(py_class, 1, "register_class(...):"); - if(srna==NULL) + if (srna==NULL) return NULL; /* fails in cases, cant use this check but would like to :| */ /* - if(RNA_struct_py_type_get(srna)) { + if (RNA_struct_py_type_get(srna)) { PyErr_Format(PyExc_ValueError, "register_class(...): %.200s's parent class %.200s is already registered, this is not allowed", ((PyTypeObject*)py_class)->tp_name, RNA_struct_identifier(srna)); @@ -6854,7 +6877,7 @@ static PyObject *pyrna_register_class(PyObject *UNUSED(self), PyObject *py_class /* check that we have a register callback for this type */ reg= RNA_struct_register(srna); - if(!reg) { + if (!reg) { PyErr_Format(PyExc_ValueError, "register_class(...): expected a subclass of a registerable " "rna type (%.200s does not support registration)", @@ -6872,18 +6895,18 @@ static PyObject *pyrna_register_class(PyObject *UNUSED(self), PyObject *py_class srna_new= reg(CTX_data_main(C), &reports, py_class, identifier, bpy_class_validate, bpy_class_call, bpy_class_free); - if(BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE) == -1) + if (BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE) == -1) return NULL; /* python errors validating are not converted into reports so the check above will fail. * the cause for returning NULL will be printed as an error */ - if(srna_new == NULL) + if (srna_new == NULL) return NULL; pyrna_subtype_set_rna(py_class, srna_new); /* takes a ref to py_class */ /* old srna still references us, keep the check incase registering somehow can free it */ - if(RNA_struct_py_type_get(srna)) { + if (RNA_struct_py_type_get(srna)) { RNA_struct_py_type_set(srna, NULL); // Py_DECREF(py_class); // should be able to do this XXX since the old rna adds a new ref. } @@ -6892,17 +6915,17 @@ static PyObject *pyrna_register_class(PyObject *UNUSED(self), PyObject *py_class * * item= PyObject_GetAttrString(py_class, "__dict__"); */ - if(pyrna_deferred_register_class(srna_new, py_class)!=0) + if (pyrna_deferred_register_class(srna_new, py_class)!=0) return NULL; /* call classed register method () */ py_cls_meth= PyObject_GetAttr(py_class, bpy_intern_str_register); - if(py_cls_meth == NULL) { + if (py_cls_meth == NULL) { PyErr_Clear(); } else { PyObject *ret= PyObject_CallObject(py_cls_meth, NULL); - if(ret) { + if (ret) { Py_DECREF(ret); } else { @@ -6922,13 +6945,13 @@ static int pyrna_srna_contains_pointer_prop_srna(StructRNA *srna_props, StructRN /* verify properties */ const ListBase *lb= RNA_struct_type_properties(srna); - for(link=lb->first; link; link=link->next) { + for (link=lb->first; link; link=link->next) { prop= (PropertyRNA*)link; - if(RNA_property_type(prop) == PROP_POINTER && !(RNA_property_flag(prop) & PROP_BUILTIN)) { + if (RNA_property_type(prop) == PROP_POINTER && !(RNA_property_flag(prop) & PROP_BUILTIN)) { PointerRNA tptr; RNA_pointer_create(NULL, &RNA_Struct, srna_props, &tptr); - if(RNA_property_pointer_type(&tptr, prop) == srna) { + if (RNA_property_pointer_type(&tptr, prop) == srna) { *prop_identifier= RNA_property_identifier(prop); return 1; } @@ -6954,32 +6977,32 @@ static PyObject *pyrna_unregister_class(PyObject *UNUSED(self), PyObject *py_cla StructRNA *srna; PyObject *py_cls_meth; - /*if(PyDict_GetItem(((PyTypeObject*)py_class)->tp_dict, bpy_intern_str_bl_rna)==NULL) { + /*if (PyDict_GetItem(((PyTypeObject*)py_class)->tp_dict, bpy_intern_str_bl_rna)==NULL) { PWM_cursor_wait(0); PyErr_SetString(PyExc_ValueError, "unregister_class(): not a registered as a subclass"); return NULL; }*/ srna= pyrna_struct_as_srna(py_class, 0, "unregister_class(...):"); - if(srna==NULL) + if (srna==NULL) return NULL; /* check that we have a unregister callback for this type */ unreg= RNA_struct_unregister(srna); - if(!unreg) { + if (!unreg) { PyErr_SetString(PyExc_ValueError, "unregister_class(...): expected a Type subclassed from a registerable rna type (no unregister supported)"); return NULL; } /* call classed unregister method */ py_cls_meth= PyObject_GetAttr(py_class, bpy_intern_str_unregister); - if(py_cls_meth == NULL) { + if (py_cls_meth == NULL) { PyErr_Clear(); } else { PyObject *ret= PyObject_CallObject(py_cls_meth, NULL); - if(ret) { + if (ret) { Py_DECREF(ret); } else { @@ -6988,7 +7011,7 @@ static PyObject *pyrna_unregister_class(PyObject *UNUSED(self), PyObject *py_cla } /* should happen all the time but very slow */ - if(G.f & G_DEBUG) { + if (G.f & G_DEBUG) { /* remove all properties using this class */ StructRNA *srna_iter; PointerRNA ptr_rna; @@ -7003,13 +7026,13 @@ static PyObject *pyrna_unregister_class(PyObject *UNUSED(self), PyObject *py_cla /* loop over all structs */ RNA_PROP_BEGIN(&ptr_rna, itemptr, prop_rna) { srna_iter= itemptr.data; - if(pyrna_srna_contains_pointer_prop_srna(srna_iter, srna, &prop_identifier)) { + if (pyrna_srna_contains_pointer_prop_srna(srna_iter, srna, &prop_identifier)) { break; } } RNA_PROP_END; - if(prop_identifier) { + if (prop_identifier) { PyErr_Format(PyExc_RuntimeError, "unregister_class(...): can't unregister %s because %s.%s pointer property is using this", RNA_struct_identifier(srna), RNA_struct_identifier(srna_iter), prop_identifier); @@ -7024,7 +7047,7 @@ static PyObject *pyrna_unregister_class(PyObject *UNUSED(self), PyObject *py_cla unreg(CTX_data_main(C), srna); /* calls bpy_class_free, this decref's py_class */ PyDict_DelItem(((PyTypeObject *)py_class)->tp_dict, bpy_intern_str_bl_rna); - if(PyErr_Occurred()) + if (PyErr_Occurred()) PyErr_Clear(); //return NULL; Py_RETURN_NONE; diff --git a/source/blender/python/intern/bpy_rna.h b/source/blender/python/intern/bpy_rna.h index 502fa25c872..98afad38abe 100644 --- a/source/blender/python/intern/bpy_rna.h +++ b/source/blender/python/intern/bpy_rna.h @@ -149,7 +149,7 @@ typedef struct { PyObject *in_weakreflist; #endif - /* collection iterator spesific parts */ + /* collection iterator specific parts */ CollectionPropertyIterator iter; } BPy_PropertyCollectionIterRNA; diff --git a/source/blender/python/intern/bpy_rna_anim.c b/source/blender/python/intern/bpy_rna_anim.c index c87a141f5bd..00b20f0599c 100644 --- a/source/blender/python/intern/bpy_rna_anim.c +++ b/source/blender/python/intern/bpy_rna_anim.c @@ -70,18 +70,18 @@ static int pyrna_struct_anim_args_parse(PointerRNA *ptr, const char *error_prefi } /* full paths can only be given from ID base */ - if(is_idbase) { + if (is_idbase) { int r_index= -1; - if(RNA_path_resolve_full(ptr, path, &r_ptr, &prop, &r_index)==0) { + if (RNA_path_resolve_full(ptr, path, &r_ptr, &prop, &r_index)==0) { prop= NULL; } - else if(r_index != -1) { + else if (r_index != -1) { PyErr_Format(PyExc_ValueError, "%.200s path includes index, must be a separate argument", error_prefix, path); return -1; } - else if(ptr->id.data != r_ptr.id.data) { + else if (ptr->id.data != r_ptr.id.data) { PyErr_Format(PyExc_ValueError, "%.200s path spans ID blocks", error_prefix, path); @@ -107,8 +107,8 @@ static int pyrna_struct_anim_args_parse(PointerRNA *ptr, const char *error_prefi return -1; } - if(RNA_property_array_check(prop) == 0) { - if((*index) == -1) { + if (RNA_property_array_check(prop) == 0) { + if ((*index) == -1) { *index= 0; } else { @@ -120,7 +120,7 @@ static int pyrna_struct_anim_args_parse(PointerRNA *ptr, const char *error_prefi } else { int array_len= RNA_property_array_length(&r_ptr, prop); - if((*index) < -1 || (*index) >= array_len) { + if ((*index) < -1 || (*index) >= array_len) { PyErr_Format(PyExc_TypeError, "%.200s index out of range \"%s\", given %d, array length is %d", error_prefix, path, *index, array_len); @@ -128,7 +128,7 @@ static int pyrna_struct_anim_args_parse(PointerRNA *ptr, const char *error_prefi } } - if(is_idbase) { + if (is_idbase) { *path_full= BLI_strdup(path); } else { @@ -156,10 +156,10 @@ static int pyrna_struct_keyframe_parse(PointerRNA *ptr, PyObject *args, PyObject if (!PyArg_ParseTupleAndKeywords(args, kw, parse_str, (char **)kwlist, &path, index, cfra, group_name)) return -1; - if(pyrna_struct_anim_args_parse(ptr, error_prefix, path, path_full, index) < 0) + if (pyrna_struct_anim_args_parse(ptr, error_prefix, path, path_full, index) < 0) return -1; - if(*cfra==FLT_MAX) + if (*cfra==FLT_MAX) *cfra= CTX_data_scene(BPy_GetContext())->r.cfra; return 0; /* success */ @@ -191,7 +191,7 @@ PyObject *pyrna_struct_keyframe_insert(BPy_StructRNA *self, PyObject *args, PyOb PYRNA_STRUCT_CHECK_OBJ(self); - if(pyrna_struct_keyframe_parse(&self->ptr, args, kw, + if (pyrna_struct_keyframe_parse(&self->ptr, args, kw, "s|ifs:bpy_struct.keyframe_insert()", "bpy_struct.keyframe_insert()", &path_full, &index, &cfra, &group_name) == -1) { @@ -206,7 +206,7 @@ PyObject *pyrna_struct_keyframe_insert(BPy_StructRNA *self, PyObject *args, PyOb result= insert_keyframe(&reports, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, 0); MEM_freeN((void *)path_full); - if(BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE) == -1) + if (BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE) == -1) return NULL; return PyBool_FromLong(result); @@ -239,7 +239,7 @@ PyObject *pyrna_struct_keyframe_delete(BPy_StructRNA *self, PyObject *args, PyOb PYRNA_STRUCT_CHECK_OBJ(self); - if(pyrna_struct_keyframe_parse(&self->ptr, args, kw, + if (pyrna_struct_keyframe_parse(&self->ptr, args, kw, "s|ifs:bpy_struct.keyframe_delete()", "bpy_struct.keyframe_insert()", &path_full, &index, &cfra, &group_name) == -1) @@ -255,7 +255,7 @@ PyObject *pyrna_struct_keyframe_delete(BPy_StructRNA *self, PyObject *args, PyOb result= delete_keyframe(&reports, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, 0); MEM_freeN((void *)path_full); - if(BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE) == -1) + if (BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE) == -1) return NULL; return PyBool_FromLong(result); @@ -285,7 +285,7 @@ PyObject *pyrna_struct_driver_add(BPy_StructRNA *self, PyObject *args) if (!PyArg_ParseTuple(args, "s|i:driver_add", &path, &index)) return NULL; - if(pyrna_struct_anim_args_parse(&self->ptr, "bpy_struct.driver_add():", path, &path_full, &index) < 0) { + if (pyrna_struct_anim_args_parse(&self->ptr, "bpy_struct.driver_add():", path, &path_full, &index) < 0) { return NULL; } else { @@ -297,10 +297,10 @@ PyObject *pyrna_struct_driver_add(BPy_StructRNA *self, PyObject *args) result= ANIM_add_driver(&reports, (ID *)self->ptr.id.data, path_full, index, 0, DRIVER_TYPE_PYTHON); - if(BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE) == -1) + if (BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE) == -1) return NULL; - if(result) { + if (result) { ID *id= self->ptr.id.data; AnimData *adt= BKE_animdata_from_id(id); FCurve *fcu; @@ -308,10 +308,10 @@ PyObject *pyrna_struct_driver_add(BPy_StructRNA *self, PyObject *args) PointerRNA tptr; PyObject *item; - if(index == -1) { /* all, use a list */ + if (index == -1) { /* all, use a list */ int i= 0; ret= PyList_New(0); - while((fcu= list_find_fcurve(&adt->drivers, path_full, i++))) { + while ((fcu= list_find_fcurve(&adt->drivers, path_full, i++))) { RNA_pointer_create(id, &RNA_FCurve, fcu, &tptr); item= pyrna_struct_CreatePyObject(&tptr); PyList_Append(ret, item); @@ -361,7 +361,7 @@ PyObject *pyrna_struct_driver_remove(BPy_StructRNA *self, PyObject *args) if (!PyArg_ParseTuple(args, "s|i:driver_remove", &path, &index)) return NULL; - if(pyrna_struct_anim_args_parse(&self->ptr, "bpy_struct.driver_remove():", path, &path_full, &index) < 0) { + if (pyrna_struct_anim_args_parse(&self->ptr, "bpy_struct.driver_remove():", path, &path_full, &index) < 0) { return NULL; } else { @@ -374,7 +374,7 @@ PyObject *pyrna_struct_driver_remove(BPy_StructRNA *self, PyObject *args) MEM_freeN((void *)path_full); - if(BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE) == -1) + if (BPy_reports_to_error(&reports, PyExc_RuntimeError, TRUE) == -1) return NULL; WM_event_add_notifier(BPy_GetContext(), NC_ANIMATION|ND_FCURVES_ORDER, NULL); diff --git a/source/blender/python/intern/bpy_rna_array.c b/source/blender/python/intern/bpy_rna_array.c index cab57724d6d..24ecad85d14 100644 --- a/source/blender/python/intern/bpy_rna_array.c +++ b/source/blender/python/intern/bpy_rna_array.c @@ -67,7 +67,7 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[] if (dim + 1 < totdim) { /* check that a sequence contains dimsize[dim] items */ const Py_ssize_t seq_size= PySequence_Size(seq); - if(seq_size == -1) { + if (seq_size == -1) { PyErr_Format(PyExc_ValueError, "%s sequence expected at dimension %d, not '%s'", error_prefix, (int)dim + 1, Py_TYPE(seq)->tp_name); return -1; @@ -77,7 +77,7 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[] int ok= 1; item= PySequence_GetItem(seq, i); - if(item == NULL) { + if (item == NULL) { PyErr_Format(PyExc_TypeError, "%s sequence type '%s' failed to retrieve index %d", error_prefix, Py_TYPE(seq)->tp_name, i); ok= 0; @@ -112,7 +112,7 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[] else { /* check that items are of correct type */ const int seq_size= PySequence_Size(seq); - if(seq_size == -1) { + if (seq_size == -1) { PyErr_Format(PyExc_ValueError, "%s sequence expected at dimension %d, not '%s'", error_prefix, (int)dim + 1, Py_TYPE(seq)->tp_name); return -1; @@ -120,7 +120,7 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[] for (i= 0; i < seq_size; i++) { PyObject *item= PySequence_GetItem(seq, i); - if(item == NULL) { + if (item == NULL) { PyErr_Format(PyExc_TypeError, "%s sequence type '%s' failed to retrieve index %d", error_prefix, Py_TYPE(seq)->tp_name, i); return -1; @@ -146,15 +146,15 @@ static int count_items(PyObject *seq, int dim) { int totitem= 0; - if(dim > 1) { + if (dim > 1) { const Py_ssize_t seq_size= PySequence_Size(seq); Py_ssize_t i; for (i= 0; i < seq_size; i++) { PyObject *item= PySequence_GetItem(seq, i); - if(item) { + if (item) { const int tot= count_items(item, dim - 1); Py_DECREF(item); - if(tot != -1) { + if (tot != -1) { totitem += tot; } else { @@ -184,7 +184,7 @@ static int validate_array_length(PyObject *rvalue, PointerRNA *ptr, PropertyRNA totdim= RNA_property_array_dimension(ptr, prop, dimsize); tot= count_items(rvalue, totdim - lvalue_dim); - if(tot == -1) { + if (tot == -1) { PyErr_Format(PyExc_ValueError, "%s %.200s.%.200s, error validating the sequence length", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop)); return -1; @@ -294,13 +294,13 @@ static char *copy_values(PyObject *seq, PointerRNA *ptr, PropertyRNA *prop, int /* Note that 'data can be NULL' */ - if(seq_size == -1) { + if (seq_size == -1) { return NULL; } for (i= 0; i < seq_size; i++) { PyObject *item= PySequence_GetItem(seq, i); - if(item) { + if (item) { if (dim + 1 < totdim) { data= copy_values(item, ptr, prop, dim + 1, data, item_size, index, convert_item, rna_set_index); } @@ -334,7 +334,7 @@ static int py_to_array(PyObject *seq, PointerRNA *ptr, PropertyRNA *prop, char * if (totitem) { /* note: this code is confusing */ - if(param_data && RNA_property_flag(prop) & PROP_DYNAMIC) { + if (param_data && RNA_property_flag(prop) & PROP_DYNAMIC) { /* not freeing allocated mem, RNA_parameter_list_free() will do this */ ParameterDynAlloc *param_alloc= (ParameterDynAlloc *)param_data; param_alloc->array_tot= (int)totitem; @@ -351,7 +351,7 @@ static int py_to_array(PyObject *seq, PointerRNA *ptr, PropertyRNA *prop, char * /* will only fail in very rare cases since we already validated the * python data, the check here is mainly for completeness. */ - if(copy_values(seq, ptr, prop, 0, data, item_size, NULL, convert_item, NULL) != NULL) { + if (copy_values(seq, ptr, prop, 0, data, item_size, NULL, convert_item, NULL) != NULL) { if (param_data==NULL) { /* NULL can only pass through in case RNA property arraylength is 0 (impossible?) */ rna_set_array(ptr, prop, data); @@ -396,8 +396,8 @@ static int py_to_array_index(PyObject *py, PointerRNA *ptr, PropertyRNA *prop, i index += arrayoffset; - if(lvalue_dim == totdim) { /* single item, assign directly */ - if(!check_item_type(py)) { + if (lvalue_dim == totdim) { /* single item, assign directly */ + if (!check_item_type(py)) { PyErr_Format(PyExc_TypeError, "%s %.200s.%.200s, expected a %s type, not %s", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), item_type_str, @@ -628,7 +628,7 @@ int pyrna_array_contains_py(PointerRNA *ptr, PropertyRNA *prop, PyObject *value) int type; int i; - if(len==0) /* possible with dynamic arrays */ + if (len==0) /* possible with dynamic arrays */ return 0; if (RNA_property_array_dimension(ptr, prop, NULL) > 1) { @@ -642,7 +642,7 @@ int pyrna_array_contains_py(PointerRNA *ptr, PropertyRNA *prop, PyObject *value) case PROP_FLOAT: { float value_f= PyFloat_AsDouble(value); - if(value_f==-1 && PyErr_Occurred()) { + if (value_f==-1 && PyErr_Occurred()) { PyErr_Clear(); return 0; } @@ -650,7 +650,7 @@ int pyrna_array_contains_py(PointerRNA *ptr, PropertyRNA *prop, PyObject *value) float tmp[32]; float *tmp_arr; - if(len * sizeof(float) > sizeof(tmp)) { + if (len * sizeof(float) > sizeof(tmp)) { tmp_arr= PyMem_MALLOC(len * sizeof(float)); } else { @@ -659,11 +659,13 @@ int pyrna_array_contains_py(PointerRNA *ptr, PropertyRNA *prop, PyObject *value) RNA_property_float_get_array(ptr, prop, tmp_arr); - for(i=0; i<len; i++) - if(tmp_arr[i] == value_f) + for (i=0; i<len; i++) { + if (tmp_arr[i] == value_f) { break; + } + } - if(tmp_arr != tmp) + if (tmp_arr != tmp) PyMem_FREE(tmp_arr); return i<len ? 1 : 0; @@ -674,7 +676,7 @@ int pyrna_array_contains_py(PointerRNA *ptr, PropertyRNA *prop, PyObject *value) case PROP_INT: { int value_i= PyLong_AsSsize_t(value); - if(value_i==-1 && PyErr_Occurred()) { + if (value_i==-1 && PyErr_Occurred()) { PyErr_Clear(); return 0; } @@ -682,23 +684,25 @@ int pyrna_array_contains_py(PointerRNA *ptr, PropertyRNA *prop, PyObject *value) int tmp[32]; int *tmp_arr; - if(len * sizeof(int) > sizeof(tmp)) { + if (len * sizeof(int) > sizeof(tmp)) { tmp_arr= PyMem_MALLOC(len * sizeof(int)); } else { tmp_arr= tmp; } - if(type==PROP_BOOLEAN) + if (type==PROP_BOOLEAN) RNA_property_boolean_get_array(ptr, prop, tmp_arr); else RNA_property_int_get_array(ptr, prop, tmp_arr); - for(i=0; i<len; i++) - if(tmp_arr[i] == value_i) + for (i=0; i<len; i++) { + if (tmp_arr[i] == value_i) { break; + } + } - if(tmp_arr != tmp) + if (tmp_arr != tmp) PyMem_FREE(tmp_arr); return i<len ? 1 : 0; diff --git a/source/blender/python/intern/bpy_traceback.c b/source/blender/python/intern/bpy_traceback.c index 747a876d6df..9c4eea2f6af 100644 --- a/source/blender/python/intern/bpy_traceback.c +++ b/source/blender/python/intern/bpy_traceback.c @@ -114,19 +114,19 @@ void python_script_error_jump(const char *filepath, int *lineno, int *offset) PyErr_Fetch(&exception, &value, (PyObject **)&tb); - if(exception && PyErr_GivenExceptionMatches(exception, PyExc_SyntaxError)) { + if (exception && PyErr_GivenExceptionMatches(exception, PyExc_SyntaxError)) { /* no traceback available when SyntaxError. * python has no api's to this. reference parse_syntax_error() from pythonrun.c */ PyErr_NormalizeException(&exception, &value, (PyObject **)&tb); PyErr_Restore(exception, value, (PyObject *)tb); /* takes away reference! */ - if(value) { /* should always be true */ + if (value) { /* should always be true */ PyObject *message; const char *filename, *text; - if(parse_syntax_error(value, &message, &filename, lineno, offset, &text)) { + if (parse_syntax_error(value, &message, &filename, lineno, offset, &text)) { /* python adds a '/', prefix, so check for both */ - if( (strcmp(filename, filepath) == 0) || + if ((strcmp(filename, filepath) == 0) || ((filename[0] == '\\' || filename[0] == '/') && strcmp(filename + 1, filepath) == 0) ) { /* good */ @@ -145,13 +145,13 @@ void python_script_error_jump(const char *filepath, int *lineno, int *offset) PyErr_Restore(exception, value, (PyObject *)tb); /* takes away reference! */ PyErr_Print(); - for(tb= (PyTracebackObject *)PySys_GetObject("last_traceback"); tb && (PyObject *)tb != Py_None; tb= tb->tb_next) { + for (tb= (PyTracebackObject *)PySys_GetObject("last_traceback"); tb && (PyObject *)tb != Py_None; tb= tb->tb_next) { PyObject *coerce; const char *tb_filepath= traceback_filepath(tb, &coerce); const int match= strcmp(tb_filepath, filepath) != 0; Py_DECREF(coerce); - if(match) { + if (match) { *lineno= tb->tb_lineno; break; } diff --git a/source/blender/python/intern/bpy_util.c b/source/blender/python/intern/bpy_util.c index 1450621d59e..516a9e49a39 100644 --- a/source/blender/python/intern/bpy_util.c +++ b/source/blender/python/intern/bpy_util.c @@ -48,7 +48,7 @@ char *BPy_enum_as_string(EnumPropertyItem *item) char *cstring; for (e= item; item->identifier; item++) { - if(item->identifier[0]) + if (item->identifier[0]) BLI_dynstr_appendf(dynstr, (e==item)?"'%s'":", '%s'", item->identifier); } @@ -63,11 +63,11 @@ short BPy_reports_to_error(ReportList *reports, PyObject *exception, const short report_str= BKE_reports_string(reports, RPT_ERROR); - if(clear) { + if (clear) { BKE_reports_clear(reports); } - if(report_str) { + if (report_str) { PyErr_SetString(exception, report_str); MEM_freeN(report_str); } @@ -89,7 +89,7 @@ short BPy_errors_to_report(ReportList *reports) return 1; /* less hassle if we allow NULL */ - if(reports==NULL) { + if (reports==NULL) { PyErr_Print(); PyErr_Clear(); return 1; @@ -97,13 +97,13 @@ short BPy_errors_to_report(ReportList *reports) pystring= PyC_ExceptionBuffer(); - if(pystring==NULL) { + if (pystring==NULL) { BKE_report(reports, RPT_ERROR, "unknown py-exception, couldn't convert"); return 0; } PyC_FileAndNum(&filename, &lineno); - if(filename==NULL) + if (filename==NULL) filename= "<unknown location>"; cstring= _PyUnicode_AsString(pystring); diff --git a/source/blender/python/intern/gpu.c b/source/blender/python/intern/gpu.c index 8fa6a7b0629..b4363716d86 100644 --- a/source/blender/python/intern/gpu.c +++ b/source/blender/python/intern/gpu.c @@ -77,7 +77,7 @@ PyInit_gpu(void) PyObject* m; m = PyModule_Create(&gpumodule); - if(m == NULL) + if (m == NULL) return NULL; // device constants @@ -164,7 +164,7 @@ static PyObject* GPU_export_shader(PyObject* UNUSED(self), PyObject *args, PyObj static const char *kwlist[] = {"scene", "material", NULL}; - if(!PyArg_ParseTupleAndKeywords(args, kwds, "OO:export_shader", (char**)(kwlist), &pyscene, &pymat)) + if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO:export_shader", (char**)(kwlist), &pyscene, &pymat)) return NULL; if (!strcmp(Py_TYPE(pyscene)->tp_name, "Scene") && diff --git a/source/blender/python/mathutils/mathutils.c b/source/blender/python/mathutils/mathutils.c index 9adeae9dc29..34575a8d886 100644 --- a/source/blender/python/mathutils/mathutils.c +++ b/source/blender/python/mathutils/mathutils.c @@ -49,14 +49,14 @@ static int mathutils_array_parse_fast(float *array, int array_min, int array_max int i, size; /* non list/tuple cases */ - if(!(value_fast=PySequence_Fast(value, error_prefix))) { + if (!(value_fast=PySequence_Fast(value, error_prefix))) { /* PySequence_Fast sets the error */ return -1; } size= PySequence_Fast_GET_SIZE(value_fast); - if(size > array_max || size < array_min) { + if (size > array_max || size < array_min) { if (array_max == array_min) { PyErr_Format(PyExc_ValueError, "%.200s: sequence size is %d, expected %d", @@ -74,7 +74,7 @@ static int mathutils_array_parse_fast(float *array, int array_min, int array_max i= size; do { i--; - if(((array[i]= PyFloat_AsDouble((item= PySequence_Fast_GET_ITEM(value_fast, i)))) == -1.0f) && PyErr_Occurred()) { + if (((array[i]= PyFloat_AsDouble((item= PySequence_Fast_GET_ITEM(value_fast, i)))) == -1.0f) && PyErr_Occurred()) { PyErr_Format(PyExc_TypeError, "%.200s: sequence index %d expected a number, " "found '%.200s' type, ", @@ -82,7 +82,7 @@ static int mathutils_array_parse_fast(float *array, int array_min, int array_max Py_DECREF(value_fast); return -1; } - } while(i); + } while (i); Py_XDECREF(value_fast); return size; @@ -94,16 +94,16 @@ int mathutils_array_parse(float *array, int array_min, int array_max, PyObject * #if 1 /* approx 6x speedup for mathutils types */ int size; - if( (size= VectorObject_Check(value) ? ((VectorObject *)value)->size : 0) || + if ( (size= VectorObject_Check(value) ? ((VectorObject *)value)->size : 0) || (size= EulerObject_Check(value) ? 3 : 0) || (size= QuaternionObject_Check(value) ? 4 : 0) || (size= ColorObject_Check(value) ? 3 : 0)) { - if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { + if (BaseMath_ReadCallback((BaseMathObject *)value) == -1) { return -1; } - if(size > array_max || size < array_min) { + if (size > array_max || size < array_min) { if (array_max == array_min) { PyErr_Format(PyExc_ValueError, "%.200s: sequence size is %d, expected %d", @@ -129,8 +129,8 @@ int mathutils_array_parse(float *array, int array_min, int array_max, PyObject * int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error_prefix) { - if(EulerObject_Check(value)) { - if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { + if (EulerObject_Check(value)) { + if (BaseMath_ReadCallback((BaseMathObject *)value) == -1) { return -1; } else { @@ -139,7 +139,7 @@ int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error } } else if (QuaternionObject_Check(value)) { - if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { + if (BaseMath_ReadCallback((BaseMathObject *)value) == -1) { return -1; } else { @@ -150,10 +150,10 @@ int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error } } else if (MatrixObject_Check(value)) { - if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) { + if (BaseMath_ReadCallback((BaseMathObject *)value) == -1) { return -1; } - else if(((MatrixObject *)value)->col_size < 3 || ((MatrixObject *)value)->row_size < 3) { + else if (((MatrixObject *)value)->col_size < 3 || ((MatrixObject *)value)->row_size < 3) { PyErr_Format(PyExc_ValueError, "%.200s: matrix must have minimum 3x3 dimensions", error_prefix); @@ -202,7 +202,7 @@ int EXPP_FloatsAreEqual(float af, float bf, int maxDiff) int EXPP_VectorsAreEqual(float *vecA, float *vecB, int size, int floatSteps) { int x; - for (x=0; x< size; x++){ + for (x=0; x< size; x++) { if (EXPP_FloatsAreEqual(vecA[x], vecB[x], floatSteps) == 0) return 0; } @@ -220,8 +220,8 @@ int Mathutils_RegisterCallback(Mathutils_Callback *cb) int i; /* find the first free slot */ - for(i= 0; mathutils_callbacks[i]; i++) { - if(mathutils_callbacks[i]==cb) /* already registered? */ + for (i= 0; mathutils_callbacks[i]; i++) { + if (mathutils_callbacks[i]==cb) /* already registered? */ return i; } @@ -233,10 +233,10 @@ int Mathutils_RegisterCallback(Mathutils_Callback *cb) int _BaseMathObject_ReadCallback(BaseMathObject *self) { Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; - if(cb->get(self, self->cb_subtype) != -1) + if (cb->get(self, self->cb_subtype) != -1) return 0; - if(!PyErr_Occurred()) { + if (!PyErr_Occurred()) { PyErr_Format(PyExc_RuntimeError, "%s read, user has become invalid", Py_TYPE(self)->tp_name); @@ -247,10 +247,10 @@ int _BaseMathObject_ReadCallback(BaseMathObject *self) int _BaseMathObject_WriteCallback(BaseMathObject *self) { Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; - if(cb->set(self, self->cb_subtype) != -1) + if (cb->set(self, self->cb_subtype) != -1) return 0; - if(!PyErr_Occurred()) { + if (!PyErr_Occurred()) { PyErr_Format(PyExc_RuntimeError, "%s write, user has become invalid", Py_TYPE(self)->tp_name); @@ -261,10 +261,10 @@ int _BaseMathObject_WriteCallback(BaseMathObject *self) int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index) { Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; - if(cb->get_index(self, self->cb_subtype, index) != -1) + if (cb->get_index(self, self->cb_subtype, index) != -1) return 0; - if(!PyErr_Occurred()) { + if (!PyErr_Occurred()) { PyErr_Format(PyExc_RuntimeError, "%s read index, user has become invalid", Py_TYPE(self)->tp_name); @@ -275,10 +275,10 @@ int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index) int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index) { Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; - if(cb->set_index(self, self->cb_subtype, index) != -1) + if (cb->set_index(self, self->cb_subtype, index) != -1) return 0; - if(!PyErr_Occurred()) { + if (!PyErr_Occurred()) { PyErr_Format(PyExc_RuntimeError, "%s write index, user has become invalid", Py_TYPE(self)->tp_name); @@ -316,11 +316,11 @@ int BaseMathObject_clear(BaseMathObject *self) void BaseMathObject_dealloc(BaseMathObject *self) { /* only free non wrapped */ - if(self->wrapped != Py_WRAP) { + if (self->wrapped != Py_WRAP) { PyMem_Free(self->data); } - if(self->cb_user) { + if (self->cb_user) { PyObject_GC_UnTrack(self); BaseMathObject_clear(self); } @@ -350,15 +350,15 @@ PyMODINIT_FUNC PyInit_mathutils(void) PyObject *submodule; PyObject *item; - if(PyType_Ready(&vector_Type) < 0) + if (PyType_Ready(&vector_Type) < 0) return NULL; - if(PyType_Ready(&matrix_Type) < 0) + if (PyType_Ready(&matrix_Type) < 0) return NULL; - if(PyType_Ready(&euler_Type) < 0) + if (PyType_Ready(&euler_Type) < 0) return NULL; - if(PyType_Ready(&quaternion_Type) < 0) + if (PyType_Ready(&quaternion_Type) < 0) return NULL; - if(PyType_Ready(&color_Type) < 0) + if (PyType_Ready(&color_Type) < 0) return NULL; submodule = PyModule_Create(&M_Mathutils_module_def); diff --git a/source/blender/python/mathutils/mathutils_Color.c b/source/blender/python/mathutils/mathutils_Color.c index d0c7ec72cea..f7cc1d4271a 100644 --- a/source/blender/python/mathutils/mathutils_Color.c +++ b/source/blender/python/mathutils/mathutils_Color.c @@ -42,7 +42,7 @@ static PyObject *Color_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { float col[3]= {0.0f, 0.0f, 0.0f}; - if(kwds && PyDict_Size(kwds)) { + if (kwds && PyDict_Size(kwds)) { PyErr_SetString(PyExc_TypeError, "mathutils.Color(): " "takes no keyword args"); @@ -53,7 +53,7 @@ static PyObject *Color_new(PyTypeObject *type, PyObject *args, PyObject *kwds) case 0: break; case 1: - if((mathutils_array_parse(col, COLOR_SIZE, COLOR_SIZE, PyTuple_GET_ITEM(args, 0), "mathutils.Color()")) == -1) + if ((mathutils_array_parse(col, COLOR_SIZE, COLOR_SIZE, PyTuple_GET_ITEM(args, 0), "mathutils.Color()")) == -1) return NULL; break; default: @@ -75,13 +75,13 @@ static PyObject *Color_ToTupleExt(ColorObject *self, int ndigits) ret= PyTuple_New(COLOR_SIZE); - if(ndigits >= 0) { - for(i= 0; i < COLOR_SIZE; i++) { + if (ndigits >= 0) { + for (i= 0; i < COLOR_SIZE; i++) { PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->col[i], ndigits))); } } else { - for(i= 0; i < COLOR_SIZE; i++) { + for (i= 0; i < COLOR_SIZE; i++) { PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->col[i])); } } @@ -102,7 +102,7 @@ PyDoc_STRVAR(Color_copy_doc, ); static PyObject *Color_copy(ColorObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; return newColorObject(self->col, Py_NEW, Py_TYPE(self)); @@ -115,7 +115,7 @@ static PyObject *Color_repr(ColorObject * self) { PyObject *ret, *tuple; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; tuple= Color_ToTupleExt(self, -1); @@ -137,7 +137,7 @@ static PyObject* Color_richcmpr(PyObject *a, PyObject *b, int op) ColorObject *colA= (ColorObject*)a; ColorObject *colB= (ColorObject*)b; - if(BaseMath_ReadCallback(colA) == -1 || BaseMath_ReadCallback(colB) == -1) + if (BaseMath_ReadCallback(colA) == -1 || BaseMath_ReadCallback(colB) == -1) return NULL; ok= EXPP_VectorsAreEqual(colA->col, colB->col, COLOR_SIZE, 1) ? 0 : -1; @@ -175,16 +175,16 @@ static int Color_len(ColorObject *UNUSED(self)) //sequence accessor (get) static PyObject *Color_item(ColorObject * self, int i) { - if(i<0) i= COLOR_SIZE-i; + if (i<0) i= COLOR_SIZE-i; - if(i < 0 || i >= COLOR_SIZE) { + if (i < 0 || i >= COLOR_SIZE) { PyErr_SetString(PyExc_IndexError, "color[attribute]: " "array index out of range"); return NULL; } - if(BaseMath_ReadIndexCallback(self, i) == -1) + if (BaseMath_ReadIndexCallback(self, i) == -1) return NULL; return PyFloat_FromDouble(self->col[i]); @@ -196,16 +196,16 @@ static int Color_ass_item(ColorObject * self, int i, PyObject *value) { float f = PyFloat_AsDouble(value); - if(f == -1 && PyErr_Occurred()) { // parsed item not a number + if (f == -1 && PyErr_Occurred()) { // parsed item not a number PyErr_SetString(PyExc_TypeError, "color[attribute] = x: " "argument not a number"); return -1; } - if(i<0) i= COLOR_SIZE-i; + if (i<0) i= COLOR_SIZE-i; - if(i < 0 || i >= COLOR_SIZE){ + if (i < 0 || i >= COLOR_SIZE) { PyErr_SetString(PyExc_IndexError, "color[attribute] = x: " "array assignment index out of range"); return -1; @@ -213,7 +213,7 @@ static int Color_ass_item(ColorObject * self, int i, PyObject *value) self->col[i] = f; - if(BaseMath_WriteIndexCallback(self, i) == -1) + if (BaseMath_WriteIndexCallback(self, i) == -1) return -1; return 0; @@ -225,7 +225,7 @@ static PyObject *Color_slice(ColorObject * self, int begin, int end) PyObject *tuple; int count; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; CLAMP(begin, 0, COLOR_SIZE); @@ -234,7 +234,7 @@ static PyObject *Color_slice(ColorObject * self, int begin, int end) begin= MIN2(begin, end); tuple= PyTuple_New(end - begin); - for(count= begin; count < end; count++) { + for (count= begin; count < end; count++) { PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->col[count])); } @@ -247,7 +247,7 @@ static int Color_ass_slice(ColorObject *self, int begin, int end, PyObject *seq) int i, size; float col[COLOR_SIZE]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; CLAMP(begin, 0, COLOR_SIZE); @@ -255,17 +255,17 @@ static int Color_ass_slice(ColorObject *self, int begin, int end, PyObject *seq) CLAMP(end, 0, COLOR_SIZE); begin = MIN2(begin, end); - if((size=mathutils_array_parse(col, 0, COLOR_SIZE, seq, "mathutils.Color[begin:end] = []")) == -1) + if ((size=mathutils_array_parse(col, 0, COLOR_SIZE, seq, "mathutils.Color[begin:end] = []")) == -1) return -1; - if(size != (end - begin)){ + if (size != (end - begin)) { PyErr_SetString(PyExc_ValueError, "color[begin:end] = []: " "size mismatch in slice assignment"); return -1; } - for(i= 0; i < COLOR_SIZE; i++) + for (i= 0; i < COLOR_SIZE; i++) self->col[begin + i] = col[i]; (void)BaseMath_WriteCallback(self); @@ -379,7 +379,7 @@ static PyObject *Color_add(PyObject *v1, PyObject *v2) color1 = (ColorObject*)v1; color2 = (ColorObject*)v2; - if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) + if (BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) return NULL; add_vn_vnvn(col, color1->col, color2->col, COLOR_SIZE); @@ -401,7 +401,7 @@ static PyObject *Color_iadd(PyObject *v1, PyObject *v2) color1 = (ColorObject*)v1; color2 = (ColorObject*)v2; - if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) + if (BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) return NULL; add_vn_vn(color1->col, color2->col, COLOR_SIZE); @@ -426,7 +426,7 @@ static PyObject *Color_sub(PyObject *v1, PyObject *v2) color1 = (ColorObject*)v1; color2 = (ColorObject*)v2; - if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) + if (BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) return NULL; sub_vn_vnvn(col, color1->col, color2->col, COLOR_SIZE); @@ -448,7 +448,7 @@ static PyObject *Color_isub(PyObject *v1, PyObject *v2) color1 = (ColorObject*)v1; color2 = (ColorObject*)v2; - if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) + if (BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) return NULL; sub_vn_vn(color1->col, color2->col, COLOR_SIZE); @@ -473,12 +473,12 @@ static PyObject *Color_mul(PyObject *v1, PyObject *v2) if ColorObject_Check(v1) { color1= (ColorObject *)v1; - if(BaseMath_ReadCallback(color1) == -1) + if (BaseMath_ReadCallback(color1) == -1) return NULL; } if ColorObject_Check(v2) { color2= (ColorObject *)v2; - if(BaseMath_ReadCallback(color2) == -1) + if (BaseMath_ReadCallback(color2) == -1) return NULL; } @@ -515,7 +515,7 @@ static PyObject *Color_div(PyObject *v1, PyObject *v2) if ColorObject_Check(v1) { color1= (ColorObject *)v1; - if(BaseMath_ReadCallback(color1) == -1) + if (BaseMath_ReadCallback(color1) == -1) return NULL; } else { @@ -526,7 +526,7 @@ static PyObject *Color_div(PyObject *v1, PyObject *v2) /* make sure v1 is always the vector */ if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR * FLOAT */ - if(scalar==0.0f) { + if (scalar==0.0f) { PyErr_SetString(PyExc_ZeroDivisionError, "Color division: divide by zero error"); return NULL; @@ -547,7 +547,7 @@ static PyObject *Color_imul(PyObject *v1, PyObject *v2) ColorObject *color = (ColorObject *)v1; float scalar; - if(BaseMath_ReadCallback(color) == -1) + if (BaseMath_ReadCallback(color) == -1) return NULL; /* only support color *= float */ @@ -572,12 +572,12 @@ static PyObject *Color_idiv(PyObject *v1, PyObject *v2) ColorObject *color = (ColorObject *)v1; float scalar; - if(BaseMath_ReadCallback(color) == -1) + if (BaseMath_ReadCallback(color) == -1) return NULL; /* only support color /= float */ if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR /= FLOAT */ - if(scalar==0.0f) { + if (scalar==0.0f) { PyErr_SetString(PyExc_ZeroDivisionError, "Color division: divide by zero error"); return NULL; @@ -603,7 +603,7 @@ static PyObject *Color_neg(ColorObject *self) { float tcol[COLOR_SIZE]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; negate_vn_vn(tcol, self->col, COLOR_SIZE); @@ -665,7 +665,7 @@ static PyObject *Color_getChannelHSV(ColorObject * self, void *type) float hsv[3]; int i= GET_INT_FROM_POINTER(type); - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2])); @@ -679,14 +679,14 @@ static int Color_setChannelHSV(ColorObject * self, PyObject *value, void * type) int i= GET_INT_FROM_POINTER(type); float f = PyFloat_AsDouble(value); - if(f == -1 && PyErr_Occurred()) { + if (f == -1 && PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "color.h/s/v = value: " "argument not a number"); return -1; } - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2])); @@ -694,7 +694,7 @@ static int Color_setChannelHSV(ColorObject * self, PyObject *value, void * type) hsv[i] = f; hsv_to_rgb(hsv[0], hsv[1], hsv[2], &(self->col[0]), &(self->col[1]), &(self->col[2])); - if(BaseMath_WriteCallback(self) == -1) + if (BaseMath_WriteCallback(self) == -1) return -1; return 0; @@ -706,7 +706,7 @@ static PyObject *Color_getHSV(ColorObject * self, void *UNUSED(closure)) float hsv[3]; PyObject *ret; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2])); @@ -722,7 +722,7 @@ static int Color_setHSV(ColorObject * self, PyObject *value, void *UNUSED(closur { float hsv[3]; - if(mathutils_array_parse(hsv, 3, 3, value, "mathutils.Color.hsv = value") == -1) + if (mathutils_array_parse(hsv, 3, 3, value, "mathutils.Color.hsv = value") == -1) return -1; CLAMP(hsv[0], 0.0f, 1.0f); @@ -731,7 +731,7 @@ static int Color_setHSV(ColorObject * self, PyObject *value, void *UNUSED(closur hsv_to_rgb(hsv[0], hsv[1], hsv[2], &(self->col[0]), &(self->col[1]), &(self->col[2])); - if(BaseMath_WriteCallback(self) == -1) + if (BaseMath_WriteCallback(self) == -1) return -1; return 0; @@ -834,11 +834,11 @@ PyObject *newColorObject(float *col, int type, PyTypeObject *base_type) self->cb_user= NULL; self->cb_type= self->cb_subtype= 0; - if(type == Py_WRAP){ + if(type == Py_WRAP) { self->col = col; self->wrapped = Py_WRAP; } - else if (type == Py_NEW){ + else if (type == Py_NEW) { self->col = PyMem_Malloc(COLOR_SIZE * sizeof(float)); if(col) copy_v3_v3(self->col, col); diff --git a/source/blender/python/mathutils/mathutils_Euler.c b/source/blender/python/mathutils/mathutils_Euler.c index c96eafcd6ad..c6be461a227 100644 --- a/source/blender/python/mathutils/mathutils_Euler.c +++ b/source/blender/python/mathutils/mathutils_Euler.c @@ -50,21 +50,21 @@ static PyObject *Euler_new(PyTypeObject *type, PyObject *args, PyObject *kwds) float eul[EULER_SIZE]= {0.0f, 0.0f, 0.0f}; short order= EULER_ORDER_XYZ; - if(kwds && PyDict_Size(kwds)) { + if (kwds && PyDict_Size(kwds)) { PyErr_SetString(PyExc_TypeError, "mathutils.Euler(): " "takes no keyword args"); return NULL; } - if(!PyArg_ParseTuple(args, "|Os:mathutils.Euler", &seq, &order_str)) + if (!PyArg_ParseTuple(args, "|Os:mathutils.Euler", &seq, &order_str)) return NULL; switch(PyTuple_GET_SIZE(args)) { case 0: break; case 2: - if((order=euler_order_from_string(order_str, "mathutils.Euler()")) == -1) + if ((order=euler_order_from_string(order_str, "mathutils.Euler()")) == -1) return NULL; /* intentionally pass through */ case 1: @@ -75,7 +75,7 @@ static PyObject *Euler_new(PyTypeObject *type, PyObject *args, PyObject *kwds) return newEulerObject(eul, order, Py_NEW, type); } -/* internal use, assuem read callback is done */ +/* internal use, assume read callback is done */ static const char *euler_order_str(EulerObject *self) { static const char order[][4] = {"XYZ", "XZY", "YXZ", "YZX", "ZXY", "ZYX"}; @@ -84,7 +84,7 @@ static const char *euler_order_str(EulerObject *self) short euler_order_from_string(const char *str, const char *error_prefix) { - if((str[0] && str[1] && str[2] && str[3]=='\0')) { + if ((str[0] && str[1] && str[2] && str[3]=='\0')) { switch(*((PY_INT32_T *)str)) { case 'X'|'Y'<<8|'Z'<<16: return EULER_ORDER_XYZ; case 'X'|'Z'<<8|'Y'<<16: return EULER_ORDER_XZY; @@ -109,13 +109,13 @@ static PyObject *Euler_ToTupleExt(EulerObject *self, int ndigits) ret= PyTuple_New(EULER_SIZE); - if(ndigits >= 0) { - for(i= 0; i < EULER_SIZE; i++) { + if (ndigits >= 0) { + for (i= 0; i < EULER_SIZE; i++) { PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->eul[i], ndigits))); } } else { - for(i= 0; i < EULER_SIZE; i++) { + for (i= 0; i < EULER_SIZE; i++) { PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->eul[i])); } } @@ -138,7 +138,7 @@ static PyObject *Euler_to_quaternion(EulerObject * self) { float quat[4]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; eulO_to_quat(quat, self->eul, self->order); @@ -159,7 +159,7 @@ static PyObject *Euler_to_matrix(EulerObject * self) { float mat[9]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; eulO_to_mat3((float (*)[3])mat, self->eul, self->order); @@ -176,7 +176,7 @@ static PyObject *Euler_zero(EulerObject * self) { zero_v3(self->eul); - if(BaseMath_WriteCallback(self) == -1) + if (BaseMath_WriteCallback(self) == -1) return NULL; Py_RETURN_NONE; @@ -198,21 +198,21 @@ static PyObject *Euler_rotate_axis(EulerObject * self, PyObject *args) float angle = 0.0f; int axis; /* actually a character */ - if(!PyArg_ParseTuple(args, "Cf:rotate", &axis, &angle)){ + if (!PyArg_ParseTuple(args, "Cf:rotate", &axis, &angle)) { PyErr_SetString(PyExc_TypeError, "Euler.rotate_axis(): " "expected an axis 'X', 'Y', 'Z' and an angle (float)"); return NULL; } - if(!(ELEM3(axis, 'X', 'Y', 'Z'))){ + if (!(ELEM3(axis, 'X', 'Y', 'Z'))) { PyErr_SetString(PyExc_ValueError, "Euler.rotate_axis(): " "expected axis to be 'X', 'Y' or 'Z'"); return NULL; } - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; @@ -235,10 +235,10 @@ static PyObject *Euler_rotate(EulerObject * self, PyObject *value) { float self_rmat[3][3], other_rmat[3][3], rmat[3][3]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(mathutils_any_to_rotmat(other_rmat, value, "euler.rotate(value)") == -1) + if (mathutils_any_to_rotmat(other_rmat, value, "euler.rotate(value)") == -1) return NULL; eulO_to_mat3(self_rmat, self->eul, self->order); @@ -262,10 +262,10 @@ static PyObject *Euler_make_compatible(EulerObject * self, PyObject *value) { float teul[EULER_SIZE]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(mathutils_array_parse(teul, EULER_SIZE, EULER_SIZE, value, "euler.make_compatible(other), invalid 'other' arg") == -1) + if (mathutils_array_parse(teul, EULER_SIZE, EULER_SIZE, value, "euler.make_compatible(other), invalid 'other' arg") == -1) return NULL; compatible_eul(self->eul, teul); @@ -291,7 +291,7 @@ PyDoc_STRVAR(Euler_copy_doc, ); static PyObject *Euler_copy(EulerObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; return newEulerObject(self->eul, self->order, Py_NEW, Py_TYPE(self)); @@ -304,7 +304,7 @@ static PyObject *Euler_repr(EulerObject * self) { PyObject *ret, *tuple; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; tuple= Euler_ToTupleExt(self, -1); @@ -324,7 +324,7 @@ static PyObject* Euler_richcmpr(PyObject *a, PyObject *b, int op) EulerObject *eulA= (EulerObject*)a; EulerObject *eulB= (EulerObject*)b; - if(BaseMath_ReadCallback(eulA) == -1 || BaseMath_ReadCallback(eulB) == -1) + if (BaseMath_ReadCallback(eulA) == -1 || BaseMath_ReadCallback(eulB) == -1) return NULL; ok= ((eulA->order == eulB->order) && EXPP_VectorsAreEqual(eulA->eul, eulB->eul, EULER_SIZE, 1)) ? 0 : -1; @@ -362,16 +362,16 @@ static int Euler_len(EulerObject *UNUSED(self)) //sequence accessor (get) static PyObject *Euler_item(EulerObject * self, int i) { - if(i<0) i= EULER_SIZE-i; + if (i<0) i= EULER_SIZE-i; - if(i < 0 || i >= EULER_SIZE) { + if (i < 0 || i >= EULER_SIZE) { PyErr_SetString(PyExc_IndexError, "euler[attribute]: " "array index out of range"); return NULL; } - if(BaseMath_ReadIndexCallback(self, i) == -1) + if (BaseMath_ReadIndexCallback(self, i) == -1) return NULL; return PyFloat_FromDouble(self->eul[i]); @@ -383,16 +383,16 @@ static int Euler_ass_item(EulerObject * self, int i, PyObject *value) { float f = PyFloat_AsDouble(value); - if(f == -1 && PyErr_Occurred()) { // parsed item not a number + if (f == -1 && PyErr_Occurred()) { // parsed item not a number PyErr_SetString(PyExc_TypeError, "euler[attribute] = x: " "argument not a number"); return -1; } - if(i<0) i= EULER_SIZE-i; + if (i<0) i= EULER_SIZE-i; - if(i < 0 || i >= EULER_SIZE){ + if (i < 0 || i >= EULER_SIZE) { PyErr_SetString(PyExc_IndexError, "euler[attribute] = x: " "array assignment index out of range"); @@ -401,7 +401,7 @@ static int Euler_ass_item(EulerObject * self, int i, PyObject *value) self->eul[i] = f; - if(BaseMath_WriteIndexCallback(self, i) == -1) + if (BaseMath_WriteIndexCallback(self, i) == -1) return -1; return 0; @@ -413,7 +413,7 @@ static PyObject *Euler_slice(EulerObject * self, int begin, int end) PyObject *tuple; int count; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; CLAMP(begin, 0, EULER_SIZE); @@ -422,7 +422,7 @@ static PyObject *Euler_slice(EulerObject * self, int begin, int end) begin= MIN2(begin, end); tuple= PyTuple_New(end - begin); - for(count = begin; count < end; count++) { + for (count = begin; count < end; count++) { PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->eul[count])); } @@ -435,7 +435,7 @@ static int Euler_ass_slice(EulerObject *self, int begin, int end, PyObject *seq) int i, size; float eul[EULER_SIZE]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; CLAMP(begin, 0, EULER_SIZE); @@ -443,17 +443,17 @@ static int Euler_ass_slice(EulerObject *self, int begin, int end, PyObject *seq) CLAMP(end, 0, EULER_SIZE); begin = MIN2(begin, end); - if((size=mathutils_array_parse(eul, 0, EULER_SIZE, seq, "mathutils.Euler[begin:end] = []")) == -1) + if ((size=mathutils_array_parse(eul, 0, EULER_SIZE, seq, "mathutils.Euler[begin:end] = []")) == -1) return -1; - if(size != (end - begin)){ + if (size != (end - begin)) { PyErr_SetString(PyExc_ValueError, "euler[begin:end] = []: " "size mismatch in slice assignment"); return -1; } - for(i= 0; i < EULER_SIZE; i++) + for (i= 0; i < EULER_SIZE; i++) self->eul[begin + i] = eul[i]; (void)BaseMath_WriteCallback(self); @@ -566,7 +566,7 @@ static int Euler_setAxis(EulerObject *self, PyObject *value, void *type) /* rotation order */ static PyObject *Euler_getOrder(EulerObject *self, void *UNUSED(closure)) { - if(BaseMath_ReadCallback(self) == -1) /* can read order too */ + if (BaseMath_ReadCallback(self) == -1) /* can read order too */ return NULL; return PyUnicode_FromString(euler_order_str(self)); @@ -577,7 +577,7 @@ static int Euler_setOrder(EulerObject *self, PyObject *value, void *UNUSED(closu const char *order_str= _PyUnicode_AsString(value); short order= euler_order_from_string(order_str, "euler.order"); - if(order == -1) + if (order == -1) return -1; self->order= order; @@ -678,18 +678,18 @@ PyObject *newEulerObject(float *eul, short order, int type, PyTypeObject *base_t self= base_type ? (EulerObject *)base_type->tp_alloc(base_type, 0) : (EulerObject *)PyObject_GC_New(EulerObject, &euler_Type); - if(self) { + if (self) { /* init callbacks as NULL */ self->cb_user= NULL; self->cb_type= self->cb_subtype= 0; - if(type == Py_WRAP) { + if (type == Py_WRAP) { self->eul = eul; self->wrapped = Py_WRAP; } else if (type == Py_NEW) { self->eul = PyMem_Malloc(EULER_SIZE * sizeof(float)); - if(eul) { + if (eul) { copy_v3_v3(self->eul, eul); } else { @@ -711,7 +711,7 @@ PyObject *newEulerObject(float *eul, short order, int type, PyTypeObject *base_t PyObject *newEulerObject_cb(PyObject *cb_user, short order, int cb_type, int cb_subtype) { EulerObject *self= (EulerObject *)newEulerObject(NULL, order, Py_NEW, NULL); - if(self) { + if (self) { Py_INCREF(cb_user); self->cb_user= cb_user; self->cb_type= (unsigned char)cb_type; diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c index a2a15600965..7570b5642ef 100644 --- a/source/blender/python/mathutils/mathutils_Matrix.c +++ b/source/blender/python/mathutils/mathutils_Matrix.c @@ -55,10 +55,10 @@ static int mathutils_matrix_vector_get(BaseMathObject *bmo, int subtype) MatrixObject *self= (MatrixObject *)bmo->cb_user; int i; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; - for(i=0; i < self->col_size; i++) + for (i=0; i < self->col_size; i++) bmo->data[i]= self->matrix[subtype][i]; return 0; @@ -69,10 +69,10 @@ static int mathutils_matrix_vector_set(BaseMathObject *bmo, int subtype) MatrixObject *self= (MatrixObject *)bmo->cb_user; int i; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; - for(i=0; i < self->col_size; i++) + for (i=0; i < self->col_size; i++) self->matrix[subtype][i]= bmo->data[i]; (void)BaseMath_WriteCallback(self); @@ -83,7 +83,7 @@ static int mathutils_matrix_vector_get_index(BaseMathObject *bmo, int subtype, i { MatrixObject *self= (MatrixObject *)bmo->cb_user; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; bmo->data[index]= self->matrix[subtype][index]; @@ -94,7 +94,7 @@ static int mathutils_matrix_vector_set_index(BaseMathObject *bmo, int subtype, i { MatrixObject *self= (MatrixObject *)bmo->cb_user; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; self->matrix[subtype][index]= bmo->data[index]; @@ -117,7 +117,7 @@ Mathutils_Callback mathutils_matrix_vector_cb = { //create a new matrix type static PyObject *Matrix_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { - if(kwds && PyDict_Size(kwds)) { + if (kwds && PyDict_Size(kwds)) { PyErr_SetString(PyExc_TypeError, "Matrix(): " "takes no keyword args"); @@ -134,15 +134,15 @@ static PyObject *Matrix_new(PyTypeObject *type, PyObject *args, PyObject *kwds) /* -1 is an error, size checks will accunt for this */ const unsigned short row_size= PySequence_Size(arg); - if(row_size >= 2 && row_size <= 4) { + if (row_size >= 2 && row_size <= 4) { PyObject *item= PySequence_GetItem(arg, 0); const unsigned short col_size= PySequence_Size(item); Py_XDECREF(item); - if(col_size >= 2 && col_size <= 4) { + if (col_size >= 2 && col_size <= 4) { /* sane row & col size, new matrix and assign as slice */ PyObject *matrix= newMatrixObject(NULL, row_size, col_size, Py_NEW, type); - if(Matrix_ass_slice((MatrixObject *)matrix, 0, INT_MAX, arg) == 0) { + if (Matrix_ass_slice((MatrixObject *)matrix, 0, INT_MAX, arg) == 0) { return matrix; } else { /* matrix ok, slice assignment not */ @@ -164,7 +164,7 @@ static PyObject *matrix__apply_to_copy(PyNoArgsFunction matrix_func, MatrixObjec { PyObject *ret= Matrix_copy(self); PyObject *ret_dummy= matrix_func(ret); - if(ret_dummy) { + if (ret_dummy) { Py_DECREF(ret_dummy); return (PyObject *)ret; } @@ -214,16 +214,16 @@ static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - if(!PyArg_ParseTuple(args, "di|O", &angle, &matSize, &vec)) { + if (!PyArg_ParseTuple(args, "di|O", &angle, &matSize, &vec)) { PyErr_SetString(PyExc_TypeError, "Matrix.Rotation(angle, size, axis): " "expected float int and a string or vector"); return NULL; } - if(vec && PyUnicode_Check(vec)) { + if (vec && PyUnicode_Check(vec)) { axis= _PyUnicode_AsString((PyObject *)vec); - if(axis==NULL || axis[0]=='\0' || axis[1]!='\0' || axis[0] < 'X' || axis[0] > 'Z') { + if (axis==NULL || axis[0]=='\0' || axis[1]!='\0' || axis[0] < 'X' || axis[0] > 'Z') { PyErr_SetString(PyExc_ValueError, "Matrix.Rotation(): " "3rd argument axis value must be a 3D vector " @@ -238,19 +238,19 @@ static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) angle= angle_wrap_rad(angle); - if(matSize != 2 && matSize != 3 && matSize != 4) { + if (matSize != 2 && matSize != 3 && matSize != 4) { PyErr_SetString(PyExc_ValueError, "Matrix.Rotation(): " "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; } - if(matSize == 2 && (vec != NULL)) { + if (matSize == 2 && (vec != NULL)) { PyErr_SetString(PyExc_ValueError, "Matrix.Rotation(): " "cannot create a 2x2 rotation matrix around arbitrary axis"); return NULL; } - if((matSize == 3 || matSize == 4) && (axis == NULL) && (vec == NULL)) { + if ((matSize == 3 || matSize == 4) && (axis == NULL) && (vec == NULL)) { PyErr_SetString(PyExc_ValueError, "Matrix.Rotation(): " "axis of rotation for 3d and 4d matrices is required"); @@ -258,7 +258,7 @@ static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) } /* check for valid vector/axis above */ - if(vec) { + if (vec) { float tvec[3]; if (mathutils_array_parse(tvec, 3, 3, vec, "Matrix.Rotation(angle, size, axis), invalid 'axis' arg") == -1) @@ -281,7 +281,7 @@ static PyObject *C_Matrix_Rotation(PyObject *cls, PyObject *args) single_axis_angle_to_mat3((float (*)[3])mat, axis[0], angle); } - if(matSize == 4) { + if (matSize == 4) { matrix_3x3_as_4x4(mat); } //pass to matrix creation @@ -337,23 +337,23 @@ static PyObject *C_Matrix_Scale(PyObject *cls, PyObject *args) float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - if(!PyArg_ParseTuple(args, "fi|O:Matrix.Scale", &factor, &matSize, &vec)) { + if (!PyArg_ParseTuple(args, "fi|O:Matrix.Scale", &factor, &matSize, &vec)) { return NULL; } - if(matSize != 2 && matSize != 3 && matSize != 4) { + if (matSize != 2 && matSize != 3 && matSize != 4) { PyErr_SetString(PyExc_ValueError, "Matrix.Scale(): " "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; } - if(vec) { + if (vec) { vec_size= (matSize == 2 ? 2 : 3); - if(mathutils_array_parse(tvec, vec_size, vec_size, vec, "Matrix.Scale(factor, size, axis), invalid 'axis' arg") == -1) { + if (mathutils_array_parse(tvec, vec_size, vec_size, vec, "Matrix.Scale(factor, size, axis), invalid 'axis' arg") == -1) { return NULL; } } - if(vec == NULL) { //scaling along axis - if(matSize == 2) { + if (vec == NULL) { //scaling along axis + if (matSize == 2) { mat[0] = factor; mat[3] = factor; } @@ -367,14 +367,14 @@ static PyObject *C_Matrix_Scale(PyObject *cls, PyObject *args) //normalize arbitrary axis float norm = 0.0f; int x; - for(x = 0; x < vec_size; x++) { + for (x = 0; x < vec_size; x++) { norm += tvec[x] * tvec[x]; } norm = (float) sqrt(norm); - for(x = 0; x < vec_size; x++) { + for (x = 0; x < vec_size; x++) { tvec[x] /= norm; } - if(matSize == 2) { + if (matSize == 2) { mat[0] = 1 + ((factor - 1) *(tvec[0] * tvec[0])); mat[1] = ((factor - 1) *(tvec[0] * tvec[1])); mat[2] = ((factor - 1) *(tvec[0] * tvec[1])); @@ -392,7 +392,7 @@ static PyObject *C_Matrix_Scale(PyObject *cls, PyObject *args) mat[8] = 1 + ((factor - 1) *(tvec[2] * tvec[2])); } } - if(matSize == 4) { + if (matSize == 4) { matrix_3x3_as_4x4(mat); } //pass to matrix creation @@ -423,21 +423,21 @@ static PyObject *C_Matrix_OrthoProjection(PyObject *cls, PyObject *args) float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - if(!PyArg_ParseTuple(args, "Oi:Matrix.OrthoProjection", &axis, &matSize)) { + if (!PyArg_ParseTuple(args, "Oi:Matrix.OrthoProjection", &axis, &matSize)) { return NULL; } - if(matSize != 2 && matSize != 3 && matSize != 4) { + if (matSize != 2 && matSize != 3 && matSize != 4) { PyErr_SetString(PyExc_ValueError, "Matrix.OrthoProjection(): " "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; } - if(PyUnicode_Check(axis)) { //ortho projection onto cardinal plane + if (PyUnicode_Check(axis)) { //ortho projection onto cardinal plane Py_ssize_t plane_len; const char *plane= _PyUnicode_AsStringAndSize(axis, &plane_len); - if(matSize == 2) { - if(plane_len == 1 && plane[0]=='X') { + if (matSize == 2) { + if (plane_len == 1 && plane[0]=='X') { mat[0]= 1.0f; } else if (plane_len == 1 && plane[0]=='Y') { @@ -452,7 +452,7 @@ static PyObject *C_Matrix_OrthoProjection(PyObject *cls, PyObject *args) } } else { - if(plane_len == 2 && plane[0]=='X' && plane[1]=='Y') { + if (plane_len == 2 && plane[0]=='X' && plane[1]=='Y') { mat[0]= 1.0f; mat[4]= 1.0f; } @@ -479,25 +479,25 @@ static PyObject *C_Matrix_OrthoProjection(PyObject *cls, PyObject *args) int vec_size= (matSize == 2 ? 2 : 3); float tvec[4]; - if(mathutils_array_parse(tvec, vec_size, vec_size, axis, "Matrix.OrthoProjection(axis, size), invalid 'axis' arg") == -1) { + if (mathutils_array_parse(tvec, vec_size, vec_size, axis, "Matrix.OrthoProjection(axis, size), invalid 'axis' arg") == -1) { return NULL; } //normalize arbitrary axis - for(x = 0; x < vec_size; x++) { + for (x = 0; x < vec_size; x++) { norm += tvec[x] * tvec[x]; } norm = (float) sqrt(norm); - for(x = 0; x < vec_size; x++) { + for (x = 0; x < vec_size; x++) { tvec[x] /= norm; } - if(matSize == 2) { + if (matSize == 2) { mat[0] = 1 - (tvec[0] * tvec[0]); mat[1] = -(tvec[0] * tvec[1]); mat[2] = -(tvec[0] * tvec[1]); mat[3] = 1 - (tvec[1] * tvec[1]); } - else if(matSize > 2) { + else if (matSize > 2) { mat[0] = 1 - (tvec[0] * tvec[0]); mat[1] = -(tvec[0] * tvec[1]); mat[2] = -(tvec[0] * tvec[2]); @@ -509,7 +509,7 @@ static PyObject *C_Matrix_OrthoProjection(PyObject *cls, PyObject *args) mat[8] = 1 - (tvec[2] * tvec[2]); } } - if(matSize == 4) { + if (matSize == 4) { matrix_3x3_as_4x4(mat); } //pass to matrix creation @@ -540,20 +540,20 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - if(!PyArg_ParseTuple(args, "siO:Matrix.Shear", &plane, &matSize, &fac)) { + if (!PyArg_ParseTuple(args, "siO:Matrix.Shear", &plane, &matSize, &fac)) { return NULL; } - if(matSize != 2 && matSize != 3 && matSize != 4) { + if (matSize != 2 && matSize != 3 && matSize != 4) { PyErr_SetString(PyExc_ValueError, "Matrix.Shear(): " "can only return a 2x2 3x3 or 4x4 matrix"); return NULL; } - if(matSize == 2) { + if (matSize == 2) { float const factor= PyFloat_AsDouble(fac); - if(factor==-1.0f && PyErr_Occurred()) { + if (factor==-1.0f && PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "Matrix.Shear(): " "the factor to be a float"); @@ -564,10 +564,10 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) mat[0] = 1.0f; mat[3] = 1.0f; - if(strcmp(plane, "X") == 0) { + if (strcmp(plane, "X") == 0) { mat[2] = factor; } - else if(strcmp(plane, "Y") == 0) { + else if (strcmp(plane, "Y") == 0) { mat[1] = factor; } else { @@ -581,7 +581,7 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) /* 3 or 4, apply as 3x3, resize later if needed */ float factor[2]; - if(mathutils_array_parse(factor, 2, 2, fac, "Matrix.Shear()") < 0) { + if (mathutils_array_parse(factor, 2, 2, fac, "Matrix.Shear()") < 0) { return NULL; } @@ -590,15 +590,15 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) mat[4] = 1.0f; mat[8] = 1.0f; - if(strcmp(plane, "XY") == 0) { + if (strcmp(plane, "XY") == 0) { mat[6] = factor[0]; mat[7] = factor[1]; } - else if(strcmp(plane, "XZ") == 0) { + else if (strcmp(plane, "XZ") == 0) { mat[3] = factor[0]; mat[5] = factor[1]; } - else if(strcmp(plane, "YZ") == 0) { + else if (strcmp(plane, "YZ") == 0) { mat[1] = factor[0]; mat[2] = factor[1]; } @@ -610,7 +610,7 @@ static PyObject *C_Matrix_Shear(PyObject *cls, PyObject *args) } } - if(matSize == 4) { + if (matSize == 4) { matrix_3x3_as_4x4(mat); } //pass to matrix creation @@ -627,11 +627,11 @@ void matrix_as_3x3(float mat[3][3], MatrixObject *self) /* assumes rowsize == colsize is checked and the read callback has run */ static float matrix_determinant_internal(MatrixObject *self) { - if(self->row_size == 2) { + if (self->row_size == 2) { return determinant_m2(self->matrix[0][0], self->matrix[0][1], self->matrix[1][0], self->matrix[1][1]); } - else if(self->row_size == 3) { + else if (self->row_size == 3) { return determinant_m3(self->matrix[0][0], self->matrix[0][1], self->matrix[0][2], self->matrix[1][0], self->matrix[1][1], self->matrix[1][2], @@ -657,17 +657,17 @@ static PyObject *Matrix_to_quaternion(MatrixObject *self) { float quat[4]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; /*must be 3-4 cols, 3-4 rows, square matrix*/ - if((self->col_size < 3) || (self->row_size < 3) || (self->col_size != self->row_size)) { + if ((self->col_size < 3) || (self->row_size < 3) || (self->col_size != self->row_size)) { PyErr_SetString(PyExc_ValueError, "Matrix.to_quat(): " "inappropriate matrix size - expects 3x3 or 4x4 matrix"); return NULL; } - if(self->col_size == 3){ + if (self->col_size == 3) { mat3_to_quat(quat, (float (*)[3])self->contigPtr); } else { @@ -704,21 +704,21 @@ static PyObject *Matrix_to_euler(MatrixObject *self, PyObject *args) float tmat[3][3]; float (*mat)[3]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat)) + if (!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat)) return NULL; - if(eul_compat) { - if(BaseMath_ReadCallback(eul_compat) == -1) + if (eul_compat) { + if (BaseMath_ReadCallback(eul_compat) == -1) return NULL; copy_v3_v3(eul_compatf, eul_compat->eul); } /*must be 3-4 cols, 3-4 rows, square matrix*/ - if(self->col_size ==3 && self->row_size ==3) { + if (self->col_size ==3 && self->row_size ==3) { mat= (float (*)[3])self->contigPtr; } else if (self->col_size ==4 && self->row_size ==4) { @@ -732,19 +732,19 @@ static PyObject *Matrix_to_euler(MatrixObject *self, PyObject *args) return NULL; } - if(order_str) { + if (order_str) { order= euler_order_from_string(order_str, "Matrix.to_euler()"); - if(order == -1) + if (order == -1) return NULL; } - if(eul_compat) { - if(order == 1) mat3_to_compatible_eul(eul, eul_compatf, mat); + if (eul_compat) { + if (order == 1) mat3_to_compatible_eul(eul, eul_compatf, mat); else mat3_to_compatible_eulO(eul, eul_compatf, order, mat); } else { - if(order == 1) mat3_to_eul(eul, mat); + if (order == 1) mat3_to_eul(eul, mat); else mat3_to_eulO(eul, order, mat); } @@ -760,13 +760,13 @@ static PyObject *Matrix_resize_4x4(MatrixObject *self) { int x, first_row_elem, curr_pos, new_pos, blank_columns, blank_rows, index; - if(self->wrapped==Py_WRAP){ + if (self->wrapped==Py_WRAP) { PyErr_SetString(PyExc_TypeError, "Matrix.resize_4x4(): " "cannot resize wrapped data - make a copy and resize that"); return NULL; } - if(self->cb_user){ + if (self->cb_user) { PyErr_SetString(PyExc_TypeError, "Matrix.resize_4x4(): " "cannot resize owned data - make a copy and resize that"); @@ -774,21 +774,21 @@ static PyObject *Matrix_resize_4x4(MatrixObject *self) } self->contigPtr = PyMem_Realloc(self->contigPtr, (sizeof(float) * 16)); - if(self->contigPtr == NULL) { + if (self->contigPtr == NULL) { PyErr_SetString(PyExc_MemoryError, "Matrix.resize_4x4(): " "problem allocating pointer space"); return NULL; } /*set row pointers*/ - for(x = 0; x < 4; x++) { + for (x = 0; x < 4; x++) { self->matrix[x] = self->contigPtr + (x * 4); } /*move data to new spot in array + clean*/ - for(blank_rows = (4 - self->row_size); blank_rows > 0; blank_rows--){ - for(x = 0; x < 4; x++){ + for (blank_rows = (4 - self->row_size); blank_rows > 0; blank_rows--) { + for (x = 0; x < 4; x++) { index = (4 * (self->row_size + (blank_rows - 1))) + x; - if (index == 10 || index == 15){ + if (index == 10 || index == 15) { self->contigPtr[index] = 1.0f; } else { @@ -796,14 +796,14 @@ static PyObject *Matrix_resize_4x4(MatrixObject *self) } } } - for(x = 1; x <= self->row_size; x++){ + for (x = 1; x <= self->row_size; x++) { first_row_elem = (self->col_size * (self->row_size - x)); curr_pos = (first_row_elem + (self->col_size -1)); new_pos = (4 * (self->row_size - x)) + (curr_pos - first_row_elem); - for(blank_columns = (4 - self->col_size); blank_columns > 0; blank_columns--){ + for (blank_columns = (4 - self->col_size); blank_columns > 0; blank_columns--) { self->contigPtr[new_pos + blank_columns] = 0.0f; } - for( ; curr_pos >= first_row_elem; curr_pos--){ + for ( ; curr_pos >= first_row_elem; curr_pos--) { self->contigPtr[new_pos] = self->contigPtr[curr_pos]; new_pos--; } @@ -824,13 +824,13 @@ PyDoc_STRVAR(Matrix_to_4x4_doc, ); static PyObject *Matrix_to_4x4(MatrixObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(self->col_size==4 && self->row_size==4) { + if (self->col_size==4 && self->row_size==4) { return (PyObject *)newMatrixObject(self->contigPtr, 4, 4, Py_NEW, Py_TYPE(self)); } - else if(self->col_size==3 && self->row_size==3) { + else if (self->col_size==3 && self->row_size==3) { float mat[4][4]; copy_m4_m3(mat, (float (*)[3])self->contigPtr); return (PyObject *)newMatrixObject((float *)mat, 4, 4, Py_NEW, Py_TYPE(self)); @@ -855,10 +855,10 @@ static PyObject *Matrix_to_3x3(MatrixObject *self) { float mat[3][3]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if((self->col_size < 3) || (self->row_size < 3)) { + if ((self->col_size < 3) || (self->row_size < 3)) { PyErr_SetString(PyExc_TypeError, "Matrix.to_3x3(): inappropriate matrix size"); return NULL; @@ -879,10 +879,10 @@ PyDoc_STRVAR(Matrix_to_translation_doc, ); static PyObject *Matrix_to_translation(MatrixObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if((self->col_size < 3) || self->row_size < 4){ + if ((self->col_size < 3) || self->row_size < 4) { PyErr_SetString(PyExc_TypeError, "Matrix.to_translation(): " "inappropriate matrix size"); @@ -908,11 +908,11 @@ static PyObject *Matrix_to_scale(MatrixObject *self) float mat[3][3]; float size[3]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; /*must be 3-4 cols, 3-4 rows, square matrix*/ - if((self->col_size < 3) || (self->row_size < 3)) { + if ((self->col_size < 3) || (self->row_size < 3)) { PyErr_SetString(PyExc_TypeError, "Matrix.to_scale(): " "inappropriate matrix size, 3x3 minimum size"); @@ -945,10 +945,10 @@ static PyObject *Matrix_invert(MatrixObject *self) float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(self->row_size != self->col_size){ + if (self->row_size != self->col_size) { PyErr_SetString(PyExc_TypeError, "Matrix.invert(ed): " "only square matrices are supported"); @@ -958,25 +958,25 @@ static PyObject *Matrix_invert(MatrixObject *self) /*calculate the determinant*/ det = matrix_determinant_internal(self); - if(det != 0) { + if (det != 0) { /*calculate the classical adjoint*/ - if(self->row_size == 2) { + if (self->row_size == 2) { mat[0] = self->matrix[1][1]; mat[1] = -self->matrix[0][1]; mat[2] = -self->matrix[1][0]; mat[3] = self->matrix[0][0]; - } else if(self->row_size == 3) { + } else if (self->row_size == 3) { adjoint_m3_m3((float (*)[3]) mat,(float (*)[3])self->contigPtr); - } else if(self->row_size == 4) { + } else if (self->row_size == 4) { adjoint_m4_m4((float (*)[4]) mat, (float (*)[4])self->contigPtr); } /*divide by determinate*/ - for(x = 0; x < (self->row_size * self->col_size); x++) { + for (x = 0; x < (self->row_size * self->col_size); x++) { mat[x] /= det; } /*set values*/ - for(x = 0; x < self->row_size; x++) { - for(y = 0; y < self->col_size; y++) { + for (x = 0; x < self->row_size; x++) { + for (y = 0; y < self->col_size; y++) { self->matrix[x][y] = mat[z]; z++; } @@ -1024,13 +1024,13 @@ static PyObject *Matrix_rotate(MatrixObject *self, PyObject *value) { float self_rmat[3][3], other_rmat[3][3], rmat[3][3]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(mathutils_any_to_rotmat(other_rmat, value, "matrix.rotate(value)") == -1) + if (mathutils_any_to_rotmat(other_rmat, value, "matrix.rotate(value)") == -1) return NULL; - if(self->col_size != 3 || self->row_size != 3) { + if (self->col_size != 3 || self->row_size != 3) { PyErr_SetString(PyExc_TypeError, "Matrix.rotate(): " "must have 3x3 dimensions"); @@ -1063,14 +1063,14 @@ static PyObject *Matrix_decompose(MatrixObject *self) float quat[4]; float size[3]; - if(self->col_size != 4 || self->row_size != 4) { + if (self->col_size != 4 || self->row_size != 4) { PyErr_SetString(PyExc_TypeError, "Matrix.decompose(): " "inappropriate matrix size - expects 4x4 matrix"); return NULL; } - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; mat4_to_loc_rot_size(loc, rot, size, (float (*)[4])self->contigPtr); @@ -1089,7 +1089,7 @@ static PyObject *Matrix_decompose(MatrixObject *self) PyDoc_STRVAR(Matrix_lerp_doc, ".. function:: lerp(other, factor)\n" "\n" -" Returns the interpolation of two matricies.\n" +" Returns the interpolation of two matrices.\n" "\n" " :arg other: value to interpolate with.\n" " :type other: :class:`Matrix`\n" @@ -1103,21 +1103,21 @@ static PyObject *Matrix_lerp(MatrixObject *self, PyObject *args) MatrixObject *mat2 = NULL; float fac, mat[MATRIX_MAX_DIM*MATRIX_MAX_DIM]; - if(!PyArg_ParseTuple(args, "O!f:lerp", &matrix_Type, &mat2, &fac)) + if (!PyArg_ParseTuple(args, "O!f:lerp", &matrix_Type, &mat2, &fac)) return NULL; - if(self->row_size != mat2->row_size || self->col_size != mat2->col_size) { + if (self->row_size != mat2->row_size || self->col_size != mat2->col_size) { PyErr_SetString(PyExc_ValueError, "Matrix.lerp(): " "expects both matrix objects of the same dimensions"); return NULL; } - if(BaseMath_ReadCallback(self) == -1 || BaseMath_ReadCallback(mat2) == -1) + if (BaseMath_ReadCallback(self) == -1 || BaseMath_ReadCallback(mat2) == -1) return NULL; /* TODO, different sized matrix */ - if(self->row_size==4 && self->col_size==4) { + if (self->row_size==4 && self->col_size==4) { blend_m4_m4m4((float (*)[4])mat, (float (*)[4])self->contigPtr, (float (*)[4])mat2->contigPtr, fac); } else if (self->row_size==3 && self->col_size==3) { @@ -1146,10 +1146,10 @@ PyDoc_STRVAR(Matrix_determinant_doc, ); static PyObject *Matrix_determinant(MatrixObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(self->row_size != self->col_size){ + if (self->row_size != self->col_size) { PyErr_SetString(PyExc_TypeError, "Matrix.determinant(): " "only square matrices are supported"); @@ -1170,21 +1170,21 @@ static PyObject *Matrix_transpose(MatrixObject *self) { float t = 0.0f; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(self->row_size != self->col_size){ + if (self->row_size != self->col_size) { PyErr_SetString(PyExc_TypeError, "Matrix.transpose(d): " "only square matrices are supported"); return NULL; } - if(self->row_size == 2) { + if (self->row_size == 2) { t = self->matrix[1][0]; self->matrix[1][0] = self->matrix[0][1]; self->matrix[0][1] = t; - } else if(self->row_size == 3) { + } else if (self->row_size == 3) { transpose_m3((float (*)[3])self->contigPtr); } else { @@ -1221,7 +1221,7 @@ static PyObject *Matrix_zero(MatrixObject *self) { fill_vn(self->contigPtr, self->row_size * self->col_size, 0.0f); - if(BaseMath_WriteCallback(self) == -1) + if (BaseMath_WriteCallback(self) == -1) return NULL; Py_RETURN_NONE; @@ -1239,29 +1239,29 @@ PyDoc_STRVAR(Matrix_identity_doc, ); static PyObject *Matrix_identity(MatrixObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(self->row_size != self->col_size){ + if (self->row_size != self->col_size) { PyErr_SetString(PyExc_TypeError, "Matrix.identity(): " "only square matrices are supported"); return NULL; } - if(self->row_size == 2) { + if (self->row_size == 2) { self->matrix[0][0] = 1.0f; self->matrix[0][1] = 0.0f; self->matrix[1][0] = 0.0f; self->matrix[1][1] = 1.0f; - } else if(self->row_size == 3) { + } else if (self->row_size == 3) { unit_m3((float (*)[3])self->contigPtr); } else { unit_m4((float (*)[4])self->contigPtr); } - if(BaseMath_WriteCallback(self) == -1) + if (BaseMath_WriteCallback(self) == -1) return NULL; Py_RETURN_NONE; @@ -1278,7 +1278,7 @@ PyDoc_STRVAR(Matrix_copy_doc, ); static PyObject *Matrix_copy(MatrixObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; return (PyObject*)newMatrixObject((float (*))self->contigPtr, self->row_size, self->col_size, Py_NEW, Py_TYPE(self)); @@ -1291,12 +1291,12 @@ static PyObject *Matrix_repr(MatrixObject *self) int x, y; PyObject *rows[MATRIX_MAX_DIM]= {NULL}; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - for(x = 0; x < self->row_size; x++){ + for (x = 0; x < self->row_size; x++) { rows[x]= PyTuple_New(self->col_size); - for(y = 0; y < self->col_size; y++) { + for (y = 0; y < self->col_size; y++) { PyTuple_SET_ITEM(rows[x], y, PyFloat_FromDouble(self->matrix[x][y])); } } @@ -1327,7 +1327,7 @@ static PyObject* Matrix_richcmpr(PyObject *a, PyObject *b, int op) MatrixObject *matA= (MatrixObject*)a; MatrixObject *matB= (MatrixObject*)b; - if(BaseMath_ReadCallback(matA) == -1 || BaseMath_ReadCallback(matB) == -1) + if (BaseMath_ReadCallback(matA) == -1 || BaseMath_ReadCallback(matB) == -1) return NULL; ok= ( (matA->col_size == matB->col_size) && @@ -1369,10 +1369,10 @@ static int Matrix_len(MatrixObject *self) the wrapped vector gives direct access to the matrix data*/ static PyObject *Matrix_item(MatrixObject *self, int i) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(i < 0 || i >= self->row_size) { + if (i < 0 || i >= self->row_size) { PyErr_SetString(PyExc_IndexError, "matrix[attribute]: " "array index out of range"); @@ -1386,16 +1386,16 @@ static PyObject *Matrix_item(MatrixObject *self, int i) static int Matrix_ass_item(MatrixObject *self, int i, PyObject *value) { float vec[4]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; - if(i >= self->row_size || i < 0){ + if (i >= self->row_size || i < 0) { PyErr_SetString(PyExc_IndexError, "matrix[attribute] = x: bad column"); return -1; } - if(mathutils_array_parse(vec, self->col_size, self->col_size, value, "matrix[i] = value assignment") < 0) { + if (mathutils_array_parse(vec, self->col_size, self->col_size, value, "matrix[i] = value assignment") < 0) { return -1; } @@ -1413,7 +1413,7 @@ static PyObject *Matrix_slice(MatrixObject *self, int begin, int end) PyObject *tuple; int count; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; CLAMP(begin, 0, self->row_size); @@ -1421,7 +1421,7 @@ static PyObject *Matrix_slice(MatrixObject *self, int begin, int end) begin= MIN2(begin, end); tuple= PyTuple_New(end - begin); - for(count= begin; count < end; count++) { + for (count= begin; count < end; count++) { PyTuple_SET_ITEM(tuple, count - begin, newVectorObject_cb((PyObject *)self, self->col_size, mathutils_matrix_vector_cb_index, count)); @@ -1435,7 +1435,7 @@ static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *va { PyObject *value_fast= NULL; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; CLAMP(begin, 0, self->row_size); @@ -1443,7 +1443,7 @@ static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *va begin = MIN2(begin, end); /* non list/tuple cases */ - if(!(value_fast=PySequence_Fast(value, "matrix[begin:end] = value"))) { + if (!(value_fast=PySequence_Fast(value, "matrix[begin:end] = value"))) { /* PySequence_Fast sets the error */ return -1; } @@ -1452,7 +1452,7 @@ static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *va int i; float mat[16]; - if(PySequence_Fast_GET_SIZE(value_fast) != size) { + if (PySequence_Fast_GET_SIZE(value_fast) != size) { Py_DECREF(value_fast); PyErr_SetString(PyExc_ValueError, "matrix[begin:end] = []: " @@ -1465,7 +1465,7 @@ static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *va /*parse each sub sequence*/ PyObject *item= PySequence_Fast_GET_ITEM(value_fast, i); - if(mathutils_array_parse(&mat[i * self->col_size], self->col_size, self->col_size, item, "matrix[begin:end] = value assignment") < 0) { + if (mathutils_array_parse(&mat[i * self->col_size], self->col_size, self->col_size, item, "matrix[begin:end] = value assignment") < 0) { return -1; } } @@ -1489,17 +1489,17 @@ static PyObject *Matrix_add(PyObject *m1, PyObject *m2) mat1 = (MatrixObject*)m1; mat2 = (MatrixObject*)m2; - if(!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { + if (!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { PyErr_SetString(PyExc_TypeError, "Matrix addition: " "arguments not valid for this operation"); return NULL; } - if(BaseMath_ReadCallback(mat1) == -1 || BaseMath_ReadCallback(mat2) == -1) + if (BaseMath_ReadCallback(mat1) == -1 || BaseMath_ReadCallback(mat2) == -1) return NULL; - if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){ + if (mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size) { PyErr_SetString(PyExc_TypeError, "Matrix addition: " "matrices must have the same dimensions for this operation"); @@ -1520,17 +1520,17 @@ static PyObject *Matrix_sub(PyObject *m1, PyObject *m2) mat1 = (MatrixObject*)m1; mat2 = (MatrixObject*)m2; - if(!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { + if (!MatrixObject_Check(m1) || !MatrixObject_Check(m2)) { PyErr_SetString(PyExc_TypeError, "Matrix addition: " "arguments not valid for this operation"); return NULL; } - if(BaseMath_ReadCallback(mat1) == -1 || BaseMath_ReadCallback(mat2) == -1) + if (BaseMath_ReadCallback(mat1) == -1 || BaseMath_ReadCallback(mat2) == -1) return NULL; - if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){ + if (mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size) { PyErr_SetString(PyExc_TypeError, "Matrix addition: " "matrices must have the same dimensions for this operation"); @@ -1556,18 +1556,18 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) MatrixObject *mat1 = NULL, *mat2 = NULL; - if(MatrixObject_Check(m1)) { + if (MatrixObject_Check(m1)) { mat1 = (MatrixObject*)m1; - if(BaseMath_ReadCallback(mat1) == -1) + if (BaseMath_ReadCallback(mat1) == -1) return NULL; } - if(MatrixObject_Check(m2)) { + if (MatrixObject_Check(m2)) { mat2 = (MatrixObject*)m2; - if(BaseMath_ReadCallback(mat2) == -1) + if (BaseMath_ReadCallback(mat2) == -1) return NULL; } - if(mat1 && mat2) { + if (mat1 && mat2) { /*MATRIX * MATRIX*/ float mat[16]= {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, @@ -1576,9 +1576,9 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) double dot = 0.0f; int x, y, z; - for(x = 0; x < mat2->row_size; x++) { - for(y = 0; y < mat1->col_size; y++) { - for(z = 0; z < mat1->row_size; z++) { + for (x = 0; x < mat2->row_size; x++) { + for (y = 0; y < mat1->col_size; y++) { + for (z = 0; z < mat1->row_size; z++) { dot += (mat1->matrix[z][y] * mat2->matrix[x][z]); } mat[((x * mat1->col_size) + y)] = (float)dot; @@ -1588,20 +1588,20 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) return newMatrixObject(mat, mat2->row_size, mat1->col_size, Py_NEW, Py_TYPE(mat1)); } - else if(mat2) { + else if (mat2) { /*FLOAT/INT * MATRIX */ if (((scalar= PyFloat_AsDouble(m1)) == -1.0f && PyErr_Occurred())==0) { return matrix_mul_float(mat2, scalar); } } - else if(mat1) { + else if (mat1) { /*VEC * MATRIX */ - if(VectorObject_Check(m2)) { + if (VectorObject_Check(m2)) { VectorObject *vec2= (VectorObject *)m2; float tvec[4]; - if(BaseMath_ReadCallback(vec2) == -1) + if (BaseMath_ReadCallback(vec2) == -1) return NULL; - if(column_vector_multiplication(tvec, vec2, mat1) == -1) { + if (column_vector_multiplication(tvec, vec2, mat1) == -1) { return NULL; } @@ -1624,7 +1624,7 @@ static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) } static PyObject* Matrix_inv(MatrixObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; return Matrix_invert(self); @@ -1669,7 +1669,7 @@ static PyObject *Matrix_subscript(MatrixObject* self, PyObject* item) } else { PyErr_SetString(PyExc_IndexError, - "slice steps not supported with matricies"); + "slice steps not supported with matrices"); return NULL; } } @@ -1701,7 +1701,7 @@ static int Matrix_ass_subscript(MatrixObject* self, PyObject* item, PyObject* va return Matrix_ass_slice(self, start, stop, value); else { PyErr_SetString(PyExc_IndexError, - "slice steps not supported with matricies"); + "slice steps not supported with matrices"); return -1; } } @@ -1771,11 +1771,11 @@ static PyObject *Matrix_median_scale_get(MatrixObject *self, void *UNUSED(closur { float mat[3][3]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; /*must be 3-4 cols, 3-4 rows, square matrix*/ - if((self->col_size < 3) || (self->row_size < 3)) { + if ((self->col_size < 3) || (self->row_size < 3)) { PyErr_SetString(PyExc_AttributeError, "Matrix.median_scale: " "inappropriate matrix size, 3x3 minimum"); @@ -1789,13 +1789,13 @@ static PyObject *Matrix_median_scale_get(MatrixObject *self, void *UNUSED(closur static PyObject *Matrix_is_negative_get(MatrixObject *self, void *UNUSED(closure)) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; /*must be 3-4 cols, 3-4 rows, square matrix*/ - if(self->col_size == 4 && self->row_size == 4) + if (self->col_size == 4 && self->row_size == 4) return PyBool_FromLong(is_negative_m4((float (*)[4])self->contigPtr)); - else if(self->col_size == 3 && self->row_size == 3) + else if (self->col_size == 3 && self->row_size == 3) return PyBool_FromLong(is_negative_m3((float (*)[3])self->contigPtr)); else { PyErr_SetString(PyExc_AttributeError, @@ -1807,13 +1807,13 @@ static PyObject *Matrix_is_negative_get(MatrixObject *self, void *UNUSED(closure static PyObject *Matrix_is_orthogonal_get(MatrixObject *self, void *UNUSED(closure)) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; /*must be 3-4 cols, 3-4 rows, square matrix*/ - if(self->col_size == 4 && self->row_size == 4) + if (self->col_size == 4 && self->row_size == 4) return PyBool_FromLong(is_orthogonal_m4((float (*)[4])self->contigPtr)); - else if(self->col_size == 3 && self->row_size == 3) + else if (self->col_size == 3 && self->row_size == 3) return PyBool_FromLong(is_orthogonal_m3((float (*)[3])self->contigPtr)); else { PyErr_SetString(PyExc_AttributeError, @@ -1953,7 +1953,7 @@ PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsign int x, row, col; /*matrix objects can be any 2-4row x 2-4col matrix*/ - if(rowSize < 2 || rowSize > 4 || colSize < 2 || colSize > 4) { + if (rowSize < 2 || rowSize > 4 || colSize < 2 || colSize > 4) { PyErr_SetString(PyExc_RuntimeError, "Matrix(): " "row and column sizes must be between 2 and 4"); @@ -1963,7 +1963,7 @@ PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsign self= base_type ? (MatrixObject *)base_type->tp_alloc(base_type, 0) : (MatrixObject *)PyObject_GC_New(MatrixObject, &matrix_Type); - if(self) { + if (self) { self->row_size = rowSize; self->col_size = colSize; @@ -1971,30 +1971,30 @@ PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsign self->cb_user= NULL; self->cb_type= self->cb_subtype= 0; - if(type == Py_WRAP){ + if (type == Py_WRAP) { self->contigPtr = mat; /*pointer array points to contigous memory*/ - for(x = 0; x < rowSize; x++) { + for (x = 0; x < rowSize; x++) { self->matrix[x] = self->contigPtr + (x * colSize); } self->wrapped = Py_WRAP; } - else if (type == Py_NEW){ + else if (type == Py_NEW) { self->contigPtr = PyMem_Malloc(rowSize * colSize * sizeof(float)); - if(self->contigPtr == NULL) { /*allocation failure*/ + if (self->contigPtr == NULL) { /*allocation failure*/ PyErr_SetString(PyExc_MemoryError, "Matrix(): " "problem allocating pointer space"); return NULL; } /*pointer array points to contigous memory*/ - for(x = 0; x < rowSize; x++) { + for (x = 0; x < rowSize; x++) { self->matrix[x] = self->contigPtr + (x * colSize); } /*parse*/ - if(mat) { /*if a float array passed*/ - for(row = 0; row < rowSize; row++) { - for(col = 0; col < colSize; col++) { + if (mat) { /*if a float array passed*/ + for (row = 0; row < rowSize; row++) { + for (col = 0; col < colSize; col++) { self->matrix[row][col] = mat[(row * colSize) + col]; } } @@ -2016,7 +2016,7 @@ PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsign PyObject *newMatrixObject_cb(PyObject *cb_user, int rowSize, int colSize, int cb_type, int cb_subtype) { MatrixObject *self= (MatrixObject *)newMatrixObject(NULL, rowSize, colSize, Py_NEW, NULL); - if(self) { + if (self) { Py_INCREF(cb_user); self->cb_user= cb_user; self->cb_type= (unsigned char)cb_type; diff --git a/source/blender/python/mathutils/mathutils_Quaternion.c b/source/blender/python/mathutils/mathutils_Quaternion.c index 9d1cfb1948a..eda6aa5c84e 100644 --- a/source/blender/python/mathutils/mathutils_Quaternion.c +++ b/source/blender/python/mathutils/mathutils_Quaternion.c @@ -53,13 +53,13 @@ static PyObject *Quaternion_to_tuple_ext(QuaternionObject *self, int ndigits) ret= PyTuple_New(QUAT_SIZE); - if(ndigits >= 0) { - for(i= 0; i < QUAT_SIZE; i++) { + if (ndigits >= 0) { + for (i= 0; i < QUAT_SIZE; i++) { PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->quat[i], ndigits))); } } else { - for(i= 0; i < QUAT_SIZE; i++) { + for (i= 0; i < QUAT_SIZE; i++) { PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->quat[i])); } } @@ -90,34 +90,34 @@ static PyObject *Quaternion_to_euler(QuaternionObject *self, PyObject *args) short order= EULER_ORDER_XYZ; EulerObject *eul_compat = NULL; - if(!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat)) + if (!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat)) return NULL; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(order_str) { + if (order_str) { order= euler_order_from_string(order_str, "Matrix.to_euler()"); - if(order == -1) + if (order == -1) return NULL; } normalize_qt_qt(tquat, self->quat); - if(eul_compat) { + if (eul_compat) { float mat[3][3]; - if(BaseMath_ReadCallback(eul_compat) == -1) + if (BaseMath_ReadCallback(eul_compat) == -1) return NULL; quat_to_mat3(mat, tquat); - if(order == EULER_ORDER_XYZ) mat3_to_compatible_eul(eul, eul_compat->eul, mat); + if (order == EULER_ORDER_XYZ) mat3_to_compatible_eul(eul, eul_compat->eul, mat); else mat3_to_compatible_eulO(eul, eul_compat->eul, order, mat); } else { - if(order == EULER_ORDER_XYZ) quat_to_eul(eul, tquat); + if (order == EULER_ORDER_XYZ) quat_to_eul(eul, tquat); else quat_to_eulO(eul, order, tquat); } @@ -136,7 +136,7 @@ static PyObject *Quaternion_to_matrix(QuaternionObject *self) { float mat[9]; /* all values are set */ - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; quat_to_mat3((float (*)[3])mat, self->quat); @@ -158,10 +158,10 @@ static PyObject *Quaternion_cross(QuaternionObject *self, PyObject *value) { float quat[QUAT_SIZE], tquat[QUAT_SIZE]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "Quaternion.cross(other), invalid 'other' arg") == -1) + if (mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "Quaternion.cross(other), invalid 'other' arg") == -1) return NULL; mul_qt_qtqt(quat, self->quat, tquat); @@ -183,10 +183,10 @@ static PyObject *Quaternion_dot(QuaternionObject *self, PyObject *value) { float tquat[QUAT_SIZE]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "Quaternion.dot(other), invalid 'other' arg") == -1) + if (mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "Quaternion.dot(other), invalid 'other' arg") == -1) return NULL; return PyFloat_FromDouble(dot_qtqt(self->quat, tquat)); @@ -206,10 +206,10 @@ static PyObject *Quaternion_rotation_difference(QuaternionObject *self, PyObject { float tquat[QUAT_SIZE], quat[QUAT_SIZE]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "Quaternion.difference(other), invalid 'other' arg") == -1) + if (mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "Quaternion.difference(other), invalid 'other' arg") == -1) return NULL; rotation_between_quats_to_quat(quat, self->quat, tquat); @@ -234,20 +234,20 @@ static PyObject *Quaternion_slerp(QuaternionObject *self, PyObject *args) PyObject *value; float tquat[QUAT_SIZE], quat[QUAT_SIZE], fac; - if(!PyArg_ParseTuple(args, "Of:slerp", &value, &fac)) { + if (!PyArg_ParseTuple(args, "Of:slerp", &value, &fac)) { PyErr_SetString(PyExc_TypeError, "quat.slerp(): " "expected Quaternion types and float"); return NULL; } - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "Quaternion.slerp(other), invalid 'other' arg") == -1) + if (mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "Quaternion.slerp(other), invalid 'other' arg") == -1) return NULL; - if(fac > 1.0f || fac < 0.0f) { + if (fac > 1.0f || fac < 0.0f) { PyErr_SetString(PyExc_ValueError, "quat.slerp(): " "interpolation factor must be between 0.0 and 1.0"); @@ -272,10 +272,10 @@ static PyObject *Quaternion_rotate(QuaternionObject *self, PyObject *value) float self_rmat[3][3], other_rmat[3][3], rmat[3][3]; float tquat[4], length; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; - if(mathutils_any_to_rotmat(other_rmat, value, "Quaternion.rotate(value)") == -1) + if (mathutils_any_to_rotmat(other_rmat, value, "Quaternion.rotate(value)") == -1) return NULL; length= normalize_qt_qt(tquat, self->quat); @@ -298,7 +298,7 @@ PyDoc_STRVAR(Quaternion_normalize_doc, ); static PyObject *Quaternion_normalize(QuaternionObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; normalize_qt(self->quat); @@ -327,7 +327,7 @@ PyDoc_STRVAR(Quaternion_invert_doc, ); static PyObject *Quaternion_invert(QuaternionObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; invert_qt(self->quat); @@ -359,7 +359,7 @@ PyDoc_STRVAR(Quaternion_identity_doc, ); static PyObject *Quaternion_identity(QuaternionObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; unit_qt(self->quat); @@ -378,7 +378,7 @@ PyDoc_STRVAR(Quaternion_negate_doc, ); static PyObject *Quaternion_negate(QuaternionObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; mul_qt_fl(self->quat, -1.0f); @@ -394,7 +394,7 @@ PyDoc_STRVAR(Quaternion_conjugate_doc, ); static PyObject *Quaternion_conjugate(QuaternionObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; conjugate_qt(self->quat); @@ -429,7 +429,7 @@ PyDoc_STRVAR(Quaternion_copy_doc, ); static PyObject *Quaternion_copy(QuaternionObject *self) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; return newQuaternionObject(self->quat, Py_NEW, Py_TYPE(self)); @@ -441,7 +441,7 @@ static PyObject *Quaternion_repr(QuaternionObject *self) { PyObject *ret, *tuple; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; tuple= Quaternion_to_tuple_ext(self, -1); @@ -461,7 +461,7 @@ static PyObject* Quaternion_richcmpr(PyObject *a, PyObject *b, int op) QuaternionObject *quatA= (QuaternionObject *)a; QuaternionObject *quatB= (QuaternionObject *)b; - if(BaseMath_ReadCallback(quatA) == -1 || BaseMath_ReadCallback(quatB) == -1) + if (BaseMath_ReadCallback(quatA) == -1 || BaseMath_ReadCallback(quatB) == -1) return NULL; ok= (EXPP_VectorsAreEqual(quatA->quat, quatB->quat, QUAT_SIZE, 1)) ? 0 : -1; @@ -499,16 +499,16 @@ static int Quaternion_len(QuaternionObject *UNUSED(self)) //sequence accessor (get) static PyObject *Quaternion_item(QuaternionObject *self, int i) { - if(i<0) i= QUAT_SIZE-i; + if (i<0) i= QUAT_SIZE-i; - if(i < 0 || i >= QUAT_SIZE) { + if (i < 0 || i >= QUAT_SIZE) { PyErr_SetString(PyExc_IndexError, "quaternion[attribute]: " "array index out of range"); return NULL; } - if(BaseMath_ReadIndexCallback(self, i) == -1) + if (BaseMath_ReadIndexCallback(self, i) == -1) return NULL; return PyFloat_FromDouble(self->quat[i]); @@ -519,16 +519,16 @@ static PyObject *Quaternion_item(QuaternionObject *self, int i) static int Quaternion_ass_item(QuaternionObject *self, int i, PyObject *ob) { float scalar= (float)PyFloat_AsDouble(ob); - if(scalar==-1.0f && PyErr_Occurred()) { /* parsed item not a number */ + if (scalar==-1.0f && PyErr_Occurred()) { /* parsed item not a number */ PyErr_SetString(PyExc_TypeError, "quaternion[index] = x: " "index argument not a number"); return -1; } - if(i<0) i= QUAT_SIZE-i; + if (i<0) i= QUAT_SIZE-i; - if(i < 0 || i >= QUAT_SIZE){ + if (i < 0 || i >= QUAT_SIZE) { PyErr_SetString(PyExc_IndexError, "quaternion[attribute] = x: " "array assignment index out of range"); @@ -536,7 +536,7 @@ static int Quaternion_ass_item(QuaternionObject *self, int i, PyObject *ob) } self->quat[i] = scalar; - if(BaseMath_WriteIndexCallback(self, i) == -1) + if (BaseMath_WriteIndexCallback(self, i) == -1) return -1; return 0; @@ -548,7 +548,7 @@ static PyObject *Quaternion_slice(QuaternionObject *self, int begin, int end) PyObject *tuple; int count; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; CLAMP(begin, 0, QUAT_SIZE); @@ -557,7 +557,7 @@ static PyObject *Quaternion_slice(QuaternionObject *self, int begin, int end) begin= MIN2(begin, end); tuple= PyTuple_New(end - begin); - for(count= begin; count < end; count++) { + for (count= begin; count < end; count++) { PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->quat[count])); } @@ -570,7 +570,7 @@ static int Quaternion_ass_slice(QuaternionObject *self, int begin, int end, PyOb int i, size; float quat[QUAT_SIZE]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; CLAMP(begin, 0, QUAT_SIZE); @@ -578,10 +578,10 @@ static int Quaternion_ass_slice(QuaternionObject *self, int begin, int end, PyOb CLAMP(end, 0, QUAT_SIZE); begin = MIN2(begin, end); - if((size=mathutils_array_parse(quat, 0, QUAT_SIZE, seq, "mathutils.Quaternion[begin:end] = []")) == -1) + if ((size=mathutils_array_parse(quat, 0, QUAT_SIZE, seq, "mathutils.Quaternion[begin:end] = []")) == -1) return -1; - if(size != (end - begin)){ + if (size != (end - begin)) { PyErr_SetString(PyExc_ValueError, "quaternion[begin:end] = []: " "size mismatch in slice assignment"); @@ -589,7 +589,7 @@ static int Quaternion_ass_slice(QuaternionObject *self, int begin, int end, PyOb } /* parsed well - now set in vector */ - for(i= 0; i < size; i++) + for (i= 0; i < size; i++) self->quat[begin + i] = quat[i]; (void)BaseMath_WriteCallback(self); @@ -674,7 +674,7 @@ static PyObject *Quaternion_add(PyObject *q1, PyObject *q2) float quat[QUAT_SIZE]; QuaternionObject *quat1 = NULL, *quat2 = NULL; - if(!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { + if (!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { PyErr_SetString(PyExc_TypeError, "Quaternion addition: " "arguments not valid for this operation"); @@ -683,7 +683,7 @@ static PyObject *Quaternion_add(PyObject *q1, PyObject *q2) quat1 = (QuaternionObject*)q1; quat2 = (QuaternionObject*)q2; - if(BaseMath_ReadCallback(quat1) == -1 || BaseMath_ReadCallback(quat2) == -1) + if (BaseMath_ReadCallback(quat1) == -1 || BaseMath_ReadCallback(quat2) == -1) return NULL; add_qt_qtqt(quat, quat1->quat, quat2->quat, 1.0f); @@ -697,7 +697,7 @@ static PyObject *Quaternion_sub(PyObject *q1, PyObject *q2) float quat[QUAT_SIZE]; QuaternionObject *quat1 = NULL, *quat2 = NULL; - if(!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { + if (!QuaternionObject_Check(q1) || !QuaternionObject_Check(q2)) { PyErr_SetString(PyExc_TypeError, "Quaternion addition: " "arguments not valid for this operation"); @@ -707,10 +707,10 @@ static PyObject *Quaternion_sub(PyObject *q1, PyObject *q2) quat1 = (QuaternionObject*)q1; quat2 = (QuaternionObject*)q2; - if(BaseMath_ReadCallback(quat1) == -1 || BaseMath_ReadCallback(quat2) == -1) + if (BaseMath_ReadCallback(quat1) == -1 || BaseMath_ReadCallback(quat2) == -1) return NULL; - for(x = 0; x < QUAT_SIZE; x++) { + for (x = 0; x < QUAT_SIZE; x++) { quat[x] = quat1->quat[x] - quat2->quat[x]; } @@ -732,24 +732,24 @@ static PyObject *Quaternion_mul(PyObject *q1, PyObject *q2) float quat[QUAT_SIZE], scalar; QuaternionObject *quat1 = NULL, *quat2 = NULL; - if(QuaternionObject_Check(q1)) { + if (QuaternionObject_Check(q1)) { quat1 = (QuaternionObject*)q1; - if(BaseMath_ReadCallback(quat1) == -1) + if (BaseMath_ReadCallback(quat1) == -1) return NULL; } - if(QuaternionObject_Check(q2)) { + if (QuaternionObject_Check(q2)) { quat2 = (QuaternionObject*)q2; - if(BaseMath_ReadCallback(quat2) == -1) + if (BaseMath_ReadCallback(quat2) == -1) return NULL; } - if(quat1 && quat2) { /* QUAT*QUAT (cross product) */ + if (quat1 && quat2) { /* QUAT*QUAT (cross product) */ mul_qt_qtqt(quat, quat1->quat, quat2->quat); return newQuaternionObject(quat, Py_NEW, Py_TYPE(q1)); } /* the only case this can happen (for a supported type is "FLOAT*QUAT") */ - else if(quat2) { /* FLOAT*QUAT */ - if(((scalar= PyFloat_AsDouble(q1)) == -1.0f && PyErr_Occurred())==0) { + else if (quat2) { /* FLOAT*QUAT */ + if (((scalar= PyFloat_AsDouble(q1)) == -1.0f && PyErr_Occurred())==0) { return quat_mul_float(quat2, scalar); } } @@ -759,14 +759,14 @@ static PyObject *Quaternion_mul(PyObject *q1, PyObject *q2) VectorObject *vec2 = (VectorObject *)q2; float tvec[3]; - if(vec2->size != 3) { + if (vec2->size != 3) { PyErr_SetString(PyExc_ValueError, "Vector multiplication: " "only 3D vector rotations (with quats) " "currently supported"); return NULL; } - if(BaseMath_ReadCallback(vec2) == -1) { + if (BaseMath_ReadCallback(vec2) == -1) { return NULL; } @@ -776,7 +776,7 @@ static PyObject *Quaternion_mul(PyObject *q1, PyObject *q2) return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec2)); } /* QUAT * FLOAT */ - else if((((scalar= PyFloat_AsDouble(q2)) == -1.0f && PyErr_Occurred())==0)) { + else if ((((scalar= PyFloat_AsDouble(q2)) == -1.0f && PyErr_Occurred())==0)) { return quat_mul_float(quat1, scalar); } } @@ -797,7 +797,7 @@ static PyObject *Quaternion_neg(QuaternionObject *self) { float tquat[QUAT_SIZE]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; negate_v4_v4(tquat, self->quat); @@ -874,7 +874,7 @@ static int Quaternion_setAxis(QuaternionObject *self, PyObject *value, void *typ static PyObject *Quaternion_getMagnitude(QuaternionObject *self, void *UNUSED(closure)) { - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; return PyFloat_FromDouble(sqrt(dot_qtqt(self->quat, self->quat))); @@ -884,7 +884,7 @@ static PyObject *Quaternion_getAngle(QuaternionObject *self, void *UNUSED(closur { float tquat[4]; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; normalize_qt_qt(tquat, self->quat); @@ -899,7 +899,7 @@ static int Quaternion_setAngle(QuaternionObject *self, PyObject *value, void *UN float axis[3], angle_dummy; double angle; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; len= normalize_qt_qt(tquat, self->quat); @@ -907,7 +907,7 @@ static int Quaternion_setAngle(QuaternionObject *self, PyObject *value, void *UN angle= PyFloat_AsDouble(value); - if(angle==-1.0 && PyErr_Occurred()) { /* parsed item not a number */ + if (angle==-1.0 && PyErr_Occurred()) { /* parsed item not a number */ PyErr_SetString(PyExc_TypeError, "Quaternion.angle = value: float expected"); return -1; @@ -916,7 +916,7 @@ static int Quaternion_setAngle(QuaternionObject *self, PyObject *value, void *UN angle= angle_wrap_rad(angle); /* If the axis of rotation is 0,0,0 set it to 1,0,0 - for zero-degree rotations */ - if( EXPP_FloatsAreEqual(axis[0], 0.0f, 10) && + if ( EXPP_FloatsAreEqual(axis[0], 0.0f, 10) && EXPP_FloatsAreEqual(axis[1], 0.0f, 10) && EXPP_FloatsAreEqual(axis[2], 0.0f, 10) ) { @@ -926,7 +926,7 @@ static int Quaternion_setAngle(QuaternionObject *self, PyObject *value, void *UN axis_angle_to_quat(self->quat, axis, angle); mul_qt_fl(self->quat, len); - if(BaseMath_WriteCallback(self) == -1) + if (BaseMath_WriteCallback(self) == -1) return -1; return 0; @@ -939,14 +939,14 @@ static PyObject *Quaternion_getAxisVec(QuaternionObject *self, void *UNUSED(clos float axis[3]; float angle; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return NULL; normalize_qt_qt(tquat, self->quat); quat_to_axis_angle(axis, &angle, tquat); /* If the axis of rotation is 0,0,0 set it to 1,0,0 - for zero-degree rotations */ - if( EXPP_FloatsAreEqual(axis[0], 0.0f, 10) && + if ( EXPP_FloatsAreEqual(axis[0], 0.0f, 10) && EXPP_FloatsAreEqual(axis[1], 0.0f, 10) && EXPP_FloatsAreEqual(axis[2], 0.0f, 10) ) { @@ -964,7 +964,7 @@ static int Quaternion_setAxisVec(QuaternionObject *self, PyObject *value, void * float axis[3]; float angle; - if(BaseMath_ReadCallback(self) == -1) + if (BaseMath_ReadCallback(self) == -1) return -1; len= normalize_qt_qt(tquat, self->quat); @@ -976,7 +976,7 @@ static int Quaternion_setAxisVec(QuaternionObject *self, PyObject *value, void * axis_angle_to_quat(self->quat, axis, angle); mul_qt_fl(self->quat, len); - if(BaseMath_WriteCallback(self) == -1) + if (BaseMath_WriteCallback(self) == -1) return -1; return 0; @@ -989,14 +989,14 @@ static PyObject *Quaternion_new(PyTypeObject *type, PyObject *args, PyObject *kw double angle = 0.0f; float quat[QUAT_SIZE]= {0.0f, 0.0f, 0.0f, 0.0f}; - if(kwds && PyDict_Size(kwds)) { + if (kwds && PyDict_Size(kwds)) { PyErr_SetString(PyExc_TypeError, "mathutils.Quaternion(): " "takes no keyword args"); return NULL; } - if(!PyArg_ParseTuple(args, "|Od:mathutils.Quaternion", &seq, &angle)) + if (!PyArg_ParseTuple(args, "|Od:mathutils.Quaternion", &seq, &angle)) return NULL; switch(PyTuple_GET_SIZE(args)) { @@ -1021,7 +1021,7 @@ static PyObject *quat__apply_to_copy(PyNoArgsFunction quat_func, QuaternionObjec { PyObject *ret= Quaternion_copy(self); PyObject *ret_dummy= quat_func(ret); - if(ret_dummy) { + if (ret_dummy) { Py_DECREF(ret_dummy); return (PyObject *)ret; } @@ -1144,18 +1144,18 @@ PyObject *newQuaternionObject(float *quat, int type, PyTypeObject *base_type) self= base_type ? (QuaternionObject *)base_type->tp_alloc(base_type, 0) : (QuaternionObject *)PyObject_GC_New(QuaternionObject, &quaternion_Type); - if(self) { + if (self) { /* init callbacks as NULL */ self->cb_user= NULL; self->cb_type= self->cb_subtype= 0; - if(type == Py_WRAP){ + if (type == Py_WRAP) { self->quat = quat; self->wrapped = Py_WRAP; } - else if (type == Py_NEW){ + else if (type == Py_NEW) { self->quat = PyMem_Malloc(QUAT_SIZE * sizeof(float)); - if(!quat) { //new empty + if (!quat) { //new empty unit_qt(self->quat); } else { @@ -1173,7 +1173,7 @@ PyObject *newQuaternionObject(float *quat, int type, PyTypeObject *base_type) PyObject *newQuaternionObject_cb(PyObject *cb_user, int cb_type, int cb_subtype) { QuaternionObject *self= (QuaternionObject *)newQuaternionObject(NULL, Py_NEW, NULL); - if(self) { + if (self) { Py_INCREF(cb_user); self->cb_user= cb_user; self->cb_type= (unsigned char)cb_type; diff --git a/source/blender/python/mathutils/mathutils_Vector.c b/source/blender/python/mathutils/mathutils_Vector.c index 413df78f09e..df8598cc3f1 100644 --- a/source/blender/python/mathutils/mathutils_Vector.c +++ b/source/blender/python/mathutils/mathutils_Vector.c @@ -123,11 +123,11 @@ static PyObject *Vector_normalize(VectorObject *self) if(BaseMath_ReadCallback(self) == -1) return NULL; - for(i = 0; i < self->size; i++) { + for (i = 0; i < self->size; i++) { norm += self->vec[i] * self->vec[i]; } norm = (float) sqrt(norm); - for(i = 0; i < self->size; i++) { + for (i = 0; i < self->size; i++) { self->vec[i] /= norm; } @@ -251,11 +251,11 @@ static PyObject *Vector_resize_4d(VectorObject *self) return NULL; } - if(self->size == 2){ + if(self->size == 2) { self->vec[2] = 0.0f; self->vec[3] = 1.0f; } - else if(self->size == 3){ + else if(self->size == 3) { self->vec[3] = 1.0f; } self->size = 4; @@ -332,12 +332,12 @@ static PyObject *Vector_to_tuple_ext(VectorObject *self, int ndigits) ret= PyTuple_New(self->size); if(ndigits >= 0) { - for(i = 0; i < self->size; i++) { + for (i = 0; i < self->size; i++) { PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(double_round((double)self->vec[i], ndigits))); } } else { - for(i = 0; i < self->size; i++) { + for (i = 0; i < self->size; i++) { PyTuple_SET_ITEM(ret, i, PyFloat_FromDouble(self->vec[i])); } } @@ -581,7 +581,7 @@ static PyObject *Vector_dot(VectorObject *self, PyObject *value) if(mathutils_array_parse(tvec, self->size, self->size, value, "Vector.dot(other), invalid 'other' arg") == -1) return NULL; - for(x = 0; x < self->size; x++) { + for (x = 0; x < self->size; x++) { dot += (double)(self->vec[x] * tvec[x]); } @@ -621,11 +621,11 @@ static PyObject *Vector_angle(VectorObject *self, PyObject *args) if(mathutils_array_parse(tvec, size, size, value, "Vector.angle(other), invalid 'other' arg") == -1) return NULL; - for(x = 0; x < size; x++) { + for (x = 0; x < size; x++) { test_v1 += (double)(self->vec[x] * self->vec[x]); test_v2 += (double)(tvec[x] * tvec[x]); } - if (!test_v1 || !test_v2){ + if (!test_v1 || !test_v2) { /* avoid exception */ if(fallback) { Py_INCREF(fallback); @@ -640,7 +640,7 @@ static PyObject *Vector_angle(VectorObject *self, PyObject *args) } //dot product - for(x = 0; x < self->size; x++) { + for (x = 0; x < self->size; x++) { dot += (double)(self->vec[x] * tvec[x]); } dot /= (sqrt(test_v1) * sqrt(test_v2)); @@ -714,13 +714,13 @@ static PyObject *Vector_project(VectorObject *self, PyObject *value) return NULL; //get dot products - for(x = 0; x < size; x++) { + for (x = 0; x < size; x++) { dot += (double)(self->vec[x] * tvec[x]); dot2 += (double)(tvec[x] * tvec[x]); } //projection dot /= dot2; - for(x = 0; x < size; x++) { + for (x = 0; x < size; x++) { vec[x] = (float)dot * tvec[x]; } return newVectorObject(vec, size, Py_NEW, Py_TYPE(self)); @@ -757,7 +757,7 @@ static PyObject *Vector_lerp(VectorObject *self, PyObject *args) ifac= 1.0f - fac; - for(x = 0; x < size; x++) { + for (x = 0; x < size; x++) { vec[x] = (ifac * self->vec[x]) + (fac * tvec[x]); } return newVectorObject(vec, size, Py_NEW, Py_TYPE(self)); @@ -872,7 +872,7 @@ static int vector_ass_item_internal(VectorObject *self, int i, PyObject *value, if(i<0) i= self->size-i; - if(i < 0 || i >= self->size){ + if(i < 0 || i >= self->size) { if(is_attr) { PyErr_Format(PyExc_AttributeError, "Vector.%c = x: unavailable on %dd vector", @@ -912,7 +912,7 @@ static PyObject *Vector_slice(VectorObject *self, int begin, int end) begin= MIN2(begin, end); tuple= PyTuple_New(end - begin); - for(count = begin; count < end; count++) { + for (count = begin; count < end; count++) { PyTuple_SET_ITEM(tuple, count - begin, PyFloat_FromDouble(self->vec[count])); } @@ -936,7 +936,7 @@ static int Vector_ass_slice(VectorObject *self, int begin, int end, PyObject *se return -1; /*parsed well - now set in vector*/ - for(y = 0; y < size; y++){ + for (y = 0; y < size; y++) { self->vec[begin + y] = vec[y]; } @@ -1088,7 +1088,7 @@ int column_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject* vec, double dot = 0.0f; int x, y, z = 0; - if(mat->row_size != vec->size){ + if(mat->row_size != vec->size) { if(mat->row_size == 4 && vec->size == 3) { vec_cpy[3] = 1.0f; } @@ -1105,8 +1105,8 @@ int column_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject* vec, rvec[3] = 1.0f; - for(x = 0; x < mat->col_size; x++) { - for(y = 0; y < mat->row_size; y++) { + for (x = 0; x < mat->col_size; x++) { + for (y = 0; y < mat->row_size; y++) { dot += (double)(mat->matrix[y][x] * vec_cpy[y]); } rvec[z++] = (float)dot; @@ -1153,7 +1153,7 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) } /*dot product*/ - for(i = 0; i < vec1->size; i++) { + for (i = 0; i < vec1->size; i++) { dot += (double)(vec1->vec[i] * vec2->vec[i]); } return PyFloat_FromDouble(dot); @@ -1325,7 +1325,7 @@ static PyObject *Vector_div(PyObject *v1, PyObject *v2) return NULL; } - for(i = 0; i < vec1->size; i++) { + for (i = 0; i < vec1->size; i++) { vec[i] = vec1->vec[i] / scalar; } return newVectorObject(vec, vec1->size, Py_NEW, Py_TYPE(v1)); @@ -1354,7 +1354,7 @@ static PyObject *Vector_idiv(PyObject *v1, PyObject *v2) "divide by zero error"); return NULL; } - for(i = 0; i < vec1->size; i++) { + for (i = 0; i < vec1->size; i++) { vec1->vec[i] /= scalar; } @@ -1383,7 +1383,7 @@ static double vec_magnitude_nosqrt(float *data, int size) double dot = 0.0f; int i; - for(i=0; i<size; i++){ + for (i=0; i<size; i++) { dot += (double)data[i]; } /*return (double)sqrt(dot);*/ @@ -1403,8 +1403,8 @@ static PyObject* Vector_richcmpr(PyObject *objectA, PyObject *objectB, int compa double epsilon = .000001f; double lenA, lenB; - if (!VectorObject_Check(objectA) || !VectorObject_Check(objectB)){ - if (comparison_type == Py_NE){ + if (!VectorObject_Check(objectA) || !VectorObject_Check(objectB)) { + if (comparison_type == Py_NE) { Py_RETURN_TRUE; } else { @@ -1417,8 +1417,8 @@ static PyObject* Vector_richcmpr(PyObject *objectA, PyObject *objectB, int compa if(BaseMath_ReadCallback(vecA) == -1 || BaseMath_ReadCallback(vecB) == -1) return NULL; - if (vecA->size != vecB->size){ - if (comparison_type == Py_NE){ + if (vecA->size != vecB->size) { + if (comparison_type == Py_NE) { Py_RETURN_TRUE; } else { @@ -1426,18 +1426,18 @@ static PyObject* Vector_richcmpr(PyObject *objectA, PyObject *objectB, int compa } } - switch (comparison_type){ + switch (comparison_type) { case Py_LT: lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); - if(lenA < lenB){ + if(lenA < lenB) { result = 1; } break; case Py_LE: lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); - if(lenA < lenB){ + if(lenA < lenB) { result = 1; } else { @@ -1453,14 +1453,14 @@ static PyObject* Vector_richcmpr(PyObject *objectA, PyObject *objectB, int compa case Py_GT: lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); - if(lenA > lenB){ + if(lenA > lenB) { result = 1; } break; case Py_GE: lenA = vec_magnitude_nosqrt(vecA->vec, vecA->size); lenB = vec_magnitude_nosqrt(vecB->vec, vecB->size); - if(lenA > lenB){ + if(lenA > lenB) { result = 1; } else { @@ -1471,7 +1471,7 @@ static PyObject* Vector_richcmpr(PyObject *objectA, PyObject *objectB, int compa printf("The result of the comparison could not be evaluated"); break; } - if (result == 1){ + if (result == 1) { Py_RETURN_TRUE; } else { @@ -1631,7 +1631,7 @@ static PyObject *Vector_getLength(VectorObject *self, void *UNUSED(closure)) if(BaseMath_ReadCallback(self) == -1) return NULL; - for(i = 0; i < self->size; i++){ + for (i = 0; i < self->size; i++) { dot += (double)(self->vec[i] * self->vec[i]); } return PyFloat_FromDouble(sqrt(dot)); @@ -1661,7 +1661,7 @@ static int Vector_setLength(VectorObject *self, PyObject *value) return 0; } - for(i = 0; i < self->size; i++){ + for (i = 0; i < self->size; i++) { dot += (double)(self->vec[i] * self->vec[i]); } @@ -1675,7 +1675,7 @@ static int Vector_setLength(VectorObject *self, PyObject *value) dot= dot/param; - for(i = 0; i < self->size; i++){ + for (i = 0; i < self->size; i++) { self->vec[i]= self->vec[i] / (float)dot; } @@ -1693,7 +1693,7 @@ static PyObject *Vector_getLengthSquared(VectorObject *self, void *UNUSED(closur if(BaseMath_ReadCallback(self) == -1) return NULL; - for(i = 0; i < self->size; i++){ + for (i = 0; i < self->size; i++) { dot += (double)(self->vec[i] * self->vec[i]); } return PyFloat_FromDouble(dot); @@ -1778,7 +1778,7 @@ static int Vector_setSwizzle(VectorObject *self, PyObject *value, void *closure) if (((scalarVal=PyFloat_AsDouble(value)) == -1 && PyErr_Occurred())==0) { int i; - for(i=0; i < MAX_DIMENSIONS; i++) + for (i=0; i < MAX_DIMENSIONS; i++) vec_assign[i]= scalarVal; size_from= axis_from; @@ -2219,8 +2219,8 @@ static int row_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject *v double dot = 0.0f; int x, y, z= 0, vec_size= vec->size; - if(mat->col_size != vec_size){ - if(mat->col_size == 4 && vec_size != 3){ + if(mat->col_size != vec_size) { + if(mat->col_size == 4 && vec_size != 3) { PyErr_SetString(PyExc_ValueError, "vector * matrix: matrix column size " "and the vector size must be the same"); @@ -2235,11 +2235,11 @@ static int row_vector_multiplication(float rvec[MAX_DIMENSIONS], VectorObject *v return -1; memcpy(vec_cpy, vec->vec, vec_size * sizeof(float)); -printf("asasas\n"); + rvec[3] = 1.0f; //muliplication - for(x = 0; x < mat->row_size; x++) { - for(y = 0; y < mat->col_size; y++) { + for (x = 0; x < mat->row_size; x++) { + for (y = 0; y < mat->col_size; y++) { dot += mat->matrix[x][y] * vec_cpy[y]; } rvec[z++] = (float)dot; diff --git a/source/blender/python/mathutils/mathutils_geometry.c b/source/blender/python/mathutils/mathutils_geometry.c index 0394d732ae3..dafd89757a9 100644 --- a/source/blender/python/mathutils/mathutils_geometry.c +++ b/source/blender/python/mathutils/mathutils_geometry.c @@ -86,16 +86,16 @@ static PyObject *M_Geometry_intersect_ray_tri(PyObject *UNUSED(self), PyObject* float det, inv_det, u, v, t; int clip= 1; - if(!PyArg_ParseTuple(args, "O!O!O!O!O!|i:intersect_ray_tri", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &ray, &vector_Type, &ray_off , &clip)) { + if (!PyArg_ParseTuple(args, "O!O!O!O!O!|i:intersect_ray_tri", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &ray, &vector_Type, &ray_off , &clip)) { return NULL; } - if(vec1->size != 3 || vec2->size != 3 || vec3->size != 3 || ray->size != 3 || ray_off->size != 3) { + if (vec1->size != 3 || vec2->size != 3 || vec3->size != 3 || ray->size != 3 || ray_off->size != 3) { PyErr_SetString(PyExc_ValueError, "only 3D vectors for all parameters"); return NULL; } - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(ray) == -1 || BaseMath_ReadCallback(ray_off) == -1) + if (BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(ray) == -1 || BaseMath_ReadCallback(ray_off) == -1) return NULL; VECCOPY(v1, vec1->vec); @@ -174,19 +174,19 @@ static PyObject *M_Geometry_intersect_line_line(PyObject *UNUSED(self), PyObject VectorObject *vec1, *vec2, *vec3, *vec4; float v1[3], v2[3], v3[3], v4[3], i1[3], i2[3]; - if(!PyArg_ParseTuple(args, "O!O!O!O!:intersect_line_line", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4)) { + if (!PyArg_ParseTuple(args, "O!O!O!O!:intersect_line_line", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4)) { return NULL; } - if(vec1->size != vec2->size || vec1->size != vec3->size || vec3->size != vec2->size) { + if (vec1->size != vec2->size || vec1->size != vec3->size || vec3->size != vec2->size) { PyErr_SetString(PyExc_ValueError, "vectors must be of the same size"); return NULL; } - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(vec4) == -1) + if (BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(vec4) == -1) return NULL; - if(vec1->size == 3 || vec1->size == 2) { + if (vec1->size == 3 || vec1->size == 2) { int result; if (vec1->size == 3) { @@ -257,42 +257,42 @@ static PyObject *M_Geometry_normal(PyObject *UNUSED(self), PyObject* args) VectorObject *vec1, *vec2, *vec3, *vec4; float n[3]; - if(PyTuple_GET_SIZE(args) == 3) { - if(!PyArg_ParseTuple(args, "O!O!O!:normal", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { + if (PyTuple_GET_SIZE(args) == 3) { + if (!PyArg_ParseTuple(args, "O!O!O!:normal", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { return NULL; } - if(vec1->size != vec2->size || vec1->size != vec3->size) { + if (vec1->size != vec2->size || vec1->size != vec3->size) { PyErr_SetString(PyExc_ValueError, "vectors must be of the same size"); return NULL; } - if(vec1->size < 3) { + if (vec1->size < 3) { PyErr_SetString(PyExc_ValueError, "2D vectors unsupported"); return NULL; } - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1) + if (BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1) return NULL; normal_tri_v3(n, vec1->vec, vec2->vec, vec3->vec); } else { - if(!PyArg_ParseTuple(args, "O!O!O!O!:normal", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4)) { + if (!PyArg_ParseTuple(args, "O!O!O!O!:normal", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4)) { return NULL; } - if(vec1->size != vec2->size || vec1->size != vec3->size || vec1->size != vec4->size) { + if (vec1->size != vec2->size || vec1->size != vec3->size || vec1->size != vec4->size) { PyErr_SetString(PyExc_ValueError, "vectors must be of the same size"); return NULL; } - if(vec1->size < 3) { + if (vec1->size < 3) { PyErr_SetString(PyExc_ValueError, "2D vectors unsupported"); return NULL; } - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(vec4) == -1) + if (BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(vec4) == -1) return NULL; normal_quad_v3(n, vec1->vec, vec2->vec, vec3->vec, vec4->vec); @@ -320,17 +320,17 @@ static PyObject *M_Geometry_area_tri(PyObject *UNUSED(self), PyObject* args) { VectorObject *vec1, *vec2, *vec3; - if(!PyArg_ParseTuple(args, "O!O!O!:area_tri", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { + if (!PyArg_ParseTuple(args, "O!O!O!:area_tri", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { return NULL; } - if(vec1->size != vec2->size || vec1->size != vec3->size) { + if (vec1->size != vec2->size || vec1->size != vec3->size) { PyErr_SetString(PyExc_ValueError, "vectors must be of the same size"); return NULL; } - if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1) + if (BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1) return NULL; if (vec1->size == 3) { @@ -367,7 +367,7 @@ static PyObject *M_Geometry_intersect_line_line_2d(PyObject *UNUSED(self), PyObj { VectorObject *line_a1, *line_a2, *line_b1, *line_b2; float vi[2]; - if(!PyArg_ParseTuple(args, "O!O!O!O!:intersect_line_line_2d", + if (!PyArg_ParseTuple(args, "O!O!O!O!:intersect_line_line_2d", &vector_Type, &line_a1, &vector_Type, &line_a2, &vector_Type, &line_b1, @@ -376,10 +376,10 @@ static PyObject *M_Geometry_intersect_line_line_2d(PyObject *UNUSED(self), PyObj return NULL; } - if(BaseMath_ReadCallback(line_a1) == -1 || BaseMath_ReadCallback(line_a2) == -1 || BaseMath_ReadCallback(line_b1) == -1 || BaseMath_ReadCallback(line_b2) == -1) + if (BaseMath_ReadCallback(line_a1) == -1 || BaseMath_ReadCallback(line_a2) == -1 || BaseMath_ReadCallback(line_b1) == -1 || BaseMath_ReadCallback(line_b2) == -1) return NULL; - if(isect_seg_seg_v2_point(line_a1->vec, line_a2->vec, line_b1->vec, line_b2->vec, vi) == 1) { + if (isect_seg_seg_v2_point(line_a1->vec, line_a2->vec, line_b1->vec, line_b2->vec, vi) == 1) { return newVectorObject(vi, 2, Py_NEW, NULL); } else { @@ -411,7 +411,7 @@ static PyObject *M_Geometry_intersect_line_plane(PyObject *UNUSED(self), PyObjec VectorObject *line_a, *line_b, *plane_co, *plane_no; int no_flip= 0; float isect[3]; - if(!PyArg_ParseTuple(args, "O!O!O!O!|i:intersect_line_plane", + if (!PyArg_ParseTuple(args, "O!O!O!O!|i:intersect_line_plane", &vector_Type, &line_a, &vector_Type, &line_b, &vector_Type, &plane_co, @@ -421,7 +421,7 @@ static PyObject *M_Geometry_intersect_line_plane(PyObject *UNUSED(self), PyObjec return NULL; } - if( BaseMath_ReadCallback(line_a) == -1 || + if ( BaseMath_ReadCallback(line_a) == -1 || BaseMath_ReadCallback(line_b) == -1 || BaseMath_ReadCallback(plane_co) == -1 || BaseMath_ReadCallback(plane_no) == -1 @@ -429,14 +429,14 @@ static PyObject *M_Geometry_intersect_line_plane(PyObject *UNUSED(self), PyObjec return NULL; } - if(ELEM4(2, line_a->size, line_b->size, plane_co->size, plane_no->size)) { + if (ELEM4(2, line_a->size, line_b->size, plane_co->size, plane_no->size)) { PyErr_SetString(PyExc_ValueError, "geometry.intersect_line_plane(...): " " can't use 2D Vectors"); return NULL; } - if(isect_line_plane_v3(isect, line_a->vec, line_b->vec, plane_co->vec, plane_no->vec, no_flip) == 1) { + if (isect_line_plane_v3(isect, line_a->vec, line_b->vec, plane_co->vec, plane_no->vec, no_flip) == 1) { return newVectorObject(isect, 3, Py_NEW, NULL); } else { @@ -471,7 +471,7 @@ static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObje float isect_a[3]; float isect_b[3]; - if(!PyArg_ParseTuple(args, "O!O!O!f|i:intersect_line_sphere", + if (!PyArg_ParseTuple(args, "O!O!O!f|i:intersect_line_sphere", &vector_Type, &line_a, &vector_Type, &line_b, &vector_Type, &sphere_co, @@ -480,14 +480,14 @@ static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObje return NULL; } - if( BaseMath_ReadCallback(line_a) == -1 || + if ( BaseMath_ReadCallback(line_a) == -1 || BaseMath_ReadCallback(line_b) == -1 || BaseMath_ReadCallback(sphere_co) == -1 ) { return NULL; } - if(ELEM3(2, line_a->size, line_b->size, sphere_co->size)) { + if (ELEM3(2, line_a->size, line_b->size, sphere_co->size)) { PyErr_SetString(PyExc_ValueError, "geometry.intersect_line_sphere(...): " " can't use 2D Vectors"); @@ -502,22 +502,22 @@ static PyObject *M_Geometry_intersect_line_sphere(PyObject *UNUSED(self), PyObje switch(isect_line_sphere_v3(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { case 1: - if(!(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + if (!(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; use_b= FALSE; break; case 2: - if(!(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; - if(!(!clip || (((lambda= line_point_factor_v3(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_b= FALSE; + if (!(!clip || (((lambda= line_point_factor_v3(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + if (!(!clip || (((lambda= line_point_factor_v3(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_b= FALSE; break; default: use_a= FALSE; use_b= FALSE; } - if(use_a) { PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); } + if (use_a) { PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 3, Py_NEW, NULL)); } else { PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); } - if(use_b) { PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 3, Py_NEW, NULL)); } + if (use_b) { PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 3, Py_NEW, NULL)); } else { PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); } return ret; @@ -551,7 +551,7 @@ static PyObject *M_Geometry_intersect_line_sphere_2d(PyObject *UNUSED(self), PyO float isect_a[3]; float isect_b[3]; - if(!PyArg_ParseTuple(args, "O!O!O!f|i:intersect_line_sphere_2d", + if (!PyArg_ParseTuple(args, "O!O!O!f|i:intersect_line_sphere_2d", &vector_Type, &line_a, &vector_Type, &line_b, &vector_Type, &sphere_co, @@ -560,7 +560,7 @@ static PyObject *M_Geometry_intersect_line_sphere_2d(PyObject *UNUSED(self), PyO return NULL; } - if( BaseMath_ReadCallback(line_a) == -1 || + if ( BaseMath_ReadCallback(line_a) == -1 || BaseMath_ReadCallback(line_b) == -1 || BaseMath_ReadCallback(sphere_co) == -1 ) { @@ -575,22 +575,22 @@ static PyObject *M_Geometry_intersect_line_sphere_2d(PyObject *UNUSED(self), PyO switch(isect_line_sphere_v2(line_a->vec, line_b->vec, sphere_co->vec, sphere_radius, isect_a, isect_b)) { case 1: - if(!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + if (!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; use_b= FALSE; break; case 2: - if(!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; - if(!(!clip || (((lambda= line_point_factor_v2(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_b= FALSE; + if (!(!clip || (((lambda= line_point_factor_v2(isect_a, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_a= FALSE; + if (!(!clip || (((lambda= line_point_factor_v2(isect_b, line_a->vec, line_b->vec)) >= 0.0f) && (lambda <= 1.0f)))) use_b= FALSE; break; default: use_a= FALSE; use_b= FALSE; } - if(use_a) { PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 2, Py_NEW, NULL)); } + if (use_a) { PyTuple_SET_ITEM(ret, 0, newVectorObject(isect_a, 2, Py_NEW, NULL)); } else { PyTuple_SET_ITEM(ret, 0, Py_None); Py_INCREF(Py_None); } - if(use_b) { PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 2, Py_NEW, NULL)); } + if (use_b) { PyTuple_SET_ITEM(ret, 1, newVectorObject(isect_b, 2, Py_NEW, NULL)); } else { PyTuple_SET_ITEM(ret, 1, Py_None); Py_INCREF(Py_None); } return ret; @@ -617,7 +617,7 @@ static PyObject *M_Geometry_intersect_point_line(PyObject *UNUSED(self), PyObjec float lambda; PyObject *ret; - if(!PyArg_ParseTuple(args, "O!O!O!:intersect_point_line", + if (!PyArg_ParseTuple(args, "O!O!O!:intersect_point_line", &vector_Type, &pt, &vector_Type, &line_1, &vector_Type, &line_2) @@ -625,7 +625,7 @@ static PyObject *M_Geometry_intersect_point_line(PyObject *UNUSED(self), PyObjec return NULL; } - if(BaseMath_ReadCallback(pt) == -1 || BaseMath_ReadCallback(line_1) == -1 || BaseMath_ReadCallback(line_2) == -1) + if (BaseMath_ReadCallback(pt) == -1 || BaseMath_ReadCallback(line_1) == -1 || BaseMath_ReadCallback(line_2) == -1) return NULL; /* accept 2d verts */ @@ -666,7 +666,7 @@ static PyObject *M_Geometry_intersect_point_tri_2d(PyObject *UNUSED(self), PyObj { VectorObject *pt_vec, *tri_p1, *tri_p2, *tri_p3; - if(!PyArg_ParseTuple(args, "O!O!O!O!:intersect_point_tri_2d", + if (!PyArg_ParseTuple(args, "O!O!O!O!:intersect_point_tri_2d", &vector_Type, &pt_vec, &vector_Type, &tri_p1, &vector_Type, &tri_p2, @@ -675,7 +675,7 @@ static PyObject *M_Geometry_intersect_point_tri_2d(PyObject *UNUSED(self), PyObj return NULL; } - if(BaseMath_ReadCallback(pt_vec) == -1 || BaseMath_ReadCallback(tri_p1) == -1 || BaseMath_ReadCallback(tri_p2) == -1 || BaseMath_ReadCallback(tri_p3) == -1) + if (BaseMath_ReadCallback(pt_vec) == -1 || BaseMath_ReadCallback(tri_p1) == -1 || BaseMath_ReadCallback(tri_p2) == -1 || BaseMath_ReadCallback(tri_p3) == -1) return NULL; return PyLong_FromLong(isect_point_tri_v2(pt_vec->vec, tri_p1->vec, tri_p2->vec, tri_p3->vec)); @@ -702,7 +702,7 @@ static PyObject *M_Geometry_intersect_point_quad_2d(PyObject *UNUSED(self), PyOb { VectorObject *pt_vec, *quad_p1, *quad_p2, *quad_p3, *quad_p4; - if(!PyArg_ParseTuple(args, "O!O!O!O!O!:intersect_point_quad_2d", + if (!PyArg_ParseTuple(args, "O!O!O!O!O!:intersect_point_quad_2d", &vector_Type, &pt_vec, &vector_Type, &quad_p1, &vector_Type, &quad_p2, @@ -712,7 +712,7 @@ static PyObject *M_Geometry_intersect_point_quad_2d(PyObject *UNUSED(self), PyOb return NULL; } - if(BaseMath_ReadCallback(pt_vec) == -1 || BaseMath_ReadCallback(quad_p1) == -1 || BaseMath_ReadCallback(quad_p2) == -1 || BaseMath_ReadCallback(quad_p3) == -1 || BaseMath_ReadCallback(quad_p4) == -1) + if (BaseMath_ReadCallback(pt_vec) == -1 || BaseMath_ReadCallback(quad_p1) == -1 || BaseMath_ReadCallback(quad_p2) == -1 || BaseMath_ReadCallback(quad_p3) == -1 || BaseMath_ReadCallback(quad_p4) == -1) return NULL; return PyLong_FromLong(isect_point_quad_v2(pt_vec->vec, quad_p1->vec, quad_p2->vec, quad_p3->vec, quad_p4->vec)); @@ -747,7 +747,7 @@ static PyObject *M_Geometry_barycentric_transform(PyObject *UNUSED(self), PyObje VectorObject *vec_t1_src, *vec_t2_src, *vec_t3_src; float vec[3]; - if(!PyArg_ParseTuple(args, "O!O!O!O!O!O!O!:barycentric_transform", + if (!PyArg_ParseTuple(args, "O!O!O!O!O!O!O!:barycentric_transform", &vector_Type, &vec_pt, &vector_Type, &vec_t1_src, &vector_Type, &vec_t2_src, @@ -759,7 +759,7 @@ static PyObject *M_Geometry_barycentric_transform(PyObject *UNUSED(self), PyObje return NULL; } - if( vec_pt->size != 3 || + if ( vec_pt->size != 3 || vec_t1_src->size != 3 || vec_t2_src->size != 3 || vec_t3_src->size != 3 || @@ -814,7 +814,7 @@ static PyObject *M_Geometry_interpolate_bezier(PyObject *UNUSED(self), PyObject* float h2[4]= {0.0, 0.0, 0.0, 0.0}; - if(!PyArg_ParseTuple(args, "O!O!O!O!i:interpolate_bezier", + if (!PyArg_ParseTuple(args, "O!O!O!O!i:interpolate_bezier", &vector_Type, &vec_k1, &vector_Type, &vec_h1, &vector_Type, &vec_h2, @@ -823,30 +823,30 @@ static PyObject *M_Geometry_interpolate_bezier(PyObject *UNUSED(self), PyObject* return NULL; } - if(resolu <= 1) { + if (resolu <= 1) { PyErr_SetString(PyExc_ValueError, "resolution must be 2 or over"); return NULL; } - if(BaseMath_ReadCallback(vec_k1) == -1 || BaseMath_ReadCallback(vec_h1) == -1 || BaseMath_ReadCallback(vec_k2) == -1 || BaseMath_ReadCallback(vec_h2) == -1) + if (BaseMath_ReadCallback(vec_k1) == -1 || BaseMath_ReadCallback(vec_h1) == -1 || BaseMath_ReadCallback(vec_k2) == -1 || BaseMath_ReadCallback(vec_h2) == -1) return NULL; dims= MAX4(vec_k1->size, vec_h1->size, vec_h2->size, vec_k2->size); - for(i=0; i < vec_k1->size; i++) k1[i]= vec_k1->vec[i]; - for(i=0; i < vec_h1->size; i++) h1[i]= vec_h1->vec[i]; - for(i=0; i < vec_k2->size; i++) k2[i]= vec_k2->vec[i]; - for(i=0; i < vec_h2->size; i++) h2[i]= vec_h2->vec[i]; + for (i=0; i < vec_k1->size; i++) k1[i]= vec_k1->vec[i]; + for (i=0; i < vec_h1->size; i++) h1[i]= vec_h1->vec[i]; + for (i=0; i < vec_k2->size; i++) k2[i]= vec_k2->vec[i]; + for (i=0; i < vec_h2->size; i++) h2[i]= vec_h2->vec[i]; coord_array= MEM_callocN(dims * (resolu) * sizeof(float), "interpolate_bezier"); - for(i=0; i<dims; i++) { + for (i=0; i<dims; i++) { forward_diff_bezier(k1[i], h1[i], h2[i], k2[i], coord_array+i, resolu-1, sizeof(float)*dims); } list= PyList_New(resolu); fp= coord_array; - for(i=0; i<resolu; i++, fp= fp+dims) { + for (i=0; i<resolu; i++, fp= fp+dims) { PyList_SET_ITEM(list, i, newVectorObject(fp, dims, Py_NEW, NULL)); } MEM_freeN(coord_array); @@ -875,7 +875,7 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * float *fp; /*pointer to the array of malloced dl->verts to set the points from the vectors */ int index, *dl_face, totpoints=0; - if(!PySequence_Check(polyLineSeq)) { + if (!PySequence_Check(polyLineSeq)) { PyErr_SetString(PyExc_TypeError, "expected a sequence of poly lines"); return NULL; @@ -883,7 +883,7 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * len_polylines= PySequence_Size(polyLineSeq); - for(i= 0; i < len_polylines; ++i) { + for (i= 0; i < len_polylines; ++i) { polyLine= PySequence_GetItem(polyLineSeq, i); if (!PySequence_Check(polyLine)) { freedisplist(&dispbase); @@ -914,16 +914,16 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * dl->verts= fp= MEM_callocN(sizeof(float)*3*len_polypoints, "dl verts"); dl->index= MEM_callocN(sizeof(int)*3*len_polypoints, "dl index"); - for(index= 0; index<len_polypoints; ++index, fp+=3) { + for (index= 0; index<len_polypoints; ++index, fp+=3) { polyVec= PySequence_GetItem(polyLine, index); - if(VectorObject_Check(polyVec)) { + if (VectorObject_Check(polyVec)) { - if(BaseMath_ReadCallback((VectorObject *)polyVec) == -1) + if (BaseMath_ReadCallback((VectorObject *)polyVec) == -1) ls_error= 1; fp[0]= ((VectorObject *)polyVec)->vec[0]; fp[1]= ((VectorObject *)polyVec)->vec[1]; - if(((VectorObject *)polyVec)->size > 2) + if (((VectorObject *)polyVec)->size > 2) fp[2]= ((VectorObject *)polyVec)->vec[2]; else fp[2]= 0.0f; /* if its a 2d vector then set the z to be zero */ @@ -939,7 +939,7 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * Py_DECREF(polyLine); } - if(ls_error) { + if (ls_error) { freedisplist(&dispbase); /* possible some dl was allocated */ PyErr_SetString(PyExc_TypeError, "A point in one of the polylines " @@ -955,7 +955,7 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * dl= dispbase.first; tri_list= PyList_New(dl->parts); - if(!tri_list) { + if (!tri_list) { freedisplist(&dispbase); PyErr_SetString(PyExc_RuntimeError, "failed to make a new list"); @@ -964,7 +964,7 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject * index= 0; dl_face= dl->index; - while(index < dl->parts) { + while (index < dl->parts) { PyList_SET_ITEM(tri_list, index, Py_BuildValue("iii", dl_face[0], dl_face[1], dl_face[2])); dl_face+= 3; index++; @@ -989,7 +989,7 @@ static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) /* Error checking must already be done */ - if(!PyList_Check(value)) { + if (!PyList_Check(value)) { PyErr_SetString(PyExc_TypeError, "can only back a list of [x, y, w, h]"); return -1; @@ -1000,9 +1000,9 @@ static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) (*boxarray)= MEM_mallocN(len*sizeof(boxPack), "boxPack box"); - for(i= 0; i < len; i++) { + for (i= 0; i < len; i++) { list_item= PyList_GET_ITEM(value, i); - if(!PyList_Check(list_item) || PyList_GET_SIZE(list_item) < 4) { + if (!PyList_Check(list_item) || PyList_GET_SIZE(list_item) < 4) { MEM_freeN(*boxarray); PyErr_SetString(PyExc_TypeError, "can only pack a list of [x, y, w, h]"); @@ -1040,7 +1040,7 @@ static void boxPack_ToPyObject(PyObject *value, boxPack **boxarray) len= PyList_GET_SIZE(value); - for(i= 0; i < len; i++) { + for (i= 0; i < len; i++) { box= (*boxarray)+i; list_item= PyList_GET_ITEM(value, box->index); PyList_SET_ITEM(list_item, 0, PyFloat_FromDouble(box->x)); @@ -1066,7 +1066,7 @@ static PyObject *M_Geometry_box_pack_2d(PyObject *UNUSED(self), PyObject *boxlis PyObject *ret; - if(!PyList_Check(boxlist)) { + if (!PyList_Check(boxlist)) { PyErr_SetString(PyExc_TypeError, "expected a list of boxes [[x, y, w, h], ... ]"); return NULL; @@ -1075,7 +1075,7 @@ static PyObject *M_Geometry_box_pack_2d(PyObject *UNUSED(self), PyObject *boxlis len= PyList_GET_SIZE(boxlist); if (len) { boxPack *boxarray= NULL; - if(boxPack_FromPyObject(boxlist, &boxarray) == -1) { + if (boxPack_FromPyObject(boxlist, &boxarray) == -1) { return NULL; /* exception set */ } diff --git a/source/blender/render/intern/include/raycounter.h b/source/blender/render/intern/include/raycounter.h index 4d4952cb6c3..7acef6d3c67 100644 --- a/source/blender/render/intern/include/raycounter.h +++ b/source/blender/render/intern/include/raycounter.h @@ -35,7 +35,7 @@ #ifndef RE_RAYCOUNTER_H #define RE_RAYCOUNTER_H -//#define RE_RAYCOUNTER /* enable counters per ray, usefull for measuring raytrace structures performance */ +//#define RE_RAYCOUNTER /* enable counters per ray, useful for measuring raytrace structures performance */ #ifdef __cplusplus extern "C" { diff --git a/source/blender/render/intern/raytrace/bvh.h b/source/blender/render/intern/raytrace/bvh.h index 3ba5bbc624e..c7a1b002d61 100644 --- a/source/blender/render/intern/raytrace/bvh.h +++ b/source/blender/render/intern/raytrace/bvh.h @@ -167,7 +167,7 @@ static inline void bvh_node_merge_bb(Node *node, float *min, float *max) /* - * recursivly transverse a BVH looking for a rayhit using a local stack + * recursively transverse a BVH looking for a rayhit using a local stack */ template<class Node> static inline void bvh_node_push_childs(Node *node, Isect *isec, Node **stack, int &stack_pos); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index cafee6b49ca..33e98007fed 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -33,7 +33,6 @@ #include <stdlib.h> #include <string.h> -#include <math.h> #include "DNA_listBase.h" #include "DNA_screen_types.h" @@ -47,6 +46,7 @@ #include "BLI_blenlib.h" #include "BLI_utildefines.h" +#include "BLI_math.h" #include "BKE_blender.h" #include "BKE_context.h" @@ -1790,11 +1790,14 @@ void wm_event_do_handlers(bContext *C) } if(playing == 0) { - int ncfra = sound_sync_scene(scene) * (float)FPS + 0.5f; - if(ncfra != scene->r.cfra) { - scene->r.cfra = ncfra; - ED_update_for_newframe(CTX_data_main(C), scene, win->screen, 1); - WM_event_add_notifier(C, NC_WINDOW, NULL); + float time = sound_sync_scene(scene); + if(finite(time)) { + int ncfra = sound_sync_scene(scene) * (float)FPS + 0.5f; + if(ncfra != scene->r.cfra) { + scene->r.cfra = ncfra; + ED_update_for_newframe(CTX_data_main(C), scene, win->screen, 1); + WM_event_add_notifier(C, NC_WINDOW, NULL); + } } } diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index eda85f112df..b0183d05ac2 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -860,7 +860,7 @@ void WM_operator_properties_filesel(wmOperatorType *ot, int filter, short type, RNA_def_property_flag(prop, PROP_HIDDEN); if(flag & WM_FILESEL_RELPATH) - RNA_def_boolean(ot->srna, "relative_path", (U.flag & USER_RELPATHS) ? 1:0, "Relative Path", "Select the file relative to the blend file"); + RNA_def_boolean(ot->srna, "relative_path", TRUE, "Relative Path", "Select the file relative to the blend file"); } void WM_operator_properties_select_all(wmOperatorType *ot) @@ -1618,9 +1618,6 @@ static void WM_OT_open_mainfile(wmOperatorType *ot) static int wm_link_append_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { - if(!RNA_property_is_set(op->ptr, "relative_path")) - RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); - if(RNA_property_is_set(op->ptr, "filepath")) { return WM_operator_call(C, op); } @@ -3589,8 +3586,8 @@ static void gesture_circle_modal_keymap(wmKeyConfig *keyconf) WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_SHIFT, 0, GESTURE_MODAL_DESELECT); WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_SHIFT, 0, GESTURE_MODAL_NOP); #else - WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_DESELECT); // defailt 2.4x - WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, 0, 0, GESTURE_MODAL_NOP); // defailt 2.4x + WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_DESELECT); // default 2.4x + WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, 0, 0, GESTURE_MODAL_NOP); // default 2.4x #endif WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, 0, 0, GESTURE_MODAL_NOP); diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index acee1c9ff00..f598c49292c 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -444,14 +444,6 @@ elseif(WIN32) endif() endif() - install( # same as linux!, deduplicate - DIRECTORY - ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale - ${CMAKE_SOURCE_DIR}/release/bin/.blender/fonts - DESTINATION ${TARGETDIR_VER}/datafiles - PATTERN ".svn" EXCLUDE - ) - # plugins in blender 2.5 don't work at the moment. # # install( @@ -657,8 +649,8 @@ elseif(APPLE) if(WITH_INTERNATIONAL) install( DIRECTORY - ${CMAKE_SOURCE_DIR}/release/bin/.blender/fonts ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale + ${CMAKE_SOURCE_DIR}/release/bin/.blender/fonts DESTINATION ${TARGETDIR_VER}/datafiles PATTERN ".svn" EXCLUDE ) diff --git a/source/darwin/blender.app/Contents/Info.plist b/source/darwin/blender.app/Contents/Info.plist index 23941d91075..9aeb617a051 100644 --- a/source/darwin/blender.app/Contents/Info.plist +++ b/source/darwin/blender.app/Contents/Info.plist @@ -1,36 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd"> -<plist version="0.9"> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> <dict> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - - <key>CFBundleExecutable</key> - <string>blender</string> - - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleSignature</key> - <string>????</string> - - <key>CFBundleIconFile</key> - <string>blender icon.icns</string> - - <key>CFBundleName</key> - <string>Blender</string> - <key>CFBundleIdentifier</key> - <string>org.blenderfoundation.blender</string> - - <key>CFBundleVersion</key> - <string>${MACOSX_BUNDLE_LONG_VERSION_STRING}, Blender Foundation</string> - <key>CFBundleShortVersionString</key> - <string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string> - <key>CFBundleGetInfoString</key> - <string>${MACOSX_BUNDLE_LONG_VERSION_STRING}, Blender Foundation</string> - <key>CFBundleDocumentTypes</key> <array> <dict> + <key>CFBundleTypeExtensions</key> + <array> + <string>blend</string> + </array> <key>CFBundleTypeIconFile</key> <string>blender file icon.icns</string> <key>CFBundleTypeName</key> @@ -39,15 +17,36 @@ <array> <string>BLND</string> </array> - <key>CFBundleTypeExtensions</key> - <array> - <string>blend</string> - </array> <key>CFBundleTypeRole</key> <string>Editor</string> <key>LSIsAppleDefaultForType</key> - <true/> + <true/> </dict> </array> + <key>CFBundleExecutable</key> + <string>blender</string> + <key>CFBundleGetInfoString</key> + <string>${MACOSX_BUNDLE_LONG_VERSION_STRING}, Blender Foundation</string> + <key>CFBundleIconFile</key> + <string>blender icon.icns</string> + <key>CFBundleIdentifier</key> + <string>org.blenderfoundation.blender</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>Blender</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>${MACOSX_BUNDLE_LONG_VERSION_STRING}, Blender Foundation</string> + <key>LSEnvironment</key> + <dict> + <key>OMP_NUM_THREADS</key> + <string></string> + </dict> </dict> </plist> diff --git a/source/darwin/set_simulation_threads.app/Contents/Info.plist b/source/darwin/set_simulation_threads.app/Contents/Info.plist new file mode 100644 index 00000000000..44d6783599c --- /dev/null +++ b/source/darwin/set_simulation_threads.app/Contents/Info.plist @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleAllowMixedLocalizations</key> + <true/> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>applet</string> + <key>CFBundleIconFile</key> + <string>applet</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>set_simulation_threads</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleSignature</key> + <string>aplt</string> + <key>LSMinimumSystemVersionByArchitecture</key> + <dict> + <key>x86_64</key> + <string>10.6</string> + </dict> + <key>LSRequiresCarbon</key> + <true/> + <key>WindowState</key> + <dict> + <key>dividerCollapsed</key> + <false/> + <key>eventLogLevel</key> + <integer>-1</integer> + <key>name</key> + <string>ScriptWindowState</string> + <key>positionOfDivider</key> + <real>470</real> + <key>savedFrame</key> + <string>199 169 1197 810 0 0 1920 1178 </string> + <key>selectedTabView</key> + <string>result</string> + </dict> +</dict> +</plist> diff --git a/source/darwin/set_simulation_threads.app/Contents/MacOS/applet b/source/darwin/set_simulation_threads.app/Contents/MacOS/applet Binary files differnew file mode 100755 index 00000000000..0079f4b19d4 --- /dev/null +++ b/source/darwin/set_simulation_threads.app/Contents/MacOS/applet diff --git a/source/darwin/set_simulation_threads.app/Contents/PkgInfo b/source/darwin/set_simulation_threads.app/Contents/PkgInfo new file mode 100644 index 00000000000..3253614c402 --- /dev/null +++ b/source/darwin/set_simulation_threads.app/Contents/PkgInfo @@ -0,0 +1 @@ +APPLaplt
\ No newline at end of file diff --git a/source/darwin/set_simulation_threads.app/Contents/Resources/Scripts/main.scpt b/source/darwin/set_simulation_threads.app/Contents/Resources/Scripts/main.scpt Binary files differnew file mode 100644 index 00000000000..d905e27cb6d --- /dev/null +++ b/source/darwin/set_simulation_threads.app/Contents/Resources/Scripts/main.scpt diff --git a/source/darwin/set_simulation_threads.app/Contents/Resources/applet.icns b/source/darwin/set_simulation_threads.app/Contents/Resources/applet.icns Binary files differnew file mode 100644 index 00000000000..fcc1f09273d --- /dev/null +++ b/source/darwin/set_simulation_threads.app/Contents/Resources/applet.icns diff --git a/source/darwin/set_simulation_threads.app/Contents/Resources/applet.rsrc b/source/darwin/set_simulation_threads.app/Contents/Resources/applet.rsrc Binary files differnew file mode 100644 index 00000000000..54735c5cb04 --- /dev/null +++ b/source/darwin/set_simulation_threads.app/Contents/Resources/applet.rsrc diff --git a/source/darwin/set_simulation_threads.app/Contents/Resources/description.rtfd/TXT.rtf b/source/darwin/set_simulation_threads.app/Contents/Resources/description.rtfd/TXT.rtf new file mode 100644 index 00000000000..0d0a60c08b5 --- /dev/null +++ b/source/darwin/set_simulation_threads.app/Contents/Resources/description.rtfd/TXT.rtf @@ -0,0 +1,4 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl} +{\colortbl;\red255\green255\blue255;} +}
\ No newline at end of file diff --git a/source/darwin/set_simulation_threads_applescript.scpt b/source/darwin/set_simulation_threads_applescript.scpt Binary files differnew file mode 100644 index 00000000000..82ea5357de5 --- /dev/null +++ b/source/darwin/set_simulation_threads_applescript.scpt diff --git a/source/gameengine/Converter/BL_ArmatureObject.cpp b/source/gameengine/Converter/BL_ArmatureObject.cpp index c5bf28b9b8d..43c9bd434c5 100644 --- a/source/gameengine/Converter/BL_ArmatureObject.cpp +++ b/source/gameengine/Converter/BL_ArmatureObject.cpp @@ -663,7 +663,7 @@ KX_PYMETHODDEF_DOC_NOARGS(BL_ArmatureObject, update, "update()\n" "Make sure that the armature will be updated on next graphic frame.\n" "This is automatically done if a KX_ArmatureActuator with mode run is active\n" - "or if an action is playing. This function is usefull in other cases.\n") + "or if an action is playing. This function is useful in other cases.\n") { SetActiveAction(NULL, 0, KX_GetActiveEngine()->GetFrameTime()); Py_RETURN_NONE; diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 8633a14de03..0f5176af60c 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -1590,15 +1590,15 @@ void BL_CreatePhysicsObjectNew(KX_GameObject* gameobj, objprop.m_boundobject.box.m_extends[1]=2.f*bb.m_extends[1]; objprop.m_boundobject.box.m_extends[2]=2.f*bb.m_extends[2]; break; - case OB_BOUND_POLYT: + case OB_BOUND_CONVEX_HULL: if (blenderobject->type == OB_MESH) { objprop.m_boundclass = KX_BOUNDPOLYTOPE; break; } - // Object is not a mesh... fall through OB_BOUND_POLYH to + // Object is not a mesh... fall through OB_BOUND_TRIANGLE_MESH to // OB_BOUND_SPHERE - case OB_BOUND_POLYH: + case OB_BOUND_TRIANGLE_MESH: if (blenderobject->type == OB_MESH) { objprop.m_boundclass = KX_BOUNDMESH; diff --git a/source/gameengine/Expressions/ConstExpr.cpp b/source/gameengine/Expressions/ConstExpr.cpp index 8d5a47b2d0d..c41cf5a54f5 100644 --- a/source/gameengine/Expressions/ConstExpr.cpp +++ b/source/gameengine/Expressions/ConstExpr.cpp @@ -99,7 +99,7 @@ bool CConstExpr::NeedsRecalculated() CExpression* CConstExpr::CheckLink(std::vector<CBrokenLinkInfo*>& brokenlinks) { -// parent checks if child is still usefull. +// parent checks if child is still useful. // When for example it's value it's deleted flag set // then release Value, and return NULL in case of constexpression // else return this... diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index a795a4eddc6..7e496136ce2 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -146,7 +146,7 @@ bool KX_NetworkMessageSensor::Evaluate() // Return always true if a message was received otherwise we can loose messages if (m_IsUp) return true; - // Is it usefull to return also true when the first frame without a message?? + // Is it useful to return also true when the first frame without a message?? // This will cause a fast on/off cycle that seems useless! return result; } diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 62ca2910c60..40917a67c2f 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -502,7 +502,7 @@ static PyObject* gPyGetBlendFileList(PyObject*, PyObject* args) BLI_path_abs(cpath, gp_GamePythonPath); } else { /* Get the dir only */ - BLI_split_dirfile(gp_GamePythonPath, cpath, NULL); + BLI_split_dirfile(gp_GamePythonPath, cpath, NULL, sizeof(cpath), 0); } if((dp = opendir(cpath)) == NULL) { @@ -1732,7 +1732,7 @@ static void initPySysObjects__append(PyObject *sys_path, char *filename) PyObject *item; char expanded[FILE_MAXDIR + FILE_MAXFILE]; - BLI_split_dirfile(filename, expanded, NULL); /* get the dir part of filename only */ + BLI_split_dirfile(filename, expanded, NULL, sizeof(expanded), 0); /* get the dir part of filename only */ BLI_path_abs(expanded, gp_GamePythonPath); /* filename from lib->filename is (always?) absolute, so this may not be needed but it wont hurt */ BLI_cleanup_file(gp_GamePythonPath, expanded); /* Dont use BLI_cleanup_dir because it adds a slash - BREAKS WIN32 ONLY */ item= PyUnicode_DecodeFSDefault(expanded); |