diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2011-01-02 21:34:32 +0300 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2011-01-02 21:34:32 +0300 |
commit | ddcb91fc213cb9d9f87558f88a4831cd4c8e2791 (patch) | |
tree | b3a266754610fff89abadfc3971721f432f2001f | |
parent | 3ead3c4ff3a438202a9838843ed4000b26de62a7 (diff) | |
parent | fe44c6596d6de906f1534f139b980e6d0a205bac (diff) |
Merged changes in the trunk up to revision 34010.
201 files changed, 9117 insertions, 8253 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c3001b605d4..d3095347ab4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -690,7 +690,7 @@ elseif(WIN32) endif() # used in many places so include globally, like OpenGL - blender_include_dirs(${PTHREADS_INC}) + blender_include_dirs("${PTHREADS_INC}") elseif(APPLE) @@ -945,7 +945,7 @@ endif() #----------------------------------------------------------------------------- # Configure OpenGL. find_package(OpenGL) -blender_include_dirs(${OPENGL_INCLUDE_DIR}) +blender_include_dirs("${OPENGL_INCLUDE_DIR}") # unset(OPENGL_LIBRARIES CACHE) # not compat with older cmake # unset(OPENGL_xmesa_INCLUDE_DIR CACHE) # not compat with older cmake diff --git a/SConstruct b/SConstruct index 7b6f6f2fcf7..6fb311daac0 100644 --- a/SConstruct +++ b/SConstruct @@ -412,7 +412,7 @@ if env['WITH_BF_PLAYER']: playerlist += B.create_blender_liblist(env, 'player2') playerlist += B.create_blender_liblist(env, 'intern') playerlist += B.create_blender_liblist(env, 'extern') - env.BlenderProg(B.root_build_dir, "blenderplayer", playerlist, thestatlibs + dobj + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer') + env.BlenderProg(B.root_build_dir, "blenderplayer", playerlist + thestatlibs + dobj, thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer') ##### Now define some targets diff --git a/doc/manpage/blender.1 b/doc/manpage/blender.1 index 86ac39242ce..9265fbc190a 100644 --- a/doc/manpage/blender.1 +++ b/doc/manpage/blender.1 @@ -1,4 +1,4 @@ -.TH "BLENDER" "1" "November 09, 2010" "Blender Blender 2\&.55 (sub 0) " +.TH "BLENDER" "1" "January 01, 2011" "Blender Blender 2\&.56 (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.55 (sub 0) Build +Blender 2.56 (sub 0) Build Usage: blender [args ...] [file] [args ...] .br .SS "Render Options:" diff --git a/doc/python_api/epy/Geometry.py b/doc/python_api/epy/Geometry.py deleted file mode 100644 index d0c4dfdfd8d..00000000000 --- a/doc/python_api/epy/Geometry.py +++ /dev/null @@ -1,189 +0,0 @@ -# Blender.Geometry module and its subtypes - -""" -The Blender.Geometry submodule. - -Geometry -======== -(when accessing it from the Game Engine use Geometry instead of Blender.Geometry) - -This new module provides access to a geometry function. -""" - -def Intersect(vec1, vec2, vec3, ray, orig, clip=1): - """ - Return the intersection between a ray and a triangle, if possible, return None otherwise. - @type vec1: Vector object. - @param vec1: A 3d vector, one corner of the triangle. - @type vec2: Vector object. - @param vec2: A 3d vector, one corner of the triangle. - @type vec3: Vector object. - @param vec3: A 3d vector, one corner of the triangle. - @type ray: Vector object. - @param ray: A 3d vector, the orientation of the ray. the length of the ray is not used, only the direction. - @type orig: Vector object. - @param orig: A 3d vector, the origin of the ray. - @type clip: integer - @param clip: if 0, don't restrict the intersection to the area of the triangle, use the infinite plane defined by the triangle. - @rtype: Vector object - @return: The intersection between a ray and a triangle, if possible, None otherwise. - """ - -def TriangleArea(vec1, vec2, vec3): - """ - Return the area size of the 2D or 3D triangle defined. - @type vec1: Vector object. - @param vec1: A 2d or 3d vector, one corner of the triangle. - @type vec2: Vector object. - @param vec2: A 2d or 3d vector, one corner of the triangle. - @type vec3: Vector object. - @param vec3: A 2d or 3d vector, one corner of the triangle. - @rtype: float - @return: The area size of the 2D or 3D triangle defined. - """ - -def TriangleNormal(vec1, vec2, vec3): - """ - Return the normal of the 3D triangle defined. - @type vec1: Vector object. - @param vec1: A 3d vector, one corner of the triangle. - @type vec2: Vector object. - @param vec2: A 3d vector, one corner of the triangle. - @type vec3: Vector object. - @param vec3: A 3d vector, one corner of the triangle. - @rtype: float - @return: The normal of the 3D triangle defined. - """ - -def QuadNormal(vec1, vec2, vec3, vec4): - """ - Return the normal of the 3D quad defined. - @type vec1: Vector object. - @param vec1: A 3d vector, the first vertex of the quad. - @type vec2: Vector object. - @param vec2: A 3d vector, the second vertex of the quad. - @type vec3: Vector object. - @param vec3: A 3d vector, the third vertex of the quad. - @type vec4: Vector object. - @param vec4: A 3d vector, the fourth vertex of the quad. - @rtype: float - @return: The normal of the 3D quad defined. - """ - -def LineIntersect(vec1, vec2, vec3, vec4): - """ - Return a tuple with the points on each line respectively closest to the other - (when both lines intersect, both vector hold the same value). - The lines are evaluated as infinite lines in space, the values returned may not be between the 2 points given for each line. - @type vec1: Vector object. - @param vec1: A 3d vector, one point on the first line. - @type vec2: Vector object. - @param vec2: A 3d vector, another point on the first line. - @type vec3: Vector object. - @param vec3: A 3d vector, one point on the second line. - @type vec4: Vector object. - @param vec4: A 3d vector, another point on the second line. - @rtype: (Vector object, Vector object) - @return: A tuple with the points on each line respectively closest to the other. - """ - -def PolyFill(polylines): - """ - Takes a list of polylines and calculates triangles that would fill in the polylines. - Multiple lines can be used to make holes inside a polyline, or fill in 2 separate lines at once. - @type polylines: List of lists containing vectors, each representing a closed polyline. - @rtype: list - @return: a list if tuples each a tuple of 3 ints representing a triangle indexing the points given. - @note: 2D Vectors will have an assumed Z axis of zero, 4D Vectors W axis is ignored. - @note: The order of points in a polyline effect the direction returned triangles face, reverse the order of a polyline to flip the normal of returned faces. - - I{B{Example:}} - - The example below creates 2 polylines and fills them in with faces, then makes a mesh in the current scene:: - import Blender - Vector= Blender.mathutils.Vector - - # Outline of 5 points - polyline1= [Vector(-2.0, 1.0, 1.0), Vector(-1.0, 2.0, 1.0), Vector(1.0, 2.0, 1.0), Vector(1.0, -1.0, 1.0), Vector(-1.0, -1.0, 1.0)] - polyline2= [Vector(-1, 1, 1.0), Vector(0, 1, 1.0), Vector(0, 0, 1.0), Vector(-1.0, 0.0, 1.0)] - fill= Blender.Geometry.PolyFill([polyline1, polyline2]) - - # Make a new mesh and add the truangles into it - me= Blender.Mesh.New() - me.verts.extend(polyline1) - me.verts.extend(polyline2) - me.faces.extend(fill) # Add the faces, they reference the verts in polyline 1 and 2 - - scn = Blender.Scene.GetCurrent() - ob = scn.objects.new(me) - Blender.Redraw() - """ - -def LineIntersect2D(vec1, vec2, vec3, vec4): - """ - Takes 2 lines vec1, vec2 for the 2 points of the first line and vec2, vec3 for the 2 points of the second line. - @rtype: Vector - @return: a 2D Vector for the intersection or None where there is no intersection. - """ - -def ClosestPointOnLine(pt, vec1, vec2): - """ - Takes 2 lines vec1, vec2 for the 2 points of the first line and vec2, vec3 for the 2 points of the second line. - @rtype: tuple - @return: a tuple containing a vector and a float, the vector is the closest point on the line, the float is the position on the line, between 0 and 1 the point is on the line. - """ - -def PointInTriangle2D(pt, tri_pt1, tri_pt2, tri_pt3): - """ - Takes 4 vectors (one for the test point and 3 for the triangle) - This is a 2d function so only X and Y are used, Z and W will be ignored. - @rtype: int - @return: 1 for a clockwise intersection, -1 for counter clockwise intersection, 0 when there is no intersection. - """ - -def PointInQuad2D(pt, quad_pt1, quad_pt2, quad_pt3): - """ - Takes 5 vectors (one for the test point and 5 for the quad) - This is a 2d function so only X and Y are used, Z and W will be ignored. - @rtype: int - @return: 1 for a clockwise intersection, -1 for counter clockwise intersection, 0 when there is no intersection. - """ - -def BoxPack2D(boxlist): - """ - Takes a list of 2D boxes and packs them into a square. - Each box in boxlist must be a list of at least 4 items - [x,y,w,h], after running this script, - the X and Y values in each box will be moved to packed, non overlapping locations. - - Example:: - - # Make 500 random boxes, pack them and make a mesh from it - from Blender import Geometry, Scene, Mesh - import random - boxes = [] - for i in xrange(500): - boxes.append( [0,0, random.random()+0.1, random.random()+0.1] ) - boxsize = Geometry.BoxPack2D(boxes) - print 'BoxSize', boxsize - me = Mesh.New() - for x in boxes: - me.verts.extend([(x[0],x[1], 0), (x[0],x[1]+x[3], 0), (x[0]+x[2],x[1]+x[3], 0), (x[0]+x[2],x[1], 0) ]) - v1= me.verts[-1] - v2= me.verts[-2] - v3= me.verts[-3] - v4= me.verts[-4] - me.faces.extend([(v1,v2,v3,v4)]) - scn = Scene.GetCurrent() - scn.objects.new(me) - - @note: Each boxlist item can be longer then 4, the extra items are ignored and stay untouched. - @rtype: tuple - @return: a tuple pair - (width, height) of all the packed boxes. - """ -def BezierInterp(vec_knot_1, vec_handle_1, vec_handle_2, vec_knot_2, resolution): - """ - Takes 4 vectors representing a bezier curve and returns a list of vector points. - @note: any vector size is supported, the largest dimension from the input will be used for all returned vectors/ - @rtype: list - @return: a list of vectors the size of resolution including the start and end points (vec_knot_1 and vec_knot_2) - """ diff --git a/doc/python_api/epy/Mathutils.py b/doc/python_api/epy/Mathutils.py deleted file mode 100644 index 17a227f729a..00000000000 --- a/doc/python_api/epy/Mathutils.py +++ /dev/null @@ -1,156 +0,0 @@ -# Blender.mathutils module and its subtypes - - - -class Vector: - """ - - @attention: Vector data can be wrapped or non-wrapped. When a object is wrapped it - means that the object will give you direct access to the data inside of blender. Modification - of this object will directly change the data inside of blender. To copy a wrapped object - you need to use the object's constructor. If you copy and object by assignment you will not get - a second copy but a second reference to the same data. Only certain functions will return - wrapped data. This will be indicated in the method description. - """ - - def __init__(list = None): - """ - Create a new 2d, 3d, or 4d Vector object from a list of floating point numbers. - @note: that python uses higher precission floating point numbers, so values assigned to a vector may have some rounding error. - - - Example:: - v = Vector(1,0,0) - v = Vector(myVec) - v = Vector(list) - @type list: PyList of float or int - @param list: The list of values for the Vector object. Can be a sequence or raw numbers. - Must be 2, 3, or 4 values. The list is mapped to the parameters as [x,y,z,w]. - @rtype: Vector object. - @return: It depends wheter a parameter was passed: - - (list): Vector object initialized with the given values; - - (): An empty 3 dimensional vector. - """ - -class Euler: - """ - The Euler object - ================ - This object gives access to Eulers in Blender. - @note: You can access a euler object like a sequence - - x = euler[0] - @note: Comparison operators can be done: - - ==, != test numeric values within epsilon - @attention: Euler data can be wrapped or non-wrapped. When a object is wrapped it - means that the object will give you direct access to the data inside of blender. Modification - of this object will directly change the data inside of blender. To copy a wrapped object - you need to use the object's constructor. If you copy and object by assignment you will not get - a second copy but a second reference to the same data. Only certain functions will return - wrapped data. This will be indicated in the method description. - """ - - def __init__(list = None): - """ - Create a new euler object. - - Example:: - euler = Euler(45,0,0) - euler = Euler(myEuler) - euler = Euler(sequence) - @type list: PyList of float/int - @param list: 3d list to initialize euler - @rtype: Euler object - @return: Euler representing heading, pitch, bank. - @note: Values are in degrees. - """ - -class Quaternion: - """ - The Quaternion object - ===================== - This object gives access to Quaternions in Blender. - @note: Comparison operators can be done: - - ==, != test numeric values within epsilon - @note: Math can be performed on Quaternion classes - - quat + quat - - quat - quat - - quat * float/int - - quat * vec - - quat * quat - @note: You can access a quaternion object like a sequence - - x = quat[0] - @attention: Quaternion data can be wrapped or non-wrapped. When a object is wrapped it - means that the object will give you direct access to the data inside of blender. Modification - of this object will directly change the data inside of blender. To copy a wrapped object - you need to use the object's constructor. If you copy and object by assignment you will not get - a second copy but a second reference to the same data. Only certain functions will return - wrapped data. This will be indicated in the method description. - """ - - def __init__(list, angle = None): - """ - Create a new quaternion object from initialized values. - - Example:: - quat = Quaternion(1,2,3,4) - quat = Quaternion(axis, angle) - quat = Quaternion() - quat = Quaternion(180, list) - - @type list: PyList of int/float - @param list: A 3d or 4d list to initialize quaternion. - 4d if intializing [w,x,y,z], 3d if used as an axis of rotation. - @type angle: float (optional) - @param angle: An arbitrary rotation amount around 'list'. - List is used as an axis of rotation in this case. - @rtype: New quaternion object. - @return: It depends wheter a parameter was passed: - - (list/angle): Quaternion object initialized with the given values; - - (): An identity 4 dimensional quaternion. - """ - -class Matrix: - """ - The Matrix Object - ================= - @note: Math can be performed on Matrix classes - - mat + mat - - mat - mat - - mat * float/int - - mat * vec - - mat * mat - @note: Comparison operators can be done: - - ==, != test numeric values within epsilon - @note: You can access a quaternion object like a 2d sequence - - x = matrix[0][1] - - vector = matrix[2] - @attention: Quaternion data can be wrapped or non-wrapped. When a object is wrapped it - means that the object will give you direct access to the data inside of blender. Modification - of this object will directly change the data inside of blender. To copy a wrapped object - you need to use the object's constructor. If you copy and object by assignment you will not get - a second copy but a second reference to the same data. Only certain functions will return - wrapped data. This will be indicated in the method description. - """ - - def __init__(list1 = None, list2 = None, list3 = None, list4 = None): - """ - Create a new matrix object from initialized values. - - Example:: - matrix = Matrix([1,1,1],[0,1,0],[1,0,0]) - matrix = Matrix(mat) - matrix = Matrix(seq1, seq2, vector) - - @type list1: PyList of int/float - @param list1: A 2d,3d or 4d list. - @type list2: PyList of int/float - @param list2: A 2d,3d or 4d list. - @type list3: PyList of int/float - @param list3: A 2d,3d or 4d list. - @type list4: PyList of int/float - @param list4: A 2d,3d or 4d list. - @rtype: New matrix object. - @return: It depends wheter a parameter was passed: - - (list1, etc.): Matrix object initialized with the given values; - - (): An empty 3 dimensional matrix. - """ diff --git a/intern/audaspace/intern/AUD_SequencerReader.cpp b/intern/audaspace/intern/AUD_SequencerReader.cpp index 69293205498..5b546ca9d58 100644 --- a/intern/audaspace/intern/AUD_SequencerReader.cpp +++ b/intern/audaspace/intern/AUD_SequencerReader.cpp @@ -188,7 +188,16 @@ void AUD_SequencerReader::read(int & length, sample_t* & buffer) delete strip->reader; if(strip->old_sound) - strip->reader = m_mixer->prepare(strip->old_sound->createReader()); + { + try + { + strip->reader = m_mixer->prepare(strip->old_sound->createReader()); + } + catch(AUD_Exception) + { + strip->reader = NULL; + } + } else strip->reader = NULL; } diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 5ae30d8f948..a458d2dc504 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -488,11 +488,6 @@ GHOST_TKey GHOST_SystemWin32::convertKey(GHOST_IWindow *window, WPARAM wParam, L system->retrieveModifierKeys(oldModifiers); system->getModifierKeys(newModifiers); - // check if modifier keys different from this event have changed and trigger those - // This can happen when some action takes a long time (Blender not responding), resulting - // in dropped events. - system->handleModifierKeys(window, wParam, lParam, oldModifiers, newModifiers); - //std::cout << wParam << " " << system->m_curKeyStatus[wParam] << " shift pressed: " << system->shiftPressed() << std::endl; if ((wParam >= '0') && (wParam <= '9')) { @@ -777,12 +772,13 @@ LRESULT CALLBACK GHOST_SystemWin32::s_llKeyboardProc(int nCode, WPARAM wParam, L KBDLLHOOKSTRUCT &keyb = *(PKBDLLHOOKSTRUCT)(lParam); system->m_prevKeyStatus[keyb.vkCode] = system->m_curKeyStatus[keyb.vkCode]; - //std::cout << "ll: " << keyb.vkCode << " " << down << " "; + //std::cout << "ll: " << keyb.vkCode << " " << down << " ||| "; if(keyb.flags) { if((keyb.flags & LLKHF_EXTENDED) == LLKHF_EXTENDED) { //std::cout << "extended "; } if((keyb.flags & LLKHF_ALTDOWN) == LLKHF_ALTDOWN) { + //std::cout << "alt "; } if((keyb.flags & LLKHF_INJECTED)== LLKHF_INJECTED) { //std::cout << "injected "; diff --git a/intern/ghost/intern/GHOST_WindowCocoa.mm b/intern/ghost/intern/GHOST_WindowCocoa.mm index 0b6393c06b6..db08f238045 100644 --- a/intern/ghost/intern/GHOST_WindowCocoa.mm +++ b/intern/ghost/intern/GHOST_WindowCocoa.mm @@ -143,6 +143,7 @@ extern "C" { GHOST_TDragnDropTypes m_draggedObjectType; } - (void)setSystemAndWindowCocoa:(GHOST_SystemCocoa *)sysCocoa windowCocoa:(GHOST_WindowCocoa *)winCocoa; +- (GHOST_SystemCocoa*)systemCocoa; @end @implementation CocoaWindow - (void)setSystemAndWindowCocoa:(GHOST_SystemCocoa *)sysCocoa windowCocoa:(GHOST_WindowCocoa *)winCocoa @@ -150,6 +151,10 @@ extern "C" { systemCocoa = sysCocoa; associatedWindow = winCocoa; } +- (GHOST_SystemCocoa*)systemCocoa +{ + return systemCocoa; +} -(BOOL)canBecomeKeyWindow { @@ -777,6 +782,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state) [tmpWindow setReleasedWhenClosed:NO]; [tmpWindow setAcceptsMouseMovedEvents:YES]; [tmpWindow setDelegate:[m_window delegate]]; + [tmpWindow setSystemAndWindowCocoa:[m_window systemCocoa] windowCocoa:this]; [tmpWindow registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, NSStringPboardType, NSTIFFPboardType, nil]]; @@ -837,6 +843,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state) [tmpWindow setReleasedWhenClosed:NO]; [tmpWindow setAcceptsMouseMovedEvents:YES]; [tmpWindow setDelegate:[m_window delegate]]; + [tmpWindow setSystemAndWindowCocoa:[m_window systemCocoa] windowCocoa:this]; [tmpWindow registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, NSStringPboardType, NSTIFFPboardType, nil]]; //Forbid to resize the window below the blender defined minimum one diff --git a/release/VERSION b/release/VERSION index 104a379ad75..24f60159134 100644 --- a/release/VERSION +++ b/release/VERSION @@ -1 +1 @@ -2.55-beta +2.56-beta diff --git a/release/datafiles/prvicons b/release/datafiles/prvicons Binary files differindex 2f715172209..364d9678f0b 100644 --- a/release/datafiles/prvicons +++ b/release/datafiles/prvicons diff --git a/release/datafiles/splash.png b/release/datafiles/splash.png Binary files differindex faedd4b19f1..9207b935271 100644 --- a/release/datafiles/splash.png +++ b/release/datafiles/splash.png diff --git a/release/getversion.py b/release/getversion.py index ee21aa43873..667214a2ca3 100755 --- a/release/getversion.py +++ b/release/getversion.py @@ -57,7 +57,7 @@ for line in infile.readlines(): infile.close() # Major was changed to float, but minor is still a string -# Note: removed returning minor, this messes up with install path code in BLI module +# Note: removed returning minor, messes up install path code in BLI module if major: print "%.2f" % major else: diff --git a/release/scripts/io/netrender/__init__.py b/release/scripts/io/netrender/__init__.py index 2fc9e78c097..6c4ed4119fc 100644 --- a/release/scripts/io/netrender/__init__.py +++ b/release/scripts/io/netrender/__init__.py @@ -56,6 +56,12 @@ init_data = True def register(): ui.addProperties() + + import bpy + scene = bpy.context.scene + if scene: + netsettings = scene.network_render + ui.init_data(netsettings) def unregister(): diff --git a/release/scripts/io/netrender/balancing.py b/release/scripts/io/netrender/balancing.py index 95f345249f2..dde3ad53084 100644 --- a/release/scripts/io/netrender/balancing.py +++ b/release/scripts/io/netrender/balancing.py @@ -25,6 +25,9 @@ class RatingRule: def __init__(self): self.enabled = True + def id(self): + return str(id(self)) + def rate(self, job): return 0 @@ -32,6 +35,9 @@ class ExclusionRule: def __init__(self): self.enabled = True + def id(self): + return str(id(self)) + def test(self, job): return False @@ -39,6 +45,9 @@ class PriorityRule: def __init__(self): self.enabled = True + def id(self): + return str(id(self)) + def test(self, job): return False @@ -50,13 +59,13 @@ class Balancer: def ruleByID(self, rule_id): for rule in self.rules: - if id(rule) == rule_id: + if rule.id() == rule_id: return rule for rule in self.priorities: - if id(rule) == rule_id: + if rule.id() == rule_id: return rule for rule in self.exceptions: - if id(rule) == rule_id: + if rule.id() == rule_id: return rule return None diff --git a/release/scripts/io/netrender/client.py b/release/scripts/io/netrender/client.py index c469c80264e..24e0baa0df3 100644 --- a/release/scripts/io/netrender/client.py +++ b/release/scripts/io/netrender/client.py @@ -221,9 +221,7 @@ def clientSendJobBlender(conn, scene, anim = False): elif modifier.type == "SOFT_BODY": addPointCache(job, object, modifier.point_cache, default_path) elif modifier.type == "SMOKE" and modifier.smoke_type == "TYPE_DOMAIN": - addPointCache(job, object, modifier.domain_settings.point_cache_low, default_path) - if modifier.domain_settings.use_high_resolution: - addPointCache(job, object, modifier.domain_settings.point_cache_high, default_path) + addPointCache(job, object, modifier.domain_settings.point_cache, default_path) elif modifier.type == "MULTIRES" and modifier.is_external: file_path = bpy.path.abspath(modifier.filepath) job.addFile(file_path) diff --git a/release/scripts/io/netrender/master.py b/release/scripts/io/netrender/master.py index 93f2baf4a36..1d4ab3699ae 100644 --- a/release/scripts/io/netrender/master.py +++ b/release/scripts/io/netrender/master.py @@ -27,6 +27,7 @@ from netrender.utils import * import netrender.model import netrender.balancing import netrender.master_html +import netrender.thumbnail as thumbnail class MRenderFile(netrender.model.RenderFile): def __init__(self, filepath, index, start, end, signature): @@ -203,6 +204,15 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): # is extremely slow due to some timeout.. sys.stderr.write("[%s] %s\n" % (self.log_date_time_string(), format%args)) + def getInfoMap(self): + length = int(self.headers['content-length']) + + if length > 0: + msg = str(self.rfile.read(length), encoding='utf8') + return json.loads(msg) + else: + return {} + def send_head(self, code = http.client.OK, headers = {}, content = "application/octet-stream"): self.send_response(code) self.send_header("Content-type", content) @@ -299,7 +309,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): elif frame.status == DONE: filename = os.path.join(job.save_path, "%06d.exr" % frame_number) - thumbname = thumbnail(filename) + thumbname = thumbnail.generate(filename) if thumbname: f = open(thumbname, 'rb') @@ -518,8 +528,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): job = self.server.getJobID(job_id) if job: - length = int(self.headers['content-length']) - info_map = eval(str(self.rfile.read(length), encoding='utf8')) + info_map = self.getInfoMap() job.edit(info_map) self.send_head() @@ -531,8 +540,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): self.send_head(http.client.NO_CONTENT) # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- elif self.path == "/balance_limit": - length = int(self.headers['content-length']) - info_map = eval(str(self.rfile.read(length), encoding='utf8')) + info_map = self.getInfoMap() for rule_id, limit in info_map.items(): try: rule = self.server.balancer.ruleByID(rule_id) @@ -544,8 +552,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): self.send_head() # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- elif self.path == "/balance_enable": - length = int(self.headers['content-length']) - info_map = eval(str(self.rfile.read(length), encoding='utf8')) + info_map = self.getInfoMap() for rule_id, enabled in info_map.items(): rule = self.server.balancer.ruleByID(rule_id) if rule: @@ -557,13 +564,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): match = cancel_pattern.match(self.path) if match: - length = int(self.headers['content-length']) - - if length > 0: - info_map = eval(str(self.rfile.read(length), encoding='utf8')) - clear = info_map.get("clear", False) - else: - clear = False + info_map = self.getInfoMap() + clear = info_map.get("clear", False) job_id = match.groups()[0] @@ -584,13 +586,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): match = pause_pattern.match(self.path) if match: - length = int(self.headers['content-length']) - - if length > 0: - info_map = eval(str(self.rfile.read(length), encoding='utf8')) - status = info_map.get("status", None) - else: - status = None + info_map = self.getInfoMap() + status = info_map.get("status", None) job_id = match.groups()[0] @@ -609,13 +606,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- elif self.path == "/clear": # cancel all jobs - length = int(self.headers['content-length']) - - if length > 0: - info_map = eval(str(self.rfile.read(length), encoding='utf8')) - clear = info_map.get("clear", False) - else: - clear = False + info_map = self.getInfoMap() + clear = info_map.get("clear", False) self.server.stats("", "Clearing jobs") self.server.clear(clear) diff --git a/release/scripts/io/netrender/master_html.py b/release/scripts/io/netrender/master_html.py index 0e14905a86b..877273207a8 100644 --- a/release/scripts/io/netrender/master_html.py +++ b/release/scripts/io/netrender/master_html.py @@ -183,28 +183,28 @@ def get(handler): for rule in handler.server.balancer.rules: rowTable( "rating", - checkbox("", rule.enabled, "balance_enable('%i', '%s')" % (id(rule), str(not rule.enabled))), + checkbox("", rule.enabled, "balance_enable('%s', '%s')" % (rule.id(), str(not rule.enabled).lower())), rule, rule.str_limit() + - """<button title="edit limit" onclick="balance_edit('%i', '%s');">edit</button>""" % (id(rule), str(rule.limit)) if hasattr(rule, "limit") else " " + """<button title="edit limit" onclick="balance_edit('%s', '%s');">edit</button>""" % (rule.id(), str(rule.limit)) if hasattr(rule, "limit") else " " ) for rule in handler.server.balancer.priorities: rowTable( "priority", - checkbox("", rule.enabled, "balance_enable('%i', '%s')" % (id(rule), str(not rule.enabled))), + checkbox("", rule.enabled, "balance_enable('%s', '%s')" % (rule.id(), str(not rule.enabled).lower())), rule, rule.str_limit() + - """<button title="edit limit" onclick="balance_edit('%i', '%s');">edit</button>""" % (id(rule), str(rule.limit)) if hasattr(rule, "limit") else " " + """<button title="edit limit" onclick="balance_edit('%s', '%s');">edit</button>""" % (rule.id(), str(rule.limit)) if hasattr(rule, "limit") else " " ) for rule in handler.server.balancer.exceptions: rowTable( "exception", - checkbox("", rule.enabled, "balance_enable('%i', '%s')" % (id(rule), str(not rule.enabled))), + checkbox("", rule.enabled, "balance_enable('%s', '%s')" % (rule.id(), str(not rule.enabled).lower())), rule, rule.str_limit() + - """<button title="edit limit" onclick="balance_edit('%i', '%s');">edit</button>""" % (id(rule), str(rule.limit)) if hasattr(rule, "limit") else " " + """<button title="edit limit" onclick="balance_edit('%s', '%s');">edit</button>""" % (rule.id(), str(rule.limit)) if hasattr(rule, "limit") else " " ) endTable() diff --git a/release/scripts/io/netrender/netrender.js b/release/scripts/io/netrender/netrender.js index 041a39a3ebc..1024a169571 100644 --- a/release/scripts/io/netrender/netrender.js +++ b/release/scripts/io/netrender/netrender.js @@ -20,9 +20,9 @@ function clear_jobs() var r=confirm("Also delete files on master?"); if (r==true) { - request('/clear', "{'clear':True}"); + request('/clear', '{"clear":true}'); } else { - request('/clear', "{'clear':False}"); + request('/clear', '{"clear":false}'); } } @@ -31,9 +31,9 @@ function cancel_job(id) var r=confirm("Also delete files on master?"); if (r==true) { - request('/cancel_' + id, "{'clear':True}"); + request('/cancel_' + id, '{"clear":true}'); } else { - request('/cancel_' + id, "{'clear':False}"); + request('/cancel_' + id, '{"clear":false}'); } } @@ -41,13 +41,13 @@ function balance_edit(id, old_value) { var new_value = prompt("New limit", old_value); if (new_value != null && new_value != "") { - request("/balance_limit", "{" + id + ":'" + new_value + "'}"); + request("/balance_limit", '{"' + id + '":"' + new_value + '"}'); } } function balance_enable(id, value) { - request("/balance_enable", "{" + id + ":" + value + "}"); + request("/balance_enable", '{"' + id + '":' + value + "}"); } function showThumb(job, frame) diff --git a/release/scripts/io/netrender/operators.py b/release/scripts/io/netrender/operators.py index fe82011d706..2bfbc491ac2 100644 --- a/release/scripts/io/netrender/operators.py +++ b/release/scripts/io/netrender/operators.py @@ -62,12 +62,9 @@ class RENDER_OT_netslave_bake(bpy.types.Operator): modifier.point_cache.use_disk_cache = True modifier.point_cache.use_external = False elif modifier.type == "SMOKE" and modifier.smoke_type == "TYPE_DOMAIN": - modifier.domain_settings.point_cache_low.use_step = 1 - modifier.domain_settings.point_cache_low.use_disk_cache = True - modifier.domain_settings.point_cache_low.use_external = False - modifier.domain_settings.point_cache_high.use_step = 1 - modifier.domain_settings.point_cache_high.use_disk_cache = True - modifier.domain_settings.point_cache_high.use_external = False + modifier.domain_settings.point_cache.use_step = 1 + modifier.domain_settings.point_cache.use_disk_cache = True + modifier.domain_settings.point_cache.use_external = False # particles modifier are stupid and don't contain data # we have to go through the object property @@ -355,7 +352,7 @@ class RENDER_OT_netclientcancel(bpy.types.Operator): if conn: job = netrender.jobs[netsettings.active_job_index] - conn.request("POST", cancelURL(job.id)) + conn.request("POST", cancelURL(job.id), json.dumps({'clear':False})) response = conn.getresponse() response.read() @@ -382,7 +379,7 @@ class RENDER_OT_netclientcancelall(bpy.types.Operator): conn = clientConnection(netsettings.server_address, netsettings.server_port, self.report) if conn: - conn.request("POST", "/clear") + conn.request("POST", "/clear", json.dumps({'clear':False})) response = conn.getresponse() response.read() diff --git a/release/scripts/io/netrender/slave.py b/release/scripts/io/netrender/slave.py index 12f8fdbf986..378871566a8 100644 --- a/release/scripts/io/netrender/slave.py +++ b/release/scripts/io/netrender/slave.py @@ -26,6 +26,7 @@ import bpy from netrender.utils import * import netrender.model import netrender.repath +import netrender.thumbnail as thumbnail BLENDER_PATH = sys.argv[0] @@ -304,7 +305,7 @@ def render_slave(engine, netsettings, threads): # thumbnail first if netsettings.use_slave_thumb: - thumbname = thumbnail(filename) + thumbname = thumbnail.generate(filename) if thumbname: f = open(thumbname, 'rb') diff --git a/release/scripts/io/netrender/thumbnail.py b/release/scripts/io/netrender/thumbnail.py new file mode 100644 index 00000000000..2ead6e82745 --- /dev/null +++ b/release/scripts/io/netrender/thumbnail.py @@ -0,0 +1,81 @@ +# ##### BEGIN GPL LICENSE BLOCK ##### +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ##### END GPL LICENSE BLOCK ##### + +import sys, os +import subprocess + +import bpy + +def generate(filename, external=True): + if external: + process = subprocess.Popen([sys.argv[0], "-b", "-noaudio", "-P", __file__, "--", filename], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + while process.poll() is None: + process.stdout.read(1024) # empty buffer to be sure + process.stdout.read() + + return _thumbname(filename) + else: + return _internal(filename) + +def _thumbname(filename): + root = os.path.splitext(filename)[0] + return root + ".jpg" + +def _internal(filename): + imagename = os.path.split(filename)[1] + thumbname = _thumbname(filename) + + if os.path.exists(thumbname): + return thumbname + + if bpy: + scene = bpy.data.scenes[0] # FIXME, this is dodgy! + scene.render.file_format = "JPEG" + scene.render.file_quality = 90 + + # remove existing image, if there's a leftover (otherwise open changes the name) + if imagename in bpy.data.images: + img = bpy.data.images[imagename] + bpy.data.images.remove(img) + + bpy.ops.image.open(filepath=filename) + img = bpy.data.images[imagename] + + img.save_render(thumbname, scene=scene) + + img.user_clear() + bpy.data.images.remove(img) + + try: + process = subprocess.Popen(["convert", thumbname, "-resize", "300x300", thumbname]) + process.wait() + return thumbname + except Exception as exp: + print("Error while generating thumbnail") + print(exp) + + return None + +if __name__ == "__main__": + import bpy + try: + start = sys.argv.index("--") + 1 + except ValueError: + start = 0 + for filename in sys.argv[start:]: + generate(filename, external=False) diff --git a/release/scripts/io/netrender/ui.py b/release/scripts/io/netrender/ui.py index 49aba80580e..46da06d9eb9 100644 --- a/release/scripts/io/netrender/ui.py +++ b/release/scripts/io/netrender/ui.py @@ -276,8 +276,6 @@ class RENDER_PT_network_slaves(NeedValidAddress, NetRenderButtonsPanel, bpy.type sub.operator("render.netclientslaves", icon='FILE_REFRESH', text="") sub.operator("render.netclientblacklistslave", icon='ZOOMOUT', text="") - init_data(netsettings) - if netsettings.active_slave_index >= 0 and len(netsettings.slaves) > 0: layout.separator() @@ -309,8 +307,6 @@ class RENDER_PT_network_slaves_blacklist(NeedValidAddress, NetRenderButtonsPanel sub = row.column(align=True) sub.operator("render.netclientwhitelistslave", icon='ZOOMOUT', text="") - init_data(netsettings) - if netsettings.active_blacklisted_slave_index >= 0 and len(netsettings.slaves_blacklist) > 0: layout.separator() @@ -345,8 +341,6 @@ class RENDER_PT_network_jobs(NeedValidAddress, NetRenderButtonsPanel, bpy.types. sub.operator("render.netclientcancelall", icon='PANEL_CLOSE', text="") sub.operator("render.netclientdownload", icon='RENDER_ANIMATION', text="") - init_data(netsettings) - if netsettings.active_job_index >= 0 and len(netsettings.jobs) > 0: layout.separator() diff --git a/release/scripts/io/netrender/utils.py b/release/scripts/io/netrender/utils.py index ef0c96a907e..7496675f592 100644 --- a/release/scripts/io/netrender/utils.py +++ b/release/scripts/io/netrender/utils.py @@ -219,7 +219,7 @@ def prefixPath(prefix_directory, file_path, prefix_path, force = False): else: full_path = os.path.join(prefix_directory, n) else: - full_path = (prefix_directory, file_path) + full_path = os.path.join(prefix_directory, file_path) return full_path @@ -238,43 +238,11 @@ def getFileInfo(filepath, infos): return values -def thumbnail(filename): - root = os.path.splitext(filename)[0] - imagename = os.path.split(filename)[1] - thumbname = root + ".jpg" - - if os.path.exists(thumbname): - return thumbname - - if bpy: - scene = bpy.data.scenes[0] # FIXME, this is dodgy! - scene.render.file_format = "JPEG" - scene.render.file_quality = 90 - - # remove existing image, if there's a leftover (otherwise open changes the name) - if imagename in bpy.data.images: - img = bpy.data.images[imagename] - bpy.data.images.remove(img) - - bpy.ops.image.open(filepath=filename) - img = bpy.data.images[imagename] - - img.save_render(thumbname, scene=scene) - - img.user_clear() - bpy.data.images.remove(img) - - try: - process = subprocess.Popen(["convert", thumbname, "-resize", "300x300", thumbname]) - process.wait() - return thumbname - except Exception as exp: - print("Error while generating thumbnail") - print(exp) - - return None - if __name__ == "__main__": import bpy - for info in sys.argv[7:]: + try: + start = sys.argv.index("--") + 1 + except ValueError: + start = 0 + for info in sys.argv[start:]: print("$", eval(info)) diff --git a/release/scripts/keyingsets/keyingsets_builtins.py b/release/scripts/keyingsets/keyingsets_builtins.py index 73b75057299..30b00d969c3 100644 --- a/release/scripts/keyingsets/keyingsets_builtins.py +++ b/release/scripts/keyingsets/keyingsets_builtins.py @@ -60,7 +60,7 @@ class BUILTIN_KSI_LocRot(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator def generate(self, context, ks, data): # location RKS_GEN_location(self, context, ks, data) @@ -77,7 +77,7 @@ class BUILTIN_KSI_LocScale(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator def generate(self, context, ks, data): # location RKS_GEN_location(self, context, ks, data) @@ -94,7 +94,7 @@ class BUILTIN_KSI_LocRotScale(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator def generate(self, context, ks, data): # location RKS_GEN_location(self, context, ks, data) @@ -113,7 +113,7 @@ class BUILTIN_KSI_RotScale(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator def generate(self, context, ks, data): # rotation RKS_GEN_rotation(self, context, ks, data) @@ -126,7 +126,7 @@ class BUILTIN_KSI_RotScale(bpy.types.KeyingSetInfo): class BUILTIN_KSI_VisualLoc(bpy.types.KeyingSetInfo): bl_label = "Visual Location" - insertkey_visual = True + bl_options = {'INSERTKEY_VISUAL'} # poll - use predefined callback for selected bones/objects poll = RKS_POLL_selected_items @@ -149,7 +149,7 @@ class BUILTIN_KSI_VisualRot(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator - use callback for rotation generate = RKS_GEN_rotation # VisualLocRot @@ -164,7 +164,7 @@ class BUILTIN_KSI_VisualLocRot(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator def generate(self, context, ks, data): # location RKS_GEN_location(self, context, ks, data) @@ -185,7 +185,7 @@ class BUILTIN_KSI_Available(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator - use callback for doing this generate = RKS_GEN_available ############################### diff --git a/release/scripts/modules/animsys_refactor.py b/release/scripts/modules/animsys_refactor.py index bd16a02268a..464df870e87 100644 --- a/release/scripts/modules/animsys_refactor.py +++ b/release/scripts/modules/animsys_refactor.py @@ -22,11 +22,12 @@ This module has utility functions for renaming rna values in fcurves and drivers. -The main function to use is: update_data_paths(...) +The main function to use is: update_data_paths(...) """ IS_TESTING = False + class DataPathBuilder(object): __slots__ = ("data_path", ) """ Dummy class used to parse fcurve and driver data paths. @@ -37,7 +38,7 @@ class DataPathBuilder(object): def __getattr__(self, attr): str_value = ".%s" % attr return DataPathBuilder(self.data_path + (str_value, )) - + def __getitem__(self, key): str_value = '["%s"]' % key return DataPathBuilder(self.data_path + (str_value, )) @@ -51,7 +52,7 @@ class DataPathBuilder(object): if base is not Ellipsis: try: # this only works when running with an old blender - # where the old path will resolve + # where the old path will resolve base = eval("base" + item) except: base_new = Ellipsis @@ -61,7 +62,7 @@ class DataPathBuilder(object): try: print("base." + item_new) base_new = eval("base." + item_new) - break # found, dont keep looking + break # found, dont keep looking except: pass @@ -77,7 +78,7 @@ import bpy def id_iter(): type_iter = type(bpy.data.objects) - + for attr in dir(bpy.data): data_iter = getattr(bpy.data, attr, None) if type(data_iter) == type_iter: @@ -115,13 +116,13 @@ def find_path_new(id_data, data_path, rna_update_dict, rna_update_from_map): # ignore ID props for now if data_path.startswith("["): return data_path - + # recursive path fixing, likely will be one in most cases. data_path_builder = eval("DataPathBuilder(tuple())." + data_path) data_resolve = data_path_builder.resolve(id_data, rna_update_from_map) path_new = [pair[0] for pair in data_resolve] - + # print(data_resolve) data_base = id_data @@ -138,20 +139,20 @@ def find_path_new(id_data, data_path, rna_update_dict, rna_update_from_map): # set this as the base for further properties data_base = data - - data_path_new = "".join(path_new)[1:] # skip the first "." + + data_path_new = "".join(path_new)[1:] # skip the first "." return data_path_new def update_data_paths(rna_update): ''' rna_update triple [(class_name, from, to), ...] ''' - + # make a faster lookup dict rna_update_dict = {} for ren_class, ren_from, ren_to in rna_update: rna_update_dict.setdefault(ren_class, {})[ren_from] = ren_to - + rna_update_from_map = {} for ren_class, ren_from, ren_to in rna_update: rna_update_from_map.setdefault(ren_from, []).append(ren_to) @@ -174,7 +175,7 @@ def update_data_paths(rna_update): for tar in var.targets: id_data_other = tar.id data_path = tar.data_path - + if id_data_other and data_path: data_path_new = find_path_new(id_data_other, data_path, rna_update_dict, rna_update_from_map) # print(data_path_new) @@ -182,9 +183,7 @@ def update_data_paths(rna_update): if not IS_TESTING: tar.data_path = data_path_new print("driver (%s): %s -> %s" % (id_data_other.name, data_path, data_path_new)) - - - + for action in anim_data_actions(anim_data): for fcu in action.fcurves: data_path = fcu.data_path diff --git a/release/scripts/modules/bpy/__init__.py b/release/scripts/modules/bpy/__init__.py index 99faeeaf169..5c636d3a0df 100644 --- a/release/scripts/modules/bpy/__init__.py +++ b/release/scripts/modules/bpy/__init__.py @@ -48,7 +48,7 @@ def _main(): pydoc.getpager = lambda: pydoc.plainpager pydoc.Helper.getline = lambda self, prompt: None pydoc.TextDoc.use_bold = lambda self, text: text - + # Possibly temp. addons path from os.path import join, dirname, normpath _sys.path.append(normpath(join(dirname(__file__), "..", "..", "addons", "modules"))) diff --git a/release/scripts/modules/bpy/ops.py b/release/scripts/modules/bpy/ops.py index 6965a8db918..f54b0a1fefc 100644 --- a/release/scripts/modules/bpy/ops.py +++ b/release/scripts/modules/bpy/ops.py @@ -137,13 +137,12 @@ class bpy_ops_submodule_op(object): @staticmethod def _scene_update(context): scene = context.scene - if scene: # None in backgroud mode + if scene: # None in backgroud mode scene.update() else: import bpy for scene in bpy.data.scenes: scene.update() - __doc__ = property(_get_doc) @@ -196,7 +195,8 @@ class bpy_ops_submodule_op(object): as_string = op_as_string(idname) op_class = getattr(bpy.types, idname) descr = op_class.bl_rna.description - # XXX, workaround for not registering every __doc__ to save time on load. + # XXX, workaround for not registering + # every __doc__ to save time on load. if not descr: descr = op_class.__doc__ if not descr: diff --git a/release/scripts/modules/bpy/path.py b/release/scripts/modules/bpy/path.py index 9c9d386c7b0..feff3b22a6f 100644 --- a/release/scripts/modules/bpy/path.py +++ b/release/scripts/modules/bpy/path.py @@ -204,7 +204,7 @@ def module_names(path, recursive=False): for filename in sorted(_os.listdir(path)): if filename == "modules": - pass # XXX, hard coded exception. + pass # XXX, hard coded exception. elif filename.endswith(".py") and filename != "__init__.py": fullpath = join(path, filename) modules.append((filename[0:-3], fullpath)) diff --git a/release/scripts/modules/bpy/utils.py b/release/scripts/modules/bpy/utils.py index e979c75f95e..243ab866abb 100644 --- a/release/scripts/modules/bpy/utils.py +++ b/release/scripts/modules/bpy/utils.py @@ -31,6 +31,7 @@ import bpy as _bpy import os as _os import sys as _sys + def _test_import(module_name, loaded_modules): import traceback import time @@ -203,13 +204,11 @@ def load_scripts(reload_scripts=False, refresh_scripts=False): # deal with addons seperately addon_reset_all(reload_scripts) - # run the active integration preset filepath = preset_find(_bpy.context.user_preferences.inputs.active_keyconfig, "keyconfig") if filepath: keyconfig_set(filepath) - if reload_scripts: import gc print("gc.collect() -> %d" % gc.collect()) @@ -368,7 +367,6 @@ def addon_enable(module_name, default_set=True): import bpy_types as _bpy_types import imp - _bpy_types._register_immediate = False def handle_error(): @@ -376,7 +374,6 @@ def addon_enable(module_name, default_set=True): traceback.print_exc() _bpy_types._register_immediate = True - # reload if the mtime changes mod = sys.modules.get(module_name) if mod: @@ -428,7 +425,7 @@ def addon_enable(module_name, default_set=True): if not ext: ext = _bpy.context.user_preferences.addons.new() ext.module = module_name - + _bpy_types._register_immediate = True mod.__addon_enabled__ = True @@ -471,7 +468,7 @@ def addon_disable(module_name, default_set=True): addon = addons.get(module_name) if addon: addons.remove(addon) - + print("\tbpy.utils.addon_disable", module_name) @@ -483,10 +480,10 @@ def addon_reset_all(reload_scripts=False): # RELEASE SCRIPTS: official scripts distributed in Blender releases paths = script_paths("addons") - + # CONTRIB SCRIPTS: good for testing but not official scripts yet paths += script_paths("addons_contrib") - + # EXTERN SCRIPTS: external projects scripts paths += script_paths("addons_extern") @@ -513,9 +510,9 @@ def addon_reset_all(reload_scripts=False): def preset_find(name, preset_path, display_name=False): if not name: return None - + for directory in preset_paths(preset_path): - + if display_name: filename = "" for fn in _os.listdir(directory): @@ -558,7 +555,7 @@ def keyconfig_set(filepath): keyconfigs.remove(kc_dupe) else: break - + kc_new.name = name keyconfigs.active = kc_new @@ -595,4 +592,3 @@ def user_resource(type, path="", create=False): target_path = "" return target_path - diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py index 31450031c6b..a2c3d416b23 100644 --- a/release/scripts/modules/bpy_types.py +++ b/release/scripts/modules/bpy_types.py @@ -638,7 +638,7 @@ class OrderedMeta(RNAMeta): # with doc generation 'self.properties.bl_rna.properties' can fail class Operator(StructRNA, metaclass=OrderedMeta): __slots__ = () - + def __getattribute__(self, attr): properties = StructRNA.path_resolve(self, "properties") bl_rna = getattr(properties, "bl_rna", None) @@ -745,7 +745,7 @@ class Menu(StructRNA, _GenericUI, metaclass=RNAMeta): import bpy.utils layout = self.layout - + if not searchpaths: layout.label("* Missing Paths *") diff --git a/release/scripts/modules/rna_prop_ui.py b/release/scripts/modules/rna_prop_ui.py index 2e3f9af8d1b..9311987e2e7 100644 --- a/release/scripts/modules/rna_prop_ui.py +++ b/release/scripts/modules/rna_prop_ui.py @@ -60,7 +60,7 @@ def rna_idprop_ui_prop_clear(item, prop): def rna_idprop_context_value(context, context_member, property_type): space = context.space_data - + if space is None or isinstance(space, bpy.types.SpaceProperties): pin_id = space.pin_id else: diff --git a/release/scripts/modules/sys_info.py b/release/scripts/modules/sys_info.py index 58fb1aba377..303277a5d75 100644 --- a/release/scripts/modules/sys_info.py +++ b/release/scripts/modules/sys_info.py @@ -25,83 +25,87 @@ import bgl import sys + def cutPoint(text, length): - "Returns position of the last space found before 'length' chars" - l = length - c = text[l] - while c != ' ': - l -= 1 - if l == 0: return length # no space found - c = text[l] - return l - -def textWrap(text, length = 70): - lines = [] - while len(text) > 70: - cpt = cutPoint(text, length) - line, text = text[:cpt], text[cpt + 1:] - lines.append(line) - lines.append(text) - return lines + "Returns position of the last space found before 'length' chars" + l = length + c = text[l] + while c != ' ': + l -= 1 + if l == 0: + return length # no space found + c = text[l] + return l + + +def textWrap(text, length=70): + lines = [] + while len(text) > 70: + cpt = cutPoint(text, length) + line, text = text[:cpt], text[cpt + 1:] + lines.append(line) + lines.append(text) + return lines + def write_sysinfo(op): - output_filename = "system-info.txt" - warnings = 0 - notices = 0 - - if output_filename in bpy.data.texts.keys(): - output = bpy.data.texts[output_filename] - output.clear() - else: - output = bpy.data.texts.new(name=output_filename) - - header = '= Blender {} System Information =\n'.format(bpy.app.version_string) - lilies = '{}\n\n'.format(len(header)*'=') - firstlilies = '{}\n'.format(len(header)*'=') - output.write(firstlilies) - output.write(header) - output.write(lilies) - - # build info - output.write('\nBlender:\n') - output.write(lilies) - output.write('version {}, revision {}. {}\n'.format(bpy.app.version_string, bpy.app.build_revision, bpy.app.build_type)) - output.write('build date: {}, {}\n'.format(bpy.app.build_date, bpy.app.build_time)) - output.write('platform: {}\n'.format(bpy.app.build_platform)) - output.write('binary path: {}\n'.format(bpy.app.binary_path)) - output.write('build cflags: {}\n'.format(bpy.app.build_cflags)) - output.write('build cxxflags: {}\n'.format(bpy.app.build_cxxflags)) - output.write('build linkflags: {}\n'.format(bpy.app.build_linkflags)) - output.write('build system: {}\n'.format(bpy.app.build_system)) - - # python info - output.write('\nPython:\n') - output.write(lilies) - output.write('version: {}\n'.format(sys.version)) - output.write('paths:\n') - for p in sys.path: - output.write('\t{}\n'.format(p)) - - output.write('\nDirectories:\n') - output.write(lilies) - output.write('scripts: {}\n'.format(bpy.utils.script_paths())) - output.write('user scripts: {}\n'.format(bpy.utils.user_script_path())) - output.write('datafiles: {}\n'.format(bpy.utils.user_resource('DATAFILES'))) - output.write('config: {}\n'.format(bpy.utils.user_resource('CONFIG'))) - output.write('scripts : {}\n'.format(bpy.utils.user_resource('SCRIPTS'))) - output.write('autosave: {}\n'.format(bpy.utils.user_resource('AUTOSAVE'))) - output.write('tempdir: {}\n'.format(bpy.app.tempdir)) - - output.write('\nOpenGL\n') - output.write(lilies) - output.write('renderer:\t{}\n'.format(bgl.glGetString(bgl.GL_RENDERER))) - output.write('vendor:\t\t{}\n'.format(bgl.glGetString(bgl.GL_VENDOR))) - output.write('version:\t{}\n'.format(bgl.glGetString(bgl.GL_VERSION))) - output.write('extensions:\n') - - glext = bgl.glGetString(bgl.GL_EXTENSIONS) - glext = textWrap(glext, 70) - for l in glext: - output.write('\t\t{}\n'.format(l)) - - op.report({'INFO'}, "System information generated in 'system-info.txt'") + output_filename = "system-info.txt" + warnings = 0 + notices = 0 + + if output_filename in bpy.data.texts.keys(): + output = bpy.data.texts[output_filename] + output.clear() + else: + output = bpy.data.texts.new(name=output_filename) + + header = '= Blender {} System Information =\n'.format(bpy.app.version_string) + lilies = '{}\n\n'.format(len(header) * '=') + firstlilies = '{}\n'.format(len(header) * '=') + output.write(firstlilies) + output.write(header) + output.write(lilies) + + # build info + output.write('\nBlender:\n') + output.write(lilies) + output.write('version {}, revision {}. {}\n'.format(bpy.app.version_string, bpy.app.build_revision, bpy.app.build_type)) + output.write('build date: {}, {}\n'.format(bpy.app.build_date, bpy.app.build_time)) + output.write('platform: {}\n'.format(bpy.app.build_platform)) + output.write('binary path: {}\n'.format(bpy.app.binary_path)) + output.write('build cflags: {}\n'.format(bpy.app.build_cflags)) + output.write('build cxxflags: {}\n'.format(bpy.app.build_cxxflags)) + output.write('build linkflags: {}\n'.format(bpy.app.build_linkflags)) + output.write('build system: {}\n'.format(bpy.app.build_system)) + + # python info + output.write('\nPython:\n') + output.write(lilies) + output.write('version: {}\n'.format(sys.version)) + output.write('paths:\n') + for p in sys.path: + output.write('\t{}\n'.format(p)) + + output.write('\nDirectories:\n') + output.write(lilies) + output.write('scripts: {}\n'.format(bpy.utils.script_paths())) + output.write('user scripts: {}\n'.format(bpy.utils.user_script_path())) + output.write('datafiles: {}\n'.format(bpy.utils.user_resource('DATAFILES'))) + output.write('config: {}\n'.format(bpy.utils.user_resource('CONFIG'))) + output.write('scripts : {}\n'.format(bpy.utils.user_resource('SCRIPTS'))) + output.write('autosave: {}\n'.format(bpy.utils.user_resource('AUTOSAVE'))) + output.write('tempdir: {}\n'.format(bpy.app.tempdir)) + + output.write('\nOpenGL\n') + output.write(lilies) + output.write('renderer:\t{}\n'.format(bgl.glGetString(bgl.GL_RENDERER))) + output.write('vendor:\t\t{}\n'.format(bgl.glGetString(bgl.GL_VENDOR))) + output.write('version:\t{}\n'.format(bgl.glGetString(bgl.GL_VERSION))) + output.write('extensions:\n') + + glext = bgl.glGetString(bgl.GL_EXTENSIONS) + glext = textWrap(glext, 70) + for l in glext: + output.write('\t\t{}\n'.format(l)) + + op.report({'INFO'}, "System information generated in 'system-info.txt'") diff --git a/release/scripts/op/animsys_update.py b/release/scripts/op/animsys_update.py index 24a56c7a1e1..e5eab045e94 100644 --- a/release/scripts/op/animsys_update.py +++ b/release/scripts/op/animsys_update.py @@ -699,5 +699,6 @@ class UpdateAnimData(bpy.types.Operator): if __name__ == "__main__": bpy.ops.anim.update_data_paths() + def register(): pass diff --git a/release/scripts/op/console_python.py b/release/scripts/op/console_python.py index b9483cd769a..98d3f3f74a3 100644 --- a/release/scripts/op/console_python.py +++ b/release/scripts/op/console_python.py @@ -82,9 +82,9 @@ def get_console(console_id): namespace["__builtins__"] = sys.modules["builtins"] namespace["bpy"] = bpy namespace["C"] = bpy.context - - namespace.update(__import__("mathutils").__dict__) # from mathutils import * - namespace.update(__import__("math").__dict__) # from math import * + + namespace.update(__import__("mathutils").__dict__) # from mathutils import * + namespace.update(__import__("math").__dict__) # from math import * console = InteractiveConsole(locals=namespace, filename="<blender_console>") @@ -186,7 +186,7 @@ def execute(context): # restore the stdin sys.stdin = stdin_backup - + # execute any hooks for func, args in execute.hooks: func(*args) diff --git a/release/scripts/op/io_anim_bvh/__init__.py b/release/scripts/op/io_anim_bvh/__init__.py index ec56f76b11f..2d1bd77f0d4 100644 --- a/release/scripts/op/io_anim_bvh/__init__.py +++ b/release/scripts/op/io_anim_bvh/__init__.py @@ -27,18 +27,18 @@ if "bpy" in locals(): import bpy from bpy.props import * -from io_utils import ImportHelper +from io_utils import ImportHelper, ExportHelper class BvhImporter(bpy.types.Operator, ImportHelper): - '''Load a OBJ Motion Capture File''' + '''Load a BVH motion capture file''' bl_idname = "import_anim.bvh" bl_label = "Import BVH" - + filename_ext = ".bvh" filter_glob = StringProperty(default="*.bvh", options={'HIDDEN'}) - scale = FloatProperty(name="Scale", description="Scale the BVH by this value", min=0.0001, max=1000000.0, soft_min=0.001, soft_max=100.0, default=0.1) + global_scale = FloatProperty(name="Scale", description="Scale the BVH by this value", min=0.0001, max=1000000.0, soft_min=0.001, soft_max=100.0, default=1.0) frame_start = IntProperty(name="Start Frame", description="Starting frame for the animation", default=1) use_cyclic = BoolProperty(name="Loop", description="Loop the animation playback", default=False) rotate_mode = EnumProperty(items=( @@ -60,16 +60,54 @@ class BvhImporter(bpy.types.Operator, ImportHelper): return import_bvh.load(self, context, **self.as_keywords(ignore=("filter_glob",))) -def menu_func(self, context): +class BvhExporter(bpy.types.Operator, ExportHelper): + '''Save a BVH motion capture file from an armature''' + bl_idname = "export_anim.bvh" + bl_label = "Export BVH" + + filename_ext = ".bvh" + filter_glob = StringProperty(default="*.bvh", options={'HIDDEN'}) + + global_scale = FloatProperty(name="Scale", description="Scale the BVH by this value", min=0.0001, max=1000000.0, soft_min=0.001, soft_max=100.0, default=1.0) + frame_start = IntProperty(name="Start Frame", description="Starting frame to export", default=0) + frame_end = IntProperty(name="End Frame", description="End frame to export", default=0) + + @classmethod + def poll(cls, context): + obj = context.object + return obj and obj.type == 'ARMATURE' + + def invoke(self, context, event): + self.frame_start = context.scene.frame_start + self.frame_end = context.scene.frame_end + + return super().invoke(context, event) + + def execute(self, context): + if self.frame_start == 0 and self.frame_end == 0: + self.frame_start = context.scene.frame_start + self.frame_end = context.scene.frame_end + + from . import export_bvh + return export_bvh.save(self, context, **self.as_keywords(ignore=("check_existing", "filter_glob"))) + + +def menu_func_import(self, context): self.layout.operator(BvhImporter.bl_idname, text="Motion Capture (.bvh)") +def menu_func_export(self, context): + self.layout.operator(BvhExporter.bl_idname, text="Motion Capture (.bvh)") + + def register(): - bpy.types.INFO_MT_file_import.append(menu_func) + bpy.types.INFO_MT_file_import.append(menu_func_import) + bpy.types.INFO_MT_file_export.append(menu_func_export) def unregister(): - bpy.types.INFO_MT_file_import.remove(menu_func) + bpy.types.INFO_MT_file_import.remove(menu_func_import) + bpy.types.INFO_MT_file_export.remove(menu_func_export) if __name__ == "__main__": register() diff --git a/release/scripts/op/io_anim_bvh/export_bvh.py b/release/scripts/op/io_anim_bvh/export_bvh.py new file mode 100644 index 00000000000..86c8e7f4d27 --- /dev/null +++ b/release/scripts/op/io_anim_bvh/export_bvh.py @@ -0,0 +1,236 @@ +# ##### BEGIN GPL LICENSE BLOCK ##### +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ##### END GPL LICENSE BLOCK ##### + +# <pep8 compliant> + +# Script copyright (C) Campbell Barton +# fixes from Andrea Rugliancich + +import bpy + +def _read(context, filepath, frame_start, frame_end, global_scale=1.0): + + from mathutils import Matrix, Vector, Euler + from math import degrees + + file = open(filepath, "w") + + obj = context.object + arm = obj.data + + # Build a dictionary of bone children. + # None is for parentless bones + bone_children = {None: []} + + # initialize with blank lists + for bone in arm.bones: + bone_children[bone.name] = [] + + for bone in arm.bones: + bone_children[getattr(bone.parent, "name", None)].append(bone.name) + + # sort the children + for children_list in bone_children.values(): + children_list.sort() + + # bone name list in the order that the bones are written + bones_serialized_names = [] + + bone_locs = {} + + file.write("HIERARCHY\n") + + def write_bones_recursive(bone_name, indent): + my_bone_children = bone_children[bone_name] + + indent_str = "\t" * indent + + bone = arm.bones[bone_name] + loc = bone.head_local + bone_locs[bone_name] = loc + + # make relative if we can + if bone.parent: + loc = loc - bone_locs[bone.parent.name] + + if indent: + file.write("%sJOINT %s\n" % (indent_str, bone_name)) + else: + file.write("%sROOT %s\n" % (indent_str, bone_name)) + + file.write("%s{\n" % indent_str) + file.write("%s\tOFFSET %.6f %.6f %.6f\n" % (indent_str, loc.x * global_scale, loc.y * global_scale, loc.z * global_scale)) + file.write("%s\tCHANNELS 6 Xposition Yposition Zposition Xrotation Yrotation Zrotation\n" % indent_str) + + if my_bone_children: + # store the location for the children + # to het their relative offset + + # Write children + for child_bone in my_bone_children: + bones_serialized_names.append(child_bone) + write_bones_recursive(child_bone, indent + 1) + + else: + # Write the bone end. + file.write("%s\tEnd Site\n" % indent_str) + file.write("%s\t{\n" % indent_str) + loc = bone.tail_local - bone_locs[bone_name] + file.write("%s\t\tOFFSET %.6f %.6f %.6f\n" % (indent_str, loc.x * global_scale, loc.y * global_scale, loc.z * global_scale)) + file.write("%s\t}\n" % indent_str) + + file.write("%s}\n" % indent_str) + + if len(bone_children[None]) == 1: + key = bone_children[None][0] + bones_serialized_names.append(key) + indent = 0 + + write_bones_recursive(key, indent) + + else: + # Write a dummy parent node + file.write("ROOT %s\n" % key) + file.write("{\n") + file.write("\tOFFSET 0.0 0.0 0.0\n") + file.write("\tCHANNELS 0\n") # Xposition Yposition Zposition Xrotation Yrotation Zrotation + key = None + indent = 1 + + write_bones_recursive(key, indent) + + file.write("}\n") + + # redefine bones as sorted by bones_serialized_names + # so we can write motion + + class decorated_bone(object): + __slots__ = (\ + "name", # bone name, used as key in many places + "parent", # decorated bone parent, set in a later loop + "rest_bone", # blender armature bone + "pose_bone", # blender pose bone + "pose_mat", # blender pose matrix + "rest_arm_mat", # blender rest matrix (armature space) + "rest_local_mat", # blender rest batrix (local space) + "pose_imat", # pose_mat inverted + "rest_arm_imat", # rest_arm_mat inverted + "rest_local_imat", # rest_local_mat inverted + "prev_euler", # last used euler to preserve euler compability in between keyframes + ) + def __init__(self, bone_name): + self.name = bone_name + self.rest_bone = arm.bones[bone_name] + self.pose_bone = obj.pose.bones[bone_name] + + self.pose_mat = self.pose_bone.matrix + + mat = self.rest_bone.matrix + self.rest_arm_mat = self.rest_bone.matrix_local + self.rest_local_mat = self.rest_bone.matrix + + # inverted mats + self.pose_imat = self.pose_mat.copy().invert() + self.rest_arm_imat = self.rest_arm_mat.copy().invert() + self.rest_local_imat = self.rest_local_mat.copy().invert() + + self.parent = None + self.prev_euler = Euler((0.0, 0.0, 0.0)) + + def update_posedata(self): + self.pose_mat = self.pose_bone.matrix + self.pose_imat = self.pose_mat.copy().invert() + + def __repr__(self): + if self.parent: + return "[\"%s\" child on \"%s\"]\n" % (self.name, self.parent.name) + else: + return "[\"%s\" root bone]\n" % (self.name) + + bones_decorated = [decorated_bone(bone_name) for bone_name in bones_serialized_names] + + # Assign parents + bones_decorated_dict = {} + for dbone in bones_decorated: + bones_decorated_dict[dbone.name] = dbone + + for dbone in bones_decorated: + parent = dbone.rest_bone.parent + if parent: + dbone.parent = bones_decorated_dict[parent.name] + del bones_decorated_dict + # finish assigning parents + + scene = bpy.context.scene + + file.write("MOTION\n") + file.write("Frames: %d\n" % (frame_end - frame_start + 1)) + file.write("Frame Time: %.6f\n" % (1.0 / (scene.render.fps / scene.render.fps_base))) + + for frame in range(frame_start, frame_end + 1): + scene.frame_set(frame) + + for dbone in bones_decorated: + dbone.update_posedata() + + for dbone in bones_decorated: + trans = Matrix.Translation(dbone.rest_bone.head_local) + itrans = Matrix.Translation(-dbone.rest_bone.head_local) + + if dbone.parent: + mat_final = dbone.parent.rest_arm_mat * dbone.parent.pose_imat * dbone.pose_mat * dbone.rest_arm_imat + mat_final = itrans * mat_final * trans + loc = mat_final.translation_part() + (dbone.rest_bone.head_local - dbone.parent.rest_bone.head_local) + else: + mat_final = dbone.pose_mat * dbone.rest_arm_imat + mat_final = itrans * mat_final * trans + loc = mat_final.translation_part() + dbone.rest_bone.head + + # keep eulers compatible, no jumping on interpolation. + rot = mat_final.rotation_part().invert().to_euler('XYZ', dbone.prev_euler) + + file.write("%.6f %.6f %.6f " % (loc * global_scale)[:]) + file.write("%.6f %.6f %.6f " % (-degrees(rot[0]), -degrees(rot[1]), -degrees(rot[2]))) + + dbone.prev_euler = rot + + file.write("\n") + + file.close() + + print("BVH Exported: %s frames:%d\n" % (filepath, frame_end - frame_start + 1)) + + +def save(operator, context, filepath="", + frame_start=-1, + frame_end=-1, + global_scale=1.0, + ): + + _read(context, filepath, + frame_start=frame_start, + frame_end=frame_end, + global_scale=global_scale, + ) + + return {'FINISHED'} + + +if __name__ == "__main__": + scene = bpy.context.scene + _read(bpy.data.filepath.rstrip(".blend") + ".bvh", bpy.context.object, scene.frame_start, scene.frame_end, 1.0) diff --git a/release/scripts/op/io_anim_bvh/import_bvh.py b/release/scripts/op/io_anim_bvh/import_bvh.py index ef0fb92aee5..96b0bb56c5a 100644 --- a/release/scripts/op/io_anim_bvh/import_bvh.py +++ b/release/scripts/op/io_anim_bvh/import_bvh.py @@ -30,19 +30,28 @@ from mathutils import Vector, Euler, Matrix class bvh_node_class(object): __slots__ = ( - 'name',# bvh joint name - 'parent',# bvh_node_class type or None for no parent - 'children',# a list of children of this type. - 'rest_head_world',# worldspace rest location for the head of this node - 'rest_head_local',# localspace rest location for the head of this node - 'rest_tail_world',# # worldspace rest location for the tail of this node - 'rest_tail_local',# # worldspace rest location for the tail of this node - 'channels',# list of 6 ints, -1 for an unused channel, otherwise an index for the BVH motion data lines, lock triple then rot triple - 'rot_order',# a triple of indicies as to the order rotation is applied. [0,1,2] is x/y/z - [None, None, None] if no rotation. - 'anim_data',# a list one tuple's one for each frame. (locx, locy, locz, rotx, roty, rotz) - 'has_loc',# Conveinience function, bool, same as (channels[0]!=-1 or channels[1]!=-1 channels[2]!=-1) - 'has_rot',# Conveinience function, bool, same as (channels[3]!=-1 or channels[4]!=-1 channels[5]!=-1) - 'temp')# use this for whatever you want + 'name', # bvh joint name + 'parent', # bvh_node_class type or None for no parent + 'children', # a list of children of this type. + 'rest_head_world', # worldspace rest location for the head of this node + 'rest_head_local', # localspace rest location for the head of this node + 'rest_tail_world', # worldspace rest location for the tail of this node + 'rest_tail_local', # worldspace rest location for the tail of this node + 'channels', # list of 6 ints, -1 for an unused channel, otherwise an index for the BVH motion data lines, lock triple then rot triple + 'rot_order', # a triple of indicies as to the order rotation is applied. [0,1,2] is x/y/z - [None, None, None] if no rotation. + 'rot_order_str', # same as above but a string 'XYZ' format. + 'anim_data', # a list one tuple's one for each frame. (locx, locy, locz, rotx, roty, rotz), euler rotation ALWAYS stored xyz order, even when native used. + 'has_loc', # Conveinience function, bool, same as (channels[0]!=-1 or channels[1]!=-1 channels[2]!=-1) + 'has_rot', # Conveinience function, bool, same as (channels[3]!=-1 or channels[4]!=-1 channels[5]!=-1) + 'temp') # use this for whatever you want + + _eul_order_lookup = {\ + (0, 1, 2): 'XYZ', + (0, 2, 1): 'XZY', + (1, 0, 2): 'YXZ', + (1, 2, 0): 'YZX', + (2, 0, 1): 'ZXY', + (2, 1, 0): 'ZYX'} def __init__(self, name, rest_head_world, rest_head_local, parent, channels, rot_order): self.name = name @@ -52,13 +61,13 @@ class bvh_node_class(object): self.rest_tail_local = None self.parent = parent self.channels = channels - self.rot_order = rot_order + self.rot_order = tuple(rot_order) + self.rot_order_str = __class__._eul_order_lookup[self.rot_order] # convenience functions self.has_loc = channels[0] != -1 or channels[1] != -1 or channels[2] != -1 self.has_rot = channels[3] != -1 or channels[4] != -1 or channels[5] != -1 - self.children = [] # list of 6 length tuples: (lx,ly,lz, rx,ry,rz) @@ -73,25 +82,7 @@ class bvh_node_class(object): self.rest_head_world.x, self.rest_head_world.y, self.rest_head_world.z) -# Change the order rotation is applied. -MATRIX_IDENTITY_3x3 = Matrix([1, 0, 0], [0, 1, 0], [0, 0, 1]) -MATRIX_IDENTITY_4x4 = Matrix([1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]) - - -def eulerRotate(x, y, z, rot_order): - # Clamp all values between 0 and 360, values outside this raise an error. - mats = [Matrix.Rotation(x, 3, 'X'), Matrix.Rotation(y, 3, 'Y'), Matrix.Rotation(z, 3, 'Z')] - return (MATRIX_IDENTITY_3x3 * mats[rot_order[0]] * (mats[rot_order[1]] * (mats[rot_order[2]]))).to_euler() - - # Should work but doesnt! - ''' - eul = Euler((x, y, z)) - eul.order = "XYZ"[rot_order[0]] + "XYZ"[rot_order[1]] + "XYZ"[rot_order[2]] - return tuple(eul.to_matrix().to_euler()) - ''' - - -def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): +def read_bvh(context, file_path, rotate_mode='XYZ', global_scale=1.0): # File loading stuff # Open the file for importing file = open(file_path, 'rU') @@ -105,9 +96,7 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): # Split by whitespace. file_lines = [ll for ll in [l.split() for l in file_lines] if ll] - # Create Hirachy as empties - if file_lines[0][0].lower() == 'hierarchy': #print 'Importing the BVH Hierarchy for:', file_path pass @@ -119,9 +108,8 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): channelIndex = -1 - - lineIdx = 0 # An index for the file. - while lineIdx < len(file_lines) -1: + lineIdx = 0 # An index for the file. + while lineIdx < len(file_lines) - 1: #... if file_lines[lineIdx][0].lower() == 'root' or file_lines[lineIdx][0].lower() == 'joint': @@ -137,9 +125,9 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): #print '%snode: %s, parent: %s' % (len(bvh_nodes_serial) * ' ', name, bvh_nodes_serial[-1]) - lineIdx += 2 # Incriment to the next line (Offset) - rest_head_local = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * GLOBAL_SCALE - lineIdx += 1 # Incriment to the next line (Channels) + lineIdx += 2 # Increment to the next line (Offset) + rest_head_local = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * global_scale + lineIdx += 1 # Increment to the next line (Channels) # newChannel[Xposition, Yposition, Zposition, Xrotation, Yrotation, Zrotation] # newChannel references indecies to the motiondata, @@ -150,7 +138,7 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): rot_count = 0 for channel in file_lines[lineIdx][2:]: channel = channel.lower() - channelIndex += 1 # So the index points to the right channel + channelIndex += 1 # So the index points to the right channel if channel == 'xposition': my_channel[0] = channelIndex elif channel == 'yposition': @@ -173,10 +161,9 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): channels = file_lines[lineIdx][2:] - my_parent = bvh_nodes_serial[-1] # account for none - + my_parent = bvh_nodes_serial[-1] # account for none - # Apply the parents offset accumletivly + # Apply the parents offset accumulatively if my_parent is None: rest_head_world = Vector(rest_head_local) else: @@ -188,24 +175,23 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): bvh_nodes_serial.append(bvh_node) # Account for an end node - if file_lines[lineIdx][0].lower() == 'end' and file_lines[lineIdx][1].lower() == 'site': # There is somtimes a name after 'End Site' but we will ignore it. - lineIdx += 2 # Incriment to the next line (Offset) - rest_tail = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * GLOBAL_SCALE + if file_lines[lineIdx][0].lower() == 'end' and file_lines[lineIdx][1].lower() == 'site': # There is sometimes a name after 'End Site' but we will ignore it. + lineIdx += 2 # Increment to the next line (Offset) + rest_tail = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * global_scale bvh_nodes_serial[-1].rest_tail_world = bvh_nodes_serial[-1].rest_head_world + rest_tail bvh_nodes_serial[-1].rest_tail_local = bvh_nodes_serial[-1].rest_head_local + rest_tail - - # Just so we can remove the Parents in a uniform way- End end never has kids + # Just so we can remove the Parents in a uniform way- End has kids # so this is a placeholder bvh_nodes_serial.append(None) - if len(file_lines[lineIdx]) == 1 and file_lines[lineIdx][0] == '}': # == ['}'] - bvh_nodes_serial.pop() # Remove the last item + if len(file_lines[lineIdx]) == 1 and file_lines[lineIdx][0] == '}': # == ['}'] + bvh_nodes_serial.pop() # Remove the last item if len(file_lines[lineIdx]) == 1 and file_lines[lineIdx][0].lower() == 'motion': #print '\nImporting motion data' - lineIdx += 3 # Set the cursor to the first frame + lineIdx += 3 # Set the cursor to the first frame break lineIdx += 1 @@ -226,21 +212,23 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): channels = bvh_node.channels anim_data = bvh_node.anim_data if channels[0] != -1: - lx = GLOBAL_SCALE * float(line[channels[0]]) + lx = global_scale * float(line[channels[0]]) if channels[1] != -1: - ly = GLOBAL_SCALE * float(line[channels[1]]) + ly = global_scale * float(line[channels[1]]) if channels[2] != -1: - lz = GLOBAL_SCALE * float(line[channels[2]]) + lz = global_scale * float(line[channels[2]]) if channels[3] != -1 or channels[4] != -1 or channels[5] != -1: - rx, ry, rz = float(line[channels[3]]), float(line[channels[4]]), float(line[channels[5]]) - if ROT_MODE != 'NATIVE': - rx, ry, rz = eulerRotate(radians(rx), radians(ry), radians(rz), bvh_node.rot_order) - else: - rx, ry, rz = radians(rx), radians(ry), radians(rz) + rot = radians(float(line[channels[3]])), \ + radians(float(line[channels[4]])), \ + radians(float(line[channels[5]])), + + # apply rotation order and convert to XYZ + # note that the rot_order_str is reversed. + rx, ry, rz = Euler(rot, bvh_node.rot_order_str[::-1]).to_matrix().to_euler('XYZ') # Done importing motion data # anim_data.append((lx, ly, lz, rx, ry, rz)) @@ -279,9 +267,9 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): bvh_node.rest_tail_local = rest_tail_local * (1.0 / len(bvh_node.children)) # Make sure tail isnt the same location as the head. - if (bvh_node.rest_tail_local - bvh_node.rest_head_local).length <= 0.001 * GLOBAL_SCALE: - bvh_node.rest_tail_local.y = bvh_node.rest_tail_local.y + GLOBAL_SCALE / 10 - bvh_node.rest_tail_world.y = bvh_node.rest_tail_world.y + GLOBAL_SCALE / 10 + if (bvh_node.rest_tail_local - bvh_node.rest_head_local).length <= 0.001 * global_scale: + bvh_node.rest_tail_local.y = bvh_node.rest_tail_local.y + global_scale / 10 + bvh_node.rest_tail_world.y = bvh_node.rest_tail_world.y + global_scale / 10 return bvh_nodes @@ -307,7 +295,7 @@ def bvh_node_dict2objects(context, bvh_nodes, IMPORT_START_FRAME=1, IMPORT_LOOP= # Parent the objects for bvh_node in bvh_nodes.values(): - bvh_node.temp.makeParent([bvh_node_child.temp for bvh_node_child in bvh_node.children], 1, 0) # ojbs, noninverse, 1 = not fast. + bvh_node.temp.makeParent([bvh_node_child.temp for bvh_node_child in bvh_node.children], 1, 0) # ojbs, noninverse, 1 = not fast. # Offset for bvh_node in bvh_nodes.values(): @@ -318,7 +306,7 @@ def bvh_node_dict2objects(context, bvh_nodes, IMPORT_START_FRAME=1, IMPORT_LOOP= for name, bvh_node in bvh_nodes.items(): if not bvh_node.children: ob_end = add_ob(name + '_end') - bvh_node.temp.makeParent([ob_end], 1, 0) # ojbs, noninverse, 1 = not fast. + bvh_node.temp.makeParent([ob_end], 1, 0) # ojbs, noninverse, 1 = not fast. ob_end.loc = bvh_node.rest_tail_local @@ -334,13 +322,13 @@ def bvh_node_dict2objects(context, bvh_nodes, IMPORT_START_FRAME=1, IMPORT_LOOP= bvh_node.temp.rot = rx, ry, rz - bvh_node.temp.insertIpoKey(Blender.Object.IpoKeyTypes.LOCROT) # XXX invalid + bvh_node.temp.insertIpoKey(Blender.Object.IpoKeyTypes.LOCROT) # XXX invalid scn.update(1) return objects -def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAME=1, IMPORT_LOOP=False): +def bvh_node_dict2armature(context, bvh_nodes, rotate_mode='XYZ', IMPORT_START_FRAME=1, IMPORT_LOOP=False): if IMPORT_START_FRAME < 1: IMPORT_START_FRAME = 1 @@ -396,7 +384,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM if (bone.head - bone.tail).length < 0.001: if bvh_node.parent: ofs = bvh_node.parent.rest_head_local - bvh_node.parent.rest_tail_local - if ofs.length: # is our parent zero length also?? unlikely + if ofs.length: # is our parent zero length also?? unlikely bone.tail = bone.tail + ofs else: bone.tail.y = bone.tail.y + average_bone_length @@ -436,31 +424,23 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM pose = arm_ob.pose pose_bones = pose.bones - if ROT_MODE == 'NATIVE': - eul_order_lookup = {\ - (0, 1, 2): 'XYZ', - (0, 2, 1): 'XZY', - (1, 0, 2): 'YXZ', - (1, 2, 0): 'YZX', - (2, 0, 1): 'ZXY', - (2, 1, 0): 'ZYX'} - + if rotate_mode == 'NATIVE': for bvh_node in bvh_nodes.values(): - bone_name = bvh_node.temp # may not be the same name as the bvh_node, could have been shortened. + bone_name = bvh_node.temp # may not be the same name as the bvh_node, could have been shortened. pose_bone = pose_bones[bone_name] - pose_bone.rotation_mode = eul_order_lookup[tuple(bvh_node.rot_order)] + pose_bone.rotation_mode = bvh_node.rot_order_str - elif ROT_MODE != 'QUATERNION': + elif rotate_mode != 'QUATERNION': for pose_bone in pose_bones: - pose_bone.rotation_mode = ROT_MODE + pose_bone.rotation_mode = rotate_mode else: # Quats default pass context.scene.update() - bpy.ops.pose.select_all() # set - bpy.ops.anim.keyframe_insert_menu(type=-4) # XXX - -4 ??? + bpy.ops.pose.select_all() # set + bpy.ops.anim.keyframe_insert_menu(type=-4) # XXX - -4 ??? #XXX action = Blender.Armature.NLA.NewAction("Action") @@ -475,7 +455,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM # Replace the bvh_node.temp (currently an editbone) # With a tuple (pose_bone, armature_bone, bone_rest_matrix, bone_rest_matrix_inv) for bvh_node in bvh_nodes.values(): - bone_name = bvh_node.temp # may not be the same name as the bvh_node, could have been shortened. + bone_name = bvh_node.temp # may not be the same name as the bvh_node, could have been shortened. pose_bone = pose_bones[bone_name] rest_bone = arm_data.bones[bone_name] bone_rest_matrix = rest_bone.matrix_local.rotation_part() @@ -494,11 +474,11 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM # KEYFRAME METHOD, SLOW, USE IPOS DIRECT # TODO: use f-point samples instead (Aligorith) - if ROT_MODE != 'QUATERNION': + if rotate_mode != 'QUATERNION': prev_euler = [Euler() for i in range(len(bvh_nodes))] # Animate the data, the last used bvh_node will do since they all have the same number of frames - for frame_current in range(len(bvh_node.anim_data)-1): # skip the first frame (rest frame) + for frame_current in range(len(bvh_node.anim_data) - 1): # skip the first frame (rest frame) # print frame_current # if frame_current==40: # debugging @@ -513,7 +493,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM bone_rotation_matrix = Euler((rx, ry, rz)).to_matrix().resize4x4() bone_rotation_matrix = bone_rest_matrix_inv * bone_rotation_matrix * bone_rest_matrix - if ROT_MODE == 'QUATERNION': + if rotate_mode == 'QUATERNION': pose_bone.rotation_quaternion = bone_rotation_matrix.to_quat() else: euler = bone_rotation_matrix.to_euler(pose_bone.rotation_mode, prev_euler[i]) @@ -526,7 +506,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM if bvh_node.has_loc: pose_bone.keyframe_insert("location") if bvh_node.has_rot: - if ROT_MODE == 'QUATERNION': + if rotate_mode == 'QUATERNION': pose_bone.keyframe_insert("rotation_quaternion") else: pose_bone.keyframe_insert("rotation_euler") @@ -537,7 +517,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM for cu in action.fcurves: if IMPORT_LOOP: - pass # 2.5 doenst have cyclic now? + pass # 2.5 doenst have cyclic now? for bez in cu.keyframe_points: bez.interpolation = 'LINEAR' @@ -545,24 +525,24 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM return arm_ob -def load(operator, context, filepath="", rotate_mode='NATIVE', scale=1.0, use_cyclic=False, frame_start=1): +def load(operator, context, filepath="", rotate_mode='NATIVE', global_scale=1.0, use_cyclic=False, frame_start=1): import time t1 = time.time() print('\tparsing bvh %r...' % filepath, end="") bvh_nodes = read_bvh(context, filepath, - ROT_MODE=rotate_mode, - GLOBAL_SCALE=scale) + rotate_mode=rotate_mode, + global_scale=global_scale) print('%.4f' % (time.time() - t1)) t1 = time.time() print('\timporting to blender...', end="") bvh_node_dict2armature(context, bvh_nodes, - ROT_MODE=rotate_mode, + rotate_mode=rotate_mode, IMPORT_START_FRAME=frame_start, IMPORT_LOOP=use_cyclic) print('Done in %.4f\n' % (time.time() - t1)) - + return {'FINISHED'} diff --git a/release/scripts/op/io_mesh_ply/export_ply.py b/release/scripts/op/io_mesh_ply/export_ply.py index e08f0105a44..271a2d23207 100644 --- a/release/scripts/op/io_mesh_ply/export_ply.py +++ b/release/scripts/op/io_mesh_ply/export_ply.py @@ -32,14 +32,13 @@ import os def save(operator, context, filepath="", use_modifiers=True, use_normals=True, use_uv_coords=True, use_colors=True): - + def rvec3d(v): return round(v[0], 6), round(v[1], 6), round(v[2], 6) - def rvec2d(v): return round(v[0], 6), round(v[1], 6) - + scene = context.scene obj = context.object @@ -94,15 +93,14 @@ def save(operator, context, filepath="", use_modifiers=True, use_normals=True, u # incase color = uvcoord = uvcoord_key = normal = normal_key = None - mesh_verts = mesh.vertices # save a lookup - ply_verts = [] # list of dictionaries + mesh_verts = mesh.vertices # save a lookup + ply_verts = [] # list of dictionaries # vdict = {} # (index, normal, uv) -> new index vdict = [{} for i in range(len(mesh_verts))] ply_faces = [[] for f in range(len(mesh.faces))] vert_count = 0 for i, f in enumerate(mesh.faces): - smooth = f.use_smooth if not smooth: normal = tuple(f.normal) @@ -110,7 +108,7 @@ def save(operator, context, filepath="", use_modifiers=True, use_normals=True, u if faceUV: uv = active_uv_layer[i] - uv = uv.uv1, uv.uv2, uv.uv3, uv.uv4 # XXX - crufty :/ + uv = uv.uv1, uv.uv2, uv.uv3, uv.uv4 # XXX - crufty :/ if vertexColors: col = active_col_layer[i] col = col.color1[:], col.color2[:], col.color3[:], col.color4[:] @@ -136,13 +134,12 @@ def save(operator, context, filepath="", use_modifiers=True, use_normals=True, u color = col[j] color = int(color[0] * 255.0), int(color[1] * 255.0), int(color[2] * 255.0) - key = normal_key, uvcoord_key, color vdict_local = vdict[vidx] - pf_vidx = vdict_local.get(key) # Will be None initially + pf_vidx = vdict_local.get(key) # Will be None initially - if pf_vidx is None: # same as vdict_local.has_key(key) + if pf_vidx is None: # same as vdict_local.has_key(key) pf_vidx = vdict_local[key] = vert_count ply_verts.append((vidx, normal, uvcoord, color)) vert_count += 1 @@ -176,13 +173,13 @@ def save(operator, context, filepath="", use_modifiers=True, use_normals=True, u file.write('end_header\n') for i, v in enumerate(ply_verts): - file.write('%.6f %.6f %.6f ' % mesh_verts[v[0]].co[:]) # co + file.write('%.6f %.6f %.6f ' % mesh_verts[v[0]].co[:]) # co if use_normals: - file.write('%.6f %.6f %.6f ' % v[1]) # no + file.write('%.6f %.6f %.6f ' % v[1]) # no if use_uv_coords: - file.write('%.6f %.6f ' % v[2]) # uv + file.write('%.6f %.6f ' % v[2]) # uv if use_colors: - file.write('%u %u %u' % v[3]) # col + file.write('%u %u %u' % v[3]) # col file.write('\n') for pf in ply_faces: @@ -202,5 +199,5 @@ def save(operator, context, filepath="", use_modifiers=True, use_normals=True, u if is_editmode: Blender.Window.EditMode(1, '', 0) """ - + return {'FINISHED'} diff --git a/release/scripts/op/io_scene_3ds/__init__.py b/release/scripts/op/io_scene_3ds/__init__.py index 51cec065ac0..d12dc0144e8 100644 --- a/release/scripts/op/io_scene_3ds/__init__.py +++ b/release/scripts/op/io_scene_3ds/__init__.py @@ -66,9 +66,11 @@ class Export3DS(bpy.types.Operator, ExportHelper): def menu_func_export(self, context): self.layout.operator(Export3DS.bl_idname, text="3D Studio (.3ds)") + def menu_func_import(self, context): self.layout.operator(Import3DS.bl_idname, text="3D Studio (.3ds)") + def register(): bpy.types.INFO_MT_file_import.append(menu_func_import) bpy.types.INFO_MT_file_export.append(menu_func_export) @@ -84,4 +86,3 @@ def unregister(): if __name__ == "__main__": register() - diff --git a/release/scripts/op/io_scene_3ds/export_3ds.py b/release/scripts/op/io_scene_3ds/export_3ds.py index 00b0f879dc2..65ed8fbce85 100644 --- a/release/scripts/op/io_scene_3ds/export_3ds.py +++ b/release/scripts/op/io_scene_3ds/export_3ds.py @@ -110,7 +110,6 @@ def sane_name(name): def uv_key(uv): return round(uv[0], 6), round(uv[1], 6) -# return round(uv.x, 6), round(uv.y, 6) # size defines: SZ_SHORT = 2 diff --git a/release/scripts/op/io_scene_fbx/export_fbx.py b/release/scripts/op/io_scene_fbx/export_fbx.py index 20b574b09f0..4e3ca31e7ef 100644 --- a/release/scripts/op/io_scene_fbx/export_fbx.py +++ b/release/scripts/op/io_scene_fbx/export_fbx.py @@ -542,7 +542,7 @@ def save(operator, context, filepath="", print('\nFBX export starting... %r' % filepath) start_time = time.clock() try: - file = open(filepath, 'w') + file = open(filepath, 'w', encoding='utf8') except: return False @@ -1636,13 +1636,13 @@ def save(operator, context, filepath="", # workaround, since uf.uv iteration is wrong atm for uv in uf.uv: if i==-1: - file.write('%.6f,%.6f' % tuple(uv)) + file.write('%.6f,%.6f' % uv[:]) i=0 else: if i==7: file.write('\n\t\t\t ') i=0 - file.write(',%.6f,%.6f' % tuple(uv)) + file.write(',%.6f,%.6f' % uv[:]) i+=1 ii+=1 # One more UV diff --git a/release/scripts/op/io_scene_obj/__init__.py b/release/scripts/op/io_scene_obj/__init__.py index b87c6b44347..2c1691fc333 100644 --- a/release/scripts/op/io_scene_obj/__init__.py +++ b/release/scripts/op/io_scene_obj/__init__.py @@ -40,19 +40,18 @@ class ImportOBJ(bpy.types.Operator, ImportHelper): filename_ext = ".obj" filter_glob = StringProperty(default="*.obj;*.mtl", options={'HIDDEN'}) - CREATE_SMOOTH_GROUPS = BoolProperty(name="Smooth Groups", description="Surround smooth groups by sharp edges", default= True) - CREATE_FGONS = BoolProperty(name="NGons as FGons", description="Import faces with more then 4 verts as fgons", default= True) - CREATE_EDGES = BoolProperty(name="Lines as Edges", description="Import lines and faces with 2 verts as edge", default= True) - SPLIT_OBJECTS = BoolProperty(name="Object", description="Import OBJ Objects into Blender Objects", default= True) - SPLIT_GROUPS = BoolProperty(name="Group", description="Import OBJ Groups into Blender Objects", default= True) + CREATE_SMOOTH_GROUPS = BoolProperty(name="Smooth Groups", description="Surround smooth groups by sharp edges", default=True) + CREATE_FGONS = BoolProperty(name="NGons as FGons", description="Import faces with more then 4 verts as fgons", default=True) + CREATE_EDGES = BoolProperty(name="Lines as Edges", description="Import lines and faces with 2 verts as edge", default=True) + SPLIT_OBJECTS = BoolProperty(name="Object", description="Import OBJ Objects into Blender Objects", default=True) + SPLIT_GROUPS = BoolProperty(name="Group", description="Import OBJ Groups into Blender Objects", default=True) # old comment: only used for user feedback # disabled this option because in old code a handler for it disabled SPLIT* params, it's not passed to load_obj # KEEP_VERT_ORDER = BoolProperty(name="Keep Vert Order", description="Keep vert and face order, disables split options, enable for morph targets", default= True) - ROTATE_X90 = BoolProperty(name="-X90", description="Rotate X 90.", default= True) + ROTATE_X90 = BoolProperty(name="-X90", description="Rotate X 90.", default=True) CLAMP_SIZE = FloatProperty(name="Clamp Scale", description="Clamp the size to this maximum (Zero to Disable)", min=0.0, max=1000.0, soft_min=0.0, soft_max=1000.0, default=0.0) - POLYGROUPS = BoolProperty(name="Poly Groups", description="Import OBJ groups as vertex groups.", default= True) - IMAGE_SEARCH = BoolProperty(name="Image Search", description="Search subdirs for any assosiated images (Warning, may be slow)", default= True) - + POLYGROUPS = BoolProperty(name="Poly Groups", description="Import OBJ groups as vertex groups.", default=True) + IMAGE_SEARCH = BoolProperty(name="Image Search", description="Search subdirs for any assosiated images (Warning, may be slow)", default=True) def execute(self, context): # print("Selected: " + context.active_object.name) @@ -74,19 +73,19 @@ class ExportOBJ(bpy.types.Operator, ExportHelper): # to the class instance from the operator settings before calling. # context group - use_selection = BoolProperty(name="Selection Only", description="Export selected objects only", default= False) - use_all_scenes = BoolProperty(name="All Scenes", description="", default= False) - use_animation = BoolProperty(name="Animation", description="", default= False) + use_selection = BoolProperty(name="Selection Only", description="Export selected objects only", default=False) + use_all_scenes = BoolProperty(name="All Scenes", description="", default=False) + use_animation = BoolProperty(name="Animation", description="", default=False) # object group - use_modifiers = BoolProperty(name="Apply Modifiers", description="Apply modifiers (preview resolution)", default= True) - use_rotate_x90 = BoolProperty(name="Rotate X90", description="", default= True) + use_modifiers = BoolProperty(name="Apply Modifiers", description="Apply modifiers (preview resolution)", default=True) + use_rotate_x90 = BoolProperty(name="Rotate X90", description="", default=True) # extra data group use_edges = BoolProperty(name="Edges", description="", default=True) use_normals = BoolProperty(name="Normals", description="", default=False) use_hq_normals = BoolProperty(name="High Quality Normals", description="", default=True) - use_uvs = BoolProperty(name="UVs", description="", default= True) + use_uvs = BoolProperty(name="UVs", description="", default=True) use_materials = BoolProperty(name="Materials", description="", default=True) copy_images = BoolProperty(name="Copy Images", description="", default=False) use_triangles = BoolProperty(name="Triangulate", description="", default=False) @@ -94,11 +93,10 @@ class ExportOBJ(bpy.types.Operator, ExportHelper): use_nurbs = BoolProperty(name="Nurbs", description="", default=False) # grouping group - use_blen_objects = BoolProperty(name="Objects as OBJ Objects", description="", default= True) - group_by_object = BoolProperty(name="Objects as OBJ Groups ", description="", default= False) - group_by_material = BoolProperty(name="Material Groups", description="", default= False) - keep_vertex_order = BoolProperty(name="Keep Vertex Order", description="", default= False) - + use_blen_objects = BoolProperty(name="Objects as OBJ Objects", description="", default=True) + group_by_object = BoolProperty(name="Objects as OBJ Groups ", description="", default=False) + group_by_material = BoolProperty(name="Material Groups", description="", default=False) + keep_vertex_order = BoolProperty(name="Keep Vertex Order", description="", default=False) def execute(self, context): from . import export_obj @@ -117,6 +115,7 @@ def register(): bpy.types.INFO_MT_file_import.append(menu_func_import) bpy.types.INFO_MT_file_export.append(menu_func_export) + def unregister(): bpy.types.INFO_MT_file_import.remove(menu_func_import) bpy.types.INFO_MT_file_export.remove(menu_func_export) diff --git a/release/scripts/op/io_scene_obj/export_obj.py b/release/scripts/op/io_scene_obj/export_obj.py index f3852666ac4..0b80b52f21d 100644 --- a/release/scripts/op/io_scene_obj/export_obj.py +++ b/release/scripts/op/io_scene_obj/export_obj.py @@ -59,9 +59,8 @@ def write_mtl(scene, filepath, copy_images, mtl_dict): return rel - file = open(filepath, "w") - # XXX -# file.write('# Blender MTL File: %s\n' % Blender.Get('filepath').split('\\')[-1].split('/')[-1]) + file = open(filepath, "w", encoding='utf8') + file.write('# Blender MTL File: %r\n' % os.path.basename(bpy.data.filepath)) file.write('# Material Count: %i\n' % len(mtl_dict)) # Write material/image combinations we have used. for key, (mtl_mat_name, mat, img) in mtl_dict.items(): @@ -137,8 +136,6 @@ def copy_file(source, dest): def copy_images(dest_dir): if dest_dir[-1] != os.sep: dest_dir += os.sep -# if dest_dir[-1] != sys.sep: -# dest_dir += sys.sep # Get unique image names uniqueImages = {} @@ -284,7 +281,6 @@ def write_file(filepath, objects, scene, def veckey2d(v): return round(v[0], 6), round(v[1], 6) - # return round(v.x, 6), round(v.y, 6) def findVertexGroupName(face, vWeightMap): """ @@ -503,7 +499,7 @@ def write_file(filepath, objects, scene, uv_face_mapping[f_index][uv_index] = uv_dict[uvkey] except: uv_face_mapping[f_index][uv_index] = uv_dict[uvkey] = len(uv_dict) - file.write('vt %.6f %.6f\n' % tuple(uv)) + file.write('vt %.6f %.6f\n' % uv[:]) uv_unique_count = len(uv_dict) # del uv, uvkey, uv_dict, f_index, uv_index @@ -546,18 +542,10 @@ def write_file(filepath, objects, scene, for f, f_index in face_index_pairs: f_smooth= f.use_smooth f_mat = min(f.material_index, len(materialNames)-1) -# f_mat = min(f.mat, len(materialNames)-1) - if faceuv: + if faceuv: tface = uv_layer[f_index] - f_image = tface.image - f_uv = tface.uv - # f_uv= [tface.uv1, tface.uv2, tface.uv3] - # if len(f.vertices) == 4: - # f_uv.append(tface.uv4) -# f_image = f.image -# f_uv= f.uv # MAKE KEY if faceuv and f_image: # Object is always true. @@ -768,7 +756,7 @@ def _write(context, filepath, else: objects = scene.objects - full_path= ''.join(context_name) + full_path = ''.join(context_name) # erm... bit of a problem here, this can overwrite files when exporting frames. not too bad. # EXPORT THE FILE. @@ -789,7 +777,6 @@ def _write(context, filepath, EXPORT_POLYGROUPS, EXPORT_CURVE_AS_NURBS) - scene.frame_set(orig_frame, 0.0) # Restore old active scene. @@ -825,7 +812,7 @@ def save(operator, context, filepath="", use_animation=False, ): - _write(context, filepath, + _write(context, filepath, EXPORT_TRI=use_triangles, EXPORT_EDGES=use_edges, EXPORT_NORMALS=use_normals, diff --git a/release/scripts/op/io_scene_obj/import_obj.py b/release/scripts/op/io_scene_obj/import_obj.py index 0a97d08bf99..c0c64c3d9b4 100644 --- a/release/scripts/op/io_scene_obj/import_obj.py +++ b/release/scripts/op/io_scene_obj/import_obj.py @@ -35,7 +35,7 @@ import os import time import bpy import mathutils -from mathutils.geometry import PolyFill +from mathutils.geometry import tesselate_polygon from io_utils import load_image, unpack_list, unpack_face_list @@ -84,7 +84,7 @@ def BPyMesh_ngon(from_data, indices, PREF_FIX_LOOPS= True): if verts[i][1]==verts[i-1][0]: verts.pop(i-1) - fill= PolyFill([verts]) + fill= fill_polygon([verts]) else: ''' @@ -192,7 +192,7 @@ def BPyMesh_ngon(from_data, indices, PREF_FIX_LOOPS= True): vert_map[i+ii]= vert[2] ii+=len(verts) - fill= PolyFill([ [v[0] for v in loop] for loop in loop_list ]) + fill= tesselate_polygon([ [v[0] for v in loop] for loop in loop_list ]) #draw_loops(loop_list) #raise 'done loop' # map to original indicies diff --git a/release/scripts/op/io_scene_x3d/export_x3d.py b/release/scripts/op/io_scene_x3d/export_x3d.py index 72c69152d54..e9b83b0cccd 100644 --- a/release/scripts/op/io_scene_x3d/export_x3d.py +++ b/release/scripts/op/io_scene_x3d/export_x3d.py @@ -95,7 +95,7 @@ class x3d_class: self.filepath = filepath[:-1] # remove trailing z if self.file is None: - self.file = open(self.filepath, "w") + self.file = open(self.filepath, "w", encoding='utf8') self.bNav=0 self.nodeID=0 @@ -537,37 +537,28 @@ class x3d_class: self.writeIndented("\n", -1) def writeTextureCoordinates(self, mesh): - texCoordList=[] - texIndexList=[] - j=0 - - for face in mesh.uv_textures.active.data: - # for face in mesh.faces: - # workaround, since tface.uv iteration is wrong atm - uvs = face.uv - # uvs = [face.uv1, face.uv2, face.uv3, face.uv4] if face.vertices[3] else [face.uv1, face.uv2, face.uv3] - - for uv in uvs: - # for uv in face.uv: - texIndexList.append(j) - texCoordList.append(uv) - j=j+1 - texIndexList.append(-1) - if self.writingtexture == 0: self.file.write("\n\t\t\ttexCoordIndex=\"") - texIndxStr="" - for i in range(len(texIndexList)): - texIndxStr = texIndxStr + "%d, " % texIndexList[i] - if texIndexList[i]==-1: - self.file.write(texIndxStr) - texIndxStr="" - self.file.write("\"\n\t\t\t") + + fw = self.file.write + j = 0 + for face in mesh.uv_textures.active.data: + if len(face.uv) == 4: + fw("%d %d %d %d -1, " % (j, j + 1, j + 2, j + 3)) + j += 4 + else: + fw("%d %d %d -1, " % (j, j + 1, j + 2)) + j += 3 + + fw("\"\n\t\t\t") else: + texCoordList = (uv for fuv in mesh.uv_textures.active.data for uv in fuv.uv) + self.writeIndented("<TextureCoordinate point=\"", 1) - for i in range(len(texCoordList)): - self.file.write("%s %s, " % (round(texCoordList[i][0],self.tp), round(texCoordList[i][1],self.tp))) - self.file.write("\" />") + fw = self.file.write + for uv in texCoordList: + fw("%.4f %.4f, " % uv[:]) + fw("\" />") self.writeIndented("\n", -1) def writeFaceColors(self, mesh): diff --git a/release/scripts/op/io_shape_mdd/__init__.py b/release/scripts/op/io_shape_mdd/__init__.py index 1cd1ff5dce1..a48d16d87a6 100644 --- a/release/scripts/op/io_shape_mdd/__init__.py +++ b/release/scripts/op/io_shape_mdd/__init__.py @@ -58,11 +58,12 @@ class ImportMDD(bpy.types.Operator, ImportHelper): from . import import_mdd return import_mdd.load(self, context, **self.as_keywords(ignore=("filter_glob",))) + class ExportMDD(bpy.types.Operator, ExportHelper): '''Animated mesh to MDD vertex keyframe file''' bl_idname = "export_shape.mdd" bl_label = "Export MDD" - + filename_ext = ".mdd" filter_glob = StringProperty(default="*.mdd", options={'HIDDEN'}) diff --git a/release/scripts/op/io_shape_mdd/export_mdd.py b/release/scripts/op/io_shape_mdd/export_mdd.py index 3c57ae5afa0..7fb11facf58 100644 --- a/release/scripts/op/io_shape_mdd/export_mdd.py +++ b/release/scripts/op/io_shape_mdd/export_mdd.py @@ -39,7 +39,7 @@ def zero_file(filepath): If a file fails, this replaces it with 1 char, better not remove it? ''' file = open(filepath, 'w') - file.write('\n') # apparently macosx needs some data in a blank file? + file.write('\n') # apparently macosx needs some data in a blank file? file.close() @@ -84,13 +84,13 @@ def save(operator, context, filepath="", frame_start=1, frame_end=300, fps=25): numframes = frame_end - frame_start + 1 fps = float(fps) - f = open(filepath, 'wb') #no Errors yet:Safe to create file + f = open(filepath, 'wb') # no Errors yet:Safe to create file # Write the header f.write(pack(">2i", numframes, numverts)) # Write the frame times (should we use the time IPO??) - f.write(pack(">%df" % (numframes), *[frame / fps for frame in range(numframes)])) # seconds + f.write(pack(">%df" % (numframes), *[frame / fps for frame in range(numframes)])) # seconds #rest frame needed to keep frames in sync """ @@ -102,7 +102,7 @@ def save(operator, context, filepath="", frame_start=1, frame_end=300, fps=25): me.transform(mat_flip * obj.matrix_world) f.write(pack(">%df" % (numverts * 3), *[axis for v in me.vertices for axis in v.co])) - for frame in range(frame_start, frame_end + 1):#in order to start at desired frame + for frame in range(frame_start, frame_end + 1): # in order to start at desired frame """ Blender.Set('curframe', frame) me_tmp.getFromObject(obj.name) @@ -127,5 +127,5 @@ def save(operator, context, filepath="", frame_start=1, frame_end=300, fps=25): Blender.Set('curframe', orig_frame) """ scene.frame_set(orig_frame) - + return {'FINISHED'} diff --git a/release/scripts/op/io_shape_mdd/import_mdd.py b/release/scripts/op/io_shape_mdd/import_mdd.py index 990c1a56619..02be14e97fa 100644 --- a/release/scripts/op/io_shape_mdd/import_mdd.py +++ b/release/scripts/op/io_shape_mdd/import_mdd.py @@ -36,10 +36,10 @@ from struct import unpack def load(operator, context, filepath, frame_start=0, frame_step=1): - + scene = context.scene obj = context.object - + print('\n\nimporting mdd %r' % filepath) if bpy.ops.object.mode_set.poll(): @@ -68,37 +68,34 @@ def load(operator, context, filepath, frame_start=0, frame_step=1): new_shapekey.name = ("frame_%.4d" % fr) new_shapekey_name = new_shapekey.name - obj.active_shape_key_index = len(obj.data.shape_keys.keys)-1 - index = len(obj.data.shape_keys.keys)-1 + obj.active_shape_key_index = len(obj.data.shape_keys.keys) - 1 + index = len(obj.data.shape_keys.keys) - 1 obj.show_only_shape_key = True - verts = obj.data.shape_keys.keys[len(obj.data.shape_keys.keys)-1].data - + verts = obj.data.shape_keys.keys[len(obj.data.shape_keys.keys) - 1].data - for v in verts: # 12 is the size of 3 floats + for v in verts: # 12 is the size of 3 floats v.co[:] = unpack('>3f', file.read(12)) #me.update() obj.show_only_shape_key = False - # insert keyframes shape_keys = obj.data.shape_keys scene.frame_current -= 1 obj.data.shape_keys.keys[index].value = 0.0 - shape_keys.keys[len(obj.data.shape_keys.keys)-1].keyframe_insert("value") + shape_keys.keys[len(obj.data.shape_keys.keys) - 1].keyframe_insert("value") scene.frame_current += 1 obj.data.shape_keys.keys[index].value = 1.0 - shape_keys.keys[len(obj.data.shape_keys.keys)-1].keyframe_insert("value") + shape_keys.keys[len(obj.data.shape_keys.keys) - 1].keyframe_insert("value") scene.frame_current += 1 obj.data.shape_keys.keys[index].value = 0.0 - shape_keys.keys[len(obj.data.shape_keys.keys)-1].keyframe_insert("value") + shape_keys.keys[len(obj.data.shape_keys.keys) - 1].keyframe_insert("value") obj.data.update() - for i in range(frames): UpdateMesh(obj, i) diff --git a/release/scripts/op/object.py b/release/scripts/op/object.py index 01e6a5f3cd0..15da8f107a2 100644 --- a/release/scripts/op/object.py +++ b/release/scripts/op/object.py @@ -257,7 +257,7 @@ class ShapeTransfer(bpy.types.Operator): ob.active_shape_key_index = len(me.shape_keys.keys) - 1 ob.show_only_shape_key = True - from mathutils.geometry import BarycentricTransform + from mathutils.geometry import barycentric_transform from mathutils import Vector if use_clamp and mode == 'OFFSET': @@ -300,38 +300,38 @@ class ShapeTransfer(bpy.types.Operator): for face in me.faces: i1, i2, i3, i4 = face.vertices_raw if i4 != 0: - pt = BarycentricTransform(orig_shape_coords[i1], + pt = barycentric_transform(orig_shape_coords[i1], orig_coords[i4], orig_coords[i1], orig_coords[i2], target_coords[i4], target_coords[i1], target_coords[i2]) median_coords[i1].append(pt) - pt = BarycentricTransform(orig_shape_coords[i2], + pt = barycentric_transform(orig_shape_coords[i2], orig_coords[i1], orig_coords[i2], orig_coords[i3], target_coords[i1], target_coords[i2], target_coords[i3]) median_coords[i2].append(pt) - pt = BarycentricTransform(orig_shape_coords[i3], + pt = barycentric_transform(orig_shape_coords[i3], orig_coords[i2], orig_coords[i3], orig_coords[i4], target_coords[i2], target_coords[i3], target_coords[i4]) median_coords[i3].append(pt) - pt = BarycentricTransform(orig_shape_coords[i4], + pt = barycentric_transform(orig_shape_coords[i4], orig_coords[i3], orig_coords[i4], orig_coords[i1], target_coords[i3], target_coords[i4], target_coords[i1]) median_coords[i4].append(pt) else: - pt = BarycentricTransform(orig_shape_coords[i1], + pt = barycentric_transform(orig_shape_coords[i1], orig_coords[i3], orig_coords[i1], orig_coords[i2], target_coords[i3], target_coords[i1], target_coords[i2]) median_coords[i1].append(pt) - pt = BarycentricTransform(orig_shape_coords[i2], + pt = barycentric_transform(orig_shape_coords[i2], orig_coords[i1], orig_coords[i2], orig_coords[i3], target_coords[i1], target_coords[i2], target_coords[i3]) median_coords[i2].append(pt) - pt = BarycentricTransform(orig_shape_coords[i3], + pt = barycentric_transform(orig_shape_coords[i3], orig_coords[i2], orig_coords[i3], orig_coords[i1], target_coords[i2], target_coords[i3], target_coords[i1]) median_coords[i3].append(pt) @@ -350,12 +350,12 @@ class ShapeTransfer(bpy.types.Operator): n1loc_to = v1_to + target_normals[i1] * edlen_to n2loc_to = v2_to + target_normals[i2] * edlen_to - pt = BarycentricTransform(orig_shape_coords[i1], + pt = barycentric_transform(orig_shape_coords[i1], v2, v1, n1loc, v2_to, v1_to, n1loc_to) median_coords[i1].append(pt) - pt = BarycentricTransform(orig_shape_coords[i2], + pt = barycentric_transform(orig_shape_coords[i2], v1, v2, n2loc, v1_to, v2_to, n2loc_to) median_coords[i2].append(pt) @@ -552,7 +552,6 @@ class IsolateTypeRender(bpy.types.Operator): return {'FINISHED'} - class ClearAllRestrictRender(bpy.types.Operator): '''Reveal all render objects by setting the hide render flag''' bl_idname = "object.hide_render_clear_all" diff --git a/release/scripts/op/object_align.py b/release/scripts/op/object_align.py index fc2c9b2731f..8654fb4db3d 100644 --- a/release/scripts/op/object_align.py +++ b/release/scripts/op/object_align.py @@ -123,21 +123,21 @@ def align_objects(align_x, align_y, align_z, align_mode, relative_to): # Align Mode - if relative_to == 'OPT_4': # Active relative + if relative_to == 'OPT_4': # Active relative if align_mode == 'OPT_1': obj_x = obj_loc[0] - negative_x - size_active_x elif align_mode == 'OPT_3': obj_x = obj_loc[0] - positive_x + size_active_x - else: # Everything else relative + else: # Everything else relative if align_mode == 'OPT_1': obj_x = obj_loc[0] - negative_x elif align_mode == 'OPT_3': obj_x = obj_loc[0] - positive_x - if align_mode == 'OPT_2': # All relative + if align_mode == 'OPT_2': # All relative obj_x = obj_loc[0] - center_x # Relative To @@ -156,26 +156,24 @@ def align_objects(align_x, align_y, align_z, align_mode, relative_to): obj.location[0] = loc_x - if align_y: - # Align Mode - if relative_to == 'OPT_4': # Active relative + if relative_to == 'OPT_4': # Active relative if align_mode == 'OPT_1': obj_y = obj_loc[1] - negative_y - size_active_y elif align_mode == 'OPT_3': obj_y = obj_loc[1] - positive_y + size_active_y - else: # Everything else relative + else: # Everything else relative if align_mode == 'OPT_1': obj_y = obj_loc[1] - negative_y elif align_mode == 'OPT_3': obj_y = obj_loc[1] - positive_y - if align_mode == 'OPT_2': # All relative + if align_mode == 'OPT_2': # All relative obj_y = obj_loc[1] - center_y # Relative To @@ -194,26 +192,23 @@ def align_objects(align_x, align_y, align_z, align_mode, relative_to): obj.location[1] = loc_y - if align_z: - # Align Mode - - if relative_to == 'OPT_4': # Active relative + if relative_to == 'OPT_4': # Active relative if align_mode == 'OPT_1': obj_z = obj_loc[2] - negative_z - size_active_z elif align_mode == 'OPT_3': obj_z = obj_loc[2] - positive_z + size_active_z - else: # Everything else relative + else: # Everything else relative if align_mode == 'OPT_1': obj_z = obj_loc[2] - negative_z elif align_mode == 'OPT_3': obj_z = obj_loc[2] - positive_z - if align_mode == 'OPT_2': # All relative + if align_mode == 'OPT_2': # All relative obj_z = obj_loc[2] - center_z # Relative To diff --git a/release/scripts/op/object_randomize_transform.py b/release/scripts/op/object_randomize_transform.py index ff1af6794ee..8b8070f34bc 100644 --- a/release/scripts/op/object_randomize_transform.py +++ b/release/scripts/op/object_randomize_transform.py @@ -86,6 +86,7 @@ def randomize_selected(seed, delta, loc, rot, scale, scale_even): from bpy.props import * + class RandomizeLocRotSize(bpy.types.Operator): '''Randomize objects loc/rot/scale''' bl_idname = "object.randomize_transform" diff --git a/release/scripts/op/presets.py b/release/scripts/op/presets.py index dd16a4ee5e0..36170fb6283 100644 --- a/release/scripts/op/presets.py +++ b/release/scripts/op/presets.py @@ -29,7 +29,7 @@ class AddPresetBase(): - preset_subdir ''' # bl_idname = "script.preset_base_add" # bl_label = "Add a Python Preset" - bl_options = {'REGISTER'} # only because invoke_props_popup requires. + bl_options = {'REGISTER'} # only because invoke_props_popup requires. name = bpy.props.StringProperty(name="Name", description="Name of the preset, used to make the path name", maxlen=64, default="") remove_active = bpy.props.BoolProperty(default=False, options={'HIDDEN'}) @@ -42,13 +42,13 @@ class AddPresetBase(): def execute(self, context): import os - + if hasattr(self, "pre_cb"): self.pre_cb(context) - + preset_menu_class = getattr(bpy.types, self.preset_menu) - if not self.remove_active: + if not self.remove_active: if not self.name: return {'FINISHED'} @@ -62,7 +62,7 @@ class AddPresetBase(): return {'CANCELLED'} filepath = os.path.join(target_path, filename) + ".py" - + if hasattr(self, "add"): self.add(context, filepath) else: @@ -352,6 +352,7 @@ class WM_MT_operator_presets(bpy.types.Menu): preset_operator = "script.execute_preset" + def register(): pass diff --git a/release/scripts/op/uv.py b/release/scripts/op/uv.py index e362d0932c3..1b6c036b2d2 100644 --- a/release/scripts/op/uv.py +++ b/release/scripts/op/uv.py @@ -21,11 +21,12 @@ import bpy from bpy.props import * + def write_svg(fw, mesh, image_width, image_height, face_iter): # for making an XML compatible string from xml.sax.saxutils import escape from os.path import basename - + fw('<?xml version="1.0" standalone="no"?>\n') fw('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" \n') fw(' "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n') @@ -126,7 +127,6 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): for f in mesh_source.faces: tot_verts += len(f.vertices) - faces_source = mesh_source.faces # get unique UV's incase there are many overlapping which slow down filling. @@ -145,7 +145,6 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): mesh_new_materials = [] mesh_new_face_vertices = [] - current_vert = 0 for face_data in face_hash_3: @@ -167,7 +166,7 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): mesh.faces.foreach_set("material_index", mesh_new_materials) mesh.update(calc_edges=True) - + obj_solid = bpy.data.objects.new("uv_temp_solid", mesh) obj_wire = bpy.data.objects.new("uv_temp_wire", mesh) base_solid = scene.objects.link(obj_solid) @@ -177,11 +176,10 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): # place behind the wire obj_solid.location = 0, 0, -1 - + obj_wire.material_slots[0].link = 'OBJECT' obj_wire.material_slots[0].material = material_wire - - + # setup the camera cam = bpy.data.cameras.new("uv_temp") cam.type = 'ORTHO' @@ -204,7 +202,6 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): material_wire.use_shadeless = True material_wire.diffuse_color = 0, 0, 0 - # scene render settings scene.render.use_raytrace = False scene.render.alpha_mode = 'STRAIGHT' @@ -217,11 +214,11 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): if image_width > image_height: scene.render.pixel_aspect_y = image_width / image_height elif image_width < image_height: - scene.render.pixel_aspect_x = image_height /image_width - + scene.render.pixel_aspect_x = image_height / image_width + scene.frame_start = 1 scene.frame_end = 1 - + scene.render.file_format = 'PNG' scene.render.filepath = filepath @@ -236,13 +233,12 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): bpy.data.cameras.remove(cam) bpy.data.meshes.remove(mesh) - + bpy.data.materials.remove(material_wire) for mat_solid in material_solids: bpy.data.materials.remove(mat_solid) - class ExportUVLayout(bpy.types.Operator): """Export UV layout to file""" @@ -328,7 +324,6 @@ class ExportUVLayout(bpy.types.Operator): if is_editmode: bpy.ops.object.mode_set(mode='OBJECT', toggle=False) - mesh = obj.data mode = self.mode diff --git a/release/scripts/op/uvcalc_smart_project.py b/release/scripts/op/uvcalc_smart_project.py index f3d539e3f24..d4b5a38e11d 100644 --- a/release/scripts/op/uvcalc_smart_project.py +++ b/release/scripts/op/uvcalc_smart_project.py @@ -225,7 +225,7 @@ def islandIntersectUvIsland(source, target, SourceOffset): # Edge intersect test for ed in edgeLoopsSource: for seg in edgeLoopsTarget: - i = geometry.LineIntersect2D(\ + i = geometry.intersect_line_line_2d(\ seg[0], seg[1], SourceOffset+ed[0], SourceOffset+ed[1]) if i: return 1 # LINE INTERSECTION @@ -739,7 +739,7 @@ def packIslands(islandList): #XXX Window.DrawProgressBar(0.7, 'Packing %i UV Islands...' % len(packBoxes) ) time1 = time.time() - packWidth, packHeight = geometry.BoxPack2D(packBoxes) + packWidth, packHeight = geometry.box_pack_2d(packBoxes) # print 'Box Packing Time:', time.time() - time1 diff --git a/release/scripts/op/wm.py b/release/scripts/op/wm.py index 1435d34934c..f6cd30edb05 100644 --- a/release/scripts/op/wm.py +++ b/release/scripts/op/wm.py @@ -85,10 +85,10 @@ class BRUSH_OT_set_active_number(bpy.types.Operator): number = IntProperty(name="number", description="Brush number") - _attr_dict = {"sculpt" : "use_paint_sculpt", + _attr_dict = {"sculpt": "use_paint_sculpt", "vertex_paint": "use_paint_vertex", "weight_paint": "use_paint_weight", - "image_paint" : "use_paint_texture"} + "image_paint": "use_paint_texture"} def execute(self, context): attr = self._attr_dict.get(self.mode) @@ -102,6 +102,7 @@ class BRUSH_OT_set_active_number(bpy.types.Operator): return {'CANCELLED'} + class WM_OT_context_set_boolean(bpy.types.Operator): '''Set a context value.''' bl_idname = "wm.context_set_boolean" @@ -668,7 +669,6 @@ class WM_OT_doc_edit(bpy.types.Operator): return wm.invoke_props_dialog(self, width=600) - from bpy.props import * @@ -689,7 +689,7 @@ class WM_OT_properties_edit(bpy.types.Operator): '''Internal use (edit a property data_path)''' bl_idname = "wm.properties_edit" bl_label = "Edit Property" - bl_options = {'REGISTER'} # only because invoke_props_popup requires. + bl_options = {'REGISTER'} # only because invoke_props_popup requires. data_path = rna_path property = rna_property @@ -803,6 +803,7 @@ class WM_OT_keyconfig_activate(bpy.types.Operator): bpy.utils.keyconfig_set(self.filepath) return {'FINISHED'} + class WM_OT_sysinfo(bpy.types.Operator): '''Generate System Info''' bl_idname = "wm.sysinfo" @@ -813,6 +814,7 @@ class WM_OT_sysinfo(bpy.types.Operator): sys_info.write_sysinfo(self) return {'FINISHED'} + def register(): pass diff --git a/release/scripts/ui/properties_data_armature.py b/release/scripts/ui/properties_data_armature.py index 57ac8ff7e2d..c3d3c358dbe 100644 --- a/release/scripts/ui/properties_data_armature.py +++ b/release/scripts/ui/properties_data_armature.py @@ -43,9 +43,9 @@ class DATA_PT_context_arm(ArmatureButtonsPanel, bpy.types.Panel): space = context.space_data if ob: - layout.template_ID(ob, "data", unlink="None") + layout.template_ID(ob, "data") elif arm: - layout.template_ID(space, "pin_id", unlink="None") + layout.template_ID(space, "pin_id") class DATA_PT_skeleton(ArmatureButtonsPanel, bpy.types.Panel): diff --git a/release/scripts/ui/properties_data_bone.py b/release/scripts/ui/properties_data_bone.py index 61ce3f7503c..336fc5430c6 100644 --- a/release/scripts/ui/properties_data_bone.py +++ b/release/scripts/ui/properties_data_bone.py @@ -54,7 +54,7 @@ class BONE_PT_transform(BoneButtonsPanel, bpy.types.Panel): def poll(cls, context): if context.edit_bone: return True - + ob = context.object return ob and ob.mode == 'POSE' and context.bone diff --git a/release/scripts/ui/properties_data_curve.py b/release/scripts/ui/properties_data_curve.py index d13232ca2e1..85a32236bcc 100644 --- a/release/scripts/ui/properties_data_curve.py +++ b/release/scripts/ui/properties_data_curve.py @@ -60,9 +60,9 @@ class DATA_PT_context_curve(CurveButtonsPanel, bpy.types.Panel): space = context.space_data if ob: - layout.template_ID(ob, "data", unlink="None") + layout.template_ID(ob, "data") elif curve: - layout.template_ID(space, "pin_id", unlink="None") # XXX: broken + layout.template_ID(space, "pin_id") # XXX: broken class DATA_PT_shape_curve(CurveButtonsPanel, bpy.types.Panel): diff --git a/release/scripts/ui/properties_data_mesh.py b/release/scripts/ui/properties_data_mesh.py index 52ac88ba168..ecaafa3c66c 100644 --- a/release/scripts/ui/properties_data_mesh.py +++ b/release/scripts/ui/properties_data_mesh.py @@ -71,9 +71,9 @@ class DATA_PT_context_mesh(MeshButtonsPanel, bpy.types.Panel): space = context.space_data if ob: - layout.template_ID(ob, "data", unlink="None") + layout.template_ID(ob, "data") elif mesh: - layout.template_ID(space, "pin_id", unlink="None") + layout.template_ID(space, "pin_id") class DATA_PT_normals(MeshButtonsPanel, bpy.types.Panel): diff --git a/release/scripts/ui/properties_data_metaball.py b/release/scripts/ui/properties_data_metaball.py index 115a20682a9..bbe027c5ea4 100644 --- a/release/scripts/ui/properties_data_metaball.py +++ b/release/scripts/ui/properties_data_metaball.py @@ -43,9 +43,9 @@ class DATA_PT_context_metaball(DataButtonsPanel, bpy.types.Panel): space = context.space_data if ob: - layout.template_ID(ob, "data", unlink="None") + layout.template_ID(ob, "data") elif mball: - layout.template_ID(space, "pin_id", unlink="None") + layout.template_ID(space, "pin_id") class DATA_PT_metaball(DataButtonsPanel, bpy.types.Panel): diff --git a/release/scripts/ui/properties_data_modifier.py b/release/scripts/ui/properties_data_modifier.py index 49fc86e436e..04c24ffc6b4 100644 --- a/release/scripts/ui/properties_data_modifier.py +++ b/release/scripts/ui/properties_data_modifier.py @@ -60,15 +60,15 @@ class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel): col.prop(md, "use_bone_envelopes", text="Bone Envelopes") split = layout.split() - - col = split.column() - col.prop(md, "use_multi_modifier") - col = col.split() - col.active = md.use_multi_modifier - col.prop_search(md, "vertex_group_multi_modifier", ob, "vertex_groups", text="") + + col = split.split() + col.prop_search(md, "vertex_group", ob, "vertex_groups", text="") sub = col.column() - sub.active = bool(md.vertex_group_multi_modifier) - sub.prop(md, "invert_vertex_group_multi_modifier") + sub.active = bool(md.vertex_group) + sub.prop(md, "invert_vertex_group") + + col = layout.column() + col.prop(md, "use_multi_modifier") def ARRAY(self, layout, ob, md): layout.prop(md, "fit_type") diff --git a/release/scripts/ui/properties_object.py b/release/scripts/ui/properties_object.py index c16dc052b86..72ae26c1de2 100644 --- a/release/scripts/ui/properties_object.py +++ b/release/scripts/ui/properties_object.py @@ -37,7 +37,7 @@ class OBJECT_PT_context_object(ObjectButtonsPanel, bpy.types.Panel): ob = context.object if space.use_pin_id: - layout.template_ID(space, "pin_id", unlink="None") + layout.template_ID(space, "pin_id") else: row = layout.row() row.label(text="", icon='OBJECT_DATA') @@ -68,7 +68,8 @@ class OBJECT_PT_transform(ObjectButtonsPanel, bpy.types.Panel): row.column().prop(ob, "scale") layout.prop(ob, "rotation_mode") - + + class OBJECT_PT_delta_transform(ObjectButtonsPanel, bpy.types.Panel): bl_label = "Delta Transform" bl_options = {'DEFAULT_CLOSED'} diff --git a/release/scripts/ui/properties_object_constraint.py b/release/scripts/ui/properties_object_constraint.py index 4db846fc2fe..ea8e08fd390 100644 --- a/release/scripts/ui/properties_object_constraint.py +++ b/release/scripts/ui/properties_object_constraint.py @@ -61,7 +61,7 @@ class ConstraintButtonsPanel(): if con.target.type == 'ARMATURE': layout.prop_search(con, "subtarget", con.target.data, "bones", text="Bone") - if con.type in ('COPY_LOCATION', 'STRETCH_TO', 'TRACK_TO', 'PIVOT'): + if hasattr(con, "head_tail"): row = layout.row() row.label(text="Head/Tail:") row.prop(con, "head_tail", text="") @@ -550,17 +550,16 @@ class ConstraintButtonsPanel(): col.prop(con, "axis_x", text="X") col.prop(con, "axis_y", text="Y") col.prop(con, "axis_z", text="Z") - if con.pivot_type == 'CONE_TWIST': layout.label(text="Limits:") split = layout.split() - + col = split.column(align=True) col.prop(con, "use_angular_limit_x", text="Angular X") col.prop(con, "use_angular_limit_y", text="Angular Y") col.prop(con, "use_angular_limit_z", text="Angular Z") - + col = split.column() col.prop(con, "limit_cone_min", text="") col = split.column() @@ -569,7 +568,7 @@ class ConstraintButtonsPanel(): elif con.pivot_type == 'GENERIC_6_DOF': layout.label(text="Limits:") split = layout.split() - + col = split.column(align=True) col.prop(con, "use_limit_x", text="X") col.prop(con, "use_limit_y", text="Y") @@ -577,12 +576,12 @@ class ConstraintButtonsPanel(): col.prop(con, "use_angular_limit_x", text="Angular X") col.prop(con, "use_angular_limit_y", text="Angular Y") col.prop(con, "use_angular_limit_z", text="Angular Z") - + col = split.column() col.prop(con, "limit_generic_min", text="") col = split.column() col.prop(con, "limit_generic_max", text="") - + def CLAMP_TO(self, context, layout, con): self.target_template(layout, con) diff --git a/release/scripts/ui/properties_physics_common.py b/release/scripts/ui/properties_physics_common.py index 9fff45d25f9..71bf8ae9590 100644 --- a/release/scripts/ui/properties_physics_common.py +++ b/release/scripts/ui/properties_physics_common.py @@ -69,22 +69,26 @@ def point_cache_ui(self, context, cache, enabled, cachetype): row.prop(cache, "frame_end") if cachetype not in ('SMOKE', 'CLOTH'): row.prop(cache, "frame_step") + row.prop(cache, "use_quick_cache") if cachetype != 'SMOKE': layout.label(text=cache.info) if cachetype != 'SMOKE': split = layout.split() + split.enabled = enabled and (not bpy.data.is_dirty) col = split.column() - col.enabled = enabled - col.prop(cache, "use_quick_cache") + col.prop(cache, "use_disk_cache") col = split.column() - col.enabled = (not bpy.data.is_dirty) - col.prop(cache, "use_disk_cache") - sub = col.column() - sub.enabled = cache.use_disk_cache - sub.prop(cache, "use_library_path", "Use Lib Path") + col.active = cache.use_disk_cache + col.prop(cache, "use_library_path", "Use Lib Path") + + row = layout.row() + row.enabled = enabled and (not bpy.data.is_dirty) + row.active = cache.use_disk_cache + row.label(text="Compression:") + row.prop(cache, "compression", expand=True) layout.separator() diff --git a/release/scripts/ui/properties_render.py b/release/scripts/ui/properties_render.py index 54ad5e28d19..1dbb37adc4c 100644 --- a/release/scripts/ui/properties_render.py +++ b/release/scripts/ui/properties_render.py @@ -629,7 +629,7 @@ class RENDER_PT_output(RenderButtonsPanel, bpy.types.Panel): col.prop(rd, "jpeg2k_ycc") elif file_format in ('CINEON', 'DPX'): - + split = layout.split() split.label("FIXME: hard coded Non-Linear, Gamma:1.0") ''' @@ -783,7 +783,7 @@ class RENDER_PT_motion_blur(RenderButtonsPanel, bpy.types.Panel): bl_label = "Sampled Motion Blur" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} - + @classmethod def poll(cls, context): rd = context.scene.render @@ -819,7 +819,7 @@ class RENDER_PT_dimensions(RenderButtonsPanel, bpy.types.Panel): row.menu("RENDER_MT_presets", text=bpy.types.RENDER_MT_presets.bl_label) row.operator("render.preset_add", text="", icon="ZOOMIN") row.operator("render.preset_add", text="", icon="ZOOMOUT").remove_active = True - + split = layout.split() col = split.column() diff --git a/release/scripts/ui/properties_scene.py b/release/scripts/ui/properties_scene.py index bc735e57493..5085e8d2ab5 100644 --- a/release/scripts/ui/properties_scene.py +++ b/release/scripts/ui/properties_scene.py @@ -229,7 +229,7 @@ class ANIM_OT_keying_set_export(bpy.types.Operator): f.write("# Keying Set: %s\n" % ks.name) f.write("import bpy\n\n") - f.write("scene= bpy.data.scenes[0]\n\n") # XXX, why not use the current scene? + f.write("scene= bpy.data.scenes[0]\n\n") # XXX, why not use the current scene? # Add KeyingSet and set general settings f.write("# Keying Set Level declarations\n") @@ -238,7 +238,7 @@ class ANIM_OT_keying_set_export(bpy.types.Operator): if not ks.is_path_absolute: f.write("ks.is_path_absolute = False\n") f.write("\n") - + f.write("ks.bl_options = %r\n" % ks.bl_options) f.write("\n") diff --git a/release/scripts/ui/properties_texture.py b/release/scripts/ui/properties_texture.py index c72a2f5ca94..194431161d3 100644 --- a/release/scripts/ui/properties_texture.py +++ b/release/scripts/ui/properties_texture.py @@ -103,7 +103,7 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, bpy.types.Panel): if tex_collection: row = layout.row() - + row.template_list(idblock, "texture_slots", idblock, "active_texture_index", rows=2) col = row.column(align=True) @@ -143,7 +143,6 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, bpy.types.Panel): split.prop(tex, "type", text="") - class TEXTURE_PT_preview(TextureButtonsPanel, bpy.types.Panel): bl_label = "Preview" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -395,8 +394,9 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel): def draw(self, context): layout = self.layout + idblock = context_tex_datablock(context) tex = context.texture - # slot = context.texture_slot + slot = context.texture_slot split = layout.split() @@ -410,10 +410,12 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel): col = split.column() - col.prop(tex, "use_normal_map") - row = col.row() - row.active = tex.use_normal_map - row.prop(tex, "normal_space", text="") + #Only for Material based textures, not for Lamp/World... + if isinstance(idblock, bpy.types.Material): + col.prop(tex, "use_normal_map") + row = col.row() + row.active = tex.use_normal_map + row.prop(slot, "normal_map_space", text="") col.prop(tex, "use_mipmap") row = col.row() @@ -897,7 +899,7 @@ class TEXTURE_PT_influence(TextureSlotPanel, bpy.types.Panel): sub = row.row() sub.active = getattr(tex, toggle) sub.prop(tex, factor, text=name, slider=True) - return sub # XXX, temp. use_map_normal needs to override. + return sub # XXX, temp. use_map_normal needs to override. if isinstance(idblock, bpy.types.Material): if idblock.type in ('SURFACE', 'WIRE'): @@ -936,13 +938,13 @@ class TEXTURE_PT_influence(TextureSlotPanel, bpy.types.Panel): #sub.prop(tex, "default_value", text="Amount", slider=True) elif idblock.type == 'HALO': layout.label(text="Halo:") - + split = layout.split() - + col = split.column() factor_but(col, "use_map_color_diffuse", "diffuse_color_factor", "Color") factor_but(col, "use_map_alpha", "alpha_factor", "Alpha") - + col = split.column() factor_but(col, "use_map_raymir", "raymir_factor", "Size") factor_but(col, "use_map_hardness", "hardness_factor", "Hardness") diff --git a/release/scripts/ui/properties_world.py b/release/scripts/ui/properties_world.py index 8b6ad827c1d..0ab39ce6fdb 100644 --- a/release/scripts/ui/properties_world.py +++ b/release/scripts/ui/properties_world.py @@ -152,7 +152,7 @@ class WORLD_PT_indirect_lighting(WorldButtonsPanel, bpy.types.Panel): split = layout.split() split.prop(light, "indirect_factor", text="Factor") split.prop(light, "indirect_bounces", text="Bounces") - + if light.gather_method == 'RAYTRACE': layout.label(text="Only works with Approximate gather method") diff --git a/release/scripts/ui/space_dopesheet.py b/release/scripts/ui/space_dopesheet.py index 102b87fad01..3825f85622c 100644 --- a/release/scripts/ui/space_dopesheet.py +++ b/release/scripts/ui/space_dopesheet.py @@ -20,6 +20,7 @@ import bpy + # used for DopeSheet, NLA, and Graph Editors def dopesheet_filter(layout, context): dopesheet = context.space_data.dopesheet @@ -102,7 +103,7 @@ class DOPESHEET_HT_header(bpy.types.Header): if st.mode == 'DOPESHEET': dopesheet_filter(layout, context) - elif st.mode in ('ACTION','SHAPEKEY'): + elif st.mode in ('ACTION', 'SHAPEKEY'): layout.template_ID(st, "action", new="action.new") if st.mode != 'GPENCIL': diff --git a/release/scripts/ui/space_filebrowser.py b/release/scripts/ui/space_filebrowser.py index 499fd63f1e6..dea306277f1 100644 --- a/release/scripts/ui/space_filebrowser.py +++ b/release/scripts/ui/space_filebrowser.py @@ -57,9 +57,9 @@ class FILEBROWSER_HT_header(bpy.types.Header): row = layout.row(align=True) row.active = params.use_filter - + row.prop(params, "use_filter_folder", text="") - + if params.filter_glob: #if st.operator and hasattr(st.operator, "filter_glob"): # row.prop(params, "filter_glob", text="") diff --git a/release/scripts/ui/space_graph.py b/release/scripts/ui/space_graph.py index 79acdd9f9ce..15900e803cc 100644 --- a/release/scripts/ui/space_graph.py +++ b/release/scripts/ui/space_graph.py @@ -188,7 +188,7 @@ class GRAPH_MT_key(bpy.types.Menu): layout.separator() layout.operator_menu_enum("graph.handle_type", "type", text="Handle Type") layout.operator_menu_enum("graph.interpolation_type", "type", text="Interpolation Mode") - + layout.separator() layout.operator("graph.clean") layout.operator("graph.sample") diff --git a/release/scripts/ui/space_image.py b/release/scripts/ui/space_image.py index 93516457dd6..464e5bb8cfe 100644 --- a/release/scripts/ui/space_image.py +++ b/release/scripts/ui/space_image.py @@ -250,7 +250,8 @@ class IMAGE_MT_uvs(bpy.types.Menu): layout.separator() layout.menu("IMAGE_MT_uvs_showhide") - + + class IMAGE_MT_uvs_select_mode(bpy.types.Menu): bl_label = "UV Select Mode" @@ -259,9 +260,9 @@ class IMAGE_MT_uvs_select_mode(bpy.types.Menu): layout.operator_context = 'INVOKE_REGION_WIN' toolsettings = context.tool_settings - + # do smart things depending on whether uv_select_sync is on - + if toolsettings.use_uv_select_sync: prop = layout.operator("wm.context_set_value", text="Vertex", icon='VERTEXSEL') prop.value = "(True, False, False)" @@ -287,7 +288,7 @@ class IMAGE_MT_uvs_select_mode(bpy.types.Menu): prop = layout.operator("wm.context_set_string", text="Face", icon='UV_FACESEL') prop.value = "FACE" prop.data_path = "tool_settings.uv_select_mode" - + prop = layout.operator("wm.context_set_string", text="Island", icon='UV_ISLANDSEL') prop.value = "ISLAND" prop.data_path = "tool_settings.uv_select_mode" diff --git a/release/scripts/ui/space_info.py b/release/scripts/ui/space_info.py index 0b79063c3e9..dda21dea84e 100644 --- a/release/scripts/ui/space_info.py +++ b/release/scripts/ui/space_info.py @@ -69,7 +69,6 @@ class INFO_HT_header(bpy.types.Header): # XXX: this should be right-aligned to the RHS of the region layout.operator("wm.window_fullscreen_toggle", icon='FULLSCREEN_ENTER', text="") - # XXX: BEFORE RELEASE, MOVE FILE MENU OUT OF INFO!!! """ row = layout.row(align=True) @@ -82,7 +81,7 @@ class INFO_HT_header(bpy.types.Header): row = layout.row() row.enabled = sinfo.show_report_operator row.operator("info.report_replay") - + row.menu("INFO_MT_report") """ @@ -220,6 +219,7 @@ class INFO_MT_curve_add(bpy.types.Menu): layout.operator("curve.primitive_nurbs_circle_add", icon='CURVE_NCIRCLE', text="Nurbs Circle") layout.operator("curve.primitive_nurbs_path_add", icon='CURVE_PATH', text="Path") + class INFO_MT_edit_curve_add(bpy.types.Menu): bl_idname = "INFO_MT_edit_curve_add" bl_label = "Add" @@ -231,9 +231,9 @@ class INFO_MT_edit_curve_add(bpy.types.Menu): layout.operator_context = 'INVOKE_REGION_WIN' if is_surf: - INFO_MT_surface_add.draw(self, context) + INFO_MT_surface_add.draw(self, context) else: - INFO_MT_curve_add.draw(self, context) + INFO_MT_curve_add.draw(self, context) class INFO_MT_surface_add(bpy.types.Menu): @@ -353,7 +353,7 @@ class INFO_MT_help(bpy.types.Menu): layout = self.layout layout.operator("wm.url_open", text="Manual", icon='HELP').url = 'http://wiki.blender.org/index.php/Doc:Manual' - layout.operator("wm.url_open", text="Release Log", icon='URL').url = 'http://www.blender.org/development/release-logs/blender-254-beta/' + layout.operator("wm.url_open", text="Release Log", icon='URL').url = 'http://www.blender.org/development/release-logs/blender-256-beta/' layout.separator() diff --git a/release/scripts/ui/space_sequencer.py b/release/scripts/ui/space_sequencer.py index 1399c94dd8e..6f547db9015 100644 --- a/release/scripts/ui/space_sequencer.py +++ b/release/scripts/ui/space_sequencer.py @@ -134,6 +134,7 @@ class SEQUENCER_MT_view(bpy.types.Menu): if (st.view_type == 'PREVIEW') or (st.view_type == 'SEQUENCER_PREVIEW'): layout.operator_context = 'INVOKE_REGION_PREVIEW' layout.operator("sequencer.view_all_preview", text='Fit preview in window') + layout.operator("sequencer.view_zoom_ratio", text='Show preview 1:1').ratio = 1.0 layout.operator_context = 'INVOKE_DEFAULT' # # XXX, invokes in the header view @@ -389,7 +390,7 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel): col.label(text="Frame Still %d:%d" % (strip.frame_still_start, strip.frame_still_end)) elem = False - + if strip.type == 'IMAGE': elem = strip.getStripElem(frame_current) elif strip.type == 'MOVIE': @@ -607,7 +608,12 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel): col.prop(strip.crop, "max_x") col = layout.column(align=True) - col.label(text="Trim Duration:") + col.label(text="Trim Duration (hard):") + col.prop(strip, "animation_offset_start", text="Start") + col.prop(strip, "animation_offset_end", text="End") + + col = layout.column(align=True) + col.label(text="Trim Duration (soft):") col.prop(strip, "frame_offset_start", text="Start") col.prop(strip, "frame_offset_end", text="End") @@ -678,7 +684,7 @@ class SEQUENCER_PT_scene(SequencerButtonsPanel, bpy.types.Panel): layout.template_ID(strip, "scene_camera") sce = strip.scene - layout.label(text="Original frame range: "+ str(sce.frame_start) +" - "+ str(sce.frame_end) + " (" + str(sce.frame_end-sce.frame_start+1) + ")") + layout.label(text="Original frame range: %d-%d (%d)" % (sce.frame_start, sce.frame_end, sce.frame_end - sce.frame_start + 1)) class SEQUENCER_PT_filter(SequencerButtonsPanel, bpy.types.Panel): @@ -787,7 +793,7 @@ class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, bpy.types.Panel): render = context.scene.render col = layout.column() - col.active = False #Currently only opengl preview works! + col.active = False # Currently only opengl preview works! col.prop(render, "use_sequencer_gl_preview", text="Open GL Preview") col = layout.column() #col.active = render.use_sequencer_gl_preview diff --git a/release/scripts/ui/space_time.py b/release/scripts/ui/space_time.py index 93c6af38dbc..6c4aaab84d9 100644 --- a/release/scripts/ui/space_time.py +++ b/release/scripts/ui/space_time.py @@ -74,16 +74,16 @@ class TIME_HT_header(bpy.types.Header): row.operator("screen.keyframe_jump", text="", icon='NEXT_KEYFRAME').next = True row.operator("screen.frame_jump", text="", icon='FF').end = True + layout.prop(scene, "sync_mode", text="") + + layout.separator() + row = layout.row(align=True) row.prop(tools, "use_keyframe_insert_auto", text="", toggle=True) if screen.is_animation_playing and tools.use_keyframe_insert_auto: subsub = row.row() subsub.prop(tools, "use_record_with_nla", toggle=True) - layout.prop(scene, "sync_mode", text="") - - layout.separator() - row = layout.row(align=True) row.prop_search(scene.keying_sets_all, "active", scene, "keying_sets_all", text="") row.operator("anim.keyframe_insert", text="", icon='KEY_HLT') diff --git a/release/scripts/ui/space_userpref.py b/release/scripts/ui/space_userpref.py index 338545ee2f4..a4b843fd954 100644 --- a/release/scripts/ui/space_userpref.py +++ b/release/scripts/ui/space_userpref.py @@ -815,6 +815,7 @@ class USERPREF_PT_input(InputKeyMapPanel): #print("runtime", time.time() - start) + class USERPREF_MT_addons_dev_guides(bpy.types.Menu): bl_label = "Addons develoment guides" @@ -855,21 +856,21 @@ class USERPREF_PT_addons(bpy.types.Panel): modules = [] loaded_modules = set() - + # RELEASE SCRIPTS: official scripts distributed in Blender releases paths = bpy.utils.script_paths("addons") - + # CONTRIB SCRIPTS: good for testing but not official scripts yet # if folder addons_contrib/ exists, scripts in there will be loaded too paths += bpy.utils.script_paths("addons_contrib") - + # EXTERN SCRIPTS: external projects scripts # if folder addons_extern/ exists, scripts in there will be loaded too paths += bpy.utils.script_paths("addons_extern") if bpy.app.debug: t_main = time.time() - + # fake module importing def fake_module(mod_name, mod_path, speedy=True): if bpy.app.debug: @@ -960,11 +961,11 @@ class USERPREF_PT_addons(bpy.types.Panel): col = split.column() col.prop(context.window_manager, "addon_search", text="", icon='VIEWZOOM') col.prop(context.window_manager, "addon_filter", text="Filter", expand=True) - + # menu to open webpages with addons development guides col.separator() - col.label(text = ' Online Documentation', icon = 'INFO') - col.menu('USERPREF_MT_addons_dev_guides', text='Addons Developer Guides') + col.label(text=" Online Documentation", icon='INFO') + col.menu("USERPREF_MT_addons_dev_guides", text="Addons Developer Guides") col = split.column() diff --git a/release/scripts/ui/space_userpref_keymap.py b/release/scripts/ui/space_userpref_keymap.py index 8e34eb89af3..316e4e2be10 100644 --- a/release/scripts/ui/space_userpref_keymap.py +++ b/release/scripts/ui/space_userpref_keymap.py @@ -128,6 +128,7 @@ class USERPREF_MT_keyconfigs(bpy.types.Menu): bl_label = "KeyPresets" preset_subdir = "keyconfig" preset_operator = "wm.keyconfig_activate" + def draw(self, context): props = self.layout.operator("wm.context_set_value", text="Blender (default)") props.data_path = "window_manager.keyconfigs.active" @@ -379,7 +380,7 @@ class InputKeyMapPanel(bpy.types.Panel): subcol = subsplit.column() row = subcol.row(align=True) - + #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: @@ -387,7 +388,7 @@ class InputKeyMapPanel(bpy.types.Panel): row.menu("USERPREF_MT_keyconfigs", text=text) 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') @@ -605,7 +606,7 @@ class WM_OT_keyconfig_export(bpy.types.Operator): f.write("import bpy\n") f.write("import os\n\n") f.write("wm = bpy.context.window_manager\n") - f.write("kc = wm.keyconfigs.new(os.path.splitext(os.path.basename(__file__))[0])\n\n") # keymap must be created by caller + f.write("kc = wm.keyconfigs.new(os.path.splitext(os.path.basename(__file__))[0])\n\n") # keymap must be created by caller # Generate a list of keymaps to export: # diff --git a/release/scripts/ui/space_view3d.py b/release/scripts/ui/space_view3d.py index c3ef572d5c4..7a791d5b87b 100644 --- a/release/scripts/ui/space_view3d.py +++ b/release/scripts/ui/space_view3d.py @@ -647,6 +647,7 @@ class VIEW3D_MT_select_face(bpy.types.Menu): # XXX no matching enum # ********** Object menu ********** + class VIEW3D_MT_object(bpy.types.Menu): bl_context = "objectmode" bl_label = "Object" @@ -1418,7 +1419,7 @@ class VIEW3D_MT_edit_mesh_extrude(bpy.types.Menu): if mesh.total_edge_sel and (select_mode[0] or select_mode[1]): menu += ["EDGE"] if mesh.total_vert_sel and select_mode[0]: - menu += ["VERT"] + menu += ["VERT"] # should never get here return menu diff --git a/release/scripts/ui/space_view3d_toolbar.py b/release/scripts/ui/space_view3d_toolbar.py index 529ec750d67..5731a915ab2 100644 --- a/release/scripts/ui/space_view3d_toolbar.py +++ b/release/scripts/ui/space_view3d_toolbar.py @@ -1077,9 +1077,9 @@ class VIEW3D_PT_tools_weightpaint(View3DPanel, bpy.types.Panel): def draw(self, context): layout = self.layout - + ob = context.active_object - + col = layout.column() col.active = ob.vertex_groups.active != None col.operator("object.vertex_group_normalize_all", text="Normalize All") diff --git a/release/test/pep8.py b/release/test/pep8.py index 12cdf5c3b60..3ccd7dd79b6 100644 --- a/release/test/pep8.py +++ b/release/test/pep8.py @@ -48,7 +48,7 @@ def file_list_py(path): def is_pep8(path): print(path) - f = open(path, 'r') + f = open(path, 'r', encoding="utf8") for i in range(PEP8_SEEK_COMMENT): line = f.readline() if line.startswith("# <pep8"): diff --git a/release/text/readme.html b/release/text/readme.html index 80ef6ba5e94..40851905f86 100644 --- a/release/text/readme.html +++ b/release/text/readme.html @@ -15,12 +15,12 @@ <p class="title"><b>Blender 2.5 Beta</b></p> <p><br></p> <p class="header"><b>About</b></p> -<p class="body">Welcome to Blender, the free, open source 3D application for modeling, animation, rendering, compositing, video editing and game creation. Blender is available for Linux, Mac OS X, Windows, Solaris and Irix and has a large world-wide community.</p> +<p class="body">Welcome to Blender, the free, open source 3D application for modeling, animation, rendering, compositing, video editing and game creation. Blender is available for Linux, Mac OS X, Windows, Solaris, FreeBSD and Irix and has a large world-wide community.</p> <p class="body">Blender can be used freely for any purpose, including commercial use and distribution. It's free and open-source software, released under the GNU GPL licence. The entire source code is available on our website.</p> <p class="body">For more information, visit <a href="http://www.blender.org">blender.org</a>.</p> <p><br></p> <p class="header"><b>2.5 Beta</b></p> -<p class="body">The Blender Foundation and online developer community is proud to present Blender 2.5 Beta. This release is the third official beta release of the Blender 2.5 series, and represents the culmination of many years of redesign and development work. <a href="http://www.blender.org/development/release-logs/blender-254-beta/">More information about this release</a>.</p> +<p class="body">The Blender Foundation and online developer community is proud to present Blender 2.5 Beta. This release is the fourth official beta release of the Blender 2.5 series, and represents the culmination of many years of redesign and development work. <a href="http://www.blender.org/development/release-logs/blender-254-beta/">More information about this release</a>.</p> <p class="body">What to Expect:</p> <p class="body"> • Big improvements - This is our most exciting version to date, already a significant improvement in many ways over 2.49</p> <p class="body"> • Missing/Incomplete Features - Although most of it is there, not all functionality from pre-2.5 versions has been restored yet. Some functionality may be re-implemented a different way.</p> @@ -53,7 +53,7 @@ Install scripts by putting them in the .blender/scripts inside your home folder. <p class="header"><b>Links</b></p> <p class="body">Users:</p> <p class="body"> General information <a href="http://www.blender.org">www.blender.org</a> <br> - Full release log <a href="http://www.blender.org/development/release-logs/blender-254-beta/">www.blender.org/development/release-logs/blender-254-beta/</a><br> + Full release log <a href="http://www.blender.org/development/release-logs/blender-256-beta/">www.blender.org/development/release-logs/blender-256-beta/</a><br> Tutorials <a href="http://www.blender.org/education-help/">www.blender.org/education-help/</a> <br> Manual <a href="http://wiki.blender.org/index.php/Doc:Manual">wiki.blender.org/index.php/Doc:Manual</a><br> User Forum <a href="http://www.blenderartists.org">www.blenderartists.org</a><br> diff --git a/release/windows/installer/00.sconsblender.nsi b/release/windows/installer/00.sconsblender.nsi index 41e49815040..e5ebf8b2f64 100644 --- a/release/windows/installer/00.sconsblender.nsi +++ b/release/windows/installer/00.sconsblender.nsi @@ -13,6 +13,7 @@ !include "nsDialogs.nsh"
!include "x64.nsh"
+RequestExecutionLevel user
SetCompressor /SOLID lzma
@@ -69,7 +70,10 @@ UninstallIcon "[RELDIR]\00.installer.ico" Caption "Blender [VERSION] Installer"
OutFile "[DISTDIR]\..\blender-[VERSION]-windows[BITNESS].exe"
-InstallDir "$PROGRAMFILES[BITNESS]\Blender Foundation\Blender"
+;InstallDir "$PROGRAMFILES[BITNESS]\Blender Foundation\Blender"
+; Install to user profile dir. While it is non-standard, it allows
+; users to install without having to have the installer run in elevated mode.
+InstallDir "$PROFILE\Blender Foundation\Blender"
BrandingText "Blender Foundation | http://www.blender.org"
ComponentText "This will install Blender [VERSION] on your computer."
diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h index 4d3f000c863..1c75387ba5d 100644 --- a/source/blender/blenkernel/BKE_action.h +++ b/source/blender/blenkernel/BKE_action.h @@ -117,6 +117,8 @@ void action_groups_remove_channel(struct bAction *act, struct FCurve *fcu); /* Find a group with the given name */ struct bActionGroup *action_groups_find_named(struct bAction *act, const char name[]); +/* Clear all 'temp' flags on all groups */ +void action_groups_clear_tempflags(struct bAction *act); /* Pose API ----------------- */ diff --git a/source/blender/blenkernel/BKE_animsys.h b/source/blender/blenkernel/BKE_animsys.h index 3952b6066d3..500210d2fcd 100644 --- a/source/blender/blenkernel/BKE_animsys.h +++ b/source/blender/blenkernel/BKE_animsys.h @@ -100,6 +100,14 @@ void BKE_animdata_fix_paths_rename(struct ID *owner_id, struct AnimData *adt, co /* Fix all the paths for the entire database... */ void BKE_all_animdata_fix_paths_rename(char *prefix, char *oldName, char *newName); +/* -------------------------------------- */ + +/* Move animation data from src to destination if it's paths are based on basepaths */ +void BKE_animdata_separate_by_basepath(struct ID *srcID, struct ID *dstID, struct ListBase *basepaths); + +/* Move F-Curves from src to destination if it's path is based on basepath */ +void action_move_fcurves_by_basepath(struct bAction *srcAct, struct bAction *dstAct, const char basepath[]); + /* ************************************* */ /* Batch AnimData API */ diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index a97c5fd8d9e..886a11b126e 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -44,8 +44,8 @@ struct ReportList; struct Scene; struct Main; -#define BLENDER_VERSION 255 -#define BLENDER_SUBVERSION 1 +#define BLENDER_VERSION 256 +#define BLENDER_SUBVERSION 0 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h index fb079d44bb5..e9118323682 100644 --- a/source/blender/blenkernel/BKE_customdata.h +++ b/source/blender/blenkernel/BKE_customdata.h @@ -144,6 +144,7 @@ void CustomData_em_copy_data(const struct CustomData *source, void CustomData_bmesh_copy_data(const struct CustomData *source, struct CustomData *dest,void *src_block, void **dest_block); +void CustomData_em_validate_data(struct CustomData *data, void *block, int sub_elements); /* frees data in a CustomData object * return 1 on success, 0 on failure diff --git a/source/blender/blenkernel/BKE_deform.h b/source/blender/blenkernel/BKE_deform.h index 39df877f67b..52051712ff0 100644 --- a/source/blender/blenkernel/BKE_deform.h +++ b/source/blender/blenkernel/BKE_deform.h @@ -52,7 +52,7 @@ void defgroup_unique_name(struct bDeformGroup *dg, struct Object *ob); struct MDeformWeight *defvert_find_index(const struct MDeformVert *dv, const int defgroup); struct MDeformWeight *defvert_verify_index(struct MDeformVert *dv, const int defgroup); -float defvert_find_weight(const struct MDeformVert *dvert, int group_num); +float defvert_find_weight(const struct MDeformVert *dvert, const int group_num); float defvert_array_find_weight_safe(const struct MDeformVert *dvert, int index, int group_num); void defvert_copy(struct MDeformVert *dvert_r, const struct MDeformVert *dvert); diff --git a/source/blender/blenkernel/BKE_main.h b/source/blender/blenkernel/BKE_main.h index 934c39505cc..fcd61539b23 100644 --- a/source/blender/blenkernel/BKE_main.h +++ b/source/blender/blenkernel/BKE_main.h @@ -51,6 +51,7 @@ typedef struct Main { char name[240]; short versionfile, subversionfile; short minversionfile, minsubversionfile; + int revision; /* svn revision of binary that saved file */ struct Library *curlib; ListBase scene; diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h index 8fb80292ffb..5bdea166cce 100644 --- a/source/blender/blenkernel/BKE_multires.h +++ b/source/blender/blenkernel/BKE_multires.h @@ -81,5 +81,13 @@ void multires_mdisp_smooth_bounds(struct MDisps *disps); /* update multires data after topology changing */ void multires_topology_changed(struct Object *ob); +/**** interpolation stuff ****/ +void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v); +void mdisp_rot_crn_to_face(int S, int corners, int face_side, float x, float y, float *u, float *v); +int mdisp_rot_face_to_crn(int corners, int face_side, float u, float v, float *x, float *y); +void mdisp_apply_weight(int S, int corners, int x, int y, int face_side, float crn_weight[4][2], float *u_r, float *v_r); +void mdisp_flip_disp(int S, int corners, float axis_x[2], float axis_y[2], float disp[3]); +void mdisp_join_tris(struct MDisps *dst, struct MDisps *tri1, struct MDisps *tri2); + #endif diff --git a/source/blender/blenkernel/BKE_pointcache.h b/source/blender/blenkernel/BKE_pointcache.h index a7ad95b8ffc..f3548888168 100644 --- a/source/blender/blenkernel/BKE_pointcache.h +++ b/source/blender/blenkernel/BKE_pointcache.h @@ -63,6 +63,13 @@ #define PTCACHE_TYPE_SMOKE_DOMAIN 3 #define PTCACHE_TYPE_SMOKE_HIGHRES 4 +/* high bits reserved for flags that need to be stored in file */ +#define PTCACHE_TYPEFLAG_COMPRESS (1<<16) +#define PTCACHE_TYPEFLAG_EXTRADATA (1<<17) + +#define PTCACHE_TYPEFLAG_TYPEMASK 0x0000FFFF +#define PTCACHE_TYPEFLAG_FLAGMASK 0xFFFF0000 + /* PTCache read return code */ #define PTCACHE_READ_EXACT 1 #define PTCACHE_READ_INTERPOLATED 2 @@ -96,7 +103,7 @@ typedef struct PTCacheFile { FILE *fp; int totpoint, type, frame, old_format; - unsigned int data_types; + unsigned int data_types, flag; struct PTCacheData data; void *cur[BPHYS_TOT_DATA]; @@ -118,15 +125,23 @@ typedef struct PTCacheID { unsigned int data_types, info_types; /* copies point data to cache data */ - int (*write_elem)(int index, void *calldata, void **data, int cfra); + int (*write_point)(int index, void *calldata, void **data, int cfra); + /* copies cache cata to point data */ + void (*read_point)(int index, void *calldata, void **data, float cfra, float *old_data); + /* interpolated between previously read point data and cache data */ + void (*interpolate_point)(int index, void *calldata, void **data, float cfra, float cfra1, float cfra2, float *old_data); + /* copies point data to cache data */ int (*write_stream)(PTCacheFile *pf, void *calldata); /* copies cache cata to point data */ - void (*read_elem)(int index, void *calldata, void **data, float frs_sec, float cfra, float *old_data); - /* copies cache cata to point data */ void (*read_stream)(PTCacheFile *pf, void *calldata); - /* interpolated between previously read point data and cache data */ - void (*interpolate_elem)(int index, void *calldata, void **data, float frs_sec, float cfra, float cfra1, float cfra2, float *old_data); + + /* copies custom extradata to cache data */ + int (*write_extra_data)(void *calldata, struct PTCacheMem *pm, int cfra); + /* copies custom extradata to cache data */ + int (*read_extra_data)(void *calldata, struct PTCacheMem *pm, float cfra); + /* copies custom extradata to cache data */ + int (*interpolate_extra_data)(void *calldata, struct PTCacheMem *pm, float cfra, float cfra1, float cfra2); /* total number of simulated points (the cfra parameter is just for using same function pointer with totwrite) */ int (*totpoint)(void *calldata, int cfra); @@ -267,7 +282,7 @@ void BKE_ptcache_data_get(void **data, int type, int index, void *to); void BKE_ptcache_data_set(void **data, int type, void *from); /* Main cache reading call. */ -int BKE_ptcache_read(PTCacheID *pid, float cfra, float frs_sec); +int BKE_ptcache_read(PTCacheID *pid, float cfra); /* Main cache writing call. */ int BKE_ptcache_write(PTCacheID *pid, int cfra); diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 227f2eadf4c..fdd51dd207f 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -96,7 +96,6 @@ void make_local_action(bAction *act) if (act->id.us==1) { act->id.lib= 0; act->id.flag= LIB_LOCAL; - //make_local_action_channels(act); new_id(0, (ID *)act, 0); return; } @@ -376,6 +375,20 @@ bActionGroup *action_groups_find_named (bAction *act, const char name[]) return BLI_findstring(&act->groups, name, offsetof(bActionGroup, name)); } +/* Clear all 'temp' flags on all groups */ +void action_groups_clear_tempflags (bAction *act) +{ + bActionGroup *agrp; + + /* sanity checks */ + if (ELEM(NULL, act, act->groups.first)) + return; + + /* flag clearing loop */ + for (agrp = act->groups.first; agrp; agrp = agrp->next) + agrp->flag &= ~AGRP_TEMP; +} + /* *************** Pose channels *************** */ /* usually used within a loop, so we got a N^2 slowdown */ diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 0e5763e3034..49d3ca833dd 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -277,6 +277,176 @@ void BKE_animdata_make_local(AnimData *adt) make_local_strips(&nlt->strips); } +/* Sub-ID Regrouping ------------------------------------------- */ + +/* helper heuristic for determining if a path is compatible with the basepath + * < path: (str) full RNA-path from some data (usually an F-Curve) to compare + * < basepath: (str) shorter path fragment to look for + * > returns (bool) whether there is a match + */ +static short animpath_matches_basepath (const char path[], const char basepath[]) +{ + /* we need start of path to be basepath */ + return (path && basepath) && (strstr(path, basepath) == path); +} + +/* Move F-Curves in src action to dst action, setting up all the necessary groups + * for this to happen, but only if the F-Curves being moved have the appropriate + * "base path". + * - This is used when data moves from one datablock to another, causing the + * F-Curves to need to be moved over too + */ +void action_move_fcurves_by_basepath (bAction *srcAct, bAction *dstAct, const char basepath[]) +{ + FCurve *fcu, *fcn=NULL; + + /* sanity checks */ + if ELEM3(NULL, srcAct, dstAct, basepath) { + if (G.f & G_DEBUG) { + printf("ERROR: action_partition_fcurves_by_basepath(%p, %p, %p) has insufficient info to work with\n", + srcAct, dstAct, basepath); + } + return; + } + + /* clear 'temp' flags on all groups in src, as we'll be needing them later + * to identify groups that we've managed to empty out here + */ + action_groups_clear_tempflags(srcAct); + + /* iterate over all src F-Curves, moving over the ones that need to be moved */ + for (fcu = srcAct->curves.first; fcu; fcu = fcn) { + /* store next pointer in case we move stuff */ + fcn = fcu->next; + + /* should F-Curve be moved over? + * - we only need the start of the path to match basepath + */ + if (animpath_matches_basepath(fcu->rna_path, basepath)) { + bActionGroup *agrp = NULL; + + /* if grouped... */ + if (fcu->grp) { + /* make sure there will be a matching group on the other side for the migrants */ + agrp = action_groups_find_named(dstAct, fcu->grp->name); + + if (agrp == NULL) { + /* add a new one with a similar name (usually will be the same though) */ + agrp = action_groups_add_new(dstAct, fcu->grp->name); + } + + /* old groups should be tagged with 'temp' flags so they can be removed later + * if we remove everything from them + */ + fcu->grp->flag |= AGRP_TEMP; + } + + /* perform the migration now */ + action_groups_remove_channel(srcAct, fcu); + + if (agrp) + action_groups_add_channel(dstAct, agrp, fcu); + else + BLI_addtail(&dstAct->curves, fcu); + } + } + + /* cleanup groups (if present) */ + if (srcAct->groups.first) { + bActionGroup *agrp, *grp=NULL; + + for (agrp = srcAct->groups.first; agrp; agrp = grp) { + grp = agrp->next; + + /* only tagged groups need to be considered - clearing these tags or removing them */ + if (agrp->flag & AGRP_TEMP) { + /* if group is empty and tagged, then we can remove as this operation + * moved out all the channels that were formerly here + */ + if (agrp->channels.first == NULL) + BLI_freelinkN(&srcAct->groups, agrp); + else + agrp->flag &= ~AGRP_TEMP; + } + } + } +} + +/* Transfer the animation data from srcID to dstID where the srcID + * animation data is based off "basepath", creating new AnimData and + * associated data as necessary + */ +void BKE_animdata_separate_by_basepath (ID *srcID, ID *dstID, ListBase *basepaths) +{ + AnimData *srcAdt=NULL, *dstAdt=NULL; + LinkData *ld; + + /* sanity checks */ + if ELEM(NULL, srcID, dstID) { + if (G.f & G_DEBUG) + printf("ERROR: no source or destination ID to separate AnimData with\n"); + return; + } + + /* get animdata from src, and create for destination (if needed) */ + srcAdt = BKE_animdata_from_id(srcID); + dstAdt = BKE_id_add_animdata(dstID); + + if ELEM(NULL, srcAdt, dstAdt) { + if (G.f & G_DEBUG) + printf("ERROR: no AnimData for this pair of ID's\n"); + return; + } + + /* active action */ + if (srcAdt->action) { + /* set up an action if necessary, and name it in a similar way so that it can be easily found again */ + if (dstAdt->action == NULL) { + dstAdt->action = add_empty_action(srcAdt->action->id.name+2); + } + else if (dstAdt->action == srcAdt->action) { + printf("Argh! Source and Destination share animation! ('%s' and '%s' both use '%s') Making new empty action\n", + srcID->name, dstID->name, srcAdt->action->id.name); + + // TODO: review this... + id_us_min(&dstAdt->action->id); + dstAdt->action = add_empty_action(dstAdt->action->id.name+2); + } + + /* loop over base paths, trying to fix for each one... */ + for (ld = basepaths->first; ld; ld = ld->next) { + const char *basepath = (const char *)ld->data; + action_move_fcurves_by_basepath(srcAdt->action, dstAdt->action, basepath); + } + } + + /* drivers */ + if (srcAdt->drivers.first) { + FCurve *fcu, *fcn=NULL; + + /* check each driver against all the base paths to see if any should go */ + for (fcu = srcAdt->drivers.first; fcu; fcu = fcn) { + fcn = fcu->next; + + /* try each basepath in turn, but stop on the first one which works */ + for (ld = basepaths->first; ld; ld = ld->next) { + const char *basepath = (const char *)ld->data; + + if (animpath_matches_basepath(fcu->rna_path, basepath)) { + /* just need to change lists */ + BLI_remlink(&srcAdt->drivers, fcu); + BLI_addtail(&dstAdt->drivers, fcu); + + // TODO: add depsgraph flushing calls? + + /* can stop now, as moved already */ + break; + } + } + } + } +} + /* Path Validation -------------------------------------------- */ /* Check if a given RNA Path is valid, by tracing it from the given ID, and seeing if we can resolve it */ @@ -466,46 +636,77 @@ void BKE_animdata_fix_paths_rename (ID *owner_id, AnimData *adt, const char *pre /* Whole Database Ops -------------------------------------------- */ /* apply the given callback function on all data in main database */ -void BKE_animdata_main_cb (Main *main, ID_AnimData_Edit_Callback func, void *user_data) +void BKE_animdata_main_cb (Main *mainptr, ID_AnimData_Edit_Callback func, void *user_data) { ID *id; + /* standard data version */ #define ANIMDATA_IDS_CB(first) \ for (id= first; id; id= id->next) { \ AnimData *adt= BKE_animdata_from_id(id); \ if (adt) func(id, adt, user_data); \ } - ANIMDATA_IDS_CB(main->nodetree.first); /* nodes */ - ANIMDATA_IDS_CB(main->tex.first); /* textures */ - ANIMDATA_IDS_CB(main->lamp.first); /* lamps */ - ANIMDATA_IDS_CB(main->mat.first); /* materials */ - ANIMDATA_IDS_CB(main->camera.first); /* cameras */ - ANIMDATA_IDS_CB(main->key.first); /* shapekeys */ - ANIMDATA_IDS_CB(main->mball.first); /* metaballs */ - ANIMDATA_IDS_CB(main->curve.first); /* curves */ - ANIMDATA_IDS_CB(main->armature.first); /* armatures */ - ANIMDATA_IDS_CB(main->mesh.first); /* meshes */ - ANIMDATA_IDS_CB(main->particle.first); /* particles */ - ANIMDATA_IDS_CB(main->object.first); /* objects */ - ANIMDATA_IDS_CB(main->world.first); /* worlds */ - ANIMDATA_IDS_CB(main->linestyle.first); /* linestyles */ + /* "embedded" nodetree cases (i.e. scene/material/texture->nodetree) */ +#define ANIMDATA_NODETREE_IDS_CB(first, NtId_Type) \ + for (id= first; id; id= id->next) { \ + AnimData *adt= BKE_animdata_from_id(id); \ + NtId_Type *ntp= (NtId_Type *)id; \ + if (ntp->nodetree) { \ + AnimData *adt2= BKE_animdata_from_id((ID *)ntp); \ + if (adt2) func(id, adt2, user_data); \ + } \ + if (adt) func(id, adt, user_data); \ + } - /* scenes */ - for (id= main->scene.first; id; id= id->next) { - AnimData *adt= BKE_animdata_from_id(id); - Scene *scene= (Scene *)id; + /* nodes */ + ANIMDATA_IDS_CB(mainptr->nodetree.first); - /* do compositing nodes first (since these aren't included in main tree) */ - if (scene->nodetree) { - AnimData *adt2= BKE_animdata_from_id((ID *)scene->nodetree); - if (adt2) func(id, adt2, user_data); - } + /* textures */ + ANIMDATA_NODETREE_IDS_CB(mainptr->tex.first, Tex); - /* now fix scene animation data as per normal */ - if (adt) func((ID *)id, adt, user_data); + /* lamps */ + ANIMDATA_IDS_CB(mainptr->lamp.first); + + /* materials */ + ANIMDATA_NODETREE_IDS_CB(mainptr->mat.first, Material); + + /* cameras */ + ANIMDATA_IDS_CB(mainptr->camera.first); + + /* shapekeys */ + ANIMDATA_IDS_CB(mainptr->key.first); + + /* metaballs */ + ANIMDATA_IDS_CB(mainptr->mball.first); + + /* curves */ + ANIMDATA_IDS_CB(mainptr->curve.first); + + /* armatures */ + ANIMDATA_IDS_CB(mainptr->armature.first); + + /* lattices */ + ANIMDATA_IDS_CB(mainptr->latt.first); + + /* meshes */ + ANIMDATA_IDS_CB(mainptr->mesh.first); + + /* particles */ + ANIMDATA_IDS_CB(mainptr->particle.first); + + /* objects */ + ANIMDATA_IDS_CB(mainptr->object.first); + + /* worlds */ + ANIMDATA_IDS_CB(mainptr->world.first); + + /* scenes */ + ANIMDATA_NODETREE_IDS_CB(mainptr->scene.first, Scene); + + /* line styles */ + ANIMDATA_IDS_CB(mainptr->linestyle.first); } -} /* Fix all RNA-Paths throughout the database (directly access the Global.main version) * NOTE: it is assumed that the structure we're replacing is <prefix><["><name><"]> @@ -527,17 +728,29 @@ void BKE_all_animdata_fix_paths_rename (char *prefix, char *oldName, char *newNa BKE_animdata_fix_paths_rename(id, adt, prefix, oldName, newName, 0, 0, 1);\ } + /* another version of this macro for nodetrees */ +#define RENAMEFIX_ANIM_NODETREE_IDS(first, NtId_Type) \ + for (id= first; id; id= id->next) { \ + AnimData *adt= BKE_animdata_from_id(id); \ + NtId_Type *ntp= (NtId_Type *)id; \ + if (ntp->nodetree) { \ + AnimData *adt2= BKE_animdata_from_id((ID *)ntp); \ + BKE_animdata_fix_paths_rename((ID *)ntp, adt2, prefix, oldName, newName, 0, 0, 1);\ + } \ + BKE_animdata_fix_paths_rename(id, adt, prefix, oldName, newName, 0, 0, 1);\ + } + /* nodes */ RENAMEFIX_ANIM_IDS(mainptr->nodetree.first); /* textures */ - RENAMEFIX_ANIM_IDS(mainptr->tex.first); + RENAMEFIX_ANIM_NODETREE_IDS(mainptr->tex.first, Tex); /* lamps */ RENAMEFIX_ANIM_IDS(mainptr->lamp.first); /* materials */ - RENAMEFIX_ANIM_IDS(mainptr->mat.first); + RENAMEFIX_ANIM_NODETREE_IDS(mainptr->mat.first, Material); /* cameras */ RENAMEFIX_ANIM_IDS(mainptr->camera.first); @@ -554,8 +767,11 @@ void BKE_all_animdata_fix_paths_rename (char *prefix, char *oldName, char *newNa /* armatures */ RENAMEFIX_ANIM_IDS(mainptr->armature.first); + /* lattices */ + RENAMEFIX_ANIM_IDS(mainptr->latt.first); + /* meshes */ - // TODO... + RENAMEFIX_ANIM_IDS(mainptr->mesh.first); /* particles */ RENAMEFIX_ANIM_IDS(mainptr->particle.first); @@ -570,21 +786,9 @@ void BKE_all_animdata_fix_paths_rename (char *prefix, char *oldName, char *newNa RENAMEFIX_ANIM_IDS(mainptr->linestyle.first); /* scenes */ - for (id= mainptr->scene.first; id; id= id->next) { - AnimData *adt= BKE_animdata_from_id(id); - Scene *scene= (Scene *)id; - - /* do compositing nodes first (since these aren't included in main tree) */ - if (scene->nodetree) { - AnimData *adt2= BKE_animdata_from_id((ID *)scene->nodetree); - BKE_animdata_fix_paths_rename((ID *)scene->nodetree, adt2, prefix, oldName, newName, 0, 0, 1); + RENAMEFIX_ANIM_NODETREE_IDS(mainptr->scene.first, Scene); } - /* now fix scene animation data as per normal */ - BKE_animdata_fix_paths_rename((ID *)id, adt, prefix, oldName, newName, 0, 0, 1); - } -} - /* *********************************** */ /* KeyingSet API */ @@ -689,7 +893,7 @@ KS_Path *BKE_keyingset_add_path (KeyingSet *ks, ID *id, const char group_name[], /* just store absolute info */ ksp->id= id; if (group_name) - BLI_snprintf(ksp->group, 64, group_name); + BLI_strncpy(ksp->group, group_name, sizeof(ksp->group)); else ksp->group[0]= '\0'; @@ -1906,7 +2110,6 @@ void BKE_animsys_evaluate_all_animation (Main *main, float ctime) EVAL_ANIM_IDS(main->camera.first, ADT_RECALC_ANIM); /* shapekeys */ - // TODO: we probably need the same hack as for curves (ctime-hack) EVAL_ANIM_IDS(main->key.first, ADT_RECALC_ANIM); /* metaballs */ diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 22d27dc2fde..6b21e45ddd9 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -936,19 +936,15 @@ void armature_deform_verts(Object *armOb, Object *target, DerivedMesh *dm, dvert = NULL; if(armature_def_nr >= 0 && dvert) { - armature_weight = 0.0f; /* a def group was given, so default to 0 */ - for(j = 0; j < dvert->totweight; j++) { - if(dvert->dw[j].def_nr == armature_def_nr) { - armature_weight = dvert->dw[j].weight; - break; - } + armature_weight= defvert_find_weight(dvert, armature_def_nr); + + if(invert_vgroup) { + armature_weight= 1.0f-armature_weight; } + /* hackish: the blending factor can be used for blending with prevCos too */ if(prevCos) { - if(invert_vgroup) - prevco_weight= 1.0f-armature_weight; - else - prevco_weight= armature_weight; + prevco_weight= armature_weight; armature_weight= 1.0f; } } diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c index f644b28b137..b283120249e 100644 --- a/source/blender/blenkernel/intern/cloth.c +++ b/source/blender/blenkernel/intern/cloth.c @@ -504,7 +504,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob, } /* try to read from cache */ - cache_result = BKE_ptcache_read(&pid, (float)framenr+scene->r.subframe, scene->r.frs_sec); + cache_result = BKE_ptcache_read(&pid, (float)framenr+scene->r.subframe); if(cache_result == PTCACHE_READ_EXACT || cache_result == PTCACHE_READ_INTERPOLATED) { implicit_set_positions(clmd); diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index e178beaaa50..f7606a344c9 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -104,6 +104,11 @@ typedef struct LayerTypeInfo { /* a function to determine file size */ size_t (*filesize)(CDataFile *cdf, void *data, int count); + + /* a function to validate layer contents depending on + * sub-elements count + */ + void (*validate)(void *source, int sub_elements); } LayerTypeInfo; static void layerCopy_mdeformvert(const void *source, void *dest, @@ -396,52 +401,6 @@ static void layerDefault_origspace_face(void *data, int count) osf[i] = default_osf; } -/* Adapted from sculptmode.c */ -static void mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v) -{ - int x, y, x2, y2; - const int st_max = st - 1; - float urat, vrat, uopp; - float d[4][3], d2[2][3]; - - if(u < 0) - u = 0; - else if(u >= st) - u = st_max; - if(v < 0) - v = 0; - else if(v >= st) - v = st_max; - - x = floor(u); - y = floor(v); - x2 = x + 1; - y2 = y + 1; - - if(x2 >= st) x2 = st_max; - if(y2 >= st) y2 = st_max; - - urat = u - x; - vrat = v - y; - uopp = 1 - urat; - - copy_v3_v3(d[0], disps[y * st + x]); - copy_v3_v3(d[1], disps[y * st + x2]); - copy_v3_v3(d[2], disps[y2 * st + x]); - copy_v3_v3(d[3], disps[y2 * st + x2]); - mul_v3_fl(d[0], uopp); - mul_v3_fl(d[1], urat); - mul_v3_fl(d[2], uopp); - mul_v3_fl(d[3], urat); - - add_v3_v3v3(d2[0], d[0], d[1]); - add_v3_v3v3(d2[1], d[2], d[3]); - mul_v3_fl(d2[0], 1 - vrat); - mul_v3_fl(d2[1], vrat); - - add_v3_v3v3(out, d2[0], d2[1]); -} - static void layerSwap_mdisps(void *data, const int *ci) { MDisps *s = data; @@ -473,211 +432,6 @@ static void layerSwap_mdisps(void *data, const int *ci) } } -static void mdisp_get_crn_rect(int face_side, float crn[3][4][2]) -{ - float offset = face_side*0.5f - 0.5f; - float mid[2]; - - mid[0] = offset * 4 / 3; - mid[1] = offset * 2 / 3; - - crn[0][0][0] = mid[0]; crn[0][0][1] = mid[1]; - crn[0][1][0] = offset; crn[0][1][1] = 0; - crn[0][2][0] = 0; crn[0][2][1] = 0; - crn[0][3][0] = offset; crn[0][3][1] = offset; - - crn[1][0][0] = mid[0]; crn[1][0][1] = mid[1]; - crn[1][1][0] = offset * 2; crn[1][1][1] = offset; - crn[1][2][0] = offset * 2; crn[1][2][1] = 0; - crn[1][3][0] = offset; crn[1][3][1] = 0; - - crn[2][0][0] = mid[0]; crn[2][0][1] = mid[1]; - crn[2][1][0] = offset; crn[2][1][1] = offset; - crn[2][2][0] = offset * 2; crn[2][2][1] = offset * 2; - crn[2][3][0] = offset * 2; crn[2][3][1] = offset; -} - -static void mdisp_rot_crn_to_face(int S, int corners, int face_side, float x, float y, float *u, float *v) -{ - float offset = face_side*0.5f - 0.5f; - - if(corners == 4) { - if(S == 1) { *u= offset + x; *v = offset - y; } - if(S == 2) { *u= offset + y; *v = offset + x; } - if(S == 3) { *u= offset - x; *v = offset + y; } - if(S == 0) { *u= offset - y; *v = offset - x; } - } else { - float crn[3][4][2], vec[4][2]; - float p[2]; - - mdisp_get_crn_rect(face_side, crn); - - interp_v2_v2v2(vec[0], crn[S][0], crn[S][1], x / offset); - interp_v2_v2v2(vec[1], crn[S][3], crn[S][2], x / offset); - interp_v2_v2v2(vec[2], crn[S][0], crn[S][3], y / offset); - interp_v2_v2v2(vec[3], crn[S][1], crn[S][2], y / offset); - - isect_seg_seg_v2_point(vec[0], vec[1], vec[2], vec[3], p); - - (*u) = p[0]; - (*v) = p[1]; - } -} - -static int mdisp_pt_in_crn(float p[2], float crn[4][2]) -{ - float v[2][2]; - float a[2][2]; - - sub_v2_v2v2(v[0], crn[1], crn[0]); - sub_v2_v2v2(v[1], crn[3], crn[0]); - - sub_v2_v2v2(a[0], p, crn[0]); - sub_v2_v2v2(a[1], crn[2], crn[0]); - - if(cross_v2v2(a[0], v[0]) * cross_v2v2(a[1], v[0]) < 0) - return 0; - - if(cross_v2v2(a[0], v[1]) * cross_v2v2(a[1], v[1]) < 0) - return 0; - - return 1; -} - -static void face_to_crn_interp(float u, float v, float v1[2], float v2[2], float v3[2], float v4[2], float *x) -{ - float a = (v4[1]-v3[1])*v2[0]+(-v4[1]+v3[1])*v1[0]+(-v2[1]+v1[1])*v4[0]+(v2[1]-v1[1])*v3[0]; - float b = (v3[1]-v)*v2[0]+(v4[1]-2*v3[1]+v)*v1[0]+(-v4[1]+v3[1]+v2[1]-v1[1])*u+(v4[0]-v3[0])*v-v1[1]*v4[0]+(-v2[1]+2*v1[1])*v3[0]; - float c = (v3[1]-v)*v1[0]+(-v3[1]+v1[1])*u+v3[0]*v-v1[1]*v3[0]; - float d = b * b - 4 * a * c; - float x1, x2; - - if(a == 0) { - *x = -c / b; - return; - } - - x1 = (-b - sqrtf(d)) / (2 * a); - x2 = (-b + sqrtf(d)) / (2 * a); - - *x = maxf(x1, x2); -} - -static int mdisp_rot_face_to_crn(int corners, int face_side, float u, float v, float *x, float *y) -{ - float offset = face_side*0.5f - 0.5f; - int S; - - if (corners == 4) { - if(u <= offset && v <= offset) S = 0; - else if(u > offset && v <= offset) S = 1; - else if(u > offset && v > offset) S = 2; - else if(u <= offset && v >= offset) S = 3; - - if(S == 0) { - *y = offset - u; - *x = offset - v; - } else if(S == 1) { - *x = u - offset; - *y = offset - v; - } else if(S == 2) { - *y = u - offset; - *x = v - offset; - } else if(S == 3) { - *x= offset - u; - *y = v - offset; - } - } else { - float crn[3][4][2]; - float p[2] = {u, v}; - - mdisp_get_crn_rect(face_side, crn); - - for (S = 0; S < 3; ++S) { - if (mdisp_pt_in_crn(p, crn[S])) - break; - } - - face_to_crn_interp(u, v, crn[S][0], crn[S][1], crn[S][3], crn[S][2], &p[0]); - face_to_crn_interp(u, v, crn[S][0], crn[S][3], crn[S][1], crn[S][2], &p[1]); - - *x = p[0] * offset; - *y = p[1] * offset; - } - - return S; -} - -static void mdisp_apply_weight(int S, int corners, int x, int y, int face_side, - float crn_weight[4][2], float *u_r, float *v_r) -{ - float u, v, xl, yl; - float mid1[2], mid2[2], mid3[2]; - - mdisp_rot_crn_to_face(S, corners, face_side, x, y, &u, &v); - - if(corners == 4) { - xl = u / (face_side - 1); - yl = v / (face_side - 1); - - mid1[0] = crn_weight[0][0] * (1 - xl) + crn_weight[1][0] * xl; - mid1[1] = crn_weight[0][1] * (1 - xl) + crn_weight[1][1] * xl; - mid2[0] = crn_weight[3][0] * (1 - xl) + crn_weight[2][0] * xl; - mid2[1] = crn_weight[3][1] * (1 - xl) + crn_weight[2][1] * xl; - mid3[0] = mid1[0] * (1 - yl) + mid2[0] * yl; - mid3[1] = mid1[1] * (1 - yl) + mid2[1] * yl; - } else { - yl = v / (face_side - 1); - - if(v == face_side - 1) xl = 1; - else xl = 1 - (face_side - 1 - u) / (face_side - 1 - v); - - mid1[0] = crn_weight[0][0] * (1 - xl) + crn_weight[1][0] * xl; - mid1[1] = crn_weight[0][1] * (1 - xl) + crn_weight[1][1] * xl; - mid3[0] = mid1[0] * (1 - yl) + crn_weight[2][0] * yl; - mid3[1] = mid1[1] * (1 - yl) + crn_weight[2][1] * yl; - } - - *u_r = mid3[0]; - *v_r = mid3[1]; -} - -static void mdisp_flip_disp(int S, int corners, float axis_x[2], float axis_y[2], float disp[3]) -{ - float crn_x[2], crn_y[2]; - float vx[2], vy[2], coord[2]; - - if (corners == 4) { - float x[4][2] = {{0, -1}, {1, 0}, {0, 1}, {-1, 0}}; - float y[4][2] = {{-1, 0}, {0, -1}, {1, 0}, {0, 1}}; - - copy_v2_v2(crn_x, x[S]); - copy_v2_v2(crn_y, y[S]); - - mul_v2_v2fl(vx, crn_x, disp[0]); - mul_v2_v2fl(vy, crn_y, disp[1]); - add_v2_v2v2(coord, vx, vy); - - project_v2_v2v2(vx, coord, axis_x); - project_v2_v2v2(vy, coord, axis_y); - - disp[0] = len_v2(vx); - disp[1] = len_v2(vy); - - if(dot_v2v2(vx, axis_x) < 0) - disp[0] = -disp[0]; - - if(dot_v2v2(vy, axis_y) < 0) - disp[1] = -disp[1]; - } else { - /* XXX: it was very overhead code to support displacement flipping - for case of tris without visible profit. - Maybe its not really big limitation? for now? (nazgul) */ - disp[0] = 0; - disp[1] = 0; - } -} - static void layerInterp_mdisps(void **sources, float *UNUSED(weights), float *sub_weights, int count, void *dest) { @@ -687,16 +441,55 @@ static void layerInterp_mdisps(void **sources, float *UNUSED(weights), int i, x, y; int side, S, dst_corners, src_corners; float crn_weight[4][2]; - float (*sw)[4] = NULL; + float (*sw)[4] = (void*)sub_weights; float (*disps)[3], (*out)[3]; s = sources[0]; dst_corners = multires_mdisp_corners(d); src_corners = multires_mdisp_corners(s); - /* XXX: For now, some restrictions on the input - should be implemented to allow quad<->tris face conversion */ - if(count != 1 || !sub_weights || dst_corners != src_corners) { + if(sub_weights && count == 2 && src_corners == 3) { + src_corners = multires_mdisp_corners(sources[1]); + + /* special case -- converting two triangles to quad */ + if(src_corners == 3 && dst_corners == 4) { + MDisps tris[2]; + int vindex[4] = {0}; + + S = 0; + for(i = 0; i < 2; i++) + for(y = 0; y < 4; y++) + for(x = 0; x < 4; x++) + if(sw[x+i*4][y]) + vindex[x] = y; + + for(i = 0; i < 2; i++) { + float sw[4][4] = {{0}}; + int a = 7 & ~(1 << vindex[i*2] | 1 << vindex[i*2+1]); + + sw[0][vindex[i*2+1]] = 1; + sw[1][vindex[i*2]] = 1; + + for(x = 0; x < 3; x++) + if(a & (1 << x)) + sw[2][x] = 1; + + tris[i] = *((MDisps*)sources[i]); + tris[i].disps = MEM_dupallocN(tris[i].disps); + layerInterp_mdisps(&sources[i], NULL, (float*)sw, 1, &tris[i]); + } + + mdisp_join_tris(d, &tris[0], &tris[1]); + + for(i = 0; i < 2; i++) + MEM_freeN(tris[i].disps); + + return; + } + } + + /* For now, some restrictions on the input */ + if(count != 1 || !sub_weights) { for(i = 0; i < d->totdisp; ++i) zero_v3(d->disps[i]); @@ -739,7 +532,7 @@ static void layerInterp_mdisps(void **sources, float *UNUSED(weights), mdisp_apply_weight(S, dst_corners, x, y, st, crn_weight, &face_u, &face_v); crn = mdisp_rot_face_to_crn(src_corners, st, face_u, face_v, &crn_u, &crn_v); - mdisps_bilinear((*out), &s->disps[crn*side*side], side, crn_u, crn_v); + old_mdisps_bilinear((*out), &s->disps[crn*side*side], side, crn_u, crn_v); mdisp_flip_disp(crn, dst_corners, axis_x, axis_y, *out); } } @@ -768,6 +561,20 @@ static void layerCopy_mdisps(const void *source, void *dest, int count) } } +static void layerValidate_mdisps(void *data, int sub_elements) +{ + MDisps *disps = data; + if(disps->disps) { + int corners = multires_mdisp_corners(disps); + + if(corners != sub_elements) { + MEM_freeN(disps->disps); + disps->totdisp = disps->totdisp / corners * sub_elements; + disps->disps = MEM_callocN(3*disps->totdisp*sizeof(float), "layerValidate_mdisps"); + } + } +} + static void layerFree_mdisps(void *data, int count, int UNUSED(size)) { int i; @@ -1019,7 +826,8 @@ const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = { {sizeof(MLoopCol), "MLoopCol", 1, "Col", NULL, NULL, layerInterp_mloopcol, NULL, layerDefault_mloopcol}, {sizeof(float)*3*4, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(MDisps), "MDisps", 1, NULL, layerCopy_mdisps, - layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL, layerRead_mdisps, layerWrite_mdisps, layerFilesize_mdisps}, + layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL, layerRead_mdisps, layerWrite_mdisps, + layerFilesize_mdisps, layerValidate_mdisps}, {sizeof(MCol)*4, "MCol", 4, "WeightCol", NULL, NULL, layerInterp_mcol, layerSwap_mcol, layerDefault_mcol}, {sizeof(MCol)*4, "MCol", 4, "IDCol", NULL, NULL, layerInterp_mcol, @@ -1942,6 +1750,18 @@ void CustomData_em_copy_data(const CustomData *source, CustomData *dest, } } +void CustomData_em_validate_data(CustomData *data, void *block, int sub_elements) +{ + int i; + for(i = 0; i < data->totlayer; i++) { + const LayerTypeInfo *typeInfo = layerType_getInfo(data->layers[i].type); + char *leayer_data = (char*)block + data->layers[i].offset; + + if(typeInfo->validate) + typeInfo->validate(leayer_data, sub_elements); + } +} + void *CustomData_em_get(const CustomData *data, void *block, int type) { int layer_index; diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c index ad797736a85..937681fcdc3 100644 --- a/source/blender/blenkernel/intern/deform.c +++ b/source/blender/blenkernel/intern/deform.c @@ -448,7 +448,7 @@ void flip_side_name (char *name, const char *from_name, int strip_number) sprintf (name, "%s%s%s%s", prefix, replace, suffix, number); } -float defvert_find_weight(const struct MDeformVert *dvert, int group_num) +float defvert_find_weight(const struct MDeformVert *dvert, const int group_num) { MDeformWeight *dw= defvert_find_index(dvert, group_num); return dw ? dw->weight : 0.0f; diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 325e64bf768..f2bc586f15c 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -1329,7 +1329,7 @@ DriverVar *driver_add_new_variable (ChannelDriver *driver) #ifdef WITH_PYTHON /* since driver variables are cached, the expression needs re-compiling too */ - if(driver->type==DRIVER_TYPE_PYTHON) + if (driver->type==DRIVER_TYPE_PYTHON) driver->flag |= DRIVER_FLAG_RENAMEVAR; #endif diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index 1ed8241325e..0376d75d651 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -1009,9 +1009,13 @@ FModifier *add_fmodifier (ListBase *modifiers, int type) fcm->flag = FMODIFIER_FLAG_EXPANDED; BLI_addtail(modifiers, fcm); + /* tag modifier as "active" if no other modifiers exist in the stack yet */ + if (modifiers->first == modifiers->last) + fcm->flag |= FMODIFIER_FLAG_ACTIVE; + /* add modifier's data */ fcm->data= MEM_callocN(fmi->size, fmi->structName); - + /* init custom settings if necessary */ if (fmi->new_data) fmi->new_data(fcm->data); diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c index 500ccf0781b..ec63975a3c0 100644 --- a/source/blender/blenkernel/intern/font.c +++ b/source/blender/blenkernel/intern/font.c @@ -670,7 +670,7 @@ struct chartrans *BKE_text_to_curve(Scene *scene, Object *ob, int mode) VFont *vfont, *oldvfont; VFontData *vfd= NULL; Curve *cu; - CharInfo *info, *custrinfo; + CharInfo *info = NULL, *custrinfo; TextBox *tb; VChar *che; struct chartrans *chartransdata=NULL, *ct; diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index c18085b2d73..8cdfbaf9e2a 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1191,7 +1191,7 @@ static void do_curve_key(Scene *scene, Object *ob, Key *key, char *out, int tot) if(key->slurph && key->type!=KEY_RELATIVE) { Nurb *nu; - int mode, i= 0, remain= 0, estep, count; + int mode=0, i= 0, remain= 0, estep=0, count=0; delta= (float)key->slurph / tot; diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c index 03cbd9e41fd..8658d7e482f 100644 --- a/source/blender/blenkernel/intern/mball.c +++ b/source/blender/blenkernel/intern/mball.c @@ -737,7 +737,7 @@ void accum_mballfaces(int i1, int i2, int i3, int i4) void *new_pgn_element(int size) { /* during polygonize 1000s of elements are allocated - * and never freed inbetween. Freeing only done at the end. + * and never freed in between. Freeing only done at the end. */ int blocksize= 16384; static int offs= 0; /* the current free address */ diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 2224b3d8d49..84350127968 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -837,7 +837,7 @@ DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, int loca ***************************/ /* Adapted from sculptmode.c */ -static void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v) +void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v) { int x, y, x2, y2; const int st_max = st - 1; @@ -1774,3 +1774,254 @@ void multires_mdisp_smooth_bounds(MDisps *disps) } } } + +/***************** Multires interpolation stuff *****************/ + +static void mdisp_get_crn_rect(int face_side, float crn[3][4][2]) +{ + float offset = face_side*0.5f - 0.5f; + float mid[2]; + + mid[0] = offset * 4 / 3; + mid[1] = offset * 2 / 3; + + crn[0][0][0] = mid[0]; crn[0][0][1] = mid[1]; + crn[0][1][0] = offset; crn[0][1][1] = 0; + crn[0][2][0] = 0; crn[0][2][1] = 0; + crn[0][3][0] = offset; crn[0][3][1] = offset; + + crn[1][0][0] = mid[0]; crn[1][0][1] = mid[1]; + crn[1][1][0] = offset * 2; crn[1][1][1] = offset; + crn[1][2][0] = offset * 2; crn[1][2][1] = 0; + crn[1][3][0] = offset; crn[1][3][1] = 0; + + crn[2][0][0] = mid[0]; crn[2][0][1] = mid[1]; + crn[2][1][0] = offset; crn[2][1][1] = offset; + crn[2][2][0] = offset * 2; crn[2][2][1] = offset * 2; + crn[2][3][0] = offset * 2; crn[2][3][1] = offset; +} + +static int mdisp_pt_in_crn(float p[2], float crn[4][2]) +{ + float v[2][2]; + float a[2][2]; + + sub_v2_v2v2(v[0], crn[1], crn[0]); + sub_v2_v2v2(v[1], crn[3], crn[0]); + + sub_v2_v2v2(a[0], p, crn[0]); + sub_v2_v2v2(a[1], crn[2], crn[0]); + + if(cross_v2v2(a[0], v[0]) * cross_v2v2(a[1], v[0]) < 0) + return 0; + + if(cross_v2v2(a[0], v[1]) * cross_v2v2(a[1], v[1]) < 0) + return 0; + + return 1; +} + +static void face_to_crn_interp(float u, float v, float v1[2], float v2[2], float v3[2], float v4[2], float *x) +{ + float a = (v4[1]-v3[1])*v2[0]+(-v4[1]+v3[1])*v1[0]+(-v2[1]+v1[1])*v4[0]+(v2[1]-v1[1])*v3[0]; + float b = (v3[1]-v)*v2[0]+(v4[1]-2*v3[1]+v)*v1[0]+(-v4[1]+v3[1]+v2[1]-v1[1])*u+(v4[0]-v3[0])*v-v1[1]*v4[0]+(-v2[1]+2*v1[1])*v3[0]; + float c = (v3[1]-v)*v1[0]+(-v3[1]+v1[1])*u+v3[0]*v-v1[1]*v3[0]; + float d = b * b - 4 * a * c; + float x1, x2; + + if(a == 0) { + *x = -c / b; + return; + } + + x1 = (-b - sqrtf(d)) / (2 * a); + x2 = (-b + sqrtf(d)) / (2 * a); + + *x = maxf(x1, x2); +} + +void mdisp_rot_crn_to_face(int S, int corners, int face_side, float x, float y, float *u, float *v) +{ + float offset = face_side*0.5f - 0.5f; + + if(corners == 4) { + if(S == 1) { *u= offset + x; *v = offset - y; } + if(S == 2) { *u= offset + y; *v = offset + x; } + if(S == 3) { *u= offset - x; *v = offset + y; } + if(S == 0) { *u= offset - y; *v = offset - x; } + } else { + float crn[3][4][2], vec[4][2]; + float p[2]; + + mdisp_get_crn_rect(face_side, crn); + + interp_v2_v2v2(vec[0], crn[S][0], crn[S][1], x / offset); + interp_v2_v2v2(vec[1], crn[S][3], crn[S][2], x / offset); + interp_v2_v2v2(vec[2], crn[S][0], crn[S][3], y / offset); + interp_v2_v2v2(vec[3], crn[S][1], crn[S][2], y / offset); + + isect_seg_seg_v2_point(vec[0], vec[1], vec[2], vec[3], p); + + (*u) = p[0]; + (*v) = p[1]; + } +} + +int mdisp_rot_face_to_crn(int corners, int face_side, float u, float v, float *x, float *y) +{ + float offset = face_side*0.5f - 0.5f; + int S; + + if (corners == 4) { + if(u <= offset && v <= offset) S = 0; + else if(u > offset && v <= offset) S = 1; + else if(u > offset && v > offset) S = 2; + else if(u <= offset && v >= offset) S = 3; + + if(S == 0) { + *y = offset - u; + *x = offset - v; + } else if(S == 1) { + *x = u - offset; + *y = offset - v; + } else if(S == 2) { + *y = u - offset; + *x = v - offset; + } else if(S == 3) { + *x= offset - u; + *y = v - offset; + } + } else { + float crn[3][4][2]; + float p[2] = {u, v}; + + mdisp_get_crn_rect(face_side, crn); + + for (S = 0; S < 3; ++S) { + if (mdisp_pt_in_crn(p, crn[S])) + break; + } + + face_to_crn_interp(u, v, crn[S][0], crn[S][1], crn[S][3], crn[S][2], &p[0]); + face_to_crn_interp(u, v, crn[S][0], crn[S][3], crn[S][1], crn[S][2], &p[1]); + + *x = p[0] * offset; + *y = p[1] * offset; + } + + return S; +} + +void mdisp_apply_weight(int S, int corners, int x, int y, int face_side, + float crn_weight[4][2], float *u_r, float *v_r) +{ + float u, v, xl, yl; + float mid1[2], mid2[2], mid3[2]; + + mdisp_rot_crn_to_face(S, corners, face_side, x, y, &u, &v); + + if(corners == 4) { + xl = u / (face_side - 1); + yl = v / (face_side - 1); + + mid1[0] = crn_weight[0][0] * (1 - xl) + crn_weight[1][0] * xl; + mid1[1] = crn_weight[0][1] * (1 - xl) + crn_weight[1][1] * xl; + mid2[0] = crn_weight[3][0] * (1 - xl) + crn_weight[2][0] * xl; + mid2[1] = crn_weight[3][1] * (1 - xl) + crn_weight[2][1] * xl; + mid3[0] = mid1[0] * (1 - yl) + mid2[0] * yl; + mid3[1] = mid1[1] * (1 - yl) + mid2[1] * yl; + } else { + yl = v / (face_side - 1); + + if(v == face_side - 1) xl = 1; + else xl = 1 - (face_side - 1 - u) / (face_side - 1 - v); + + mid1[0] = crn_weight[0][0] * (1 - xl) + crn_weight[1][0] * xl; + mid1[1] = crn_weight[0][1] * (1 - xl) + crn_weight[1][1] * xl; + mid3[0] = mid1[0] * (1 - yl) + crn_weight[2][0] * yl; + mid3[1] = mid1[1] * (1 - yl) + crn_weight[2][1] * yl; + } + + *u_r = mid3[0]; + *v_r = mid3[1]; +} + +void mdisp_flip_disp(int S, int corners, float axis_x[2], float axis_y[2], float disp[3]) +{ + float crn_x[2], crn_y[2]; + float vx[2], vy[2], coord[2]; + + if (corners == 4) { + float x[4][2] = {{0, -1}, {1, 0}, {0, 1}, {-1, 0}}; + float y[4][2] = {{-1, 0}, {0, -1}, {1, 0}, {0, 1}}; + + copy_v2_v2(crn_x, x[S]); + copy_v2_v2(crn_y, y[S]); + + mul_v2_v2fl(vx, crn_x, disp[0]); + mul_v2_v2fl(vy, crn_y, disp[1]); + add_v2_v2v2(coord, vx, vy); + + project_v2_v2v2(vx, coord, axis_x); + project_v2_v2v2(vy, coord, axis_y); + + disp[0] = len_v2(vx); + disp[1] = len_v2(vy); + + if(dot_v2v2(vx, axis_x) < 0) + disp[0] = -disp[0]; + + if(dot_v2v2(vy, axis_y) < 0) + disp[1] = -disp[1]; + } else { + /* XXX: it was very overhead code to support displacement flipping + for case of tris without visible profit. + Maybe its not really big limitation? for now? (nazgul) */ + disp[0] = 0; + disp[1] = 0; + } +} + +/* Join two triangular displacements into one quad + Corners mapping: + 2 -------- 3 + | \ tri2 | + | \ | + | tri1 \ | + 0 -------- 1 */ +void mdisp_join_tris(MDisps *dst, MDisps *tri1, MDisps *tri2) +{ + int side, st; + int S, x, y, crn; + float face_u, face_v, crn_u, crn_v; + float (*out)[3]; + MDisps *src; + + if(dst->disps) + MEM_freeN(dst->disps); + + side = sqrt(tri1->totdisp / 3); + st = (side<<1)-1; + + dst->totdisp = 4 * side * side; + out = dst->disps = MEM_callocN(3*dst->totdisp*sizeof(float), "join disps"); + + for(S = 0; S < 4; S++) + for(y = 0; y < side; ++y) + for(x = 0; x < side; ++x, ++out) { + mdisp_rot_crn_to_face(S, 4, st, x, y, &face_u, &face_v); + face_u = st - 1 - face_u; + + if(face_v > face_u) { + src = tri2; + face_u = st - 1 - face_u; + face_v = st - 1 - face_v; + } else src = tri1; + + crn = mdisp_rot_face_to_crn(3, st, face_u, face_v, &crn_u, &crn_v); + + old_mdisps_bilinear((*out), &src->disps[crn*side*side], side, crn_u, crn_v); + (*out)[0] = 0; + (*out)[1] = 0; + } +} diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index f52a538cc00..db11b42ee1e 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -36,11 +36,13 @@ #include <string.h> #include "DNA_anim_types.h" +#include "DNA_action_types.h" #include "RNA_access.h" +#include "BKE_animsys.h" +#include "BKE_action.h" #include "BKE_fcurve.h" -#include "BKE_animsys.h" /* BKE_free_animdata only */ #include "PIL_time.h" @@ -460,6 +462,7 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree) bNode *node, *gnode, *nextn; bNodeSocket *sock; bNodeTree *ngroup; + ListBase anim_basepaths = {NULL, NULL}; float min[2], max[2]; int totnode=0; @@ -502,11 +505,27 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree) for(node= ntree->nodes.first; node; node= nextn) { nextn= node->next; if(node->flag & NODE_SELECT) { + /* keep track of this node's RNA "base" path (the part of the pat identifying the node) + * if the old nodetree has animation data which potentially covers this node + */ + if (ntree->adt) { + PointerRNA ptr; + char *path; + + RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); + path = RNA_path_from_ID_to_struct(&ptr); + + if (path) + BLI_addtail(&anim_basepaths, BLI_genericNodeN(path)); + } + + /* change node-collection membership */ BLI_remlink(&ntree->nodes, node); BLI_addtail(&ngroup->nodes, node); + node->locx-= 0.5f*(min[0]+max[0]); node->locy-= 0.5f*(min[1]+max[1]); - + /* set socket own_index to zero since it can still have a value * from being in a group before, otherwise it doesn't get a unique * index in group_verify_own_indices */ @@ -526,6 +545,21 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree) } } + /* move animation data over */ + if (ntree->adt) { + LinkData *ld, *ldn=NULL; + + BKE_animdata_separate_by_basepath(&ntree->id, &ngroup->id, &anim_basepaths); + + /* paths + their wrappers need to be freed */ + for (ld = anim_basepaths.first; ld; ld = ld->next) { + ldn = ld->next; + + MEM_freeN(ld->data); + BLI_freelinkN(&anim_basepaths, ld); + } + } + /* now we can make own group typeinfo */ ntreeMakeOwnType(ngroup); @@ -771,6 +805,7 @@ int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode) bNodeLink *link, *linkn; bNode *node, *nextn; bNodeTree *ngroup, *wgroup; + ListBase anim_basepaths = {NULL, NULL}; int index; ngroup= (bNodeTree *)gnode->id; @@ -779,16 +814,38 @@ int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode) /* clear new pointers, set in copytree */ for(node= ntree->nodes.first; node; node= node->next) node->new_node= NULL; - + + /* wgroup is a temporary copy of the NodeTree we're merging in + * - all of wgroup's nodes are transferred across to their new home + * - ngroup (i.e. the source NodeTree) is left unscathed + */ wgroup= ntreeCopyTree(ngroup, 0); /* add the nodes into the ntree */ for(node= wgroup->nodes.first; node; node= nextn) { nextn= node->next; + + /* keep track of this node's RNA "base" path (the part of the pat identifying the node) + * if the old nodetree has animation data which potentially covers this node + */ + if (wgroup->adt) { + PointerRNA ptr; + char *path; + + RNA_pointer_create(&wgroup->id, &RNA_Node, node, &ptr); + path = RNA_path_from_ID_to_struct(&ptr); + + if (path) + BLI_addtail(&anim_basepaths, BLI_genericNodeN(path)); + } + + /* migrate node */ BLI_remlink(&wgroup->nodes, node); BLI_addtail(&ntree->nodes, node); + node->locx+= gnode->locx; node->locy+= gnode->locy; + node->flag |= NODE_SELECT; } /* and the internal links */ @@ -797,6 +854,29 @@ int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode) BLI_remlink(&wgroup->links, link); BLI_addtail(&ntree->links, link); } + + /* and copy across the animation */ + if (wgroup->adt) { + LinkData *ld, *ldn=NULL; + bAction *waction; + + /* firstly, wgroup needs to temporary dummy action that can be destroyed, as it shares copies */ + waction = wgroup->adt->action = copy_action(wgroup->adt->action); + + /* now perform the moving */ + BKE_animdata_separate_by_basepath(&wgroup->id, &ntree->id, &anim_basepaths); + + /* paths + their wrappers need to be freed */ + for (ld = anim_basepaths.first; ld; ld = ld->next) { + ldn = ld->next; + + MEM_freeN(ld->data); + BLI_freelinkN(&anim_basepaths, ld); + } + + /* free temp action too */ + free_libblock(&G.main->action, waction); + } /* restore links to and from the gnode */ for(link= ntree->links.first; link; link= link->next) { @@ -2474,6 +2554,25 @@ static bNode *getExecutableNode(bNodeTree *ntree) return NULL; } +/* check if texture nodes need exec or end */ +static void ntree_composite_texnode(bNodeTree *ntree, int init) +{ + bNode *node; + + for(node= ntree->nodes.first; node; node= node->next) { + if(node->type==CMP_NODE_TEXTURE && node->id) { + Tex *tex= (Tex *)node->id; + if(tex->nodetree && tex->use_nodes) { + /* has internal flag to detect it only does it once */ + if(init) + ntreeBeginExecTree(tex->nodetree); + else + ntreeEndExecTree(tex->nodetree); + } + } + } + +} /* optimized tree execute test for compositing */ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview) @@ -2489,6 +2588,7 @@ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview) ntreeInitPreview(ntree, 0, 0); ntreeBeginExecTree(ntree); + ntree_composite_texnode(ntree, 1); /* prevent unlucky accidents */ if(G.background) diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index a7506f2114b..95e14542e28 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -1158,7 +1158,7 @@ static void init_particle_interpolation(Object *ob, ParticleSystem *psys, Partic pind->dietime = (key + pa->totkey - 1)->time; } else if(pind->cache) { - float start, end; + float start=0.0f, end=0.0f; get_pointcache_keys_for_time(ob, pind->cache, &pind->pm, -1, 0.0f, NULL, NULL); pind->birthtime = pa ? pa->time : pind->cache->startframe; pind->dietime = pa ? pa->dietime : pind->cache->endframe; @@ -2807,7 +2807,7 @@ void psys_cache_paths(ParticleSimulationData *sim, float cfra) float birthtime = 0.0, dietime = 0.0; float t, time = 0.0, dfra = 1.0, frs_sec = sim->scene->r.frs_sec; float col[4] = {0.5f, 0.5f, 0.5f, 1.0f}; - float prev_tangent[3], hairmat[4][4]; + float prev_tangent[3] = {0.0f, 0.0f, 0.0f}, hairmat[4][4]; float rotmat[3][3]; int k; int steps = (int)pow(2.0, (double)(psys->renderdata ? part->ren_step : part->draw_step)); @@ -3025,7 +3025,7 @@ void psys_cache_edit_paths(Scene *scene, Object *ob, PTCacheEdit *edit, float cf float birthtime = 0.0, dietime = 0.0; float t, time = 0.0, keytime = 0.0, frs_sec; - float hairmat[4][4], rotmat[3][3], prev_tangent[3]; + float hairmat[4][4], rotmat[3][3], prev_tangent[3] = {0.0f, 0.0f, 0.0f}; int k, i; int steps = (int)pow(2.0, (double)pset->draw_step); int totpart = edit->totpoint, recalc_set=0; diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 1f36f0845a2..f0af7e8684b 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -350,7 +350,7 @@ void psys_calc_dmcache(Object *ob, DerivedMesh *dm, ParticleSystem *psys) pa->num_dmcache= GET_INT_FROM_POINTER(nodearray[pa->num]->link); } else { /* FROM_FACE/FROM_VOLUME */ - /* Note that somtimes the pa->num is over the nodearray size, this is bad, maybe there is a better place to fix this, + /* Note that sometimes the pa->num is over the nodearray size, this is bad, maybe there is a better place to fix this, * but for now passing NULL is OK. every face will be searched for the particle so its slower - Campbell */ pa->num_dmcache= psys_particle_dm_face_lookup(ob, dm, pa->num, pa->fuv, pa->num < totelem ? nodearray[pa->num] : NULL); } @@ -2244,7 +2244,9 @@ void psys_make_temp_pointcache(Object *ob, ParticleSystem *psys) if(cache->flag & PTCACHE_DISK_CACHE && cache->mem_cache.first == NULL) { PTCacheID pid; BKE_ptcache_id_from_particles(&pid, ob, psys); + cache->flag &= ~PTCACHE_DISK_CACHE; BKE_ptcache_disk_to_mem(&pid); + cache->flag |= PTCACHE_DISK_CACHE; } } static void psys_clear_temp_pointcache(ParticleSystem *psys) @@ -3795,7 +3797,7 @@ static void system_step(ParticleSimulationData *sim, float cfra) /* 2. try to read from the cache */ if(pid) { - int cache_result = BKE_ptcache_read(pid, cache_cfra, sim->scene->r.frs_sec); + int cache_result = BKE_ptcache_read(pid, cache_cfra); if(ELEM(cache_result, PTCACHE_READ_EXACT, PTCACHE_READ_INTERPOLATED)) { cached_step(sim, cfra); diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 7a8d3a8b19c..b8e8508da26 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -96,7 +96,7 @@ #define DURIAN_POINTCACHE_LIB_OK 1 int ptcache_data_size[] = { - sizeof(int), // BPHYS_DATA_INDEX + sizeof(uint32_t), // BPHYS_DATA_INDEX 3 * sizeof(float), // BPHYS_DATA_LOCATION: 3 * sizeof(float), // BPHYS_DATA_VELOCITY: 4 * sizeof(float), // BPHYS_DATA_ROTATION: @@ -107,30 +107,38 @@ int ptcache_data_size[] = { }; /* forward declerations */ -static int ptcache_file_write(PTCacheFile *pf, void *f, size_t tot, int size); -static int ptcache_file_read(PTCacheFile *pf, void *f, size_t tot, int size); +static int ptcache_file_compressed_read(PTCacheFile *pf, unsigned char *result, size_t len); +static int ptcache_file_compressed_write(PTCacheFile *pf, unsigned char *in, size_t in_len, unsigned char *out, int mode); +static int ptcache_file_write(PTCacheFile *pf, void *f, size_t tot, size_t size); +static int ptcache_file_read(PTCacheFile *pf, void *f, size_t tot, size_t size); /* Common functions */ static int ptcache_basic_header_read(PTCacheFile *pf) { + uint32_t totpoint, data_types; int error=0; /* Custom functions should read these basic elements too! */ - if(!error && !fread(&pf->totpoint, sizeof(int), 1, pf->fp)) + if(!error && !fread(&totpoint, sizeof(int), 1, pf->fp)) error = 1; + pf->totpoint = totpoint; - if(!error && !fread(&pf->data_types, sizeof(int), 1, pf->fp)) + if(!error && !fread(&data_types, sizeof(int), 1, pf->fp)) error = 1; + pf->data_types = data_types; return !error; } static int ptcache_basic_header_write(PTCacheFile *pf) { + uint32_t totpoint = pf->totpoint; + uint32_t data_types = pf->data_types; + /* Custom functions should write these basic elements too! */ - if(!fwrite(&pf->totpoint, sizeof(int), 1, pf->fp)) + if(!fwrite(&totpoint, sizeof(int), 1, pf->fp)) return 0; - if(!fwrite(&pf->data_types, sizeof(int), 1, pf->fp)) + if(!fwrite(&data_types, sizeof(int), 1, pf->fp)) return 0; return 1; @@ -146,7 +154,7 @@ static int ptcache_softbody_write(int index, void *soft_v, void **data, int UNU return 1; } -static void ptcache_softbody_read(int index, void *soft_v, void **data, float UNUSED(frs_sec), float UNUSED(cfra), float *old_data) +static void ptcache_softbody_read(int index, void *soft_v, void **data, float UNUSED(cfra), float *old_data) { SoftBody *soft= soft_v; BodyPoint *bp = soft->bpoint + index; @@ -160,7 +168,7 @@ static void ptcache_softbody_read(int index, void *soft_v, void **data, float UN PTCACHE_DATA_TO(data, BPHYS_DATA_VELOCITY, 0, bp->vec); } } -static void ptcache_softbody_interpolate(int index, void *soft_v, void **data, float UNUSED(frs_sec), float cfra, float cfra1, float cfra2, float *old_data) +static void ptcache_softbody_interpolate(int index, void *soft_v, void **data, float cfra, float cfra1, float cfra2, float *old_data) { SoftBody *soft= soft_v; BodyPoint *bp = soft->bpoint + index; @@ -244,11 +252,12 @@ static int ptcache_particle_write(int index, void *psys_v, void **data, int cfr /* return flag 1+1=2 for newly born particles to copy exact birth location to previously cached frame */ return 1 + (pa->state.time >= pa->time && pa->prev_state.time <= pa->time); } -static void ptcache_particle_read(int index, void *psys_v, void **data, float frs_sec, float cfra, float *old_data) +static void ptcache_particle_read(int index, void *psys_v, void **data, float cfra, float *old_data) { ParticleSystem *psys= psys_v; ParticleData *pa; BoidParticle *boid; + float timestep = 0.04f*psys->part->timetweak; if(index >= psys->totpart) return; @@ -289,11 +298,11 @@ static void ptcache_particle_read(int index, void *psys_v, void **data, float fr if(data[BPHYS_DATA_LOCATION] && !data[BPHYS_DATA_VELOCITY]) { if(cfra > pa->prev_state.time) { sub_v3_v3v3(pa->state.vel, pa->state.co, pa->prev_state.co); - mul_v3_fl(pa->state.vel, (cfra - pa->prev_state.time) / frs_sec); + mul_v3_fl(pa->state.vel, (cfra - pa->prev_state.time) * timestep); } else { sub_v3_v3v3(pa->state.vel, pa->prev_state.co, pa->state.co); - mul_v3_fl(pa->state.vel, (pa->prev_state.time - cfra) / frs_sec); + mul_v3_fl(pa->state.vel, (pa->prev_state.time - cfra) * timestep); } } @@ -302,12 +311,12 @@ static void ptcache_particle_read(int index, void *psys_v, void **data, float fr vec_to_quat( pa->state.rot,pa->state.vel, OB_NEGX, OB_POSZ); } } -static void ptcache_particle_interpolate(int index, void *psys_v, void **data, float frs_sec, float cfra, float cfra1, float cfra2, float *old_data) +static void ptcache_particle_interpolate(int index, void *psys_v, void **data, float cfra, float cfra1, float cfra2, float *old_data) { ParticleSystem *psys= psys_v; ParticleData *pa; ParticleKey keys[4]; - float dfra; + float dfra, timestep = 0.04f*psys->part->timetweak; if(index >= psys->totpart) return; @@ -335,11 +344,11 @@ static void ptcache_particle_interpolate(int index, void *psys_v, void **data, f if(data[BPHYS_DATA_LOCATION] && !data[BPHYS_DATA_VELOCITY]) { if(keys[1].time > keys[2].time) { sub_v3_v3v3(keys[2].vel, keys[1].co, keys[2].co); - mul_v3_fl(keys[2].vel, (keys[1].time - keys[2].time) / frs_sec); + mul_v3_fl(keys[2].vel, (keys[1].time - keys[2].time) * timestep); } else { sub_v3_v3v3(keys[2].vel, keys[2].co, keys[1].co); - mul_v3_fl(keys[2].vel, (keys[2].time - keys[1].time) / frs_sec); + mul_v3_fl(keys[2].vel, (keys[2].time - keys[1].time) * timestep); } } @@ -353,13 +362,13 @@ static void ptcache_particle_interpolate(int index, void *psys_v, void **data, f dfra = cfra2 - cfra1; - mul_v3_fl(keys[1].vel, dfra / frs_sec); - mul_v3_fl(keys[2].vel, dfra / frs_sec); + mul_v3_fl(keys[1].vel, dfra * timestep); + mul_v3_fl(keys[2].vel, dfra * timestep); psys_interpolate_particle(-1, keys, (cfra - cfra1) / dfra, &pa->state, 1); interp_qt_qtqt(pa->state.rot, keys[1].rot, keys[2].rot, (cfra - cfra1) / dfra); - mul_v3_fl(pa->state.vel, frs_sec / dfra); + mul_v3_fl(pa->state.vel, 1.f / (dfra * timestep)); pa->state.time = cfra; } @@ -376,6 +385,9 @@ static int ptcache_particle_totwrite(void *psys_v, int cfra) int p, step = psys->pointcache->step; int totwrite = 0; + if(cfra == 0) + return psys->totpart; + for(p=0; p<psys->totpart; p++,pa++) totwrite += (cfra >= pa->time - step && cfra <= pa->dietime + step); @@ -395,7 +407,7 @@ static int ptcache_cloth_write(int index, void *cloth_v, void **data, int UNUSE return 1; } -static void ptcache_cloth_read(int index, void *cloth_v, void **data, float UNUSED(frs_sec), float UNUSED(cfra), float *old_data) +static void ptcache_cloth_read(int index, void *cloth_v, void **data, float UNUSED(cfra), float *old_data) { ClothModifierData *clmd= cloth_v; Cloth *cloth= clmd->clothObject; @@ -412,7 +424,7 @@ static void ptcache_cloth_read(int index, void *cloth_v, void **data, float UNUS PTCACHE_DATA_TO(data, BPHYS_DATA_XCONST, 0, vert->xconst); } } -static void ptcache_cloth_interpolate(int index, void *cloth_v, void **data, float UNUSED(frs_sec), float cfra, float cfra1, float cfra2, float *old_data) +static void ptcache_cloth_interpolate(int index, void *cloth_v, void **data, float cfra, float cfra1, float cfra2, float *old_data) { ClothModifierData *clmd= cloth_v; Cloth *cloth= clmd->clothObject; @@ -455,106 +467,6 @@ static int ptcache_cloth_totpoint(void *cloth_v, int UNUSED(cfra)) } /* Smoke functions */ -static int ptcache_compress_write(PTCacheFile *pf, unsigned char *in, unsigned int in_len, unsigned char *out, int mode) -{ - int r = 0; - unsigned char compressed = 0; - unsigned int out_len= 0; - unsigned char *props = MEM_callocN(16*sizeof(char), "tmp"); - size_t sizeOfIt = 5; - - (void)mode; /* unused when building w/o compression */ - -#ifdef WITH_LZO - out_len= LZO_OUT_LEN(in_len); - if(mode == 1) { - LZO_HEAP_ALLOC(wrkmem, LZO1X_MEM_COMPRESS); - - r = lzo1x_1_compress(in, (lzo_uint)in_len, out, (lzo_uint *)&out_len, wrkmem); - if (!(r == LZO_E_OK) || (out_len >= in_len)) - compressed = 0; - else - compressed = 1; - } -#endif -#ifdef WITH_LZMA - if(mode == 2) { - - r = LzmaCompress(out, (size_t *)&out_len, in, in_len,//assume sizeof(char)==1.... - props, &sizeOfIt, 5, 1 << 24, 3, 0, 2, 32, 2); - - if(!(r == SZ_OK) || (out_len >= in_len)) - compressed = 0; - else - compressed = 2; - } -#endif - - ptcache_file_write(pf, &compressed, 1, sizeof(unsigned char)); - if(compressed) { - ptcache_file_write(pf, &out_len, 1, sizeof(unsigned int)); - ptcache_file_write(pf, out, out_len, sizeof(unsigned char)); - } - else - ptcache_file_write(pf, in, in_len, sizeof(unsigned char)); - - if(compressed == 2) - { - ptcache_file_write(pf, &sizeOfIt, 1, sizeof(unsigned int)); - ptcache_file_write(pf, props, sizeOfIt, sizeof(unsigned char)); - } - - MEM_freeN(props); - - return r; -} - -static int ptcache_compress_read(PTCacheFile *pf, unsigned char *result, unsigned int len) -{ - int r = 0; - unsigned char compressed = 0; - unsigned int in_len; -#ifdef WITH_LZO - unsigned int out_len = len; - size_t sizeOfIt = 5; -#endif - unsigned char *in; - unsigned char *props = MEM_callocN(16*sizeof(char), "tmp"); - - ptcache_file_read(pf, &compressed, 1, sizeof(unsigned char)); - if(compressed) { - ptcache_file_read(pf, &in_len, 1, sizeof(unsigned int)); - if(in_len==0) { - /* do nothing */ - } - else { - in = (unsigned char *)MEM_callocN(sizeof(unsigned char)*in_len, "pointcache_compressed_buffer"); - ptcache_file_read(pf, in, in_len, sizeof(unsigned char)); -#ifdef WITH_LZO - if(compressed == 1) - r = lzo1x_decompress_safe(in, (lzo_uint)in_len, result, (lzo_uint *)&out_len, NULL); -#endif -#ifdef WITH_LZMA - if(compressed == 2) - { - size_t leni = in_len, leno = out_len; - ptcache_file_read(pf, &sizeOfIt, 1, sizeof(unsigned int)); - ptcache_file_read(pf, props, sizeOfIt, sizeof(unsigned char)); - r = LzmaUncompress(result, &leno, in, &leni, props, sizeOfIt); - } -#endif - MEM_freeN(in); - } - } - else { - ptcache_file_read(pf, result, len, sizeof(unsigned char)); - } - - MEM_freeN(props); - - return r; -} - static int ptcache_smoke_totpoint(void *smoke_v, int UNUSED(cfra)) { SmokeModifierData *smd= (SmokeModifierData *)smoke_v; @@ -566,8 +478,6 @@ static int ptcache_smoke_totpoint(void *smoke_v, int UNUSED(cfra)) else return 0; } - - static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) { SmokeModifierData *smd= (SmokeModifierData *)smoke_v; @@ -586,18 +496,18 @@ static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) smoke_export(sds->fluid, &dt, &dx, &dens, &densold, &heat, &heatold, &vx, &vy, &vz, &vxold, &vyold, &vzold, &obstacles); - ptcache_compress_write(pf, (unsigned char *)sds->shadow, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)dens, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)densold, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)heat, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)heatold, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vx, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vy, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vz, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vxold, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vyold, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vzold, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)obstacles, (unsigned int)res, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)sds->shadow, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)dens, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)densold, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)heat, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)heatold, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vx, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vy, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vz, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vxold, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vyold, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vzold, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)obstacles, (unsigned int)res, out, mode); ptcache_file_write(pf, &dt, 1, sizeof(float)); ptcache_file_write(pf, &dx, 1, sizeof(float)); @@ -627,14 +537,14 @@ static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) smoke_turbulence_export(sds->wt, &dens, &densold, &tcu, &tcv, &tcw); out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len_big), "pointcache_lzo_buffer"); - ptcache_compress_write(pf, (unsigned char *)dens, in_len_big, out, mode); - ptcache_compress_write(pf, (unsigned char *)densold, in_len_big, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)dens, in_len_big, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)densold, in_len_big, out, mode); MEM_freeN(out); out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len), "pointcache_lzo_buffer"); - ptcache_compress_write(pf, (unsigned char *)tcu, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)tcv, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)tcw, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)tcu, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)tcv, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)tcw, in_len, out, mode); MEM_freeN(out); ret = 1; @@ -642,9 +552,6 @@ static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) return ret; } - - - static void ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) { SmokeModifierData *smd= (SmokeModifierData *)smoke_v; @@ -658,18 +565,18 @@ static void ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) smoke_export(sds->fluid, &dt, &dx, &dens, &densold, &heat, &heatold, &vx, &vy, &vz, &vxold, &vyold, &vzold, &obstacles); - ptcache_compress_read(pf, (unsigned char *)sds->shadow, out_len); - ptcache_compress_read(pf, (unsigned char*)dens, out_len); - ptcache_compress_read(pf, (unsigned char*)densold, out_len); - ptcache_compress_read(pf, (unsigned char*)heat, out_len); - ptcache_compress_read(pf, (unsigned char*)heatold, out_len); - ptcache_compress_read(pf, (unsigned char*)vx, out_len); - ptcache_compress_read(pf, (unsigned char*)vy, out_len); - ptcache_compress_read(pf, (unsigned char*)vz, out_len); - ptcache_compress_read(pf, (unsigned char*)vxold, out_len); - ptcache_compress_read(pf, (unsigned char*)vyold, out_len); - ptcache_compress_read(pf, (unsigned char*)vzold, out_len); - ptcache_compress_read(pf, (unsigned char*)obstacles, (unsigned int)res); + ptcache_file_compressed_read(pf, (unsigned char *)sds->shadow, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)dens, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)densold, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)heat, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)heatold, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vx, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vy, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vz, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vxold, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vyold, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vzold, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)obstacles, (unsigned int)res); ptcache_file_read(pf, &dt, 1, sizeof(float)); ptcache_file_read(pf, &dx, 1, sizeof(float)); @@ -686,12 +593,12 @@ static void ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) smoke_turbulence_export(sds->wt, &dens, &densold, &tcu, &tcv, &tcw); - ptcache_compress_read(pf, (unsigned char*)dens, out_len_big); - ptcache_compress_read(pf, (unsigned char*)densold, out_len_big); + ptcache_file_compressed_read(pf, (unsigned char*)dens, out_len_big); + ptcache_file_compressed_read(pf, (unsigned char*)densold, out_len_big); - ptcache_compress_read(pf, (unsigned char*)tcu, out_len); - ptcache_compress_read(pf, (unsigned char*)tcv, out_len); - ptcache_compress_read(pf, (unsigned char*)tcw, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)tcu, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)tcv, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)tcw, out_len); } } } @@ -709,21 +616,25 @@ void BKE_ptcache_id_from_softbody(PTCacheID *pid, Object *ob, SoftBody *sb) pid->ptcaches= &sb->ptcaches; pid->totpoint= pid->totwrite= ptcache_softbody_totpoint; - pid->write_elem= ptcache_softbody_write; - pid->write_stream = NULL; - pid->read_stream = NULL; - pid->read_elem= ptcache_softbody_read; - pid->interpolate_elem= ptcache_softbody_interpolate; + pid->write_point = ptcache_softbody_write; + pid->read_point = ptcache_softbody_read; + pid->interpolate_point = ptcache_softbody_interpolate; + + pid->write_stream = NULL; + pid->read_stream = NULL; - pid->write_header= ptcache_basic_header_write; - pid->read_header= ptcache_basic_header_read; + pid->write_extra_data = NULL; + pid->read_extra_data = NULL; + pid->interpolate_extra_data = NULL; + + pid->write_header = ptcache_basic_header_write; + pid->read_header = ptcache_basic_header_read; pid->data_types= (1<<BPHYS_DATA_LOCATION) | (1<<BPHYS_DATA_VELOCITY); pid->info_types= 0; pid->stack_index = pid->cache->index; } - void BKE_ptcache_id_from_particles(PTCacheID *pid, Object *ob, ParticleSystem *psys) { memset(pid, 0, sizeof(PTCacheID)); @@ -739,19 +650,24 @@ void BKE_ptcache_id_from_particles(PTCacheID *pid, Object *ob, ParticleSystem *p if(psys->part->type != PART_HAIR) pid->flag |= PTCACHE_VEL_PER_SEC; - pid->write_elem= ptcache_particle_write; - pid->write_stream = NULL; - pid->read_stream = NULL; - pid->read_elem= ptcache_particle_read; - pid->interpolate_elem= ptcache_particle_interpolate; + pid->totpoint = ptcache_particle_totpoint; + pid->totwrite = ptcache_particle_totwrite; + + pid->write_point = ptcache_particle_write; + pid->read_point = ptcache_particle_read; + pid->interpolate_point = ptcache_particle_interpolate; - pid->totpoint= ptcache_particle_totpoint; - pid->totwrite= ptcache_particle_totwrite; + pid->write_stream = NULL; + pid->read_stream = NULL; - pid->write_header= ptcache_basic_header_write; - pid->read_header= ptcache_basic_header_read; + pid->write_extra_data = NULL; + pid->read_extra_data = NULL; + pid->interpolate_extra_data = NULL; - pid->data_types= (1<<BPHYS_DATA_LOCATION) | (1<<BPHYS_DATA_VELOCITY) | (1<<BPHYS_DATA_INDEX); + pid->write_header = ptcache_basic_header_write; + pid->read_header = ptcache_basic_header_read; + + pid->data_types = (1<<BPHYS_DATA_LOCATION) | (1<<BPHYS_DATA_VELOCITY) | (1<<BPHYS_DATA_INDEX); if(psys->part->phystype == PART_PHYS_BOIDS) pid->data_types|= (1<<BPHYS_DATA_AVELOCITY) | (1<<BPHYS_DATA_ROTATION) | (1<<BPHYS_DATA_BOIDS); @@ -765,7 +681,6 @@ void BKE_ptcache_id_from_particles(PTCacheID *pid, Object *ob, ParticleSystem *p pid->info_types= (1<<BPHYS_DATA_TIMES); } - void BKE_ptcache_id_from_cloth(PTCacheID *pid, Object *ob, ClothModifierData *clmd) { memset(pid, 0, sizeof(PTCacheID)); @@ -779,19 +694,23 @@ void BKE_ptcache_id_from_cloth(PTCacheID *pid, Object *ob, ClothModifierData *cl pid->ptcaches= &clmd->ptcaches; pid->totpoint= pid->totwrite= ptcache_cloth_totpoint; - pid->write_elem= ptcache_cloth_write; - pid->write_stream = NULL; - pid->read_stream = NULL; - pid->read_elem= ptcache_cloth_read; - pid->interpolate_elem= ptcache_cloth_interpolate; + pid->write_point = ptcache_cloth_write; + pid->read_point = ptcache_cloth_read; + pid->interpolate_point = ptcache_cloth_interpolate; - pid->write_header= ptcache_basic_header_write; - pid->read_header= ptcache_basic_header_read; + pid->write_stream = NULL; + pid->read_stream = NULL; + + pid->write_extra_data = NULL; + pid->read_extra_data = NULL; + pid->interpolate_extra_data = NULL; + + pid->write_header = ptcache_basic_header_write; + pid->read_header = ptcache_basic_header_read; pid->data_types= (1<<BPHYS_DATA_LOCATION) | (1<<BPHYS_DATA_VELOCITY) | (1<<BPHYS_DATA_XCONST); pid->info_types= 0; } - void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct SmokeModifierData *smd) { SmokeDomainSettings *sds = smd->domain; @@ -810,16 +729,19 @@ void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct SmokeMo pid->totpoint= pid->totwrite= ptcache_smoke_totpoint; - pid->write_elem= NULL; - pid->read_elem= NULL; + pid->write_point = NULL; + pid->read_point = NULL; + pid->interpolate_point = NULL; - pid->read_stream = ptcache_smoke_read; - pid->write_stream = ptcache_smoke_write; - - pid->interpolate_elem= NULL; + pid->read_stream = ptcache_smoke_read; + pid->write_stream = ptcache_smoke_write; - pid->write_header= ptcache_basic_header_write; - pid->read_header= ptcache_basic_header_read; + pid->write_extra_data = NULL; + pid->read_extra_data = NULL; + pid->interpolate_extra_data = NULL; + + pid->write_header = ptcache_basic_header_write; + pid->read_header = ptcache_basic_header_read; pid->data_types= 0; pid->info_types= 0; @@ -829,7 +751,6 @@ void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct SmokeMo if(sds->wt) pid->data_types |= (1<<BPHYS_DATA_SMOKE_HIGH); } - void BKE_ptcache_ids_from_object(ListBase *lb, Object *ob, Scene *scene, int duplis) { PTCacheID *pid; @@ -901,7 +822,6 @@ void BKE_ptcache_ids_from_object(ListBase *lb, Object *ob, Scene *scene, int dup } } - /* File handling */ /* Takes an Object ID and returns a unique name @@ -1035,21 +955,125 @@ static PTCacheFile *ptcache_file_open(PTCacheID *pid, int mode, int cfra) pf= MEM_mallocN(sizeof(PTCacheFile), "PTCacheFile"); pf->fp= fp; pf->old_format = 0; + pf->frame = cfra; return pf; } - static void ptcache_file_close(PTCacheFile *pf) { - fclose(pf->fp); - MEM_freeN(pf); + if(pf) { + fclose(pf->fp); + MEM_freeN(pf); + } +} + +static int ptcache_file_compressed_read(PTCacheFile *pf, unsigned char *result, size_t len) +{ + int r = 0; + unsigned char compressed = 0; + size_t in_len; +#ifdef WITH_LZO + size_t out_len = len; + size_t sizeOfIt = 5; +#endif + unsigned char *in; + unsigned char *props = MEM_callocN(16*sizeof(char), "tmp"); + + ptcache_file_read(pf, &compressed, 1, sizeof(unsigned char)); + if(compressed) { + uint32_t size; + ptcache_file_read(pf, &size, 1, sizeof(uint32_t)); + in_len = (size_t)size; + if(in_len==0) { + /* do nothing */ + } + else { + in = (unsigned char *)MEM_callocN(sizeof(unsigned char)*in_len, "pointcache_compressed_buffer"); + ptcache_file_read(pf, in, in_len, sizeof(unsigned char)); +#ifdef WITH_LZO + if(compressed == 1) + r = lzo1x_decompress_safe(in, (lzo_uint)in_len, result, (lzo_uint *)&out_len, NULL); +#endif +#ifdef WITH_LZMA + if(compressed == 2) + { + size_t leni = in_len, leno = out_len; + ptcache_file_read(pf, &size, 1, sizeof(unsigned int)); + sizeOfIt = (size_t)size; + ptcache_file_read(pf, props, sizeOfIt, sizeof(unsigned char)); + r = LzmaUncompress(result, &leno, in, &leni, props, sizeOfIt); + } +#endif + MEM_freeN(in); + } + } + else { + ptcache_file_read(pf, result, len, sizeof(unsigned char)); + } + + MEM_freeN(props); + + return r; } +static int ptcache_file_compressed_write(PTCacheFile *pf, unsigned char *in, size_t in_len, unsigned char *out, int mode) +{ + int r = 0; + unsigned char compressed = 0; + size_t out_len= 0; + unsigned char *props = MEM_callocN(16*sizeof(char), "tmp"); + size_t sizeOfIt = 5; -static int ptcache_file_read(PTCacheFile *pf, void *f, size_t tot, int size) + (void)mode; /* unused when building w/o compression */ + +#ifdef WITH_LZO + out_len= LZO_OUT_LEN(in_len); + if(mode == 1) { + LZO_HEAP_ALLOC(wrkmem, LZO1X_MEM_COMPRESS); + + r = lzo1x_1_compress(in, (lzo_uint)in_len, out, (lzo_uint *)&out_len, wrkmem); + if (!(r == LZO_E_OK) || (out_len >= in_len)) + compressed = 0; + else + compressed = 1; + } +#endif +#ifdef WITH_LZMA + if(mode == 2) { + + r = LzmaCompress(out, (size_t *)&out_len, in, in_len,//assume sizeof(char)==1.... + props, &sizeOfIt, 5, 1 << 24, 3, 0, 2, 32, 2); + + if(!(r == SZ_OK) || (out_len >= in_len)) + compressed = 0; + else + compressed = 2; + } +#endif + + ptcache_file_write(pf, &compressed, 1, sizeof(unsigned char)); + if(compressed) { + uint32_t size = (uint32_t) out_len; + ptcache_file_write(pf, &size, 1, sizeof(uint32_t)); + ptcache_file_write(pf, out, out_len, sizeof(unsigned char)); + } + else + ptcache_file_write(pf, in, in_len, sizeof(unsigned char)); + + if(compressed == 2) + { + ptcache_file_write(pf, &sizeOfIt, 1, sizeof(uint32_t)); + ptcache_file_write(pf, props, sizeOfIt, sizeof(unsigned char)); + } + + MEM_freeN(props); + + return r; +} +static int ptcache_file_read(PTCacheFile *pf, void *f, size_t tot, size_t size) { return (fread(f, size, tot, pf->fp) == tot); } -static int ptcache_file_write(PTCacheFile *pf, void *f, size_t tot, int size) +static int ptcache_file_write(PTCacheFile *pf, void *f, size_t tot, size_t size) { return (fwrite(f, size, tot, pf->fp) == tot); } @@ -1077,6 +1101,7 @@ static int ptcache_file_data_write(PTCacheFile *pf) } static int ptcache_file_header_begin_read(PTCacheFile *pf) { + uint32_t typeflag=0; int error=0; char bphysics[8]; @@ -1088,8 +1113,11 @@ static int ptcache_file_header_begin_read(PTCacheFile *pf) if(!error && strncmp(bphysics, "BPHYSICS", 8)) error = 1; - if(!error && !fread(&pf->type, sizeof(int), 1, pf->fp)) + if(!error && !fread(&typeflag, sizeof(uint32_t), 1, pf->fp)) error = 1; + + pf->type = (typeflag & PTCACHE_TYPEFLAG_TYPEMASK); + pf->flag = (typeflag & PTCACHE_TYPEFLAG_FLAGMASK); /* if there was an error set file as it was */ if(error) @@ -1097,22 +1125,20 @@ static int ptcache_file_header_begin_read(PTCacheFile *pf) return !error; } - - static int ptcache_file_header_begin_write(PTCacheFile *pf) { const char *bphysics = "BPHYSICS"; + uint32_t typeflag = pf->type + pf->flag; if(fwrite(bphysics, sizeof(char), 8, pf->fp) != 8) return 0; - if(!fwrite(&pf->type, sizeof(int), 1, pf->fp)) + if(!fwrite(&typeflag, sizeof(uint32_t), 1, pf->fp)) return 0; return 1; } - /* Data pointer handling */ int BKE_ptcache_data_size(int data_type) { @@ -1133,38 +1159,6 @@ static void ptcache_file_pointers_init(PTCacheFile *pf) pf->cur[BPHYS_DATA_BOIDS] = (data_types & (1<<BPHYS_DATA_BOIDS)) ? &pf->data.boids : NULL; } -static void ptcache_file_pointers_seek(int index, PTCacheFile *pf) -{ - int i, size=0; - int data_types = pf->data_types; - - if(data_types & (1<<BPHYS_DATA_INDEX)) { - int totpoint; - /* The simplest solution is to just write to the very end. This may cause - * some data duplication, but since it's on disk it's not so bad. The correct - * thing would be to search through the file for the correct index and only - * write to the end if it's not found, but this could be quite slow. - */ - fseek(pf->fp, 8 + sizeof(int), SEEK_SET); - fread(&totpoint, sizeof(int), 1, pf->fp); - - totpoint++; - - fseek(pf->fp, 8 + sizeof(int), SEEK_SET); - fwrite(&totpoint, sizeof(int), 1, pf->fp); - - fseek(pf->fp, 0, SEEK_END); - } - else { - for(i=0; i<BPHYS_TOT_DATA; i++) - size += (pf->data_types & (1<<i)) ? ptcache_data_size[i] : 0; - - /* size of default header + data up to index */ - fseek(pf->fp, 8 + 3*sizeof(int) + index * size, SEEK_SET); - } - - ptcache_file_pointers_init(pf); -} void BKE_ptcache_mem_pointers_init(PTCacheMem *pm) { int data_types = pm->data_types; @@ -1239,8 +1233,15 @@ static void ptcache_data_copy(void *from[], void *to[]) } } +static void ptcache_extra_free(PTCacheMem *pm) +{ + PTCacheExtra *extra = pm->extradata.first; - + for(; extra; extra=extra->next) { + if(extra->data) + MEM_freeN(extra->data); + } +} static int ptcache_old_elemsize(PTCacheID *pid) { if(pid->type==PTCACHE_TYPE_SOFTBODY) @@ -1253,57 +1254,33 @@ static int ptcache_old_elemsize(PTCacheID *pid) return 0; } -static void *ptcache_find_frame(PTCacheID *pid, int frame) -{ - if(pid->cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf = ptcache_file_open(pid, PTCACHE_FILE_READ, frame); - if(pf) - pf->frame = frame; - return pf; - } - else { - PTCacheMem *pm = pid->cache->mem_cache.first; - for(; pm; pm=pm->next) { - if(pm->frame == frame) - break; - } - return (void*)pm; - } -} - -static void ptcache_find_frames_around(PTCacheID *pid, int frame, void **cache1, void **cache2) +static void ptcache_find_frames_around(PTCacheID *pid, int frame, int *fra1, int *fra2) { - int cfra1=frame, cfra2=frame; - if(pid->cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf=NULL; - PTCacheFile *pf2=NULL; + int cfra1=frame-1, cfra2=frame+1; - while(cfra1 >= pid->cache->startframe && pf==NULL) { + while(cfra1 >= pid->cache->startframe && !BKE_ptcache_id_exist(pid, cfra1)) cfra1--; - pf= ptcache_file_open(pid, PTCACHE_FILE_READ, cfra1); - } - if(pf) - pf->frame = cfra1; + if(cfra1 < pid->cache->startframe) + cfra1 = 0; - while(cfra2 < pid->cache->endframe && !pf2) { + while(cfra2 <= pid->cache->endframe && !BKE_ptcache_id_exist(pid, cfra2)) cfra2++; - pf2= ptcache_file_open(pid, PTCACHE_FILE_READ, cfra2); - } - if(pf2) - pf2->frame = cfra2; + if(cfra2 > pid->cache->endframe) + cfra2 = 0; - if(pf && !pf2) { - pf2 = pf; - pf = NULL; + if(cfra1 && !cfra2) { + *fra1 = 0; + *fra2 = cfra1; + } + else { + *fra1 = cfra1; + *fra2 = cfra2; } - - *cache1 = (void*)pf; - *cache2 = (void*)pf2; } - else if(pid->cache->mem_cache.first){ + else if(pid->cache->mem_cache.first) { PTCacheMem *pm = pid->cache->mem_cache.first; PTCacheMem *pm2 = pid->cache->mem_cache.last; @@ -1318,135 +1295,340 @@ static void ptcache_find_frames_around(PTCacheID *pid, int frame, void **cache1, } if(pm && !pm2) { - pm2 = pm; - pm = NULL; + *fra1 = 0; + *fra2 = pm->frame; } + else { + *fra1 = pm->frame; + *fra2 = pm2->frame; + } + } +} +static void ptcache_make_index_array(PTCacheMem *pm, int totpoint) +{ + int i, *index; - *cache1 = (void*)pm; - *cache2 = (void*)pm2; + if(pm->index_array) { + MEM_freeN(pm->index_array); + pm->index_array = NULL; } + + if(!pm->data[BPHYS_DATA_INDEX]) + return; + + pm->index_array = MEM_callocN(totpoint * sizeof(int), "PTCacheMem index_array"); + index = pm->data[BPHYS_DATA_INDEX]; + + for(i=0; i<pm->totpoint; i++, index++) + pm->index_array[*index] = i + 1; } -static int ptcache_read_init(PTCacheID *pid, void **cache, int *totpoint) + +static PTCacheMem *ptcache_disk_frame_to_mem(PTCacheID *pid, int cfra) { - if(*cache==NULL) + PTCacheFile *pf = ptcache_file_open(pid, PTCACHE_FILE_READ, cfra); + PTCacheMem *pm = NULL; + int i, error = 0; + + if(pf == NULL) return 0; - if(pid->cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf = (PTCacheFile *)(*cache); + if(!ptcache_file_header_begin_read(pf)) + error = 1; - if(ptcache_file_header_begin_read(pf)) { - if(pf->type != pid->type) { - /* todo report error */ - ptcache_file_close(pf); - *cache = NULL; - return 0; - } - else if(pid->read_header(pf)) { - ptcache_file_pointers_init(pf); - *totpoint = pf->totpoint; + if(!error && (pf->type != pid->type || !pid->read_header(pf))) + error = 1; + + if(!error) { + pm = MEM_callocN(sizeof(PTCacheMem), "Pointcache mem"); + + pm->totpoint = pf->totpoint; + pm->data_types = pf->data_types; + pm->frame = pf->frame; + + ptcache_data_alloc(pm); + + if(pf->flag & PTCACHE_TYPEFLAG_COMPRESS) { + for(i=0; i<BPHYS_TOT_DATA; i++) { + unsigned int out_len = pm->totpoint*ptcache_data_size[i]; + if(pf->data_types & (1<<i)) + ptcache_file_compressed_read(pf, (unsigned char*)(pm->data[i]), out_len); } } else { - /* fall back to old cache file format */ - pf->old_format = 1; - *totpoint = pid->totpoint(pid->calldata, (int) pf->frame); + BKE_ptcache_mem_pointers_init(pm); + ptcache_file_pointers_init(pf); + + for(i=0; i<pm->totpoint; i++) { + if(!ptcache_file_data_read(pf)) { + error = 1; + break; + } + ptcache_data_copy(pf->cur, pm->cur); + BKE_ptcache_mem_pointers_incr(pm); + } } - return pf->frame; } - else { - PTCacheMem *pm = (PTCacheMem *)(*cache); - BKE_ptcache_mem_pointers_init(pm); - *totpoint = pm->totpoint; - return pm->frame; + if(!error && pf->flag & PTCACHE_TYPEFLAG_EXTRADATA) { + uint32_t extratype = 0; + uint32_t value; + + while(ptcache_file_read(pf, &extratype, 1, sizeof(uint32_t))) { + PTCacheExtra *extra = MEM_callocN(sizeof(PTCacheExtra), "Pointcache extradata"); + + extra->type = extratype; + + ptcache_file_read(pf, &value, 1, sizeof(uint32_t)); + extra->flag = value; + ptcache_file_read(pf, &value, 1, sizeof(uint32_t)); + extra->totdata = value; + ptcache_file_read(pf, &value, 1, sizeof(uint32_t)); + extra->datasize = value; + + extra->data = MEM_callocN(extra->totdata * extra->datasize, "Pointcache extradata->data"); + + if(pf->flag & PTCACHE_TYPEFLAG_COMPRESS) + ptcache_file_compressed_read(pf, (unsigned char*)(extra->data), extra->totdata*extra->datasize); + else + ptcache_file_read(pf, extra->data, extra->totdata, extra->datasize); + + BLI_addtail(&pm->extradata, extra); + } + } + + if(!error) + ptcache_make_index_array(pm, pid->totpoint(pid->calldata, pm->frame)); + + if(error && pm) { + ptcache_data_free(pm); + ptcache_extra_free(pm); + MEM_freeN(pm); + pm = NULL; } + + ptcache_file_close(pf); + + if (error && G.f & G_DEBUG) + printf("Error reading from disk cache\n"); + + return pm; } -static int ptcache_read(PTCacheID *pid, void *cache, int totpoint, float frs_sec) +static int ptcache_mem_frame_to_disk(PTCacheID *pid, PTCacheMem *pm) { - int i; - int *index = &i; + PTCacheFile *pf = NULL; + int i, error = 0; + + BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_FRAME, pm->frame); - if(pid->cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf = (PTCacheFile *)cache; - if(pf->old_format) { - int old_elemsize = ptcache_old_elemsize(pid); - float old_data[14]; + pf = ptcache_file_open(pid, PTCACHE_FILE_WRITE, pm->frame); - for(i=0; i<totpoint; i++) { - if(ptcache_file_read(pf, (void*)old_data, 1, old_elemsize)) - pid->read_elem(i, pid->calldata, NULL, frs_sec, (float)pf->frame, old_data); - else - return 0; + if(pf==NULL) { + if (G.f & G_DEBUG) + printf("Error opening disk cache file for writing\n"); + return 0; + } + + pf->data_types = pm->data_types; + pf->totpoint = pm->totpoint; + pf->type = pid->type; + pf->flag = 0; + + if(pm->extradata.first) + pf->flag |= PTCACHE_TYPEFLAG_EXTRADATA; + + if(pid->cache->compression) + pf->flag |= PTCACHE_TYPEFLAG_COMPRESS; + + if(!ptcache_file_header_begin_write(pf) || !pid->write_header(pf)) + error = 1; + + if(!error) { + if(pid->cache->compression) { + for(i=0; i<BPHYS_TOT_DATA; i++) { + if(pm->data[i]) { + unsigned int in_len = pm->totpoint*ptcache_data_size[i]; + unsigned char *out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len)*4, "pointcache_lzo_buffer"); + ptcache_file_compressed_write(pf, (unsigned char*)(pm->data[i]), in_len, out, pid->cache->compression); + MEM_freeN(out); + } } } else { - if(pf->data_types & (1<<BPHYS_DATA_INDEX)) - index = &pf->data.index; - - for(i=0; i<totpoint; i++) { - if(ptcache_file_data_read(pf)) - pid->read_elem(*index, pid->calldata, pf->cur, frs_sec, (float)pf->frame, NULL); - else - return 0; + BKE_ptcache_mem_pointers_init(pm); + ptcache_file_pointers_init(pf); + + for(i=0; i<pm->totpoint; i++) { + ptcache_data_copy(pm->cur, pf->cur); + if(!ptcache_file_data_write(pf)) { + error = 1; + break; + } + BKE_ptcache_mem_pointers_incr(pm); } } } + + if(!error && pm->extradata.first) { + PTCacheExtra *extra = pm->extradata.first; + uint32_t value; + + for(; extra; extra=extra->next) { + if(extra->data == NULL || extra->totdata == 0) + continue; + + value = extra->type; + ptcache_file_write(pf, &value, 1, sizeof(uint32_t)); + value = extra->flag; + ptcache_file_write(pf, &value, 1, sizeof(uint32_t)); + value = extra->totdata; + ptcache_file_write(pf, &value, 1, sizeof(uint32_t)); + value = extra->datasize; + ptcache_file_write(pf, &value, 1, sizeof(uint32_t)); + + if(pid->cache->compression) { + unsigned int in_len = extra->totdata * extra->datasize; + unsigned char *out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len)*4, "pointcache_lzo_buffer"); + ptcache_file_compressed_write(pf, (unsigned char*)(extra->data), in_len, out, pid->cache->compression); + MEM_freeN(out); + } + else { + ptcache_file_write(pf, extra->data, extra->totdata, extra->datasize); + } + } + } + + ptcache_file_close(pf); + + if (error && G.f & G_DEBUG) + printf("Error writing to disk cache\n"); + + return error==0; +} + +static int ptcache_read_stream(PTCacheID *pid, int cfra) +{ + PTCacheFile *pf = ptcache_file_open(pid, PTCACHE_FILE_READ, cfra); + int error = 0; + + if(pid->read_stream == NULL) + return 0; + + if(pf == NULL) { + if (G.f & G_DEBUG) + printf("Error opening disk cache file for reading\n"); + return 0; + } + + if(!ptcache_file_header_begin_read(pf)) + error = 1; + + if(!error && (pf->type != pid->type || !pid->read_header(pf))) + error = 1; + + if(!error && pf->totpoint != pid->totpoint(pid->calldata, cfra)) + error = 1; + + if(!error) { + ptcache_file_pointers_init(pf); + + // we have stream reading here + pid->read_stream(pf, pid->calldata); + } + + ptcache_file_close(pf); + + return error == 0; +} +static int ptcache_read(PTCacheID *pid, int cfra) +{ + PTCacheMem *pm = NULL; + int i; + int *index = &i; + + /* get a memory cache to read from */ + if(pid->cache->flag & PTCACHE_DISK_CACHE) { + pm = ptcache_disk_frame_to_mem(pid, cfra); + } else { - PTCacheMem *pm = (PTCacheMem *)cache; + pm = pid->cache->mem_cache.first; + + while(pm && pm->frame != cfra) + pm = pm->next; + } + + /* read the cache */ + if(pm) { + int totpoint = pm->totpoint; + + if((pid->data_types & (1<<BPHYS_DATA_INDEX)) == 0) + totpoint = MIN2(totpoint, pid->totpoint(pid->calldata, cfra)); + + BKE_ptcache_mem_pointers_init(pm); for(i=0; i<totpoint; i++) { if(pm->data_types & (1<<BPHYS_DATA_INDEX)) index = pm->cur[BPHYS_DATA_INDEX]; - pid->read_elem(*index, pid->calldata, pm->cur, frs_sec, (float)pm->frame, NULL); + pid->read_point(*index, pid->calldata, pm->cur, (float)pm->frame, NULL); BKE_ptcache_mem_pointers_incr(pm); } + + if(pid->read_extra_data && pm->extradata.first) + pid->read_extra_data(pid->calldata, pm, (float)pm->frame); + + /* clean up temporary memory cache */ + if(pid->cache->flag & PTCACHE_DISK_CACHE) { + ptcache_data_free(pm); + ptcache_extra_free(pm); + MEM_freeN(pm); + } } return 1; } -static int ptcache_interpolate(PTCacheID *pid, void *cache1, void *cache2, int totpoint, float cfra, float frs_sec) +static int ptcache_interpolate(PTCacheID *pid, float cfra, int cfra1, int cfra2) { + PTCacheMem *pm = NULL; int i; int *index = &i; + /* get a memory cache to read from */ if(pid->cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf1 = (PTCacheFile *)cache1; - PTCacheFile *pf2 = (PTCacheFile *)cache2; - if(pf2->old_format) { - int old_elemsize = ptcache_old_elemsize(pid); - float old_data[14]; - - for(i=0; i<totpoint; i++) { - if(ptcache_file_read(pf2, (void*)old_data, 1, old_elemsize)) - pid->interpolate_elem(i, pid->calldata, NULL, frs_sec, cfra, (float)pf1->frame, (float)pf2->frame, old_data); - else - return 0; - } - } - else { - if(pf2->data_types & (1<<BPHYS_DATA_INDEX)) - index = &pf2->data.index; - - for(i=0; i<totpoint; i++) { - if(ptcache_file_data_read(pf2)) - pid->interpolate_elem(*index, pid->calldata, pf2->cur, frs_sec, cfra, (float)pf1->frame, (float)pf2->frame, NULL); - else - return 0; - } - } + pm = ptcache_disk_frame_to_mem(pid, cfra2); } else { - PTCacheMem *pm1 = (PTCacheMem *)cache1; - PTCacheMem *pm2 = (PTCacheMem *)cache2; + pm = pid->cache->mem_cache.first; + + while(pm && pm->frame != cfra2) + pm = pm->next; + } + + /* read the cache */ + if(pm) { + int totpoint = pm->totpoint; + + if((pid->data_types & (1<<BPHYS_DATA_INDEX)) == 0) + totpoint = MIN2(totpoint, pid->totpoint(pid->calldata, (int)cfra)); + + BKE_ptcache_mem_pointers_init(pm); for(i=0; i<totpoint; i++) { - if(pm2->data_types & (1<<BPHYS_DATA_INDEX)) - index = pm2->cur[BPHYS_DATA_INDEX]; + if(pm->data_types & (1<<BPHYS_DATA_INDEX)) + index = pm->cur[BPHYS_DATA_INDEX]; - pid->interpolate_elem(*index, pid->calldata, pm2->cur, frs_sec, cfra, (float)pm1->frame, (float)pm2->frame, NULL); - BKE_ptcache_mem_pointers_incr(pm2); + pid->interpolate_point(*index, pid->calldata, pm->cur, cfra, (float)cfra1, (float)cfra2, NULL); + BKE_ptcache_mem_pointers_incr(pm); + } + + if(pid->interpolate_extra_data && pm->extradata.first) + pid->interpolate_extra_data(pid->calldata, pm, cfra, (float)cfra1, (float)cfra2); + + /* clean up temporary memory cache */ + if(pid->cache->flag & PTCACHE_DISK_CACHE) { + ptcache_data_free(pm); + ptcache_extra_free(pm); + MEM_freeN(pm); } } @@ -1454,11 +1636,9 @@ static int ptcache_interpolate(PTCacheID *pid, void *cache1, void *cache2, int t } /* reads cache from disk or memory */ /* possible to get old or interpolated result */ -int BKE_ptcache_read(PTCacheID *pid, float cfra, float frs_sec) +int BKE_ptcache_read(PTCacheID *pid, float cfra) { - void *cache1=NULL, *cache2=NULL; int cfrai = (int)cfra, cfra1=0, cfra2=0; - int totpoint = 0, totpoint2 = 0; int ret = 0; /* nothing to read to */ @@ -1467,88 +1647,49 @@ int BKE_ptcache_read(PTCacheID *pid, float cfra, float frs_sec) if(pid->cache->flag & PTCACHE_READ_INFO) { pid->cache->flag &= ~PTCACHE_READ_INFO; - BKE_ptcache_read(pid, 0, frs_sec); + ptcache_read(pid, 0); } /* first check if we have the actual frame cached */ - if(cfra == (float)cfrai) - cache1 = ptcache_find_frame(pid, cfrai); + if(cfra == (float)cfrai && BKE_ptcache_id_exist(pid, cfrai)) + cfra1 = cfrai; /* no exact cache frame found so try to find cached frames around cfra */ - if(cache1==NULL) - ptcache_find_frames_around(pid, cfrai, &cache1, &cache2); + if(cfra1 == 0) + ptcache_find_frames_around(pid, cfrai, &cfra1, &cfra2); - if(cache1==NULL && cache2==NULL) + if(cfra1 == 0 && cfra2 == 0) return 0; - cfra1 = ptcache_read_init(pid, &cache1, &totpoint); - cfra2 = ptcache_read_init(pid, &cache2, &totpoint2); - /* don't read old cache if already simulated past cached frame */ - if(!cache1 && cfra2 && cfra2 <= pid->cache->simframe) - goto cleanup; - if(cfra1 && cfra1==cfra2) - goto cleanup; - - if(cache1) { - if(pid->read_stream) { - if(totpoint != pid->totpoint(pid->calldata, (int) cfra)) - goto cleanup; - else - { - // we have stream reading here - pid->read_stream((PTCacheFile *)cache1, pid->calldata); - } - } - else if(pid->read_elem) { - if((pid->data_types & (1<<BPHYS_DATA_INDEX)) == 0) - totpoint = MIN2(totpoint, pid->totpoint(pid->calldata, (int) cfra)); + if(cfra1 == 0 && cfra2 && cfra2 <= pid->cache->simframe) + return 0; + if(cfra1 && cfra1 == cfra2) + return 0; - if(ptcache_read(pid, cache1, totpoint, frs_sec)==0) - goto cleanup; - } + if(cfra1) { + if(pid->read_stream) + ptcache_read_stream(pid, cfra1); + else if(pid->read_point) + ptcache_read(pid, cfra1); } - if(cache2) { - if(pid->read_stream) { - if(totpoint2 != pid->totpoint(pid->calldata, (int) cfra)) - goto cleanup; + if(cfra2) { + if(pid->read_stream) + ptcache_read_stream(pid, cfra2); + else if(pid->read_point) { + if(cfra1 && cfra2 && pid->interpolate_point) + ptcache_interpolate(pid, cfra, cfra1, cfra2); else - { - // we have stream reading here - pid->read_stream((PTCacheFile *)cache2, pid->calldata); - } - } - else if(pid->read_elem) { - if((pid->data_types & (1<<BPHYS_DATA_INDEX)) == 0) - totpoint2 = MIN2(totpoint2, pid->totpoint(pid->calldata, (int) cfra)); - - if(cache1 && cache2 && pid->interpolate_elem) { - if(ptcache_interpolate(pid, cache1, cache2, totpoint2, cfra, frs_sec)==0) - goto cleanup; - } - else { - if(ptcache_read(pid, cache2, totpoint2, frs_sec)==0) - goto cleanup; - } + ptcache_read(pid, cfra2); } } - if(cache1) - ret = (cache2 ? PTCACHE_READ_INTERPOLATED : PTCACHE_READ_EXACT); - else if(cache2) { + if(cfra1) + ret = (cfra2 ? PTCACHE_READ_INTERPOLATED : PTCACHE_READ_EXACT); + else if(cfra2) { ret = PTCACHE_READ_OLD; - pid->cache->simframe = ((pid->cache->flag & PTCACHE_DISK_CACHE) ? - ((PTCacheFile*)cache2)->frame : ((PTCacheMem*)cache2)->frame); - } - -cleanup: - - if(pid->cache->flag & PTCACHE_DISK_CACHE) { - if(cache1) - ptcache_file_close((PTCacheFile*)cache1); - if(cache2) - ptcache_file_close((PTCacheFile*)cache2); + pid->cache->simframe = cfra2; } if((pid->cache->flag & PTCACHE_QUICK_CACHE)==0) { @@ -1561,31 +1702,114 @@ cleanup: if(cfra <= pid->cache->last_exact) pid->cache->flag &= ~PTCACHE_FRAMES_SKIPPED; - BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_AFTER, MAX2(cfrai,pid->cache->last_exact)); + BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_AFTER, MAX2(cfrai, pid->cache->last_exact)); } } return ret; } -static void ptcache_make_index_array(PTCacheMem *pm, int totpoint) +static int ptcache_write_stream(PTCacheID *pid, int cfra, int totpoint) { - int i, *index; + PTCacheFile *pf = NULL; + int error = 0; + + BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_FRAME, cfra); - if(pm->index_array) { - MEM_freeN(pm->index_array); - pm->index_array = NULL; + pf = ptcache_file_open(pid, PTCACHE_FILE_WRITE, cfra); + + if(pf==NULL) { + if (G.f & G_DEBUG) + printf("Error opening disk cache file for writing\n"); + return 0; } - if(!pm->data[BPHYS_DATA_INDEX]) - return; + pf->data_types = pid->data_types; + pf->totpoint = totpoint; + pf->type = pid->type; + pf->flag = 0; - pm->index_array = MEM_callocN(totpoint * sizeof(int), "PTCacheMem index_array"); - index = pm->data[BPHYS_DATA_INDEX]; + if(!error && (!ptcache_file_header_begin_write(pf) || !pid->write_header(pf))) + error = 1; - for(i=0; i<pm->totpoint; i++, index++) - pm->index_array[*index] = i + 1; + if(!error && pid->write_stream) + pid->write_stream(pf, pid->calldata); + + ptcache_file_close(pf); + + if (error && G.f & G_DEBUG) + printf("Error writing to disk cache\n"); + + return error == 0; } +static int ptcache_write(PTCacheID *pid, int cfra, int overwrite) +{ + PointCache *cache = pid->cache; + PTCacheMem *pm=NULL, *pm2=NULL; + int totpoint = pid->totpoint(pid->calldata, cfra); + int i, error = 0; + + pm = MEM_callocN(sizeof(PTCacheMem), "Pointcache mem"); + + pm->totpoint = pid->totwrite(pid->calldata, cfra); + pm->data_types = cfra ? pid->data_types : pid->info_types; + + ptcache_data_alloc(pm); + BKE_ptcache_mem_pointers_init(pm); + + if(overwrite) { + if(cache->flag & PTCACHE_DISK_CACHE) { + int fra = cfra-1; + + while(fra >= cache->startframe && !BKE_ptcache_id_exist(pid, fra)) + fra--; + + pm2 = ptcache_disk_frame_to_mem(pid, fra); + } + else + pm2 = cache->mem_cache.last; + } + + if(pid->write_point) { + for(i=0; i<totpoint; i++) { + int write = pid->write_point(i, pid->calldata, pm->cur, cfra); + if(write) { + BKE_ptcache_mem_pointers_incr(pm); + + /* newly born particles have to be copied to previous cached frame */ + if(overwrite && write == 2 && pm2 && BKE_ptcache_mem_pointers_seek(i, pm2)) + pid->write_point(i, pid->calldata, pm2->cur, cfra); + } + } + } + + if(pid->write_extra_data) + pid->write_extra_data(pid->calldata, pm, cfra); + pm->frame = cfra; + + if(cache->flag & PTCACHE_DISK_CACHE) { + error += !ptcache_mem_frame_to_disk(pid, pm); + + if(pm) { + ptcache_data_free(pm); + ptcache_extra_free(pm); + MEM_freeN(pm); + } + + if(pm2) { + error += !ptcache_mem_frame_to_disk(pid, pm2); + ptcache_data_free(pm2); + ptcache_extra_free(pm2); + MEM_freeN(pm2); + } + } + else { + ptcache_make_index_array(pm, pid->totpoint(pid->calldata, cfra)); + BLI_addtail(&cache->mem_cache, pm); + } + + return error; +} static int ptcache_write_needed(PTCacheID *pid, int cfra, int *overwrite) { PointCache *cache = pid->cache; @@ -1639,10 +1863,8 @@ static int ptcache_write_needed(PTCacheID *pid, int cfra, int *overwrite) int BKE_ptcache_write(PTCacheID *pid, int cfra) { PointCache *cache = pid->cache; - PTCacheFile *pf= NULL, *pf2= NULL; - int i, ret = 0; int totpoint = pid->totpoint(pid->calldata, cfra); - int overwrite = 0; + int overwrite = 0, error = 0; if(totpoint == 0 || (cfra ? pid->data_types == 0 : pid->info_types == 0)) return 0; @@ -1650,109 +1872,29 @@ int BKE_ptcache_write(PTCacheID *pid, int cfra) if(ptcache_write_needed(pid, cfra, &overwrite)==0) return 0; - if(cache->flag & PTCACHE_DISK_CACHE) { - pf = ptcache_file_open(pid, PTCACHE_FILE_WRITE, cfra); - if(!pf) - goto cleanup; - - pf->type = pid->type; - pf->totpoint = cfra ? pid->totwrite(pid->calldata, cfra) : totpoint; - pf->data_types = cfra ? pid->data_types : pid->info_types; - - if(!ptcache_file_header_begin_write(pf) || !pid->write_header(pf)) - goto cleanup; - - ptcache_file_pointers_init(pf); - - if(pid->write_stream) { - // we have stream writing here - pid->write_stream(pf, pid->calldata); - } - else if(pid->write_elem){ - for(i=0; i<totpoint; i++) { - int write = pid->write_elem(i, pid->calldata, pf->cur, cfra); - if(write) { - if(!ptcache_file_data_write(pf)) - goto cleanup; - - /* newly born particles have to be copied to previous cached frame */ - if(overwrite && write == 2) { - if(!pf2) { - /* find and initialize previous frame */ - int ofra = cfra-1; - while(ofra > cache->startframe && !BKE_ptcache_id_exist(pid, ofra)) - ofra--; - - pf2 = ptcache_file_open(pid, PTCACHE_FILE_UPDATE, ofra); - if(!pf2) - goto cleanup; - - pf2->type = pid->type; - pf2->totpoint = totpoint; - pf2->data_types = pid->data_types; - } - ptcache_file_pointers_seek(i, pf2); - pid->write_elem(i, pid->calldata, pf2->cur, cfra); - if(!ptcache_file_data_write(pf2)) - goto cleanup; - } - } - } - } + if(pid->write_stream) { + ptcache_write_stream(pid, cfra, totpoint); } - else { - PTCacheMem *pm; - PTCacheMem *pm2; - - pm = MEM_callocN(sizeof(PTCacheMem), "Pointcache mem"); - - pm->totpoint = pid->totwrite(pid->calldata, cfra); - pm->data_types = cfra ? pid->data_types : pid->info_types; - - ptcache_data_alloc(pm); - BKE_ptcache_mem_pointers_init(pm); - - if(pid->write_elem) { - for(i=0; i<totpoint; i++) { - int write = pid->write_elem(i, pid->calldata, pm->cur, cfra); - if(write) { - BKE_ptcache_mem_pointers_incr(pm); - - /* newly born particles have to be copied to previous cached frame */ - if(overwrite && write == 2) { - pm2 = cache->mem_cache.last; - if(BKE_ptcache_mem_pointers_seek(i, pm2)) - pid->write_elem(i, pid->calldata, pm2->cur, cfra); - } - } - } - } - ptcache_make_index_array(pm, pid->totpoint(pid->calldata, cfra)); - - pm->frame = cfra; - BLI_addtail(&cache->mem_cache, pm); + else if(pid->write_point) { + error += ptcache_write(pid, cfra, overwrite); } + /* Mark frames skipped if more than 1 frame forwards since last non-skipped frame. */ if(cfra - cache->last_exact == 1 || cfra == cache->startframe) { cache->last_exact = cfra; cache->flag &= ~PTCACHE_FRAMES_SKIPPED; } - else + /* Don't mark skipped when writing info file (frame 0) */ + else if(cfra) cache->flag |= PTCACHE_FRAMES_SKIPPED; + /* Update timeline cache display */ if(cache->cached_frames) cache->cached_frames[cfra-cache->startframe] = 1; - ret = 1; - -cleanup: - if(pf) ptcache_file_close(pf); - - if(pf2) ptcache_file_close(pf2); - BKE_ptcache_update_info(pid); - return ret; + return !error; } /* youll need to close yourself after! * mode - PTCACHE_CLEAR_ALL, @@ -1762,7 +1904,6 @@ cleanup: void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) { int len; /* store the length of the string */ - int i; int sta, end; /* mode is same as fopen's modes */ @@ -1810,8 +1951,6 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) pid->cache->last_exact = MIN2(pid->cache->startframe, 0); BLI_join_dirfile(path_full, path, de->d_name); BLI_delete(path_full, 0, 0); - if(pid->cache->cached_frames) for(i=0; i<end-sta+1; i++) - pid->cache->cached_frames[i] = 0; } else { /* read the number of the file */ int frame, len2 = (int)strlen(de->d_name); @@ -1835,6 +1974,9 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) } } closedir(dir); + + if(mode == PTCACHE_CLEAR_ALL && pid->cache->cached_frames) + memset(pid->cache->cached_frames, 0, MEM_allocN_len(pid->cache->cached_frames)); } else { PTCacheMem *pm= pid->cache->mem_cache.first; @@ -1845,12 +1987,14 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) if(mode == PTCACHE_CLEAR_ALL) { /*we want startframe if the cache starts before zero*/ pid->cache->last_exact = MIN2(pid->cache->startframe, 0); - for(; pm; pm=pm->next) + for(; pm; pm=pm->next) { ptcache_data_free(pm); + ptcache_extra_free(pm); + } BLI_freelistN(&pid->cache->mem_cache); - if(pid->cache->cached_frames) for(i=0; i<end-sta+1; i++) - pid->cache->cached_frames[i] = 0; + if(pid->cache->cached_frames) + memset(pid->cache->cached_frames, 0, MEM_allocN_len(pid->cache->cached_frames)); } else { while(pm) { if((mode==PTCACHE_CLEAR_BEFORE && pm->frame < cfra) || @@ -1859,6 +2003,7 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) if(pid->cache->cached_frames && pm->frame >=sta && pm->frame <= end) pid->cache->cached_frames[pm->frame-sta] = 0; ptcache_data_free(pm); + ptcache_extra_free(pm); pm = pm->next; BLI_freelinkN(&pid->cache->mem_cache, link); } @@ -1882,6 +2027,7 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) for(; pm; pm=pm->next) { if(pm->frame == cfra) { ptcache_data_free(pm); + ptcache_extra_free(pm); BLI_freelinkN(&pid->cache->mem_cache, pm); break; } @@ -1894,7 +2040,6 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) BKE_ptcache_update_info(pid); } - int BKE_ptcache_id_exist(PTCacheID *pid, int cfra) { if(!pid->cache) @@ -1923,7 +2068,6 @@ int BKE_ptcache_id_exist(PTCacheID *pid, int cfra) return 0; } } - void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startframe, int *endframe, float *timescale) { Object *ob; @@ -2030,7 +2174,6 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra } } } - int BKE_ptcache_id_reset(Scene *scene, PTCacheID *pid, int mode) { PointCache *cache; @@ -2093,7 +2236,6 @@ int BKE_ptcache_id_reset(Scene *scene, PTCacheID *pid, int mode) return (reset || clear || after); } - int BKE_ptcache_object_reset(Scene *scene, Object *ob, int mode) { PTCacheID pid; @@ -2235,8 +2377,10 @@ void BKE_ptcache_free_mem(ListBase *mem_cache) PTCacheMem *pm = mem_cache->first; if(pm) { - for(; pm; pm=pm->next) + for(; pm; pm=pm->next) { ptcache_data_free(pm); + ptcache_extra_free(pm); + } BLI_freelistN(mem_cache); } @@ -2549,120 +2693,51 @@ void BKE_ptcache_bake(PTCacheBaker* baker) void BKE_ptcache_disk_to_mem(PTCacheID *pid) { PointCache *cache = pid->cache; - PTCacheFile *pf; - PTCacheMem *pm; - + PTCacheMem *pm = NULL; + int baked = cache->flag & PTCACHE_BAKED; int cfra, sfra = cache->startframe, efra = cache->endframe; - int i; - - BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_ALL, 0); - - for(cfra=sfra; cfra <= efra; cfra++) { - pf = ptcache_file_open(pid, PTCACHE_FILE_READ, cfra); - - if(pf) { - if(!ptcache_file_header_begin_read(pf)) { - printf("Can't yet convert old cache format\n"); - cache->flag |= PTCACHE_DISK_CACHE; - ptcache_file_close(pf); - return; - } - - if(pf->type != pid->type || !pid->read_header(pf)) { - cache->flag |= PTCACHE_DISK_CACHE; - ptcache_file_close(pf); - return; - } - - pm = MEM_callocN(sizeof(PTCacheMem), "Pointcache mem"); - - pm->totpoint = pf->totpoint; - pm->data_types = pf->data_types; - pm->frame = cfra; - ptcache_data_alloc(pm); - BKE_ptcache_mem_pointers_init(pm); - ptcache_file_pointers_init(pf); + /* Remove possible bake flag to allow clear */ + cache->flag &= ~PTCACHE_BAKED; - for(i=0; i<pm->totpoint; i++) { - if(!ptcache_file_data_read(pf)) { - printf("Error reading from disk cache\n"); - - cache->flag |= PTCACHE_DISK_CACHE; - - ptcache_data_free(pm); - MEM_freeN(pm); - ptcache_file_close(pf); + /* PTCACHE_DISK_CACHE flag was cleared already */ + BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_ALL, 0); - return; - } - ptcache_data_copy(pf->cur, pm->cur); - BKE_ptcache_mem_pointers_incr(pm); - } + /* restore possible bake flag */ + cache->flag |= baked; - ptcache_make_index_array(pm, pid->totpoint(pid->calldata, cfra)); + for(cfra=sfra; cfra <= efra; cfra++) { + pm = ptcache_disk_frame_to_mem(pid, cfra); + if(pm) BLI_addtail(&pid->cache->mem_cache, pm); - - ptcache_file_close(pf); - } } - } void BKE_ptcache_mem_to_disk(PTCacheID *pid) { PointCache *cache = pid->cache; - PTCacheFile *pf; - PTCacheMem *pm; - int i; + PTCacheMem *pm = cache->mem_cache.first; + int baked = cache->flag & PTCACHE_BAKED; - pm = cache->mem_cache.first; + /* Remove possible bake flag to allow clear */ + cache->flag &= ~PTCACHE_BAKED; + /* PTCACHE_DISK_CACHE flag was set already */ BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_ALL, 0); - for(; pm; pm=pm->next) { - pf = ptcache_file_open(pid, PTCACHE_FILE_WRITE, pm->frame); - - if(pf) { - pf->data_types = pm->data_types; - pf->totpoint = pm->totpoint; - pf->type = pid->type; + /* restore possible bake flag */ + cache->flag |= baked; - BKE_ptcache_mem_pointers_init(pm); - ptcache_file_pointers_init(pf); - - if(!ptcache_file_header_begin_write(pf) || !pid->write_header(pf)) { - if (G.f & G_DEBUG) - printf("Error writing to disk cache\n"); - cache->flag &= ~PTCACHE_DISK_CACHE; - - ptcache_file_close(pf); - return; - } - - for(i=0; i<pm->totpoint; i++) { - ptcache_data_copy(pm->cur, pf->cur); - if(!ptcache_file_data_write(pf)) { - if (G.f & G_DEBUG) - printf("Error writing to disk cache\n"); - cache->flag &= ~PTCACHE_DISK_CACHE; - - ptcache_file_close(pf); - return; - } - BKE_ptcache_mem_pointers_incr(pm); - } - - ptcache_file_close(pf); - - /* write info file */ - if(cache->flag & PTCACHE_BAKED) - BKE_ptcache_write(pid, 0); + for(; pm; pm=pm->next) { + if(ptcache_mem_frame_to_disk(pid, pm)==0) { + cache->flag &= ~PTCACHE_DISK_CACHE; + break; } - else - if (G.f & G_DEBUG) - printf("Error creating disk cache file\n"); } + + /* write info file */ + if(cache->flag & PTCACHE_BAKED) + BKE_ptcache_write(pid, 0); } void BKE_ptcache_toggle_disk_cache(PTCacheID *pid) { @@ -2676,6 +2751,11 @@ void BKE_ptcache_toggle_disk_cache(PTCacheID *pid) return; } + if(cache->cached_frames) { + MEM_freeN(cache->cached_frames); + cache->cached_frames=NULL; + } + if(cache->flag & PTCACHE_DISK_CACHE) BKE_ptcache_mem_to_disk(pid); else @@ -2687,11 +2767,6 @@ void BKE_ptcache_toggle_disk_cache(PTCacheID *pid) cache->last_exact = last_exact; - if(cache->cached_frames) { - MEM_freeN(cache->cached_frames); - cache->cached_frames=NULL; - } - BKE_ptcache_id_time(pid, NULL, 0.0f, NULL, NULL, NULL); BKE_ptcache_update_info(pid); @@ -2854,6 +2929,7 @@ void BKE_ptcache_load_external(PTCacheID *pid) void BKE_ptcache_update_info(PTCacheID *pid) { PointCache *cache = pid->cache; + PTCacheExtra *extra = NULL; int totframes = 0; char mem_info[64]; @@ -2903,7 +2979,16 @@ void BKE_ptcache_update_info(PTCacheID *pid) for(; pm; pm=pm->next) { for(i=0; i<BPHYS_TOT_DATA; i++) - bytes += pm->data[i] ? MEM_allocN_len(pm->data[i]) : 0.0f; + bytes += MEM_allocN_len(pm->data[i]); + + for(extra=pm->extradata.first; extra; extra=extra->next) { + bytes += MEM_allocN_len(extra->data); + bytes += sizeof(PTCacheExtra); + } + + bytes += MEM_allocN_len(pm->index_array); + bytes += sizeof(PTCacheMem); + totframes++; } diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 19f872fbd40..1b5d1093373 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -642,7 +642,7 @@ void calc_sequence(Scene *scene, Sequence *seq) void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range) { char str[FILE_MAXDIR+FILE_MAXFILE]; - int prev_startdisp, prev_enddisp; + int prev_startdisp=0, prev_enddisp=0; /* note: dont rename the strip, will break animation curves */ if (ELEM5(seq->type, SEQ_MOVIE, SEQ_IMAGE, SEQ_SOUND, SEQ_SCENE, SEQ_META)==0) { diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c index babe4209a31..9a0f278bcd0 100644 --- a/source/blender/blenkernel/intern/smoke.c +++ b/source/blender/blenkernel/intern/smoke.c @@ -1376,7 +1376,7 @@ void smokeModifier_do(SmokeModifierData *smd, Scene *scene, Object *ob, DerivedM } /* try to read from cache */ - if(BKE_ptcache_read(&pid, (float)framenr, scene->r.frs_sec) == PTCACHE_READ_EXACT) { + if(BKE_ptcache_read(&pid, (float)framenr) == PTCACHE_READ_EXACT) { BKE_ptcache_validate(cache, framenr); smd->time = framenr; return; diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c index 4653562e5f4..eb56331acfb 100644 --- a/source/blender/blenkernel/intern/softbody.c +++ b/source/blender/blenkernel/intern/softbody.c @@ -4134,7 +4134,7 @@ void sbObjectStep(Scene *scene, Object *ob, float cfra, float (*vertexCos)[3], i } /* try to read from cache */ - cache_result = BKE_ptcache_read(&pid, framenr, scene->r.frs_sec); + cache_result = BKE_ptcache_read(&pid, framenr); if(cache_result == PTCACHE_READ_EXACT || cache_result == PTCACHE_READ_INTERPOLATED) { softbody_to_object(ob, vertexCos, numVerts, sb->local); diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index bbdc188d580..bb3a31a0977 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -2710,9 +2710,13 @@ int setcurr_tab_spaces (Text *text, int space) } if(strstr(text->curl->line, word)) { - //if we find a : then add a tab but not if it is in a comment + /* if we find a ':' on this line, then add a tab but not if it is: + * 1) in a comment + * 2) within an identifier + * 3) after the cursor (text->curc), i.e. when creating space before a function def [#25414] + */ int a, indent = 0; - for(a=0; text->curl->line[a] != '\0'; a++) + for(a=0; (a < text->curc) && (text->curl->line[a] != '\0'); a++) { if (text->curl->line[a]=='#') { break; diff --git a/source/blender/blenlib/BLI_boxpack2d.h b/source/blender/blenlib/BLI_boxpack2d.h index 4beb2988fb6..a83e4c28882 100644 --- a/source/blender/blenlib/BLI_boxpack2d.h +++ b/source/blender/blenlib/BLI_boxpack2d.h @@ -29,24 +29,6 @@ /* Box Packer */ -/* verts, internal use only */ -typedef struct boxVert { - float x; - float y; - short free; - - struct boxPack *trb; /* top right box */ - struct boxPack *blb; /* bottom left box */ - struct boxPack *brb; /* bottom right box */ - struct boxPack *tlb; /* top left box */ - - /* Store last intersecting boxes here - * speedup intersection testing */ - struct boxPack *isect_cache[4]; - - int index; -} boxVert; - typedef struct boxPack { float x; float y; @@ -56,7 +38,7 @@ typedef struct boxPack { /* Verts this box uses * (BL,TR,TL,BR) / 0,1,2,3 */ - boxVert *v[4]; + struct boxVert *v[4]; } boxPack; void boxPack2D(boxPack *boxarray, int len, float *tot_width, float *tot_height); diff --git a/source/blender/blenlib/intern/boxpack2d.c b/source/blender/blenlib/intern/boxpack2d.c index 1c910dbb519..7e93765ca72 100644 --- a/source/blender/blenlib/intern/boxpack2d.c +++ b/source/blender/blenlib/intern/boxpack2d.c @@ -30,6 +30,23 @@ * * The defined Below are for internal use only */ +typedef struct boxVert { + float x; + float y; + short free; + + struct boxPack *trb; /* top right box */ + struct boxPack *blb; /* bottom left box */ + struct boxPack *brb; /* bottom right box */ + struct boxPack *tlb; /* top left box */ + + /* Store last intersecting boxes here + * speedup intersection testing */ + struct boxPack *isect_cache[4]; + + int index; +} boxVert; + /* free vert flags */ #define eps 0.0000001f #define BLF 1 diff --git a/source/blender/blenlib/intern/math_color.c b/source/blender/blenlib/intern/math_color.c index cf7a122e1bf..9d93168590f 100644 --- a/source/blender/blenlib/intern/math_color.c +++ b/source/blender/blenlib/intern/math_color.c @@ -112,7 +112,7 @@ void yuv_to_rgb(float y, float u, float v, float *lr, float *lg, float *lb) void rgb_to_ycc(float r, float g, float b, float *ly, float *lcb, float *lcr, int colorspace) { float sr,sg, sb; - float y, cr, cb; + float y = 128.f, cr = 128.f, cb = 128.f; sr=255.0f*r; sg=255.0f*g; @@ -144,11 +144,12 @@ void rgb_to_ycc(float r, float g, float b, float *ly, float *lcb, float *lcr, in } -/* YCC input have a range of 16-235 and 16-240 exepect with JFIF_0_255 where the range is 0-255 */ +/* YCC input have a range of 16-235 and 16-240 except with JFIF_0_255 where the range is 0-255 */ /* RGB outputs are in the range 0 - 1.0f */ +/* FIXME comment above must be wrong because BLI_YCC_ITU_BT601 y 16.0 cr 16.0 -> r -0.7009 */ void ycc_to_rgb(float y, float cb, float cr, float *lr, float *lg, float *lb, int colorspace) { - float r,g,b; + float r = 128.f, g = 128.f, b = 128.f; switch (colorspace) { case BLI_YCC_ITU_BT601 : @@ -182,7 +183,7 @@ void hex_to_rgb(char *hexcol, float *r, float *g, float *b) if (sscanf(hexcol, "%02x%02x%02x", &ri, &gi, &bi)==3) { *r = ri / 255.0f; - *g = gi / 255.0f; + *g = gi / 255.0f; *b = bi / 255.0f; CLAMP(*r, 0.0f, 1.0f); CLAMP(*g, 0.0f, 1.0f); diff --git a/source/blender/blenloader/CMakeLists.txt b/source/blender/blenloader/CMakeLists.txt index a9a89120b73..e51fb35a4ac 100644 --- a/source/blender/blenloader/CMakeLists.txt +++ b/source/blender/blenloader/CMakeLists.txt @@ -50,4 +50,8 @@ set(SRC intern/readfile.h ) +if(WITH_BUILDINFO) + add_definitions(-DNAN_BUILDINFO) +endif() + blender_add_lib(bf_blenloader "${SRC}" "${INC}") diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 9d304fe4e58..0ad4a554247 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4554,6 +4554,7 @@ static void direct_link_windowmanager(FileData *fd, wmWindowManager *wm) wm->drags.first= wm->drags.last= NULL; wm->windrawable= NULL; + wm->winactive= NULL; wm->initialized= 0; wm->op_undo_depth= 0; } @@ -5803,12 +5804,14 @@ static BHead *read_global(BlendFileData *bfd, FileData *fd, BHead *bhead) bfd->main->subversionfile= fg->subversion; bfd->main->minversionfile= fg->minversion; bfd->main->minsubversionfile= fg->minsubversion; + bfd->main->revision= fg->revision; bfd->winpos= fg->winpos; bfd->fileflags= fg->fileflags; bfd->displaymode= fg->displaymode; bfd->globalf= fg->globalf; BLI_strncpy(bfd->filename, fg->filename, sizeof(bfd->filename)); + if(G.fileflags & G_FILE_RECOVER) BLI_strncpy(fd->relabase, fg->filename, sizeof(fd->relabase)); @@ -6791,7 +6794,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) /* WATCH IT!!!: pointers from libdata have not been converted */ if(G.f & G_DEBUG) - printf("read file %s\n Version %d sub %d\n", fd->relabase, main->versionfile, main->subversionfile); + printf("read file %s\n Version %d sub %d svn r%d\n", fd->relabase, main->versionfile, main->subversionfile, main->revision); if(main->versionfile == 100) { /* tex->extend and tex->imageflag have changed: */ diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 274f9ac31c6..e6db5fea6bf 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -2514,7 +2514,15 @@ static void write_global(WriteData *wd, int fileflags, Main *mainvar) fg.subversion= BLENDER_SUBVERSION; fg.minversion= BLENDER_MINVERSION; fg.minsubversion= BLENDER_MINSUBVERSION; - fg.pads= 0; /* prevent mem checkers from complaining */ +#ifdef NAN_BUILDINFO + { + extern char build_rev[]; + fg.revision= atoi(build_rev); + } +#else + fg.revision= 0; +#endif + fg.pads= fg.pad= 0; /* prevent mem checkers from complaining */ writestruct(wd, GLOB, "FileGlobal", 1, &fg); } diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index a6bdc8d36d4..902fa2f789f 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -39,6 +39,9 @@ #include "BKE_depsgraph.h" #include "BKE_fcurve.h" #include "BKE_context.h" +#include "BKE_report.h" + +#include "ED_keyframing.h" #include "UI_interface.h" @@ -115,7 +118,7 @@ FCurve *verify_driver_fcurve (ID *id, const char rna_path[], const int array_ind /* Main Driver Management API calls: * Add a new driver for the specified property on the given ID block */ -short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short UNUSED(flag), int type) +short ANIM_add_driver (ReportList *reports, ID *id, const char rna_path[], int array_index, short flag, int type) { PointerRNA id_ptr, ptr; PropertyRNA *prop; @@ -126,7 +129,9 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short UNU /* validate pointer first - exit if failure */ RNA_id_pointer_create(id, &id_ptr); if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) { - printf("Add Driver: Could not add Driver, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", id->name, rna_path); + BKE_reportf(reports, RPT_ERROR, + "Could not add Driver, as RNA Path is invalid for the given ID (ID = %s, Path = %s)", + id->name, rna_path); return 0; } @@ -153,7 +158,10 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short UNU /* set the type of the driver */ driver->type= type; - /* fill in current value for python */ + /* creating drivers for buttons will create the driver(s) with type + * "scripted expression" so that their values won't be lost immediately, + * so here we copy those values over to the driver's expression + */ if (type == DRIVER_TYPE_PYTHON) { PropertyType proptype= RNA_property_type(prop); int array= RNA_property_array_length(&ptr, prop); @@ -180,6 +188,17 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short UNU BLI_snprintf(expression, maxlen, "%.3f", fval); } } + + /* for easier setup of drivers from UI, a driver variable should be + * added if flag is set (UI calls only) + */ + if (flag & CREATEDRIVER_WITH_DEFAULT_DVAR) { + /* assume that users will mostly want this to be of type "Transform Channel" too, + * since this allows the easiest setting up of common rig components + */ + DriverVar *dvar = driver_add_new_variable(driver); + driver_change_variable_type(dvar, DVAR_TYPE_TRANSFORM_CHAN); + } } /* set the done status */ @@ -193,23 +212,21 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short UNU /* Main Driver Management API calls: * Remove the driver for the specified property on the given ID block (if available) */ -short ANIM_remove_driver (struct ID *id, const char rna_path[], int array_index, short UNUSED(flag)) +short ANIM_remove_driver (ReportList *UNUSED(reports), ID *id, const char rna_path[], int array_index, short UNUSED(flag)) { AnimData *adt; FCurve *fcu; int success= 0; - /* get F-Curve - * Note: here is one of the places where we don't want new F-Curve + Driver added! - * so 'add' var must be 0 - */ /* we don't check the validity of the path here yet, but it should be ok... */ adt= BKE_animdata_from_id(id); - if(adt) { - if(array_index == -1) { + if (adt) { + if (array_index == -1) { + /* step through all drivers, removing all of those with the same base path */ FCurve *fcu_iter= adt->drivers.first; - while((fcu= iter_step_fcurve(fcu_iter, rna_path))) { + + while ((fcu = iter_step_fcurve(fcu_iter, rna_path)) != NULL) { /* store the next fcurve for looping */ fcu_iter= fcu->next; @@ -222,8 +239,12 @@ short ANIM_remove_driver (struct ID *id, const char rna_path[], int array_index, } } else { + /* find the matching driver and remove it only + * Note: here is one of the places where we don't want new F-Curve + Driver added! + * so 'add' var must be 0 + */ fcu= verify_driver_fcurve(id, rna_path, array_index, 0); - if(fcu) { + if (fcu) { BLI_remlink(&adt->drivers, fcu); free_fcurve(fcu); @@ -262,7 +283,7 @@ short ANIM_driver_can_paste (void) /* Main Driver Management API calls: * Make a copy of the driver for the specified property on the given ID block */ -short ANIM_copy_driver (ID *id, const char rna_path[], int array_index, short UNUSED(flag)) +short ANIM_copy_driver (ReportList *reports, ID *id, const char rna_path[], int array_index, short UNUSED(flag)) { PointerRNA id_ptr, ptr; PropertyRNA *prop; @@ -271,7 +292,9 @@ short ANIM_copy_driver (ID *id, const char rna_path[], int array_index, short UN /* validate pointer first - exit if failure */ RNA_id_pointer_create(id, &id_ptr); if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) { - printf("Copy Driver: Could not find Driver, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", id->name, rna_path); + BKE_reportf(reports, RPT_ERROR, + "Could not find Driver to copy, as RNA Path is invalid for the given ID (ID = %s, Path = %s)", + id->name, rna_path); return 0; } @@ -307,7 +330,7 @@ short ANIM_copy_driver (ID *id, const char rna_path[], int array_index, short UN * Add a new driver for the specified property on the given ID block or replace an existing one * with the driver + driver-curve data from the buffer */ -short ANIM_paste_driver (ID *id, const char rna_path[], int array_index, short UNUSED(flag)) +short ANIM_paste_driver (ReportList *reports, ID *id, const char rna_path[], int array_index, short UNUSED(flag)) { PointerRNA id_ptr, ptr; PropertyRNA *prop; @@ -316,13 +339,15 @@ short ANIM_paste_driver (ID *id, const char rna_path[], int array_index, short U /* validate pointer first - exit if failure */ RNA_id_pointer_create(id, &id_ptr); if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) { - printf("Paste Driver: Could not add Driver, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", id->name, rna_path); + BKE_reportf(reports, RPT_ERROR, + "Could not paste Driver, as RNA Path is invalid for the given ID (ID = %s, Path = %s)", + id->name, rna_path); return 0; } /* if the buffer is empty, cannot paste... */ if (channeldriver_copypaste_buf == NULL) { - printf("Paste Driver: No Driver to paste. \n"); + BKE_report(reports, RPT_ERROR, "Paste Driver: No Driver to paste."); return 0; } @@ -366,7 +391,6 @@ static int add_driver_button_exec (bContext *C, wmOperator *op) { PointerRNA ptr= {{0}}; PropertyRNA *prop= NULL; - char *path; short success= 0; int index, all= RNA_boolean_get(op->ptr, "all"); @@ -377,10 +401,11 @@ static int add_driver_button_exec (bContext *C, wmOperator *op) index= -1; if (ptr.id.data && ptr.data && prop && RNA_property_animateable(&ptr, prop)) { - path= RNA_path_from_ID_to_property(&ptr, prop); + char *path= RNA_path_from_ID_to_property(&ptr, prop); + short flags = CREATEDRIVER_WITH_DEFAULT_DVAR; if (path) { - success+= ANIM_add_driver(ptr.id.data, path, index, 0, DRIVER_TYPE_PYTHON); + success+= ANIM_add_driver(op->reports, ptr.id.data, path, index, flags, DRIVER_TYPE_PYTHON); MEM_freeN(path); } @@ -389,7 +414,7 @@ static int add_driver_button_exec (bContext *C, wmOperator *op) if (success) { /* send updates */ uiContextAnimUpdate(C); - + DAG_ids_flush_update(CTX_data_main(C), 0); WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX @@ -422,7 +447,6 @@ static int remove_driver_button_exec (bContext *C, wmOperator *op) { PointerRNA ptr= {{0}}; PropertyRNA *prop= NULL; - char *path; short success= 0; int index, all= RNA_boolean_get(op->ptr, "all"); @@ -433,15 +457,16 @@ static int remove_driver_button_exec (bContext *C, wmOperator *op) index= -1; if (ptr.id.data && ptr.data && prop) { - path= RNA_path_from_ID_to_property(&ptr, prop); - success= ANIM_remove_driver(ptr.id.data, path, index, 0); + char *path= RNA_path_from_ID_to_property(&ptr, prop); + + success= ANIM_remove_driver(op->reports, ptr.id.data, path, index, 0); MEM_freeN(path); } if (success) { /* send updates */ uiContextAnimUpdate(C); - + DAG_ids_flush_update(CTX_data_main(C), 0); WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX @@ -470,11 +495,10 @@ void ANIM_OT_driver_button_remove (wmOperatorType *ot) /* Copy Driver Button Operator ------------------------ */ -static int copy_driver_button_exec (bContext *C, wmOperator *UNUSED(op)) +static int copy_driver_button_exec (bContext *C, wmOperator *op) { PointerRNA ptr= {{0}}; PropertyRNA *prop= NULL; - char *path; short success= 0; int index; @@ -482,12 +506,12 @@ static int copy_driver_button_exec (bContext *C, wmOperator *UNUSED(op)) uiContextActiveProperty(C, &ptr, &prop, &index); if (ptr.id.data && ptr.data && prop && RNA_property_animateable(&ptr, prop)) { - path= RNA_path_from_ID_to_property(&ptr, prop); + char *path= RNA_path_from_ID_to_property(&ptr, prop); if (path) { /* only copy the driver for the button that this was involved for */ - success= ANIM_copy_driver(ptr.id.data, path, index, 0); - + success= ANIM_copy_driver(op->reports, ptr.id.data, path, index, 0); + uiContextAnimUpdate(C); MEM_freeN(path); @@ -515,11 +539,10 @@ void ANIM_OT_copy_driver_button (wmOperatorType *ot) /* Paste Driver Button Operator ------------------------ */ -static int paste_driver_button_exec (bContext *C, wmOperator *UNUSED(op)) +static int paste_driver_button_exec (bContext *C, wmOperator *op) { PointerRNA ptr= {{0}}; PropertyRNA *prop= NULL; - char *path; short success= 0; int index; @@ -527,12 +550,12 @@ static int paste_driver_button_exec (bContext *C, wmOperator *UNUSED(op)) uiContextActiveProperty(C, &ptr, &prop, &index); if (ptr.id.data && ptr.data && prop && RNA_property_animateable(&ptr, prop)) { - path= RNA_path_from_ID_to_property(&ptr, prop); + char *path= RNA_path_from_ID_to_property(&ptr, prop); if (path) { /* only copy the driver for the button that this was involved for */ - success= ANIM_paste_driver(ptr.id.data, path, index, 0); - + success= ANIM_paste_driver(op->reports, ptr.id.data, path, index, 0); + uiContextAnimUpdate(C); MEM_freeN(path); diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index 0a20ff931bc..548d06993e7 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -393,7 +393,7 @@ static const float _unit_diamond_shape[4][2] = { }; /* draw a simple diamond shape with OpenGL */ -void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel, short key_type, short mode) +void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel, short key_type, short mode, float alpha) { static GLuint displist1=0; static GLuint displist2=0; @@ -442,23 +442,23 @@ void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel switch (key_type) { case BEZT_KEYTYPE_BREAKDOWN: /* bluish frames for now */ { - if (sel) glColor3f(0.33f, 0.75f, 0.93f); - else glColor3f(0.70f, 0.86f, 0.91f); + if (sel) glColor4f(0.33f, 0.75f, 0.93f, alpha); + else glColor4f(0.70f, 0.86f, 0.91f, alpha); } break; case BEZT_KEYTYPE_EXTREME: /* redish frames for now */ { - if (sel) glColor3f(95.0f, 0.5f, 0.5f); - else glColor3f(0.91f, 0.70f, 0.80f); + if (sel) glColor4f(95.0f, 0.5f, 0.5f, alpha); + else glColor4f(0.91f, 0.70f, 0.80f, alpha); } break; case BEZT_KEYTYPE_KEYFRAME: /* traditional yellowish frames for now */ default: { - if (sel) UI_ThemeColorShade(TH_STRIP_SELECT, 50); - else glColor3f(0.91f, 0.91f, 0.91f); + if (sel) UI_ThemeColorShadeAlpha(TH_STRIP_SELECT, 50, -255*(1.0f-alpha)); + else glColor4f(0.91f, 0.91f, 0.91f, alpha); } break; } @@ -468,7 +468,7 @@ void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel if ELEM(mode, KEYFRAME_SHAPE_FRAME, KEYFRAME_SHAPE_BOTH) { /* exterior - black frame */ - glColor3ub(0, 0, 0); + glColor4f(0.0f, 0.0f, 0.0f, alpha); glCallList(displist1); } @@ -480,7 +480,7 @@ void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel glTranslatef(-x, -y, 0.0f); } -static void draw_keylist(View2D *v2d, DLRBT_Tree *keys, DLRBT_Tree *blocks, float ypos) +static void draw_keylist(View2D *v2d, DLRBT_Tree *keys, DLRBT_Tree *blocks, float ypos, short channelLocked) { ActKeyColumn *ak; ActKeyBlock *ab; @@ -523,6 +523,10 @@ static void draw_keylist(View2D *v2d, DLRBT_Tree *keys, DLRBT_Tree *blocks, floa /* draw keys */ if (keys) { + /* locked channels are less strongly shown, as feedback for locked channels in DopeSheet */ + // TODO: allow this opacity factor to be themed? + float kalpha = (channelLocked)? 0.35f : 1.0f; + for (ak= keys->first; ak; ak= ak->next) { /* optimisation: if keyframe doesn't appear within 5 units (screenspace) in visible area, don't draw * - this might give some improvements, since we current have to flip between view/region matrices @@ -533,7 +537,7 @@ static void draw_keylist(View2D *v2d, DLRBT_Tree *keys, DLRBT_Tree *blocks, floa /* draw using OpenGL - uglier but faster */ // NOTE1: a previous version of this didn't work nice for some intel cards // NOTE2: if we wanted to go back to icons, these are icon = (ak->sel & SELECT) ? ICON_SPACE2 : ICON_SPACE3; - draw_keyframe_shape(ak->cfra, ypos, xscale, 5.0f, (ak->sel & SELECT), ak->key_type, KEYFRAME_SHAPE_BOTH); + draw_keyframe_shape(ak->cfra, ypos, xscale, 5.0f, (ak->sel & SELECT), ak->key_type, KEYFRAME_SHAPE_BOTH, kalpha); } } @@ -554,7 +558,7 @@ void draw_summary_channel(View2D *v2d, bAnimContext *ac, float ypos) BLI_dlrbTree_linkedlist_sync(&keys); BLI_dlrbTree_linkedlist_sync(&blocks); - draw_keylist(v2d, &keys, &blocks, ypos); + draw_keylist(v2d, &keys, &blocks, ypos, 0); BLI_dlrbTree_free(&keys); BLI_dlrbTree_free(&blocks); @@ -572,7 +576,7 @@ void draw_scene_channel(View2D *v2d, bDopeSheet *ads, Scene *sce, float ypos) BLI_dlrbTree_linkedlist_sync(&keys); BLI_dlrbTree_linkedlist_sync(&blocks); - draw_keylist(v2d, &keys, &blocks, ypos); + draw_keylist(v2d, &keys, &blocks, ypos, 0); BLI_dlrbTree_free(&keys); BLI_dlrbTree_free(&blocks); @@ -590,7 +594,7 @@ void draw_object_channel(View2D *v2d, bDopeSheet *ads, Object *ob, float ypos) BLI_dlrbTree_linkedlist_sync(&keys); BLI_dlrbTree_linkedlist_sync(&blocks); - draw_keylist(v2d, &keys, &blocks, ypos); + draw_keylist(v2d, &keys, &blocks, ypos, 0); BLI_dlrbTree_free(&keys); BLI_dlrbTree_free(&blocks); @@ -608,7 +612,7 @@ void draw_fcurve_channel(View2D *v2d, AnimData *adt, FCurve *fcu, float ypos) BLI_dlrbTree_linkedlist_sync(&keys); BLI_dlrbTree_linkedlist_sync(&blocks); - draw_keylist(v2d, &keys, &blocks, ypos); + draw_keylist(v2d, &keys, &blocks, ypos, (fcu->flag & FCURVE_PROTECTED)); BLI_dlrbTree_free(&keys); BLI_dlrbTree_free(&blocks); @@ -626,7 +630,7 @@ void draw_agroup_channel(View2D *v2d, AnimData *adt, bActionGroup *agrp, float y BLI_dlrbTree_linkedlist_sync(&keys); BLI_dlrbTree_linkedlist_sync(&blocks); - draw_keylist(v2d, &keys, &blocks, ypos); + draw_keylist(v2d, &keys, &blocks, ypos, (agrp->flag & AGRP_PROTECTED)); BLI_dlrbTree_free(&keys); BLI_dlrbTree_free(&blocks); @@ -644,7 +648,7 @@ void draw_action_channel(View2D *v2d, AnimData *adt, bAction *act, float ypos) BLI_dlrbTree_linkedlist_sync(&keys); BLI_dlrbTree_linkedlist_sync(&blocks); - draw_keylist(v2d, &keys, &blocks, ypos); + draw_keylist(v2d, &keys, &blocks, ypos, 0); BLI_dlrbTree_free(&keys); BLI_dlrbTree_free(&blocks); @@ -660,7 +664,7 @@ void draw_gpl_channel(View2D *v2d, bDopeSheet *ads, bGPDlayer *gpl, float ypos) BLI_dlrbTree_linkedlist_sync(&keys); - draw_keylist(v2d, &keys, NULL, ypos); + draw_keylist(v2d, &keys, NULL, ypos, (gpl->flag & GP_LAYER_LOCKED)); BLI_dlrbTree_free(&keys); } diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c index a0585acf305..e8509a1bbc2 100644 --- a/source/blender/editors/animation/keyframes_general.c +++ b/source/blender/editors/animation/keyframes_general.c @@ -384,7 +384,7 @@ void sample_fcurve (FCurve *fcu) int sfra, range; int i, n, nIndex; - if(fcu->bezt==NULL) /* ignore baked */ + if (fcu->bezt==NULL) /* ignore baked */ return; /* find selected keyframes... once pair has been found, add keyframes */ @@ -548,12 +548,10 @@ short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data) /* copy current beztriple across too */ nbezt= &newbuf[aci->totvert]; *nbezt= *bezt; - + /* ensure copy buffer is selected so pasted keys are selected */ - nbezt->f1 |= SELECT; - nbezt->f2 |= SELECT; - nbezt->f3 |= SELECT; - + BEZ_SEL(nbezt); + /* free old array and set the new */ if (aci->bezt) MEM_freeN(aci->bezt); aci->bezt= newbuf; @@ -580,16 +578,19 @@ short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data) return 0; } -static tAnimCopybufItem *pastebuf_match_path_full(FCurve *fcu, const short from_single, const short to_simple) { +/* ------------------- */ + +/* most strict method: exact matches only */ +static tAnimCopybufItem *pastebuf_match_path_full(FCurve *fcu, const short from_single, const short to_simple) +{ tAnimCopybufItem *aci; for (aci= animcopybuf.first; aci; aci= aci->next) { /* check that paths exist */ if (to_simple || (aci->rna_path && fcu->rna_path)) { if (to_simple || (strcmp(aci->rna_path, fcu->rna_path) == 0)) { - if ((from_single) || (aci->array_index == fcu->array_index)) { + if ((from_single) || (aci->array_index == fcu->array_index)) break; - } } } } @@ -597,6 +598,7 @@ static tAnimCopybufItem *pastebuf_match_path_full(FCurve *fcu, const short from_ return aci; } +/* medium match strictness: path match only (i.e. ignore ID) */ static tAnimCopybufItem *pastebuf_match_path_property(FCurve *fcu, const short from_single, const short UNUSED(to_simple)) { tAnimCopybufItem *aci; @@ -604,33 +606,32 @@ static tAnimCopybufItem *pastebuf_match_path_property(FCurve *fcu, const short f for (aci= animcopybuf.first; aci; aci= aci->next) { /* check that paths exist */ if (aci->rna_path && fcu->rna_path) { - /* find the property of the fcurve and compare against the end of the tAnimCopybufItem - * more involves since it needs to to path lookups. + * more involved since it needs to to path lookups. * This is not 100% reliable since the user could be editing the curves on a path that wont * resolve, or a bone could be renamed after copying for eg. but in normal copy & paste - * this should work out ok. */ - if(BLI_findindex(which_libbase(G.main, aci->id_type), aci->id) == -1) { + * this should work out ok. + */ + if (BLI_findindex(which_libbase(G.main, aci->id_type), aci->id) == -1) { /* pedantic but the ID could have been removed, and beats crashing! */ printf("paste_animedit_keys: error ID has been removed!\n"); } else { PointerRNA id_ptr, rptr; PropertyRNA *prop; - + RNA_id_pointer_create(aci->id, &id_ptr); RNA_path_resolve(&id_ptr, aci->rna_path, &rptr, &prop); - - if(prop) { + + if (prop) { const char *identifier= RNA_property_identifier(prop); int len_id = strlen(identifier); int len_path = strlen(fcu->rna_path); - if(len_id <= len_path) { + if (len_id <= len_path) { /* note, paths which end with "] will fail with this test - Animated ID Props */ - if(strcmp(identifier, fcu->rna_path + (len_path-len_id))==0) { - if ((from_single) || (aci->array_index == fcu->array_index)) { + if (strcmp(identifier, fcu->rna_path + (len_path-len_id))==0) { + if ((from_single) || (aci->array_index == fcu->array_index)) break; - } } } } @@ -644,6 +645,7 @@ static tAnimCopybufItem *pastebuf_match_path_property(FCurve *fcu, const short f return aci; } +/* least strict matching heuristic: indices only */ static tAnimCopybufItem *pastebuf_match_index_only(FCurve *fcu, const short from_single, const short UNUSED(to_simple)) { tAnimCopybufItem *aci; @@ -658,6 +660,9 @@ static tAnimCopybufItem *pastebuf_match_index_only(FCurve *fcu, const short from return aci; } +/* ................ */ + +/* helper for paste_animedit_keys() - performs the actual pasting */ static void paste_animedit_keys_fcurve(FCurve *fcu, tAnimCopybufItem *aci, float offset, const eKeyMergeMode merge_mode) { BezTriple *bezt; @@ -669,21 +674,23 @@ static void paste_animedit_keys_fcurve(FCurve *fcu, tAnimCopybufItem *aci, float } /* mix mode with existing data */ - switch(merge_mode) { + switch (merge_mode) { case KEYFRAME_PASTE_MERGE_MIX: /* do-nothing */ break; + case KEYFRAME_PASTE_MERGE_OVER: /* remove all keys */ clear_fcurve_keys(fcu); break; + case KEYFRAME_PASTE_MERGE_OVER_RANGE: case KEYFRAME_PASTE_MERGE_OVER_RANGE_ALL: { float f_min; float f_max; - - if(merge_mode==KEYFRAME_PASTE_MERGE_OVER_RANGE) { + + if (merge_mode==KEYFRAME_PASTE_MERGE_OVER_RANGE) { f_min= aci->bezt[0].vec[1][0] + offset; f_max= aci->bezt[aci->totvert-1].vec[1][0] + offset; } @@ -691,25 +698,23 @@ static void paste_animedit_keys_fcurve(FCurve *fcu, tAnimCopybufItem *aci, float f_min= animcopy_firstframe + offset; f_max= animcopy_lastframe + offset; } - + /* remove keys in range */ - - if(f_min < f_max) { + if (f_min < f_max) { /* select verts in range for removal */ for (i=0, bezt=fcu->bezt; i < fcu->totvert; i++, bezt++) { - if((f_min < bezt[0].vec[1][0]) && (bezt[0].vec[1][0] < f_max)) { + if ((f_min < bezt[0].vec[1][0]) && (bezt[0].vec[1][0] < f_max)) { bezt->f2 |= SELECT; } } - + /* remove frames in the range */ delete_fcurve_keys(fcu); } break; } } - - + /* just start pasting, with the the first keyframe on the current frame, and so on */ for (i=0, bezt=aci->bezt; i < aci->totvert; i++, bezt++) { /* temporarily apply offset to src beztriple while copying */ @@ -732,6 +737,8 @@ static void paste_animedit_keys_fcurve(FCurve *fcu, tAnimCopybufItem *aci, float calchandles_fcurve(fcu); } +/* ------------------- */ + EnumPropertyItem keyframe_paste_offset_items[] = { {KEYFRAME_PASTE_OFFSET_CFRA_START, "START", 0, "Frame Start", "Paste keys starting at current frame"}, {KEYFRAME_PASTE_OFFSET_CFRA_END, "END", 0, "Frame End", "Paste keys ending at current frame"}, @@ -749,13 +756,16 @@ EnumPropertyItem keyframe_paste_merge_items[] = { /* This function pastes data from the keyframes copy/paste buffer */ short paste_animedit_keys (bAnimContext *ac, ListBase *anim_data, - const eKeyPasteOffset offset_mode, const eKeyMergeMode merge_mode) + const eKeyPasteOffset offset_mode, const eKeyMergeMode merge_mode) { bAnimListElem *ale; + const Scene *scene= (ac->scene); - float offset; + const short from_single= (animcopybuf.first == animcopybuf.last); const short to_simple= (anim_data->first == anim_data->last); + + float offset = 0.0f; int pass; /* check if buffer is empty */ @@ -785,23 +795,27 @@ short paste_animedit_keys (bAnimContext *ac, ListBase *anim_data, break; } - if(from_single && to_simple) { + if (from_single && to_simple) { /* 1:1 match, no tricky checking, just paste */ FCurve *fcu; tAnimCopybufItem *aci; - + ale= anim_data->first; fcu= (FCurve *)ale->data; /* destination F-Curve */ aci= animcopybuf.first; - + paste_animedit_keys_fcurve(fcu, aci, offset, merge_mode); } else { - /* from selected channels */ - for(pass= 0; pass < 3; pass++) { - int totmatch= 0; + /* from selected channels + * This "passes" system aims to try to find "matching" channels to paste keyframes + * into with increasingly loose matching heuristics. The process finishes when at least + * one F-Curve has been pasted into. + */ + for (pass= 0; pass < 3; pass++) { + unsigned int totmatch= 0; + for (ale= anim_data->first; ale; ale= ale->next) { - /* find buffer item to paste from * - if names don't matter (i.e. only 1 channel in buffer), don't check id/group * - if names do matter, only check if id-type is ok for now (group check is not that important) @@ -810,23 +824,23 @@ short paste_animedit_keys (bAnimContext *ac, ListBase *anim_data, FCurve *fcu = (FCurve *)ale->data; /* destination F-Curve */ tAnimCopybufItem *aci= NULL; - switch(pass) { - case 0: - /* most strict, must be exact path match data_path & index */ - aci= pastebuf_match_path_full(fcu, from_single, to_simple); - break; - - case 1: - /* less strict, just compare property names */ - aci= pastebuf_match_path_property(fcu, from_single, to_simple); - break; - - case 2: - /* Comparing properties gave no results, so just do index comparisons */ - aci= pastebuf_match_index_only(fcu, from_single, to_simple); - break; + switch (pass) { + case 0: + /* most strict, must be exact path match data_path & index */ + aci= pastebuf_match_path_full(fcu, from_single, to_simple); + break; + + case 1: + /* less strict, just compare property names */ + aci= pastebuf_match_path_property(fcu, from_single, to_simple); + break; + + case 2: + /* Comparing properties gave no results, so just do index comparisons */ + aci= pastebuf_match_index_only(fcu, from_single, to_simple); + break; } - + /* copy the relevant data from the matching buffer curve */ if (aci) { totmatch++; @@ -835,12 +849,11 @@ short paste_animedit_keys (bAnimContext *ac, ListBase *anim_data, } /* dont continue if some fcurves were pasted */ - if(totmatch) { + if (totmatch) break; - } } } - + return 0; } diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 829a1d78900..6d677e2f89e 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -194,6 +194,50 @@ static void armature_select_mirrored(bArmature *arm) } +static void armature_tag_select_mirrored(bArmature *arm) +{ + EditBone *curBone; + + /* always untag */ + for (curBone=arm->edbo->first; curBone; curBone=curBone->next) { + curBone->flag &= ~BONE_DONE; + } + + /* Select mirrored bones */ + if (arm->flag & ARM_MIRROR_EDIT) { + for (curBone=arm->edbo->first; curBone; curBone=curBone->next) { + if (arm->layer & curBone->layer) { + if (curBone->flag & (BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL)) { + EditBone *ebone_mirr= ED_armature_bone_get_mirrored(arm->edbo, curBone); + if (ebone_mirr && (ebone_mirr->flag & BONE_SELECTED) == 0) { + ebone_mirr->flag |= BONE_DONE; + } + } + } + } + + for (curBone=arm->edbo->first; curBone; curBone=curBone->next) { + if (curBone->flag & BONE_DONE) { + EditBone *ebone_mirr= ED_armature_bone_get_mirrored(arm->edbo, curBone); + curBone->flag |= ebone_mirr->flag & (BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL); + } + } + } +} + + +/* only works when tagged */ +static void armature_tag_unselect(bArmature *arm) +{ + EditBone *curBone; + + for (curBone=arm->edbo->first; curBone; curBone=curBone->next) { + if (curBone->flag & BONE_DONE) { + curBone->flag &= ~(BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL|BONE_DONE); + } + } +} + /* converts Bones to EditBone list, used for tools as well */ EditBone *make_boneList(ListBase *edbo, ListBase *bones, EditBone *parent, Bone *actBone) { @@ -2136,6 +2180,9 @@ static int armature_calc_roll_exec(bContext *C, wmOperator *op) float imat[3][3]; + bArmature *arm= ob->data; + EditBone *ebone; + copy_m3_m4(imat, ob->obmat); invert_m3(imat); @@ -2150,13 +2197,14 @@ static int armature_calc_roll_exec(bContext *C, wmOperator *op) mul_m3_v3(imat, cursor_local); /* cursor */ - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { - float cursor_rel[3]; - sub_v3_v3v3(cursor_rel, cursor_local, ebone->head); - if(axis_flip) negate_v3(cursor_rel); - ebone->roll= ED_rollBoneToVector(ebone, cursor_rel, axis_only); + for(ebone= arm->edbo->first; ebone; ebone= ebone->next) { + if(EBONE_VISIBLE(arm, ebone) && EBONE_EDITABLE(ebone)) { + float cursor_rel[3]; + sub_v3_v3v3(cursor_rel, cursor_local, ebone->head); + if(axis_flip) negate_v3(cursor_rel); + ebone->roll= ED_rollBoneToVector(ebone, cursor_rel, axis_only); + } } - CTX_DATA_END; } else { float vec[3]= {0.0f, 0.0f, 0.0f}; @@ -2193,11 +2241,23 @@ static int armature_calc_roll_exec(bContext *C, wmOperator *op) if(axis_flip) negate_v3(vec); - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { - /* roll func is a callback which assumes that all is well */ - ebone->roll= ED_rollBoneToVector(ebone, vec, axis_only); + for(ebone= arm->edbo->first; ebone; ebone= ebone->next) { + if(EBONE_VISIBLE(arm, ebone) && EBONE_EDITABLE(ebone)) { + /* roll func is a callback which assumes that all is well */ + ebone->roll= ED_rollBoneToVector(ebone, vec, axis_only); + } + } + } + + if (arm->flag & ARM_MIRROR_EDIT) { + for(ebone= arm->edbo->first; ebone; ebone= ebone->next) { + if((EBONE_VISIBLE(arm, ebone) && EBONE_EDITABLE(ebone)) == 0) { + EditBone *ebone_mirr= ED_armature_bone_get_mirrored(arm->edbo, ebone); + if (ebone_mirr && (EBONE_VISIBLE(arm, ebone_mirr) && EBONE_EDITABLE(ebone_mirr))) { + ebone->roll= -ebone_mirr->roll; + } + } } - CTX_DATA_END; } /* note, notifier might evolve */ @@ -3128,6 +3188,9 @@ static void bones_merge(Object *obedit, EditBone *start, EditBone *end, EditBone } newbone= add_points_bone(obedit, head, tail); newbone->parent = start->parent; + + /* TODO, copy more things to the new bone */ + newbone->flag= start->flag & (BONE_HINGE|BONE_NO_DEFORM|BONE_NO_SCALE|BONE_NO_CYCLICOFFSET|BONE_NO_LOCAL_LOCATION|BONE_DONE); /* step 2a: parent children of in-between bones to newbone */ for (chain= chains->first; chain; chain= chain->next) { @@ -3189,7 +3252,9 @@ static int armature_merge_exec (bContext *C, wmOperator *op) /* get chains (ends on chains) */ chains_find_tips(arm->edbo, &chains); if (chains.first == NULL) return OPERATOR_CANCELLED; - + + armature_tag_select_mirrored(arm); + /* each 'chain' is the last bone in the chain (with no children) */ for (chain= chains.first; chain; chain= nchain) { EditBone *bstart= NULL, *bend= NULL; @@ -3233,6 +3298,8 @@ static int armature_merge_exec (bContext *C, wmOperator *op) BLI_insertlinkbefore(&chains, nchain, chain); } + armature_tag_unselect(arm); + BLI_freelistN(&chains); } @@ -3729,10 +3796,9 @@ static int armature_switch_direction_exec(bContext *C, wmOperator *UNUSED(op)) /* get chains of bones (ends on chains) */ chains_find_tips(arm->edbo, &chains); if (chains.first == NULL) return OPERATOR_CANCELLED; - - /* leaves mirrored bones selected, as indication of operation */ - armature_select_mirrored(arm); - + + armature_tag_select_mirrored(arm); + /* loop over chains, only considering selected and visible bones */ for (chain= chains.first; chain; chain= chain->next) { EditBone *ebo, *child=NULL, *parent=NULL; @@ -3788,6 +3854,8 @@ static int armature_switch_direction_exec(bContext *C, wmOperator *UNUSED(op)) /* free chains */ BLI_freelistN(&chains); + armature_tag_unselect(arm); + /* note, notifier might evolve */ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, ob); @@ -5037,7 +5105,7 @@ static int pose_clear_rot_exec(bContext *C, wmOperator *UNUSED(op)) else { /* perform clamping using euler form (3-components) */ float eul[3], oldeul[3], quat1[4] = {0}; - float qlen; + float qlen = 0.0f; if (pchan->rotmode == ROT_MODE_QUAT) { qlen= normalize_qt_qt(quat1, pchan->quat); @@ -5061,10 +5129,10 @@ static int pose_clear_rot_exec(bContext *C, wmOperator *UNUSED(op)) if (pchan->rotmode == ROT_MODE_QUAT) { eul_to_quat(pchan->quat, eul); - + /* restore original quat size */ mul_qt_fl(pchan->quat, qlen); - + /* quaternions flip w sign to accumulate rotations correctly */ if ((quat1[0]<0.0f && pchan->quat[0]>0.0f) || (quat1[0]>0.0f && pchan->quat[0]<0.0f)) { mul_qt_fl(pchan->quat, -1.0f); diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index 3dbf71b5ec7..47b9dd3733b 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -3928,7 +3928,7 @@ static int make_segment_exec(bContext *C, wmOperator *op) Curve *cu= obedit->data; ListBase *nubase= curve_get_editcurve(obedit); Nurb *nu, *nu1=0, *nu2=0; - BezTriple *bezt; + BezTriple *bezt = NULL; BPoint *bp; float *fp, offset; int a, ok= 0; diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index 0010332c8d9..ab80a7a6ead 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -1705,7 +1705,10 @@ 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); @@ -1730,7 +1733,7 @@ void FONT_OT_open(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* properties */ - WM_operator_properties_filesel(ot, FOLDERFILE|FTFONTFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH); + WM_operator_properties_filesel(ot, FOLDERFILE|FTFONTFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH); } /******************* delete operator *********************/ diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c index 82a8d54b837..f01e1499bca 100644 --- a/source/blender/editors/datafiles/splash.png.c +++ b/source/blender/editors/datafiles/splash.png.c @@ -1,5461 +1,5468 @@ /* DataToC output of file <splash_png> */ -int datatoc_splash_png_size= 174539; +int datatoc_splash_png_size= 174800; 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, 0, 0, 0, 0, 0,249, - 67,187,127, 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,218, 10, 27, 9, 53, 42,196,130,109, 57, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189,105,180, 37,215, 85, 38,248,237, 19, - 17,247,222, 55,228, 44,101,106,176, 44, 41, 37,207,198, 42, 59,101, 83,109, 48,100,225,116, 81,134,130,102, 74,177, 76,131, 89, - 76, 82, 23, 61,153,234,182,164,234,162, 23, 85,171, 48, 88, 89, 84, 27,186,193,221,206,130, 98, 85, 1, 13,229,196, 5, 52,189, - 0,151,210, 32,176, 13,229, 65,216,198,224, 73, 82, 58, 45, 91, 67, 42,199,151,249,222,157, 34,206,217,253,227, 12,113,206,137, - 19,247,222,151,202, 76, 41,237,216, 90,111, 41,223,123,247,221, 27,195,137,243,237,253,237,111,239, 13,116,214, 89,103,157,117, -214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89, -103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214,217, 21,177, -236, 10,127, 30,153,175, 1,128,189, 66,224, 90,102, 12, 1,148,230,231,157,117,214, 89,103,157,117,214,217, 85, 96, 4, 64, 8, - 65,183,255,243,131,119,252,206, 39,127,225,187,158,249,219, 95,252,238,211, 63,247,131,175,249,131, 94, 46,246,121,175,233,172, -179,206, 58,235,172,179,206,158,231,145, 58, 1,232,253,228,155, 95,242,142, 95,248,190,151,190,117, 79, 57, 90,185,118,235,202, -210, 27,190,254, 69, 47,249,198,151, 94,123,224, 67,159,125,250,233,179,235,211, 47, 0,224, 14,220, 59,235,172,179,206, 58,235, -236,249, 13,234, 2,192,242, 55,223,178,244,189,255,112,119,245,202,209,201, 51, 40,207,158, 70, 53,154,224,197, 47,190,121,199, -247,125,227,109,223,241,249, 39,206,102,143, 60,121,254, 83, 0, 70, 29,176,119,214, 89,103,157,117,214,217,243, 59, 82,239,127, -228,248,249,167,119,109,235,189,234, 27,110,219,122, 29, 87, 12,121,225, 60,170, 11, 23,176, 99,247,238,252, 45,111,124,249, 55, - 75, 85,189,232, 67,159,121,250, 19, 0, 78,119,192,222, 89,103,157,117,214, 89,103,207, 79, 80, 7, 0, 98,198,133, 63,250,204, -218, 39, 79,140,228,174, 55,189,108,251,139, 7, 89,142,114, 52,130, 60,119, 6,232, 47,227, 77,223,240,242,151,189,234,230,109, -251,255,252,111,159, 60,190, 62,174,142,117,183,168,179,206, 58,235,172,179,206, 22,143,158,175,244,231, 13, 0,108, 3,240,130, -111,188,125,203, 15,255,230, 91,246,254,248,205, 75,249, 96, 56, 44,129, 44,131,184,225, 22, 12,110,186, 9,143, 61,121,250,252, - 61,191,252,208,207,127,224,147, 79,188, 27,192, 5,243,247,252,124,190,152,204,188, 15,192, 14,243,237, 49, 34,250,170,118, 74, -190,214,206,183,179,206, 58,235,172, 3,245,180, 9, 0, 91, 1,236,185,110,107,254,157,255,241,135,111,251,167,223,120,221,202, -117,227,145, 4,160, 64,123, 94,128,165, 23,222,138, 41, 43,252, 47,191,254,225,255,240,127,254,193,167,127, 26,192,151,205,241, - 62,107, 96,103,230,189, 0,246, 46,248,242,179, 68,244,240,130,239,251, 32,128, 3,230,219,251,137,232,129,175,114, 80,255,170, - 56, 95,227,156, 28, 48, 14,202, 62,239, 87, 15, 3, 56, 6,224, 8, 17,157,189, 4,159, 19,191, 63, 46,245, 26,108,124,230,161, -253,155, 91,235,247, 62,244, 48, 58,235,172,179,171,214,242,103, 1,202, 10,192,150, 93,171,197,215,237, 90,201,119, 41, 38, 10, - 60, 5, 2,136,136,216,254,132,236,207,221,111,115, 0,203,165,228,209, 79,253,209, 51,127,242,139,223,117,211,119,189,126,247, -202,246,105,201,192,217,211, 24, 47,175,162,216,181, 7,255,199, 61,251,223,186,239,246, 61, 47,121,219,123,254,226,237,231,214, -167, 31,186, 68,192,126, 16,192, 59, 55,177, 25, 3,192, 17, 0, 71,137,232,112,183,108,190,106, 88,134,131,230,171, 13,244,172, -195,242, 30,102, 62,108, 28,151,103, 3,238,251, 0, 60,120, 17,127,119, 20,192,155,174,200, 90, 63,180,191, 94,235,247, 62,116, -197,214, 58, 31,218, 31,178, 62,247, 62,212,177, 62,157,117,118,133, 64,157, 0,208, 74, 63,219,247,179,111,190,249,231,222,114, -199,238,253,219,150,138,158, 34,161, 1, 91, 8,253, 69, 4,202,179,224,123, 8, 1,202,178,250,123,210,191, 83, 32, 46,153, 84, -149,231, 16,222,251, 84,178,132, 26, 17,126,248, 77,175,252,250, 87,223,126,237,251,126,236, 93, 71,127,230,227, 95, 56,249,235, - 0, 38,184,242, 84,252, 65, 0, 7,153,249, 32,128,187, 46, 69,228,214,217,115,106, 31,223,228,235,239, 6,112,128,153,239,186, -216,168,249, 42, 50,189,214, 15,237,215,107,253,222,135,174,196, 90,127,167,231, 68,221, 15,224,129,110,137,118,214,217,149,139, -212,175, 61,244, 29,183,190,235, 39, 95,127,227, 27,166, 67, 5, 86,132, 76,144, 14,224,153,244, 23, 4, 72,145,134, 94, 6, 32, - 72,199,246,138,129, 12, 32, 34, 29,239, 51,144, 17, 81, 46, 40, 51, 17,177, 6,117, 6,192, 12, 69,132,201,112,138, 87,221,188, -251,218, 7,127,238,123,126,249, 39,223,253,103, 47,250,237, 63,253,194,207, 3, 56,121,137,162,118, 27, 9, 97, 78,180,230,127, -255, 32, 51,191,169, 3,246,175, 26,123,216, 68,167, 15, 19,209, 81, 19,201,239, 48,247,250,110,111, 13,236, 5,240, 94,102,190, -243, 18,221,251,195,208,244,254, 60,187,148,235,108,243,107,253,208,254, 55, 93, 33, 96,239,172,179,206,158,139, 72,189, 95,136, -189,255,248,101, 59, 94,203, 27, 37,202,241, 4, 80, 74,131,180, 99,214,109, 60, 79, 53,238,102, 2, 98,215,110, 3,238, 10, 36, - 0, 40,195,226, 19,224, 16, 94, 40, 13,252, 66, 0, 18, 90,159, 79,192,116, 82, 98, 91,175, 39,254,159,123,191,237,167, 94,251, -146,235,190,238,159,253,234,135,239,157,148,242,147,151, 2,216,137,104, 38,181,105,162,243,119,162,166,105,247,153,205,190,139, - 38,174,110, 59, 12,224,112, 42,242, 54,160,125, 4,192, 17,102,126,143,185,223, 22,216, 47,213,189, 63, 98,157,136, 43,101,116, -239, 67,179,215,186,142,206,187,181,222, 89,103, 87,169,137,139,248,155,108, 90,170,211,191,243, 55, 39, 63, 66, 98,130,149,158, -196,202, 18,176, 60, 96,243,165,234,127,247, 21, 6, 98, 10,200, 18,212, 95,214, 32,175, 20,160, 20, 92, 84, 14, 0,152, 2,106, - 12,168, 17,192, 99, 0, 19,253, 61, 79,205,235, 25,204, 10,165, 84,168, 38, 18, 63,245,189,175, 61,240,224,161,239,253,253, 91, -246,108,253, 30, 3,251,226,114, 94, 36, 34, 58, 2,157,211,244,163,149,131,221,242,185,170,237, 77, 68,116,207, 34, 84, 58, 17, -221, 19, 69,212,247,125,181, 94, 20,186,247,161,110,173,119,214,217,215, 88,164, 14, 6, 78,223,247, 7,199,127,230,143,254,246, -212,247,188,236,186,165,155, 9, 16,138, 89,153,109, 1,138, 53,100, 15,167, 74,188,250,133, 91, 94,254, 19,223,116,251,222, 65, - 62, 16, 74, 41, 32,203,116,108,173, 20,120,186, 14,202, 8,226,166, 59, 32,174,189, 29,180,245, 58,208, 96, 43, 80, 77,160, 54, - 78,130, 47, 60, 5,117,242, 11, 64, 53, 2,104, 9, 12, 9,201,128, 90,159,226, 13,175,124,225, 11,223,127,232,123,127,237, 31, -221,255,159,178, 47, 62,181,246, 62,212,226,189,203, 5,236,199,152,249,136, 23,177,237,187, 20,239,155, 80, 68, 63,124,137,148, -214,190,234,249,162,202,205, 46,197,123, 92,137,243,141,142,115,161,247,187,136, 8,249, 48,106,193,217, 14,102,222,247,213,154, - 91,167,123, 31, 58,198,135,246, 95,212, 90,231, 67,251,155,247,247, 10, 80,247,145,208,238,138,125,110,103,157,125, 53,128,186, - 4,176, 1,224,179,127,254,216,250,187,254,252,177,245, 37,164,155,216,236,122,243,171,118,255,216,247,220,121,235,245,203,162, - 39, 42,197,154,122, 31,143,193,147, 13, 64,110, 32,123,241, 27,144,223,249, 3,200,110,253,251,173, 20, 2,159, 57,142,234,177, - 15, 64,126,233,195,160,172, 7, 48,131, 9,152, 14,167,120,241, 13,187,182,253,254,191,252,175,127,229,141,111,127,239,153, 83, -107,227, 63,197,165,203,177,183,217, 37, 81,228, 26, 96,187,219, 68, 64,251, 18,191, 63,134,154, 26, 62,219,242, 30,239,244,254, -246, 8, 17, 29,246,222,247,110, 68,138,110,243,158, 15, 44,162,222,103,230,187, 77, 52,186,119,179,199,117, 57,206,119,198,185, -222,103,222,215,223,204,159,141, 82,124,150,197, 0,190,227,171,124,111, 88,120,173, 27, 32,111,191,191,135,246,215,247, 55, 2, - 90, 62,180,255,193,132,227,112, 55, 31,218,127,160,229,227,238, 55,199,118,192,124,237,107,115, 58,102,125,110,103,157,117,160, - 94,155, 2, 48, 6, 80, 65, 55,133, 49, 89,111, 87,243,206, 68,120,249, 3,223,247,226,127,241,246,253,183,236,151, 83, 96, 42, - 37,184,156,128,199, 67,160,154, 0, 57,163,255,109,255, 12,249,157,111,153, 31, 53,236,188, 5,197,206, 31,131,184,238, 85,168, - 62,246,171,128,144, 26,242,137, 48, 29,150,120,213,139,174,191,230, 93,255,100,255,161, 31,122,231,159,124, 15,128,199, 47, 51, -168,251, 27,249, 69,109, 18,204,124, 0,192,123,231,128,194, 94, 19, 21,222, 61, 67,109,109,107,171, 1,224,168, 41,209,122,207, -140,168,106, 47,116,105,214, 62, 67, 39,183,129,239,123,208, 78,183,218,227, 58,200,204,111,186,130,231,155, 58,215, 7,191, 6, -128,245,185,180,133,214,186, 1,223,197,239,239,161,253,119, 69,181,240, 7, 90, 94,191,119,198,113,221,141,197,202,244,236,231, -222,103,196,126, 93, 13,126,103, 29,168,183, 61,203,208, 51,208, 75,139,189,230,255,217,205,215, 12,190,227, 61,111,121,233, 3, -223,250,226,107, 94, 52, 25, 41, 72, 89, 2,147, 17, 80,149, 0, 49,168, 0,250,223,253,243,200, 94,249,237,238,205,206,143, 38, -120,255, 39,143,227,253,159, 58,142, 51,235, 35, 20, 25,225,101, 55,236,196,119,222,121, 59, 94,115,219,245,250,141,111,122, 45, -168,183, 5,229,135,254, 13,208,203,245, 33, 8, 66,181, 62,193, 15,190,241,149,175,254,205, 15,124,238,199,222,255,177,227,239, -192,101, 42,119, 51,128,119, 48,138, 8, 55,251, 30, 7,205, 6, 24, 71,128, 71,189,141,211,143,118,246,162, 86,218, 63, 60,103, - 3,126,175,183, 17, 30,241, 34,203,125,209,113,223,205,204,199, 90, 26,197,188, 51, 1,232,254,123, 29,244, 34,163,247, 62, 71, -231,187, 35, 2,244,179,222,241,237,189,140,207,202,129, 57,145,251,179, 89, 87,151, 60,253,242,172,142, 73, 71,222,115,215,186, - 17,213,109,254,254,134, 0,123,212, 91,167, 59, 60,150,160,141, 41, 56,155, 96, 20,142, 69,199,184,215,220,175,189,254,154,225, - 67,251,239,236,234,223, 59,235, 64,125,190, 89,202,123,219,155, 95,185,243,167, 14,223,245,146,123, 95,176,186,180, 52,218,144, - 96, 57, 1,202,137,249,164, 12, 84,109,160,248,134, 31, 15, 0,253,191, 60,242, 20,222,254, 91, 31,196,177, 83, 23, 48,232, 23, - 40,114, 1,193,192,167,190,124, 6,191,251, 87,159,195,119,220,121, 27,254,183,131,111,192,114,191,128,216,243, 82,228,175,188, - 11,213, 39,126, 29,216,178, 7, 0,235, 36, 58, 19,254,229, 91, 95,255,227,255,249,227,199,127,151, 25,127, 11,157, 34,184,212, -128,254,158, 8, 52, 14,111,242, 61,246,154,247,240, 55,163,123, 18,185,221, 7,162,232,214,126,246,157, 51,222,254, 62, 15,128, -239,137, 65,193,124,246,123,189,205,245, 62,102, 14,168,110, 67,185,223, 29,109,206,119, 69,121,116,255,216, 14, 60, 71,231,123, -159,247,126,247, 27, 17, 99,124,175, 46,135, 29,188, 12,192,155,140,112, 77, 58,226, 8,116, 58,226,138,130,144, 1,244,185,107, -221,116,170,107,222,223,123, 31,106,222,223, 48,154, 15,238,175, 85,227, 27, 26,222,174,169,195,116,239, 67, 15,204, 97, 7, 30, - 0,112,100, 86,244,205,135,246,219,136,222,255,220, 55,161,179,206, 58, 80,159, 11,232,183,190,237, 91,110,252, 87,239,124,243, - 45,255, 77,174,114, 12, 39, 37, 32,167,128,172,116, 30,157, 0,176, 4, 93,115, 19,242,215,189,213,253,241, 35, 79,159,197, 91, -127,229,253,120,102, 84, 97,121,101, 9,101,150,161, 40, 50,244, 50, 66,198, 61,144,172,240,190,143, 60,138, 76, 8,252,236, 15, -236,215, 17,251,237,255, 0,242,243,127, 2,200,117, 32, 95, 2, 8,168,166, 37, 94,125,219,238,235, 94,247,178,235,190,245, 35, -159,121,250,179,208, 41,130,133,163,117,102,190,111, 78,132, 22, 3,216, 61, 23, 33,180,122, 79, 20, 93,182,214, 58, 19,209, 81, - 67,111,219,136,116, 31, 51,223, 61, 39, 31,126,148,136,238,106,121,191, 99,204,124, 63,234,110,102,182, 6,251, 72, 2, 44,237, - 6,157,172,195,247,142,237,227,207,225,249, 30,107,123,191,203, 17,229,154,245,113,209, 14,221, 28,134, 37,101,123,205,253,184, -143,153, 47,105,251, 93, 62,180,127,243,107,189, 9,212,233,251,219,146,183,166,123, 31, 58,202,135,246,135,247,247,208,254,187, - 47,182, 99,221, 44,192,143, 94,119,216,228,213,237,186, 63,192,135,246,239,237,162,245,206, 58, 80,111, 7,116,218,185,146,191, -241,221, 7,111,251,133,239,127,213, 53,119, 76,198,192,132, 74, 64,105,170, 29,133,112,175,228,114,138,252,197,223, 4, 90,189, -198,189,193,253,191,245, 97, 60,242,149, 53, 96,219, 42,214,214, 43,128, 36, 50, 2,150, 51,194, 53, 43, 57,118, 44,229,216,182, -109, 21,191,255,209, 71,176,255, 21, 55,227,192, 29,183, 2, 89,142,108,239, 55,161,250,228,191, 7, 93,123, 11,192, 10,138, 8, -189,165, 30,190,127,255, 75, 14,124,228, 51, 79,255, 59, 0,103,176, 57, 10,126,209, 54,154,135,113, 17,181,197, 94,111,113,119, -234,243,192,135,136, 30, 54,173, 73,239,243, 54,220, 89,155,224, 61,115,222,239, 40, 51, 63,140,144, 10,181,199, 23,183, 74,125, - 96,214,241,121,199,118,247,115,116,190, 15, 92, 41,138,218,156,203, 59,163, 40,253, 82,128,186,237, 43,239, 71,154,126, 15,122, -183, 54,153,121,111,155, 14,226, 34,108,115,107, 61, 1,232, 70,105, 30,222,223, 57, 66, 52,186,247,161,135,249,208,254,205,172, -231, 75, 98,198,161,240,215,253, 65,116, 53,247,157,125, 21,219,197,212,119, 91, 81,220,234, 27,110,219,242, 79, 63,252,223,189, -226,119,191,255,101, 59,239, 24, 14, 37, 36,164, 6,116, 1, 32, 35, 80, 70,160,156, 64,153, 0,229, 4,113,195, 43,221,155,124, -241,196, 57,252,241, 39, 31, 7,150,151,116,153,155, 16, 64,150, 65, 66,224,194, 68,226,139, 39,135, 56,246,204, 16, 37, 19, 84, -150,225, 3,159,254, 82,125, 0,215,220, 14, 30,157, 7, 80,153,163, 97,160, 82,120,233, 11,118,222, 6,224,122, 92,190, 65, 53, - 7, 77, 20,185, 89,138,215,223, 0,207,110, 2, 20,142, 70,159,221, 10, 16, 11,210,180,109, 2,165, 3, 17,192, 46,114,124, 71, -158,163,243, 61,118,165,250,239,155, 20,130,223,171,253,236, 60,231,105,142,157,133, 86,111,223, 70, 68,119, 18,209, 93, 68,244, -128,247,117, 23, 17,237, 52,175,241, 65,242,110,227,120, 93, 73, 59,104, 34,234, 29,115,239,239,226, 17,247,162,235,249, 82,219, -145, 5,216,145,206, 58,251,154,140,212, 45,221,126,195,143,254,253,107,255,197,187,191,227,230,159, 40, 84,134,225, 84, 1, 25, - 3,172, 64, 12,144, 34,112, 70,134,122,215,127, 66,121, 15, 98,199, 11,221, 27, 29, 63,121, 30,163, 97, 9,108,237,215,126,130, -141,173,133, 0,152,113,110,189, 68, 57,173,240,130,109, 57, 46,140,203,250, 32,182,236, 1,144, 1,147, 33,104,105, 11, 24, 12, - 84, 21,110,221,179,101,119,191,151, 93, 55,153,202,207,110,242,188,238,159,241, 59, 95,116,179, 3,158,250,123, 19,209,226,129, - 22, 96,197, 2,209,117, 16, 53,182, 8,200, 22,101, 14,142,205, 56,199, 77,189, 87,124,108, 87,240,124,175,136,130,217, 56,110, -113,206,251,254,103, 83,155,110,254,118,145,102, 55, 15, 48,243, 81,132, 41,142,119,206,113,164, 46,223, 90,111,182,137,189,184, -251,171,163,230, 32,226,191, 20,138,116,195, 28,204, 82,204, 31,136,216,144,206, 58,235, 64,221, 70,191, 91, 6,217,235,255,245, -183,191,224,208, 61,251,174,253,134,233, 20, 24, 23,186,229, 43, 75, 6,149, 10,189,158,192,154,148,106, 9, 66, 32,207, 92, 5, - 59, 1, 0, 87,238,205,118,111, 91, 70,214, 43, 32, 21, 76,191,120, 54,160,110,254,207, 4,100, 2, 27,195, 18, 95, 26,143,209, -191,195, 59, 84,150, 0,151, 64, 53, 6,196, 86, 16, 43,176, 82,216,185, 82, 44,111, 91,238,237,120,102, 58,218, 20, 3,177, 72, -206,210,228, 85,239, 67, 61,158,243, 65,204, 22,175,161,101, 35,217,107, 70,150, 94,140,237,152, 17, 1, 62, 27,187,168, 77,218, -188,118,223, 21, 62,223,203, 14,234, 6,208, 31,140,206,227,158, 43, 57,161,207,164, 35,238, 71, 77,151,239,101,230,131,177, 48, -112,211,239,187, 64, 62,218,228,221,103,173,245,240,254,214,181,230,151,106, 61, 47, 2,228,182,180,237,190, 46,250,238,172,179, -205,129,186,165,178,139,151,238, 25,252,192,111,125,255,173, 15,188,102,247,242,238,209, 84, 1,253, 92, 3,122,169,144,151, 10, -189,165, 12,255,252, 3, 79,124,234,230,237,189,237, 63,177,239,218,155,199, 12,144,141,214,203, 18,234,212,163, 16, 55,189, 22, - 0,240,178, 27,119,225,235, 95,180, 27,127,249,217,147, 64,158,107, 16, 23, 6,208,109, 95, 56,165,255,118,124,102, 3, 47,186, -174,126,110,249,252,147,192,228, 60,120,178, 29,100, 38,198,176,178, 78, 1, 4, 46, 3,253,110,162, 39,120,155,236, 34,226,181, -212,230,181,153,249,214,207,133,157,189, 4,175,189,154,206,119, 17, 64,191,255, 57, 26,185,235,119,177,195,149,186,142,116,239, - 67, 15,152,136,186, 94,235,161,176,237, 57,189,191, 38, 50,239,250, 20,116,214,217, 69,128,186,165,219,119,223,245,247,118,190, -253,151,190,237, 5,255,227,117,131,162, 55, 84, 4, 90,214, 33, 56, 79, 21, 6,138, 49,238, 1,255,195, 31,126,233, 15, 15,127, -248,153,223,251,181,187,110,185,151,216, 48,239,153, 81,191,231, 2,124,226,111,221, 27, 11, 65,248,233,239,190, 19,223,246,153, -255, 15, 24,151, 64,191,103,166,187, 25, 80, 87, 0, 88, 1,235, 67,188,250,229, 55,226,135,190,249, 21,238,111,213, 51,159, 5, -115, 9,146, 83,253, 66,102, 8, 98,156, 89, 31,143,206, 15,167, 23, 46, 99,244,244,128,233,110,102,237, 32, 54, 47,246,153, 85, -131,123, 41, 1,247,249, 98, 87,219,249,198,128,126,248, 82,170,207, 55,185,222,206, 70,226, 70, 91,202,117,165,128,125,145,181, -126, 69,239,175,137,208,227, 62, 5,135, 13,131,115, 44, 69,231, 27,230,225,157,232,172,179,175,113, 80, 39, 0,148,103,244,226, -119,252,163, 27,126,233,237,255,213,117,223, 90, 85,192, 48, 23,160,190, 0, 43, 6,143, 36, 86,114,194,241, 73, 53,254,145,223, -252,226,175, 62,244,133,243,191, 5, 64, 61,190, 86,158, 0,241, 75,217, 69,234, 0, 6,203,144,199, 63,132,252,236,113,208,142, - 91, 0, 0,111,126,245, 45, 56,252, 79,254, 1,222,246,107, 31,196,240,220, 4, 24,244,129, 76,231,211, 49, 45,129,225, 8,175, -121,233, 30,252,238,219,191, 29, 43,131, 66, 31, 85, 57,130,252,204,251, 64,189, 62, 64, 18, 96, 5, 86, 18, 16, 2,143, 61,125, -238,228,120, 42, 79,226,242, 9,229, 0,157,115, 62,224,109,178,155,142,190,158, 43,144,120,142,236,170, 57, 95, 51,141, 45, 6, -244,123,158,227,195,122, 46, 29,185, 69,214,250,225, 69, 75,204, 46,145,221, 29, 1,122,215, 41,174,179,206, 60, 19,115, 64,125, -247, 59,191,237,198, 95,185,247, 27,174,251,214,113, 5,148,203, 57,104, 41, 3, 43, 0, 67,137,149, 65,134, 63,123,114,227,196, -254,119,127,238,103, 30,250,194,249,255, 11,192,113, 0, 79,124,254,212,248,243, 16, 4, 72, 35,122,202,132,166,216,171,117,148, - 31,122, 87,240, 33, 63,241,198, 87,224,175,126,254,251,240,182,127,252,117,184,117,103, 31, 3, 46,177, 42, 36, 94,255,162,107, -240,203, 63,249, 45,248,139,119, 28,196,173,123,182,185,215, 87, 31,251, 85,240,185,227, 64,209, 7, 27, 17, 30, 42, 9, 8,194, -231,191,114,246, 75,208,115,214,213,243,236, 58,207,107,139,121,181, 30,223,129,171,244,124,219, 0,253,238,231, 25,160, 63, 95, -237,185,188,191,190,106,254,129, 5, 1,125,111,119,203, 58,235, 34,117, 0, 55,237,232,237,255,145,175,219,249,198,233, 88, 1, -171, 5,168, 71,224, 41, 35, 27, 87,232,175,100,248,141, 79,157,254,220,127,255,187,199,255,245,249,145,252, 32,128,211,208,131, - 94, 6,127,241,216,133,143, 62,117,161,252,209,107,150,139, 92, 50,215, 69,112, 75,203, 80,143,255, 5,170, 15,255, 34,242,111, -120,155,251,156, 87,221,124, 13,222,245,163,223,132,159,255,161, 10, 79,159,217, 64,175,200,113,195,206,149,198,241,200,207,252, - 1,170,191,249, 13, 96,176,172,189, 14,145,129,165, 2, 73,133,114, 60,193,251, 62,248,216,135,161,251,209, 95, 78, 80,191,152, - 13, 34,160, 80,153,121,199,115,221, 10, 52,178, 99,222,241, 45,164, 14, 54,245,219, 87,235,249, 94, 77,128,126,177, 34,198,203, -185,214,195,251,123,104,255,142, 43, 56, 48,101,223, 69, 92,143,171,194,177,236,172,179,203, 29,169,231,183,236,236,191,104, 71, - 63, 67,165,180,186,157,135, 18,189,169, 4,245, 9,111,127,255,151,143,190,245, 55, 30,251,159,207,143,228, 7, 0,156, 0,176, - 6, 96, 10,160,124,242,220,244,163,239,251,236,217, 79, 22, 57,192, 99, 9,128, 65, 2,186, 94,125,121, 11,228,223,252, 7,148, - 71,127, 26, 60, 60, 21,124,224,160,200,113,203,158,109, 77, 64, 47, 71,144, 31,121, 55,170, 15,190, 3,212,239,129,178, 76,231, -235,139, 62, 80, 86, 40, 4,240, 95, 62,255,212,211,127,249,153, 19, 71,161,123,191, 95, 22, 80,143, 70,124,110,102, 83,137,203, -196,238,126,158,173, 3,255,248,118,152,182,173,207,102,163,124,190,159,239, 85, 1,232,166,117,111,236,124, 93,153,207,214,109, - 96,219,214,250,213,115,127,117, 75,217, 46, 82,239,172, 3,117, 0,217,103, 78,140,190,240,149,169,172,150,151, 51, 44,151, 18, -203, 25,176,158, 41,254,193,247, 30,251,237, 95,120,240,169,127, 1,224, 83, 0, 78,153, 8, 93,163,183, 30,242,114,226,151,254, -252,196,145,181, 82, 34, 47, 37, 80, 42,173,154, 51, 77,105,176,178, 5,234,177, 63,198,244,125,111,133,252,187,247,129,207, 63, -145,126, 32, 55, 78, 66, 61,118, 20,211,223,251, 81, 84,159,248,183,192, 96, 0,100,185,110, 54, 67, 4, 18, 5,104, 92, 2, 25, -227,103,127,231, 19,191, 7,224, 81,243,249,151, 28,212,189,186,101,223, 22, 42, 47, 50,101, 72,254,134,124,223,156, 72,247, 74, -219, 17,132,185,219,251, 22,184, 22,247, 93,197,231,219, 6,232, 15, 99,118, 29,247, 92,167,143,153,239,243,190, 14, 68,215,108, -179,235,205, 23,119,157,197,165,169, 83, 95, 4, 8,103,174,117,186,247,161,230,253,213,138,244,103,203, 22, 97, 1,182,232,236, -162, 17,184, 57,143, 78, 32,215,217,215,148,205,164,223, 79,175, 87, 31,251,254,223,254,226, 3,111,251,166, 61, 7,119, 45,231, -219, 62,123,106,252,149,255,251, 67,207,252,225,223, 61, 57,252,127, 1, 60, 5,224,156,137,206,125, 16,149, 0, 70,143,158, 28, -255,241, 59,254,244,233, 3,135,190,253,166, 55, 85,235, 21,144, 11, 80, 63,171, 37,108,203, 91,129,106, 13,229,135,126, 14,212, - 91, 5,237,122, 41,196,206,219,128,124, 0,168, 18,234,220,227,224,147,127, 7,140,207, 1, 69, 1,172,108,243,158, 86, 0, 74, -128, 39,132,222,170,192,191, 63,250,249,207,252,231,191,126,226,183,161,169,247,242, 50, 68,231, 7,208,156, 47,110, 85,183,139, -218, 61, 8,123,175, 63,104,198,140, 30, 93,224,243, 15, 26,176,188, 44,130, 36,163,178,126,192,219, 0, 15, 48,243,123, 82, 17, -171, 87,242,181,227,106, 61,223, 25,128,254,166,103,153, 38,216, 27,129,200,253, 94, 84,187,207,244, 58, 56, 60,175,214,220, 27, -163,235, 95,227,203,222, 26,215, 68,231,139,174,245,230,253,213, 99, 85,143, 46,240, 25, 7,141,115,240, 64, 11,168, 31,156,209, -152,230,136,119,223,238,230, 67,251,143,180, 40,222, 83,165,137,157,117,246, 53, 13,234, 37,128, 51,127,117,236,194,191,251,171, - 99, 23, 30, 4,176, 5, 58,111,254, 52, 52,213,190,110, 94, 19,183, 21,179,243,214,159,254, 55, 31,120,234, 93,175,190,105,249, -214,183,220,177,235,246,209,249, 41,104,107, 15,232, 11,221,105, 14, 12, 20, 5,168, 40,180,130,253,244,167, 80, 61,243,176,123, - 59, 18, 57,144,247,128,149,213,232,105, 5, 48,149, 96,181,132, 65,191,135,135, 31, 57,113,246,127,250,183, 31, 57,100,162,244, - 17, 46, 98, 66, 27,207,104,141, 54, 11,180, 54,179,201,154,110,105,247,160,158,108,101,129,238,168,217,248, 31,142,192,193,110, -176,251, 60,128,184,156,118, 24,225,152,204,187, 77,164,121,216, 59,182, 3,168,213,199,199,204,102,191,239,106, 59, 95,115, 94, - 41,202,248,189,155, 88, 10, 71, 46,162,118,253,128,113,152,236,168,208, 84,239,247,120, 84, 46,160,219, 0, 95, 18, 7,135, 15, -237,191,184,181, 30,229,204, 77,119,184,230,253, 61,180,255, 98,239,175,237, 11,111, 29,153,143,155, 97, 44,113,202, 33, 72, 21, -153,215, 29, 70, 61,238,213, 54,204,241, 85,242, 71,112,101,219,210,118,214,217,243, 18,212,165, 1,238,202,128,184, 48, 63,155, -152, 47,137,246,161, 41, 21,128,117,197,252,233,255,246,119,190,248,179,187, 86,242,119,252,195,219,183,221, 56, 94,155, 2, 91, - 10,208, 32,171,235,215, 53,130, 3,189,193,236, 58, 52, 6,160, 24,152, 72,168,243, 83, 44, 93,191, 7,159,125,234,236,250, 93, - 15,252,249, 3,107, 27,229, 7, 61, 39,227,114,219,195, 6,208, 55, 45, 90, 34,162,195, 94, 3,155, 29,254, 70,255, 92, 47, 4, - 19,173,223,101,162,155,189, 45,145,167, 31,185,221,133, 57,212,230,243,249,124, 19,182,217,136,238,232,179,248,172,189, 88, 60, - 15,125,248, 10, 56,116,179,215,122,139,194,220, 76, 65,187, 36,247,151,238,125,232, 44, 31,218,127, 63,194,113,174,169,198, 54, - 15, 24,150,192,127,221,221, 51,174,231, 61,230,216, 58, 80,239,236,107,194,196, 28, 24,173,160,243,229,103,161, 39,159,157, 3, - 48, 52, 63,231, 57,127, 59, 1,176,118,126, 36, 31,250,238,195, 95,248, 95,127,227, 19,167, 63, 55,232, 9, 20,231, 75,168,181, - 18, 24, 43,247, 46, 4, 2, 81,226,203,252, 7, 9, 96,170,192,231, 43,208,217, 9,150,118,108,199, 67,199,214,158,254,214,159, - 57,250, 51,199, 78,172,255, 39,115,108, 67, 92, 62,213,251, 81,179,185,222,101, 6,113, 60,155,254,223,135,161, 91,110, 30,198, - 98, 53,200, 71,204,198,116,249, 39, 90,233,161, 48,119,206,249,172,163,208, 99, 79, 31,190,218,207,247, 57, 0,200,251,177,184, -184,242, 8,116, 58,224,158, 43, 92, 57, 80,175,245,123, 31,186,115, 94,201,152,233, 50,119, 73,238,175,121,175,219, 34,118,168, -237, 51,239,194,108,225,160, 94,167, 23, 57,222,181,179,206,174, 86,163,203,252,254, 25,128,101,227, 41,191,226, 71, 94,191,251, -199,255,213,155,111,252,206, 27,183,245,242,106,194,168,114, 2, 6, 25, 40, 23, 58,114, 23,222,225, 48, 3, 18,224, 74, 1, 99, -137,172, 84, 40, 10,194,121, 9,252,220, 7,207,252,217,255,254,135,143,189,167,148,234, 99,168, 75,233,170,171,241, 6, 24, 42, - 56,142, 18,143, 65, 79, 55, 59,250, 28, 30,151,165, 75,253, 70, 31, 71, 23,156, 6,119,213,157,239,115,116,223,247,162,169, 77, -120, 24,154,110, 63,123, 85,158,151, 86,155,167,239,239,156,124,251, 37,250,188, 99, 0, 30,238,102,166,119,214,129,250,229, 5, -246, 1,128,109, 0,174,123,225,206,254,183,220,253,134,221,223,245,195,251,174,121,221, 11,182, 20, 5,152,192,204, 80, 68, 80, -222,209, 8, 6, 4,179, 46, 93, 35,224,244, 88,170,255,248,169, 51,159,126,207,135,159,249,195,191,249,242,198, 31, 1,248,138, - 97, 14, 70, 87, 43,160,119,214, 89,103,157,117,214,217,213, 6,234,246,115,122, 0, 86, 0,108, 5,112,221,206,213,252,239,189, -238,150,213,215,125,223, 29, 59, 95,123,199,141,203,215,239,232,103, 43, 43, 57,245,114, 65,162, 82,224,161, 84,211,181,169, 26, - 62,242,204,232,228,145, 79,158,249,235,191, 60,182,254,209, 39,207, 77, 31, 6,240, 4,128,243,208, 57,244,203, 86,147,222, 89, -103,157,117,214, 89,103, 29,168,207,254, 44, 1,160, 15, 77,201, 47, 67, 43,234,119, 2,216,179,220, 23,187, 6,185,216, 90,100, -212,171, 20, 87,227,138, 47, 12, 39,242, 52, 51,158,129,166,216,207, 67,231,205, 55, 48, 95,168,215, 89,103,157,117,214, 89,103, - 29,168, 95, 65,112, 47, 76,244,110,191,114,184,233,235,128,137,192, 75,243, 53, 53, 64, 94,117, 96,222, 89,103,157,117,214, 89, -103,207, 31, 80,143, 63,223,130,188,253,191, 15,234,236,253,191, 3,242,206, 58,235,172,179,206, 58,123, 30,131,250,172,227,233, - 64,188,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172, +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,218, 12, 29, 18, + 47, 19,145,242,249, 7, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189,121,184, 93,215, 85, 39,248, 91,251,156,123,239, 27, 52, +203,146, 28,199,142,109,217,113, 70, 98,140,156, 64,101, 66, 16,185,168, 64, 65, 51,201,124,161, 33, 52,147,220,208, 83,168,238, +216,174, 46,250,131,250,138, 4, 75, 69,117,160, 26, 82,109, 21, 20, 31, 5, 52, 84, 68, 24, 58,253, 1,193, 10, 56, 36, 6, 2, +113, 37,129,224,140, 86, 28, 39,158, 36,107,126,195,189,247,156,179, 86,255,177,215,222,123,237,115,239,147,158,100, 13, 86,114, + 86,190, 23,201, 79,239,157,123,134,125,246, 90,235,183,126,235,183,128,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172, 179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, - 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,236, 50, 25,245, 86,119, 48, 0, 16, 17, -116,191, 23,219,255, 69,255,155, 26,237,105,108,131, 55,129,102,239,154,250,111,137, 8,204, 0, 17,192,204,230,253,227,215,153, -239,204,103,219,191,169,251,206,144,251, 55, 71,127, 35,132,208,191,101,175,217, 28, 9,243, 61, 64,222,123,212, 31,173, 39,194, -249, 39,101,103,183, 55, 78,133,253, 99,139, 14,135,220, 59, 39,174,232,130, 23,222,204,144,103,112,243,189, 40,124, 93,219,123, - 18,145,158, 71, 79,109, 47,240,222,151,128, 76,100, 96,102,247,153, 48,215, 79,144,112,231,102,175,159,190, 78,128, 32, 97,238, -139,242,206,221, 92, 51,161,144,101,194,188, 7, 65, 49,160,226, 38,190, 20,223,103,123,238, 0, 9,129, 60,203, 80,150,149, 62, - 38,119, 27, 9, 4,130, 16, 4, 34, 97,214, 6, 67,228,132, 34,239, 99, 60,154, 64, 41,165, 15,135,204, 25,154,255, 11, 33,244, - 26, 18, 18,130, 72,255,220,126,217,215,233, 69, 9,102,225,238, 3, 17,233, 53, 69,245,202, 17, 68, 96, 40,184,153, 65,100,214, -143, 18, 40,138, 2,211,178, 52,199, 95, 66,136, 12,138, 21, 88, 41, 40,239,139,153,161,152,145,103, 25, 20, 51, 88,169,250,115, -216, 30, 47, 39,158, 51, 66,170,255, 18,179,183,102,163,181, 64, 11,172,189,212, 90, 97,102,243,220, 1,194, 27,127,236,175, 5, -251, 21, 30, 71,248,127,127,207, 80,138,189,207,108,126,110,253,123,110,156,159,253, 25,145,192,246,237,219, 64, 68,144, 82, 97, -237,252, 26,148, 82,245,177, 49,167, 30, 89,247, 70,222, 33, 53,206, 55,213,218, 42,120, 54, 24,225,191,227,223, 53, 62, 59,190, - 62,245,103, 40, 86,193, 1, 6,215,213, 91,247,246, 61,236,185, 9,179, 70,236, 30,167, 84,165,215, 10,244, 20,203,248, 58,232, -141, 92,129, 89,130,153, 16,142,189,148,201,251, 29,158,191, 2,113,189, 19,177,208,107,208,237,169,156, 62,247, 54,179, 31, 79, -138, 27,127, 67,246, 89,186,220, 0, 71,100,206,195, 46,218,112, 83, 18,124,137, 63, 11, 8,251,162,186,139,171,241, 10,172,230, -189, 73, 56,130,124,241, 79, 7, 88,239,149,121,184, 25,144,123, 40,155,215,219,190, 72, 4,223, 19,197, 27, 16, 69,191,243, 55, -161,112, 49, 9,225,223,216,122, 1,219,159,107,204, 50, 64, 79, 77, 16,243, 23, 5,145,208, 15,136, 1, 50, 50,199,196, 6,222, -221, 57,154,247,176,199, 37,132,104,189, 70,201, 31, 11,106, 5,173, 69, 55, 82, 31,192, 45,104,251,224,219,230, 4, 36,223,143, -194,159,233, 51,166,166, 99, 96,127, 39, 8, 2,158,243, 35,234,215,178,210,191,215, 27, 7, 5, 27, 24,145,208,175,133,183,217, -129, 33,165,132, 16, 2, 82, 41, 16,132,118, 16, 68,180, 41, 70,231,154, 9, 1,134,118, 50,136, 8,121, 33,156,243,199,138,220, - 6,197, 0, 88, 73,235,175, 65,112,166, 31, 14, 33, 52, 96,219,115, 32,242, 46,156,113, 24, 72,152,177,189, 6,176,173, 67, 97, -128, 30, 68, 32,101,214,187,121, 63,138, 94,235,214,165, 93,207,208,142, 72,150, 21,168,170,202, 57, 4, 89,150,129,132, 0, 87, - 10, 62, 84,217,107,108,223, 27, 74,185, 53,103,215,185,118, 88, 18,119,187, 94,176,141,103,222,130, 36,115,232,120,211, 44, 84, -167,250, 28,156,115, 98, 16, 89,248, 27,172,231,244,196, 27,176,118, 82,244,217,213,224,175,143, 65, 8,104, 32, 49, 87, 64, 63, -195,193, 71, 39, 29,121,255,190,185,199,211,108,124, 36, 8, 85, 85,161, 40, 10,244, 7, 61,172, 84,203, 24, 14,135, 80,204,238, -152,106, 39, 30,225,166, 69,245, 14,192,201,205, 55, 1,236, 4, 16,147,219, 71,252, 45,141, 18,129,136, 3,114, 14,159, 49,187, -214, 27,255,142,252, 52,119, 15, 9,222,121,152,231,209,237, 83,236, 57, 81,153,187, 62,202, 56,154, 2, 84, 95, 96,174, 63, 81, - 31,148,104, 58, 62, 12,180, 97,169,117,160, 89,213,199,228,175, 41,237, 91,112,114,255,109,183,244,107,174, 20,160, 55,247,116, -170, 29,148,103, 97,236,240,136,163,123,154, 58, 99, 29,156,184, 21,226,157,187,221, 11, 24, 53,198, 61,219, 43,147, 55, 65,153, - 3, 96, 14, 31, 64,189,140,154,145, 55,188, 40, 27, 13,176,175,189,249, 58, 34,135, 57,121,246, 54, 27,182, 27,142,141,186,237, -118,234, 69,198, 76, 92, 3,148,219,123, 8,201,216,217,109, 80,222, 58,167, 48,218,111, 33, 26,234, 7,217, 46,110, 31, 40,105, -193,197,196,115, 54, 90, 11,170, 51,162,249,214, 13,197,121,157, 97, 52, 31,191, 86,144, 8,158, 47,231,248,136,122,211, 96,165, -191,183,215,131,201, 91,120,190, 99,102, 0, 68,218, 40,139,205,235, 21, 65,136,204, 29,181,200,132, 91,240, 58, 58,101,183, 96, -117,244,205,238,190,104,112,211,224,206,138, 33, 33,161,252,141,218,128,142,254,252, 12,101, 85,194, 71, 11, 65,169,181,138, 0, -208,235,107, 45,220,181, 35, 34,176, 57, 39,123,141,252,245,224,175,103,114, 0, 97,247, 91,189, 70,133, 32,148,101,137,162,200, - 33,149, 12, 34, 90, 86, 42,120, 47,165,148,119,188,139, 82, 58,212,186,190, 82,207, 95, 27,152,167,126, 23, 58,134,222,170,169, - 61, 4,143, 9,171,159, 23, 29, 97, 83,116,157, 20, 0,225,156, 20,123, 13, 26,123, 42,249,142, 87, 91,180, 88,191, 63, 43, 13, -201, 89,175,128, 98, 96,105,105, 9, 69, 81, 96, 56, 28, 98, 58,157,134, 15,115, 43, 72,144, 99,237,194,232,208,115,102, 45,192, - 71,142,168, 3, 47, 21,130,179,125, 31, 65, 66,131,171,183, 56,136, 73, 71,230,177, 83,192,145, 67, 76,245,251,198,192, 79, 76, - 46,138,183, 81,186,195, 15,235, 68,112,130,194, 97, 54,123,172,208,191,119, 0, 33, 67,208,225, 57, 43,142,168,225,152, 94, 12, - 32, 19, 35,201,246, 94,110, 64,119,247,141, 98,122, 85,175,233,139, 5,244, 96,253, 48,106, 64, 33,239, 71, 62,190,248, 14,162, - 69, 51, 10, 89, 96,231,152,138, 26, 19, 23,243, 42, 4,124,250, 68,239,119, 10,164, 65, 61,166, 65,200,219, 24,107,148, 99,142, - 35,243,217,116,161,207,114,251, 52,157,125,127,246, 60, 65, 23,113,120, 84,150,240,168,120, 10, 64,158, 2,240, 50,206,101,243, - 16,136,218,247, 70,138,192, 46,112,110, 41,160,159,231, 70, 64, 30,149, 62,107, 79,110, 80,237,132, 77,131,121, 68,132,180, 30, -151, 5,224, 89, 17, 63,123, 81,174,141,212,172,195,100,169,111,187,177, 43,102, 8, 33,116, 68, 46, 37,178, 44, 11,162,100, 27, -253, 82, 12, 56, 36,244, 86, 69, 38,130, 53, 0,207,164, 35, 61,159, 98, 39, 34, 32, 51,199,165,148,159, 60,177, 8, 13, 41, 43, -183,102, 40,113,145,125,234,152,124,234, 61, 90, 15,254,250, 38,147,122, 72, 51, 33,220, 88, 70, 89,150,161, 42, 43,119,205,132, -208,235, 82, 41,233,162, 32, 21,208,141,245,245, 14, 29,133, 89, 27, 18,181, 4,218,225, 6, 73, 66, 4, 14, 78, 0,194, 20, 62, -199,241, 80, 5,170,147, 10,205, 3,178, 15,171, 23, 1, 58, 32, 19, 62, 37,108,163,118,225, 40, 93,125, 15,244,187,251,207,119, -189, 46, 40,216, 67,244,181, 82,173,155,231,104, 56,194,120, 60,193,242,210,146,142, 66,242, 28, 75, 75, 75, 32, 33, 48, 25,143, - 29,235, 96,239,119,176,151, 49, 7, 32, 22, 48,123,194,166, 96,234, 96,193, 50,124, 22,228,125, 0,246,119, 91,197, 74,191, 46, -136, 98,252, 44, 13,213, 25, 74,110, 18, 18,100,118,111,206,204,243,192, 92,179, 91,198,145,209,159, 89,239, 3,204,170, 94, 27, - 44,235,251, 25,165, 72,124,135,197, 94,115,197,213,124,144,242, 93, 14,111, 55,180,174, 79, 0, 0, 32, 0, 73, 68, 65, 84,239, -155,149, 16,154, 23,177, 83, 2,196, 47, 39,160,251,235,221,165, 60,136, 46,217,251, 54,206,141, 91,168,246,248, 92, 91, 48,179, - 94,183,155,204,221,122, 59,185,117, 50,253, 67,204,253,168, 36,240,164,133,119, 35,185,246,172,227,123,226,232, 6, 47,202,117, - 0,230, 45, 76,231,201, 8,114,185,208, 24,132,236, 67, 36, 32,220,193,182, 81,208, 13,118,135,154, 17,118,224, 93,219,168, 27, - 92, 3,122, 76, 81,123,153, 5, 63,255,203, 51,252,167, 89, 0, 26, 71,227, 51,129, 54, 62,254, 89,249,241,248,250,121,212,253, -172, 60,127,112, 93,218, 34, 61,151, 91, 55, 15,183, 1, 95, 86, 74,211,158,142,126, 34,143,114,212, 14, 35, 19,160, 12,197,108, -157, 5, 65, 4, 22,153,142,100,221,161, 8, 48,235,124, 53, 75,128,136, 77,110, 94, 59, 16,236,229,221,107, 90,145,155,231, 29, -252, 59, 62,105, 17, 48, 51,173,121,232,134,158,129,195,205,220, 57,120,181,211, 2,232,115,148, 74,154,124, 47,160, 20, 60,138, -154, 19, 27, 39, 45,240,208,198,172, 67, 2,200,253, 72,218, 7,222,232,243,194,245,225,165,168,216, 37,164, 32,168, 62, 55,110, -210,108, 81, 90, 7,206,105,240,129,157, 57,157, 6,176, 65, 64,124, 94,241,181,137, 99,147, 48,237,192, 80,138, 33,160, 48, 28, - 14,177,125,251,118,167, 85, 88, 26, 12, 0, 6,166,211,137,102,118,136, 64,126, 36,225, 40, 77, 74, 78,137,106, 48, 81, 92,179, -128,196, 84,131,172, 97,233,124,135, 60, 0,141, 84,142,157, 17,210,251, 49,237,110,157, 8,239,115,236,103, 40,161,188,247, 99, -199,118, 1,181, 99,164,217, 77,119,128,115,162, 59, 54,247, 93, 69,193, 22, 69, 65,149, 57, 87,166, 25,239,196, 11,229,196,103, -129,253,229,206,165,251,193, 74, 20, 77,206,202, 6,180, 30, 39,181, 60, 95,230,225, 89, 44,227,192, 28,176, 37, 62,208, 51,217, -200,116,113,198,206,173, 31,162,228,222,151,135, 81, 78, 45, 26, 83, 6,193,195,168,157,147, 84,187, 59,110,242, 41,132, 38,120, -199,148,180, 32,161,189, 94, 75,237,250, 15, 15,207,167, 41, 45,133,204,224,134,216, 77,152,200, 62,184,201, 45, 81,114,107,196, - 27,209,109,243,168,238, 36, 8,207,163,234,253,168,156, 82,140,195,108,166, 64,204, 89, 16, 41, 17, 96,173, 57,104, 1,127,227, -249,177,239,236,176,247,124,184, 13,180,222,244,200,172, 25,106,220,108, 29,173,147,183,217,250,209,159, 91,111, 74, 65, 26, 64, - 36,179, 30,237,251,249,192,210, 30,209, 82,152, 27,228, 26,128,219,238, 65, 13,214,236, 57,158, 42,120, 55,101, 4, 75,150,126, -174,164, 4, 67, 26, 42, 77,255,157,146, 58,226,210,128,174,188,252,100,155, 3,181,104,116, 78, 51, 35, 5, 74,109,164,209,166, -154,118,222, 40, 65, 81,133,105,176, 24,228,201, 3, 15, 14, 88, 26, 56, 96,119,209,124, 38, 32, 64, 80, 81,176,228,221,250,136, -106,231, 86,102,194,143, 64,167,211, 41,152, 25,101, 85,129, 25,216,178,101, 21,103,207,150, 94, 78,146, 12,181,202,128, 16,176, - 7,192,190,254, 2, 65, 54, 46, 4, 44,110,110,204,254,115,217, 10, 70,212, 30, 96,128,195,245,230, 3,163,141,248,225,114,255, - 28,105, 96, 80,167, 43,163,103,202,166,200, 50, 81, 59, 48,142, 35,177,194, 85,165, 92, 32,211, 78,161,123,108,138,221,115, 69, - 27,240, 54, 29,204,103, 67,207, 95,202, 8, 61, 22,114,194,207,255,115,184, 23,182, 57, 27,254,177,199, 14, 79, 35,237, 73, 45, - 44,128,151, 26,113,175,143,252, 10,248,226,189, 69, 19,248,158,230, 68,127, 41, 52,229,227,250, 30,229,241,102,226,148,145,230, -160,153,211,121,118,120,155, 62, 37, 46, 20, 81, 83, 80,230, 40,243, 54,213,183, 31,233, 19, 55,189,158,132,248,171,241,190,204, -193, 67, 90, 11, 79, 16,230,215,103,128,120,176,161, 50,205,166,195, 83,209,240, 28, 38,101, 94,116,239, 31,243,166, 41,255, 56, -234, 78,129, 68, 27,128,120,155,145,151,217,180, 72, 17, 56,167,181,216, 75, 36,222,223,219,231, 60,160,142,243,181,174, 70,193, -167,219,237,123, 8, 1, 82, 10, 51,106, 38,102, 68,233, 62,123, 76, 30,168,112, 2, 36,185,214,103, 36,116, 16,194, 59,102, 70, -205, 68, 72, 41, 27, 2, 50, 77, 37,207,185,239, 52,159,102,111,103, 35, 40, 25, 69,251,142,182,160,136,130,159, 25,195,121,233, - 52,127,243,178,231,203,188, 80, 4, 22, 30, 51, 65, 73, 43, 8,172,213,236,179,175,139, 8,171, 88,146, 14,144,214, 47, 16, 17, -138, 60,119,223, 95,179,107, 23, 78,157, 62, 13, 41,165,183, 47, 81, 82, 43, 96,117, 14,100,153,166, 84,148, 75,233, 61,135,136, -106, 17, 29,107, 54,177,166,198,117, 74,201,230,200, 93,190,221, 87,189, 91,188,132, 8, 85,239, 20, 69,246,236, 3,124, 74,228, -166, 60,118,188, 86,202,135,153, 71,114, 78, 78,234,122, 42, 21, 75, 17, 56,208,161,132,142,161, 10, 46, 12,207,212, 47,180,131, -251,165, 6,250, 58,229,195, 73,231, 53,229, 12,115, 35, 72, 69,144,186,240,127,231,239, 21,126,218, 55, 20,179,209,204,208, 63, -245,121,202,165, 81, 22,207,223,215,123, 6,207, 23, 4,176, 19,202, 37,220, 75, 67,155, 91,177, 65, 40, 2,160, 96, 67, 20,134, -183,142,115,222, 54, 79,101,127,238,131, 13,113, 24, 65, 6, 30, 80, 76, 51, 44,144,131,118,212,189, 87,158, 21,208,237, 20, 58, - 19,109,212,122, 3, 44,219,162,114, 63, 7,207, 88, 88, 5,159, 42, 93,139, 83, 4,201,197,217, 86, 74, 71, 17, 16,209,226,224, -159,100, 2, 8,201,133,237, 23, 15, 32,222, 52,108, 57,153,253,121,228,237, 6,251,154, 16,158,150,220,172, 26, 19, 73,133, 4, - 5, 45, 38, 37,163, 88,128,229,234,104,188,107, 33, 90,114, 89,202,219,248, 68,189, 18,130, 28,112,211,115,112,127,207, 66,111, -228,108,162,162,121,105, 26,106,163,217,169, 93, 33,238,235, 2,146, 64, 77, 77, 26,142,224,174,103,204, 26, 4,212, 98,228, 24, -113, 4,236, 46, 2,138, 64,177,205,148,170, 85,241,204, 58,165, 98,193,118, 22,237, 42, 4,185,244, 69,251,198,204,168,170, 10, -131,193, 0, 68, 2,211,105, 9, 33, 8,211,233, 20, 91,182,108,193,218,218, 90, 8, 30, 81, 62,191,177,241,123, 41, 21, 54,107, - 87,153,168,138,137, 27,229,103,193, 62, 21,129,113, 64,229,115,147,125,115, 64, 78,181,104,212,127,102,157,104,212,110,216,202, -127, 56,125, 6,193, 87, 67,168,186,172, 45,206,173, 71,223,187,245, 79,106,102, 42,145, 1, 64,122,229,155, 20,209, 16,162,198, - 6,226,205, 1,117, 12,162,151, 42,199, 93,151,132, 82,210,113,143,215, 93,252,218, 24,116, 83,107,133,227,188,183,171,194,178, -169,105, 0,170, 89, 77,225,222, 43, 19,224,186, 78,112,161, 12, 64, 45, 52,181,247,187, 13, 3,189,252,183,249,144, 28, 94,164, -237,111,142, 60, 47,159, 76,205, 50, 14, 75,121,199,209, 52, 69, 98,161,152,154, 74, 41,203,173,163,144, 44, 95,139, 84,132, 65, -206,148, 67, 37,169, 32,145,124,125, 43, 5, 30, 69,174,238, 33, 76,228, 76,156,114,157, 90, 34,109, 44, 64,211, 99, 70,142, 59, - 5,214,137,243,104,165,216,103,212,175, 39, 63, 51, 12, 42,130, 40,149,146,185,229, 68, 14, 22,161,138,211,122,253, 86,193, 30, - 70,110,156,160,236,227,252, 29,121,121, 65,118,255,142,246,230, 40, 69, 68,152, 25,198,183,121,211, 9,138,223,239,107,160,148, -114,117,233,246,111,109, 14, 61,174,253, 13, 63,214,143,208, 69, 3,208,230,173, 3, 74,106, 9,234,115,173,129,212,139,196, 34, -167,108,158,195, 17,246,135, 72, 28,143, 86,193,205, 4,118,219,179,192,239, 59, 97, 21,243,179, 54,242,250, 56, 69, 67, 52, 23, - 59, 13,227,201, 4, 75,131, 37,172, 44, 47, 99, 56, 26, 66, 8,129,178, 44,177,178,178,130,141,141, 97,227, 92,131,205,218, 3, -113,112, 51,202, 21, 68, 80,190,115,173,162,210,181,196, 26, 13,246, 64, 31,232,226,168,219,171, 60, 1, 71,149, 60,246,250, 68, -207, 56,155,181, 30,234,153,244,102, 79,243,210,185,113,206,163,113,173,145,174, 86,162,102,254,124, 86, 66,122,145, 28,185,191, -135,251,162, 73, 53, 99, 45,181,189,175,171,208, 73, 69,193,158,158,167,205,129,104, 68,225,137,235, 51, 47, 93,102, 75,124,155, -191,227,228,251,251, 66,249,246,135, 64,120, 94,161,106,222,151, 54, 58, 73, 53, 25,191,220,145, 60, 9,170,206,170,208,107,102, -168,174,109, 14,114,204,179, 34,218, 68, 34,208, 47, 17,139, 35,246,216, 91, 74, 46, 24, 74,231,186,252,252,175, 5, 58, 39,194, - 99,110,148, 19, 36,243,203,228, 69,206,220,210,152,102, 78, 51,152, 36, 85,159,106, 92, 67,115,156, 11,106, 97, 37,136,103, 59, - 14, 52,163,153,205,156, 90,102, 49, 35,101, 72, 17, 21, 29, 31, 34, 27,119,144, 60, 79,182,246,166,235, 8,210,169,163,253, 8, -201, 81,156, 81,238, 51, 46,133,156,177,190, 56, 69,109,121,145, 11, 37,122, 18,136, 68,105, 23,121,231,104, 35, 1, 63,170,179, - 15,161, 10, 24, 9, 32,238,207,144,162,153, 23, 1,115,138,156,169,148,106,156, 40, 93,165, 82, 71,190, 28, 53,182, 73,169,111, -195,205,186,237,121,243,233,234, 32, 87,205, 60,195, 81, 18,144,210, 54,218,145,206,113, 72,231, 96, 99, 42, 94,181,198,146, 74, - 74,140,199, 35,112, 95, 55, 62, 34, 18,144, 74, 34,207, 50, 44, 47, 47, 97, 52, 26,153,231,183,241,192, 65,248,249,107, 86,181, -200,207, 83, 0, 7,155,178,168,115,205, 65, 90,206,103, 2,189,189,135, 41,140,214,226, 38, 79,245,103,115,114,111,112,202,247, -160, 9,148, 10, 74, 43,245,207,172,172, 94, 5,247,149, 27, 28,170,140, 72, 42,246,122, 18,132,101,133, 92,119, 92,242,210,160, - 33, 61, 31,151,210,205,218, 75, 82,224,200, 73,165,254,124,234, 62,249, 30, 70,112, 45,184,233, 44, 44,234, 32,164,211,113,222, -239, 4,205,208,227, 40,253, 60, 43, 14, 88, 46,246,174,161, 34, 64,139, 30,226,158, 44,169,205, 65,121, 1,204,252,138, 43, 40, -209, 2, 70,140, 60, 4,227,168, 30, 51,200,164, 80, 64,109,183,229,101, 45,120, 6, 13, 79, 18,205, 86,102, 1,100,208,213,172, -133,186, 9,212,168,162,217,120, 37, 80,184, 51, 26,245,214, 41,182, 33, 86,185,206, 4,240, 54,197, 58, 45, 16,137, 83, 58,109, - 16, 95,171, 54,154,156,102,136,170, 82, 12, 6, 40,113, 41, 90,232,245, 20,253, 59,135, 99,104, 80,182,118,195,168, 21,204, 42, -202,219, 82, 45,182,243,128,149,147,174, 49,205, 0,201,212,226,111,209, 25, 8,145,206,179, 69, 90, 0, 36,202,192, 92,255, 68, - 83,210,231,180, 38,198, 97,136,115, 95,179,238,255,162, 57,243, 48,229, 33, 2,175,157,104,142, 51, 96, 54,145, 90,252,155, 86, -158,135,209, 26,183, 36,148,185,225, 28, 53,158, 4, 39,150,211,224, 47,188,158, 6,204,170,118,140,144,254, 91,191,251, 92,125, -190, 28,168,234,253,104,158,136,156,104,174,223,239, 67, 86, 21,164,148, 24,244,251,186,179,159, 82,238, 90, 9,211,127,161,215, - 43,176,101,235, 54, 8,202,176,115,231, 14,156, 57,123, 22,231,207, 95, 0, 88, 66,144,192,133,225, 58,136, 8,213,180,132, 82, -181,198,194,138,205,132, 18, 33,141, 75,158,176,204, 11, 46, 72, 80,163,174, 61,153, 91,142, 58,214,197,251,131,253, 60,246,115, -231, 30,195,213,230, 21,197,255,106,211, 59, 89,102,201, 15,232,131,117, 28,172, 53,242,170, 38, 22,163,207,219,214,220,102,254, - 62,222,255, 93,160, 23, 97, 69, 10,208, 83, 34,183, 69, 24,187,176,143, 69,219,126,231, 57,243, 8, 3, 69,182,187,120,178, 50, - 39, 85,237,225, 87,165,242, 66,199,154,174,165,171,111,102, 78,145, 95,233, 71,139,228,229,210, 41,168, 75, 67, 83,241, 9,143, -146,246,246,135,152,146,231,116,191,157,217,185, 30,207,235, 75,169,189,131, 28,161,109,163, 41, 40,240,120,125, 49, 29,154,210, -128,153, 45, 87,227,102, 50,190, 3, 48,235, 6, 52,162,124, 74, 68,245, 41, 49,134,207, 24, 48,207, 84,192, 7,215,131,102, 83, -242, 62, 27, 67,152,211,176,100,193, 84, 1,181,230,130, 82, 64, 17, 58,142, 8,250, 32,176,151, 7,197, 66, 34,133,153,139,159, -107,142,146, 90,245, 13, 17,224, 10,209,160,250,124, 49,160, 48, 17,171,226,122, 99, 97,197, 51, 29, 30,255,129,110, 3,116, 63, - 50,247,157, 28,159,153, 8, 34,123,226,166, 16, 53,225,240,164, 64, 63, 37,114,243,113,161, 6,212, 52,221,202,169,243, 35,160, -232, 21, 40,138, 1,178, 76,171,212,101, 37,161,164, 68,158,103,238, 51,157,152,109,177,204,105, 99, 99,180,223, 75,169,144,231, - 57,152, 37,170,178, 68, 94,244, 32,136, 48,153, 78,177,235,154,107, 0, 16,178, 76,119,163, 19, 89,129, 23,190,224, 38, 92,119, -253,245,248,202,147, 79, 98, 60, 30,226,228,169, 83, 56,117,250, 52,150,150,151,177,188,180, 21,121, 70, 88, 94, 93, 69,127,105, - 9, 85, 89, 2,138,177,188,178,140,141,245, 13,172,173,157,195,112,180,129,241,120, 92,231,190, 81,183, 76, 22,130,116,245, 67, -162,220, 43,208,201,216,253, 16, 34, 0,115, 63,122,247, 59,212, 49, 24, 97,156,224,165, 72, 92, 23,179,176, 17, 72,168,131, 16, - 94, 84,174, 16,118,166,243,247, 32,170, 43, 62,226, 14,105, 30,187, 41,156,182,138, 27, 65, 86, 27, 88,207,162,185, 23,165,238, -147,142,113, 45, 36, 72,138,117,219,156,129,133, 89, 1,209,210,213,141,189,246,227,246,249,179, 44,158,168,197,115, 77,134, 2, -141,102, 76,126, 87,200,214, 22,207,126,131,153,182, 61,209,246,238,245,188, 11, 90,217,113, 45, 59,111,120, 51,197,239,137,206, - 56,169,238,104, 49, 96,251, 96,232, 55,122, 8,162,111, 15, 96,107,239,140,147,117,218,238,115, 61,202, 61, 19, 89,240,128, 36, - 65,145, 19,169,128,248, 88, 91,132,109,141,221, 45,161,124,143,181, 3,254, 57,199, 14, 78,107,165, 0,205,246, 98, 69, 84, 54, -213, 38,182, 75,229,100,121, 86,204,157,200, 49,251,157,212, 40,200,117,135, 93,186,234,197, 26,230,185, 83,249,102,110, 21,219, - 48, 68,150, 37, 1,115, 30,205, 29, 80,220,153,201,193,123, 15,189,136,155,178,248,255,142,162,121, 97,114,200,182, 13,174,205, -161,171,202, 68,113, 82, 66, 74, 21,156, 95,171,243, 37,218,218,252,166,154,196, 80, 16,149, 55,192, 95, 40,147, 22, 19, 72,213, - 27,183,109,108,179, 40,205,102, 63,240, 16,216, 29, 35,225, 34, 35,225,162, 96, 16,161,146,166,202,129,253, 46,104,228, 20,219, - 58,183, 62, 59, 95,190,120,228,166,175, 77, 86,228, 80, 92, 33,163, 12,215, 92,123, 29,182,108,221,134,167,159,250, 10,134,195, - 33, 50, 34, 20,189, 30,174,187,254, 6, 84,149,196,169,147, 39, 48,153, 76,177,178,117, 21,163,141, 33, 84, 37,145,231, 57,134, -163, 33,138, 94,134, 34,235, 65, 26,205, 4,152,177,180,188,140, 44, 47,192, 74, 97, 84, 78,177,101,117, 5,107,103,206, 98, 99, - 56, 68, 85, 86, 40,171, 18, 43, 43, 75,200, 51,194,250,250, 8,211,105, 21,212,174,219, 60, 57,251,209, 45, 39,174,121,156,139, -247, 41,122, 54,106,105,239,254, 48,235,186,125,178, 41, 16,192,233, 28, 26,165,136,174, 91,153,108,191,222,156, 1, 36, 35,140, -152,177, 78,226,178,187, 5,104,244,121,249,243, 77, 1,250, 12,241,227, 60, 16,231,132,120, 50, 21,132,181,150,234,207, 18,159, - 11,225, 1,107,170,181,179,128,237,187,224, 71,232, 51,169,118,149, 37, 18, 43,254,141,170, 65,157, 32, 28,197, 66, 43, 59,119, -115, 88, 23, 57,231,161,138,163, 91, 90, 44,226,246,163, 93,191, 1,140, 15,218,201,252,112, 27, 21, 29,129,173, 77, 13, 8, 18, -161,151,220, 2,198,241,103,166,234,218, 27, 2,187, 68, 78, 62, 88, 76,169, 94,231,168,157,135,100, 77,249, 12,186,188,221, 83, -165,153,175,167, 86,218,191,217, 86, 51,149,191,141,155,191,112,152,154,116, 63,171,187,135, 49, 82,204,108,122,177, 54,179,241, - 97,186, 69,175,244,204,163, 81,237,103,113,171,216,196,203, 55, 83, 93, 55,111,235,200,253, 13,193, 23,255,137,168,129,139,136, - 58,227,217,115, 82, 74, 71,134,101, 85, 66, 73, 9, 54,249,172,178,172, 22, 16, 9,205,136,210,163,200,220,143, 80,173,247, 30, - 59, 32, 74, 41, 8, 97,159, 1,145,188,142,109, 52,232,124, 80,231,232,245,222,251, 82, 68,243,122,175, 15,157, 2, 14,214, 71, - 74,125,220, 14, 0,233,215,248,105,132,224,122, 10,129,222,210, 50,110,186,225,133, 56,123,246, 36, 46, 92,184,128,233,100,162, - 95, 35,114,220,124,203,205, 24,141, 70,232,247, 10, 76,171, 10,196,192,211, 39,158, 66, 53, 41, 77,174,218,164, 21,115, 1,150, -202,116, 56, 4,122,253, 62,148,172, 0, 18,232,245, 7,174, 7, 61, 25,165,115,175, 63,192,198,198, 16,189,158, 64, 47, 39,172, -175, 15,113,230,220,133,160,241,144, 31,113, 7,209,247,140,225, 48,141, 0,199,190, 86, 41,212,237,119, 1, 40,233, 82, 87, 65, -122,164,109, 0, 79, 4,234,129, 51,205, 34, 20,102,113,248, 94, 94, 94, 42, 44, 51, 86,179, 35,239,152,250,190, 88, 80,111, 99, - 5, 22, 97,161, 26, 63,143,246,191, 36,240,207,144,237, 16, 55, 3, 89,183, 47,138,217,170,118, 55, 11,193,246, 20,136,250,190, - 36,121, 79, 37,194, 15, 39,246,162,119, 89,179, 2,110,138,140,167,126,159, 11,230, 94,135,173,182, 26,234,128,222,110, 14,123, - 75, 71,161,190,160,141,103, 40,212, 35,170, 63,142,136, 83,221,223, 26,116, 59,133,169, 8, 66,179, 41,129, 19,205, 81, 43,223, -152,164,239, 83, 96,110, 85,175,130, 68,250,239, 98,229,255,140,220,125,107, 74,128, 98,214, 40,108,153,153, 26,112,129,182,134, - 38, 13,202,221,143,220, 60,225,155,185,191, 58,168, 13,203, 32,125, 16,106, 52,114,242, 4, 57,212,104,230,225,171,184,169, 45, - 93, 56, 99, 48,136,151,175, 22, 28, 62, 44,222,250, 16, 81, 55, 54, 27,157,147,151, 91, 39,138, 41, 77, 97,162,174,218,181, 22, -166, 85,236, 34,170,223,152, 6,247, 91,234,214, 14, 68,216,235,216,130,161, 15,230,246,251, 44,203, 54,151,134, 8,142,165, 25, - 93,205, 18, 11,217,141, 71, 49, 59, 6,208,246, 29,128, 81,182, 47, 47, 45, 97, 60, 30, 59, 7,167, 57, 4,164, 89, 51,223,222, -137,204,167, 47, 57, 29,237,120,215,163,215,239, 97,231,174,107,177, 49,186,128,243, 23,214, 81,244, 10, 76,167, 35, 32, 47,112, -231,190,215,225,145, 71, 30,193,198,133, 53, 76, 39, 99,147, 39, 39,108,223,182, 21,211, 92,215,187, 87, 85,133,201,100, 10, 89, - 85,200,243, 2, 69,145, 67, 41,133,170,146,134, 1, 81, 40,167, 19, 61, 84, 38,207, 33,242, 2,204,140,201,116,138,229, 45, 43, - 96, 41, 81,202, 10,253,193, 50,182,109, 21,216,216, 88,199,180, 44,155, 44,160,151,131, 79, 13,139, 73,149,207,113,114, 16,139, -107, 18, 1,169, 52,175,154,177,116,141,194,220,118, 53,163, 39,126, 83,164,167,230, 50, 35, 76,161,179, 70,220,174, 28,159,231, - 76,110, 54,175,158, 90,195, 41,112,159,215, 83,193,229,200, 93,119,165, 40,122, 79,237,193, 28, 6,197,169,227, 83, 11, 14, 97, -113, 76,141,237, 8, 76,113,137,165,104,167, 8, 72,213, 41, 55,119,191,132, 71,209, 71,186,166,149, 93,123, 2, 76,242,133, 30, -141, 28,249,162,158, 21, 47,184,217, 36, 6,168,196,130,181, 89, 66,180, 20, 96,198, 57,239, 25, 25,187,185,138,125,119, 45,226, - 8, 61,170,229,110,116,156, 75,177, 9,109, 76, 3,165, 83, 20,109,239,145,140,204, 83, 57,240, 72,232, 21,215, 57,115,242,239, - 3,229, 31, 16,140,211,164, 0,168, 98,145, 77, 76, 41,205,123,128,181,247,158, 22, 68, 50, 43,237,249,206, 25,223, 89,119, 64, - 84,176, 26,206, 24,180,125,135,199,122,212,118, 68,107,252, 26, 11,152,129, 16, 71,233, 93, 77,177, 4, 67, 65, 73, 9, 65, 5, -198,227,113, 99,188,104,144, 1,165, 4,160, 6, 53,231,126, 36, 78,141,118,182, 41,225, 79, 27, 56,199,235,112,214, 38,218,168, -217,245,206, 55, 30, 23, 27, 15,206,177,159, 93, 85,186,151,120,175,215,115,130, 53,203,104,196,247, 43,238,253, 30, 56, 6,115, - 55,133,144,213, 16,148,185, 25, 4,123,110,184, 17,219,182,239,128, 42, 75,244,151, 6, 56,125,234, 36, 78,158,120, 18,149, 82, -184,233,166, 91,113,238,220, 25,156,122,230, 25,211,147,159,221,253,117,211,251,160,167,235,217,161, 60,138, 25,229,116, 90,207, - 3, 96,219,177,139, 80,244,251,238, 88,150,151,151,161,192, 96, 2,166,147, 18,170,172,251,170, 91,253,192,112, 56,196,198,112, -216,140,214, 61, 13, 70, 64,205,155,159,197,244,189, 11, 24, 76,115, 35,191, 42,192, 70,125, 25, 98,118,160, 22,111, 58,157, 74, - 22, 94,111,235,224, 4,128,163, 92, 13, 94, 19,212, 69,232, 35, 80,203,232,218,121,249,106,155,255,158, 23,181,207,162,206, 23, -117, 98,147,145,190, 15,220,146,219,127, 55,219,223, 9,153, 51,154, 13,142,245,250,247,232,251,148,170,126, 22,168, 11,229,158, -137,184, 2,136,144,193,111,147, 64, 68, 9, 80,167, 25,165, 80,158,119,217,230, 25, 45, 76,161,167,114,207,240, 58, 52, 49, 47, - 68, 69, 11, 33,154,127,223, 18, 57,207,141,128, 61,246, 32,200, 79, 71,140,113, 80, 38, 7,175, 77,237, 44,161, 29, 53,157,151, -182,168, 60,213,193,104,230,226,138, 19,213, 45, 32, 95, 51,105,148,160,224,169,209,105,173, 57,128, 36,245, 80,241,220,252,151, - 31,241,107, 74,221, 23,237,164, 59, 18, 2,105,239,187, 89,255, 77, 30,128,192, 13, 72,166,148,232,204,246,164, 71,230, 84,212, -100,138,126,137,236,112, 22,191, 27, 94,125,254, 82, 85,102,147,215,117,234,186, 86,157, 90,175, 65, 28,149, 91,103,194, 94,107, -155, 99, 79, 53,191, 72, 69,232,228, 13,144,177, 77,126,226,102, 49,156,160,198, 83,160,238, 3,191, 82,108, 64,154,107, 48,135, -214,165,216,233,121,246,254, 75, 41,161,148,116, 78,136, 16, 2, 83,211,229,141,221, 96, 22, 63,175,137, 0,204,201,164, 85,170, -170, 92,128,142,167, 90,245, 47,204,241,228, 57,182,109,221,134, 91,247,222,134,193, 96, 25,131,165, 1, 78, 60,253, 20, 30,125, -236, 11, 40,178, 30, 20, 41, 84,147,137,115, 26, 54, 54, 54, 32, 85, 13,206, 68, 2,215,238,217, 3,176,194,112, 99, 8, 41, 43, -148,229, 24,204,140,170, 98,243, 90,125,156,121,150,185, 97, 51, 34, 39, 44,245,151,161,148,194,116, 90,162,223,239, 97,108, 62, -199, 58, 67,214, 97, 40,138,220,213,206,175,111,108,232,117, 98,102, 26,184,177,166,155, 0,117,176,242,242,233,186,233, 12, 27, -186, 85, 63, 71,250,247,118,223,103,165, 18,205,103,108, 10, 69,185,176,211, 42,252,253,213,227,162, 73, 59,122,149, 26,147,108, -176,153,185,160,177,163,153,114,242,103,129,124,208,103,221, 58,235,188,185,177, 39,109,123,147, 5, 99,231, 76, 51,230, 8, 79, - 41, 84,223, 47,216,230,213,119,220,103,237, 21, 13, 80, 23, 10,196,134,149, 19,222, 84, 32, 22,105,125,145,247, 86,249, 44,224, - 12,242,205,137, 81,156,126,116, 74, 11,135,242,209,185, 69, 19, 95, 73, 16, 88,182,139,238, 82, 27,158,238,216,232,149,166,113, -186, 29, 45,181, 37,159,185,121,189,103, 57, 55,177,242,189,173,156,173,161, 21,152,145,123,111,188, 95,196, 34,180, 70,226,145, -168, 45,206,145, 39,187,236,250, 20,125,227, 33,244, 65, 53, 92, 56,254,239, 99,149,122,243,231, 28, 53,186,240,156, 48,168,128, -166,111, 52, 62, 98, 53,119, 68,100, 42, 58,246,175,179,136,105,110,255,139,133,217,132,237,207,184,166,183, 66,183,198,213, 90, - 75,165, 55,128, 76,228, 24,141, 70,179, 31, 80, 3,226,126,207,120,127,206,187, 79,175,199,235,217,205, 96, 23, 34, 41,254,201, -132,128,200, 50, 23, 81, 11, 33,160,108,215, 54, 23,117,144,139,194,253,233,101,254, 38,107,163,114,165,180, 40, 81,121, 19,240, -132,161,214,245,151,118,196,164, 84,110,243,213, 51,228,189,110,113,169, 53,221,210,162, 56,207, 51, 55,109, 47, 29,117, 69,221, - 1, 9,200,243, 2,253,229,101,220,126,219,139,112,231,107,246,225,111, 62,253,105, 28,251,226, 35, 24,110,140, 48,218,184,128, -109,219,183, 99, 60, 45,177,126,238, 28, 88, 49,178, 44, 67,158,231,232,245,122,168, 42,137, 74, 86, 16, 69,129, 91,111,185, 13, -143,127,249, 56,170,201, 4, 96, 29,185, 47,175,108,197,100, 50,129,148, 99,167,254,182,253,229, 45, 19, 40, 43,137,141,106, 8, -197, 10, 69, 94, 96, 99, 56,212, 3,101, 0,140,199, 99,157,142,145, 18,172, 74,148,213, 4, 36, 8, 69, 94, 96,117,101, 5, 82, - 74,140,198, 67, 76,203, 82,143, 56,246,148,241, 1,232,206,112, 12,227, 74,132, 90, 5,175,163,102,106,201,113,177, 25,247,155, -106, 24,100,157, 74,165, 24, 97, 31, 71, 68, 35, 64,163, 62,143,180, 24,117,158, 42, 75, 94,164, 79,124,204, 32, 8, 33,194,104, -152,128,103, 59,112,220,245,157, 88,176, 11,104,124,140,186, 73,209,162, 14, 4,207,222, 43, 84,214,118,148, 96,146, 30,230,213, - 68, 10,205, 97, 43,242, 86,106,186,126,235,122,168, 73, 20,189,206,234, 88, 22,180, 62, 5,210,245,223,137,232,218,118, 5, 74, -213,141,219,135, 92,248,227, 50, 61, 96,110,228,254,231, 48, 6,126,190,171, 17, 45, 49,146,117,227,201,247, 77, 68,243,169, 38, - 52, 49,197,238,159,103,131,114, 79,249, 20,212,156, 23,239, 60,242,228,124,236,134, 10,175, 1,129,245,132,190, 56, 18,143,231, -102,195,163, 46,235, 40, 91,255,159,163,205, 56, 4,123, 27,157, 7, 57,122, 15,208,253, 46, 81,254, 64, 20, 34, 57, 7,216,163, -218,111, 50,204,150,205,149,219,206,102, 16, 16,148,213,237,108,179,204, 3, 45,225, 40,127,145, 9, 39, 78,178, 17,169,141, 36, - 4, 17,178, 44,199,116, 90,182,108, 66,129,130, 84,211,251,240, 65, 92, 36,115,229,126,196, 18,211,231,182, 35, 27, 88,183,210, -141, 21,250,194,143, 26, 44, 3, 96,162, 53,233, 54, 46,114,244,185, 85,240, 91,128,102, 86,102,144,142,116,199,106,239,113,150, -233,173, 65, 71,231,202,115,188, 40, 56,214,102,183,255,166,183, 92,143,203, 37, 19, 33, 10, 23, 97,206,139,112,242, 60,195,234, -214,109,120,197,215,221, 1, 86, 10,143, 62,250, 40,142,125,241, 49,244,139, 2,227,241, 58,182,108,221,138,147, 39, 79,129, 85, -165, 91, 16,147, 66, 85, 85, 46, 69, 0, 48,242,140,112,205, 53,215,226,196,147, 79,160, 26,143, 92, 75, 90,102,198,133, 11,235, - 88, 94, 94,130,204, 11,244, 5,161,172,166, 90,201,239, 34, 89,129,190,113, 14,184,210,215,108,208, 31, 96, 60,158, 56,182, 66, - 41, 5,145,153,238,174,102, 47,153,150, 19, 0,132, 60,207,177,188,188,140,162,172, 48, 28,142,180, 99,196, 94,160, 20, 5, 22, - 1, 85,143,186,150, 92,255,191,110, 38,196,110,127,178,162,235,184, 30, 94,233,230, 51,115,134, 72,180, 52,158, 11, 6, 55,169, - 80, 90,227,118,191,217,247,143,230, 2,120, 42, 10,142,208, 51,104, 85,123,177,179,208,217, 15, 56,204,247, 23, 53,145,213, 78, -200,163, 69,130, 12, 75,185,103,102, 75,136,154, 42,217,177,150,109, 57,116, 45,219, 68, 60,172,157, 90,196, 69,126, 94, 63, 79, -229,153,253, 82,179,160,108, 42,174, 85,143, 65, 45,234,125, 28,143, 27,108, 19,215, 53,242,201,190,104, 45,154, 86, 70, 20,181, - 50,228,197, 0, 60,229,225,197, 53,224, 46, 21,192, 97, 57, 91,235,240,153,152,129,246, 0, 57,142,210,131,247,143,157,142, 69, - 38,186,165, 40,117,159,106,247,218,228, 58,237,157, 21,129,113,172, 78,231,160,213,168, 47, 80,170, 75,208, 66,192,108,206,204, -214, 27,158, 5, 98, 74,180,129,109, 83,189,214, 15,175, 10,115, 78,222,133,180,160,234, 55,209, 8,253, 22,145, 84,148,147,160, - 32, 95,238,242, 76,200,130,145,176, 89,150,185,104,218, 54,149, 17,182, 70,219, 92, 15, 37,165, 99, 63,152,117,244,181,190, 49, - 12,168,117,255,129,179,223, 8, 19, 81,219,254,231, 58,159, 43, 2, 10,157,188, 89,245, 62, 44, 50,128,204, 58, 36, 30,117,239, - 55, 13,170,167, 79,121,180,166, 5,123,165, 29, 0,231, 12, 64, 71,115, 76,250,124,166,101,233, 6,207,104, 5,184, 50,159,167, -207, 93,136,204, 68,231, 85, 99, 98,149, 93, 92,126,148, 94,111,214, 20,148, 47,214, 77, 75,194,205, 78, 74,235,180, 55,129,193, - 47,153, 36, 33,144,137, 12, 69,209,195,214,173, 91,176,117,117, 21,103,214,206,225,201, 39,159,196,182,109,219,112,250,244, 51, -216,178,186, 3,167, 78,157, 48,145,177,206,239,103, 89,142,213,213, 1,134,195, 33,170,170, 2, 43, 5, 2,227,244,201,147,144, - 82, 66, 74, 14,162, 39, 2, 99, 50, 30,163,215,235, 97, 60, 26, 1, 66,207,108, 7, 3,101, 89,130, 1,140, 39,154, 94,207,139, - 2,178,146,152, 76,198,200,243,220, 57, 15,186,179,153, 10,156,230,162,215,115, 99, 83,101,197,200,179, 28,131, 65, 31, 85, 85, - 98, 58,173, 66,173, 78, 60,132,205, 11,102, 2, 69,124, 48,226,214,220,195, 25, 45, 99, 53,251, 4, 48,137,186,132,133,169, 14, -213,102, 85, 34, 40, 6, 11, 61, 17,174,238,115, 26, 29,231,140, 58,243, 89,245,235,177,136,206, 31,206, 82,167,107, 56,232, 92, -249,108,205,103,126, 23,101,149, 93,211, 36, 65, 65,208,196, 51, 89,128, 40,200, 97, 10,238, 93,195,211, 72,234,165,132,219, 95, -131,162,147, 89,236,130,135, 15,121, 76,107, 59,112,226,196, 40,208, 89,253,211, 19, 3, 69, 90, 7,148,196, 96,153,200,199,199, -109, 25,133,201,129,198,173, 23,231,150,137, 69,109, 89, 27, 83,216, 18,162,188, 89,204,197, 76,109, 0, 66,229,123,156,187, 15, - 26, 55,204, 25,196,210, 42,128, 75,228,173,221, 67, 17,229, 89,244,166,222, 44, 81,179,249,100,215,216,213,175,151,244,157, 25, - 15,160,173, 40,204,149,102,120,109, 42,195,205,156,188,232,130,163, 92, 61, 39, 71, 25,218,185,220,238,129, 49,249,199, 44, 19, -141,241,157, 49,160,251,237,128,133,208,147,228,132, 71,125,219,210, 47, 65,117,100,238,162,117,207, 65,204,242,204,229,241, 89, - 74,100,134,226,182, 51,186,139, 94, 79, 43,155,189,155, 85, 83,223,113,196, 45,220,121,251, 52,186,115, 42,188,214,179, 86,247, -110,153,133,156,106,167, 68,153, 41,117,182, 78, 62,188,207, 20, 44, 87,255, 26,187,123,107,118, 4,169, 24,178,146,230,248,109, -173,172, 61,150,220, 29,183, 61, 86,169,234, 72,213, 78, 91,179, 78,160, 50,244,246,116, 90,214,158, 22,199,194,182, 56, 45,195, -174,242,196,181,158, 86, 30,171, 19,205, 14,176,142, 86,158,231,216,123,251,237,232, 45,173,224, 75, 95,126, 28,167, 78,158,192, -181,187,175,199,147, 79,124, 9,131,254, 10, 78,157,122, 26, 74, 73,244,251, 75, 24,111,108, 56, 80, 56,127,254, 2,250,189, 30, -144, 3, 37, 51,148,172,160,220,189,171,117, 3, 74, 74,144,153,182,167,148,132, 98, 5,161,172,208, 76, 95,223, 94,191, 15,101, -156, 3,191, 83,216,116, 58, 69,158,229, 64, 6,228, 69,129,178,156,152,241,195,122,132,176,156, 76, 0, 0, 69, 81, 96,121,121, - 25, 85, 85,161,172,166, 40,122, 5,132,200, 48, 25, 79,157,195, 27,107,114,148,109, 6,195, 62,251, 83, 87, 21, 6,130, 68,110, -178,118, 53,216, 10,211, 63,134,235,114,180,232, 30, 53, 20,236,182, 91,137,155,221,194,238,115,109,247,191, 69,107,212, 23,165, -180, 29, 59,203,113, 63,147, 56, 33,179,201,207,176,169, 70, 65,237,129, 88,203,247, 46,170,159,243,201,161, 56,184,222, 83,107, - 2,143,107,106, 32, 40,229,225, 40, 90,247,186, 73,154,115, 23,173,204, 42,187, 20, 95,138,225,200,147, 84, 9, 99,102, 68,234, -192, 53, 74,216,250,141, 92, 90,129, 10,212,218,244, 37,110, 39, 43, 76, 65,191, 95,119,158,106, 64, 51, 19,208, 57,110,149, 74, -141,252,120,234,243, 23, 22, 93, 52, 46, 93, 84,231,222,162, 9, 72, 93,163,100,105, 85,130,130,247,163,116,251, 80,212, 96,204, - 1, 88,219, 77,222, 82,133,245,207,211,109, 71,189,169,204,141,252, 91,184, 9,212, 84, 44,192, 30,181,196,141,133, 30,118,152, -171,215,119,248, 94,126,222,136, 3, 10, 62,188,230, 34,202,185,146,169,219,102, 23,165, 91, 80,112,157,224, 40,131,237,106,207, -166, 7,124, 16,105, 19,233,114, 93,195, 12, 9,165, 35,237,210, 94, 77, 34, 44, 45, 47,227,228,137,103,220,195,228,231,206,131, - 13, 72,216, 40,189,174,211, 38, 15,168, 97, 34,113,255, 34, 5, 93,235,204,207,133, 16,110,128, 10, 9,161,115,167,150,114,247, - 20,206, 14,252,149,153,161, 77, 4,150, 18, 48,243,182,167,211,210,148,155,217,218,113,129, 60, 23,174, 63,188,191, 54,108,218, - 65,152,158,213, 41, 85,189,206,137, 75,227,112, 41,111,225,206, 82,179,155,235,129,218, 73, 68,164, 33,136,245, 50,153, 16,184, -117,239,237,232, 47,175,226,228,201,147,232,229, 5, 94,117,199, 62, 40, 6,100, 89,226,153,147, 79,162,151,231,224, 44,195,100, - 52, 10,186,138, 73, 41,181,144,205, 48, 64, 34, 43,160,170, 10, 89,150,105, 86,201, 31,185, 74, 4, 5, 66,111,176,172,255, 93, -149, 40, 39, 19,172,172, 46, 67, 64, 96, 60, 25,233,153,104, 74, 65,136,204,173,225, 34,215,130, 56,150,140,170, 44, 81,228,125, -221,199, 64, 73,231,208,234,235, 63,197,100, 92, 97,121,105, 9, 91, 86,183, 98, 99, 56,132,200, 25,253,173,125,108,108, 12, 53, - 27, 16,213,152,199,193,149, 86,192, 27,221,135,107, 23,171,188, 70, 98,225,172,123,215,232,204, 50,105, 66,206,204,123, 55,247, - 40,147, 34,177, 14,153, 89, 91,172, 24, 2,222,144,146, 5, 4,105,169,243,106,203,179,183,142,146,230,139,115, 22,106,108,185, -184,247,228,182,153,233, 77,178,212,237,222,241, 76, 7, 77,165,103,137,252,134, 9,136,132,107,186,239,238,231,172,254,245,236, -167,213, 98, 13,130, 47,148,155, 11,104,113, 57, 23, 55,235,171, 27,121,224, 68, 27,203, 32,135, 28, 71,172,222,223,103, 34,155, -155,159,105, 91, 60,141, 14,114,179,102,167,123,125,234, 9,180, 41,240,158,149,167,111,115, 54,154,215, 8,110, 83, 15,166,113, - 69,229, 68,212, 50, 48,156, 34, 79,110,222, 76, 97,219,131,157, 92,227, 31, 77, 21, 5, 42,247, 68, 30, 61,160,253,124, 58,206, - 87,205,182,122,177, 28, 12,100,169,193,156, 26, 93,194, 98,165,124, 51,239, 31,181, 76, 13,132,110, 53,120,198,249,114,151,198, - 49, 96, 1, 15, 28, 45,165,197,145, 67, 88,153, 8, 46,203, 50, 80, 38, 92,148, 27,136, 71,161,188,185,217,214,161, 64, 0,148, -142, 29,240,163,118,123,236,230,123,155,179,118, 53,232,230,225,205,132, 64,229, 4,113,222,196, 56,171, 13,176,105, 3,239,125, -204, 34,130,146,140,145, 41,187, 99,199,124,228,166,140, 75,131,108,158, 91,253, 0, 67,202, 42, 0,121, 63,130,242,193, 54,207, -115,148,101, 9, 33,180,216,144,167, 83, 93,199,110, 29,144, 57,148,108,208, 92,136, 85, 82, 44, 40,132,192,206, 93,187,113,203, -222,219,241,201, 79,124, 12, 82, 86,168,138, 30, 46,172,157,197,218,133,243, 56,117,234, 25, 92,184,112, 1,114, 58, 69, 37, 37, -150, 6, 3, 71,133,219,180,128, 77,125,104, 48, 38,244,251, 61,227,140,100, 65, 90,104,203,182,237,216,178,109, 59, 46,172,157, -195,116, 50, 69,191,223,195,202,234, 42,134, 27,235,152, 12, 55, 32,217,143,162, 44,187, 66,168,170,210,137,241,202,178,194,104, - 60,114, 64,175, 83, 71,112, 66,180,140, 8,163,209, 8,227,201, 4, 91, 86, 87, 49, 26,141, 48, 45, 75,172,110, 89,197,198,250, -134, 46, 11,180,209,180,138,244, 55, 13,253, 18,153,153, 58, 70,112,202,178,158, 13,239, 82,112, 97,122,102,241,188, 55,195,163, -251,106,125, 11,210, 37,145, 11, 7, 62,104, 31,129, 74,244,108,180,236, 51, 0,221, 54,122,201, 22,136,210,227,244, 15, 45,126, - 94,113,151,195, 84,132, 73,209, 72,106, 4,253, 24,210,137,249,184, 60,215,234,106,172,234, 62,118, 74,152,234, 48,140,182, 94, -123, 3,207, 20,187,165, 4, 12,179,166,126,165,218,157, 34, 49,216,197,159, 90, 99,251, 40,147,168,169,146, 22,161, 90,219,113, - 52, 68,120, 45, 12, 65, 35,255, 61,107,129,180,148,147,181,169,232, 83, 63, 15, 5,112,222,199,199,253,211,125, 53,123, 80,210, - 71,141,217,214, 33, 11, 16,215,145,195,205,133, 78,245,206,166,168,123, 89, 29, 97, 83,203,184, 80,138,166, 53,213, 78, 65, 29, -161,249, 41, 13,225,126,174,255, 70, 53,242,249,225, 48, 9,242, 38, 81,133, 10, 95,221,223, 59, 82,158, 10,106,212,114, 19, 1, -148,193,169,182,179, 44,115,155, 55,152, 92, 11, 69, 97, 26,199, 56,129,151, 75, 98, 19,178,158,128,146, 10, 36,181, 3, 81,150, -186,123, 28,136,176,186,101, 21, 39, 78,158,114, 20, 46,137, 76,139,190, 88,186,188, 56,121,212,187,109,159, 42,132,208, 78,132, - 23,221,219,124,177,205,121,199,138,247,128, 7, 17, 2,204, 58,234, 22, 36,220,100,184,122,246,183,105, 12, 67, 4,134, 4,105, -217, 61,148, 0, 0, 32, 0, 73, 68, 65, 84,179, 4, 43,194,116, 42, 49,157, 78,131,242,179, 44,203, 65, 36,130,220,126, 61,108, - 7,201,180, 72,156, 95,180,206, 73,105,202,216,166, 6,208,103,122,207,220,172, 49,182,234,121,197,172,175,185, 5,243, 76,160, -215, 91,194, 75, 95,254, 50,144, 16, 56,125,250, 52,198, 27, 27, 40,250, 3,172,174,108,193,241,227,143,162,232,245, 32,167, 19, - 92, 88, 63, 15, 29,172, 50,138, 60,119,205,111,124,117,182, 19, 65, 66, 90,132,173, 5,154, 36,112,237,158, 27,176,188,188, 5, -143, 31,127, 4, 82, 74, 83, 70,166,157,171, 45,171,171, 88, 95, 63,111,202,239,178,160, 58, 33,207,245, 28,172,105, 57,213,215, -156, 1, 18, 57,242,188, 64, 37,167,250,153, 34, 93,162, 84, 85, 21, 64,186, 37,173,173, 56,232,247, 6,200, 68,142,201,100,130, -162,215,195,112, 99,104,174,165,242,234,203,125, 71,220,148,187, 41,127,176,139, 46,143, 19, 44,131,176,209,245, 1, 64, 56, 91, -222, 69,135, 20, 63,103,145,179,237,141, 0, 37,161, 2,161, 30, 75,121,209,202,243, 88, 0, 26, 71,236,177,144, 13,112,213,169, - 23, 15,242, 34,142,206,155, 37, 53,245,176,161, 90, 21,191, 72,185,154, 95,138, 27, 54,145, 9,203,206,244,135,164,234,204, 45, -206,121,251,194,156,224,109, 86,196,205, 36,160, 12, 23,150,207,124, 45,181, 71,169,254, 4, 34,155,215, 86,172,130, 7, 55,174, - 71,180,148,187,253, 59, 71,123, 11, 43, 96, 18,237,194,180, 84,105, 52,183,231,242, 27,181,222, 11, 12, 96, 9,242, 74,162,217, -177,104, 86,195,154, 89,142, 79,152,195,175, 61, 95,138, 58, 63,197, 27,122, 76,173, 16,137,122, 50,226,140,146,160, 76,164, 71, -124, 54, 38, 49,129,131,114,171,164, 2, 22, 97,123,206,160,142,155,163, 97,143, 22,196,195,246,211,141, 27, 87, 15, 13, 81,104, -150,124,212,226, 61, 33,200, 8,155,226,129, 38,228, 29, 55, 65,100,122, 15, 21,158,234,189, 22,163, 9, 16,101,158, 90,188, 89, -190, 3, 34, 84,149, 52, 68,177, 57, 54,179, 49,138, 76, 64, 86, 18,176,194, 48, 19,101, 50, 24,164,226, 30,235,245, 84,176,160, -225,140,191,134,132, 8,153,149,136, 53,128, 41, 55,203,178, 44, 0, 39, 59, 0, 71,112, 77,225,107,218,221,180, 16, 85, 58,122, - 27, 14, 71,158,136,205,143,126,235,156, 56, 25, 1,149, 95,162, 22, 56, 22, 45, 83,189,252,200, 29,208,165,102,101, 57, 53, 27, - 49, 71,121,224, 52, 67, 85,107, 32, 4,136,101,192,174, 80, 47,195,173,183,221,142,141,225, 8,146, 21, 50, 18,216,177,107, 23, -158,120,242,113, 60,115,226, 9,236,216,182, 11,103,206,159,197,116,184,129,213,229, 85,140,167, 99,148,211,210, 85, 36,212,173, -132,181,163, 40,165, 66,175, 87, 32,203,122, 24,143,199,102,100,169, 94,148,121, 81,160, 95, 20,248,210,241, 71, 32, 77,243, 25, - 39,218, 2,112,254,194, 58,182,110,221, 6, 41, 75, 76, 39,165,187,166, 85, 85, 97, 58,157,122,233, 20,211, 1, 80,100,152, 78, -167, 88, 90, 26,160,172, 42,148,211, 18,138,165, 3,224,202,208,255, 66, 8, 93,102,199, 10,121, 81, 96, 58,213,236, 0, 0,115, -140, 97, 63, 1,183,167,186,107,232,139, 88,163,225, 43, 62, 31,236,179,125,241,238,198,225,191,253,158, 2, 28, 21,107,217, 52, -205,179,177, 84, 67, 36, 95, 32,151,214, 85, 93,162,136,221,166,175,145,102,144,252, 53,109,239,253, 98,169, 5,110,143,182,147, - 88,169, 34,161,156,152,175,157,162,249, 9, 97,101,244, 59,236,221,175, 60, 73, 49,207,113,190,125,229,182,175,210, 12,250,165, - 35, 82,211,183,204, 80, 39,132,249, 70,167,254, 36,110,140, 55, 93,244,142,167, 0,125,174,224, 45, 86, 82, 35,209,115,152,211, -142, 6,205, 57,166,148,196, 32,158,204, 21,151, 42,164, 18, 2,233, 72, 58,236, 74, 22,214,121, 54, 21,179, 49, 77,228, 71,224, -190,114,179, 49,182,211, 91, 23, 28,229,199,109,222,212, 43, 29,112,145,186,223, 18, 54,164,223,211, 37, 20,113, 84, 23, 55,105, -169, 61,215, 26,172,200, 43,101,243, 35, 74,247,247,174, 92,205,245, 78,243,142, 89,243, 86, 4, 32,207,114, 84,178,210, 27,188, -249,204, 65,175,143,245,245,117,115, 46,153, 99, 10,164,148, 46,164,136, 53, 3,190,194,221, 2, 57,188,122, 98, 27, 77,101, 46, -146, 12, 71,195, 90,150,129,189,156, 59,153,243, 84, 82,214, 14,177, 23,109,143,199, 83, 87,126,230,179, 54,126, 26, 2,224, 70, -221,123,220,241,173, 45,141,227, 43,149,235,252, 94,157,103,150, 81, 47,114, 87, 58,132,102, 89,167,237,161, 94,179, 8, 2,189, - 94, 31,123, 95,244, 98,156, 61,119, 22, 85, 37,113,205,174, 93, 56,185,118, 14, 79, 62,113, 22,219,182,239,196,120, 99,172, 35, -231,201,196,229,123, 43,211,205, 77, 8,125,205,164,148,193,136, 82,219, 45,174,172, 42, 8, 33,176,178,117, 43,136,129,201,120, - 12,102,133,175,124,249,113, 93,214,231,250,171,235,251, 82,153,127,143, 70, 99, 76,167, 19,128,165, 43,197,179,108,153, 52,215, -153,140, 94, 64, 86, 18, 89,158, 97, 56, 28,161, 40, 10, 23,117,235,155,171, 29, 52, 9, 35,192, 52,117,250,106,170,211, 24,101, - 85,162, 87,100, 32, 20, 96, 8,140, 70,227,186,148,216, 85, 34,133, 67, 93,156, 48, 53,161,216, 34, 79,239,225,230,170,183, 0, -122,188, 15,248,213, 40,181, 35, 39,112,177, 33,122, 91,215,195,246,156,190,161,150, 55,137,234, 76, 94, 43, 88,166,246,161, 44, - 51,254,158,105, 17, 32, 15,251,110, 52,223,128,162, 8,221,171,110, 66,221, 96,134, 82, 84,123, 35,229,219, 28, 19, 93,127,172, -221, 59,236,254,231, 57,219, 65, 87, 55,204, 22,184,165, 26,169,196,165, 89,109,185,232,192, 17,160,104,238,185, 95, 70,151,138, -132, 41, 93,254,214,234,112,208, 38,135,194,208,108,106, 93, 64, 36, 80,185,197,187,180,128,134,150,233,104,177, 23, 25,121,100, - 12,191,140,208, 23,140,161, 49,249,204,239,166, 22,151,146, 53, 42,174, 0,221, 33,204,166, 61,152,163, 49,155,228, 58,189,133, -148, 61, 2,113, 70,157, 31,138,203, 22,163,102, 19,137,228, 85,170, 25, 77,252,160,204, 27,225,222,164,222, 41, 96, 29,252, 40, -221, 31,157,202,141, 50,176,248, 88,235,156,183,242,202,181,242, 44,195,120, 60,110, 60,220,245,189, 70, 50, 2,137,175, 69,155, - 82, 53, 30, 42,195, 17, 29, 78,129, 32, 78,122, 66, 68, 5,134, 66, 89, 42,140, 70,211, 32,143, 27,207, 18,175,163,125, 56,186, -190, 57,218,148, 22,138,128,178, 44,115,244,187, 75,241, 11, 1, 65, 10,178,242, 53, 22,156, 22, 35,153, 42, 41,237, 12,144, 59, -238,213,109, 91,193,172,176,103,207,245,120,252,248, 23,241,228,151,191, 4,202,122, 88,221,186,130, 83,167, 79, 64, 78, 75,244, -138, 28,171,203, 43, 56,183,182,102,202,211,148,139,206, 53,253,174,188,212, 14, 25,182, 93,239, 53, 34, 19, 88, 95, 59,103,132, -135,153,115,248,170,138,157,152,202,137, 15,205,161, 78,167, 19, 35,122, 84,200,243, 12, 66,228,186,138,160,170,220,181,200,178, - 12,147,201,196,177, 78, 89,166,239,243,160,223, 71, 89, 85,174,244, 77, 86, 58, 61, 82,150,165,158, 4,103,174,167, 84, 82,195, -174,172,208,239,247, 48,157,150, 16,164,244,254,175,200,211,172, 42,132,115,213,185, 65,163, 7, 20,188,231,168,192, 23,222, 17, -183, 4,241,179,132,142,254, 30,129, 77,229,214, 83,253,219,227, 14,115,201,181,119, 49, 62,196, 28,153,124, 82,239, 17,149,171, -181,159, 71,172,243, 73,186, 35,112,189, 96,189,125,137,144,215, 1,142,151, 70, 21,109,159, 21,141,128,246,193,156,163,160,142, -208, 44,115,203,219, 4,101,126,148,108,129, 52, 89, 62, 22,137,221,218,202,212,124, 17,153, 5,242,121,109, 83, 83, 32,236,211, - 40, 23, 43,178, 32,177, 9,192,159,241,247,173,141,255,136, 90,111, 88,220, 9,174,118, 36,216,109,242, 49,181,147, 26,238, 80, - 71, 79, 8,114,218,126,147,151,230,104, 63,246,147,250, 30, 45,230,137,205, 26,148, 57, 57, 97, 85,237,200,121, 78,139,240, 27, -201, 96,134, 87, 79,173,222,123, 88, 47,223, 46, 34,105,110, 16,112, 52,125,138,174,138, 35, 75, 71, 55, 67,132,211,177,152,145, -247, 10, 72, 51, 62, 84,100,153, 86, 75,155,118,159,204,161, 96,143, 41,214, 35,192,245, 12,119, 77, 14, 93,157,122,189,129, 83, -156, 79,180, 39, 96,202,204,217,136, 97,172,226,221,174,181, 26,216,133,163, 92, 43, 41, 49,153, 84, 40, 75,217, 0,116, 95,112, -230,250,217,219, 18, 58,175, 86,223, 2,188, 52,162, 64, 87,154,136,122,248, 8,161,102, 87,180, 70, 82,153, 94,251, 89,221,144, - 72,232, 99,203,122, 64, 85, 1, 74,250, 78, 56,194,201, 99, 84,151,101,101, 89, 6, 5,133, 27, 95,112, 19, 94,120,243,205,248, -242,151,191,130,115,103, 79, 98,125,125, 13,229,100,130,169,172,112,227, 13, 47,212, 12, 10, 79, 49, 28,143,144,231, 61,236,216, -185, 3, 27,235, 23,208, 43, 10,228,133,237,240, 87, 59,192,131, 65,207, 12,102,169,160,148,190,182,182,191, 59,152, 33, 12,115, -211,235,245, 48, 24,232,137,107,182,199,186, 5,248,149, 45, 91,177,117,219, 86, 44, 13, 6, 56,123,230, 20,206,159, 59, 3, 34, -175, 28,206,116,157,179,215,206, 62,139,189, 94, 15,163,241, 8,121,150, 67, 73,133,113, 57,118,227,160,165,172,116,137, 33,169, - 32, 29,167,204, 51,160, 69,143,230,121,147, 18,131, 94,129,241,100, 18, 86, 87,180,116, 90,164,196, 16, 23,157, 18, 17,222, 60, -110, 14, 0, 41,126,206, 93, 10,208, 50, 2, 64,163,131,220, 66,221,228,154,225,122,248,183, 81,158,248, 34, 2,243, 5, 68,127, - 97,102,143, 91,218, 89,115,107, 71,195, 77,132,248, 49,187, 77, 28, 68,211,238, 93,157,118,108, 49,225,179, 59,252,168, 94,127, - 94, 15,252, 60,142,194, 27,101, 87,148,200,147,181, 42, 7,103,180, 58, 77, 68,198,246,111, 90,219,166, 70, 37,111, 41,229,252, -220,206,117, 64, 35,151,158,236, 5, 79,233, 54,178,182,175,117, 35, 69, 49, 63, 75,145,164,218,125,200, 19, 62,181,221,218, 16, -214,175,121, 68, 80, 51,154,172,139, 68,179,118,146,131,137, 68,161,168,173, 81,130, 17,116,132,227,198,253, 13, 89,152,154, 6, -228,134,199,170,130,171, 19,174, 63,127,254,184,189, 34, 2, 97,227,146,132,176,207,215, 37,184,206,113,198, 27,246,122,171,199, - 95,113, 89, 13, 43, 43,106,171,193,174,215,239, 99,180, 49,212,141,104,170, 10,194, 76, 1, 27, 14, 71,126,229, 27,136, 8,197, -160,143,201,112,228, 54, 74,159,238, 14, 27,245,112,208,122,213, 63, 6, 95, 25,111,107,164,109, 4,109,153,148,204,150, 11, 6, - 27, 42,163,156, 42, 76, 38, 19, 13, 84,138, 27,226,157, 56, 5,145, 18,101,250,195, 53,130,114, 58, 17, 86, 32, 16, 9, 40, 89, - 51, 3,204, 82, 15,207, 33, 66, 81,244, 80, 85,165,201, 41,235, 20, 67,158, 43, 72,120, 18, 4, 11, 46, 28, 86,153, 40, 37, 81, - 20, 57,114, 42,176,123,247,110,252,245, 95,127, 20,253,165, 85, 64,142, 48, 30,142,116, 83,156, 44,199, 83, 79, 63,137,229, 94, - 31,189, 94, 31, 21, 36,118,236,220,129,167,158,120, 66,143, 70, 5, 80, 86, 85, 84, 26,201,152,152, 26,113,187,182,164,233, 37, - 96, 75, 13,237, 61,208, 93,225,204,189, 96,157, 79, 93, 90, 93,197,246, 29,187, 48, 30, 13,177,126,225, 60, 78,159, 58,137, 60, - 19,216,113,237,117, 56,123,250,180,139,178,138,162,128, 32, 97,206, 95,247, 17, 80, 82,162, 44,167, 32, 16, 38,211, 9,138, 92, -139, 19, 43, 41, 77,186,198,212,124, 43,229,148,234,202,107, 12,165,123, 0,232,250,124,189,174, 24,153,167, 43,177,199,238, 28, -232,152, 5,243, 28, 14, 23, 49, 42,246, 4,114,104, 48,122, 13,144,182,165,145,172, 12,206, 83,205,232, 45, 16, 62, 51, 37,167, - 65,132,123, 72,203, 68,230,139, 1,118,158,165,251,154, 57, 11,117, 6, 37,200, 17, 83,154, 82,236, 57,125, 6, 37, 35,118,205, - 10,214, 34, 89,102,213, 46,132,139, 54, 72,151, 36,116,254, 2, 33, 22, 46,183, 93, 95, 29,169,183,136,202,102, 82, 22, 9,138, - 93, 4,138,232, 22, 15, 42,250,221,204, 41,106, 81, 51,151, 84, 91,214, 96,136,202,140,201,112,126, 45,122,252,185, 13, 48,247, -243,212, 60, 59,178, 39, 52,123,173,183,241, 51, 20,131,166, 55, 42, 49,246,207, 26,147,120,168, 9,180,245,247, 97,185, 88,160, - 1, 8, 0,149, 16,180, 16,112, 53,235,102,195, 21, 77,167,166,214,193,197,165,115, 30,104, 57, 47, 63,190,199, 20,244,119,159, -207,167,197, 74,216,180,160, 32,160,142, 45,123, 19,213,131,199, 37,100, 49,109,207, 70,105, 45,165,116, 14,159, 82,202,244,246, -206, 81, 78,245, 3,216,239,245,113,250,244, 89, 47,165,161,213,227,153, 29, 34,228, 61,196, 54,215,238,139,127,156,250,221,111, -132,225, 9, 99,252, 99, 6,113,237,172, 8,163, 5,160,230,144,150,201,184,196,100, 82,186, 33, 44,241, 80, 27,123,238,126,111, -123, 63, 74,178, 29,230,244,207,148,211, 64, 80, 80,247,111,214,134,105,184,162,197, 82, 86,184, 40, 1, 22,174, 76, 81,152, 13, - 43, 19, 2,194, 12,107, 81, 74, 65,120,204, 72,188,246,236,154,168,170, 10,219,119,238,194,211, 79, 63,141, 44,239,161,200,123, -216, 24,157,115,236, 77, 85,149, 24, 44, 13, 48, 45,167,186, 77,171, 0,158,126,226, 43, 96,169, 92,205,189,109,166, 19, 70,147, -150, 45,209, 74,117, 29, 77, 27,167,218,116,236,210, 41, 4, 91,169,160,175,149, 84, 18, 91, 86,183, 96,180,190,129,181,181,211, - 58, 55, 11, 6,171, 12,231,215,214,176,178,188,140,117,211,228, 70,119,171, 99, 8, 67,183, 47, 47, 45, 67, 41,157, 18,144,170, - 4,129, 80, 86, 21,122, 69, 15,176, 58,136,104, 78,131,237,205,110, 5, 91, 89,174,123,200,247, 7,125,240,136,205,208, 32, 95, -251, 32, 35, 58,188,117,107,109,137, 62, 57, 72,125,233,107, 83, 5, 41, 11, 86,166,245, 13,213, 61, 47,234,225, 47,139, 20,119, - 35, 93,217,133,217,141, 92, 54, 13,232, 52,135,117,229, 89,218, 41,209,226,124,192,117,220,211,175, 85,201, 33, 82, 81,114, 59, -138,182, 1, 80, 66, 4,215, 58,232, 43, 5,230, 81,240, 11, 74,130,121,219, 28,246,220,167,197,219, 4,113,113, 63,115,151, 7, -167, 38,245, 64, 58, 9,221, 62, 83,125, 19, 53,128,169, 84, 64,210, 43, 91,128,191,105,107, 69, 27, 28, 55,181, 31,107, 92,142, -214, 74,218, 36, 6,169,212,185,242, 48,234, 12, 15,187,153, 82,240, 5, 88,204,212,160,207,252,147, 15,193,208,159,105,238, 57, - 4,206, 9,178,161,181, 10,114,195, 86,235,192,177,130, 70,192, 43, 49, 52,138, 81, 65,174,161,139, 13, 27, 56, 80,178,251, 11, -187,153, 38, 8, 29, 69,106,228,174, 26,138,217, 8, 12,235,148,129,161,128,145,158,108,102,205,170,201, 45,141, 45,165, 66,150, -219, 19, 35,112, 37,189,126, 9, 20,245, 97,175, 29, 9,102, 64, 78,171,134, 3,146,206,245,215,181,232,126,137,162,125, 71, 27, - 37, 11, 79,128, 5,170,160,219, 52, 40, 59,101, 30, 12, 29, 17,142,134, 19, 13, 26,145,186,221, 87,220,251,250, 1,231, 96,212, -185, 17,111,168,141,127,207,184,206, 4,216,206,141,202,180,114,245, 68,131, 96, 59, 40, 71,151,102,229,121,142, 74,105,144,152, -148,140,126, 95, 96,105,105, 11, 70, 60, 68,201, 83, 16, 19,116,124,175,193, 61,227,176, 42, 67, 1, 40, 6, 5, 54,214,215, 33, -149,196,250,198, 26, 88,217, 58,108,160, 95,244, 32,132,192,216, 76, 82, 99,201,117,191,116,179,158,108,141,127, 35, 85, 42, 8, -131,126, 15,147,201,212,128, 38,187,242, 51,255,217, 81, 74,161,172, 42, 87,146, 56, 92, 95,135,146, 83, 29, 57,203,170,126,216, -170, 10, 50,203,220,252,120,102,198, 84,105, 7,134,137, 48, 26, 13,221, 53,239, 21,133,121, 70,244,249, 22, 69, 97,158, 35,157, - 59,103,165, 32,216,116,173, 51,128,201, 25,161,148, 21,122,189, 30, 32, 8, 69,191, 48,194, 63,133, 44, 3,170, 74, 34,203, 96, - 82, 68, 10,113,137, 73, 40, 62, 51,209,185,245,169,148,112, 32, 5,247,140,147,118, 94,141,190,193, 94, 71,159, 13, 68, 84,253, -194, 11, 36,187,125,246, 89, 45, 34, 30,230,197,240, 32,112,218, 22, 72,161, 38,223,215, 40,106, 91,107,184, 89, 64,175,122, 85, - 71,243,113,116,206,169, 25, 27,209,166,236,158,147, 68,202,162, 5,228, 21,249, 78,143,168,217, 11,106, 47, 53,110,166, 18,226, -156,250, 12,245,162,139,136, 51, 10,199,142,214,251, 93, 40,182,139,135,153,120, 32,223,156,120, 35,194, 7,149, 90,220,207,182, -223,209, 2, 14, 2, 71,234,252,136, 94,111, 52, 65,105, 99, 13,194, 70,214,201, 70, 1,193,161,122,162,185,212, 41,136,182, 65, - 6, 65,155, 86,191, 84,167,221, 83, 99,110, 87,107,250,247,176,190, 7,205,200, 56,232, 20, 69,222,195,148,168, 39, 13, 82, 24, -126, 4,194, 33,107,208, 22, 71,164, 74,101,136,154,163, 71,125,145, 94,157, 35,143,128, 52, 65,213,187,154,226, 44, 11,157, 49, - 34, 64,217, 22,172,166, 21,104,175,135,241,120,234,162, 58, 33, 4,138,162, 48, 52, 46, 5, 20,187, 85, 84, 7,251, 68,130,234, -182, 81,186, 31, 41, 43,102,173,183,247,128,221,206,142,215, 55, 70,185,191,181,209, 27, 17, 97, 50,158, 98, 60,158, 56,117,123, -236, 72,216,188,121, 16,249, 71,148,172, 95,234,199,168,124,197, 68,122,200,140,208, 77, 86,148, 82, 58,215,156, 80,201,231,189, - 30, 6, 6,192, 70,227, 49,170, 74, 66,144,196,234,214,173, 88, 63,127, 1, 37, 79, 16, 97,112,112,111, 6,131, 62,134,235, 99, - 92,119,253,141,120,228,209,207,161, 87,244, 80, 73,198,202,234, 22,140, 38, 19, 8, 2, 38,195,145, 41, 3,171, 26,235,219,182, -187,181,204, 66, 61,121, 76, 97,105,105, 9,227,209, 40,152,136, 86, 87,136,212,207,152,148, 10,236,181,142,221,216,184,128,109, -219,119, 98, 52,158,214,128,105,206, 95, 74,169,133,108,130,208,239,247,141,202,157,209, 43, 10,151,151, 39,152, 97, 64,172,160, - 42, 56,199,167,146, 21,136,188,233,131, 92, 59, 81,202,155, 47, 95,150, 37,138,162, 0, 65, 55,204, 25,143,149,115,254,114,211, -202, 88, 15, 58,170, 2,125,140, 21,129,170,128,133,177,247, 50,108,134,227,239, 49,219,183,111,195,218,218, 90, 34, 87, 31,231, -209, 47,193,120,180, 84,218,121, 19, 1, 94,176, 87,205,124,255,230,177,210, 76, 64,247, 34,111,226, 80, 15,226,156, 34, 10,114, -155, 41,134,182,209,214,214, 27, 57, 92,247,198, 8, 55,113, 73, 51, 88,234, 70, 63,152,166,166,136,137, 26,159,157,207,227, 66, -234,136,131,194,193, 2,212,162,108,244,242,222,193, 20, 34, 66,107,157,119,178,214,220, 7, 60,154, 77,235, 36,217,133,232, 51, - 41, 17, 13,250,158, 20, 5, 46,106,156, 2,104,122, 99, 20,136, 23, 34,111, 42,113, 93, 40,113, 94, 49,125, 18,247, 99,246, 55, -159,186,231,122, 40, 18,211,115,149,189,104,155,235,200, 62,236,230,100,179, 51, 4,144,104, 12,105, 73,166, 46,216, 70,193, 62, - 83, 82, 43,244,237,134,169,156,222, 1,141,232,157,162,116, 64, 88,175,234,143,115, 77,231,138,156, 18,212, 19, 31,214,247, 37, -115, 67, 43, 82,209,185,205, 89, 90,229, 55,187,247,202,204,180, 44,237,109,102, 66, 71,241,189,162,192,120, 60,118, 57,240,137, -163, 63,235,166, 55, 58,205, 84, 34, 28, 71,217, 4,116,225,205,111,247,129, 58, 41, 20,178,247, 12,210,163,239,217, 52,122,145, -134,110,151,174,251, 95, 44,134,243,115,226,126,133,130, 75, 3,216,207, 19,117,164,150, 2,242,160,237, 44, 17,152,164,166, 32, - 51, 51,197,206, 84, 78, 16, 19,138,162,192,112, 99, 67,231,129, 69,134,193,202, 50,138, 94, 95,139,194,242, 30,182,238,200,113, -254,220, 57, 96, 58, 5, 41, 21,148, 76, 41,211,253, 74,100, 57,246,238,221,139, 51,103, 78, 67, 64,104,237,142, 4,118,221,112, - 61,142,127,241, 81,228,153, 22,250, 85, 82, 38, 54,121, 14,198,255,186,186,110,227,244,108,184,193, 59,112,125,255,237,239,116, - 39, 62, 13,176,253,254, 18,136,128,209,120,136,149,229, 85, 72,169,176,177,113, 1,166,117, 58, 68, 86,224,154,107,118,161,215, - 31,160,200,180, 3, 83, 20, 5, 78,157, 60,129,245, 11,107, 96, 8,108,148,165, 78,203,100, 25,178, 92,183,162,173,202, 10,153, -208,149, 19, 66,100,186,167,129,161,178, 69,170,199,133,233,247, 81, 73, 9, 41,164,115, 84,179, 44, 7,115, 5, 34,233, 58,226, - 1,140, 60, 47,156,194, 95, 41,101,170,167, 24, 25,233, 72,222, 41,231, 45,221, 78, 48,244,189,245, 40,244, 53,189,112,225, 2, - 96, 28,136,170,170, 80, 78, 74, 51,249, 79, 56,239, 67,128, 76,227,155,205,129,183,184, 4, 62, 64, 16,161, 39, 6,206,145,106, -130, 33, 35,106,101, 62, 75,225,110,103,150,147,158, 85,239, 71,188,110, 44, 42,105,113, 40, 88,212,221, 56, 73, 26,230, 53,243, - 8,242, 89, 0,221, 6,230, 34,233,108, 2,177,230,136, 26, 96,238,197,212,110, 74, 35,131,117, 73, 91,163,157,171, 7,120,194, -245,182,174,229, 92,156,152, 61,157, 20,159,137,246,252,118, 44,106, 11,122,201, 83,164,185,106, 80,225,228, 9, 54,185, 57,144, -166, 45,151,226, 13, 31, 9,110, 62,115,152,221,142,232,245,100,143,226, 8,168, 3,102,195, 11,171, 27,243,205,185, 62,177, 90, - 81, 78,141, 40, 54,142,114,185,213,139, 51,212,188,243,204,201,213,241,146,215,173,173, 86, 81,215, 11, 64, 41, 83,215, 75, 94, -179, 20,227,149,167,244, 14,117, 3,161, 40, 18, 72, 93,110, 65,225,116, 39,175, 36,198,119, 90,154, 77,123,252,144,161,173,221, -104,125,254, 98, 78, 89, 86, 92,223,174,148,170,219,153,194, 87,236,123, 76,133,113, 4,166,211,105,240, 94, 75, 75, 3, 93, 67, - 28,140, 70,173, 35,101, 31,188,221, 92,114,235, 88,248,121,245,104,246, 60, 69, 42, 33,253, 55, 90,208,183, 97,128,211, 79,189, - 88, 85,187,125,152,253,200,220,126,142, 83,183, 39,116, 5,201, 53,235,149,172,249,142,167, 72,148,226,233, 41,109,117,239,113, -165, 36,134, 23,206, 67, 18, 32, 68,142,229,165, 85, 44, 45, 47, 99,203,182,109, 88, 63,191,134,233,120,106,132, 87,126,105,149, - 30,150,242,149,199,143, 67,100, 5,122, 69, 1,145,101,184,233,133, 47,198,249, 11,231, 1, 37,161, 76,119, 55,174, 42,247,252, -216,134, 55,177, 99, 88,131,122,200, 42,105, 48,103, 87,195,110,243,225,250,119,186,182, 93, 51, 47, 2, 82, 86,152,140, 71, 40, -122, 3,100,131, 2, 89, 81,224, 53,175,121, 29, 62,250,241,191, 68,117,250,140, 17,231,105,114,118,101,105, 9,131,193,114, 77, -197,151, 37,212,100,130, 34,211,247,116,219,182,237, 88, 95, 95,199,210,210, 18,202, 74,131,233,180, 50, 61,243,165,116, 85, 5, -250, 89,215,128, 46,165, 66, 81,228,152,150, 37, 50,145,129, 88,207,159,183,142,175, 29,151,171,181, 29,108, 74,250,234,253, 74, -201,186,236,133,252, 41,125,214,193, 37, 5, 82, 97, 78, 94,211,250,250, 58,244,122,125,200, 74, 66, 73,229,122,205, 7,148,225, -115,104,180,192,196,182,152,230,134, 16,237, 96,224,234,197,213, 76,188,106,234,172, 56,104,202,214, 42, 34,159, 91,103,142,136, - 61, 74,129,121, 51, 74,111,100,188, 99,253, 21, 40, 26,232,146,138,208, 35, 37,250,204,246,170, 62,216, 70, 99, 81, 3,193, 68, - 68,183, 7,239,223, 16, 8,180,111,216,241,136,212,166,218, 62, 28, 46, 71, 14, 84,106,177, 90, 80,102,209, 34,104,224, 68,254, -164,117, 12,106,203,100, 29,255,223, 53, 77,200, 94,158,187,141,126, 96,248,115,116,235,224,158, 90, 4,137,126,189, 42,133,186, - 7, 47, 55,214,168, 36, 64,212,206, 19, 54,207, 94, 31,129, 98,229,221,147,250,117, 89,162,244,206,117,229,107,107,108,149,108, - 62,227,200,110,151,239,204,178,172, 30, 79,234,205,111, 15, 7,187,160,181,230,154, 60,170, 86,167, 34,201, 40,184,245,255, 69, -150, 59,150,193, 54, 20, 1, 17,164,170, 28,205,238, 70,186,230,185,235,240,229, 11,227,226,103, 70,120,226, 56,231, 4, 5,155, - 35,153,168, 87, 11,209, 96,188,113,191,230,158, 37,176,190, 62,212,202,120,197, 65,169,156, 63,109,174, 49,220,193, 48, 26,100, - 90,226,106,169,127,237,208,166, 82, 20,113,137, 97, 12,232,113, 73,147,160, 28,211,233, 40,232,248, 7, 8, 8,102, 64, 74, 12, - 55,214, 48, 92, 95,115,189,226,179, 34,135, 44,167, 53, 35,100, 30,202, 45,203,171,128, 32,172,172,172,160,172, 74, 12,150, 86, -240,229, 39,158,192,181,215,236,214, 68, 54,135,202,222,254, 64,131, 78,211,209,174, 75, 57,237,243,101, 1,190, 10, 94,143,160, -213, 43, 64,166, 59, 28, 33, 51,169,151, 94,191, 15, 89, 85,144, 85,137,126,127, 59,142, 63,254, 40, 38, 27, 27,186,185, 14,215, -109,102,215,215,215,177,178,178,130, 74,150,200,242, 12, 75,185, 17,209, 65, 11, 7,135,195, 13, 44, 13,150,160, 88, 33,203, 4, - 68,214,131,200, 4, 38,147, 9,242,172, 64, 37, 75, 51,145, 77, 3,176,206,205,107,144,237, 23,122,140,172, 32, 66,158, 23, 96, -102,148, 37, 59,161, 34,153, 82,181, 44, 3,138, 34, 55,142,133,233, 76,171,194,220,179, 19,227,185,123, 26, 94, 7,219, 68, 72, - 15,221,145,184,118,207,110,156, 62,117, 10,213,180,106, 48,211,184,194,216, 30,207, 65, 15,160,132,231,252, 29,205,136,238,216, -159,193,160, 22,154,237, 65, 38, 34,175, 81, 85, 36, 43,115, 82,123, 16,131, 26, 52,121,152, 86,165, 8,228,169,225,104, 80,194, -201,161, 52, 85,221,204,169, 7, 84, 34, 99,177, 70, 46, 72,228,172, 83, 11, 33,166,121,197,108,199, 32,166,220, 27, 14, 66, 74, -224,198, 9,230, 32,202,123,248,120,216, 70,177,167,102, 61, 55,212,237,177,248,171, 73,158, 36,192,198,223, 52, 99,103, 42,236, -179,238,247, 9,142, 71,143,134,158, 64, 44, 62,240, 59, 75,121, 64,206,126,243,148,102, 42, 36, 40, 7, 52, 64,169, 68, 93, 70, - 35, 56,117, 46, 97, 25, 36, 35,108,115,217,100,113,200, 83,224,114, 99, 88,139,127, 14,174,113,140,180,116,100, 93,246,214, 46, -180, 11,233,100, 6, 92,100, 84, 47, 26, 89, 51, 81,153, 6,224, 44,207, 33,171,202,253,125, 37, 75,143,174,213, 63,155,148,211, - 32,117,226,119, 66,244,193, 54, 19, 34, 4, 29, 29,102, 5,235, 80, 41,214, 81,150,153, 48, 23,150,221,101, 24,141, 54,180,194, - 58,138,236,227,207,117,218, 12, 31,232,252,239, 17,246,203,159,149,171,180,189,201, 83,237, 59,253,159, 59,154,222,139, 4, 93, - 67, 30,255,153,103,198,100, 58,173, 5, 83,118, 96,147,121,181, 84, 90,244,247,204, 99, 79, 97, 50,158,224,134, 27,151, 48, 24, - 20, 24,142, 54,156, 14,198,150, 2,101, 66, 32,239,245, 48, 30,174, 69,236,130,118,242,172,216, 75,127,213,107,199, 30,115,158, -103,152, 76,116,123,215,149,149, 85, 48, 43,140,198, 35,119, 45, 7,253, 62, 70,163, 49,100, 85, 25,178, 74,111, 78,167, 79, 62, -243,255,243,246,102, 77,150, 36,215,153,216,119,220, 61,150,187,228,158, 89, 91,119, 85,119,161, 1, 98, 33, 8,136, 20, 69,202, -134, 52,141,105,180,204,140,164, 87,189,202,164,127,130,191,162,135,249, 5,122,210,152,108,104,154, 25, 17, 52,114,200,193, 16, - 4, 8, 18,141, 94, 81,107, 86,229,114,183, 88,221, 93, 15,190,132,187, 71,220,172, 34, 69,170,205,218,170, 43, 59,151,155, 17, -113,253,156,243,157,111,137,118,222,225, 90,167,170, 43,148,229, 12,187,221, 14,164, 57,102,229, 12, 93,219,122,142,196,174,218, - 34,207,115, 8,145,161,174, 27,116,157,153,244,123,155, 41, 48,184,210,153,166,145, 19,131,236,122,200,222, 64,247, 74, 41,200, - 94,130,200,236,211,251,174, 71,198, 5,100, 32,129,236,186,222,120,206,247, 6,189,224,140,161, 15,238, 29,113,238,119,237, 70, -205,160, 61,121,213, 61,154, 89,150,163,235, 90, 67, 80,148, 29,238,223,127,128, 23, 47, 94, 66,169,222, 15, 96, 90,255,127,215, -146,255,157,139,250, 8,181,140,143,184,125, 19,242,126, 18, 29,249,149,155, 71,140, 24, 77,119, 4,122,146, 9, 16,123,107,236, -203, 68, 79,125, 69,136,188,243, 91, 74,126, 75, 93, 65,211,223, 37, 1,222,247,214,227,176, 49, 17,142,172, 54,217,173,220,101, - 19, 75, 19, 69, 58,173, 45, 24,187,202,121,152,125,194,116,102, 50,233,141,226, 68,181,189,141, 6, 37,251,114,151,219,124,215, - 92, 56,201,248,199, 24,102,159, 42,244, 90, 71,217,227, 72, 47,126,192, 40, 14,165,102,233,212,144,250, 8,135,235, 0,189,119, -130,215,251, 9, 20,129, 85,111,228, 54,239, 97, 35, 68, 15,167,231, 63,164,209,182,206,176, 65,147,247, 25, 15, 33,248, 73,223, - 56, 29,167,152,249, 20,174, 81,131, 71, 19, 36, 16, 68,187, 82,231,103, 28, 22, 41,179,215,141,141,112,210, 27,155, 22, 35,103, - 14, 2, 10, 60,229,137,123,194,221,124,177,192,118,179, 1,231,132, 94,106,143,230,180, 77, 23, 77,192, 89,150,161,237,187,104, -229,146, 38,139,133,126,239,140, 15, 9,113, 74,107,144, 11,146,153, 34,193, 4, 11, 33,173, 13, 49,206, 77,152, 33,219, 53, 13, -179,137,208,159, 52, 9, 10, 46,217,141,141,144,140, 65, 31,111,166, 79,231,123,158,238,218,195,176,151,176, 73,113,218,116,105, - 21, 19,225, 25,203,236,193, 72,211, 3,140,221, 39,107,204,230, 51,236,182, 59, 48, 65,232,187, 22, 69,158,225,250,234, 13,120, - 46,160,146,176, 45, 70,100, 88,225,129,175,121,170, 78,112,171, 36,157,120, 7, 56,164,195, 65,238, 74, 41, 52,109, 13,217, 73, -128, 56,142, 79,142, 32,251, 14,117,109, 12,108,148, 6, 62,252,240, 49, 46, 47, 95, 3, 26,216,109,183,145,127, 63, 35,142,251, - 15, 31, 34,203, 50,108,214, 43,220,220, 92,227,240,224,208,163, 58, 70, 2,167,209,180,134,232, 87,215, 53,184,232, 81,150, 37, -242, 34,179,222,252,150, 5,111,191,130,115,110, 17, 36,237,147,247,156,147,157, 12,136,109,204, 54,135,121, 38,208,245,189,105, - 54, 64,102, 21,226,188, 16,200,204,148,125,215,197,132,221,116, 4, 11,162,120,153, 61, 51,186,182,195,118,187, 69, 81, 20,184, -184,255, 16,175, 95,252, 58, 24,132, 66,228,237,255,135,145,157,246, 20,244,125,101,137,222, 5,211, 15, 5,157, 72, 89,142, 77, -178,230,212, 24, 23,107,210,160,212, 68, 38,174,198,147, 31, 75,218,220,196,229, 51, 12,131, 97,227, 53,241,132, 28,154,136,141, - 82, 50,166,146, 63,205,160,194,141,117,232,123, 71,139, 6,176,252,200, 28, 68,143,119,225,225,174,124, 95,214,120, 10, 3,251, -226,226, 28,237, 66,246,246, 8,218,208,113,231, 22, 68, 36, 78,247, 90, 83,251, 95,102,157,177, 88,224,242, 21, 66,215,225, 20, -197, 6,105, 16,226,196, 29,167,101, 14,181,175,227,169, 40, 92,183,132, 19,154,242, 12,233,193, 13,140,153,184, 76,145,217,216, - 76,243, 47, 99,194, 59,122, 13,242, 22,242,187,114,207,182,182, 4,165,184,184,210, 16, 69,154,172, 44,120, 4, 37,219, 67, 76, - 3,100, 89,198,138, 17,122,173,209,219,120, 2, 69,128,132,134, 36, 13, 9, 29, 73, 88,180,221, 19,250,199, 59,117,182, 11,255, -117, 7, 70,164,133,101,123, 26,166,119, 63,155, 41,100,236, 51,223,161,160,108,146, 25,105, 6, 37, 53,202,114, 6,173,164, 13, -132, 49,100, 53,165,123,244,157, 10,144,150, 80,165,160, 39,214, 41,227, 61,186,111,156, 0,127, 47,133, 16, 6,138,117, 5, 53, - 66,143, 44,207, 65, 2,117,221, 24, 93,182, 71, 5, 6,205,185,176,161, 32,254,185,116,104, 68, 50, 73, 26, 67, 24,128,113,138, -216,244,161,142,223,188,183, 76,250, 27, 35, 14,165,198,174,127, 97,147,228,159,103,251,227, 57, 49,100,140, 71, 8,142,121, 46, -226,216, 28, 14,243, 28, 49, 11, 98,106, 2,138, 60,199,102,179, 66,179,171,140,171,166,224, 40,103, 51, 92, 92, 60, 66, 91, 55, - 86, 29,161,124,179, 34,132,128,234,250, 0, 70,102, 72, 33, 61,206, 5, 14, 15, 14,146,235,236,246,208,176,124, 1, 99, 46, 4, -198,240,244, 27,159, 64,129,176, 94,175,209,182,198, 57,112,185, 60,196,102,183, 69,211,214, 88,111,214, 88,204, 22,224,196,192, - 56,199,197,253, 71,248, 39,255,213,127, 13, 33, 24,158, 61,251, 26,109,219,224,228,228, 4,173,141,128, 5, 17,102,179, 25,178, - 34, 7, 99, 28,139,197, 1,202,162, 68,215,214,168,171, 45,182,219, 53, 14, 15, 14,112,114,124,138,131,229, 17, 56, 19,158, 85, -159,137, 28, 90,154, 85,140,200, 4,164,247,213, 31,144, 58, 77, 26, 76, 0, 74,182,200, 56, 96,251, 70,115,173, 8,232,161,192, - 50,129,114, 62, 3,227, 60, 50, 60,130,158,242,183,176,123,245,174,179,100, 56, 66, 83,247, 88,175,111, 80, 22, 28,243,229, 97, -196, 68,139, 92, 37,137,254, 81, 11, 58,238,210,159, 79, 41,125,236, 14, 93,211, 29, 5,157,140,212,207,240,139,147,177,208,165, -171,165, 5,157,141,175,215, 36,106,155, 12,144, 26, 38,108, 69,123, 56, 14, 35,162,118,186, 55,103,108,104,206,181,191, 12,230, -235, 83, 71, 57,231,205,145, 34,217,140,216, 52,251, 61, 50,117,153, 96,182, 79, 65,239, 83, 23, 61,133, 54,238,140, 38,197, 29, - 49,174,110,239, 78,241,142, 77, 91,102,166,158,216,109,235, 52,220, 32,133,104, 38,108, 21, 49,106, 52, 18, 56, 37,244,253, 78, - 96,104,207, 66,143, 38,245,116, 71, 73,241,183,138,204,100,152,111, 10, 6,195, 7,242,240, 99,248,117,147, 13, 14, 5, 90,110, - 98,166,120,105, 61,226, 43,164,200, 72, 56, 61,134, 36, 35, 23, 34, 97, 45,193, 34, 20,198,203, 16, 35,105,135,142, 67,104,244, -132, 7,213, 88,219, 52, 13, 59, 5, 95, 16, 9, 40,166,140,105,238,144,132,140,214, 43,174,232, 43, 43, 5, 19, 57,234,166, 70, - 38,184,153,124, 92, 33, 83,122,114,133,226,244,225,169, 35, 92, 68,216,115,112,188,157,214,149,210, 9, 31,130, 76,220,104, 64, -244,116,133,147,115,142,237,166,178, 86,172, 58,120, 6, 7,255,127,178,147,149,227,121,248, 0, 23, 43,223, 83,206, 89,143,143, - 29,238,122,187, 94,208, 58,137,191,181, 22,176,108,114,181, 49, 29,145, 73,100, 72, 92, 93,215, 97, 4, 73, 57, 55, 51, 77, 9, - 59,215,233,113,205,127,103,121, 9, 46, 24, 30, 62,249, 24,243,249, 2,155,237, 26,154,200,144,238,148,142,242,231, 51, 33, 44, -147,220,161, 70, 67,193, 98,108,248,239,245,102, 61, 66, 23, 24,227,222, 36, 71, 3, 88, 44, 15,144,231, 5,214,171, 27,172,110, -222, 64,107,160, 44,103,200,243, 12,154, 8,155,213, 53,164,214, 56,152,207,209,182, 13,178, 92, 64,228, 51,252,240,135,191,131, - 31,255,241,191, 69,189,219, 64, 1,216,213,141,153,108,103, 51,232,182, 67, 93, 85, 0, 12,170,144,101, 57, 86,155, 13, 4,231, - 88, 46,150,216,238,182, 40,202,194,146, 47, 9,235,205,218, 19, 14,133, 48, 49,172, 69, 81,162,105, 43,127,214,105,251,123,154, - 51,128,123,146,164, 10,204,108, 92,243, 51, 24,201, 40, 48, 38,188,231,188,118,249,242, 9,154,233,120, 26,222, 22,217, 70,224, -106,165,176,221,214,200,178,107,156,221,191, 64,211,212,232,218, 38, 34, 37,142, 72,105,255, 40, 85,253, 31,144, 72,231, 38,244, -128,221,238,127,130,226,201, 55,210,190,145, 33, 27,119,236, 21, 72, 83,123,243, 9, 50,156, 98, 9,235, 40, 10,131,161,233,243, - 60,173,146, 65, 42,230, 62,222, 91, 52,157, 7, 13,130, 24, 49,211,195, 47, 78,131, 84, 66,131, 18,232,136,168, 22,201,207, 38, -246,224,145,205,168,222, 15,229,135,235,234,116,239, 59,197,200,158, 52,121, 73, 47,184,158,216,173, 39, 90,195,148, 88,229, 15, -189, 9,144, 52, 53, 0, 24,235,178,227, 29, 76,120,230,197,210, 52, 10, 36, 11, 97,130,216,176, 7,245,164,190,196,250,193,124, -140, 39,170,129, 16, 86,103, 32,206, 18, 3,151,113,103,151, 58,246,249,125,180, 35,104, 48,147,123, 77, 74,155,169,157, 98,252, - 39,244, 66,223,183,166,137, 72,169,204,201, 64,166, 9,163, 58,102, 80, 6, 84, 65, 36,136, 8,121,185, 93,170, 21,159,154,218, -137, 6, 15,117,198, 53, 52,122,204,242, 5,154,205, 14, 89, 94,160,237, 58,243,251, 56, 13,187, 48, 94,221, 14, 65, 16,156,129, -250,152,139,193,236,247,100,156,143, 92,236, 52,153,253,165,249,187, 75,105,179,207, 48, 83, 16, 60, 44, 78, 26, 74, 1,235, 85, -133,190,239,124,250, 87,168,102,112, 44,105,165, 20,200, 78, 97, 14, 5, 48,147,135,233,230,157,131, 29, 11,210,182,194,207,117, - 82, 62,173,172,169, 16,148,253,147, 70, 65, 52, 83,249,215, 38, 40, 36,162,234, 67, 43, 64,216, 9, 71, 58,111,247,232,145, 24, -203, 90,190,245,141,111, 97,181,171,113,125,115,133, 55,111, 46,209, 55,207,112,124,126, 12,173,156, 85,185,138, 9, 93,182,169, -114,240,116, 72,108,158,138, 6,205,178, 44, 96,244, 27,157, 59, 49,194,241,241, 25,170,122,135,166,170,113,112,176, 68, 89,204, - 76,193, 39,224,246,246,198, 41,160, 32, 88,189,164,120,176, 0, 0, 32, 0, 73, 68, 65, 84,102, 93,239, 12,255, 98,150,229,248, -229,223,254, 53,170,237, 26,125,111,118,218,194,146, 44,171,237, 22, 7, 75,179,167,111,219, 22, 85,181,179, 72,157,185,102,171, -109,133, 60, 43, 80,239,106,228, 5, 80,148, 51,204,202, 18,117, 85, 3,224, 80,189,209,189,183,109, 99, 60, 19,154,202, 91,207, -122, 73, 25, 52, 24, 19,232,149, 2,227,153, 97,226,107,133,140, 17,164, 54, 57,108, 36,114, 27,241, 42,145,205, 10,100, 90,160, -169, 42, 31, 6,212,247,246, 89, 34, 66, 15,147,241,174,181, 6, 19, 28,188,200,161, 58,227,101,127,112,124,132,174,239,209,214, - 53,238,221,255, 0, 47,190,254, 10, 10,189,143,215,133,126,183,211,232,223,251,159, 9,212,152,212,254,198, 93,179,116,204, 10, -139,193, 32, 73, 35,210,147, 36,230,189, 11,102,227, 8, 20,213,132,125,236,118,114,207,125,128, 10,140,145,201,100,144, 28,229, -135,208,222,193,249,174,248,243, 41,196, 68,220,149, 17,238,138,120,148,173, 30, 30,216,129,132, 46,205, 66,143, 8,116,233,238, -156, 81, 76,108,211, 83, 23, 53,248,127,148, 78,152,241,198, 98,159,148, 41,114,241,210,177,140,141,238, 32,103,236,135,151, 82, -255, 93,218, 99, 31, 60, 48,153,245,228,206, 55,102,246, 13, 78, 78,137,199, 92,148,168, 21, 23,202,208, 11,128,152,133, 95, 53, -130, 61, 52,108,196, 37, 69,149,113,170,136,251,201, 59,124,179, 96,240,169, 30, 19,253,227, 29, 43, 37,196,193,169, 70, 34,253, - 88,132, 32,248,192,133,208, 66, 55,148, 81,134,215,149, 77, 56,185, 77,239,185, 67,115, 26,165,245, 72, 51,206, 18,227, 15,247, -249,157,148,129,127, 56,121,246,188,147,166,249, 9,221, 50,204, 83, 6,188,177,120, 29, 56, 8, 4,123, 64,211, 64,196,209,214, -219, 93, 42, 5,206, 50, 52, 85,237,205,101, 98,139, 87,179, 22,113,214,177,126,178, 15, 16,129,200,161,206, 74,221,116,192,184, -151, 74,123,153,158,116,114, 42,140,205, 48, 82,146, 97, 24,227, 26,101,175, 35,150,145, 97,178,241,221,255,143, 82, 18, 44, 35, -124,245,245,231, 96, 74,162,111, 59, 40, 6,220,191,255, 33, 62,253,244,111,134, 73, 74, 15, 25,215,225,116,234,154, 39,103,255, - 26, 43,153, 88, 68,250, 11,117,247,121, 57, 67, 46, 56, 86, 77,131,217,108,134,190,239,208,245,141,249, 92,105,246,233, 32,133, -217,242,216,166,186,221, 26,146, 37, 3,170,106,139,197,114, 97,238,145,253,189,165, 26,194, 92,214,107, 35, 95, 43,203, 18,155, -205, 6,140, 51,156,158, 94, 96,179, 93, 65,245, 18, 77,211, 34, 47,102,168,235, 29,132, 16,104,219, 14,139,229, 2,109,219,161, -237, 90,212, 77,141, 89, 57, 3, 72, 34,203, 50,116, 93,103, 11,125, 11,173,148,149,187,101, 0,148,125,166, 56,250,222, 12, 30, -156,219, 70, 72,105,136, 34, 71,215,119, 40,242, 28, 77,219,249,130,110,136,153,166, 9,231,130, 7, 40,170,101,212, 43, 5, 46, - 4, 24,231,144,125,143,172, 40,161,165, 66,211,109,177, 60, 60, 48, 9,119, 8,220, 5,255, 49,134,243,247, 97,161, 83, 28,232, -245, 62,109,197,212, 52,236,199,233,176,115, 32,231,179,193, 35, 36,244, 46,148, 87, 97, 68,105, 74,234,194,152,255,226,253, 72, -238, 72, 61,189, 11,233,222,123,253,237,249, 62,157,210,166,247, 44,226,167, 24,233,108, 26, 50, 15,187,136, 73,111,121,134,216, -150, 48,129,109,163,102, 99,194,153, 13,216,175,113, 30,101,246, 38,241,150,216,243,235,236,187, 88,147, 58, 65, 61, 38,193, 13, - 55, 44, 76,235, 26, 95, 88,247, 57,238,167,187,131,107, 12, 31,199,161, 32, 67,163,224,222, 94, 44, 38,209, 36, 70, 63, 68,136, -228, 96,126,183,108,167,255, 94,199,250,103, 29, 2, 62, 54, 49,140,162,134,194, 66,119,129,169, 69, 24, 39,232, 13,106, 20, 65, - 90,196,129, 52,121,111, 3,237,141, 79, 83,103, 63, 29,229,186,135,136, 69,124,141, 13, 68, 29, 22, 27,247, 43, 48,206, 70,164, -181,208,159,158,236,118, 23,208, 40,242,220, 78,230, 49,207,195,105,239,149, 82, 46, 61, 17, 92, 91,243, 22,107,237,153, 54, 12, -227, 55,171, 33, 47, 9, 63,245, 42, 48, 78, 16, 22, 38, 29, 76,122,134,139, 90, 53, 29,234,166,182,172,237, 97,119,201,185, 8, -173,247,163,221,168,187, 48,220, 78, 91, 62,114,211, 61,139, 80, 86,130, 8, 48, 61,172, 8, 56,231,222,154, 52,253, 29,210,235, -150, 54,113, 3,121, 46,224,152,216,247,169,178,144, 59,211,230,238,170, 32,209, 44,109, 84, 25, 17, 94, 93,190, 70,215, 52, 6, -143,200, 56,238,157, 93,224,246,246, 22,245,118,227,127,182,210,166,144, 85, 85, 5,169,212,128, 68, 76,172,191, 98,103, 99, 29, -153, 42, 49,102, 32,241,174,235,241,250,242, 21, 68,150, 67, 74,137,221,174,133,210,166, 48,159,156,158,163,106,107, 52, 85, 5, - 46, 4,110,175,174,192, 25,129, 9,130,224, 5, 14, 14, 14,240,242,213, 51,251, 94, 83,208, 96, 40,242, 18,135,199,199,216,110, -214,104,186, 22,219,186, 2,148,196,172,156,161,170, 27, 60,123,246,204, 88, 17, 43,141, 44, 19,232,186, 6,101, 57, 71,215,245, -152, 47,230, 32,192, 18,234,204,239,212,182,141,113, 51,204, 11,116, 77,143,182,110,144,151, 5,218,170,182,114, 54,147, 11,223, -246, 61, 50, 33,192, 56, 65,246,173, 85, 7, 24,121,156,212, 61, 56, 39,180,109, 3,210, 26, 92,112,112,102,146,227,156,127,255, -160,170, 32,255,188,115,110,131,140, 24, 55,164, 66,106,193, 23,115,228, 89,142,217,193, 18,109,211,160,105,118,195, 59,230, 31, -104, 72,255,251, 4,178,144,117,134,219,191, 63, 39, 95,168,163,115,113,138,217, 78, 42,220, 72,239,223,155,239,131,219, 83,159, -119,194,228,234, 46,172,149,129,241,244,164, 20, 46, 13, 32, 75,225,245,187,152,239,158,172,234,237, 82,195,194,203,104, 28,198, - 50,129, 93,120,187, 88, 29,210,245,105, 36,185, 9, 25,208, 6,194,211, 65, 50, 79, 64,188, 99, 19,169, 82, 90,143,226,222, 29, -244,233,247,149,142,197,185, 39,196, 99, 82, 91, 62, 50,144,161, 24,218,245,255, 14, 30,219,211, 89,212,176,228, 56,242,172,234, -169, 3,145,188, 20,105, 34,232, 36,240, 29, 31,180,163, 3, 44, 26,202,225,194,130, 63, 28,200, 9,124,227, 9,239,228, 31,136, - 80,238,163,181,129,141,205,245, 30,120,118,196,172,188, 70, 8, 8,206, 35,249,223,224, 79, 62,236,232,212, 4,245,109,152,152, - 66, 78, 3,129, 25,223,176,125,219,243,224,249,139,205,133,144, 64,239, 99,114, 28, 27, 77,154,227, 55,167,121,209, 66, 8,115, -136,121,249, 89,218, 36,216,221,179,167,234, 25,169,145, 75,175,242,110,113, 19, 74, 9, 67, 58, 13,140,113, 28, 9,213,206, 56, -134, 8, 3, 63,229,187, 13, 88, 85,215,190, 88,134, 13, 41, 11,130, 89,156, 9,148, 95,137, 56, 57, 84,104,147, 27, 64,230, 74, - 15,223,143, 7,187,127,119,184,112, 62, 64,132,108,138, 77,111, 13,110, 82,238, 64,184,202, 24, 14, 33,242, 14, 87,206,195,154, -105, 75,144, 27,161, 60,230, 33,121,243,230,173,207, 31,152,205,230,200,243, 2, 12,202, 68,190,170,161,113,209,118, 95,108,238, - 25,159,108, 58,226, 70,107,248,187, 16, 3, 89,181,109, 59, 40,217,225,131, 39,159, 96,177, 60,178,249,235,102,119, 36,184, 64, -223,181,168, 54, 27, 51,157,110,215,166,129,200, 50,148,197, 18,143, 63,122,138,171, 55,151,232,235, 14,196, 8,203,195, 83, 60, -126,242, 20,139,197, 2,171,213, 53,100, 95,227,104,185,192,189,179, 83,228,185,192,174,170,192,136,144, 9,243,188, 43,104, 84, -117, 3, 34,151,189,174,177, 94, 27, 24,127, 54,155, 33, 47,114,191,251, 39,102, 8,156,179,217, 12,196, 8,245,174, 66, 81, 20, -158,235, 96, 10,176, 64, 47, 37,152,205,115, 87,202,232,238,133, 16, 16,156, 33,227, 28,153,224,200,243, 12,140,113,116,125, 7, - 33, 50,187,150, 16,118,157,195, 35,226,167, 82,131,143, 62,180, 65, 70,170,205, 14,220, 94,203,139,123,247, 7,226, 30,225, 31, - 78,223,118,215,247, 74, 81, 92,102,246,225,154,238, 72, 88,115,252, 30, 50,146,209,184, 51,160,177,136,221,146,225,220,121,229, -107, 64, 90, 39,162,247,172,121,206, 85, 64, 58,100,209,217, 78, 35, 68,145, 49, 26, 49,215, 71, 40, 25,163, 73, 68,124, 58,221, -109, 56,171, 71,100,185,176,216, 58, 40, 54,234, 10, 40,102, 72,123,230, 59, 98,184, 32,140, 80, 29,165,125,237,233,236,136, 13, -121,210,184, 51,108,103, 96, 21,179,176, 72, 39, 13,132,158,186, 9, 83,222,188,193, 62, 52,149, 35,165, 7, 68,122, 32,165,110, -104, 33, 25,201, 60,244,241,190,220,188,121, 88, 16,191, 73, 65, 14, 56,243, 15, 19, 99, 12,140,179,224,115, 88,210,100, 4, 69, -203, 77,199,254, 33, 7,164,211,162,130,188, 97,140,166,216, 81, 13,140, 64,156,249, 63, 67, 18,158, 78, 72, 81,202, 66,126,209, - 3,158,122, 39, 7,145,162,148,116,223, 76, 3,220,201,210,108,240, 74, 72,214,211,164,163, 55,232,112,141, 88, 18,170, 2,191, -159,156,146,242,133, 60,187,176,200,233, 9, 54, 56,227,102,162,113,247, 4,208, 16, 25, 71,103,245,231,161,115,151,119,253, 3, - 0,206, 32, 67, 57,154,211,162,219, 2, 63, 76,184,142, 92,147, 52,180,118,141,161, 19,168,135, 49, 67,140, 83,145, 13, 42,243, - 83,179, 41,254,136,126,110, 68,196, 11, 13,104,236,235, 49, 1, 29, 49, 43, 95,250,208,147,137,128, 28,215, 16, 7,239,129, 40, -101, 46, 41,236,190,105, 13,184, 11,134, 53,192,252,140,160,152,187,231,110,135,203,134, 51, 90,107, 40,109,244,233, 89,158, 65, -228, 25,158,126,252, 9,148,150,184,124,251, 22, 82, 73,171, 79, 31, 10,187,115,236,115, 7,227,116,243, 54, 62,245, 66,211, 30, -165, 21, 78,207,239, 99,181,186,198,237,237, 21,138,114,142,131,163, 3,136,204, 20,197,213,106, 5, 13,224,233, 39,223,134, 34, -142,143,159,126, 3,189, 84,232,250, 26,159,125,250, 11, 40,109,158,149,197,226, 16,223,249,206,119,177,171, 54,216,237, 86, 96, -214, 60,166,218,109,176,217,172,176, 92, 46,177,152,207,176,152,207, 0, 50,230, 54,243,197, 2, 23,247,239, 97,177, 92,226, 96, -185, 68,219, 54, 40,242, 28,196, 24,250,174,247, 4,192, 94,246, 67, 88, 22, 99,152,149, 11, 8,110, 52,238,121,150, 69,236,115, -173,173, 89, 18,231,224, 76,160,235, 58, 8,193,205,115,105, 17, 13,115,191, 6,222,142, 33,211, 41,111,105, 59,186,167,190,241, -151,166,249, 4, 80,239,118,128,214,200,202, 28,103, 23, 23,113, 26,231,223, 65, 53, 53,133,137,107,186,195, 84, 76, 79, 20,254, -119, 21,115, 56, 99, 42, 29, 19,206,245,132,166,156,172,234, 6, 28,184,107, 66,167,184,200,235,128,236,169, 61,159,103,218, 60, - 38,180,151,142,234, 39,177, 17, 63,104,204, 33,167,168,222, 78,169,124,166, 8,232, 68, 4,190, 60, 58,253,145,187,249, 83, 12, -233,125,228,167,112,236,143,247,151,251,133,241,180, 79,103,187,135,251, 56, 76, 17,227, 95,136, 77,144,220,166,166, 39,119, 0, -222,245, 26,227,233,155, 18,153, 12, 3, 38,245,134, 73,161, 13,102, 82,243,134,225,102, 71,229,138,179,141,235, 76, 93,199, 34, -130,149, 30,188,208, 61,212,163,227,244,179, 40, 29,141,209,208,189, 98, 32,106, 14,205, 82,112, 79, 89, 80,148, 3,246,244, 84, -211,192,172,197,164,131,139, 92,195, 97, 10, 52, 69, 7,122,200, 91,240, 5,149,104,112,152,100,128,179,188,208, 20,235,231, 67, -157, 40,129, 48,182,167, 29, 38,181,120,133,128,225,160,231,131, 85,171,239,150,131, 55,161,191,190,220,232, 36, 24, 35,112,150, -131,115,142, 78,118, 32,178,153,220, 74,161,151, 18, 90, 1,109,219,122,148, 6,204,178,216, 45,148,205, 57,183, 8,134,249,153, -195,225,104,145,156,192,203,217,189, 70, 29,236,106, 60, 91, 64, 3,219,173, 49, 36, 9,121, 11,198, 2,116,248,254,140, 82, 2, -160,253, 61,156, 53,109, 72,142,180, 9,106,140,179,145,225, 76,164,169, 15,144, 45, 55,225,185, 93,188,123,189,156,115, 8, 33, -198,254,134, 90,251,149,136,155,238,152, 37, 83,142, 20, 66, 46,150,217, 62,195,142,247, 65,246,239,203,165,145,119, 17,203,144, - 21, 57, 94,188,248, 53,116, 47,135,125,191,214,200,243, 60,122,237,142,119, 16,122,185,187,134,199, 89,168, 58,107,100,199,193, - 88, 44, 22, 40,203, 18,117, 93,161,169, 76,240,202,249,217, 5,222,188,189, 4, 52, 80, 20, 5,132,224,152,205, 22,184,185,126, -139,182,174,113,123,115, 13,193,204,189,158,205,230, 88, 44, 22, 32, 70,144,109,131,235,235, 75, 3,131,215,157, 49,182, 97,220, -164,209, 73,131, 0,237,182, 21, 90, 11,113,103, 66, 64, 48,134,213,106,133,221,110,135, 94, 74,156,158,158,161,105, 90,200,190, - 69, 81,150,198,223,190,239,141, 37, 44,180,137,107, 5,208, 75,133, 60,207, 33,251, 14, 82, 41,228,121,102, 63, 79,120,185, 42, -227,220, 54, 84,218,135,193, 12,103, 8,243,195,131,227,242, 56,239,248, 56,208,137, 2,171,228, 64,117,226,214,125, 10,200,138, - 28,229,108,142,222,114, 0, 60,139,248, 93,233, 42,123, 6, 53, 23, 14,246,206,130, 30,156,115,239,234, 32, 70, 43, 37, 15,183, -179, 4, 18, 48,137,121, 3,105,151, 44,162,153,216,131, 39, 38, 79,174,160, 15, 3, 91, 26,134,196,252, 53, 99, 41,210,237, 6, -149,176,152, 7,147,185, 43,224,225,251,125,212,184, 78,201,216, 38,134, 91,126,112,114,246, 35,218,179,180,159,100,218,133, 83, - 81,168, 39,159,172,202,113,225,223, 79,120,164,241,244, 64,137,146,253, 14, 75, 62,208, 29, 86,122, 19, 16,123,106,246, 18,146, -218, 66, 13, 97,248,177,240, 70,133,208, 74,204,132,215,209,215,121,244,195,251,103,187, 41,143, 34, 4, 35, 77, 29,115, 15,128, - 51,147, 48,221,123,204, 13, 8, 33, 92, 7,177,134, 94,224,206,165,202, 85, 81, 79, 14, 99,227,224,145,168,192, 7, 31, 75, 35, - 88,211, 92,244,116,199, 20,146,157, 29, 4,164,134, 29,137,223,245,115,176, 40, 64,103,184, 43,122,196,168,165, 96, 66,211,246, - 0, 30, 38, 73,171,173, 39, 29, 77,154,238,218,164,169,101, 32, 3,181,154, 80,142,220, 51,205,149,148,232,165,180, 69,202,229, - 88, 59,194, 27,129,103, 28, 90,170, 8,126,247,235,158, 61,161, 42, 65,250,140,191,126, 30, 58, 86, 61,218, 94,249,160,150,240, - 31,211, 8,198,121,241, 32,248,103, 33,220, 99,179, 68, 98,230, 16, 9, 33,196, 56,100, 38, 92, 29, 4,133,157,130,191, 59,159, - 4,151,110,151, 22,243, 49, 43,126, 32, 26,106, 50,200,204,192,202,136,220,169,192, 20, 32,237, 74,137,195,184, 4, 42,192,104, -198,181,194,235, 87, 47, 1,169, 33,251,110, 64,212, 24, 67,158,231, 30, 49,112, 63, 91, 42,229,223,152, 44, 74, 18,140,115,195, -221,189,105,219,214, 19, 31, 79,206, 47,176,219,108,177,219,109, 32,165,196,124,121, 0,145,229,216,213, 21,148,146, 40,203, 18, - 92, 20, 56, 60, 58, 54, 62,240,153,129,173, 55,155, 13,160, 9, 23, 15, 30,160, 87,214,133,173,109,240,131, 31,252, 0,223,251, -193,127,134,139,123, 15, 48, 63, 56,194,225,193, 17,178, 44,195,114, 49,135,148, 38,132,165,151,102, 7,158,231, 57, 50, 33,176, -221,172,253,181,239,218, 14,109,219,162,156,149,104,234, 6,220, 34,104,198,147,130,161,174,107, 20, 22,158,111,219,206,250,180, -247,182,193, 81,195,128, 99,223, 75,125,111,226, 91,157, 36, 54, 92, 39, 58,249, 95,186, 66, 28, 20, 56,195, 35,155,101,217,112, -222, 41,107,173,155,101,152, 29, 44,177, 93,175, 33,101,191, 95,130,244, 30,242, 51,208,251,139,217, 52,209, 59,201,121, 83, 69, -208,176,215, 41,222,159, 51,101,225,118,223,246, 79,178,219,195, 53,174,131,218, 7,219, 90, 54,177,242,155, 66,145,200,251,154, -132,103,117, 8,153, 71, 69,124,202, 80,109,106, 21, 30, 16,156,167,134,104, 17, 50,145, 67,139,207,119, 98,250, 9,227, 46, 90, -158,197,113,218,251,111,222,123,132,113,104,132, 70,250,211,254,236, 52, 65,148, 35,140, 53,205, 3,162,199, 38, 73,105, 41, 25, - 45,117, 58, 27,138,190,142, 32, 20, 64, 71,140,247,136, 29,169,164, 47, 16, 38,113,105,152,118,132,101,173,107,165,236,164, 19, - 92,247,208,187,221, 17,235, 56, 27, 24,216,156,123,251, 84,157, 48, 67,141,108, 41,254, 24,131, 14,122, 85,243, 61,122,107,238, - 17,166,175, 65, 41,200,104,122,214,113,210, 26, 77,184, 43,141,180,171,218, 72, 60, 92,131,164, 39,158, 15,152,208, 48, 32, 33, - 83,134, 18, 70,173,163,240, 32, 87, 88,194,253,174,137,123,103, 35,178,151,123,102, 40, 40,182,254, 80, 11,228, 70,140, 11, 3, -141, 43, 13, 98, 2,109,181,139,158, 11,206,173, 77,173,213,243,242, 0, 97,113,207,163,249,158, 38,200,135, 49,242,102, 63,100, -145, 6,173,172, 70,214,238, 53,193, 56,218,190,179,159,231, 76,110,236,254,157, 27,252,156, 44, 31,130, 88,160, 34,177,132,168, - 97, 50,213,112,192, 54,247,214,212,236, 78,110,129, 11,250, 8,141,107, 28,115, 94, 7, 44,119, 71,104,147, 1, 11, 62,108,146, -180,150, 94, 63,222,118, 29, 68,240,182,215,161,149,166,253,184, 36, 13, 40, 5,174,153,181, 46, 2, 84,215, 1,185, 64,211,181, -232,165, 66,105,117,225,144, 54,247, 92, 43, 75,118, 50,141,142,118,182,175, 74,129,139,204,132,190, 88,181, 64,248,108,116, 93, - 64,254,180,168, 3, 99, 12,243,217, 2,171, 43,227, 0,167, 64,216,109,110,145,103, 57,110,111,174,192, 24,225,155,223,250, 46, -190,252,242, 51,212,187, 13,170,221, 26,103,103, 23,184, 94,221,128, 19,195,253, 7, 15,192, 52,225,250,242, 18, 93,215, 99, 75, -192,239,253,222,127,137,203,171, 43,252,234, 79,126,140,182,174,124,182,250,249,217, 25, 54,235, 45, 50,145, 97, 49, 63,132, 82, - 61,218,190,193,118,183, 70, 39, 13, 66,193, 57, 71,221,236, 32, 68, 6,185,149,216,237,118,145,202, 64, 89,247,196,210, 70,200, -138,172, 4,145, 33,192,113, 46,108, 67,106,163, 99, 25, 3,231, 4, 6, 99,117,220, 52, 13,202,178, 68,215,181,254,121,224, 60, -116, 88,132,255,187, 82, 20,104,214,205, 57,227, 26,219,197,124, 1,169, 58, 48,145, 65,245, 29,154,106,135,114,190,196,253, 71, -143,241,236,203,207,160, 85,111, 78, 7, 78,128,124,143,202,206,238, 32,196, 77,124,185,102,116,167, 82,105, 66, 93,182,231,231, -170, 96,144, 99,136,252,223,223,193,110, 31,168,103, 52, 34, 62,211,104, 77, 61,158,204,245, 62, 66, 57,238,176, 95,223,227, 20, -119,103, 45, 14,252, 75,248,193,241,217,143, 24,177,168,250,131, 16, 65, 1,251, 52,130, 81, 1,219, 99, 8, 66,123,254, 23,165, - 68,183,100, 87, 62,149, 85,206, 2,104,149,146,105, 49,206,250,198,222,102, 97, 12, 71, 98, 2,138,218, 95,236,163,239, 25,253, - 25, 91,190,134, 83,191,203,123, 54, 16,164, 5,163, 35, 79, 27,231, 38,100,246,143,156,177, 8,130,103,118,255,228, 14, 74, 95, -216,236, 77, 12,239,147,179,213,228, 66, 12, 28, 7,102,224,112, 22,117,144, 22,186,183,133,209, 59,159, 77, 48,241,117, 56,149, -167, 73, 72,129, 84, 16,251,210,235,166, 68, 10, 97, 75,148, 74,224,146,175,119,135,182,131,217,195,233, 91, 4,100, 63, 55,209, -185, 41,147, 77,240, 36, 24, 49, 27,146, 1, 40, 45,161,236, 52, 37,109,184, 74, 83,215,209, 78,155, 11, 14,165,164,119,220,139, -221,254,184,239,183, 6, 20,134,197, 22,146,204,106,194,181, 50,176, 57, 17,118,187, 30,109,111, 52,193,110,194, 20,194, 74,227, -152,117,158,243,134, 23, 44, 90, 61, 80,176,203,231,204, 56,157,153,245,194,216,206, 56,148, 28,166,239,147,148,135,228,138,165, -107, 24,124, 40,141, 45,246,161, 10,195,255,169,116,236,140,167,141,155, 28, 11,164,118,254,255,217,137,158, 33, 64,248,180,198, - 55,191,253,125,212, 77,131,182,218,161,109,154,192,167,223, 20, 26, 46, 24,242,188,244,207,101,111,175, 91,150,137,104, 26,117, -141, 71,150,101,144, 74, 98, 62,155, 89,175,117, 59,221, 75, 3,235,151,101,137,114, 86,226,250,250, 10, 7, 39, 39,104,171, 29, -120,150,227,248,244, 2, 55,215,111, 81,100, 5,230,203, 5,178, 60,195,174,222,225,254,197, 3,148, 69,129,123,231, 15,209,201, - 30, 39,103,231,200,242, 28,140, 9, 20,179, 12,159,254,226, 23,168,171, 45,218,174, 71,223,247,232,187, 22,235,245,218, 7,198, - 8,198,237,123, 93, 33, 23, 25,202,114,129, 60, 55,129, 45, 92, 48,236,182,117,196, 21,208, 90,163, 40, 10,219, 44,154,245, 78, -150,101,104,154, 26, 69,110,154,194,190,239, 60,130,224,222, 69,156,147, 93, 47, 49,243,188,250,233, 92,217,239, 79,126,165,163, - 53, 34,164, 50, 38,115,145, 71, 25,165, 82,222, 31,193, 17,207,164,148,152, 47,150,224, 60,195,102,187,217, 91, 89,167,214, 62, -251,184, 83,180,167, 82,239,247,112, 71, 68, 92,142,141,196,172,190, 92,179, 17,141,222,236,207,135,168,212,119,193,237,225, 96, - 18,231, 45, 4,110,112,193,174,159, 2,126, 80,234, 3, 61, 82,202, 76, 21,104,154,222,177,239,173,197,132, 49,185,156, 0,126, -120,114,254,163, 17, 54,207,104, 36,101,163,169, 23,249, 14,151,155,105, 41, 34,237,223, 25,236,115,236,185,163, 91,139,166,114, -208, 68,188, 36, 97,202, 8,102,172,117,166, 4, 74, 25,136, 90, 30,198, 6, 75,180,188,113, 7,197, 24,183, 16, 41,146,252,112, - 29,179,184, 35,137, 24,155,212,107, 50,206,237, 14, 71,219, 8, 74,225,119,221,220, 45,209,149, 2,105,155,103,174,131,146,104, - 15, 99,243, 38,102,254,205, 12,155, 10,229,120, 35,110,138,229, 32, 8,107,233,170, 38,108, 65, 89,146, 83, 76,201, 46, 41, 34, -147, 36,146,171,240,215,226, 26,224, 68, 80,206, 12,197,237,221, 45,105, 46,188,203, 10,202,202,164,156,131, 29,130,169,131,123, - 56,214,252, 94,240,202, 3,183,127,103,193,107, 10,139,187,224, 28, 66,112,180,109, 3,145,229,168,235, 10, 90, 42,244,210, 20, -245,222, 39,179, 89,229, 67,240, 59, 49,206,189, 46,221,100,116, 59, 82, 26,162, 32,151,240,154, 1, 10,204,238,215, 25, 35, 72, - 69,216,237,106,244,125,103, 66, 94, 0, 16,227,224,121,102,254,116,210, 60,231,203,157,172, 75,204,239,111, 29,227, 24,129, 11, -138,200,122,145,250, 84,235, 81,146,155,151,190,217, 34, 75, 1,129, 77, 43,229, 11,186, 59,240,116,210, 32,132, 77, 88,168,176, -243, 4,203,136, 89, 27,232, 63,165,246, 14,144,195,174,129,225,240,232, 8,219,237, 14,235,205, 6,135,135,135,168,171,106,216, -169, 91, 95,244, 89, 57, 67,150,229,144,210, 22, 78, 41,237,238, 88,249,103,192,185,229, 41,165, 32, 56,247,177,185,195,142,211, - 52, 63,187,122,103,158,119, 97,244,216, 77,215,225,228,232, 4,109,219, 99, 86,230, 56, 62, 57,193,118,187, 5,215, 10,223,250, -246,247,160,123,133, 39, 79,158,224,217,139,175,112,123,125,133,170,169,112,112,112, 4, 16,240,236,217,151,144, 82, 35,207, 50, -124,244,209,199, 56, 61, 63, 71, 81,206,208,119, 29,182,187,141,121,110, 73,217,255, 38, 28,158,156, 99, 62,159, 99,179, 89,129, - 67,162, 40,102, 56, 58, 58,130,148, 18, 77,219, 6, 73,136,198,225,206, 56,196,105,255, 92,215,117,131, 44, 51,153,245,125,215, -129,177, 33, 79, 64,203, 30,194,229, 13, 16, 67,219,118,152,205, 74, 51,201,107, 4,241,192, 3,219,125,152, 60,195, 65,198, 58, - 90, 70,142,124,218, 7,191, 48, 16,164,146, 56, 58, 62, 70, 83,213,232,155,198,153, 7, 14, 46,104, 52,232,148,137,104,188,210, -158, 82,148,197,210,166,253, 54,177,216, 19,217,188,111,140,100,202,242,193, 7, 66,220,164, 28,149,177,152, 8,103,205,189,220, -238, 60,156,206, 35,103,203,132,171, 53,170,155, 83, 68,185,196,228, 45,228,154, 77, 22,115,188, 95,241,247,111,171,131,211,179, - 31, 69, 12,219,176, 74,167,193, 43, 20, 76,194, 68,119, 94,210, 52,248,130,167,133, 64,235, 73,121, 25, 77,236,194, 49, 49,221, -179,232,115,104,136, 21,213,123,246,240,123,144, 6, 23,106,144, 62, 44,241,142,221,238, 94, 18,135,172, 84, 46,231,184, 35, 67, - 7, 25,194,193,161,132,136,197,108,122, 10, 11,231, 96, 85,234,244,221, 8, 28,238, 12, 43,149,188, 57,135,255,249, 44,216,237, - 19, 34, 98,150, 78,254, 12,119,188,166,128,104, 31, 67,171,167,200, 87,251,246,231,177,231,237, 72, 42,160,109,195,192,181,121, - 91,165,191, 35,139,220,133,201,187, 21,146,149, 1,165,156, 11, 95,240, 0, 8,235, 24, 38, 56,247,211,136, 39,173,121, 83,158, -177,149,171, 35,132,213, 77, 99,246,234, 93,103,166,117,165,209,245,210,236,120, 67,246, 57, 84,148,248,229,159, 21,198,108,202, -218,128, 38,112,235,244, 22,190,225,120,128, 42, 40, 16, 86,187,198,255, 76,119, 93,179, 60, 51,223,143, 15, 92, 0,145,112, 32, - 12, 18, 96,237, 92, 45,151,128,123, 66, 35,139, 44, 85, 67,121,103,170,238,208,209,186, 7,126, 39, 78,169, 92,212,161, 2,193, -231,196,251,116, 10,204,161, 98,115,167,116, 2,211, 90,131,180, 33, 76,178, 4,137,105,187, 6, 82,118,232,218, 6,117, 83, 15, -207,161,253,126,179, 89, 1,193, 51,228,121,230, 73,114,125,223,163, 44, 10,235,158,198,253,239, 65,201,238,221, 53,218,206,210, - 86,107,133,243,123, 15,209,118, 61,170,221,206,236,207, 57, 71,219,214,248,222,247,126,128,205,118,133,229,124, 97,242,219, 25, -199,111,126,255,183,208,171, 30,159,127,241, 37,218,110,135,166,239, 80,239, 54,216,109,183,104,154, 29,218,166,195,111,255,206, -239,227,209,227,199,216,108,183,184,122,251, 6, 85, 85,227,226,254, 61, 44, 23, 75,212, 85, 11, 70, 64, 83, 27, 24,188,151, 29, -170,174,198,209,241, 41,148, 52,175,165,170, 42, 8, 97, 76,136,156,102, 93, 67,163,239,122,204,102, 51,251,124, 91, 52, 39, 51, -166, 53,206, 35, 92,218,124,119,173, 53,114,193,130, 68, 63, 51,197,182,109,135,178, 44,237,231,105,191, 87,143,223,215,174,113, -140,217,227,206,179,129, 89,249,163,147,220,101,153, 93, 87,129,112,124,114,134,219,213, 53,180,148,113,200, 8,189, 7, 59, 94, -239,153, 7,205, 1,250, 30,251,243, 17, 86, 31, 89,186,134, 5, 61,130,207, 39,166,243,177,246,220,253, 28,158, 20,127, 54, 65, -200,139,147,211,166,134,214, 17, 73,155,176,119,176,221, 91,204,105,191,231,123, 52, 88, 18,131, 72,195, 86, 34, 95,220,176,227, -208,169,101,235,120, 63, 30, 90,172,142,100, 78, 58, 14,176, 8,171,230,190,226,171,239, 40,200, 49, 35, 61,230,201,208,132,109, -105,104,211, 26, 27,201,232,201,239,225,138,125,200,246,189, 11, 81, 72, 61,204,125,154, 89,224, 2, 27, 38,162,249, 46, 57, 72, -245,146,189,244, 25,230,195,141,100,113, 81, 13, 76, 70,144,228, 12,187,156,244,116,159, 30,237, 83,131,244, 45, 47, 56, 39, 54, - 72,144,166,236,115, 39, 99,101, 17, 9, 27,117,226, 26,231, 30,201, 65, 77,162, 67, 15, 64,131, 48,120,219,248,244,137, 50, 95, -111,238,135,246,211,151,135,197, 96,223,248, 65, 97, 68, 48,109,106,247,185, 97, 14, 64, 64, 12,148,210,100,171,103,150, 69, 44, -149, 49,106,209, 42,248,126,118, 90, 80, 50, 54,161,100,100,233,220, 52,172, 66, 34, 11, 90,199, 4,215,202,194,160,214,240,135, - 52,118,187, 14, 93,219, 89,251,207, 65,219,238, 38,127,223,105, 7,166, 63, 67, 49, 54, 86,151, 94,142,228, 32,103, 11,155,171, - 32, 11,222,175,169, 2,254,129, 39,151,185,105,196, 50,200, 41, 32,200,133, 82, 64, 66, 28,233, 26,217,130,234,152,180,170,149, - 49,137,145,210,172, 51,180,210, 94,145, 1,140,217,204,142, 63,161,164,180,199,173,194,172, 40, 80, 91, 50, 27,179,104,206,160, -188,224,246, 25, 37,143,136,132,107,153,112,154,242, 41,103,156, 35,207, 11,116, 93, 7,173,153,191, 79,215,111, 94, 91, 4,128, -161, 44,230,168,118, 59,124,243, 59,191,137,162,204, 48, 43, 74, 92,220,123,128, 34, 47,192, 4,199,235,203,183,120,249,242, 37, -242, 34,199, 98,126, 15,203,165,196,205,245, 21, 62,254,248, 41, 62,251,252, 87,184,119,112, 12, 46, 50,252,236, 47,255, 28,219, -237, 22, 93,111,246,213,155,245, 10, 34, 19,248,198, 55,190,137,175,191,254, 26, 39,231,103,120,240,232, 3,180, 77,135,183,151, - 47,176,190,189, 69,150,103,120,254,226, 57,230,101, 1,193, 5,142, 14, 15, 33,123,105,178, 8,200, 64,235,235,205, 6,139,249, -124,136, 5,214,176,110,115,141,109,100,249,128,204,233, 62, 56,123, 8, 74,153, 85, 68,223,247,254, 79,119, 13,184,111, 20,220, -253,102,126,104,112, 28, 5,179,127,215, 54,253,142, 44, 26,210, 66, 8,129,188, 40,204,127,103, 57, 30,124,240, 24,207,190,248, -220,112,128,180,122,111,250, 59,233,169,157,240,190, 64,150,113, 40, 86, 84,204,163,103,114,120,111, 82, 32,179,220, 71,134, 35, - 63,157,167,231,247, 29, 25,231, 33,185,120, 79, 90,232, 20,146, 60,165, 32, 11,255,190, 15,143,190,155, 88, 56,254, 90,126,112, -114,246,163,125,139,250,168,147,160,233,253, 56, 37,209,164,239, 5,195, 51, 54,250,218,187, 38,114, 80, 40, 55,160, 36,198, 78, - 71, 12,207,240,202, 78,105,207,199, 13, 65, 8,111, 82,162, 19, 31,175,206,167,225,122, 54, 49,237,107, 11,119,199,229, 44,108, -160, 28,148,163, 45,119,137,184,241,107, 31,116,199, 49,183, 64,143, 58, 73,211, 13, 79,197,112,166,242,165,148,163,224,237,115, -199,145, 71, 49,249, 45, 40,102, 58,153,204,185, 69, 14, 20,198, 46,127,142,119,170,105,108,240, 75, 73, 67,226,140, 94,210, 76, -128,112,251, 43,172, 7,128, 6,192, 44,147, 88, 74,233, 39,117, 36,114,150,208, 64,197,229, 95,187,143, 41,169,145,101, 57,148, -150,168,106,227, 86,102,178,171, 3,203, 88,206,193, 4, 55,144,116, 48,185,147, 37, 37,121,163,158,128,239, 17,146,208,220, 1, -231, 34, 65, 59,169,176,221,236, 76,193,179,254, 0,140, 49,100, 34, 3,103,194, 76, 75,218,152,211,184,239,193, 2, 23,192, 40, -233, 45, 40, 96, 41, 65, 52,181,188, 13,189,211,245, 8, 62, 31,154, 29,223,232, 37,154,220,112,138,247, 7,154, 50,155, 3,165, - 6,252,221,249,178, 59,167, 44, 21,154, 42, 57,242, 23,116,236, 38, 72,132,163,147, 19, 60,122,242, 20, 89, 49,195,205,205,181, -189, 62, 58,146,247, 21,249, 12, 89, 81,160,237, 91,211, 12, 6,102, 65,128, 49, 20,234,186, 14, 34,203,144, 89,230, 63,231,194, - 79,161,154, 52,202,249, 12, 25, 23,129,172, 75,130, 50,129,243,139, 11,156,157,156,226,230,205, 43,220,127,244, 33, 94,189,124, -142, 47,190,252, 28,143, 30,125,132,175,190,250, 12,235,219, 91,220,187,255, 16,207,159,127,141,237,250, 22,121, 89,224,234,234, - 45,154,122,135, 44,203,240,235,103, 95, 98,187, 89,163, 15, 60, 29,148, 86,232,186, 14,219,205, 26,178,239, 81, 87, 53, 46, 95, -189,196,229,171, 23,150, 79,166,113,123,125,131,197,204,104,217,133,200, 48,155,205, 48,159,207, 61,138,194, 5,135,224, 2,109, -215, 34, 19,153,247,188, 80,106,104, 62,157,179,164,227,224,176,196,162,212,192,238,230,138, 51,206, 34,215,198,212,121,145, 72, - 39,123,118,242,153,235,174,129,224, 54,160, 8, 68,224, 34,179,251,245, 5,186,174, 71,211,212,239, 62,255,157, 10, 78,239, 35, -209,209, 59,164,106,152,158,208, 39, 72, 92, 97,198,196,168,206, 36, 38,101, 70,119,206,162,235, 50,174, 33,137,230,156, 38,164, -206,137, 68,119,114,218,102,239, 95,208,211,169, 60, 93, 51,123,230,124,242, 51,162,162,126,215,120,143, 61, 5, 29,184,195, 59, -102,130,252, 22,238,201,177,143,161, 27, 22,105, 95,164, 88, 20,140,146,238,205,211,194, 27, 75,125,246,253, 38, 58,217,161,167, - 48, 75,156,101,205, 34, 79,238, 97,178, 15,175,155,246,140,113,251,250,248, 64,120, 34, 29,239,112,152,213,152, 7, 75,208, 96, -229, 49, 38, 73, 80, 48,169,132,111,190,208, 98, 55,218,243,164,247,102,116,125,199, 16, 17, 75,100, 78,161,225, 15, 23,194, 55, -100, 44,232,114, 83,199, 37,178,182,161, 58, 48,141,160,132,232, 65,119, 49, 56, 99,140,223,147,134,156,247, 57,207, 50, 20,121, -110, 52,236,153, 48, 76, 97,123, 15, 60,196, 62, 97, 23,107,164, 94,204, 70, 93,114,212, 77,141,174,239, 12,137, 74,193,203,203, -136, 8,228, 52,218,158,155, 16,134,182,132, 59, 74, 68,211,163,119,244,183, 81,186,142, 99,177,221, 25,249,154, 84, 50, 50, 61, -202,178,204,223, 47,198,200,203,250, 40, 49,124, 97,129, 3,156,151,209,241,216, 97,205,255,190, 9, 91, 61,154,116,162, 24,206, -187, 57, 45, 14,249,136,118,241,218,132,207,132, 16,121, 8,229,115,139, 84,132,150,181,240,251,246, 36,201,143,140, 15, 57, 0, -220, 92,189, 49,240,187,178, 48,177,221,206, 43,109,216,226, 69, 81, 64, 41,105,160,228, 96,101,230,124,210, 25, 99, 40,139, 2, - 74, 25,109,183, 6, 48,159,207, 33, 56,199,225,209, 41, 46,238, 61,196,118,179,134,146, 18,156, 51,100, 89,137,111,127,251, 55, -241,221,239,124, 15,191,243,195,223,134,132,198,243, 23, 47,113,120,124, 2, 45, 21,170,166, 70,145,151, 56, 58, 57,193,179,175, -190, 68,211, 52,184,184,247, 8,125,223, 99,117,115, 13,165, 20,170,170,178,247,201, 76,204, 89,102, 34, 87,101,111,136,106, 82, - 41,131,204,200, 14,121, 38, 80,206,102,104,234, 6, 74,105,156,159, 95, 0, 96,104,154, 26, 77, 91,163,174,107,228,121,142,195, -195, 67, 75, 90, 52, 83,178, 16,194,175,231, 66, 25,229, 32,107, 51,207, 84,102,159,215, 20,165, 52, 83,187,142,252, 62,220,179, - 25,106,217, 29,239,103,112,153, 51,223,103,240,252, 7, 56, 23, 38, 40,199,154,102, 49, 34,200,190,199,241,201, 41,214, 55, 55, -145,137,210, 94,197,147,222, 83, 35,222,123,135, 78, 19, 75, 94,187,203, 35,101,207, 97,134,208,213,141,238,144,190, 41,119,102, -167,239,151, 9, 3,176, 17, 73, 46,145,168, 17, 38, 6,200,116,103,158,202,173, 39,180,235,123,213, 43, 83,255,178,152, 4, 76, - 68, 16, 81,184,202,158, 27, 17,122,174,179, 4,138,165, 68, 78,133, 64, 78, 52,154, 14,247, 65, 42,251, 18,211,136, 38,183,116, -174,131, 28, 92,188,198, 5,123,122, 45, 67, 73,114, 14, 75,215,192, 73,177,199,176,135,178, 81,164, 20,165,102, 13, 18, 20,231, -149,174,153,221,135,135, 97, 44, 86,162, 4, 2, 36, 20,200, 78,157,222,183,204,198, 90,105, 70, 17, 34, 98,136, 51,218, 79, 61, - 67,174,188,158, 76,150, 75,119,233, 20,202, 69, 44, 12,158, 58,173,165, 7,124,104,132,162,137, 34,146,156,146, 50,122,160, 20, - 57,127,248,129,152, 5, 31, 56, 50,193,214,156,224, 81, 64, 15,238,114,148,192,114,166,139,101,126,106,229,156, 3, 82, 66, 56, - 7, 44,198,192, 68, 6,146,202,222, 27, 62, 92,150,132,176, 23,122,223, 19, 51, 41, 96,142,136,228,253,225, 45, 91, 24, 48, 19, - 49,131, 49,166, 97, 19,207,100, 40,173, 35, 11,111, 83, 72, 46,115, 83, 44, 49,180,178, 31,228,137,246, 23,245,218,107, 27,228, -163,149,130,114,175,209, 78,252, 74,107,240,208,224,201, 91,219, 14,209,183,238,218,132,192,103,104, 36,163,148,138,248, 42, 10, -227,213, 76,186,194, 24,120,108,195,186,198,233,215,157,219, 30, 33, 14,212,240,193, 47, 62, 10,213,192,235,176,107, 22,218,179, - 79, 19,156,225,230,250, 45,170,202,216,161, 54,114, 55,152,199,216,139, 41,161,193, 69,102,138,157, 53, 3, 50, 81,172, 6,246, - 55, 90,238,194,174,188,128, 76,100,200,139, 18,189,214, 88, 28, 28,224,252,222, 35, 92,189,126, 5, 34,142,229,193, 1,154,106, -135,243,139, 11,124,255, 59,223,197,195,135, 31,224,245,245, 37,126,250, 87, 63,195,217,233, 25,126,254,151, 63,193,253, 7, 15, -145,151, 37, 62,253,197,207, 33,242, 18,128,194,147,167, 31,227,179, 79,127,137,140, 11, 44,151, 75,116, 93,139,123,247, 30, 64, - 74,141,217, 44,199,183,190,243, 93, 84, 85,141,215,151,175, 64, 0, 46, 95,191,134,148, 61,170,170,198,237,141,217,181, 83,219, - 34, 19, 70,119,127,187, 90, 65, 43,133,197,124,134,237,174, 66,223,118,200,139, 18,162, 44, 49, 91, 46,145,229, 57,218,186, 70, - 85,213,158, 55,225,154,105, 97, 27,193,182,109, 33,180,225, 24,212, 93,143, 69, 89, 64,246,157,157,168,165, 55, 8, 50, 43, 33, -229,215, 20,206,134, 90, 74, 71,130,139,207, 89,135,220, 56,158,138,227, 84, 24, 93,188, 68,193, 51,144, 86,208, 82, 67,228, 51, -116,125,135, 71, 31, 62,198,151,159,127,102, 48, 26,139, 8, 48, 61, 78,114, 11,159, 51,114,174,152,239,187, 63, 31,229,157, 19, - 64,189, 39,232,133,114,181,247,147,170,185, 9, 29, 19,239,113,242,211,178, 14, 73,194,152,150,169,209,132,207,187, 86, 99, 15, -247,187, 88,239,239, 34,130,135, 69, 52,230,167,197,239,105,177,111, 15,128, 4,178, 11,127,213,140, 49, 79, 0, 0, 32, 0, 73, - 68, 65, 84,113,186, 75, 79, 62,185,248, 72, 10,255, 29,251,146,184,149,208,251,218,129, 61, 63,134,238,182, 4, 30,117,123, 58, -136, 66,213,145,139, 82,168,115,245, 69,219, 23, 43, 4, 50,144, 32,157,206,193, 52, 92,128,217, 83, 73,133,147, 20, 17, 4, 19, -144, 48,222,247, 44, 96,201,187,106,230, 33, 79,101,205, 88,216,224, 86,228,244,189,122,106,250, 66,204,126,247,226,186,192,249, - 73, 39, 23, 45,204, 68,143, 82,236, 16, 55, 7,209,254,116,194,119,219, 79,107, 73,118,249, 36,114,147,236,109,223,165,110,117, -150,177, 74,107,200,214, 28, 88, 93,223,225, 48, 59,180, 5,203,132,185,104, 57,200,177,252, 33, 24,144, 58,221, 84,220,219, 34, -221,182,173, 47, 84,209,253,181, 47,189,200,115, 52,117, 19,144, 48,105,148,167,156, 50,103,125,247,239,174,171,225, 17,163,109, -141,140,209, 73,176,132,103,236, 51,111,166,226,200,164,238,107,133, 83, 63,104, 13, 30,216, 15,179,137,195, 73, 77,216,192, 14, -235,160,241,231, 18, 38, 66,146, 38, 50,211,149, 77,146, 35,198,160,251,126, 72, 62,211,220,239,210,157,126,220,203,214,240,119, -249, 71, 27,217,153, 77, 97,156,149, 37,250,166, 49,251, 99, 43, 33,244, 36, 69,206, 44, 81, 43, 67, 39,181, 85, 31,152,255,159, -231, 57,202,178,196,106,181,194,114,121, 96, 36, 99, 82,225,248,232, 16,121, 94, 96,179,190,193,174,217,225,163,167, 79,113,249, -234, 5, 30,125,240,109,124,242,141, 79,144,207, 75,236,154, 26,109,221,131,115,129, 47,190,250, 12,139,131, 67,172,119, 91,108, - 95,189,196, 71, 79,191,137, 87, 47,159,161,239, 52, 94, 60,123,134, 15, 31,127,140,106,187, 69, 91, 87,248,214,183,190,131,235, -171, 55,184,184,120,136,162, 44,240,239,255,237, 31, 97,187,219,130, 52,179,196, 75,137,194, 58,192, 29, 44, 14,160,230,166, 25, -187,185,189, 70,150, 27,221,253,205,122,141,182,169,204,107,206, 74,236,182, 27,244, 74,161, 40, 11, 0,240,198, 59, 93,103,204, -107,220, 61,170,235, 26,140,115, 20, 69, 1,228, 28,155,205, 6, 26, 64,219,181,166,216,106, 13, 97, 17, 16, 35,235,211,201,116, -201, 2,104, 61, 14,163,242,145,211,100, 72,162,158,228,169, 92,234,160,177, 85,102,172, 48,141,129,146, 0, 24,202,217, 18,167, -103, 23,184,122,123, 9,130, 10,220, 49,105,130, 83,165,173, 19, 38,253,221,200,112,233,122,208,187, 94, 82, 84,240,217,132, 57, -217,180, 51, 92,186, 63, 31,199,163, 82, 66,146,187, 75,162, 54, 34, 98,179,233,143,223, 41,247,157, 74, 77, 13,148, 4,163,194, -174,227, 36, 84, 34, 74,243,212,199,209,118, 72,224,219,144,128, 20,217,173,141, 71,230,201,137,112,242,162,131, 38,166,237,125, -250,120, 29,252, 88,154, 32, 96, 83, 80,140,105, 4,215, 15,147, 56, 2,137, 3,162,239, 57,192,218,129,101, 43,120,240, 43, 42, -251, 76, 49, 59,177,194, 23,251, 65,175,109, 59, 64, 75, 56,209, 54,247,216,115, 5,172,252, 68, 5, 41, 98, 8,152,241,196, 45, - 89,207, 78,133, 74,171, 36, 61,111,252,208, 58,210, 80, 88, 52, 21, 27, 18,212,248, 68, 10,151,198,216, 19,223,241, 24, 28,156, - 22,154,123, 36, 29, 79,140, 30,220,209,208, 77,253,195,172,243,156,210,241,155,140,108,222,179,249,156,216, 72,200,201,189,164, - 37,161,229, 89,134, 94, 3,157,108,172, 4,141, 71,186,108, 55,117,112, 33,192,243, 18, 77,183, 53,250,240,228,160, 73,205,127, -138, 60, 71, 93, 85, 65, 72,143,131,189,245, 52,143,196,198,147,107,109,140,106,204,202, 6,168, 26, 9,169, 53, 58, 27,161, 41, - 4,183,123, 84, 97,139,170,246,208, 42,231,220, 71,164,166, 80,161,135,231, 83,216, 59,129,186,157,158, 91, 39,239,181, 80,249, - 48, 32, 45,241,212,228,139,121, 64,188,235,165,178,150, 90,214,230,216, 60,145,131, 73, 13,140, 87,128,180,164, 61,103, 98, 35, -236,245,239,180, 33, 66,154, 9,130,199,206,149,154,176, 91,111,113,120,120,128, 89,177, 4,192,193,136, 27, 52,139,180,157, 36, -201,172, 64,236, 61, 40,139, 18,125,111, 12, 87,242,178,128,182,145,164, 90,195,232,167,139, 12,154, 8,101, 86,128, 49,142, 34, - 47,176,217,118,248,228,147,111,227,230,230, 6, 31,124,252, 9, 46, 46, 30, 96,219,180,144,175,223, 96, 87,125,133, 55,151,175, -209, 52, 53, 22,243, 37,174,174,174, 0, 45,241,228,201,199,248,244, 87,191,194,201,241, 49,116,217, 67,105,133,235,171,107,204, -115,142, 63,252,195, 63, 68,175,129,229,209, 33,174,175,175, 33, 50,134, 31,254,240,119, 33,149,198,122,187, 70, 91, 55,120,249, -226,107,188,189,124,137,251, 15,159, 64,100, 2,178,107,240,242,197, 11,204,231,115, 20, 69, 97,188,230,149,198,110,183, 69, 81, -228,232,123,227, 34,135,106, 7, 82, 10, 93,215,162, 44, 75, 16, 49,148,165, 97,250, 23, 69,129,166,105, 7,226, 27, 8, 26, 28, -179,249, 33,170,106, 13,169, 20, 4, 35, 59,133, 19,102,179,210, 6,215,192, 62, 59,202,163, 85,240,247, 80, 38, 67,151, 26,189, - 55,220,255, 51, 14,121, 38,201,173,105, 26, 20, 69,129,190,169,144,149, 37,218,182,194,253,135, 15,177,219,110,208,212, 59, 67, -112, 37,107,150, 21, 78,146,161,133,230,251,254,163,156,213,182,134,182,175,215,215, 88, 45,246, 15,136,137, 82, 75, 17,139,216, - 77, 41,172, 31,161,197,228, 56,243,137,234,231,174,233,156,146, 36, 82, 96,111, 24, 11,222,131, 16, 24, 21,122, 54, 85, 83, 3, - 11,241,192,176, 70, 68,211, 82, 64, 40,162,233, 48,240,161,128, 0,163, 68,180,253,123, 20,237,191,134,209,187,139,245, 93,187, - 21, 31,247,137,105,166,123,186, 23, 15,247,236,161, 33, 76, 92,204, 7, 75, 80, 15, 63, 59,198, 63,198, 70, 41,174,120, 18, 89, -243, 13, 23,134, 16,144,216,164,223, 95,179,129,113, 79,206,232, 69, 15, 62,240,140, 44,115,116,216,119,133,187,121, 36, 62,247, - 44,201,188, 14,187,232,176, 33, 11, 93,192, 34,147,152,160, 8,176, 64,110,165,147,189,105,154, 45,235, 24,210, 33, 33, 76, 79, - 76,118,233, 4, 62,154,198,131,105,157,238, 92,176, 99, 52, 97,102,153, 8,224, 67,211, 24, 9, 46,192,114,160,107, 13, 35, 24, -154, 91,242, 96,252,124, 25,226,212, 96,192, 81,219,180, 44,247,175,148,210, 67,149, 3,153, 42,145, 36,178, 97,215,155,190, 47, -132,117,166, 51, 77,132,217,135, 74,197, 12,180,106,179,174, 89,162, 55,215,208, 17,107,219,175,161, 70,207,168,246,134, 32, 58, - 36,190,233, 33, 89, 43, 92,203,176,224,153,149,110,154, 14,166,116, 4,178, 55, 55, 93,171,132, 60,231, 53,236,246,181, 43,255, - 26,116,148,142, 16, 21,128,224,217,116, 44,106,195,186,222,127, 95,165,146,144,189, 68, 49,159, 97,189,222, 68, 33, 67, 14, 9, -235,237,228,158, 9,195,159,224,214,217,207,216,204,154, 67,190,218,109,113,120,122, 6,165,140, 49,205,209,209,153,221,111,119, - 88, 46, 15,241,209,147,167, 56, 62, 93,163,235,141,204,235,211, 95,126,142,155,171, 27,220,127,112, 31,111,175,175,176,217,220, - 58, 33, 8,126,243,251,255, 57,222, 94,189,197,227,199, 31,225,217,175,191, 64,223,213, 88, 46, 15,113,239,252, 12,143, 63,126, -138, 95,254,234, 51,172,111,111,176, 94,173,240,141,223,248, 54, 62,120,252, 20,255,254,223,253, 27,236,182, 43, 72,169, 81, 55, - 53, 4, 19, 56, 57,191,103,147,214,182,144, 74,225,225, 7,143,113,115,125,141,203,203, 55,200,139, 28,167,167,103, 88,109,214, -200,139, 25,182,187,107, 64,183, 56, 56, 60,128,148, 6, 21,105,154, 54,178,253,237,123,133,197,124,129,186,169,131, 24, 92, 83, -136,235,202, 54,226,202,144, 71,165,148,102,231, 31,165, 59, 18,122,203,208,119,207,184,121,134, 28,121,211, 76,226,206, 2,214, -105,217,221, 51,104, 66,158,164, 47,128,189,141,106,133,214, 80,170, 67,215,103,120,244,209,199,248,226,211, 95, 66,247,157, 95, - 99,106,167, 20,121,143,120,183,105, 13,122,112,222,145,158, 38, 60, 79, 21,244,119, 16,239, 48, 49,133, 19,139, 17, 77, 29, 22, -103,218, 3,161,211,120,194,158,246, 92,121,127, 6,251,212, 36, 79, 97, 78,185,158,102,214, 67, 3,252,240,244,252, 71,161,230, -219, 27,139,220, 49,121,165,147,202, 84, 64, 75,234, 22,151,222,130,129,160, 65,193,159, 52, 42,208,161,219, 82,202, 64, 15, 9, -110, 41, 65,110, 26,206, 97, 35, 54,101,114,201, 2,216,214, 62, 72,204,146,150,136, 69,102, 32,196, 24, 52, 99,150,124, 73,193, - 3, 96, 11, 71,152,101,231,246,145,142,140,226, 92,230, 8, 67,204,228,196, 4, 78,201,132,229, 93,186,130,195, 92,133, 26,227, -196,139,156, 5,206, 96,169,226, 32,109, 14,116,224,165,237,165,124,193,228, 22,113, 37,180,158, 76,200, 75,163,110,217,158, 28, -251,161, 8, 12,201,194, 58,105, 96,117,248, 6,177, 79,178, 97, 66,231, 38,220,162, 40, 81,100, 5,178, 44, 3, 23, 2, 77,219, -153,206,218, 19, 87,116, 68,148, 51, 83, 48, 60, 51,189, 11,224,119,165, 52,100,111,139,153,141, 51, 92, 28, 44,209,212,181,217, -243, 51, 22,121, 14,184,103,128, 5,239, 21,103,244, 3, 39,129, 4,208,245, 10, 85,211, 66,217,245, 14, 23,166,225, 16,118,231, - 25,133,208,164,241,194, 4,112,102,208, 33,199,110, 54, 58,254,144,140, 55,200,233,134,208,142, 97, 31,238, 44,136,145, 72,238, -194,132,183,176, 32,179,196, 88,200,199,112,170, 4,161, 97,166,248,249, 68, 56, 70,241,234, 39, 81, 32, 24,238, 66,208,160, 57, - 18,165,189,195,173,236,193,109,152,137,236,100,188,246, 2,176, 88, 46,176, 56, 56, 52, 40,136,205, 3, 31,236,169, 9,170,239, -160, 52, 48,155,205, 33, 50,225, 11, 29, 49, 32,159,205,241,228,201, 83, 60,124,248, 1,218,182,198,102,181,194, 23,159,127,138, -186,222,161,218,237,176, 94,175, 80,111, 87, 56,191,255, 16,213,118,135,255,230,191,253,151,120,254,252, 5,158,125,245, 43,180, -157,196,201,201, 25,170,106, 7, 48,142,217,236, 0,175, 94,190,192,229,171, 95,227,224,224, 16, 15, 63,124, 2,158,113,124,254, -217,167,184,186,124,133,170,110,209,182, 29,250,182,133,108, 77, 65,222,236,118, 88, 93, 95,162,218, 85,104,219, 22, 93,215, 66, - 8, 35,183,219,238, 54, 96, 92,160,110, 27,156,158, 28,163,222,109, 49,155,205,208,117, 18,125, 47,189, 51, 28, 99, 12, 76, 8, -212,117, 13, 64,121,191, 6,231, 30,103,130,119,200, 64,237,106, 96, 64, 25,115, 26,147,182,232,146,216,204,219, 87, 97, 58, 15, -139, 70, 43, 79,135, 84, 57,210,156,121, 59,235,200, 74, 91, 8,142, 76,100,232,101,143,114, 62, 7, 35,142,237,102, 29, 16,100, -222,175,152,239,133,221,157,165, 43, 11,135, 50, 30, 39,153,221, 81,208,149,149, 67,234,119,144,222, 88,164,102, 97,254, 64, 14, - 25,235,227,159,133,145,133,242,144,187,129,253,186,114, 26, 7,184,120,230,254,132,251, 94, 88,248,137,238,182,139, 21,225, 27, - 80,167, 4,163,228,239,211, 68, 3,120,178, 14, 38,164, 77,123,181, 13, 9,227, 60,157, 52, 99,143, 93,218,243, 61, 18, 82, 3, -197, 46, 87,225, 36,158,118,119,131,246,151, 70,123,200, 48, 29, 77, 59, 36, 93,141, 39, 18, 29, 26,224, 4,172,201,240,230,144, - 66,160,125,215,158, 73,239, 39,126,198, 34,219, 84, 55, 5, 15, 59, 44,150, 40, 63,130,107,100, 39,150,208, 11,221,201,139, 66, -195,144,180, 0,187, 98, 70,193, 78,152, 7, 19,150,147, 39, 69,211,126,240,185,225,115,146,134,190,224, 61,228,141, 78, 91, 61, -230,103,198,126,225,227,129, 88,163,239,173, 68,172,235,112,126,122,142,182,235,144, 9,142,114, 86,160,171, 91,223, 40, 17,153, -130,230, 34, 83, 25, 49, 27, 30,162, 7,148, 73,202,100,213, 52,152,239, 48, 62,164,230,141,237,102,181,159,172, 29,178,213, 75, -105,118,208,118, 53, 67, 32, 84,117,107,137,126,106, 72,229,179, 80,117, 56, 37,167, 13, 25,119,114, 70,144,113,224,115,141,155, -245, 22,119,207,137,187,135,142, 80,151,250,220,147,115, 38,180,247,197, 21, 3,173,116, 76,254, 9,137,119, 1,119, 34, 92,207, -184,132, 58,101,237, 86,195,105,199,209, 54, 34,178,158,189,199, 78,191,110,244,226, 20, 92,103,219, 68,218, 70,171,239, 58,211, -176, 53,173, 13,138,209,126,245, 35, 4,183,238,108,218,114, 35,204, 78,122,179,222,224,224,240, 0,175,111,111,209,182, 45,142, - 79,207, 80,148, 37,178, 44,195,172, 92,128,103, 57, 30,220,127,132,229,242, 0,159,127,241, 57, 78, 78,142,240,252,217, 87, 88, -175,111,177,221,110,209,214,181,105,214, 5, 71, 85,213,134,124,215, 54,168,234, 45,186, 94,225,224, 56,199,151, 95,125,142,167, - 31,125,140,245,118,141,103,207, 62,195,193,108,129, 31,254,238,239,227,203,207,126,133, 79,127,249, 11,228, 57,199, 71, 79, 62, -194, 15,254,187,127,142,203,171, 27, 60,123,254, 28,111, 95,191,196,213,155,215, 32,198, 49, 43, 50,148,121,134,203,203, 87,224, -125,142,217,108,142,237,118,131,186, 94, 97,177, 88, 32, 43, 75,244,125,143,174,235,205, 62,127,189,133, 16, 28,189,148, 40,242, -194, 56,194,161,195,188, 44,177, 56, 88,162,109, 91,212, 85,133,121, 89,154,169,219, 54,111, 89,158,163,148,115,244,109, 13,217, - 53, 16, 25,247,193, 48, 6, 98,143,195,166, 6, 30,145,178, 82, 57,237, 3,122,194, 65, 73,135, 13,171,125, 34, 6,116, 72, 24, - 20,165,105, 13,145,145,128,182,174,112,126,113,129,221,118,131,205,234,202,191,147,245,123,144, 45, 70, 5, 93,177,164,234, 7, - 77,130,166,233, 61,117,146,121, 30, 84,138, 9,171,111,154,248,185, 20,237,178, 71,217,230,216, 3,197, 7,251,115, 29, 16,185, -167, 19, 65,131,172,139, 4,174,159, 84,157, 77,145,229,244,126,146,157, 24, 77, 79, 83,112,251,158,105,125,116, 28,223,105,190, - 79,239,177,114,213,241, 65, 49, 42,248,227,221,120,184, 55,119,255, 63,252, 90, 31, 41, 59, 97, 30,147,166,173,133,236,119,193, - 5, 56,152,103,238,146, 32,111,206, 48,116, 77,131,140,204, 28,148,230, 86, 49,123, 88, 17,105,104, 62, 28, 80,238, 48, 84, 42, -112,111,211,193,193, 14,179, 63,100, 68, 32, 59, 29,133,106,113,157,168, 4,148, 53, 20,145,206,209, 73, 7, 71,176,243,140, 79, - 73, 81,201,122, 37,156,218, 85, 32,223, 74, 27,138, 20,137,241, 16, 62, 99, 17,131,124,239,157,143,204, 75, 2,210, 12, 5, 67, -123, 40,197,137,210,190,134,103,180,235, 59,128, 12, 89, 78, 91, 79,237, 94, 26, 27,221, 70, 85, 0, 6,255,122,183, 38,113,215, - 67,106,233, 15,175,168, 89,210,209, 31,182,176, 26,185,152,212, 26, 44,244, 60, 15,174,103,188, 6,209,208,150, 59, 65, 4, 52, -173, 68,215,246,131, 79,187, 45,136,112, 69, 59, 40,198, 81, 74,158,253, 56,201, 33, 94,117,216,131, 14, 42, 11, 36,196,198, 80, -153, 18, 50,222,117,128,188,184,247,131, 70,162, 93, 15,155,139,148, 89,107,111, 78,184,242,136,155, 84,199,221,128,121,102, 17, -172,180, 44, 12, 44,132, 89,155,212,117, 27,182,213,254,245,207,178, 28,139,197, 2,203,197, 1,218,182, 69,223, 73, 47,197,202, - 50, 97,221,246, 56,180, 38,155,212, 87, 66, 91,131,153,195,131, 3,124, 85, 87,144,125,135,227,163, 35,176,172,196,209,209, 33, -180, 38,156,157, 26,159,246,213,122,133,195,195, 3,172, 86,183,184,185,185, 66,223,182,128,236, 76, 1,212,132,227,227, 19, 84, -171, 91, 92,124,248, 24, 63,253,201, 95,224,205,155, 75, 20,162,192,237,205, 21,150,101,129, 23, 47,158,161,239, 58,124,240,193, - 19,156, 93, 92,224, 39,127,241, 31, 80,228, 5,238,221,127,128, 15, 31,126,128,167,159, 60,197,143,255,244, 79,241,226,249, 51, -212, 85,133,147,147, 99, 48,254, 0,183, 55, 55,168,219, 22,140, 51, 92, 92, 60,192,219,183,111, 81, 87, 21,178, 76, 96, 86,150, -216,108, 54, 88, 40,137,186,174,192,185,192,233,217, 57, 4, 23,168,155, 26, 76, 41, 91,112, 51, 48, 98,216,109,182, 88, 44,140, -111, 60,183,201,115, 69,145, 3, 61,208,119,198, 96, 70, 73, 5,104, 9,217,183,254,172,114,190,229,161, 67, 28, 66, 78,132,134, - 53,235, 97,163, 20,198,208, 2,216,160, 93, 44, 88,207, 40,155,225,110, 36,162,117, 93,161, 40, 74,227,150,152, 75, 60,120,244, - 1,190,172,119,232,154,198, 75,112,226, 18, 67, 19,195,153, 43,216,147,159, 50, 76,252,154, 38,225,118, 36,131,165,222,155,156, - 54, 17,165,237, 9,200, 52, 9,151, 71,133, 53, 41,164,222,151, 93,199,179, 73, 10,167,199,142, 29, 52, 73,142,123, 39, 83, 62, -216,177,143, 67,199, 0, 32, 78,135,223, 11,179,143,244,227,225, 93,215,119,109, 74, 82,223,245, 49,196,158,202, 8,166, 36,236, -169,117,107,170, 83, 28, 72,110, 46, 65, 43, 14,163,143,244,131,140,121, 43,195, 48, 75, 56, 12, 4,225, 86, 2,162,148,134,150, - 10, 74, 26,215, 49,169,205,161,109, 50,194, 13,179,220,202, 35, 61,233,139,113,150,164,180,169,200,155,124, 50,223,218,122, 59, -103,153,201,182,230, 66,128,229, 25,152,224,113,104, 1, 13,242, 10,231,221,237,140, 83,220,223, 83,109, 48, 33,177, 14,117, 5, - 9,129,161,202,132, 91,146,123, 77,238, 64,118,111,110,135, 2, 80, 96,199,250,110,181, 1,198,132,203, 64, 99,175, 39, 96, 45, -166, 77, 68,107,200,193, 8, 85, 4,238,117,138, 76,152, 72, 79,235,101,175,116,143, 78,182,222,196,195,212, 91,211,176,116,178, -183,188, 17,138,246,233, 9,236,228,227, 88, 41,240, 64, 15, 97,119, 55,249,134, 25,226,156,152,245,207, 48,175,119, 87,153, 29, -191,146, 61, 24,231, 38,107, 27,132,140,241,248,103, 38, 72,145, 51,203, 33, 54,236, 66,163,108,248,224,158,177,240,153, 14,155, - 42, 26,163, 29, 94, 65,161, 38,226,141, 19,195,153,248,185,176, 97, 30, 28,230, 65, 39, 53,161,124, 80, 32,102, 62,135,241, 1, -101, 11,249, 57,153, 16,118,218,211, 96, 96,224,246,223, 76, 8,240, 76, 32,207, 75, 40,237, 26, 0,242,208, 62,227, 70,181, 32, - 68,102,220,253, 52, 89,203,124, 66,145, 23, 40,178,220, 35, 44,151,151,151,214, 14,150,225,225,195, 71,200,178, 12,111,223,190, -193,131,139,123,224,140,240, 87,255,233, 39,168,183, 27, 52, 77,141, 60,203, 76, 78,185,236,209,245, 18,229,193, 17,214, 87, 43, -180,178,193,119,190,247, 3, 92,111, 46,145,137, 25, 78,239, 61, 2,207, 4,206,239, 61,192,213,213, 27,124,250, 55, 63,199,111, -126,255,135, 56,191,247, 0,187,205, 26, 71,103,199,248,227, 31,255, 9,126,253,229, 23,216,109, 54,104,155, 6, 47,158, 63,199, -110,183, 1, 99,192,201,209, 17, 72, 1, 47, 95,188, 48,239,239, 44, 67,211, 26, 36, 44,207, 77, 14,251,241,201, 25,202,197, 18, -117,219, 98,181,190, 69,145,231, 38, 98, 24,129,239,132, 6, 54,171, 53,118,235,173,245,191,239,176,217,172,140,162, 70,112, 40, -173, 81,206, 74,136, 34, 3,101,194, 36, 48, 50, 30,104,204,249, 16, 66, 68,176,132,207,129, 20,103,138,188,142,206,224,176,176, -187, 65,100, 56,179,184,111, 54,187,174, 67,215, 52,232,186, 22,128, 70, 93,237,144,231, 57,206,239, 61,244,242,221, 81,182,184, - 38, 48, 48,123, 46, 82,252, 30,116,150,175,246,121, 27,158, 85,243,113,194,126,184,221, 49,219,149, 37, 66, 59,207,255, 41,226, -105,104,173,173, 3, 51,153, 8,110, 79, 77,100,246, 20,244, 1,197, 29, 38,248,116,204,137,166,113, 26,199,176,134, 63,239,174, - 0, 23,208,190,243,149,130, 73,125,212,153,211,164,158, 24,137,119, 56, 35,122, 7,131, 93,223, 9,196, 18,253, 93,100,104,233, -238,229, 93, 50,182, 52,231, 60,181, 58, 37,255,166,209, 86, 26, 49, 88,109, 38, 41, 67, 70,164, 97,204, 77,220,132,167, 52, 72, -233,128, 96,102, 73,112, 74, 25,215, 44, 7,169,219,212, 59, 21, 76,121,110,210, 98,193,127,235, 32,242, 20, 73,212,172,251, 30, - 20,238,190,131, 73, 51,132,195, 93, 71, 56, 72, 61,134, 66,232,138,134, 14, 52,199,202,198,119,186, 98,226,146,195,100, 96, 36, - 17,122,159,135,169, 88, 33,116,173,247, 24,154,220,133,219,232,176,152, 76,124, 47, 61,129,219,185, 9,176,235, 58,228, 69,129, - 92,100, 88,173,111,208,182, 77,148,199,174,237, 61,210,164,193, 56, 67,215,117, 62, 6,215,235, 77,211,213, 82,112,223,153,211, -172, 7,207,205,192, 29, 12, 92,205,220,125, 52, 10, 24,255,255,186, 78,250, 66,204,172, 30,151, 52, 89,210,151,137, 34,117, 59, -245,144,116, 72,140,129, 41, 53,236,226, 52,130,189,249,112,221,125, 54,186,107,118, 18,126, 68, 24,176,163,177,199, 88, 38,120, -198, 66, 40, 95, 37,235,151,208, 86,116,114, 50, 8,154, 62, 34, 35, 63, 83, 82,249,215,196,108,243, 89,150,133, 9, 81,105, 59, -111,195,124,120,120,128,174,239, 81,237, 54,102,130, 38,101, 56, 7, 18,152,205,231,230, 30,219, 34, 39,165,196,172, 44,177,221, -110, 0,173,113,122,118,134,237,110,235, 95,103,215,247, 88, 46,143,112,118,126,134,166,105,113,123,115,133,188,200,241,179,191, -254, 41,222,188,121,139,213,234, 10,189,148, 56, 57, 57, 70,181,221,128, 56,199, 98,126, 96, 26,106, 33,160,168,195,245,229, 13, -126,126,253, 23, 40,242, 5,136, 41,124,253,249,223, 66,100, 28,111,171, 6,208, 18, 39,199, 39,144,125,143,179,227, 19,124,243, - 27, 79,113,122,124,138,135, 15, 30, 96,121,120, 8,173, 52, 46, 95,191,192,151, 95,124,110, 86, 10, 82,162,186,185, 65,223,247, - 80, 74,163,218,109,144, 23, 11, 60,254,232, 35, 92, 95, 95, 35,207, 75,172,183, 43, 52, 77,133,243,179, 7,216,236, 54, 56, 61, - 61, 69, 93, 25, 83,164,249,108,110, 81, 51,179,122,200,243, 12, 66, 8,180,125,135,182,237,208, 84, 91,200,190,195,108,118,224, -159, 99,206, 5,150,203, 3,108, 86, 55,126,186, 22, 66, 24, 52, 79, 15,254, 8,125,239, 86,143,189,103,203, 15,239,111,151,167, -224,138,121, 98, 57, 77, 20,236,236,181, 47,250, 93,215,161,224, 28, 82,118,104,218, 26, 39,167,167,216,110, 86, 88,221, 92,121, -249,240, 64,120,195, 30,107, 57,164,227,121,100,131,205,246,133,126, 77,156, 48,251, 98, 82, 93,209,101, 48,230, 51,123,225,246, - 41,169, 90,164,120, 99, 99,248, 28,239,142, 43,223, 59,125,239,115,150,123, 7,201, 46, 93, 17, 8,111,109,153,238,214, 19,178, - 22,237,149,163,237,135,217, 39,253,217,113,135,143,111, 66,164, 11,217,224,241,154, 95, 15, 32, 45,197,128, 75, 8,213, 71,250, -234,137,125, 4,179,190,220,142, 24,161,184,182,112, 37,129, 89,157,184,178,174,111,194,102, 99, 43, 37,205, 1,109, 59,194, 24, - 61, 24,200, 59,112,147,142,133, 54, 89, 74, 36, 12, 67, 54,130,157,101,202,104, 15, 25,229, 96, 67,106, 88,120,144, 50,154,222, - 76,135,209,165,174,104,103,194,236,193,218,174, 51, 7,182,221, 7,167,214,161,161, 99, 90, 58,213,238, 43,230, 81, 44,103, 90, -140, 71,204,247,193, 66,151, 41,237, 25,219,102,141, 70, 30,113, 96,154, 60, 52,175,148,113, 32, 83,246, 30, 54, 77,139,217,108, - 1,206, 5,138, 28,104,235,218, 24,100,128,160,165,185, 57, 34,207,252,148, 33,152, 48,220, 8, 74, 51,231,141, 44,171,151,131, - 49, 16,177, 96, 47,109,167,114, 97,239, 7, 83,204, 34, 62,158,134,234, 21, 12, 68, 26, 85,211,131,101,153,111, 50,140,131,157, - 0, 83, 46,122, 55,241,106, 22,102,146,119,198, 90,218, 90,123,186,142,126,144,184, 25,105, 94, 24,145,138, 52, 61, 45, 92, 11, - 32,137, 93, 13,117,237,193,222,219,217, 25,195, 54,120, 82, 41,179,114, 72,180,254,110,229, 19,174, 83, 66,104,223,236,235, 93, -178, 33,139, 26, 54, 6, 99, 94,148,229,185,135,229,239, 93,220,195,118,183, 51,188, 16,255,250, 9,140, 20,160, 36,230,203, 37, -148,234,193, 69, 14, 16,144,103, 25,180, 54,144, 60, 0,220, 59, 63,199,215, 95,127,137, 44, 47,145, 49, 1,165, 76,129,218,238, -118, 80, 74,162,239, 59, 92,221,188,197,233,233, 57, 30, 63,126,140,215,207,191,134, 86, 10, 7,203, 57,234,202, 76,213, 77,219, -227,240,248, 24,171,245, 53, 46, 95,190,196, 39,191,241, 93,124,249,229,175, 64, 82,225,237,229,165, 97,241,103, 11, 60,126,252, - 20,213,110,141,174,174,241,219, 63,248, 1,190,250,250,107, 44, 22, 7,248,233,207,126,142, 55,111, 47,241,230,213, 43,212,245, - 14,189, 82, 38,193,172,105,113,239,222, 57,222,188,125, 13,106,107, 28, 29,159,160,170,118,168,234, 26,159,127,250, 75,207,171, - 17,130, 80,150, 51,108,214, 43,180,109,135,174,105, 77,244, 42, 49,116, 74, 65, 1,232,219, 26,187,170,130,214, 10, 71,135, 71, - 56, 56, 58, 54,170,128,166,198,237,245, 91, 64, 43,136,124, 1, 98, 12,130,103,208, 76, 32, 43, 22,168,171, 45, 56,200,146,113, -135, 60,117,179, 90,114,138, 25,233, 83,219,156,103,254, 62,101,146, 35,203, 25,155,228, 65,181,225,161,124,169,124,214,189,234, - 26,104, 33,112,255,209,135,232,219, 30, 85,181,186,187,241, 87,204, 43,132,192,100, 76,156,214, 52, 29,169,157,146,225,246,237, -200,105,250,227, 35,233,217, 93,236,246, 59,138,253, 62,157,249, 62,118,252, 59, 33,118, 39,124,186,203,101,239,142, 29,124, 60, -169, 71, 63, 8, 81, 39, 79,211,179,214,196, 84, 60, 61,141,239, 65,248, 71, 69,120,202,230, 48, 64,250,189, 77,231,251,144, 46, - 38, 47, 2, 66,158, 64,188,187,247,150,123, 32, 59,213, 13,123, 41, 73, 67, 50, 26,183, 62,200,192, 16,148, 17, 17,157,130,164, - 40,215, 33,167, 89,212, 97, 17,100, 65,247, 27, 22, 98, 0,224,118,210,114,218, 97, 76,216, 13,166, 58,227, 48, 3, 27, 68,128, -205, 12,119,242, 32,199,142,238,237, 52, 46,146, 55,114, 40,149,210, 19,186,233,176,184, 15,161, 55, 52, 42,244,119,245,223,230, - 58,107, 12,112, 9, 18, 82,205,244,247,208, 1,201,111,187,219,224,236,244,204, 4, 76,180,198,164, 69, 81, 63,209,116,104,191, - 75, 52,230, 37,210,223, 23, 7,171,119, 46, 76,199, 17,223,122, 99, 72, 2, 11,195,187, 6,139, 5, 15,113,184,103, 55,215, 2, - 80,138, 80, 85, 13, 40,203, 64, 32,127,221,221,251, 37,108, 20, 48,106,246,200, 27,212, 24,179, 21, 22, 89,119,142, 96,170,176, -161,242,200, 37,139,216,241, 26,113, 72,135,114,197, 58,100,189, 7, 59,126,103,139,171, 1,104, 41, 35,153,107,184,199,103,137, -115,164, 14, 28, 20,157,221,173,231,142,104,141, 76, 8, 72,193, 81, 20, 57,186,166,131,224, 28,219,221,214, 50,183,135,181, 7, -231, 28, 93, 91,121,254,137,200,140,215, 61, 35,134,188, 44,161,186, 6,143, 31, 62, 66,215,105,112, 38,208,181, 61,190,255, 91, - 63, 68,158,207,112,125,253, 6,229,108,142, 89, 81,224,245,229, 43, 92,190,126,137,223,250,173,223,198,171,151, 47,241, 87, 63, -253, 9,182,219, 13, 22,203, 18,125,111,130,117, 24, 52,164,214, 40,139, 18,235,219, 27,204, 23, 75, 60,127,254, 21,154,106,135, -249,108, 1,217,212, 56, 62, 58,198,193,225, 9,158,191,248, 10,130, 24,254,199,127,254, 63,224,243,207,190,192,209,225, 2,219, -205, 6,229,108,134, 7, 15, 30, 0, 90,226,203,207, 63, 71, 83,237,160,251, 14, 93,215, 98,117,123,141,229,193, 17,164,172,113, -115,115,227, 45,108, 37,235, 61, 25,150, 49,134,245,122,131, 44, 43,209,182, 13,164, 82, 40,138, 18, 68,132,166,174,188,229,111, -150,113,244,173,196,205,245, 27,220,222,222,224,254,253, 7,152, 45, 15, 32,149, 68, 91,109, 33, 56,131,236, 9, 89, 94,160,181, - 26,114, 45, 59, 64,245,222,220,200,157,211, 74, 59, 82,156, 12,236,183,101,196,171, 9,227,162, 13, 7,197,200, 52,221,116,110, - 72,120, 44,202,109,151, 82,163,169, 27,204, 23, 2,154, 96,180,245,229, 28, 23, 15, 31,225,249,215, 45,250,182,241, 6, 90, 67, - 53,230,239, 68,113, 41,153, 12,195,130, 30,147,225,166, 84, 80,227,130,238, 36,195,250, 93,187,243, 9, 93,122, 74,106, 11,147, -215,210, 93,249, 93, 83,246, 62,195, 26, 79,160, 99,211,159,175, 7,218,223,222, 51, 86,220, 13,117,211,158, 9, 92, 35, 12, 6, -152, 22, 36,191, 15, 11,222, 17,212,104, 18,241, 79,109, 93,167, 60,220, 77, 61,152,248, 21, 73, 39,218, 62,237, 61,200,125,177, - 11,180,126, 74, 43, 48, 56,167,172,160,184,186,135,194,235,202, 13,156, 8,105,138, 30, 55, 22,114,150, 45,109,114,163,101,223, -249, 16, 23,178,186, 97,101,161, 85, 37, 21, 32, 85,146, 19,239,220,231, 6,226,216,212,196,235,178,194, 71, 16,170,237,192,247, -145,218, 84, 80,116,189,229, 99,160,101,119, 58,216,112, 34, 31, 18,176,104,128,234, 3, 70,254, 93, 22,163,233,235, 30, 37,247, - 57,184, 90, 13,118,247,202,105,103,109, 33,146,100,254, 63, 5, 36, 54, 5,109, 64, 16,123,255, 26,107, 14, 99, 52,204, 57,184, - 16,232,187,206, 72,159,108,209,233,186,206,134, 99,112,244, 74,161,204, 50, 84, 77,101,204,124, 44,193,145, 51, 1,201,134,104, - 97,195,178,239, 99,117, 7, 15,119,225, 26, 74, 27, 98, 24, 51,152, 59,132, 45,194, 77, 87, 67,146,121, 99,121,254,130, 50,175, - 94, 5,168,147,219,143, 59,126, 4,188,177,134,176,135,101, 32,223,180,238, 29,189, 28, 80,153, 48,101,205, 23,107, 55,189,135, -129, 39,169,233,140,214,208,202, 16,163,140, 38, 89,121, 20, 7, 82, 66, 6,134, 61,169,202, 33,180, 12,245, 13, 93,176,138, 35, -102,164, 67, 82,170,136,176, 76, 0,122, 59, 5, 54,149,217,187, 74,219, 24,116, 93,103, 26,204,222,252,255,147,147, 35,188,185, -172,252,228, 88,230, 37,184, 16,230,153,145, 26,223,249,141,239,226, 63,253,199, 63,195,237,237, 53, 54,219, 45,186,174, 67,219, -117, 40,243, 12, 26,132,186, 49,209,166, 89, 94,224,193,131, 15,241,234,229, 75,252,242,175,127,142,156, 51,100, 39,167, 56, 88, -228, 56, 61,187,135,219,155, 21,202,249, 28,219, 93,141, 78, 73, 11,253,183,232,186, 30,164, 9,117,181, 67, 38, 56, 72, 75,204, - 11,142,127,246,207,254,103, 40,217, 97,125,115,141,111, 60,125,130, 77,211,225, 87, 63,255, 25,254,246,111,254, 26,117,181, 3, - 24,195, 98,190,128, 82, 10,245,110,139, 60,203, 48,159, 47, 32, 50,129,249,108,134, 34, 47,177, 90,223, 98,187, 89, 5,164, 69, - 14,173,185,141,158,237, 44,124,206,209,182, 21,170,106,103, 86, 74,202, 25, 20, 49,127, 94, 8,161,177, 90,173, 48,155,207,144, - 23, 37,218,109,131,205,250, 10,139, 67, 35,213, 17, 25, 67,223,105, 20,179, 25,100,223,160,235, 58, 64, 13, 43, 52,229,253, 20, -100,196, 45, 10,157, 53,157,211,166,107, 86, 57, 23, 80,106,248,216,224,133, 33, 3, 87, 78,227, 73,223,219,213, 88,223,181, 16, - 34,195,242,240, 16, 39,231,231,184,124,241, 18,164, 19,165, 69,116,102,219,231, 6, 98, 76,142,219, 39,143, 5,139, 38,242, 41, -159, 18,176, 80,118,203, 98,133,214,223,115, 58,191,115,183, 77,131,187, 91, 58, 88,186,143,167,108,118, 87,204, 83, 40,221,127, -220, 53, 20,250,238, 80, 22,130,117,148, 27,249, 56, 99,236,185,238, 9, 5, 81, 9,165, 9,229,219,187, 89,238,251, 39,115, 29, -252,125,144,126, 77,127,175, 32,108, 37,121,109,218,245, 97, 62,243, 89, 91, 62, 53,124, 4,234,208,214, 13,112,176,219,139,123, - 79,109,198,124,206,128,103, 56, 43,248,108,121, 95,124,161, 44, 36, 74, 62, 40,129, 17,179, 69, 88,123, 3, 14,109, 3, 47,188, - 70,223,202,230,148,210,129,205, 44, 69,211, 49, 11,109, 88, 49, 4,169, 32, 40,182,174,224,235,200,234,148,252, 52,234,254,222, - 75, 57,134,176, 48, 36,108,233, 0, 9,208,193, 84, 26,154,219,220,185, 23, 74,125,157,247,176, 51,195, 72, 78,114,186,101,196, -238,108,218,122, 71, 15, 31, 26, 38, 85, 41,165,201,137,238,141, 84, 39,207, 50,236,118, 13,202,178, 64, 91, 85,158, 32,228,167, - 68,202,204,138, 1, 38, 9, 79,201, 62, 30, 22,148,138, 56, 10, 74,169, 97, 37,225,100,107, 35,109,126,204, 7, 48, 76,237, 12, -219,109,227,239, 11, 11,136,118,225, 33,198, 57,247, 77,130,180,247,196,164,104,145,129, 54, 49, 40, 61,116,192, 7,225,193, 20, - 30,114, 1,148, 85, 76, 40,165, 38, 14, 23,248, 76,244,208,200, 72,135,210,190, 0,206,228,129,154, 33,253, 94,233,115,144, 74, -242,204, 51,195,161,153, 9,125, 97, 68, 54,174,207,177,237, 29,116, 43,144,231, 25,154,186, 65,158, 9, 79,188,204, 24, 97, 62, - 43,176, 88, 30,128, 24,135,146, 29,178,236, 0,156, 11,116, 77,131,139,211, 99,252,236,103,127,137, 95, 63,123,134,174,109,140, -252,178,235,209,182, 45,118,219, 45,136, 8,117,245,115, 48,145,225,227,143,159,226,209,227, 79,240,248,131,135,248,254,119,190, -139,127,245,175,254,119,220,123,244, 33,254,250,167,127,129,229,179,231,216,222, 94,225,224,248, 4,229,124,105,119,215, 12,183, - 87,111,108,179, 5,112,145,225,155,223,252, 54, 62,124,252, 49, 24, 83,120,244,240, 1, 22,179, 25,254,205,255,253, 71,248,243, -255,235, 95, 99,187,217, 96, 62,159,227,252,236, 12, 95,125,185,193,110,189, 66,155, 23,152,205,102,134,104,219, 75, 84,187, 29, - 30,158,157, 65,149,115,188,126,253, 18, 89,158,163, 40,103,104,155, 22, 78,123,208,219,194,122,255,209,135, 40,102, 75,228,156, -176,221,110, 64,204, 40, 60,160, 21,180, 50, 38, 61,198, 46, 87,160,105,106, 51, 53,211, 9,186, 78,130,229, 51, 48,221, 98,183, -190,193,242, 48,131,102, 5,242, 34, 67, 83, 75, 40, 50, 6, 77, 26,189, 53,112,202,172,231,131,128, 82,210, 78,223, 38,170,213, - 20,244,161, 81, 23, 98, 48, 15,114,198, 52,198,151,159, 5,232,169,178,107, 80,238,207,228,182,109,192, 56,247,150,178,133,224, - 56, 63,191,135,122, 91, 97,115,123, 59,164, 67,234, 32,236,193, 23, 87, 30, 79,215,251, 70,202,196,185,106,202,234,213,187,142, -166,172,247,187, 10,246,132,145,204,212,116,158,202,151,211,157, 53, 33,224,230, 4,211,245,251, 76,242,251,138, 63,193, 26,249, - 68, 49,227,227,243,149, 31,159,223,251, 17,166, 18,189, 82, 64,158,194,161,159,162, 4,179,180, 64, 15, 13,213, 20,155, 62, 77, -190, 9, 88,239, 44, 72,214,161,225,243,227,253, 8,139,187, 49, 10, 85, 92,195,133, 28, 62, 62,102,143,251,184, 82,219, 52,176, - 96, 94, 86,169, 23,171,142,175, 67, 24,177,154, 86, 41,178, 97, 19, 33, 23,193,147, 83, 92,209, 8,101, 81,220,101, 69,147,215, -171,155,169,199,164, 52,153,164, 38,101,119, 98,131,163,147, 84,202,250, 75, 43, 63, 65,203,137,194, 27, 21,145,192,124, 6,123, -136, 83, 72,166,114, 21, 76,238,251,224,117, 61, 97, 68,243,206,117,136, 14,223,200, 65, 16, 77, 32,116, 82,147,107, 31, 83,116, -164, 54,135,147, 82, 10, 15, 31, 62, 66, 89, 20,216,108,182,144,178, 51,161, 57,125,111, 38,240,128, 20,200, 57,131,130,198,114, -177,192,118,187, 49,159,227,145, 11,243,189,251,190, 7,115,209,157,196,160,236,231,120,162,154, 67, 47,124, 35,236, 2, 85,204, -231,212, 77,135, 93,213,216, 70,147, 65,219, 68,182,208, 96, 40,148, 12,186,235,151,217,244, 56,206, 77,220,166, 87, 74,216, 71, -198,145, 23,221,158,154,115,110,166,215,160,248,178, 40,185, 47,184,230,246,245, 58, 11,218,240,217, 53,164, 56,101, 15,224,216, -151, 64, 39,103,149,224,124,224,119, 80,220,246, 71,137,120,208,129, 73, 19, 60,139,223,144, 76, 1, 33, 76,138, 89,223, 75,228, -121,134,182, 51, 25,234,203,131, 67,124,252,209, 55,240,240,193,125,236,182, 45, 46,238, 63, 68, 57, 63,196,131, 7, 31, 66, 67, -227,226,252, 30,126,253,229, 23,120,246,245,215,144,170,199,209,209, 41,254,224, 15,255, 41,192, 5, 56,227,216,110,215,126,250, - 85,125, 7,104,137,123,247,238,227,112,185,192,127,252,201,159,227,139, 47, 62,195,151,191,250, 12,245,118,139,213,234, 22,125, -219,160,174,107, 60,184,127, 15, 31, 60,254, 6,242,124,134, 44,227,200,179, 18,197,124,129,223,253,221,223,195,247,190,255, 3, -168,190,199,229,219,215,120,241,242, 37,126,253,226, 57, 86,171, 21,158,127,245, 21, 86, 55,215,184,186,185, 69,223,119, 88, 46, -103,184,185,189,181,234,149,220, 48,152,179, 12,199,167,103, 16, 66,160,169,107, 28, 29, 29,225,205,155, 87, 56, 56, 60,198,253, -135, 31,224,236,252, 28,125,175,240,193, 7, 79,112,124,122, 14,158,101,216,222, 94, 99,187, 89,227,240,248, 4, 74,219, 92,121, -165, 81,150, 37,202,217,220,175,207, 22,139, 57,186,174,195,110,183, 69,158,103, 88, 44, 15,193,121, 6,173, 58,244,125,139,188, -152, 67,202, 30, 34, 19,232,101, 15,206, 57,100,223,123,229, 74,145, 23,254,188, 24,206, 85, 61, 81, 32,145, 48,222,221,249,173, - 35, 35,174, 56, 14,155,217,105, 88, 91,243, 36,195,113, 41,102,115,100, 89,134,221,102,107,154,106,127, 38, 43,107, 42,195,108, -254,249,184,105, 47,118,230, 0, 0, 32, 0, 73, 68, 65, 84,160,135,242, 76, 39,131, 29,140,190, 88,100, 80,182,151,233, 78,211, - 69,121,146,217, 78, 49,179,157, 38,165,113, 24,190, 54, 96,178,167,113,171,238,235,223,135, 0,231, 95,207, 93,145,228, 68,119, - 26,208, 16, 0,113,183, 44, 73, 79,236,197, 89, 96,250,159,238,115,247, 17,230,144, 72,217,210,201, 92, 79, 72,221,116,194,129, - 76,180,134, 44,152,186,109, 19,161,188, 29,237, 40,191, 52,112,136, 51,211, 26,172, 28,109,128, 85, 93,194,218,192,120,214,100, - 50,195,135,105, 87, 7, 90,121, 74,172,103,173, 58, 64,197,114, 49, 88,162,138,246, 30,200, 20, 67,163, 65, 49,102, 22, 26, 50, -241,146,118, 87,203, 40,218,105,135,133, 74, 71,201, 89, 3, 76, 28,234,153, 67,207,240, 33, 50,123, 26, 54,119,127,134, 48,127, -184, 95,191,171, 88,239,131,219,247, 35, 53,238,245, 5,228,134, 64, 82, 70, 52, 72, 66,152,125, 39,147, 37,227, 48, 78,158,124, - 85, 55, 53,206,142, 79,253, 53,146, 54,225,203,240, 4,180,103, 98, 3, 64,158,229,134,125, 78,177, 37,176, 11,190,209,182,248, - 73, 41,141, 81, 77,162, 8, 9,205,129,188,230,159,145,137,127,149, 26,187,186,242,211, 42,164,163, 1,186, 29, 58, 34,164,193, - 65,222, 44,210,191, 91,219, 84, 5, 8,193, 12, 73, 48,152,198,121, 96,254, 99,214, 62,195, 84, 45,149, 50,133, 55,177, 12,118, -140,122, 21, 70,179, 98,216,123, 40,192, 24,191,216,148, 51,119, 47,115, 23,126, 99,191,183, 91,239, 80,112,192,142, 34,120,225, -242,187, 1,169,180,183,112, 37, 54,208, 72,189, 38, 90, 1, 82, 42, 20,121,142,178, 88,224,232,228, 28,235,109,133, 31,255,248, -143,209,247, 45,234,221,206,248,233, 11,129,139,123,247,240,201, 55,191,131, 79, 63,253, 37,242,140,227,201,147, 79,240,191,254, - 47,255, 27,254,244,207,254, 4,183,215,151, 88, 30, 28,224,164, 62,193,102,187,129,234, 58, 48,145, 65,148,115,220,187,255, 8, -127,246, 31,254, 2,111,223,188, 2, 40,195,249,253, 7,184,189,126, 13, 45, 27,180,109, 3,165, 36, 94, 62,251, 26,191,254,250, -107,124,255,119,126, 31,117,221, 65,245, 53,126,247,191,248, 39, 40,139, 25, 94, 62,127,134,255,231,223,253,145,181, 67,101,104, -187, 14,139,131, 37, 46,238,157,227,205,219, 75, 72,169,208,229, 25,102,101,129,163,163, 99, 72, 37,113,114,118, 6,105, 17,185, -231, 47,158,131,105,224,240,240, 16, 74,105, 28, 30,158,128, 51,142,219,171, 55, 88,109, 86,120,248,193, 99,104, 40,188,248,234, - 11, 40,199, 83,128,198,245, 27,224,248,228, 28, 25,227,104,154, 26,187,245, 26,140, 24,138, 89,137,195, 67,195,116,207,243, 12, -125, 47,177, 94,175,209,182, 45, 78,207, 47,160,155, 28, 28, 18,245,110,133, 98,177, 0, 17, 33, 47, 74,236, 54, 43,112, 33,160, -164, 66,223,119,232,165,176,141,174, 8, 0, 36,231,183, 31,171, 94,220,196,228, 38,244, 56,111, 92, 71, 19, 59, 15,162,169,185, - 49,239, 0, 3,161,239, 58,244, 93,139,229,193, 33,142,207, 78,113,249,234,229, 16,192, 4,158, 12, 78, 19,137,105, 81, 49,119, -159,203,246,154,201,164,172,247,201, 84,181,187,224,244,119,217,192, 78, 76,208,163,105, 62, 49,177,185,203, 44,230,189,212, 66, - 97, 3,176, 39,128,109,152,212,207, 46,126, 52,134,181,195,238,139, 77, 18,215,210, 11,186, 47, 45, 45,242, 62, 79, 10, 62, 81, -204,116, 79,109, 92, 7, 79,235,160,177,160,113,220,220,148,153, 12, 33,238,106, 6,199,182, 65, 42, 52, 20, 18, 88,217, 89,140, - 0, 80, 64, 8, 10,117,131,180, 39, 30,150, 69,177,169,102, 10, 50, 19,175,139, 6,117, 16,254, 0,237,186,159, 97,164, 77,128, - 21, 18, 27,183, 56, 98,118,138, 50,123,239, 34,207,189, 13,102,120,200, 70,182,176,110,106, 10,210,149,220, 10,203,147,239, 56, - 55,108,108,203,138,119,137, 78,105, 33, 15,125,197,195, 73,240,174,108,224,125,114,167, 73,116, 0,177,127,120,168,187, 80,161, -245,140,142, 95,155,200,205,206, 77, 8,129,131,163, 35, 28, 31, 29,163,174,119,232,218, 22,181,181,118, 53,191, 43, 13, 54,151, -196, 32,242, 12, 90, 41,180,117, 5, 25, 52, 42,220,146,127,250, 94, 98, 54,159,153,105,198,154,197,112,193,125,126,247,168,237, -212,166,144,246,189, 68,175, 20, 54,187,202,120, 21, 48, 22,167, 27, 70,146,175, 9,141,120,176,103, 31, 38,128,112, 77, 69,131, -124,104,162,137,130,101,150,247,110,141,146, 24,211,184,103,204,115, 39, 92,227,170, 48,210,250,186, 93, 58,183, 17,159,206,207, - 62, 37,204,122,244, 34, 60,116, 35,210,231,180,212,113,176,209, 52, 97, 60,247,239,221,199,227, 15, 62,196, 95,254,229,159,225, -211,191,253, 20,235,245,218,186,207, 73,200,222, 52, 70,187,237, 6,171,213, 10,155,213, 45,142, 79, 79,241,223,255,139,255, 9, -191,252,219, 95,224, 95,255,159,255, 7,110,111, 87,184,185,121, 99, 16, 14,206,161,149,196,163, 15, 63, 66, 94,148,120,125,249, - 2, 93, 83,227,252,222, 3,124,248,228, 9, 62,255,213,223,160,239, 42, 8,193,176, 88, 44,160,165, 4,101, 57,148, 84,216,172, - 87, 56, 59, 59,199, 31,252,193, 63,197,195,135, 31,226,234,234, 13,158,191,124,137,122,187,197,213,213, 21,186,174, 65,153,113, - 92,156,159,226,234,237,149, 9,186, 97,132,163,227, 67, 67,108, 3,176,219,109,177,186,185, 70,215,182,104,172, 67,222, 98, 62, -195,122,181, 6, 49,130, 84, 29,174,174,174,145, 23, 37,142,142, 78,161,164, 70,223, 52, 40,102, 51,116,109,131,178,156,225,236, -222, 3, 44, 15, 14,209,180, 53,164,236,112,122,114,129,162,156, 65,106,141,186,169, 80,215,181,231, 31,204,102, 51,195, 52,151, - 29,122,169, 81,148, 51,104, 34,112,221,154, 51,147,103, 22, 25,233,189,125,177,203,188,119,200,148,119, 25,180,190, 28,195,179, - 21, 67,216, 49, 7, 10,193,164,206,146,161, 67, 88,158,134, 24,120, 73,130,163,147, 61,242,188, 64, 81,150,104,234,218,152,210, - 4, 59,243,240,172, 29, 72,106,108,172, 92, 66,104,209, 28,214, 15,242,126, 32,195, 11,103, 35,237,248, 36,220,206,246, 23,244, -200,194,245,142,175,245, 95, 71,123,154,130,125, 57,233,123,166,115,175,163, 71,152,215, 62,174,162,233, 57, 18,164,180, 81, 16, -189, 23,179, 8,167,118,229,113,209,166,189,187,238, 81, 50,104,112,156,143, 31, 22,134,192,188, 50,114, 19, 75, 25,136, 94,135, -237,114,194,181,246,211,122,212, 8,132, 83,188,219,167, 7, 89,231, 26, 70,174,166,130,135,151, 2, 81,164, 54, 42, 78,115,225, - 45, 37, 35,132,160,162,135, 94, 1, 5,153,236,103, 2,129, 67,129, 88,134, 90,247, 38,239, 27, 26, 96, 28, 4, 3, 79, 49,173, -193,148,180,191,135,132, 82, 70,150,225, 26, 19,206, 6,189,168,187, 18, 82, 41, 64,233,192,203,153,162,104, 68, 31,186, 18,230, -154, 35, 38,182, 56,139,213, 46, 41,198,119,217,202,190,107, 74, 7, 48,249,121,163, 68,184, 41,153, 91, 80,124, 52,145,223,149, - 49, 29, 79, 10,209, 58, 65,147,105,152,132, 70,181,221,162,204,114, 20, 34, 71,155,229, 16,140,161,147,195,239, 34,149,137,244, -108,218, 14,243,217,236,255,165,236,205,154,100, 57,206, 51,205,199,221, 99,205,173,170,178,246,179, 97, 33, 22, 10, 36, 37,138, - 82, 83, 61,221,109, 54, 82,183,153, 76,166,190, 25,155, 95,132,127, 50, 55,115,209, 61,253, 11,166, 47,164, 54,205, 72,106, 77, - 55, 73,137, 20, 73,236,203, 1, 14, 78,157,218,115,139,221,221,231,194, 35, 34, 35, 50,179, 0, 17,184, 0, 80, 56,149,149, 21, -153, 25,254, 45,239,251,188,172, 22,179,173,110,214,214, 81,184,141,223,214,247,253, 62,141, 79,246, 71,143,141,144,210,243,188, -150, 6, 87, 21,101, 39, 74,183,198,111, 54, 19,129, 29,169,135,198,152, 53,230, 87,201,118,100,191, 22, 33,186,110,214, 90, 55, -178, 22,178, 22,160, 53,215,179, 19, 0, 35,106, 80, 80, 3, 33,234, 22, 16, 64,187,170,104,196,110,109, 72,138, 92,103,178,219, - 13,190,191,214,154,200,247, 41,107,113,157, 82,170,147,231, 69,207, 97, 33, 54, 11,194,142, 16,170, 79,179,171,187,122, 1,194, -186,231, 63,221, 63,224, 87,255,252, 75,140,245,121,227,205,239,115,115,243, 10, 93, 85, 20,101,230,108, 93, 69, 69, 69, 73, 16, -132,120,129,199,112, 52,228,250,250, 21,127,251,183,127, 75, 24,197,172,150, 25,101, 81,146,101,247,104,173,121,247,247,126,196, -112,111,159,187,171, 75,206, 79,159, 82,217,146, 15, 62,252, 45, 71, 7,135,172, 86, 75,108, 85,160, 61, 73, 81,148, 68, 81,200, -106, 49,115, 25,236,202,199, 86,238,231,252,205,223,252, 53,183, 55, 87,164, 73,130, 31, 4,156, 61,121,204,242,230,146, 63,254, -163, 31,243, 15, 63,251, 5,126, 24,243,206,123, 63,162,200, 18, 62,253,244, 19,158, 62,157, 32, 21,120, 82, 80, 84,134,100,181, -196, 43, 2,242,188,104,119,211,216,136, 82,187, 72,221,229, 98, 78,178, 90, 80, 22, 57, 82,214, 65, 67,190, 91,185, 93,191,250, - 6,173, 13, 65, 24, 50, 61, 60,164,168, 10,166,211, 41,190, 31, 48,187, 87,204,231,247, 24,163, 41, 10, 67,150,101,174, 56, 49, -184,216,218,170,192,247, 60,146,165, 38, 52, 25, 66,122,224,251,248, 97, 68, 81, 20,245,100,201,173, 62,154, 67,185, 41,250, 27, -234,156, 27, 80,173,181, 65,221, 16,172,198,178,217,148,227,107,184,141,220,154, 14, 53,121,236,141,182, 71,121,144,103, 41,131, -193,136,233,241, 49, 69,145, 83,212, 89,241,236, 24,181,247, 10, 86, 65,199,194, 44,119,218,213, 26,125,148,217, 56,120, 31,244, -150,127, 87,119,254, 29,157,253,214,186,119,211,210,102,191, 67,253,142,248,214, 12,245, 93, 93,249, 38,130,125,167,140, 93, 8, -212,193,241,217,251, 98, 43,120,125,125,160, 55, 93,118,223, 42,176,203,135, 46,218,125,202,191, 4, 32,179,213,249,201, 13,251, - 66,123, 83,146,125,235, 0,219,121,181, 93,185,127,183, 59,111, 5, 86, 77, 88,139, 0,148, 68,213,157,184,134, 30,152,195,118, -199,172,221, 80, 18, 41,240,132,108,163, 75,123,239,163, 58,188,197, 19, 48,242, 20, 18, 23,125,231, 11, 24,251,134,137, 39, 81, -214, 64,153, 19, 84, 41, 42,155,225,103, 11,188,108,137,170, 10, 84,153, 18,234,146, 88, 10, 2,235,182,250, 74, 42,119, 32, 72, -209,238,241, 13,235,155,101, 75,190,171,111,208, 13,253, 77, 41,185, 29,210,210,138, 94,188,157,149, 98, 23,164, 34,191,197, 43, -248, 47, 25, 25,109, 22, 3,223, 58,134, 23,162,151,248,183,235,195,108,123,117,252,250,219, 26, 21,182,242, 61,132, 20,188,241, -218, 27,204,231, 51,172,209,100,105, 90,139,136,100, 43,156, 12,195,144, 74, 87, 4, 97,224,212,185,157, 41, 71,147,206,134, 16, -148,165, 70,120, 46,174,211,137, 31, 59,130,197,198,166, 88,255, 89,151, 24,231, 58, 28, 37, 37,139,197,170,135, 49,126,232,122, -117,211,216,148, 82,189,164, 67, 85,231,172,211, 89,223,244, 66, 99,100,255,253, 41,161,221,219, 11,169,250,212,199, 78, 81,210, -100, 12, 52,215, 52,142, 34,231, 69,239,132,186,120,190,223,218,221,122, 5,148,220, 86, 43,119,125,239, 98, 35, 4,102,179,200, -220,236, 42,214,133,131, 96, 52, 26,179, 88, 46,185,188,185,225,223,254,187,127,207,207,127,241,223, 89,206,102,228,197,138,253, -131, 41, 94,224, 49,157, 30, 99,141,174, 21,245, 6,233,249, 76,143, 78, 56, 58, 57,225,171,231, 95, 49,217, 63, 96,188,183,207, -106, 57,115, 69,139,231,241,229,199, 31,241,218, 27,223, 35, 73, 22, 44,230, 43,222,121,247,135,172,146, 37,139,249, 29, 74,185, -177,176, 82,138, 36, 73, 40,138,210,193, 89, 44, 44,150, 51, 46, 95,189,164, 42, 11,238,110,110, 89, 46,151, 78, 5,111, 45,255, -241, 47,255,130, 95,253,250,159,185,185,189,199, 15,124,130, 48,196, 88,205,225,116, 74,146,166, 96, 43, 22,179, 57,198, 10,198, -147, 61,144, 46, 50,117, 52, 26,146,164, 41,171,213,138,147,147, 83,162, 32,224,254,254,158,201,222, 30,251, 7, 71,228, 89, 74, - 81,150,156, 63,121,236, 10,254, 86, 88,107, 25, 12, 71, 76,246,167,228,105,198, 32,142, 41,138,156,229,114,137, 16,178,158,180, -185,172,117,169, 20,139,100,193,254,222, 1, 65, 16,225, 7, 1, 73,146, 32,108,233, 68,114,117, 17,103,170, 10,129,109, 87, 32, -190, 31,212, 98, 90,211, 9,121,177,237,129,222,253, 20,110,166,154,181,201,150, 27,144,151,118,229,216,164,233, 41, 85, 11, 50, -107, 15,186,144, 12, 6, 67, 42, 93,146,164,105,239,125,193, 6, 19,161,127,128,178, 65,228,236,190,231,214, 29,114,111,207,189, - 17,196, 34, 55, 59,247, 7, 66, 90,214, 68,199,141,221, 57,125,235,243,131,197, 64,119,178, 41,251,157,120, 99, 87,117, 95,239, -147, 78, 69,211, 60, 52, 19, 87, 33,182,115, 39, 54,181,111, 59,162,102,189,158, 53,204,110, 42, 10,187,222,100,179,229, 81,239, - 10,221, 54, 15,251, 77, 49,213,230,232,126,123,125,111, 92,119,210,116,217,117, 51,220, 77, 12,179,130,158, 87,111,211, 66, 39, - 91,140,170,221,138,166,179,157, 23,177,194,172, 11,150, 14,181,109,147, 95,222,229,124,183, 93,176,148,244, 90,121,107, 81, 18, -124,225, 49,242, 4,251,126,200, 59,199, 7,104,163,201,138, 28, 35, 13,105, 86,242,217,197,130,121,178, 36, 84, 62, 86, 88, 60, - 95,178, 55, 25, 17,199, 35,202, 52,101,149, 44, 80, 74,177, 23,143,240,162,128, 87, 89,201,109, 81, 98,164,196, 26,209, 91,205, -216, 7, 32, 7,235,131,124,251,131,216, 13,105,233,190, 54,221,209,176,253,151,164, 46,240,237, 4,185, 77, 91,219,183, 69,242, -110,241,226, 59,228, 66,213,174,216, 55, 31,191, 43,145,183,148,101,129,177,206,255,155, 23, 25, 90,116,196,125,245,235, 91, 89, - 67, 60, 28,180, 35,199,202,104,220,104, 68,215,126, 97,139,148,158, 43,244,116,197,100,178,199,124,126,143,173, 61,239,141,216, - 81, 87, 85, 75,224,107, 56,232, 70, 87,228,153,243, 23,119, 41,117,187,126,127,219,161, 50, 54,147,151, 6, 2,163,148,172,131, - 94,214,186, 16,139,236,195,160, 54,166,102,218, 81, 94,106, 17,113,181,182, 38,213, 23, 42, 12,130,154,102,182,222,119,154,102, -255, 94, 67,136, 60,223,111,117, 26,170,103,119,114, 14,128,102,157,211, 60, 78,253,193,233, 69,250, 54,223,167, 54,130,133,186, -101,127, 89,239,165, 27, 76, 41, 10,132, 53,204, 87, 25, 81, 24,115,123,127, 67,153, 25,188, 32,228,251,239,253,128, 56, 30,242, -217, 39, 31,113,127,119, 67,146,174,208, 85, 69, 28, 71, 76,246,246,249,232,131, 15,120,241,197,199,100,101, 66, 85, 25, 60,207, -103, 56, 24,178, 63, 61,193, 15, 67, 68,237,153,190,189,189,100, 62,155,241,197, 39,191, 33, 8, 99,170, 34, 35, 30, 12, 25,140, - 78,220,161,167, 2, 68,186,114,162, 43, 83,145,173, 74, 94,126,253, 5,195,241,148,131,163, 35,222, 59,127,196,221,205, 53,135, -227, 17,127,245,215,127,197, 98, 49,103, 48, 28, 50,136, 71,188,250,230, 27,242, 60, 97,111,111,138,240, 60,142,142, 31,177,183, -127,196,171,151,223, 80,105,203,241,225, 33, 95,125,249, 37, 43,189, 96,178,183,231,116, 26,165, 3,203,140, 70, 35,202,162, 96, -118, 55, 35, 8,125,132,148,124,253,197,231, 45, 31, 36, 12, 67, 4,150, 87,223,188,224,230,246,134,209, 96,204,215,183, 87, 76, - 15,143,248,222, 59,223, 71,249, 62,175, 94,124,213,174,101,164,148, 20,121,202,245,213, 37, 7,211, 67, 70,163, 49, 82, 72,238, -111, 47, 8,163, 8, 37, 61, 6, 81, 76,170, 13,165, 21, 40, 95,181,160, 30,247,218,154, 13, 43,152,105, 59,226, 38,170,181,251, -255,251, 77, 31, 91,174, 8,165,104, 99,140,141, 49, 14, 99, 91,105,132, 84,148, 69,134,242, 61,246, 14, 14,201,146,148,197, 98, -209,102, 6,108,254,165,133,218, 88,235,202, 29,205,167,216,233, 73,127,112,156,254, 29,123,245,205,239,221,185, 43,127, 96,223, -190,233, 89,223,217,189, 63,224, 0,151,221, 18,202,174,131,165,118,119,241,235, 51,169,231, 90,107,174,255,244,248,236,253,110, - 8,202, 90,197,184,109, 63,219,250,229, 17, 15, 94,216,237,202, 69, 60,232,233, 19, 82,108, 37,184,108,197,209,117,132, 7, 93, -223, 30, 27, 66,137,230,239,205,148, 55,219, 5,231,117, 4, 74,205,187,195,108, 70, 80,118, 46, 94,163,134,150,157,223, 79, 41, -247,223,129, 0, 79, 72,166,158,229,207,222,122,131, 39,227,144, 63,253,215, 63,229, 96, 16,178, 92, 38, 68,158,143, 39, 37,158, - 82, 53, 69,205,112, 58,153,240,175,223,121,135, 63,120,237, 53,126,240,232,140,167,135, 7, 28,237, 77, 8, 67,159,187,197,156, -187,171,107,158,140, 98,222, 60, 60, 32, 45, 10,150, 90, 35,233,130,128, 28,101,205,116, 18,147,122,170,250, 29, 34,182,205, 67, -123, 83,216,182, 57,178,253,174, 46,253,161,174,255,187, 10,131,205,231, 96, 31,176, 92,214,193,120, 78, 28,182,129, 2,110,138, - 77,169, 28, 31,224,236,228, 12, 79, 41,238,231,247, 78, 8, 84,148, 45,131,191,209, 13, 0, 68, 81, 72, 89,228,148, 85,229,200, -114,173,131,192,117,244, 85,101, 16, 74, 50, 26,141,241, 60, 69,145,101,109,213, 28, 4,129,243,251,118, 32, 67,214,106, 16,184, -168,204, 82,127,107, 1,180,201,253,239,237,192,148,234, 49,207, 55,233,124,170, 86,158,171,141, 72,221,110,193, 45, 59, 86,208, -174,114,184,233,150, 26, 13,134,172, 69,115, 94,125,200, 55, 16,162, 38, 59,160, 17,226, 53, 19, 5,221,241,188,119,161, 54,237, - 1,221,129,242, 52, 90,130, 94, 44,115, 35,206, 51,134,188, 40,136,234, 67,230,120,122,194,247,222,122,135,139, 87,175, 40,243, -148,131,253, 3, 38,147, 3,180, 46,120,245,242,130,171,171, 11, 87,212, 11,120,253,205,119,152, 30, 30,178, 92, 44,136, 6, 17, -215,151, 87,156,156, 63, 70, 87,146,249,108, 70, 81,100,140, 71, 99,252,104,192,245,229, 5,171,197, 61,215,151, 55,172, 86, 11, -194, 40,228,217, 91, 63, 64,122, 30,119,183,175, 48, 85,209, 78, 87,164, 53,248,129,207,104,114,192,100,223,229,175, 23,149, 33, - 93, 46, 89,205,238, 89, 44,239, 25,142, 70,200, 32, 98,149, 36,172, 86, 9,139,229,146,162,200,137, 7, 17,105,154,112,119,123, -237, 4,135,218,144,100, 25,227,201,132,155,155, 75,238,239,110,152, 30, 76,153,205, 23,104,237, 0, 48,171, 36, 33,142, 35, 42, - 93,113,123,115,131,181,150,162, 40, 80, 82,226,251,238, 53,170,170,138,162, 40,221, 36, 97,181, 66,103, 57, 86, 88,167,136,215, -134,139,111,190,193, 84, 21, 71, 39,167,204,103,119,148,133,219,139, 15,134, 35,231, 13,175, 28, 88, 41,140, 98,132, 84,232, 50, -195,243,253, 90,124,233,163,181,193,247, 60, 60, 79,214, 26, 8, 89,119,233,219,105,106, 13,176,105,125,216, 55,206,141, 6, 58, -181, 94,121,122,202,235, 77,210,220,148,199,171,167, 92,178, 77,128,179,214,189, 79, 6,209, 0,139,131, 62,233, 70,227, 33,214, - 93,186,237,117,168,155,122, 30,214, 57, 12,157,231,214, 30,218, 98,123,114,216,106,143,132,108,187,231,205,136,234,205,175,183, - 59,114, 41,118, 78, 33,155,248,236,205, 73,114,239,191, 45, 27,231, 24,253,238,252, 33, 82, 94,247, 51,196,118,196,121, 79,192, -187,113, 47, 86,211,147,211,247,183, 59,121,209, 17,183,109,250,213,101, 39, 66,113,123, 52,111,123, 10,102,177, 97, 79,219,236, -240,186, 1, 25,114,125, 1,216,102,175,219,206, 99,118,247, 13, 61,129,194,230, 1,223,216,214, 58,162, 55,217,248,218,109,119, -255,178,105, 23,232,236, 47,186,129, 39,214,182,153,187,162,118, 84,134,194,112, 30, 73,126,255,100,202,217,254,144, 81, 20, 50, - 14, 67, 14,143,143,249,230,155,151, 12,163,152,101,150, 81,148, 5,158, 82,156,239,237, 17,135, 33,203, 52,101,149,103,120,192, -254,112,128, 20,150, 65, 16, 17,121, 33,149,208,124,126,113,201,253,252,142,247, 78,142,137, 61,197,117, 86,184, 96, 18,171, 29, -106,212,234, 54,156, 99, 13, 48, 96,231,225,189,121,208,111,162, 32,255, 37, 29,248, 67,227,245,239, 58,236,191,109, 4,255,109, - 30,246,150, 33, 64,141,117,109,212,175, 13, 73,178, 22,192,121,129,207,254,222, 62,131, 65,204,124,177,192,104, 77, 89,148,235, -194,175,249,176,214,135,124, 85, 86,232, 74, 35,172,165,210,142,201,109,106,235,163, 49, 26,161, 20,123,123,251, 4, 97, 64,150, -101,120,117,122, 85, 52,136, 41,138,162,133,172,200, 26, 68, 36,164, 32,171,241,180, 93,159,251, 38,164,103, 23, 77,208, 89,216, - 84, 61,218,111, 94, 39, 83,175, 85, 20, 66,168,117, 8, 74, 61,126,180,152,142, 72,200, 17,224, 90,137,121, 29, 84,211, 28,216, - 13, 45, 46, 8,130, 53,235,160,182,208, 57,155,154, 83,237,123,158,143,244,106, 37,180,117, 24, 88, 79,249,120,126,208, 90, 27, - 61,207,115, 41,115,157, 53, 77,239,247,217, 52,193,118,198,164, 82, 10,130, 32, 66, 73,247, 59, 31, 79,143,121,246,244, 53,254, -233,151,255, 72, 89, 22, 60,122,252, 20,131,226,211, 15,127,201,205,245, 13,121,158,162,171,156, 60, 89,184,152,209, 65,204,167, -159,124, 76, 89, 85,156, 61,122,194, 31,253,209, 79,249,244,147, 15,185,190,188,104,139,160,209,232, 0,173, 53, 69,190,228,173, -223,251, 3,158, 60,125, 74, 60, 24, 48, 24, 76,152,221, 92, 80, 22, 37, 7, 7,135,104,235,102, 25, 85,153,163, 60,159,225,120, -132,146,146,249,221, 53,149, 49, 8,163,169,116,137, 17, 30,126,224, 81,229, 37,139,217, 29, 66,121, 8, 1,195,241, 62,161,239, -113,117,121,137, 11, 12,113, 99,236,195,227, 19,102, 53,227,124, 60, 30, 83,228,206,171, 61, 61, 58, 98, 60, 26,225,251, 62, 69, - 89,214, 22, 70,223,117,215, 69,222, 30,166,110,125,166,234, 9,146, 19,154,141, 15, 14,200,139,130, 60,203,200,243, 28,107,225, - 96, 58, 37, 47,114,132,167,136,163, 1,105,186,162,172,114,180,209,120,129,215, 54, 45,214,128, 23, 4, 88,140,131, 13,121,161, -155, 82,149, 5,198,186,174,185,201,156, 23,214,246,245, 73,116,199,240,114, 99, 82,251,144, 16, 82,186,142,220,116, 56, 25, 70, -215,126,120,179,190, 23,215,143,235, 41, 69, 24, 70,104,173,221,239,214,114, 58, 84,103,162,163,214,162,229, 58, 83,192,141,174, -229,150,136, 91,116, 2,179,154,148,197,230,160,238, 30,232,237,215, 54,242,201,187, 69,183, 84,114,107,244,222,216,164,187,249, -232,109,152, 75, 3, 7,218,229, 8, 18, 15, 4, 91,109, 70,118,111,101,178,211, 47,106,228, 70,179,217, 61,175, 54, 38,203,106, -122,236, 14,117, 41,251,135,240,238,155,176,220, 49,234, 96, 35,123,183,159, 13,189, 57, 35, 95,239, 15,156, 47, 81,116,149,181, -114, 59, 76,165,217,139,247, 16,121,173, 34,189, 51, 41,176,187, 15, 10, 35,235,125, 76,111,156, 94, 95, 75,185,222,147,211,189, - 89,119, 15,175, 14,150,180,235,243,149, 88, 98, 91,242,230, 80,241,222,209,148,233,112,136, 54,150,113, 28,163, 4, 12, 71, 67, -238,151, 9, 55,119, 51, 23,192, 80, 85, 20, 85,201,124,190,160,212,154,210, 24,102,171,132,155,229,130,155,197,156, 72, 5,148, -166, 4, 44, 81, 24,226,121,146,219,217,130,203,217, 29,251,129,207,179,189, 1, 86, 64,105, 61,132, 82,235,234,181, 91,173,213, -191, 95,224,251,189,157,234,102, 39,189, 9, 41,249,174, 67,249,187, 60,232,223,214,141,127,231, 65,190,163, 82,237, 36,155,183, -213,123, 91, 66,214, 7,143,231, 57, 5,188, 31, 4, 28,236, 31,112,116,120,200,108, 49, 35,203, 82,202, 60,239,136,239, 32, 8, - 2,124,207,119,176,141,202, 56,143,186, 53, 84, 85,133, 54, 22,163,237, 26,178, 35, 4,163,241,158, 11,206, 40, 93,218,155,144, - 18, 63, 8,208,101,185,254,176,215,135,173,214,154,162, 40,218,155, 89,239,253,185,161,252,223,238, 26, 68, 95,108, 38, 4, 82, -137, 94,104,134,181, 6, 75, 19,247,235, 68,122,158,231,198,146, 86,175,221, 9,158, 31,244,136, 97,205, 65,222, 96, 70,131, 32, -192,171,179,220,141,214, 46,165,172,142,172, 21,194,121,255,221, 99, 56,139,155,203,199,150,181,238,192,173, 29,154,108,116,175, -214,114,216, 13,145,211, 90,120, 72, 79, 24,167,164,228,248,232,132,233,193, 17,191,247,246,247, 25,142,247,248,159, 63,251,159, -248, 65,200,147,167,223,227,252,252, 17,191,252,197,255, 71,105, 45, 39,103,103,156,158, 61, 97,188, 63,101,255,240,152,195,163, - 99, 78,206,158, 16,197, 67,198,227, 49, 39, 39,103,252,252,127,252, 61, 55,151,223,144,102, 25,121,150,113,116,124,140, 54,112, -125,249, 2, 83, 86,164,105,198,203,175,190,224,242,229, 11,174, 47,191,118,209,113, 6, 94,190,252,170, 86, 99, 7, 68,195, 17, -227,201, 20,207,243,241, 60,201,244,248,140,201,120,143, 32,140, 24,140,246, 49,186,196, 90,195,217,163,167,196,163, 49, 89,186, - 98, 62,155, 17,134, 17,139,229, 10,139,123, 95, 25, 3,126,224,147, 37, 43, 87,244, 33, 25, 13,135, 24, 99,137,227,152, 60,207, -185,189,189,101,111, 50,193, 90, 88, 37, 9,163,209,136, 36, 89, 81,228, 57,198, 84, 8, 97,235, 14,189,192,171,193, 53, 69, 89, -146,231,185,219,247,151, 37,101,145, 83, 21, 5,105,154, 48, 26,143, 8,131,192,173,235,166, 83,172,181,100, 89,130, 16,224,123, - 62,105,150, 48, 28, 14, 90,224,148, 87, 91,215,156,147,195,146,231, 25, 66, 8, 6,195, 33,198, 52, 96,161,181,101,119, 27, 17, - 43,122,145,216,221, 20,204,214, 38,105,205,214,244,118, 29,127, 93, 31,246, 29, 1,181,148, 10,223, 15, 40,107,123,103,154,102, - 29,230,137,216,106, 36,215, 54,186,250, 96,221,236,178,155, 9,109,179,239,239,120,204,155,255,110,167, 91,244,187,236,230,192, -110, 4,216,221,239,217, 69,142, 91,115, 64,109,143, 4,183,153, 44,218,221,189, 55,235, 97,177,113, 96,239,210,169,116, 98, 68, -251,118,218, 14,244, 74,244,116, 42,253, 66, 65, 77,143, 79,223,255,246,251,181,232,217,206, 54, 5,114, 77, 71,223,247,111,119, -187,242,205,216,211,142,165,108, 35,146, 85, 73,213,179,152, 89, 54, 32, 0,173, 0,168, 57,228, 59, 88,213,206, 72,102,251,233, -175, 31,204,108,208,243, 76, 55, 4, 99, 99, 31,106,235, 49,112, 51,166,108, 20,208,194,106,204,106,193,185,167, 25, 9,193,100, - 56, 64, 10,201, 60, 75, 56,156,236,243,234,238,150,167, 39,199,220,220,221,243,252,242,146,210, 58,187, 81,154,103,124,125,125, -203,197,205, 13,121, 89,114, 55,159, 49, 95, 38, 36,121, 1,194,162, 75, 55,194,139,194,136,243,131,125,206,166, 83, 70, 97,200, -245,108, 70, 86,228, 28,120,134,147,161, 79,154,102,148,210, 3, 33,219,113, 88, 87, 28,213,221,155,239, 82,181,111,198,173,126, - 87, 71,254,208,193,244,173,234,205, 7, 70,242, 15, 5,189,236, 36,206,109,140,232,155, 9,179,236,136,116,252, 40, 68, 32,120, -246,244, 41,179,217,140, 52, 75, 41,139,162,125, 92,207, 83,248, 97,224,114,170,211, 20, 9, 84,166,170, 3, 63,220,161,174,107, - 80,141, 83,132, 75,198,227, 9,113, 28, 81, 22,185, 11,228,177, 16, 70, 78,108,231, 42,194, 86,185,129,239,121,172,146,116, 75, -196,217,220, 0, 27,241,162,218, 16,147,169,206,168, 90,128,131,201,212,152,189,118,196,173,214,197,174, 20,141,120, 70,174, 87, - 48,157,215,192,116,110,194,170,227, 87,111, 32, 53,198, 24,188, 48, 36, 8, 67, 71,250,170, 61,228,182, 30, 65, 75,229,117, 20, - 27,238,115,171, 43, 77, 16,134,238,218,148,213, 86,122, 94, 75,171,235,114, 19,118,104, 43,164, 82, 28, 31, 30,241, 39,127,244, -199, 44, 87, 75, 62,252,244, 99,238,111,110,121,231,251, 63,100, 60, 26,212,251,123,195,112, 56, 34, 79, 51,110,175, 95,145,167, - 75,174,174,174,200,179, 20,176, 60,255,242, 51,174, 47, 95,161,128,120, 56, 38,140,134, 20,121, 78, 89,230, 36, 73,142,231, 41, -242, 44,193, 15, 34,146, 36,231,224,112,234, 8,125, 94,128,231, 5,220,220, 92,130,169, 88, 46, 22,128,225,112, 58, 37,175, 71, -215,195,120,194,193,244,136,217,253, 53,147,253,125,246, 15,207,240,132,102,122,116,202,191,253,119,127,202, 87, 95,126,138, 80, -146, 60, 77,201,243,132,253,131, 41, 74, 42, 87, 44,250, 62,121,158, 50,187,191,115,221,161,167,200,243,130,193, 96, 64,154,166, - 44,102,115, 38,147, 9,175, 46, 93, 44,108, 16, 4, 8, 41, 25, 12, 6, 88, 96, 60, 30, 19,134, 33,101,153,187, 49,125,165,219, - 46, 82,151,121,139,243, 53, 90,187, 61,184, 49, 44, 23, 11, 22,139, 57, 74, 9,210,213,202, 77,113, 60,207,145,234,140,243,176, -207,102,119,196,113,140, 16, 94,141, 87,118,247, 77, 93, 85,110,149, 87, 79, 71,131,192,133,199, 56,192,145,105, 19, 39,251, 90, - 43,187,113,216,218,173,213,107,191,217,179, 61,203, 89,163,174,175,180,110, 39, 18, 85, 85,225,121, 62, 81, 60,160, 40,114,167, -217,208,166,115,216, 54,141,214, 6,138,252,129, 68,180, 45, 65, 90, 71, 44,215, 19, 0, 63, 64,135,235,129, 98,186,223,191,107, -207,190,105, 69,147,162,183, 82,147,189, 63,207,206,216,242,221, 7,186,232, 47,221, 55, 33, 60,236, 94,115,247,172,109, 8,212, -244,248,252,253,135,194, 51,214, 4,183, 93,108,118,177,195,171,222, 39,174, 53, 21, 25,162, 91, 24,216,245,101,217, 24,227,117, -111, 26, 86,172,119,217,118,131,238,222, 30,232,114, 61,146, 69,138, 45, 79, 51, 98,221,233,173,141,228, 46, 6,211,118,212,189, -221, 11,222,205,123,147,194,169,222,101, 13, 82,176, 2, 68,158, 99,231,119,168,229, 29, 39, 7, 19,215,177, 7, 33,158,242, 72, -242, 28, 79, 41, 94,221,221, 81, 86,134,231, 47, 95,114,121, 63, 39, 43, 10,210,162,100,153,101,172,242,140, 44,207,168, 42,247, -120,198, 66, 94,148, 76,247, 38,156, 30, 28,114,191, 92,162,141, 38, 12, 35, 6,158,207,163,131, 41,127,252,246,219, 72, 37, 72, -138,130,219,219, 91, 94,155,142,176, 89,202,170, 50,104,233,110,218,194, 82,115,162, 59,222,112,107, 31, 12,128,249,182,195,186, -187, 51,122,232,207,110,254,191,223,101,196,254,157, 66, 60,214,182,182,254, 72,222, 85,251,178, 22, 8, 1,110, 95,168, 13,223, -123,243, 77, 22,203, 5,105,154, 80, 22,101,107,169,105,110,188,214, 88,202,188, 64, 40, 73,165, 11, 7, 84,169, 25, 2,166, 6, -113, 52, 86, 31, 99, 44,143, 31, 63, 38, 79, 83,170,178,192, 15,252,122, 47,233,110,172, 80,115,227,173, 33,138, 6, 20,245,207, -107,138,168,166,139,105,196,105,221,157,250,150,135,124, 67,233, 43,164, 83,218,251,158,135, 20,178,142,206, 84,189,105, 84,243, -190,237, 89,230,154,226, 84,186,252,241,246,179,216,177,177, 25,234, 96,148, 32, 68, 41, 15,223,247, 80, 74, 56, 88,138,242,136, -162,200,229,125,151,133,211,144, 72,103, 41,243, 60,159, 65, 60,112,244,183,186, 64,217,180, 5,110,253,123,231, 61, 20,250, 33, -191,247,238, 15,248,226,249, 11, 62,250,228, 19,246,167, 83,140,177,188,251,238,219,252,250,215,191,226,244,244,156,159,255,236, -191,243,226,249,115,110,175, 95,185, 68, 50, 33, 0,141, 16, 30, 79, 94,127,155,170,200, 49, 90,243, 71,255,234,127, 97,190,156, -241,252,139, 15,201,243,130,195,195, 67,246,246,246,185,191,119,225, 41, 66, 42,222,122,251,109, 46,175,110, 72, 22,247,164,233, -178, 22, 36, 58, 48, 83, 16,185,145,175,244, 66,222,122,247,247,240,195,152,213, 98,206,229,245, 5, 66, 72,246,143,206,249,234, -249, 39,204,239,103, 76,167, 7,252,242,151,255,200,205,245, 75,150,247, 51, 64,147,151, 21,203,229,138, 32, 8,184,186,186, 2, - 4,243,229,140,241,120,223,137, 16,181, 70, 42, 73, 16,120, 20,165,243,215,204,230,115,246,247,247, 8,130,128,162, 40,219,201, -203,241,241, 9,179,249,156,249,252, 30,116,133,176, 22, 63, 8,136,135, 46,121, 80,215,133,148, 10, 3,226,193,128, 50,207, 9, -253,128, 40,140, 72,179,204,113, 18,124,159, 48,140, 25, 14, 70,196, 81,140,209,218,189, 95,172, 37, 93, 37,140, 39, 19, 71,119, -235,100, 57,232, 74, 83, 22, 89, 93, 40, 24,226, 56,162,168,170,122,149, 99, 59,135, 56,157,152, 85,209,179,183,109,190,159, 55, - 39, 83,205,206,221,125,201,237,212, 85, 29, 36,212, 52, 71,149, 49, 4, 94,224,130,152,140, 33,235,142,225, 91,245,184,236, 81, -217,186,135,232, 46, 95,120,207,234, 43,118,136,213, 54, 24, 38,221,239,239,137,176, 55, 58,243,230,239,230, 44,146,242,219,197, -113,221,174,124, 83, 79, 35, 54,220, 63,219,107,234,109,215, 79,119,205,221,231, 8,244,161,108, 0,234,240,228,252,253,237, 3, - 91,246, 65, 46,130, 45,187,206,118, 22,250,182,165, 77,212, 35,147,214, 64,191, 33,197,111, 46, 82,215,106,208, 86,105,109, 87, - 76, 59,102,223,180, 56,216,141,170,172,131,100, 95,191, 72, 82,236, 20, 39,108,138, 13,100,215,110,211,189,248,166,227,151, 46, -115,200, 19,100,190,226,112, 20,114, 48, 26,161,181, 83,180,166,121,202,170, 44, 72,178,132,139,251,123,126,251,213,115,110, 22, - 75, 42,107, 73,138,156,172, 40, 88,166, 41,121,169, 73,178, 2, 76,163, 72, 87,228, 69,193, 42, 75,153, 12, 98, 0, 22, 69, 70, - 81, 86, 40, 79,177,204,114, 66,207,227,181,195, 99, 12,150, 36,175,120,117,119,195,227,131, 61,252, 50, 99,153, 21, 24,217,248, -165,229,182,154,252, 1,255,120,191, 0, 19,223, 57, 50,222,180,106,236, 82,187,127, 91,231,254,187,230,173,187, 56, 83,250,240, -137,246,108, 23,173,136, 71,212, 16,142,179,147, 83,138, 50,103,181, 90, 81, 22,133,179,163, 9,137, 80,138,241,120,228,242,212, -117, 19, 74,227,198,157, 13, 27,223, 24,219, 11,144, 16, 82,241,248,201, 99,210, 36, 33, 75, 18,180,177,140, 70, 35,170,178,196, -232,178,183, 31, 79,211,140, 52,205,187, 53, 84,135, 38,216,143, 14,238, 94, 39,187,145,248,214,248,134,149, 90,219, 15,187,244, -192, 45, 84,101, 7, 27,187,190, 71,172,161, 67,205, 65,222,236,237,149,231, 17,132, 17,195,193,160,101,128,199, 81,140,175, 60, -151,236, 85,186, 21,194, 96, 48, 64, 73,229, 70,191,210, 49,218,203,178,104,139, 36,211, 48,244, 89,107, 56,122, 0,154,206, 97, - 47,234,156,131,195,131, 35,202,162,228,243, 47, 63, 33,205, 51,254,240,199, 63,197, 83,146,171,203, 87,252,187,159,254,148, 15, - 63,248, 13,105, 1,171,116, 69, 85, 85, 60,125,253, 13,252, 40, 34, 10, 7,188,241,230, 59,220,223, 94,243,205,139,231, 40,229, -115,124,122,206,207,255,254,239, 72,243,156, 42,207,208, 72, 22,139, 59,242,101,194,114,185,164, 44,114,174,175, 46, 73, 87,115, -170,178, 98,122,116,194,252,246, 14,163, 51,148,231,181,218,128,170,204,249,250,249,103, 84, 69, 73,105, 42,148,181,232,178, 32, -207,114,138,229, 29,199,143, 95, 99,180,183,207, 96, 16, 81,228, 57,179,219, 91,146, 36, 65, 73, 15,229, 57,224,208,225,225, 17, -171,100, 69, 20,135,228,137, 43, 0,227, 65, 76, 28,197,220,221,221,177, 55,217,195, 74, 8,234, 29,186,181,142, 25, 48,159,221, - 83,150, 5,203,197,130,193,112,200,114,177,192,154,218,105,161,113,112,150,162,112, 28, 4, 99,168,138,146,162, 44, 24,198, 67, -210,116, 69,101, 53,195,209, 8, 83,105,134,163, 9,119,119,215, 84, 69,193, 96, 48, 36,138,135,117, 55, 99,200,211, 37,161, 31, -160,124,175,157, 10, 5, 65,224, 64, 51,181,179,193, 90,139,209, 21, 81, 20,163,171,162, 22, 76,246, 89, 34,155, 7, 71, 35,134, - 91,139,214,228,134, 50,126,163,147,236,236,190,165,116, 69,133,172,173,110,212,150, 83, 93,175,146, 90,226, 99,247, 94, 97,215, - 54, 52, 37, 85,111, 79,222,215, 84,237,152, 44,178,129,121,101,215,216,187,175, 96,223,196,197,246, 4,223,157,115,177,247,231, - 55, 37,226, 59,196,214,187,166,147, 2,177,221,141, 11,177,113,198,138, 45,209,122, 95, 83,176,161,153, 58, 56, 62,121,191,179, -113,238,176,217,237, 78,168,204,166,242,189,233,184,197,214, 97,178,189,127, 88,147,221,100, 15,221,234, 44, 20,172, 71,242, 82, - 32, 84,237,213,174, 65, 31, 26,176,202, 9,159,154,148, 21,101,193,107,253,220,174, 19,183,114, 45,142, 51, 98,187, 19,146,157, - 74,169,119, 51,218,101,101,107,158,191, 53, 88, 91,225,229, 57, 97,185,194,215, 5,251,147, 9, 74,120,228, 53, 31, 60,201,114, -150,121,198,221,106, 73,150,231,172,138,194,237,206,173, 33, 43, 75,202,178,164, 50,134,188,204, 89,172, 82, 44,134,170,174, 90, -149,146, 36,121, 70,161, 13,227, 97,204,253,124,201, 60, 89,177,172, 61,172,101, 13, 2,217, 27,196, 20, 70, 51, 91, 37,204, 86, - 75,206,246, 39, 40, 83,178, 44, 75,172, 10,220,155,174,193,169, 10,118,194,100,190, 75,236,246, 47, 25,189,119,199,234,187, 14, -248,223,249,175, 93,223,103,109,187, 90,233, 87,162,162,134,160,232, 25, 34, 0, 0, 32, 0, 73, 68, 65, 84,188,200,150, 45, 62, - 28,186, 46, 37,138, 35,230,171, 5, 89,150,183,169, 84,126, 16, 16,132,161,163,248, 25,131,209, 6,109,214, 28,108, 23,170, 98, - 58,104, 74,129, 84, 30,167,103,167, 36,171, 21,182,141,206,117, 2,182, 50, 47,219,248, 72,207,243,209,166,206,227,171, 51,196, -141,116,163, 80,140,237, 8,201,104,181, 25, 61,241, 92,103,191,214,222, 36, 91, 47,186,105, 71,241,106,167,160,176,134, 28,121, - 94,189,227, 86,237,251, 91, 73, 65, 24, 70,189, 96, 32,107,173, 75,120,178, 16,197,113,189,115,119, 69, 81, 20, 69,196,113, 76, -150, 39, 20,101,229,132,116,166, 78,170, 19, 2,233,123,148,186,194,106,144,173,205,200,174, 1, 61, 61,189, 73,179,102,147, 8, - 97, 16, 72,126,252,227,159, 18, 68, 33,179,249,140, 31,252,224, 71,100, 89, 66,158,151,252,225,143,255,144,119,222,121,151,175, -190,185,224,139, 47, 62, 38, 77, 86, 72, 12,151,151,175,200,242,140,251,235, 91, 22,243,123,110,174,175, 17, 74,242,163, 63,252, - 99,126,249, 11,183,139, 47,138,130,178,200,200, 19, 23,224, 19, 15,199, 12, 71, 35,194, 56,230,123,111,191,199,114,121,207,209, -233, 57,126, 52, 2,171,137, 6, 3,242, 60, 71,151, 57,167,143,158, 48,217,155, 18, 4, 49,201,106, 70, 50,191, 99, 48, 26,243, -244,141,119,184,190,186, 32, 10, 61,198,147,125,138, 60,227,213,203,175,176, 2,124, 63, 34,207,114, 70,123, 99,202, 66,147,166, - 43,230,179,123,246,246, 70,220,221,220, 82,100, 43,140, 46, 72,146, 21,241, 96,128, 82, 30, 23, 47,190,194, 11, 60,198,227, 61, -150,243, 25, 82, 74,150,139, 5,251,123,251,204,102,115,124, 79,113,123,123,197,209,225, 49,203,197, 18,151,228, 87, 91, 7,133, -193,152, 10, 99, 53, 22,247,222, 45,171, 2,139,203, 53, 16,210, 39,203, 22,100,201,146,225,120,159,172,200, 40, 75,167,149, 40, -203,146, 40,142,209,186, 34, 89,205,137,162,168, 14, 92,129,188, 44, 25, 12,134, 53,186,218,105, 83,180,118,226,200, 40,140,169, -116,213, 22,162,107, 71,148,220, 16, 63,203, 45, 55,211, 38,128,102, 29,209,106,123,170,249,230,173,226,215, 76,143, 74,107,148, - 31,212,129, 84,134, 60, 47,106, 22, 68,127,197,212, 8,223, 54,109,100, 61, 8, 76,167,171,223,180,165, 53,157,123, 79,209,206, -154,218,246,224, 8,126, 23,245, 77,244,133,121,205,228,184,157, 78,109,196, 18,179,217, 68,117,232,148,219, 42,246,245,201,185, - 73,119,237, 54,212,155, 29,126, 23, 32,167, 14, 79,206,223,223, 45,144,218,182,164,245, 67, 88, 58,234,240, 77,237,171,232, 10, -210,250, 49,116,114, 13,130,238,239, 33,235, 29, 79, 51, 94,105, 40,174,109,244,166, 88,123,201,219,206,100, 99, 79,190,153,117, -221, 38, 80,109,254,126,157, 11,222,197,104,238, 68,160, 90,139, 16, 22,179,156, 35,231, 55,232, 90,144, 18,199, 17,121, 85,146, - 87, 37,214, 88,178,170, 36,201,115, 86, 69,142,168,153,205,205,118, 42, 47, 92, 42, 83,169,235, 68,169, 36, 67,214,172,250,160, -134,198,104,107,201,171,194,137,152, 45, 44,242,156,217, 42, 33,171, 74,202,170, 64, 27,203,193,112,228,192, 20, 82,112, 57,187, - 67,107,195,241,158,243,185,103,218, 98,149,215,190, 6, 86,124,183,215,252,219,198,239,189,202,175,131,160,101,199,193,190, 75, -100,247,109,123,247,157, 17,191,155, 84,169, 13,158,113,247, 13,169, 88,147,214, 12, 48,217,219, 3, 11,211,131,125,110,239,239, - 48,186,194,212, 40,205,209,100, 92,251,100,171, 54, 32, 71,235,146,170,206, 84,119,221,186, 91, 39,186,206,216, 9,159,206,207, - 31, 83,228, 41,139,197,188,183, 70,210,101,229, 4,107,214, 34,144, 24, 43,200,243, 18,223,115, 34, 52,103, 56, 21,248,157,168, - 86,165,228,214, 20,200,118,114,161,219,176,159,250, 80, 55,198,184, 25, 86,157, 37, 32,155,137,150, 84,157, 27,152,234,225,148, -187, 93,185,177,134,178,170, 8,252, 96, 29,171, 90,127,143,227,152, 59,177, 97, 24,133, 4,126, 64, 94, 20, 12, 7, 3,246, 38, -251,109,177,227,114,206, 5,101, 85, 97,172,219,211, 58,154, 97,133, 84,162,197, 8,171, 46, 18,183,167,242,119, 5,192,249,217, - 83, 62,248,224, 55,252,234,151,255,132,242, 37,255,254,207,254, 3, 63,255,249,207, 72,147, 5,131, 65,200,255,245, 95,254, 11, -190,231,243,245,243, 47,200,210,148, 82, 91,158,189,246, 26,158,140, 24, 12, 66, 38,211, 99,164,175, 24, 13, 7,220, 92,124,195, -191,249, 95,255,140,189,233, 49,131,225, 0,191, 97, 19, 84, 26, 91,175,201,206,206, 31,243,242,197,115,170, 60, 35,205, 50, 14, - 14,166,228, 69,130,231, 43,246,143,142, 72,151, 11,176,130, 44, 75, 48,198, 17,228,166,135, 39, 40,229,241,242,235, 47, 73,230, -215, 76, 38, 39,156, 61,121,157, 52, 73,185,186,120,129,169,220,225, 26, 13, 38, 45,129, 77,213,162,195, 52, 77,235, 12,248,172, -221, 75,151, 69, 65,165, 53,131,225,144,155,203, 43,210,213,130, 40,138,184,187,187, 39, 8, 2,150,203, 21,113, 20,225,249, 65, - 45,212,243,176,194,114,120,124,202,193,225, 9,105,154,128,213,237, 97,104,219,226, 63, 32, 8,134,174,160,242,124, 48, 26, 83, - 26,242, 44, 99,184, 55,198,232,154,134, 88,107, 42,252, 32, 32, 73,151,136,250,181,174,116, 35,160, 20, 53,110,218,162,164, 3, - 41,173,121, 15, 97, 47,153,109, 83,247,212,117,110,128,221,134,173,212,231,131,169, 81,216,235, 38,145, 53,188, 9,231,184,104, -104,142,198, 24,162, 48,170,185, 8,146,162, 44,182, 39,135, 77,114,163,236,239,205,219, 52,180, 6,179,189, 99,242,184,121,160, -247, 58,116,209,193,203,138, 78, 1,176, 1, 55,219, 76, 94,219, 92, 53, 73, 33,182,236,105,236,194,138,247,113,115,125, 37,252, - 3,112,247, 93, 19,147,190,245,188,255,239,106,122,114,246,254, 67, 89,230,108,236, 3,214,176, 18,219,191,144, 98,157, 53, 46, -186,144,215,214, 19, 46,183,246,220, 98,125, 13,251,163,138,102,223, 93,119,154,170,251, 75, 88,122,214,181,102,151,190,117, 80, -116, 70, 30,155,202, 92, 81, 71,140,110, 6,117,212,155,159, 90, 3, 85,223,180,173,198,147, 22, 63, 75, 40,111, 94, 81,166, 25, - 40, 73, 28, 6, 45,121,161,210, 21, 82, 8, 86, 89, 86,251,125, 29,164,166,170, 42, 42,109, 92,198,119, 13,238,104,124,169, 89, - 94,182,123, 41,175,230,186, 7,129, 95, 23, 39,206,207,158,150, 57, 89, 81,178, 76,210,118,130, 98,172, 97, 47, 30, 49,207, 86, - 84,198,114,183,116,227,181, 65,224,145,165, 9,149,149,104,207, 67,214,217,236, 15, 29,210,242, 1,127,100, 87, 87, 32, 58,130, - 46,186, 59,244, 78,152, 9, 59, 82,144, 54,187,245,127,201,120,126,203,230,241,224,227,116, 20,241, 18,252,218,251,191,183,183, - 71, 89, 85, 60,125,252,132,251,217, 29, 73,146, 96, 42, 13, 74, 48, 30, 79,220, 46,179, 44, 48,149,243,164, 87,186,108, 61,193, -214, 88,176,114,195,209, 33, 57, 58, 62, 38, 10,124,102,139, 57, 66,186,162, 75, 41, 73,165, 75,186, 97, 67,171, 36,173, 71,152, -174,136, 8,162,168, 30,241,186,238, 95,121, 94,253, 57, 49,189,113, 97, 55,208,133, 14,175, 95, 42,177,102,173,183, 76,235,117, - 81,213, 8,239, 90,171, 75,253,105,107,168,130,141,134,196,247, 67, 6,245, 40, 54,240,220,225, 17,134, 81,173, 47, 48,245, 10, -195,237,223,135,131, 1, 73,154, 17, 71, 49,131, 65, 76, 20, 70,235, 66, 92, 58,107,146, 95, 23,159,149,209, 40,161,234,247,181, -179, 87,138,206, 20,108,147,123,191, 88,206,209,149, 97, 60, 25, 97,141,225,248,228, 17, 95,191,248,154,243,243, 83, 46, 46, 46, -249,201, 79,254, 21,203,213,156,247,126,255, 39, 8, 21, 1,150,251,249, 45, 63,252,253,159,240,197,103, 31,241,244,233,235,140, -135, 99, 62,255,236, 19,222,120,251, 7,252,195,223,255, 63,124,250,225, 63,115,241,226, 5,201,202,197,159, 54,248, 91,132, 64, - 40,143, 44, 93,185,236, 5,107,185,190,120, 65,178,156, 97,116, 69, 85,228, 4,158, 71, 85, 58,237,132, 46, 50, 22,139, 37,121, -213,120,244, 21, 97, 60,228,232,228,156, 15, 62,254,144, 34,203, 9, 3, 31,129, 33, 30,140,145, 2, 14,166, 39, 60,121,246, 61, -142,143,142,200,178, 20,221, 10,190, 98,116,165,209,186, 34,136,135, 4,161,139, 6,206,210, 21,101,238, 62,203,131, 65, 76,146, - 36, 68,161, 15,198,176, 92, 45,137,194,136,201,129, 83,176,207,231,115,150,203, 37,163,209,200, 21,144, 85, 89, 43,189,125, 6, -147, 49,199, 39,167,132, 97, 84, 43,244,199,236, 79,143, 8,227, 33, 97, 20,178, 88, 44, 92,129,106, 42,210,100,137,193,226, 5, - 17, 10,195,114,126,143, 31,120,248,126, 68,145, 23,181, 48, 82,174, 49,175,210,113, 4, 26,143,123, 16,132,245,231, 64,181,123, -241,238,104,189,235, 29,239,209, 16, 59,231, 67,215, 26,215,141, 69,109,190,236,251, 78,211, 97, 89,135,104, 69, 97,232,138,200, -118, 77,182,125,207,234, 3, 92,196, 86,170,154, 84,178,103, 83,219,132,190,244,160, 50,155,148,185, 29,121,230, 91,162, 53,209, - 47, 96,101, 71, 0,222,219,147,119, 60,241,162,183,222,221,164,169, 74,122,104, 49,177,253,132,251, 4, 87,187,245, 92,186,113, -229, 56,162,156,104,247, 39, 27,252,151, 30,192,133, 46,117,173, 3,169,232, 41, 19, 45,219, 81,168,182,223, 29,219,142, 93, 73, -108, 40,230,109,231,143,211, 88, 39, 44, 61,251,156,169,119,233,205,147,181, 29,160,134,232,168, 53,187,136,188,246, 32,111,108, - 68, 82,110, 5, 95,180,172,106,177,126, 3, 43, 33, 25,234,146,213,221, 43, 76,101, 40,140, 97,236, 43, 38,163, 33, 86, 8, 12, -150,178, 42, 41,165, 66, 91, 67,169, 43, 39,250,192, 82,214,176,143,160, 46, 32,138,162, 68,168,245,243,117,161, 12,178,189, 30, -113, 24,145, 21, 5, 69, 89,162,164, 36,240, 3,146, 52,163,210,134, 69,154, 56,193,147,176,132,126, 64,172,124, 70, 81,196,205, -124,206,237,108,206,116,127, 76, 44, 42,108, 57, 39, 17,154,194, 31, 35, 27,150,249, 46,133,106,231,218,109, 30,182,205,243, 91, -211,249, 58,222,235,174,205,175,163, 78,255, 46, 17, 94,151,253,190, 75, 84,213, 27,185,239,242,122,210,207, 33,232,170,175,173, - 49,164,105,198,104, 60,110, 61,195, 74, 41,140,148, 8, 85,131, 91,140,174,111, 18, 98,171, 72,232,122,251,165,164,221, 71,166, -105,194,116,255,160, 86,165,139,186,171,239,139,195,138, 82, 35,149,135, 53,213,250,107, 73,214, 18,255, 60,207,193,113,148,231, - 49, 30, 29,214, 98, 60,215,233,251,129, 79, 80,243,218, 93, 1, 88,181, 55,165, 38,126, 85,215,123, 79,106, 59,217,104, 60,162, -170,180,235,226,234,162,181,200,139,250, 38,170,107,223,177,195,220,122, 50,160,172,170, 54, 8,200,130, 83,179,251, 62,182, 46, - 52,188,154, 56, 23, 4, 33,135,211, 3,138,188,172,119,232, 21, 71, 71,199,164,105,202,117, 13, 73,105, 66, 58,124, 63,112, 99, -211,178, 34,138, 66,242, 58,215,188,171, 21, 80,157, 21,195,116,122, 68, 89, 84, 92, 94, 94,240,236,233,155,252,243,175,255, 25, - 99, 74,198,227, 3,138,188, 34, 8, 7,168, 48,228,227,143, 62,226,131, 95,255, 12,233, 41,162,120,194,199, 31,254, 6, 63,140, -201,203,130,143,126,251,107,170, 60, 99,126,127, 67,145,164,104, 3,198,104,116,153, 33,133, 37,205, 74,172, 46,240,130, 16, 79, -249,228,105,230, 70,215,104,240, 34, 78, 14,159,144, 23,115,242, 60,103, 60,158, 48, 8, 66, 44,150,229,172,228,232,248,148,203, -139, 23,220, 94, 22,140,134, 35,148, 47, 88,206,102,104, 83,178, 50,112,176,191,143,242,220, 1,180,127, 48, 37, 28,140, 89,220, - 95,178, 88,204,121,227,237,239, 51,159, 93,243,245,231,159,115,119,119,199,100,178, 71, 49, 43, 40,179,140,201,100,159,120, 50, - 98,121,127,135, 10, 20,210,247,137,134, 49,105,154,224, 7, 33, 73,154, 49, 61, 58,226,238,250,134,188,200,153, 30, 30,241,234, -226, 37, 88, 77,150, 44,240, 61,143, 48, 12, 28,209,205,243,209, 69,197,203, 23, 95,183,156,254, 40,138,201,243, 12, 63, 8, 57, -123,250, 26,227,189, 61,238,239,239,201,146, 37,158,239,225, 41, 73, 85,185,107,162, 60,143,155,235, 27, 78,207, 35,148,146,164, - 73, 74, 52,136,145,202,195, 87, 30, 69, 89,226,135, 32, 61, 77,145,229,181,127, 94,214,120,105, 7, 89, 82,181,119,187,129, 24, -173, 81,178,238,134,223,124,190,218,207,168,109,239, 38,157, 21,171,108,181, 5,141,250,189, 57,248,140,169, 64,249,140,134, 67, - 4,224,103, 30, 89,150,215, 97, 88,221,100, 71,187, 69,105,235, 78,127,187,250,147,166,187,223,100,158,192,218,202,182,201, 63, -105,239, 55,155,235,133, 14, 70,188,143, 49,239,138,183,237,150,197,184, 71, 96,221,193, 14,233, 38,128,210, 66,213,118,223, 71, -215, 7,183, 97, 87, 35,222, 28,123,106, 90,143,223,187,246,180,190,218,189, 47,163, 95,143, 84,214, 42,200,222, 70, 90,208,241, - 80,139,118,189,222,181,162,137, 26, 2,211, 62, 78, 19, 36, 95,243,172,215,149, 83,111,149,218,185,168,219, 33, 0, 82,108,140, - 53, 54, 68,112,221, 72,210,181,135,187,131, 26,220,160,198, 41, 97, 81,166, 98,148, 57,219, 89,150,151, 8, 5,231, 71, 7, 12, - 99,247, 65, 41,141, 65, 23,101,109,215, 48,228,149,118,227, 36,235,182,174,218, 24,194,154,175,236,236, 80,110,228,158, 23, 37, - 90,187, 81, 82,224,251, 8, 96, 52, 24, 56, 63,105,253,226,122, 82,186, 67, 67, 74, 23, 93, 88,199,170,150, 85,225, 10,128, 60, -199,243,125,238,150, 75,132, 21,148, 85,137, 53, 6,175,222, 69, 27,229,215, 5,146,220,128, 74,244,217,226, 93,149,242,102, 8, -199,230, 33,236, 14, 15,118,124,125, 55,201,238,119,161,205,153, 93,157,121, 67,201,179,236, 36, 21,122, 29,206,248,163, 39, 79, - 28, 31,187,204,107, 80,135,173, 59,130,160,101,188,187,195,169,164,210,235,157,186, 49, 77,113, 96,235,253,162, 27,115,123,190, -199,233,201, 41,119,247,119, 8,168,187,122,221, 90,204, 44,240,218,235,239, 96,173,235, 98,133,116,152, 87, 26,225, 88,237, 49, - 23, 66, 56, 63,110, 89, 81, 22,149,251, 12,105, 67,153, 23, 20, 69,225,108,113,190, 71, 24,132, 4,190, 79, 24, 68,236,239, 29, -112,116,120,194,227,243, 39, 60,125,250, 26,103,231,143,121,252,248, 25, 71, 71, 39, 28, 31,159,115,114,124,202,201,201, 35,142, -142,206,216,155,236, 59, 52,232,112,210,118,237, 13,168,196,243,188,118, 44, 24, 6, 1, 65, 20, 18,197, 49,113, 28,187,157, 39, - 16,197,145, 43,124, 42,103, 55,138,194,208,117, 76,133, 19,128, 78, 15,246,209,218, 80,233,138, 74,151,181,176, 85,180, 54, 54, - 81,103,126,183, 41, 11,157,236,121, 37, 37,223,255,254, 15,120,121,113,201,179,103,207, 24,143, 71, 72,207, 9,231, 6,195, 1, -151, 87, 87,252,246,131, 95,115,125,241, 53, 87,175,190, 97,185, 90, 49, 28, 78, 88,173, 22, 20, 89, 66,178,156,147,165, 57,190, -231,241,253, 31,253,132,192, 87, 28, 76, 15, 57,123,252,180,198,246,150, 40, 47,224,248,236,148,104, 56, 70, 9, 73,154,174, 64, - 10,242, 60,199,247,124,206, 31, 61, 97,182,152,113,176,183,143, 69, 16,197,145,227, 61,148, 5, 85, 85,145,172,150,232, 74,163, -164,197,243, 36, 65, 56, 98, 60, 57, 36, 89,222, 33,176, 68,241, 0, 35, 60,132, 84, 4,241,128, 52,113,154,141,170, 44,249,242, -179, 15,136, 7, 35, 52,150,213,252,150, 82,107, 39,194,171, 10,146,229,204,173, 44,164, 36, 75, 19,140, 49,228,101, 69,228, 7, -220,222, 92, 49, 61,152,114, 63,155,179,183,191,207,252,238, 14,233, 41,132,132, 50,119, 22, 62, 91, 91, 46, 77,189,130,161, 94, - 27, 57, 8,204, 26, 88, 35, 60,143,217,237, 21,195,225,152,243, 71,143, 9, 2,159,249,108,198,120, 52,170,199,213, 30, 82, 9, -178,213, 10,139, 97, 48, 24,214,201,110,238,222, 84,212,148, 63, 23,223,219,196,226,218, 14,124,198,182,194, 77,175,153, 58,117, - 58,113, 37,229, 3, 69,184,236, 48,226, 85,231, 28, 81,109,129,176,126, 92,133,174, 12, 66,168,154,122,167,121,253,245,215,241, -131,128,213,114,213, 83,187,111,250,207,123,106,120,118,228,131,108, 28,188, 93, 76,108,119,164,222, 54,154, 27,145,169,155,202, -246,245,153,182,177,178, 20, 59,236,185, 98, 87,138,250,198,124, 82,236, 38,177, 62,148, 17,255, 0, 61,182,183,226, 80,135,167, - 14, 19,219, 61,208,121,232,169, 8, 92, 6,111,135, 44,100,155, 76,244, 22, 18, 34,215, 22,182,182, 98,114, 85,156,176,162,245, -218,118, 31,212,212,226, 54,185,230, 19,244,196,111,237,239,175,214,187,199,230, 64,106,131, 54,234, 55, 73, 55, 53,170,219, 85, -110, 90,109,214,111,218,245,203, 40,154, 17,142,144, 40,105,217,175,114,170, 98, 69,154, 57, 75, 90,232,251, 28,237, 79,240,164, -187, 73, 22,101, 65,228, 7, 88,220, 77, 46, 43,139,214,254,230,188,159, 21, 94,171,242,116, 40, 73,107,113, 22, 40,107,241,164, -219, 75, 5,129,135, 39, 21,195,193,128,178, 42,107, 86,183, 27,167,150,149,166, 40,202, 26,224,160,235,125,173,164,172, 52,190, -175,200,203,138, 82, 87,232,170, 34,201,115,148, 48,196, 53, 2,210, 42,191,135, 88, 84, 15,196,167, 54,215,209,237,237,188,214, - 46, 37, 59,152,213, 32, 8, 90,144,200,166, 5,113,115, 87,188,203,234,246,157,170,247,205,241,124, 83, 96,216,166,214,111,228, -105,162,115,168, 55,100, 52,197,225,201,137, 67,162, 74,193, 42, 73, 40, 75,119,205, 28,229,202,249,160,203,170,164, 42,115,170, -102,244,222, 77,144, 51,182, 21, 7,201, 90,104,246,228,241, 19,238,239,111,221,247,231,142, 8,216, 64, 47,162,104,204,120,188, -207,139,151, 95, 59,194, 95, 45, 52,106,178,180, 27,219,142, 18, 18,171, 43,132, 0,207, 87, 8,105, 81,190,170,119,159,206, 26, - 86,212, 66, 74,171, 13,218,106,202,178, 96, 54,155, 49,159,207,201,242, 12,129, 59,164,180, 54, 68, 97,200,209,201, 41,167,103, -143, 56, 59,127,194,179,215,222,226,252,209, 27,188,246,250,187,188,254,198,219, 60, 58,127,194,249,241, 41,158,114, 10,246,178, - 42,200,242, 20,173, 43,134,195, 33,158,146,196,209,128,241,216,137, 11,155,215,121, 48, 24, 56,234, 89, 81, 32,165, 96, 60, 28, - 57, 80, 73, 81, 48,158,140, 9,130, 16,173, 43,135,149, 53,198,141, 78,141,117,108,137,118,115,182, 6, 56, 41, 41, 25,196, 49, -113, 52,102,177, 88,240,201, 71, 31,161,124,143, 31,255,248,143,248,135,127,248, 59,132,112,133, 80,169, 43, 44, 30,231,175,189, - 69, 85, 89, 87,144,232,130,101,146, 48, 57, 56,228,237,119,223,227,254,230, 18, 63,138,249,139,255,248,191,243,205,203,151,220, -223,223, 49, 28, 14, 49,166, 34, 93, 44,200,210, 5,171,229, 10,107, 45, 39,103, 79, 16,194,163, 76, 86, 8,224,254,230, 26,140, - 33, 77, 86, 76,246, 38,148, 89, 74, 60,136,177, 70, 99,180,139,225,181,214, 16,199, 3,162, 48,100,122,122, 78,146,205,137,130, -129, 59, 16,253,208,113,242, 11,183, 94, 75, 22, 51,178, 85,194,124, 54, 35, 77, 50,130, 40,102, 24, 15, 72,210,132, 60, 77, 8, -131, 24,229, 41,116, 85,146, 36, 41,123,251, 83,146,213, 2,172,102, 48, 24, 17, 69, 17, 89,158,176, 92, 44, 24, 14, 6,164,105, -206,254,225,148,187,155,107,252, 32, 96, 16,143, 24,140,247,136, 7, 67,151,109,144,151, 88,187,118,106,172, 5,170,245,200,219, - 90,226,193,152,187,235, 87, 44,151, 75, 6,227, 9,113, 20,113,115,117,201,104,111,143,178, 42,145,210,199, 86, 5,203,213,138, -189,253,125,199,139,175,189,233,190, 39, 41,139,162, 46,194, 84,143,123,161,148,172,221, 33,186,142,103, 22, 4,126,176,219,127, -186, 21,183, 45, 59,126,245, 58,242,215,138,173,123,132, 87, 3,113, 26, 64, 77,163, 27,185,159,205,120,235,157,183, 56, 60,156, -146, 36, 9, 90,235, 45,220,235, 67,190,244,135,132,193,187, 84,239, 77,151,223, 13,130,217, 36,199,109,193, 94, 58,130,107,187, -195,135,222, 93, 71,117,191, 91,108,160,111,165,220,116, 32,109, 58,208, 30, 96,175,108, 29,230,125,119,130,247,173,135,120,239, - 2,212,251, 59, 91,211,173,228,218, 94,212,100,128, 55, 36, 48,201,218,206,211,118,231,157,138,167,203, 92, 23,117, 85,210, 34, -245, 58, 86,153,182, 75,219, 1,177,111, 70,126,182,147, 48,166,235, 17,123, 19,109,105,113, 49,157,214,210, 27,237,183,190, 97, -213,223,175, 91, 99, 92,181, 42,192,211, 37,145,201, 89, 90,218,174,206,117, 98, 2, 97,220,129, 28, 72,201, 48, 26, 48,203, 82, -215, 33, 27,139,145, 78, 7,160,107,165,117, 89, 85, 4,158, 7, 82, 58, 91, 85,211, 17,154, 70,136, 1,101,165, 41,171, 18,191, -249, 80, 89,183,223,106,244, 7,210,119, 42,123,149, 67,234,151,220, 47, 87,248,190, 79,178, 90,114, 54,221,231,131,175,190,102, - 28, 13, 40,138,148,202, 74,252,106, 73, 24, 87, 40, 52,153,138,209,158,223,102, 11,203, 7,236,107, 46,144,164, 99,233,175, 15, -239,166,131, 46,139,162,238,248,215,227,239,205, 17,250,174, 81,252, 46,174,252, 67,190,230,110,177,176,126,147,218,181, 43,130, - 62, 43,190, 21,106,213, 26,134,217,108,206,244, 96,175,238,142,221,161,153, 23,133,163,167, 85,122, 29, 91,218,196,186,218,254, -123, 92,235,181,234, 55,205,178,250,198,233, 1, 69,207, 13,225, 7, 33,171,229,130,143, 62,254, 45,123,227, 61,162, 56, 98, 56, - 24,113,116,120,140,239,123, 92, 94,188,100,185, 90,225, 7, 1,105,154, 17, 4, 62,131, 56,198,247, 67,246,247, 38, 28, 31, 31, - 19, 71, 49,159,126,241, 25,101, 89, 80, 20, 37,195, 65,204,247, 94,127, 29,161, 20, 23,175, 46, 72,235, 67,169,170, 42,110,175, - 95, 49,153, 76, 56,152,140,248,230,197,151,252,227, 47,254, 7,121,158, 19,135, 17,167,167,167,188,241,198,155,220,205, 87,204, - 23,115,108, 85,162,171,146,225,104,200,120, 60,225,192, 59,224,233,227, 39, 92,188,186, 96, 54,155, 19,142,195,246,119,197, 90, -103,187,170,195, 91,202,178,100,111,207,117,252, 69, 81, 16,197, 49,126, 24,112,125,115,131,167, 20,199, 71,199,204,230,115,132, - 72,200,243,220,233, 5,218,247,207,186, 80, 30, 14,134, 4, 65,200,217,249, 51,226,193,128, 87,255,227,239, 80,210,130,213,124, -254,217,199, 28, 31,159,112,117,117,193,114,185,228, 39,127,252, 83,146, 85,198, 95,255,213,255,237,178,212,139,140,147,211, 39, - 68, 67,167,133,248,224,215,255,200,254,254, 20, 33, 5,255,233,255,252, 63,152,221, 95,179, 88,204, 41,139,156,189,201,136, 52, -203, 64, 56,100,178,169, 36,243,251, 91,180,177,120,190, 71,165,221,253,167, 44, 82, 68, 24, 16,122, 10, 65,192,114,177,100, 56, -140, 81,202,199, 84,117,122, 95, 85,145,231, 5, 47,190,250, 20, 42, 67, 16, 69,172,150, 43,246,132, 32, 77, 74,108, 85,162, 86, - 43, 12,134,100,185, 34, 79,157,214,101,118,115,205,217, 15,127,204,245,229, 21, 58, 47,200,242,132,120, 48,230,240,232,128,187, -187, 91,150,179,123,154,152,210,187,155,107, 78,207, 31, 49, 28,239,147, 39, 9,201, 42, 33, 30,141,157,136, 83, 27,138, 44,167, - 42,243, 86, 20, 25, 69, 49,209,104, 68,178,152,181, 83,178, 70,141,174,181,193,152, 28, 1, 20, 69,206,222,222, 1,203,229,146, -139, 23, 95, 51,217, 63,224,228,252, 41,179,197, 29,163,225,136,162, 40,240,227, 17,100, 9,243,217,156,195,227,211, 86,240,231, - 66,125,234, 21,147,117,227,114,233,249,238,174,221, 54, 39,101,189,190,116,194, 73,135,132, 13,234,113,124,217,163, 84,246, 63, -239,178, 13,231,114,204,247,245,160,181,129,100,105,237,236,149,218,104,180, 5,180,192,243,220,218,225,213,203, 11, 94,127,227, -117,142,143,142,248,242,203,231, 60,255,234, 43,119, 47,214,102, 61,150,111,133,193,157,115, 7,219,219,191,247, 24, 15,155,187, -117, 54,130, 91,196,195, 96,172,157,145,167,155,226,235, 13,244,248,195, 7, 49, 91,235,197,190, 69,124,243,126, 41,182, 2,211, -186,218,183,238, 83,245,186,212,160, 93, 88, 88, 81,139,225,172, 53, 53, 16, 70,238,176, 58,173,145,145,178,107, 97,147,178, 85, -238, 54, 23,207, 8, 23, 68,210, 38,177, 1,202, 56,120,138, 17,160,155,177, 67, 51,222,169,149, 81,186,211, 89, 55, 99,250,110, -164,100, 51,170,109,114,158,155,223,208,200,174,199, 80,244, 40, 88,162, 19, 63,217, 88,148,172, 49,248, 82, 50, 50, 9, 24,131, -209,150,210, 56,133,125,105, 12,121, 89, 16,123,161, 83,138,170,128, 81, 28,145, 21, 21,202, 23, 40,161,208,149, 69,248, 10,107, - 43, 16, 80, 25,141, 47,124,140, 94,167, 29, 89,108,219,205, 33, 4,126, 61,253, 48, 70, 19,171,128,133,206,214,201, 87, 24,116, -141,234, 44,107, 11,200,170, 40,137, 81,164,133, 97, 92,179,185,157,128,201,226, 33,208,126, 72, 82, 24, 2,147,226,123, 26,107, - 98,172, 23, 98,154,169, 65,125,173, 76, 83, 4,117,108, 18,109,193, 35, 93, 69, 33,235,199,111,253,212,181,166,193,108, 6,179, - 60, 32,144,123,200, 39,191,243,123,186,246,182, 46, 41,173,219, 13,116,246,238,198, 24,124,229,161,181,102,181,152,227,237, 31, - 18,250, 65,109,215,113, 7,189,167,188, 54, 12,165, 72, 75,164,240, 17,194, 34,240, 64,148, 61,134,157, 75,173, 82,109, 64,202, -108,126,223, 78,127,154,170, 90, 41,133,213, 37,133,118, 66,200, 60,203, 48, 70,163,148,207,114, 53, 39,142, 6, 76, 15,143,152, - 30, 28, 56, 91,102, 61,122, 92,174, 22, 60,121,252,152, 40, 8,120,117,117,197,112, 48,224,254,230,146,171,171,107,134,163, 33, -121, 54,224,179,207, 63, 71, 2,121,158,214, 55,188,186, 67,171,137,119, 74, 74,132,242,208, 85,217,190, 78, 47, 47, 94,242, 79, -191,252,167, 58,152,198,180,215, 78, 41,201,201,241, 25,199,199, 39,252,205,223,253, 29,105,178,114, 66,183, 90,217, 60, 61, 56, -224,205, 55,223,224,230,246, 22, 33, 4,135,135,135,156,159, 63,162,170, 74,202,210, 48, 30, 11,242, 34, 35, 75, 19,206,142,143, -152,205, 23, 84, 90,179, 55, 26, 59, 60,173, 49,148,182, 68, 87, 14,148, 84, 85,165, 83,214,123,130, 97, 60, 70, 96,185,186,186, -224,242,242, 21, 97, 16,241,236,245,239, 49, 24,132,132, 97,200,106,149,112,117,241, 13,111,190,251, 46,159,125,246, 49, 55,151, - 87,228,201, 2, 83, 20,156,158, 62,230,248,252, 49, 31,254,243,207, 56, 62, 57, 71, 87, 25,215,215,215, 60, 14,125,110, 94,189, - 96,149,101,232, 34,175, 59,225,132,195,211,115, 60, 79,113,115,125,129,167, 2,116, 85,178, 90, 46, 81, 97,204,159,252,219, 63, -229,249,231, 31,145, 37,115,178, 60, 37, 26, 31,241, 7, 63,248, 17,194, 24, 94,190,250, 6,163, 13,171,131, 91,252,208,231,238, -250,150,215,143,206,248,213, 47,254, 59, 69,238, 66, 80,130, 48, 36, 79, 23,181,166,162,194, 23,146, 50,207, 72, 23,203,246,208, -202,211, 21,191,253,197, 63, 80, 84, 5, 85, 85, 58, 61,198,106,134,169, 50, 6,163, 9,152,202,237,197,165, 32, 12,124,238,111, - 46,137, 6, 35,252, 48,164, 42, 92, 7, 44, 61,143,120, 56, 98, 56, 30,177, 92,204, 88,206,239, 49, 90,147,234, 10, 63, 26,224, - 5, 33, 85,225, 98, 74,149,114, 5,162,197,186, 14,214, 88,164, 53,220,223,220,225,249, 30, 81, 13,160,185,189,185,226,248,228, -172,254, 12, 56, 43,219,120, 50,165,170, 42,202,170, 36, 8,195, 26,238, 21, 56,129, 31, 56,118, 60, 2, 41, 75,180,172,192,106, - 71,160,107,195, 91,108,235, 99,111, 28, 0, 74,249,117, 49, 92,186,200, 99,217, 4,196,168, 13,202,104,205, 35, 17, 29, 74, 93, -173, 39,113,130,204, 90,199, 99, 12,165, 41,241,125,143,251,187,123, 86, 39, 9,227,241,136,183,223,125,155, 39,143, 31,243,155, -223,254,150,217,108,238,116, 50,117, 35,213,222, 75, 68,167,209,236,106,199, 54,133,114, 29,103,214,183, 82, 53, 55,232,163, 59, -181, 73,157,201,226,183, 29,226,155,186,160,237,102,218,238,116, 8,245, 15,244, 93,137,168,219, 63, 71, 29,158, 62,122,255, 97, - 90,156,172, 5, 85,118,171,250, 88, 43, 5,109, 59,122,183,157,202,168,151, 65,107,233, 97, 76, 27,118,118, 27, 21,183, 54,145, -119, 20,128,245,155,161,229,180,119, 84,133,205, 65,220,236, 44,186, 7,129, 16, 91,170, 98, 54, 2, 53,122, 83,130, 78,183, 40, -235,245,129, 18,134, 65,153, 98,117,201,170,200, 89, 36,153,251, 96, 2,161,130,201,100,236, 60,194,202, 99, 58, 30,178, 76, 82, -164, 39, 73,139,178,174,100,235,174,178,158, 2,248,158,215,243, 69, 87,218, 80, 20, 21, 65,224, 35,235, 73,133,239,121, 68,129, - 79, 28,134,228, 85, 81, 39,135, 81, 43,233, 93, 39, 47, 85,157,237, 94,143,221,242,170, 32,240, 61,238,150, 43,192, 18,251, 33, -171, 44, 35, 8,125,244,112,159, 82,248, 88,229, 70,109, 86, 42,247,193,169,199,233, 93, 65,135,106, 89,252,107,101,166,177,235, - 67,162, 9,115,232,178,240,237, 3, 98,184, 7, 45,107, 15,128,104,196,239,178,131,218,252,185, 53,204,195, 26,139, 31,134,196, -131, 1,167, 71,199,220,220,222, 56,127,175,181,248,190,135,174,156,158, 65, 87,110, 12, 94,149, 85, 47, 71,218,152,198,106, 83, -239,249, 0, 21,132,156,157,158, 97,180, 38, 73, 19,202,220, 77, 42,226, 56,198, 8,159, 31,253,232, 39, 76,167, 71,174,211, 80, - 62, 74,194,108, 54, 39, 30,196,124,252,201,135, 92, 94, 95,241,252,249, 23,124,249,197,167,124,253,213,151,220,221,222,113,125, -123,203,245,221, 45,201,114,201, 7, 31,252,150,187,217,140,225,104,200,222,222, 1, 79,159, 60,115, 29,168,214,140, 70, 19, 60, -233,113,119,123, 71, 89, 85, 12, 6, 67,103, 97,146,158, 83, 92,235,202,237,185,107, 87,133, 54, 27,255, 94,186, 21,206,114, 49, -227,242,242,130,197, 98,193,114,181, 98,185, 88,146,164, 25,101,153,115, 63,191,231,249,243,231,124,243,205, 75,238,238,238,120, -254,252, 75,190,252,242, 57, 55,119,183, 88, 11, 71,135,135, 72,225,194,109,156,186,217,221, 8,155, 93,123, 19,199, 90, 85,149, - 91,117, 52,186, 20,165, 24,196, 3, 84,232, 19,120, 1,195,225,132, 39,207, 94,227,228,244,140, 95,252,236,103, 24,235,172, 86, - 74,121,228, 89,198,211, 71,103,220,222,221,114,246,248, 77,103, 3,155, 76,248,234,179,143,176, 72,242, 34,225, 95,253,235, 63, -229, 63,252,249, 95,112,117,125,197,217,147,215,240,253, 0,207,115,130,200,192, 15,200,107, 48,142,146,146,103,111,188, 77,154, -103, 76,246,167, 76, 15,143,120,241,229,231,188,250,230, 11,116, 85, 16,135, 62,215,151, 23,124,245,229,167,188,186,188, 64, 10, -197,139,175, 62, 38, 77, 83,138,220,176,183,127,192,243,231, 95,162,176, 20,121,201,193,209, 9, 40,143,170,116, 69, 91, 24,134, - 20,149, 38, 75, 19,116,165,235, 73,161,219,125,151, 69, 94,199,209,202,118,130,232,162, 86,115, 38,211, 19,138, 60,119, 96,151, - 58, 24,167, 44, 11,178, 60, 39, 30, 14, 72,146,165, 35, 87, 6, 1,201,114,197,104, 52,102, 52,158,184, 4,179,178,196,148, 5, -195,241,190, 75, 8,172,111,166,101, 89, 82,150, 85,175,160,150, 10, 42, 93,145,165, 43,180,214, 68, 81,196,205,245, 37,135, 71, - 39,117, 1, 92, 81,150, 21,123,251, 7,120, 53,170,182,177,191, 33,234, 72,226, 90,152, 25,248, 1,198, 26,103, 93,172, 53, 20, - 94, 13,208,169, 61, 66,110, 13, 91,139,103,221, 61,163,155,242,214, 76,109,250, 86,232,102,232,170,164, 11, 49,106,238, 43, 77, -115, 99, 59, 93,119,115, 64, 45,146, 37,143, 31, 61,170, 67,123, 70,188,254,250,235,132, 81,196, 98, 62,223, 98,172,111, 89,190, -100,223,111,190,137, 27,239,218,175,119,209,233,196, 67, 25, 21,157, 17,252,182,165, 79,110,228,168,244, 15,225,102,164,190, 41, - 74,223, 28,211,175, 11,169,205,149,248,238,253,122,215,153,160, 14, 79,207,223,223, 94,250,175,115,156,155,253,183,148,114, 35, -208,197,174,237,101,182,111,177,233,222,176, 77,125, 32,183, 9, 91, 29,235,152,221,176,178, 53,233, 56,107,127, 97, 93, 4,200, -141, 23,162, 59,190,237,240,165,177,125, 6,122,119,212,188, 21, 62,177,163,136,177,245, 1,230, 89,131,151, 47,209, 85, 65,146, - 59, 11, 90, 89, 57,145,147,242,224,112, 60, 6, 1, 70,107, 70, 81, 76, 97, 42,132, 80,100, 85, 78,146, 23, 45, 10,177, 81, 98, - 54,187,198, 82,107,140,133, 82,187,188,103, 37,107, 20,173, 82,196, 81,132, 0,130, 32,194, 74, 81,179,144, 53, 86, 8,170,218, - 31,172,148,155,123,248,158,135,176,130,172,204,241, 60,159,249, 98, 65, 89,106,246,134, 35, 42, 83,145,101, 57,158, 23, 98, 7, -123, 88, 63,196, 42,223,121,216,235,131,219,238,176,146, 53,164,181,230,242, 54,100, 48,187,129,128,180,205, 24,240, 59,194, 96, - 30,130,219,124, 43,160,102,135, 26,126,119,113, 32,214,215,181, 22, 89, 90, 99,152, 30, 30,115,116,112,192,124, 49,167, 40,114, -140,177,237, 46, 50, 8, 66, 76,237, 75,175, 42,167,140,110,188,180,205,141,168,185,233, 90,235,244, 27, 79,158, 60,193, 24,195, -108, 62,171,189,227,212, 55, 60,193,151, 95,125, 73,158, 38, 92, 95,190,226,246,254, 14,173, 75,238,239,174,249,230,226, 37,101, - 89, 80, 22, 57, 73,146,184,206,163, 44,201,243,140,213,114,193, 98, 62,227,230,230,154, 52, 77,200,178,148, 44, 73,152,205,102, -124,250,233, 39,220,222, 92, 51,159,207,152,207,103, 28, 28, 28,242,236,217,155,100, 89,202, 42, 89,213, 35,245, 1,167,167,143, - 56, 57,123,196, 42, 73,120,235,173,183,249,254,239,189, 71, 20, 71, 28,236, 79,121,246,250,155,188,246,218,247,144, 18,142,166, - 83,158, 61,125,198,123,223,255, 1,239,189,247, 3, 0, 46,111,175,193, 88,138,162,132,122,173,228,130, 68,114,178, 60,101,177, -156,115,123,123,203,203,139,151,124,242,233,199,252,250,215,191,230,195, 15, 63, 36, 73, 18,164, 80,188,254,198,107,120, 82, 80, - 25, 87, 16, 57,175,181,114,137, 95,110,214,132, 69, 48, 24, 77, 40,138,138,171,203, 87,148, 85, 78,154, 44,249,205,175,127, 73, -158, 44, 57, 61, 61,225, 47,255,242,127,227,235,175, 62,231,207,255,252, 47,185,186,185, 99,178, 63,229, 31,127,241, 51, 22,203, -185,187,121,239, 31, 82,230, 43, 14, 79,207,136,227, 1,255,239,127,251,175, 12,134, 19, 38,123, 7,124,250,225,111,184,189,189, - 70,121,138,213,106, 78,186,156,147, 37, 75,124, 79, 49,220,155,242,226,249,231, 36,243,123,110,175, 47, 89,101, 41, 18,203,222, -100, 8,202, 35, 47, 5,105,186,100,113,127,143, 21, 46,254,243,250,242, 37,249,114,201,139,175, 63, 39, 91,185, 64,160, 32,240, -185,191,191,197,154,170,221,247,166, 89, 82,239,184,139, 90, 27,179, 6,251, 24, 83, 43,210,195,144,241,120, 76, 89,148,132, 65, -132,174, 44, 85, 89, 50, 24, 14, 40,242, 2,163,203,118, 45,103,170, 10, 83, 85,248,210, 39, 93, 45,137, 71, 99,130, 32,224,246, -234,165, 75,206, 11, 2, 38,123,123, 12,134, 35,198,147, 3,172,133, 50, 75,107,214,194, 58,100,106, 77, 56, 19, 45,129,206, 69, -189,106,162,193, 16,223,243, 9,195, 16,131,165, 42, 11,151, 56, 24, 13,106, 45,132, 68, 73,175, 86,161, 43,172, 17, 14,204,100, - 52,126,224, 59,199, 77,227,254,176,198,165, 25,118, 84,220, 78,181,222, 8,230, 84,219,133,175,215,123,238,218,108,250,202, 69, -139,114, 93,223, 35, 85, 45,212,149,178,249,108,187,199, 43,178, 28, 95,249, 76,198, 99, 71, 53,244, 20,167, 39, 39, 60,125,246, -148, 66, 87,164, 73,210,102, 65,116,249,235, 61,203,218, 38,172, 6,209,167,203,137,221,214,222,222,185,216,163, 36,138,222,129, -222,109, 24,173,221, 22,152, 55,250,154,117,242,169,248, 14,177,155,224,219,110,147,162, 22, 64,175,197,116,253,160, 53, 79,108, - 4,158,244,118, 12, 29,195,127, 59,222,104,119, 21,162,247,226,174,247,162,235,155,175, 49,102,157, 99,222, 24,228,233, 11, 12, -186, 35,116, 83,251, 77,117,131,162,108,124,235,221,206,174, 27, 26,209,233, 30,155,155,110,151,171,221,132,181,244,162, 8, 30, -160,172,117, 31,223,104, 77,158,151, 72,219,247, 75, 90, 44, 85,101,200,106,175,167,167,156, 63, 61, 10,124, 22,105,198, 32,136, -184,183, 43, 87,229, 74,217, 86,236,221,231,209,236,130, 74,173, 9, 81,245,155,132,118,183,174,181, 70,225,186, 32,165, 20,182, - 62,220,155,113,124, 85,185, 78, 31, 91, 81,232,138,178,112, 9,112,121,161, 41,247, 52,161,239, 99,173, 65, 47,239,145,210, 67, - 15,247, 90,239,127, 79, 44, 88, 95, 87, 99,129, 90,132,178,182,161,208, 75,193,115,222,123,211,217, 64,213, 81,168, 59,222,121, -191, 83,204,234,230, 8,126,211,202,177, 49,226,234,237,223, 59,182, 26, 99,113,209,147,190, 71, 90,228, 4,171, 51, 14,171, 0, - 0, 32, 0, 73, 68, 65, 84,129, 3,122, 84,149,174, 61,214,126,155, 94, 86,105,103,243,170, 76,209,255, 49,157,159,161,181,251, -190, 60,207,241,124,175,102,163, 59,100,177,181,134,155,155, 27,164,148, 92,220,223, 16, 4, 33, 7,123, 19,230,171, 37,167,103, -207, 40,202,156,197,236, 22,109, 12,147,189, 9,121,154,145,165,169,243,199, 87, 46,209,173,251, 73,211,149, 11,241,168,180,174, -133,144,110,162,240,233,167, 31,184, 40,213,122, 74,230,121, 30,215,175,174,184,124,121,129, 84, 10, 79, 74,126,249,203,159,215, -174, 13, 15,207,247,217, 63,152, 82,228, 5,105,186,106,221, 36, 65,224,198,163,143,206, 31,243,238,187,239,145,172,230, 4,202, - 39, 30,196,248,158,207,114,181,226,197, 55, 47,208, 85, 69,109, 74,162, 42, 75,150,245,117, 18, 86,242,252,197, 11, 94,188,252, -134, 95,253,246, 55, 20,105,130, 84, 62,143, 31, 63,194,247,125, 78,142,207, 81, 94,128, 65,115,127,127,199,253,237, 29, 31,127, -240, 91,110,111, 94,241,218,219,239,113,115,121,193,254,209, 41,165,214,188,246,206, 15,249,241, 79,254,152,187,187, 25,149, 81, -252,167,255,252,159,145,162, 64,121, 62,139,249, 61, 89,150,163,203, 10,109, 94, 97, 76,201, 96, 52,224,131, 95,253, 35,209, 96, -200,217,163,167,252,237,127,251,175, 44,238,239,208, 69,206, 60,207, 24,141, 6, 96, 28,114, 84, 5, 49, 85,165,241,164,160, 52, -146, 71,207,222,172, 67,123, 50,194, 40,230,224,232, 8, 37, 61, 62,255,248,183,152, 82,243,234,249,151,132,195, 33,211,227, 51, -146,249,141,139, 39, 85,170, 29,181, 55,125,163, 82,142, 15,177,127,120,198,237,213,133, 43,180,123,239,201,230,159,154,162,102, -151, 75,165, 40, 75,135, 94,245,124,207, 9,216,226, 1,203, 85,213, 58, 5,168,119,225,186,170, 8,194,144,249,221, 53, 71,199, -167,236, 29, 28,113,119,123,139, 95,185,200, 87,107, 97, 56,206, 57, 58, 58, 38,142, 7, 92,188,120,142,164,190, 63, 74, 73, 28, - 15,107, 61, 68,230, 38,126,113, 68,150,229, 20,185,131,225,152,178,226,228,209, 99,226,104, 72,154,164,148,101,201,114, 57, 99, - 60,217,195, 83, 65, 91,208, 42,229, 17,134, 18,139, 35,187, 57,212,178, 89,231,139,215,170,248,178,200,123, 66, 51,223,247,218, -207,177, 18,170, 78,254,163, 45, 60, 84, 29, 93,108,140, 19, 4,119, 71,205,107, 45,148,198,150,245,212,173, 6,210, 56,119,131, -187, 7, 62,255,234, 57,147,201,136,225,104,220,174,161, 38,227, 9,255,230, 79,254,132,203,215, 47,249,197, 63,253, 19,171,229, -170, 14,104, 90, 79, 68,233, 34,150, 69,255, 30,179,158,102,247, 15,241,230, 5,109,108,211,118,147,223, 97,237,142, 20,209, 93, - 8,245,254,196, 98,157,128, 39,118, 80, 50,127,247,191,196, 14,218,102,107,105, 59, 58,125,244,126,143, 4, 39, 55, 18,113, 58, -130,131,245, 78,123,187,211,149,117,176,125,155,243, 84, 87, 13, 77,134,121, 71, 18,216,166,239, 88, 33,182,198,242,221, 10,184, - 23, 83,199,118, 58,148,232,116,250, 91,104, 62,250,170, 69, 54, 42,175,222, 11,216,137, 87, 53,214,162, 4,232,197, 45, 10, 65, -169, 43,178,188,162,212,110, 95,164,168, 59, 20,233,198, 84,101,165,137,253,128,172,112,234,232, 89,146, 56,232, 76,173,202, 55, -181, 66,184,161,203, 85,117,199,159,229, 69,253,179,164,243,164, 6, 62, 22,131,231,249,142,219, 92, 21,200,186, 66, 46, 42, 87, - 24,116,255,124, 89,150, 24, 43, 8,125,143,251,229, 10,139, 64, 73,136,131, 0,132, 32, 47,114,124, 12,194,243, 49,126,236, 38, - 33,245,248, 93,214,187, 94, 79,121,219, 33, 8,221, 81,183, 93,119, 5, 61, 23,193, 78,253, 69,127, 42,242, 59,197,175, 62, 36, - 76,233,220, 0, 69,199,110, 98, 59, 66,146,230, 57, 75, 1,251,211, 41, 65, 16, 80, 21, 37, 6,227, 60,212, 77, 60,169, 20,100, -121,142, 54,110, 95,222, 5, 2, 89,187,238, 56,154,195,223,243, 61, 55, 10, 29, 14,185,189,189, 69,116, 87, 95,158, 98,190, 88, -214, 97, 41,146, 36, 89, 81, 85, 37, 69,153, 49,155,223, 99,235,180,173,170, 44,235,116, 51,214,182,175,250,242,185,159,109, 90, -145, 81, 51,110, 67, 42, 39,220,210,206,194,228, 4, 81,238,123, 53,198, 61,110, 85,145, 21, 69,189,111, 7,109,221,239,154,231, - 25, 69,150, 82, 20, 69,157,157, 93,146, 37, 25, 85, 85,114,123,123,205,213,229, 43,230,179, 25,247,179,123, 46,175,174,184,186, -189, 65,120,138,243,179,115,246,247, 15, 24,143, 39, 60, 58, 63,231,232,248,152, 71,103,231, 76,247, 15,184,124,117,137, 31,122, - 40,223, 35, 10, 35,100,157, 43,126,115,123,195,237,237, 29, 47,190,254,138,175,190,126,206,114, 54,199, 26,195,245,237, 53,175, - 94,190,160,170,211,194,178, 44, 99, 56, 28, 19,132, 3, 86,139,123, 62,250,240, 3,150,203, 37, 6,184,126,117,193,217,217, 35, -158, 62,123,147,197,114, 69,186, 90,160, 45, 60,123,237, 53,230,243, 57, 81, 20, 19,199, 17,179,249, 61, 81, 8,139,217,146,104, - 48, 36, 89,206, 17, 8,170,170,172,117, 57, 6, 79, 73,110,175,175,169,202,148,120, 48,226,236,236, 17, 95,126,246, 9,201,242, -158,170,204,184,120,241, 37,215,223, 60, 39,138,199, 84,214,160,164, 33, 73,150, 4,210, 21,113,123, 7, 83,231,127,215,238,243, - 25,199, 81, 43,200, 29, 79,166, 24, 43, 81, 86,147, 36,171, 30,108,165,121,253,132,168,225, 68,149,139,166,221,223,223,119,201, -140,105,194,104, 60,102, 49,191,103, 48, 24, 56,197,185,239, 17, 13,134,132,241, 16,173, 75, 76, 89, 58,247, 74,178, 34,136, 98, - 4, 22,165, 92, 52,106,150,164, 84,121,194,253,253, 29, 0,131,193,168,221, 99,171, 22,180,226, 80,194, 69, 86, 31,196,202,125, -206,195, 40,100,181, 92, 98,208,132, 81,228, 10,198,178,112, 74,254,178,108,197,164, 13, 83,195,104,183, 58,244,234, 60, 0,223, -115, 99,122,165, 84,173, 9, 18,132, 65,216, 30,156,205,116, 0,220, 46,188, 33, 50,118, 27, 59, 7, 75,146, 45,235, 65,213,212, -203, 46,222,148,110,134, 0,174, 72,119, 5,129, 43,106,203,210, 61,175,253,189,189, 90,137,239, 49, 28, 12,241,189,128,233,116, -159,183,223,250, 30, 22, 7,239,217,178,187,117,238,247, 2,182, 58,112,185, 11,138,213, 82, 52, 55, 0, 81,157,169,200, 26,163, - 43, 58, 19, 97,185,211, 10,190, 57, 62, 95,119,246,114,235, 96,223,164,186,174,167, 30,245,121, 42,215,193,104,219, 93,126,141, -228, 61, 58,123,252,254, 38, 67,183,139,116,221, 52,235, 99, 55, 83,103,100, 93,223,219,118,212,222, 30,170,178, 17,186,245,115, -177,187,104,215,238, 1,209,189,232,118, 35,241, 6,182,233,115,155, 47,144,221,129,139,125, 8,133,186, 57, 62,233, 29,104, 64, - 49,187,197, 23,174, 3,204,235,124, 99,223, 87, 8,235,142,149,189,209, 0,141,192,147,170, 78,238, 18, 40,207, 39, 45, 50,146, -162,112, 2,169,250,102, 46,133,170, 87, 9, 22, 93, 57, 33, 95, 94, 58,102,188, 95, 91, 72,226, 56,116, 89,202,198,214, 42,211, -178, 61, 80,181, 53,104, 99,169,180,198,151, 30,202,115,100, 51, 99, 44,131, 56,100,190,202, 16,128, 39, 85, 13, 47,113,147,149, -178,172, 8,133, 70, 6, 49, 70,249,237,184,171, 65,124,110, 42, 86, 91,223,105,151,112,214, 69, 4, 75,241, 32, 22,214, 62, 56, - 42,223,238,226,191, 45,207,189,251,126,144, 86,244, 68,171,178,254,255, 70,180,199, 58,170,161, 54, 33, 24,140,198,140, 6, 35, - 60,165, 72,107,171, 18,214,137, 11,253, 26,180, 98,172,187, 1, 87,122,125,168,187,235,220,221,249, 59,165,111, 24, 69, 28,236, - 31,112,125,115,133, 87,187, 23,180,214,220,207,102, 88, 93, 57, 56, 72,253, 53,112, 57,228,182,190,217, 53, 31, 88,207,243, 92, - 50, 87,237, 47,182,181,127,157,206,180,161,153, 32, 24,107,208, 90, 83, 22,133, 75,208,234, 60,167, 40,142, 9,194, 33, 86,152, - 26,121,107,218,207,226,104, 56,100, 56, 24, 33,132,106,111,122,206, 2,167,137,135, 3,132,167, 8,163, 24, 93,150,109,144, 77, -243,250,103,105, 74,150,101, 4, 65,204,171,235, 87,220,222,222,112,125,125,197,237,236,158, 36, 77,249,209, 15,127,200,155,175, -191,197, 31,254,193, 79,120,246,248, 9,191,255,251, 63,226,135, 63,248, 33,167,199,167,204,102, 51,198,227, 17,127,240,195,223, -103, 60, 25,243,233,103,159,241,217, 39,159, 33,165, 32,207, 51,246,246,247,209, 70,115,117,121, 1,104,150,203, 37,161, 23,128, - 82,124,246,255,179,246,102,189,146, 36,105,122,222, 99,102,190,198,122,246,220, 51,171, 42,107,237,233,158,158, 25,129, 67,145, - 0, 5, 2, 18, 68,137,146, 40,232, 66,208,223,169, 31, 38,128, 23, 18, 1,174,226, 76, 47,211,211,221,181,103,101,229,114,214, - 88,125, 49, 55, 51, 93,152,185,135, 71,156, 56, 89,213, 67, 38, 80,168, 92,206,137, 19,139,187,153,125,223,247,190,207,251,205, -183,252,236,147, 79,168,173,225,225,147,143,248,207,255,233,223,163,235,146,251, 15,159,240,250,205, 43,156, 46,113,194,240,228, -233,251, 60,120,244, 30,200,132,241,244,144, 31, 94,190,224,225,189,251,212,117,197,112,152, 51, 24, 12,137,162,132, 52, 27, 83, - 55, 21, 85, 85, 19, 39, 57,179,155, 75,138,213, 18, 41, 29, 38,140, 88, 6,163, 41, 82, 70, 56,171, 25, 14,125,120,210,193,225, - 1,149,174, 40, 10,223,225,113,214,145,103, 3,210, 44, 13,155,144,162, 44, 43, 46,206, 95, 83,172,151,157,245,113,247,186,142, -162,144,132,103,124, 50,155,174, 75, 34, 37,145,137,167,248, 21,171,101,184, 78,156, 79, 73,171, 52,214, 56, 6,227, 9, 73,150, - 83,213,254,122, 77, 18, 47, 92, 43,171,130, 56, 29,240,240,201,251,100,195, 33,197,114, 65, 89,174,209,186, 4, 33, 56, 58, 60, -102, 62, 95, 96,106,239,153, 55,109, 39,205, 17,210,226,252,245,145,166,158, 54, 23, 69, 17,167,103,247,252, 99,132, 14, 65, 93, -173,125,146, 97,234,227, 87,163,208,169,240,140, 3, 15,134,137,226,212,103, 25,132, 14,150,117, 94,173, 46,216,172, 37,237, 1, - 71,132,217,251, 22,220,201, 57,132, 80, 91,236, 6,217,131,127,245, 25,243,214,217, 0, 53,235,217,221,130,114,126,177, 88,146, -103, 41,147,241,216,175,207,129,251, 33,112,100,105,202,147,199,143,121,250,228, 49,243,249,156,170,174,182,168,119,187,145,211, -125,150,194,166,115, 41,187,113, 94,127,230,125, 11,224, 42,196, 45,116,122,191,165,222,230,190,239,182,218, 69, 15,106,214,111, -153,239, 35,185,138, 29,130,221, 46,255,253,199,126,169,211, 7,143, 62,223,246, 44,111, 4, 3,174, 39,130,219,187, 88,139,150, -148,179, 33,225,244,197, 0,125, 65,219, 86,208,251, 46,219,187,223,222,216,217,192,183,232,103,189, 13,126,175, 32,171,103,197, -234, 51,197,119,255,189, 31,114,225,110, 5,101,248, 19, 71, 61,191, 33,114, 6,139,175,148,117, 32,192, 73, 33, 48,206, 48, 30, - 12, 54,237, 98, 9, 89, 20, 83, 7,200,204,178, 40,186,121, 78, 39, 50,147, 97, 76, 16,132,111,198,134,205, 38,248, 77,179, 56, - 38, 86, 81,168,218,124,101,223,182,238, 29,208, 24, 63, 43, 83,225, 98,106,137,116,177, 82,204,215, 85,184,184, 19,100,164, 80, -194, 31, 54,138,170, 34,143, 35, 18, 5,100, 99,154,214, 25,208,211, 23,244, 49,141,173, 34,190, 29,103,184,157,175, 19,251,236, -169,123, 54,248,253,123,245,221,214, 55,238,208,128,246,231,255,221,130,213,227,218, 11, 54,180, 53,235, 44,131,225,136,201,116, - 74,150,196,172, 2,133,175,174,170, 45,139,136,105,250,193, 46, 97,166,110,217,130,234,180, 35,161,241,228,128,233,116, 18, 42, - 0,207, 25,168,117, 77,177,246,143,221,175,246,187,113,147,219, 8,238, 60,158,214,171,130, 93,103,241,220,121, 95,108,247,195, -183, 25, 11,225, 58, 86, 50,176,220,235,154,170,244, 10,232,118, 83,246, 36, 47, 67, 89,149, 20,197,202,183,221,237,230,121, 17, - 64, 52,117, 85,121, 47,114,103, 73, 12,135,197,198,208, 52,154,178, 44,184,190,190,192, 26,199,112, 60, 37, 73,115,148,140, 40, -171,154,217,124,134, 19,146, 95,255,234,111,249,237,239,126,203, 31,254,240, 7,190,250,230, 43,234, 90,243, 47,255,231,255, 21, -169, 98,190,123,249,146,183,111,222,240,155,223,254,138,213,114, 65,154,229, 56,103, 25,143, 70,200, 40, 38, 82,138,198, 88,198, -227, 3, 14,142,143,121,245,234, 7,242, 60,103,185,152,241,230,213, 15,188,126,253, 61,215, 87, 23, 52,186,241, 12,114,163, 73, -211,156,179,251,247,120,242,248,125,190,249,234,119,164, 73,202,239,126,251, 43,234,178,160,172, 10,242, 97, 78, 62, 26, 81,149, - 53,113,156, 50,187,185,160,169, 52,247, 30, 62, 98, 52,153, 50,187,122, 75, 99, 60, 24,106, 52, 57, 98, 60,158,176, 92,205,176, -117, 69, 83, 87, 12,134, 67,178,108, 64, 50, 24, 19, 39, 25,117, 89, 96,234,130, 52, 29, 4,157,134,255,188,138,162,160,152, 47, -112,166,233,172,144,237,129,104,195,246, 87, 93,149, 78,207, 78,101,140, 1,107,136, 98,143, 93,213,186,234,173, 57, 14,103, 27, -116, 85,122,246, 68, 18,211,232,198, 11,104,211, 4, 93, 87,212, 85,193,252,250, 2, 39, 28, 7, 7, 71, 68, 73,236, 41,107,166, -166, 40, 43,226, 44,195, 4, 1, 93,235, 54, 82,173, 48,214,181,192, 26, 47, 34,172, 10, 47,230, 59, 60, 58, 97,189, 90, 98, 77, -133,181, 26, 93,149, 84,101,129,181, 58,160,100,227, 45,113,172,179, 22,164, 36,137,211, 46,110,216, 5, 13, 65,187,198,251, 60, - 1,213, 85,159, 27, 62,136,235,249,191,183, 57, 25,155, 10,157, 14,125,220,222,131,109,128,139, 9,152,109, 33,252,123, 91,148, - 37,227,201,196, 67,187,146,184,187,206,155,208, 69,157, 78,167,124,250,201, 39, 12,242,156,235,235,155,174, 67,183,141,184,149, -219,156,246,221, 76,134, 30,226,124, 83, 33,111,207,188,219,145,194, 62, 84,107,159,193,190,251,189,187,170,247,254,207,216,142, - 95,221,142, 59,183, 93,231,251, 86,138,250,222, 49,178, 58,185,247,224,243, 45,203, 80, 63, 14, 85,128, 21, 2, 39,219, 40,235, -158,215, 92,108, 22, 88,217, 35,199,109, 69,224,137, 13,199,125, 43,131,123, 87,128,176, 11,148,233,219,212,118, 15, 4, 59,129, - 31, 91,167,175,222,233,143, 61, 39,171,189, 27, 74, 79, 92,215, 86,170,210, 65,181,184, 33,178,218, 87, 70,134, 0,128, 9,226, -132,144, 50, 20, 69, 50,180,123,107,210, 36,101, 89,174,137,227,136,197,218,207, 6, 85, 20,170,245, 62, 34,176,219,172,131,136, - 4, 65, 18,218,225,121,150, 97,157,223,200, 35,229,193, 51,173,162,217, 9,137,174,117,152,113,249,118,177,138, 4, 77,171,124, -118,134, 36, 73, 72,218, 25,176,104,209,181,134, 65, 20,129,140,176, 81,130,108, 1, 42, 93, 55, 69,110, 57, 4,218,138, 92, 73, -117, 43,170,214,237,232, 19,246,217, 47,222,181, 97,255, 73,195,162, 77, 93,187,213,197, 49, 61,107,135, 12,218,190, 56,242,175, - 53,138, 99, 38,147, 3, 38,163, 33,171,245, 26, 1, 44,151, 43,226,128, 62, 77,147, 4, 93, 85, 88,139,239,152, 56,131,181,155, -249,223, 22,209, 73, 72, 70,227, 17,195,225,152,186, 46,168,171, 10, 37, 37,101, 81,110,161,101,251,215, 91, 91,241,251,245,212, - 32,148, 98, 56, 28,128, 84, 56,172,231,209,247, 94,205, 22,175,161,151, 52,213,249,225, 67,232,134,107,173,151, 97, 83, 30,140, -199, 76,167, 71,216,208,133,112, 29, 25, 79,108, 97, 60,165,148,189,120, 89, 75,146, 14, 56, 60,185,199,217,253,167, 60,124,242, -148,170, 46,208,218,240,179,207,126,206,228,224,136,203,171,183, 44,102, 55,172,150, 11,138,178,228,224,224, 16, 93, 55,140, 71, - 67,150,203, 57,127,254,139, 95,240,222,179,247, 89,172,150, 56, 33,248,219, 95,253,154,255,239, 63,254, 59,192,241,213,215, 95, -114,125,125, 73,173,107,202, 98,205,225,193, 1,203,117,201,131,251,143,176,182, 6, 20, 63,251,197, 95,240,237, 87, 95,114,112, - 56, 33, 73,114,158, 61,251,128,197,122,193,100, 52,226,205, 15, 47, 25,140,189, 82,222, 90, 7, 86,115,118,250,144,191,254,199, -255,132, 39,239,125, 72, 85,174,121,245,242, 37,186, 90, 3,146, 39, 31, 60,231,233, 7,159, 98,116,195,213,205, 5,105, 54, 2, -107,209, 6,214,139,153,111, 5, 3, 89, 18,209,132,238, 69,150,229, 68, 42,241, 25, 21,145, 32,205,134, 92,157,159, 99, 27, 77, - 54, 24, 16, 39, 57, 73,158, 67, 96, 94,172,139, 21,117, 93,123,187,109,111, 19,223, 87,169,155, 0,150,138,162,222,193, 60,140, - 87, 92, 99, 57,185,247, 0, 2,120, 42,244,151, 59,222, 71,163,117,103,250,145, 82, 49, 28,142,168,107, 63, 62,241,243,237,146, -186,172, 49,214,242,222, 7, 31, 19,197, 9,101, 85,226,108,195,120,122, 72, 85,215,222,166, 25, 92, 43, 42,216, 48,227, 40, 70, -201, 24,107, 27,210, 44,167, 44,215,168, 16, 32,179, 90,249,241,145,103, 7, 9,140,174, 89, 47,231,161, 45, 31, 97,154,154, 90, -215, 33,215, 96,115,192,151, 81,180, 1,126, 25,211, 85,248, 66,138,206, 63,238, 83,216, 98,223,165, 84, 81, 24,233,182,149,108, - 72, 18, 84,170,107, 35,187,174,251,219,178, 39,252, 46, 36,163,136,198, 52,196,145,167,114,214,218,107, 92,242,225,144,162, 44, -136,147, 24, 33,101,120,253, 34,196,201, 42, 30, 62,120,192, 71, 31,125,136,214,154,197, 98,233, 55,205, 94,231,113, 27,144,211, -227,200,137,221, 49,226,110,209,178,217,148, 55,224, 24,215,251,189,216, 17,188,201,157, 42, 91,236,153,137,203,157, 65,177,184, -109,111,163, 77,138,235, 63, 38,123,162, 87,131,250,253,228,254,195,207,251,234,196, 62,202, 85, 32, 66,248,138, 64,237,196,209, -209, 83,165, 75,183,253,103,130, 26,189, 13,120, 80,189,196, 42,217,251,189,216,215,198,237,205,115,247, 81,128,118, 55,249,125, -213,250,238,247,118, 72,212, 29,165,226, 93, 45, 98, 1, 84,203, 5,137, 51, 8,225,208,218, 35, 30, 61, 41,203,191,177,214, 88, -198,227, 1,194, 66, 19,108, 38, 34,140, 40, 42,173,169,170,186,219,128, 77, 99,186,246,187, 16,130,166,177,212,181, 38, 77,162, - 32, 44,145, 72, 9,121,150, 6,246,186, 64, 74,207, 9,119,132,214,123,216,188, 85,248,112,253,252, 85, 80,149,154, 60, 75,136, -147, 20, 93,105,242,220, 31, 12,146,216,135, 70, 84, 77, 77,158,100, 72,103,168,179, 1, 22,185, 53,153,112, 45, 77,174,151,223, -173,164,218, 68,150, 56,186,170,165, 63,107,119, 63,161,234,254, 41,115,244,159,188,215,119,212,227,109, 75,155, 20, 27,108, 43, -194,227,118,239,157,158,114, 51,155,161,164,240,202,109,229, 59, 38, 90,111,194, 34,188, 72, 48,116, 66,220,238,248, 32,220, 28, - 73,194,120, 60,233, 68, 80,214, 90,170,186, 14, 16, 33,219,107,195,169,176,152,247,104,249,194, 11, 26,199,211, 41,105,154, 99, -117,229,169,113, 93,170,209,118, 95,162, 61, 60,181,149,187,195, 11, 54,219,217,165,181,126, 1, 77,211, 20,129,135,227, 76,167, - 99,156, 16,228, 89,238, 29, 40,248,113, 81, 59, 11, 54, 54,240,182, 67,171, 79, 55, 21,203,245,140,217,213, 57, 87, 23, 87,100, -105,198,199,159,253,156,175,191,250,146, 90,107,158, 62,126,159, 56, 77,200,243, 33,159,125,250, 51,116,221,112,118,118, 76, 44, - 21, 7, 71,199,252,234, 87,191,226,215,191,253, 53,151,151, 23,212,141, 99, 93, 22, 72, 97,249,234,171, 47, 88, 46, 87,172,215, -171, 78, 31,176, 90, 47, 48, 22, 62,251,179, 95, 80, 21, 5, 31,125,252, 25,117, 83,161, 34,197,122, 89,113,115,249,154,124,144, -243,151,127,241, 79,185,188,126,203,186,172,249,248,147, 79,185,184,184,228,205,155,151,156,157,221,231,231, 63,255, 37, 95,252, -241,239,249,221,111,127,205, 71, 31,255,210,211,238, 98,129,138, 4, 55,215,215,188,254,225, 37,243,155, 11, 38,147, 3,156, 53, - 20,235, 2,219,212,126, 99,202, 6,188,255,201,159, 19, 7,226,163, 84,138,108,144, 83,150, 5,145,138,153, 78, 15, 24, 12, 70, - 56,231,168,214, 11,210, 60, 69,169,152,217,205, 13,229,106, 21,102,207,126, 70,221,244,236, 99,251, 72,138,253, 3,158, 9, 27, -157,255,204,124,127, 75,235,138,229,108,142,140, 99,210,124, 16, 62, 99,187, 9, 39,106,161, 94, 66,224, 76,131,110, 12,103,247, - 31, 81, 87, 37,182,241, 40, 97,163, 45, 72,193,252,250,138, 36,205, 56, 61,187, 79,146,100,172, 86, 43,142, 79,239, 83,174, 87, -152,208,146, 54,198,120,205,129, 49, 12,134, 35, 42,237,181, 37, 82, 69,172,151,115,142, 78,206,130, 42, 61, 64,165, 48,158,201, - 97, 27,172, 53,161, 35,228,136,226,152,186,172,168,170, 2, 23,132,168, 42, 28, 20,165,128, 56,138,252,193, 3, 95,161,183, 7, - 41, 23,144,214,174,199, 59,161,171,154, 55, 27,163, 82, 81,111, 99,221, 84,249,221, 90, 35, 36,113, 18,227, 44,157, 21,112, 93, - 20, 76, 38, 83,178, 44,245, 7,164, 32, 34,181,214, 47, 6, 38,160,122,211, 36,227,131,247,223,227,193,131,251,220,204,102,232, -186,190, 67, 28, 45,119, 90,233,155, 13, 95,202,126,251, 92,222,106,187,111,185,130,220,109,144, 76,255,235,247, 71,151,139,173, -141,255, 78,191,124, 55,203,151,239,104,197,111, 14, 5,234,244,193,147,207,219, 50,187,221,208,157, 0, 23,132,108,109, 11,193, -249, 96,103, 63, 11, 87, 1, 78,210, 62, 65, 37, 59, 59, 90,255, 24,178,185,232,217, 18, 60,237,206,175,247,218,153,250,176,152, - 94, 26,206,150,215,125,135, 59,204, 30, 15,244,222,159,197,237, 12,222,173,167, 34,160, 41, 11, 98, 83,248,180, 36, 99,169, 42, -141, 67,146, 70, 10,107,124,133, 52, 28,166,126,102, 23, 54, 93, 31,193,168, 49,182, 97, 85,214,157,255,210, 26, 19,102,236, 30, -154, 99,156,163,214, 77, 7,187,113,206,144, 40,143, 14,141,133, 12,169, 92, 34,204, 38,189,160,206, 6,224,135,117, 22,148,215, -230,250,196, 49,235,103, 77,249,128,249,106,197, 52,132,126,200,150,146,214, 42,241,157, 37,206,198,212, 50,234,154,233,162,143, -245,140,162, 96,241,234, 7,181,136, 46, 55, 56,138, 34,232, 71,219,222, 77, 64,248,105,246,181,159, 90,181,183,214,157,246,112, -209,205,219, 55,183, 65,235,153,141, 84,204,244,224,128, 40,142,168,202,181,111, 63,215,117,168, 32,252, 34,214, 88,131,176,206, -119, 63,218, 32,138, 91, 27,123,168, 42, 34,229, 5, 57,113, 68, 89,150, 8, 28, 85, 89, 81, 5, 5,187, 64, 32,226,136,127,244, -143,255, 25,149,174,137,147, 8,215, 85,202,144, 68, 49,101, 81, 48,200, 51,234,218,163, 96, 55, 99,173,219, 17,140,119,225,117, - 59,122,162,179,158, 64, 87, 85, 52,186,102,181, 92,133,131,130, 67,197, 49,195,209,196, 87,122,163, 17,227,241, 1, 89,158,115, -112,120, 68,146,166,222,171, 47, 68, 72,244,244,148, 48, 93, 87, 20,235, 21,179,217, 53,235,229,130,139,139,215,222,255,107, 45, -200,136,147,147, 99, 94,191,126,195,155,243, 31,248,246,197,247,220, 92, 95, 34, 84,194,123,207, 63,230,226,237,107, 14, 15, 14, -184,188,120,195,197,197, 27,214, 33,173,206,152,141,154,191, 13,181,121,244,244, 17,139,155, 57, 23,231,111,120,249,242, 37,143, -159, 62, 38,203,199,124,242,209, 39,188,120,241, 13,135,135,167, 20,101,201,197,249, 91,174, 47, 94,131,115,100, 89, 76, 89,173, -124,199, 40, 78,185,153,207,248,237,175,255, 3, 87,151,151,152, 70, 83, 87,107,176,154,241,248,128,195,227, 83,166,135,199,212, - 85, 69, 20, 39,228,121, 78,158, 14,120,251,230,165,255, 58,103,144, 24,214,235, 34, 20, 25, 80, 87,126,110, 45,144, 12,167, 39, - 28, 28, 63,224,205, 15,223, 81,172, 23, 52, 77,229,181, 9,113,140,214, 53, 66, 73, 79, 36,252,137, 7,213,205,230,222,182,148, - 45, 4, 11,101,172,164, 15,163,177,198,127,238,214, 7, 71,121,235, 24,225, 94,111, 40,203,130,124, 48,244, 29,189, 90, 3,214, - 67,135,132,101,181, 92,112,115,117,137,214, 21, 89,150,179, 42, 86, 28, 28,158, 80,149,101,152, 89,199, 33,237,209, 81,235, 53, - 73,146, 34, 4,212, 85, 65, 20, 90,221,195,209, 56,112, 28, 82,170,170,161,177, 13,178, 69,207,226, 19,226,234, 96,227, 27,164, - 41, 56, 40,214, 43,180, 14,174, 8,229,173,207, 73,146, 6, 97,116,171,147,242,218,151, 22, 21, 76,111,147,110, 87,238,118,116, -212,218,164,219, 14,174,255,108, 54,235,177,117, 14, 33, 35,111,227, 85, 18, 33, 21,141, 54,212,101,201,120, 56,242,196, 69, 93, -183,246, 42,170,186, 38, 86, 17,105,154,117,123,197,193,244,128,159,125,246, 25, 89,150,118,160,165,246, 32, 46,164,232, 10,175, -190,207,124,211, 26,151,123,219,229,219,159,187,232,197,203,238,232,182,228,174, 21,188,159,118,119,219,255, 46,118,132,120,155, - 74,188, 83,224,252,232,127, 66,128, 58,189,255,232,243,190, 16,174,171,132,101, 63,102, 46, 0, 2,194,194, 40,182,212,229,219, -200, 59,209, 11, 6,217, 40,165,221, 45,117,244,173,197,123,199, 67, 46,238,192,237,245, 99, 65,247, 65, 78, 68,111, 94,190,219, - 18,126,151,135,250, 22,221,204, 52,136,114,137, 20, 14,221, 24,143,156, 12,173,222,198, 88,140,115, 36,145, 10,252,118,104,172, -103,137, 23,117,137,115,142, 82,155,110, 86,234, 79,197,173, 82,213, 97,157,160,214, 77,184,169, 98,116,211, 16, 71, 49,145,146, -164,113,220,165,164,201,224,109,111, 76,131,177, 46, 84,153,174,227, 37,183,152,197,201,104, 72,170, 20,235, 74, 51,200, 34, 44, -210, 87,235, 42, 66, 7,123,160,140, 18,136, 34,154, 40,233,230, 51,157,122,183, 21,193,216, 94,196,210, 14, 8,102, 75, 9,191, -163, 71,184, 75, 48,119, 23,132,230, 93,112,154,125, 51,251,190, 13,210,237,138, 42, 67, 32,138,181, 22,161, 36, 71,199,199,104, -173, 73, 19,207, 49,183,237,251,215, 5,186, 88,191,105, 9,129,179,166,107,240,239,182,224,109, 88,224,226, 56, 97, 56,204,195, - 99, 53,172, 86,235, 48, 67,244,130,158, 65,150,241,195,247, 47, 88, 45,231, 84,107,111, 43, 26, 14, 7,104,173,201,179,140,241, -100, 66,150,166,158,239, 94,235,206,134,215,130, 56,228,158,247,205,221,161, 87,216,103,255,243,240, 19, 77, 93,150, 20,235,133, -143,249,172, 86, 20,197,154,170, 42, 88,174, 86, 24,107, 56, 62,189,199,253, 71,207, 24, 31, 28,113,114,116,234,175, 37, 44,165, -174, 72,243, 28, 43, 36, 42,188, 39,101, 85, 82,213, 53, 95,127,245, 5,243,155, 43,138, 74,115,118,246,200, 31,144,176,188,250, -254, 91, 78, 15, 39, 20,171, 5,111,207,223, 82, 20, 30,208, 82,215,218,111, 64,198, 34, 84, 68,146,230, 28, 30, 31,243,191,255, -111,255, 23,223,190,248, 22,211,212,156,158,156, 49, 24, 77, 61, 11, 61, 31,147,229, 41, 23,231,111,249,234,139,223, 19,199, 49, -171, 85,193,131,135,143, 56, 58, 56,225,147,207,126,193,239,255,240, 43,150,243, 37, 63,124,247, 53,139,155, 27, 76,173,105, 2, -112,198, 31,246,161, 42, 11, 26,235,168,214, 43, 38,135, 39, 60,126,246,156,171,171, 11, 22, 55,151, 72,169, 24,140, 38, 24,237, -117, 5,211,201, 33,206, 9,174,175,223,226,172, 99,185, 90,114,254,250,123,174,175, 47,124,165,105,125, 90,158,138, 20,117,173, - 3, 31, 66,221,218,212,239, 74, 36,220, 93, 83,218, 80,148,206,122, 27, 20,230,198,154,142,219,213,138, 97,189, 5,209, 59, 31, -108,211, 80,215,254,122,114,198,110, 21, 28,113,146,146,231, 3,170,170,166,169, 27, 6, 89, 74, 99,106,142, 79,238,147, 37, 25, -168,136,135, 79,159,146,230, 3, 76, 99,177, 66, 34,218, 14,169,107,109,104, 2, 21, 39, 72, 41, 73,179,156, 36, 27, 4, 33,168, -221,154, 37, 91,235, 40,203,181,207, 59,200, 7,222,214, 91,107,154, 70, 19, 71,113,199, 8,145, 1,138,213,229, 67,116, 99,215, -182, 83, 26,196,194,206,110,181,183,219, 49,197,238, 6,218,102,134, 24,227, 45,139,198,250,194, 72, 55, 13,101, 85, 49,153,140, -201,210, 20,132, 87,201,107,237,115, 54, 84, 79,160,218,178, 75,112,112,255,222,125, 62,249,228, 83,138,162, 96,181, 90,117,250, -168,182,149,238,246,242,215, 55, 0, 27, 21,121,215,144,216,219,249,221,165,196,237, 48,105,183,146, 50,183, 71,110,109, 86,202, -173,172,247,173,199,185,195, 38, 44,229,173, 34,218, 1,234,236,193,227,207,183, 12,249, 97,131,117, 98,147,143,220,253, 95,169, -141, 80,109, 55, 33,103, 75, 17,191,227,237,107,177,124, 33,183,119,223, 12, 85,238, 8,218,216,121, 73,251, 80,125,110, 15,127, - 92,220,177,129,236, 99,145,223, 69, 56,107, 83,228,154,229, 53,177,128,166,241,155,184,177,142, 72,121,174,187, 9,201, 73,227, -161,207, 77, 54,129,215,222, 88, 95,165,232,198,208, 52,182,203,205,182, 29,149,207, 39,186,185,208,154,243,161, 30, 46,156,122, - 37, 89,136,133,140, 66, 86,184, 49,155,138, 82, 7,197,188, 15, 41,233,228, 54,140,179,140, 56,137,169,117, 77,146, 36, 84, 33, -227,189,109,135, 33, 64,198, 57, 38, 78, 17,217, 32,224, 75,125, 86,186,106, 45,110,253,174, 70,231, 77,119,157,184,175, 59, 28, -253, 72, 64,203, 93, 27,247,143, 85,238, 91, 7,197,190,155,161,167,152, 19,110,179,176,181, 28,133, 22,124,209,182,125,199,147, - 41,186,169, 57,152, 76, 89, 23, 69, 0,135,148, 93,197,107,173,243,121,243,206,117,212,188,246,101,109, 64, 52,110,171, 19,116, -124,116, 72, 81,172, 49,141,102,185, 92,119,190,221,182,194,111, 26,237, 15, 93,206, 4,248,199, 6, 78, 82, 55,134, 7, 15, 31, - 83, 55,154,117,177,246, 29,151, 61,226,206, 31,179, 2,238,251,251, 62,252, 36,196,174, 35, 66, 88, 71, 62, 24,161,155, 26,163, -107,140, 54,204,231,115,174,222,190, 97,118,245,150,171,235,115,180,209,124,240,252, 57,143, 31,191,135, 16,138,147,163, 99,127, -200, 76, 18,164, 20,148,235,181,183,213, 57,139,112,150,171,171, 43,202,114, 78, 93,148,188,247,244, 9,211,201,148,175,191,252, -146,178,170,152,205,102,232,178,194,234,166,187, 62, 84, 20,161, 84,140,138, 99, 30, 62,126,204, 31,255,240, 7,206,206,238, 99, - 29,220, 92,159,123,240,138,178,172, 43,195, 55, 95,125,201,241,233, 61, 62,252,240, 19,170,170, 96,189, 90, 96,117, 65,101, 52, -167,167, 79, 1,193,235,215, 63,132, 4, 52,159, 49, 30,199, 17,121,158,113,239,254, 99,134,147, 3,142,142,239,163, 77, 67,150, -166,252,254, 55,191, 66,151, 75,226, 56,162,174, 11,226, 52,231,232,248, 30,171,213, 2,211,104, 31,232, 99, 44,186, 44,209,117, -137, 8,122,150,186,170,136, 84, 16,102,105, 15, 13, 18, 97,227,181,198,254,120, 62,198, 59,216, 13,237,230,230,239, 33, 75, 54, - 24,162,181,233,218,240,161,111, 29,192, 47, 73,167,165,240,215,152,237, 54,134, 72, 74,178,124, 72, 58, 24,115,120,116,204, 96, - 52,198, 88,195,122, 54, 99, 54,191,164, 40, 10,226, 56, 70,169, 8,173, 27, 14, 14, 15,121,250,254,115, 14, 14, 78,144,202,143, -163,192,119, 10, 99, 21,177,154, 95,147,100, 25,214,193,116,114,128, 84,138,166,169,169,171, 34, 68, 1,251, 77,183,105, 60, 64, - 41,105, 81,180,218, 80, 87,229,166,219, 23,249,110, 67,155, 88, 25, 71,202, 87,238, 1, 51,190,219, 21,245, 21,122, 27,226, 34, -183,196,172,109,134, 72,183,131, 4,236,108,227, 12, 66, 18,128, 73, 13,207, 63,248, 0,173, 75,207,182,143,146,238,125,202,178, - 44,132, 15,169, 32, 28,244,157,200, 52, 78,248,240,249,115,206, 78, 79,185,188,184,244,221, 20, 41,182, 50, 49, 90,196,242,174, -114,254, 86,212,170,144, 91, 84,183,109,178,155,236,189,214,125, 24,246,237, 25,120, 43,164, 22,130,157,245,181,127, 0,216, 9, -227,146,189,238, 64, 95,128,238,219,239,143, 63,223, 66,227, 9,182, 44, 77, 91,133,255, 45, 49,145,216,218,140,251,204, 92,185, -139,255, 20,155,147,196,173,182, 57,123,120,251,253, 96,249,222, 98,191,111,158,181,187,113,247,193, 6,187,127,222,215,150,191, - 5,160, 9,234,203,122, 49, 35,197, 3, 90,234,166,217, 92,172,182,193, 58,129,179,142, 44,141, 59, 32, 65,165, 53,198, 26,175, -110, 55,173, 60,206, 33,149, 12,254,104,225, 47,206,198,118, 51,107,107, 44,105, 26,211,104, 77, 26, 43,178, 36,241, 80,135,112, -131, 8, 65,136,190,244,182, 58, 4, 33,206,181, 9,213,165,111,191, 71, 81,228,219,176, 66, 81,212, 21, 81,184,176,148, 82, 62, -171, 59, 78, 40,162, 28, 68,220,113,244,237, 86, 16, 67,175,179, 18, 14, 4, 74, 41,127,163,246, 85,160,189,228,187, 63,181,213, -254, 46,133,252, 93,234,248,190,234, 94,182,215,142,216,109, 91,109, 70, 41,163,201, 20,112, 28, 77, 15, 41, 74,239, 66, 40,214, -235,237, 14,142,117,221, 76,189,221,200,187, 67, 82,248,115, 55,238,145,146,163,195, 3,138, 98, 29,178,219, 43,166,147,105,183, - 24,153, 64,169,179,193, 98,214, 46,224, 77, 99, 66, 21,148, 18, 69, 49,195, 65,198,229,229,149,175,186, 92, 63,171,198,117,130, - 79,223, 18,108,103,224,238,142, 9,149,219, 11,222,235,235, 93,156,181, 84, 85,133, 64,118,223, 19,199, 49,113,150,130,244,213, -134,107, 26, 46, 47, 46,120,245,242,123,230, 55, 87,204,174,175, 56, 62, 59, 67, 42,201,112,120,192,179, 15, 62,102, 56, 26,249, - 22,125, 81, 4,174,185, 63,224, 44,151,115, 94,124,255,130,155,229,156,229,114,137, 46,252,204,182,207,136,104, 85,211,214,129, -138, 21, 2,197,195, 71,143,248,242,143,191,101,185, 88, 18,165, 25,177, 74,248,230,219, 63,226,140,163,210, 53, 95,127,245,123, - 26, 93, 99, 12, 12,135, 67, 38,211, 67, 22,243, 27,190,248,226,239,249,235,127,242,207,137,147, 20,107,106,140,109,176, 97, 3, -127,246,252, 51,254,197,255,242,175,104,140,101,185,156,243,246,245, 75,214,235, 25,206, 25,143, 82, 21,158,119,176, 94,205, 25, - 13, 50,164, 84,212,193,247, 60, 26, 29,122, 23, 68,128,198, 88,211,208, 52,126,140, 99,130,162,218, 89,211,241,197,255, 11,103, - 73,155,145, 86,135,206, 86, 29,112,168,223, 53,235, 23, 43,113,146,144, 14, 71,216,198,116,207,197,143, 77,150, 44,102,215, 44, - 23,215, 84,197,138, 56,205, 25, 14, 71,126,236,147,166,172, 86, 11,150,203, 57,139,235,107,110,174, 47,201,135, 35,162, 56,229, -228,244, 30, 54,204,240,149,138, 56, 58,187,199,213,197, 57,113,176,193,198, 73, 74,146, 15, 25,142, 14, 88, 45, 22, 33, 75, 61, -204,190, 3, 38,216, 90,195,112, 52, 36, 73, 18,214,101,217,117, 77,218, 46, 64,176,209,128,148,193,118,234,239, 47,175, 11,217, -245,182,200, 13, 42,118,199,194,220,189,229,206, 98,156, 71,139, 19,116, 7,101, 81, 96,149,226,253,103,207,188, 59, 68,215, 8, - 33, 25, 13,199, 29,214, 55,138,163, 14,236, 37,216,116, 13, 14,167, 7,252,236,179, 79,113,206,113, 51,155,109,145, 71, 85,191, -250, 21,183, 99,199,239,238, 39,246,254,174,179,194,137,158, 72,112,191,194,125, 11, 88,227,122, 92, 14, 17, 60,225, 61, 92,251, -214,127,123, 58,221,109,107,196,111,234, 98, 51,241,112, 65,120,100,119,105,179, 61,165,174,236,183,185,119, 79,170, 59, 76,220, - 93, 95,185, 82,170,179,105,177,131,114,165,183,217,190,139,183,179,111,115,127, 87,187,242,199,236, 86,251,170, 69, 39,192,148, - 5,202,212,128,111,151,219,150,144,212,170,141,133, 64, 5, 43, 89,203,223, 6, 17, 96, 14,190, 26, 20,110, 67,165,242, 10, 70, - 25, 44,109, 22, 21,137, 14,163,104,141,207,229, 78,162,136, 44, 75, 67,176,130,247,156,215,141,199, 75, 86,181,175,132,226, 36, - 9,216, 90,255,134,231, 89, 74, 18, 5, 18,159,243,115, 99,137,159, 27,169, 22, 46,225, 44,201,241,125, 76,152,141,119, 23, 23, -219,240,159,173,207,213,185,222, 66,195,237, 48,131, 61, 66,198,126,123,254,199, 48,177,123, 69,144, 59,156, 2,209, 35, 64,137, - 96,237,176,173, 51,130,254,117,238, 95,207,104, 52, 97, 93,172,121,112,255, 62,203,229,146, 36, 73, 40,202,181,135,103,224, 69, -139, 88,215, 5,232,180,168,216, 77,197,238,122,158,219,136, 44,120,213,139, 98, 29, 90,189, 53,243,229, 44,128,103, 84,151,188, -183, 11,212,232,172,130, 45, 88, 83, 56, 86,203,213, 70, 73,220,187,184, 59,244,110,143, 71, 45,149,242, 99, 18,193, 45,206,126, -127, 51,223,188,157,225, 53,180, 62,249,176, 24,182, 11,140, 53,214, 43,255,155, 86, 28,104,131,214, 3,242, 44, 71, 55,154,171, -171, 75,150,179,107,230,243, 27, 46,175,223, 82, 87, 5,186,209, 33,212,195,115,239,235,186,226,234,242,156,249, 98,193,122,177, -244,156,249,214,190,133,237, 24,250,126,204,228, 56, 58, 62,229,226,226,156,211, 7,247, 40,150,107, 94,125,255, 29,217,112,196, -131,179, 83, 14,142,143,249,250,139, 47, 88, 44,110,176,186,230,244,228, 1,255,252,191,255,159,152,207,111, 88,175,102,128,226, -251, 23,223,242,244,217,115,158, 57, 86,137, 0, 0, 32, 0, 73, 68, 65, 84,190,253,230, 75, 94,124,245, 71,150,139, 57, 82, 74, -226, 36, 97, 52, 61,228,179,159,255,146,127,251,111,254, 31,190,249,242,143,188,121,245,130, 88, 5,129,105, 56,240,166,105, 10, -214, 49, 28,230, 60,125,254,103, 60,253,224,103,220,127,252,190, 87,156, 11,201,225,241, 33,198,250, 77,161,237,176,180,155, 79, - 19,130,115,254, 33,250,144,237, 69,220, 3,142,186, 51,115,127,195, 18,174, 19,199,246,103, 76,109,149,110, 26,131,105, 12,249, - 96,128,174,234, 94, 55, 39,116, 68,132,143, 76,173,116, 77, 28, 39, 88,211,176,152,249,247, 83, 8,135, 83, 18,140,225,230,230, -130,170, 42,104,140,225,240,232,136, 97, 62,160, 49, 13, 73,146, 48,153, 28,113,125,121, 73, 81,172,168, 27,237,225, 51, 81,196, -104,122,136,214,154,162,172,194, 90,226,171, 94, 99, 26,234,170, 70, 69, 17,135, 71,199, 56, 4, 85,224, 66,216, 48, 82,244, 33, - 68, 81, 16,213,181,247,197,182, 93, 76,117,138,241,246,250,151, 61, 81,218,237,209,168, 11,247,156,148, 94,221,191,156, 47,120, -112,239, 1, 71,135,135, 72, 25, 81,107,127,224, 75, 82, 31, 19,220, 22,111, 30,144, 19,240,218, 97,189, 78,211,132,103, 79,223, -227,189,103,207,152,205,103, 84, 85,117,139, 93,178,165,136,151,219, 85,114, 71, 2,109,139, 96,209,115, 16,237,152,128,133, 20, -189, 63,238,142,108,228, 22, 99,165,171,222,247,128,217,196,142,238, 11,225,182, 51,228,219, 64,151,179,135, 79, 62,111, 91, 4, - 86,108, 32, 49,183,230,123, 59, 54,180,125, 57,178,123, 55,225,157,214, 69, 31,153, 42,247, 44,234,251,208,173, 63,229,230,217, - 87,253,255, 41,143,181, 79, 80,103,140, 70,233, 42, 68,178, 58,116,227,243,164, 85,216, 88,154,198,199,180, 14, 6,153,159,149, - 73,225,219,238, 97,211,104,213,238,178,159,106,230, 64, 55,141, 23,176, 5, 37,186,182,126,195,143,148, 34,142, 36,131, 36,245, -180,166, 16,112,163,141,111,239,151,218,116,109,245,186,105,186,239,207,210,216,223,108,237,105, 56, 0, 36, 84, 80,143,214, 90, -211, 24,203,104,124, 64, 37, 98,132,146, 91, 36,165, 62,223, 61,142,162, 16,240,210, 82,247,236,173,214,187,187,213, 68,218,131, -120,253,137, 7,168,189, 27,254,158, 82,180,253,234,166, 55,140,105,209, 72,109,112,139,179,150, 44, 27,144,231, 57, 89,150, 82, -213, 58,224, 98, 27,172, 9, 86,162,208,170,222,132,185,108, 44, 96,222,175,190,225,223, 43,233,115,228, 7,195, 33, 70,251, 10, -101,181, 46,252,236,216,110, 54, 82, 33, 4,105,158, 51,158, 78,113,210,231,167,167,131,140, 52, 73, 73,210,148, 71,143, 30,146, -103, 3,230,215,215,190,226, 13,215, 6, 8,156, 8,208, 38,225, 7,249, 46, 88,130, 58,180,175, 8,202,120, 41,186,228,194,125, -179,219,173,118, 29, 61,225, 95, 55, 86,176, 29,201,206, 6,133,176,223,192,240,182, 45, 54,225, 70, 74, 74,166,227, 41,141, 54, - 27,207,177,109, 24, 13, 6,124,247,226, 59,202,210,115,237,113, 62,255,192, 89,139,136,218,170,179, 55, 71,116, 2, 39, 37, 85, - 89,113,114,246,128, 87,175,190,227,224,232,190,231,180,231,158,118,182, 42, 74,172,174,121,244,244, 61,222,123,254,156,255,240, -239,254, 95,206,223,188,162,209, 53,141, 19, 76, 38, 7,232,186,228,219,175,191, 64,151, 69,168,160, 99,242,225,132,147,147,123, -172,215, 43,222,252,240, 61,229,186,160, 88, 47,168,107,205,120, 60, 10,135, 13,207,242,143,179, 1,131,225, 20, 93,107,254,238, -215,255,153, 31, 94,124,197, 98, 49, 67, 97,169, 10, 15,121,201,243, 1,243,217,117,200, 95, 72,168,117, 5,184, 16,203,106,254, - 65,155, 58, 61,193,105,255,151,237,143, 40, 98,229,109,137, 61,130,230,237, 27,195,122, 37,126,171,152, 15,238, 8, 17,108,101, -190,130, 55,148,101,193, 96, 56,196, 25, 47,198, 29, 77, 15, 25, 79, 14,136,210,140,114,181,162,209, 53,186,246, 68,185,235,235, -107,142,207,238, 99, 92,195,197,219, 87, 28, 29, 28,146, 68, 9,101,185,166, 40,214,232,144,190,119,120,116,204,100,122,132,115, -162, 27, 71,120,183,142, 87,245,151,197,154,225,120,204,244,224,196, 7, 37, 53, 94,145, 30,199,137,111,139,199,209, 6,173,218, -179, 32,171, 48,206,245,111,147,237,196,100,155,102,143,232,209, 22, 55, 40,112,240,107, 87, 28,103, 88, 99,185,186,190,230,195, -231,207, 25,228, 57,145,146,232, 70,163,117,197,104, 48, 64, 8, 15,251, 18, 2, 34, 21,161,148, 36, 77,146, 78, 12, 24,199,138, -233,100,202,103,159,124,198,104, 56,226,242,242,194,183,250, 91,235,155,232, 67, 98,220,118,187,123, 7, 51, 75,127, 31,218, 33, -177,110,123,141,110,235,201,118, 25, 49,109,213,221, 17, 52, 69, 8,185,217, 36,158,135,181, 95,244, 13,121, 27, 91,246,217,131, -199,159,183, 63, 74, 72,113, 11, 52,179,139, 16, 21,253,106,189,143, 90,221,215,148,184,107,161,239,125,127,127, 51,222,109,137, -247,127,246, 62,181,250, 62, 44,233,118,232,188,248,241,120,189, 59, 66, 72,186, 28,247,114,129, 52,198,111,172,161,117,154, 68, -138,198,248, 25,187, 19, 16, 43, 63,235,114, 97,238,110,236,102, 35, 84,157,112,112, 67,233,107, 26,235,189,179, 33, 33, 73, 27, -131,197,227,105,211, 52,102,148,166, 24,103, 3,170,208,183, 80,117, 99, 40,107,237, 55, 92,124, 75,190,189,188, 6,121,134,112, -142, 38, 84,253,198,122,113, 88,146,166, 72,225,187, 12,218, 24,142, 39, 99, 10,149,249,139,100, 7,150,226,218,231,108,125, 6, -124, 43,206,233, 78,160,123, 26,194,110,231, 20,125,235, 61,188,163,139,242, 83,128, 52,110,199, 21,177,223,210,182, 81, 95,180, - 98, 57,149,196, 76,167,135, 76, 38, 99,234, 90, 7,196,101, 67, 85,149,254, 6,177,155, 64, 26, 99,154, 30,221, 78,248, 76,110, -187,253, 42,243,124,192,100, 58,193, 52, 26, 93,215, 44,219,106, 91,184, 46,125,112, 56, 57,224,233,123, 31, 96,173,227, 96, 58, -193, 90,199,209,209, 17,103,247, 31,242,252,249, 71,140, 70, 99,170,178,228,242,242,210,235, 34,220,198,127,239,232, 97,143,157, -232,200,115,173,112,106, 31, 5,209,249, 36,160,158,216,192,179, 36, 58, 4,179,146, 8, 37,125,196,113,112,177, 88, 33,122,124, -137, 13,211,154, 30,182,214, 4,187,159,117,142,229,114, 78, 81,174, 40,171, 18,128, 97,158, 49,187, 58,103,185, 92,161,203, 10, -215,217,237,130,186,219, 25, 80,113, 79,212,229,105,127,141,209,164,131,156, 56, 29, 48, 26,142,248,224,131,231, 60,120,244,152, -217,236, 26,231,252,243,116,141,230, 23,191,252, 71,188,252,225, 59,102, 55,139, 32, 74,172, 64, 42, 46,206,207,185,190,190,164, - 90,175,131,123, 0,162, 52,225,201,123, 31, 50, 61,185, 79, 26,103,220,220, 92,178, 88,206, 40,215,149,239, 80,169,152, 40,205, -112,248,108,238, 60, 27, 80, 20, 75,110,174, 47,169,234,146, 88, 9,154,186,100, 52, 30,250, 42,179, 90, 19, 69, 17,235,229,138, - 40, 73,201,135, 45,206,213,143,197,246, 41,223,255, 75,127,117,155,131, 20,161, 3,226, 61,233, 2,249,163,202,250, 86,252,181, - 37,200, 11,235,106, 93,122,214,125, 54, 24,146, 37, 25,139,217, 21,163,241,152, 52, 31, 80,172,150, 8, 33, 25, 14,199, 20,197, -146,229,108, 65,158, 15,200,210, 1,166,209,220,220,220,144, 13, 50,172,179, 84,235,146,229,106,193,114,185, 32,207,115,226, 44, -103,122,112,194,104,114,224,133,142, 62, 20, 26,103,124, 84, 48, 56, 14, 79, 78, 17, 74, 81, 22, 5, 85, 85,249, 52,191,192,140, -247,135,228,205,248,181,173,160, 55,235,134,220, 18,157,249,195,114,123,112,118, 65,196,232,176,218,119, 97, 42,221,144, 15,188, -128,213, 57,120,250,228, 49, 73,146,122,208, 81,227, 63,179, 56,242,168,231,118, 95,240, 69, 83, 76, 20,249,195,132,112,155,132, -204, 71, 15, 30,242,233, 39, 31,251, 78,220,124,190,229,238,218,133,195,116, 54, 61,177, 13,131,105,157, 45,206,186, 94, 39,190, -111,191,222, 84,246,251,116,104, 91, 27,116, 47,178,124,243, 56, 59, 72,218,126, 32, 77, 47,180, 70, 29, 63,124,252, 57, 33,210, -179, 31, 67,167,186, 68,123,110,129, 96,218,139,232,167,158, 93,247,113,226,119,209,174,253,147,109, 95, 93,184, 53,231, 14,162, -179,221,127,239,111,246, 98,143,165,238,182,213, 64,190,243,207,221, 27,165, 20, 44, 23,224,106, 26,109,104, 66,123, 41, 77, 21, -206,128, 14, 10, 86,176, 12,179,212,103,175, 27, 3, 66,210,212, 14,156, 68,168,205, 7,210,110, 2, 62, 48,196, 95,168,190,213, -230,104, 77, 31,195, 44, 33, 78, 98,148,104, 21,163,254,166,168,154, 6, 29,248,242,198,186,144,214,228,169,114,131, 54, 10,211, -250,159, 93, 53, 26,103, 12,105,156, 4,152,131,162, 52,130, 60,142,137, 70, 19,214,198,134,205, 99, 91,225,209,126,238, 74,249, - 89,188,144, 27,202,211,187,184,239, 63, 86,121,191,203,101,176,119,225,218, 57, 24,114, 11, 29,220,139,229,109, 55, 16,229,197, -114, 81,146, 48, 28, 14,184,119,118, 47, 68,148,122,139,213,122,189, 14,173,123,135,176, 14,203, 70, 17,223,146,176,252,220,207, -110,189, 38,165, 36,163,241, 4,225, 44, 77, 93,177, 92,149,100,195, 17,147,131, 3, 84, 28, 19,199, 9,239, 63,255,136,197,124, -206,226,230,138,249,205,141,183,215, 69, 9, 55,243, 27, 14, 15, 15,177,206, 49, 30,143,248,254,213, 75, 31,148,177,155,195,220, -171,108,183, 88,247, 46, 32,244, 2,164,200, 73,225, 69,142, 81, 68, 20,121,124,167,138,163,158,184,175,101, 66,248,235, 84, 6, -134, 68, 95, 0,217,210,189, 90,111,127, 11,248, 17,189,133,170,117, 89,180,105,125,194,249, 57,238,236,122, 70, 85,148, 27,241, - 36, 6,231, 26,223,118,119, 14, 66,174,188, 37, 32, 75, 3, 68,228,193,179, 15,184,190, 60,231,207,127,241, 11, 78,143,143,249, -155,255,252, 31, 41,138,138,159,255,242,175,248,226,247,191,227,159,253,119,255, 3,127,251, 55,255,137,186, 44, 56, 56, 58,161, - 44,214,204,102,115,116, 93,114,116,116,204,236,242,154,162, 92,163, 34,159, 39,159,231, 57,249, 96,132, 20,142,243,183,175,121, -243,195, 15, 56,173,253, 97,200,214, 84,213,218,139, 70,131,181,177,110, 42, 16,138,170, 88,145,167, 9, 7, 71,199,126,252, 21, -231,100,169,207,181,143,178, 12, 33, 20,117,181, 34, 73, 7, 56,227,153, 6,166,139, 60,253,175,251,171, 27, 41, 57,239,107, 31, - 12,135,225,189,189,123,116,181, 77,243, 12, 93,213, 45, 53,177,191, 63,117, 93, 81,151, 5,197,106,129,109, 26, 22,139,153,199, - 36,235,154, 70,215,157,152, 45,146,176, 94,206,169,155,134,201,225, 49,135, 71, 71,200, 36,225,193,163,167, 24,103,185,127,239, - 33, 32, 88, 44,151,172,230,158,111, 48,155,205, 80, 81,204,193,201, 41, 79,159,126,200, 36,116, 3, 22,179, 57,139,217, 53,121, -150,114,120,124,134, 16,210, 31,206,132, 32,205, 82,191,209, 73, 9,194,235,116, 68,119,157,171,126,238, 91, 87,196,108, 10, 53, -177, 25, 55, 8, 73,227, 92, 16,113,123, 66, 95,156, 36,204,230,215, 28, 76, 15,185,119,239,140, 52, 73,124, 42,157,117, 8, 21, -161,148, 98, 50, 28, 81, 22,101, 23,204,228, 55,119, 21, 70, 10,126, 63, 26,228, 3,178, 52,227,163,143, 62,228,254,253,251, 92, - 94, 93,117, 89,242,219,252,245,221, 25,248, 54,219, 66,116,115,244,237, 72,215,205, 77, 46,122,227, 8, 63, 78,116,114, 91,135, -230,122,110, 49, 41,164, 63,168,110,142, 7,219,163,137,238,125,220, 28, 10,212,233,163,199,159,183, 51,130, 86, 0, 37,247, 97, - 92,219, 13,189, 21, 69,220,122,248,187, 55,243, 93, 28, 95,151,101,190,133, 13,188,219, 22,210, 71,187,238,171,174, 91, 65, 88, - 63,111,253,174, 3, 64,127,243,223,237, 12, 68, 81,228,109, 17,202,195, 68,148, 82, 30,254, 80,174,186,106,217, 90, 71, 28,201, -160, 5,241,213,177, 68,144,196, 1,237, 26, 54, 5,107, 90,196,174, 23,175,181,234,107, 41, 55,155,186,127, 14,254,251,154, 80, -253,229, 73,196, 32, 78, 2,135,217,231, 88, 91,231, 40,116,141, 54, 22, 17,218,247,222, 74, 34, 81, 82,116, 0, 22, 19,188,236, -190,157,231,185,205,214, 54, 72,165, 88,149, 53, 73,154,112,116,116,202,220,184, 45,166,241,174,216,177,237, 52,136,174, 10,219, -182,186,221,201, 22,248,137,126,245,159, 98,127,115,251, 7,199,219,159,123,239,235, 85, 16,250, 40,165, 72,147,148,147,147, 83, -132,128,170,170,113,214, 80, 85,229, 38,213,205,216, 48,166,240,175,213, 6, 72, 75, 11,166,233,107, 79,178, 44, 35,205,115, 34, - 9,166,209, 24, 11, 63,255,197, 95,178, 94,175, 72,211,140, 52, 73,176, 64,158,101,188,121,243,202,219, 16,181,166, 44,214,224, - 4,218,106,158, 60,122,196, 87, 95,254,129,229,106,181,119, 83,239, 78,218,110, 95, 63,100, 35, 60,179,214,183,205,251,118, 40, - 63,127,151,200, 40, 33, 29,142,145,113,130,136,227,110,211, 22, 42, 66,198,113, 71,127, 20,237,245, 18, 2,152,100,228,103,247, - 78,108, 87,250,125,144,212,253,179, 51,174,174,174, 88,204,230,254,253,233,198,109,182,211, 3,244, 91,197, 82, 68,221,125,174, -164, 68,166, 3,178, 60,231,207, 62,251, 25,223,126,253, 5,171,162,164, 44,150,172, 86, 75, 30, 61,120,196,108,113,195,197,249, - 27, 78, 78,239,243,234,135, 87,228,147, 3,180,174, 72,211, 1, 23, 23,231, 20,235, 37, 7, 71, 39,254,179, 77, 51, 14, 14,143, -249,235,127,250,207,248,227,239,127,207,205,213, 57, 85,185, 8,184,216,152, 56,246,168, 83, 33, 21, 66, 70, 28, 28, 29,113,120, -112,196,209,233, 25, 89,150,226, 2, 2,118, 48,152,112,114,239, 9, 69,233,163, 59,173, 13, 97, 57,186, 66,168, 24, 41, 28,197, -170,216, 96, 95,255, 43,112, 23,110,233, 79,130, 99,193, 54, 14,161,228,102,220,177,199,138,187,223, 10,220, 86,155, 97, 60,211, -159,203,247, 24, 7, 18, 65, 93, 53, 12,134, 35,180, 54,140,167, 7, 76,198, 83, 22,203, 57,145, 84, 76,166, 7, 65, 56,151,144, -100, 25,243,155, 43, 98, 37,121,246,222, 7,168, 56,230,240,248,132, 36,241,246,183, 36,142,168,235,146,217,245, 13,111, 94,191, - 97,190, 92,208, 88,199,209,201, 61,242,124, 20,198,131,146,225,120,226,149,249, 77, 77, 89, 20,196, 81,212,165,112,118,145,168, - 33,219,161,237,102,110,107,117,130, 22, 41,104, 35, 92,112, 8, 9, 37,183,187, 20,214,225, 12, 92, 93, 95,113,239,222, 61, 70, -163, 33,113,156,144,101, 89, 23,108,164,235,138,209,112, 64, 89,150,222,234,134,127,142,158,184, 39, 72, 18, 31,222,163,181, 70, - 10,193,209,225, 33, 63,255,217,207,201,179,212,139, 91,173,219, 18,229,110,239, 27,114, 59, 35,229,150,133,141,237,214,122,183, - 1,187, 46, 4,173,117, 91,109, 84,236,108,205,202,247,253,178,194,109,104,174, 59,201,111,234,236, 81, 11,159,217,246,128,183, -213,217,173, 54,234,158,249,116, 95, 86, 47,197, 54,212, 68,222, 10,174,151, 59, 12,224,219,111, 64,187, 17,219,222, 1, 98,223, -166,210,223,208,187,239,219,173,190,187,138, 75,117,177,125, 82,122,251,133, 10,135,153,118, 3,239, 90, 34,237,156, 54,138,144, - 66, 98, 23,215, 96,189,112,198, 6, 88, 68,146,248, 22,188, 14,207, 81, 56, 75, 20,123,192, 76, 21,102,223,132, 17,110, 20,121, - 16,132, 7, 67,120,252,107,251,114, 90, 75,155, 19,194,131,100,210,152, 60,137, 58,170, 91, 18, 41,172,131,162,174, 66, 60,167, -223,184, 93,152, 41, 43,229,173, 35, 74,170,192, 64, 22, 44, 10, 77,164, 20, 78, 73, 84, 72,111, 91, 23, 53,105, 62, 96, 50, 57, -240,155,122,215, 94, 10,113,176,161,181,211,142, 12,228,142, 16,242, 46,189,167,184,171,125,254, 39, 46,128,183, 54,186,254, 97, -176,119,221,245,227,118,133,235,111,234,190,253, 30, 69,138, 60, 31,144, 15, 6,228, 89,234,217,231, 33,244,194, 25, 75, 36, 85, -151,156,214, 90, 5,219,170,214,231,175,219,173,211,184,183,201,141, 17,182, 1,103, 89,173, 11,190,253,246,107,150,179, 27,214, -171, 37,203,229,130,155,235, 43,222,190,254, 33,136,224,108,199, 0, 7, 75, 89, 21,156,157,222,167,105, 52,139,249,156,162,174, -182,104,114,254, 50,113,221,166,126, 59,232, 65,236,238,253, 62,126,216,120,236,172,213, 6,163,141, 71,208, 26,235, 71, 43, 97, - 12,147,143,166,168, 52, 71, 37, 25,233,112, 76,148,100,168, 56,246, 27,125, 20,161,162,216,135,121, 72,133, 10, 32, 36,164, 68, -136, 8, 17,121,168,148,167,156, 25, 94,191,126,237,131,100,122, 68,193,219,159,177, 67,184, 48,174,233,144,207,222, 91,252,240, -209, 83,158, 60,125,198, 71, 31,125,204,203,239,190, 98, 58, 61, 96, 52, 28,240,254,243, 15,249,230,235, 63, 50, 28,141,169,234, -134,139,139, 87,220, 92, 93, 33, 44, 24,171,177, 77, 65, 18,167,222, 67,173,125, 80,199,227,247,223,231,230,102,198,106,118,206, -108, 62, 39, 78, 50,140,169,136,211,140,195,211, 7, 12,198, 83, 26, 93, 51, 28, 77, 56, 60, 58,166, 88,175,169,202, 37,166,174, -248,240,179, 95,114,124,250,144, 55, 47,191,229,252,205, 43,226,216,167,236, 33, 36,186, 40, 60,206,215,104,154,186,238,236,100, -105,238, 45, 82,255,229, 10,248, 29,107,151,219, 56,218,108,227,195,119,116, 11, 54,218,211,221,106, 55,233, 62, 81,113,235,223, -219,182,237,238, 97, 32, 36,217,249, 2,201,251,250,173,179,164, 89,198,106,177, 96, 93,172, 41,150, 11,230,179, 89, 40, 4,252, -215,205,231,115,210, 44,197, 90,195,211,103,239,115,122,230, 67,124,170, 98,141,146, 17,227,209,132,213,114,193,236,250,146,243, -183,175, 56,191,120,195,245,108,134,174, 45,166,105, 24, 12, 70, 76, 15,143, 60,162,182,170,144, 66, 98,116,137,101,163, 49,234, -176,225, 82,108, 93, 87,237, 91,221,218,119, 13, 46,192,104,194, 38,218,115,227, 72, 21, 35, 4,196,105,198,120, 56, 12, 7,251, -196,119, 8, 28,172, 11, 31,120, 53, 25,141,124,215,179, 42,145,161, 66, 87, 81, 68,156,120, 33, 93,154,166, 88,103,136, 34, 47, - 80,126,252,232, 49,159,125,250, 41,171,178,244,184,217, 78,137,206, 86,193, 40,229,142,191,189, 27,183,239,236,115, 91,237,114, -209,213,223,178, 21, 43,183,135,235, 54,123, 64,208,205,211,183,255,107, 83,237,197,166, 99,179,181,169, 63,126,250,185,232,181, -131,216, 81,177,139,222, 27,223,158,166,228, 14,166,117, 23, 20,211,110,158,183, 48,173, 61,246,110,119,112,112, 59, 17,154,123, -230, 12,239,186, 49,250,179,244,150,145,221,125,216,157, 74,177, 85,236,251, 19,162,234, 69,187,202,126,232,125, 79, 24,209,218, -233,162, 40,166, 92, 92, 35,140, 65, 55,222,202,102,156, 35, 79,124,155, 83,155, 0,151, 9,213,162, 64, 80, 53, 33,155,217,109, -128, 53,157,221, 73,122, 75, 91,255,131,150,210,207, 63,141,177,164,113, 68,158,198, 36, 81,140,182, 13,105, 28, 83, 53,117,103, -169,243, 41,111, 33, 7,189,187, 56, 92,119,152,177,192,114, 93,162, 98,133,141, 18,178,216,251, 55, 87,149, 33, 31,142,144,131, - 17,107,219, 77, 61, 59,196,105, 95,161,239,197, 60,118, 67, 91,187,171, 42,223,151,158,247, 39,180,230,247, 47,146,110,255,223, -244,186, 5, 61,225,240,198,238,214,113,152, 61,229, 42,207, 7, 28, 76,189, 18, 30, 28,197,202,207,194, 55,129, 40, 46,176,223, - 67,165,142,236,102,202, 91,155,186, 16, 12, 70, 35,164,240, 2,179,203,235, 27,116,221,132, 3,128,241, 57,228,109,192, 71,219, -169,233, 95,147,206,177, 92, 21,252,227,191,254,111,249,226,203,175,168,203,114,211, 5,105,143,209,129, 44,230,132,235, 9, 94, -110,171, 84,182,237, 64,226,150,184,208,154, 6,173, 75,140,174,113,186,166, 94,175, 49,117, 77, 83,123, 65,147,112, 32,226,136, -100, 48, 66, 40,239,150, 64,198, 68,217, 0,149,229, 36,195,177,175, 86, 48,190, 77,170, 20, 89,154,162,203,138,235,171, 75, 92, -240,216,187,142, 95, 96, 67,220, 99,191, 50, 20, 91, 99, 54, 37, 37,227,131, 67,164, 51,124,252,201,167,124,241,251,191,227,236, -222, 67,140, 46,121,255,253,143,152,223,204, 16, 40, 78,206,206, 88,175,215,100,163, 33,117,209,176, 94,205, 41,215,107,148,138, - 56, 60,185,199,249,249, 27,242,225,144,179, 7, 79, 72,210,148,171,243,183, 92, 92,188,165, 90, 47,105, 2,212, 39,206,114, 78, -207, 30, 98,155, 10, 99, 52,163,209,136,235,171, 43,166,211, 67, 28, 10, 33, 98, 86,203, 57, 95,125,241,247,196,169,162,170, 75, - 47, 58,173, 53, 56, 65,163, 61, 73, 78,134,170, 77, 73,233,213,220, 73,140,174,245,222,121,163,123,135, 75,231, 93, 58,158, 91, - 57, 9, 97,173,106,154,230,150, 39,250, 93,135,224,187, 54,255, 45, 1,101, 56, 0, 55, 58,164,255, 25, 75, 93,151, 33,189, 48, -199, 25,235, 25,242, 85, 65, 89,172,200,243,140, 44, 31,112,116,114,202,114,189,226,219, 47,191,226,219, 47,255,200,197,155,215, -140, 38, 83, 62,248,240, 51,254,197,255,248, 47, 41,155,138,193,112,192,112,228, 43,244,245,170,192, 24, 77, 81,150,204, 23,115, -174,206,207,121,251,234, 13, 85,173, 57, 62, 57, 37,205,114,134,227, 41,206, 58,140, 54, 56,103,188,166,194,109, 79,218,218, 19, -108,123,143,249,194,163,117, 16,184,192,151,247,223,100,240, 98,207, 72, 69, 84, 85,201,225,209, 81,151,182,231, 59, 55,113,176, -251,122, 46,126, 18, 71, 62,245, 48,205, 25,228, 3,170, 96,201, 83,202, 23, 82, 81, 28,119,221, 62,137, 32, 31, 12,248,244,163, -143,185,127,255, 62,203,245,138,117, 89,120, 84,120, 15, 27,219,199,142,111,123,215,247,177, 91,196, 86, 21, 46,187,162,165, 29, - 87,109,218,247, 78,236,132,204,176, 65,197,186, 29,101,122,223,201,164, 78, 30, 62,254,188,157, 93,116, 94,193, 93,163,125, 15, - 64,179,207,255,189,175,234,222,125,161,253,100,180,125,124,246,187, 68, 83,114, 75,238,191,199,210,214,111,201,246,170,203,126, -180,223, 70,236,176,217,240, 93,135, 9,117, 1,191,234, 54, 10,203, 54,117, 43, 8,199,132,209,184,178,216, 18, 18, 37, 74, 18, -197, 10,221,248,208, 20, 33, 61,205, 40, 82, 62, 80,197,226,253,177, 78,224, 35, 24,123,211, 12,111,243, 8, 7,156,240, 28, 77, -120, 12,164, 96,144,120, 75, 73,109, 52,105, 28, 83, 84, 53, 77,104,217,119, 34, 60, 43, 66,234,154, 67, 73,225, 69, 40,206, 97, -144,148,101,133, 84, 17,209,104, 74,158, 36, 24, 93, 83, 59,200,243, 33,209,193, 17, 78, 69, 36,105, 66,150,251, 83,109,146,166, -100, 89, 70, 28, 39,157,183, 82,236,105, 35,137, 61,136, 88,183,103,161,217, 13, 58,249, 41,144, 26, 33,238, 54, 49,238,235, 20, - 1, 91,237,247,214,211, 47,149, 34,203,115,156,128, 7,247,239, 51, 95,204,253,130, 19,184,228, 42,142,113,206,120,145, 92,107, -237,178, 62,199,190,105,204,134, 59,221,123,220,131,163, 67, 34, 1,101,185,102, 62, 95,117, 27,120, 59,139,182, 97, 68,228,118, -221, 1,129,213,190, 90, 45,249,238,229, 11, 38,147, 9,243,217,172,111,192,221,106,199,245,103, 99,155,105,217,230,239,182,207, - 64, 98,239, 33, 72,122, 93,108,128,245, 56, 48, 13,174,105, 16,166,193,213, 37,205,122, 77,181,184,161, 94, 45, 59,124,177,148, -138, 40,203,136,210, 1,217,104,226,217,233,137,247,180,219, 70,115,254,246, 85,207, 38,230, 15, 67,110,171, 45,189, 25, 87,200, - 56,246,145,176, 66, 32,227,216,219,158,206,238,243,222, 7,207, 89,206,174,152, 12,135,212,218,231, 21,124,250,201,159,177, 92, - 92, 51, 61, 60,230,197,203, 23, 52,181,225,226,135, 31,200,242,136,147,251,143,169,171, 53,235,245, 26,221,104,148,107,120,239, -195,207, 72,178,148,170, 44,201,135, 99, 22, 87, 23, 76, 14,142, 80, 73,194,163,167,207, 89,173, 22, 92,188,254, 30, 41, 36,217, - 96,196,114, 49,167, 46, 86,152,198,146,143, 38, 76,143,142,185,190,120, 69,179,158,211, 88,199,104, 52, 70, 55, 13,131,193,144, - 36,205, 2,173, 49, 34,142,211, 16,166,226,173,121, 8, 25, 58,100,110,199, 82,212, 3, 33,253, 3,187, 82,187,157,200, 40,137, -127, 26,146,182, 21, 53,239,181, 45,111,183,136,183, 14, 16, 61, 87,132,119, 46, 56, 78,239,157, 81, 20,235,176,161, 73,110, 46, -175, 24, 12, 7,156, 95,156, 83, 21, 5, 71,167,199, 44, 23, 75,202,181, 31, 31,149,101,193,175,127,243, 55,188,248,250, 43, 46, - 47, 47,152,205,231, 56,231,120,240,248, 41, 15, 30, 63,227,227,143, 62,225,244,222, 35,162, 56,198, 58,195,114,118,195,219, 55, -111, 41,214, 37,247, 31, 60,246,115,249, 56, 33,201,199,225,144,110, 67, 43,122,115,189,247,155,178,198,250, 10,189, 93,127,251, - 29,139,174, 24,149,130,186, 42, 88,173, 11,238,159,221,235, 98,166,165, 20,228, 73, 66,172, 36, 74, 69, 20, 85, 77, 85,107,242, - 52, 69,215,186,139,216,109,211,220,146, 56,233, 50, 24,188,202,223,219,130, 15, 14, 14,249,248,163,143, 57, 58, 60,193, 58, 88, -175, 87,136,182, 94,222, 41, 68,251, 60,248, 93,154,234,246,154,183, 97,195,187,237, 83,141,175,184,217, 6,227,244,103,235,187, - 57, 44,162,111,105, 59,125,244,228,243, 45, 60,222,142,103,188, 47,104,235,183, 71, 54,220,109,117,167, 24,109,223, 9,178,143, -114,237,111,254,187, 98,181,221,191,111,213,146,237,191, 71, 29,156,101,187, 13, 18,252, 74, 91,155,191,223, 4, 93,215,182,238, -230,244,123, 2,233,165,218, 84,247, 54,124,189, 2,154,213,194, 71, 25, 90,211,229,120, 71,209,166, 50,119, 64, 4,158, 4,231, - 90, 17,157, 11, 86, 53, 25, 46,212, 13,164, 65,134, 36, 52, 31,199, 25, 46,218,240,254, 14,211,152, 40, 8,223, 18,165, 88,215, -149,143,108, 53, 94,161, 44,149,164,106,124,213,158, 36, 49, 10,127,210,116, 64, 89, 55,222,181, 21,197, 36,147, 3,210, 40, 66, -215, 26, 43, 36,195,201, 1, 38, 27, 98,194,169,174, 49,206, 43,228,165,191,224,163, 56, 38,207, 6, 8,124,202, 18, 78,132, 13, -171,151,178, 36, 54,155,254, 93, 34,195,119, 89, 12,247,233, 38,246,253,253, 79, 57, 16,200,222,125,208,218,218,172,179,140, 70, - 35, 84, 20,113,122,114,202,106,189, 66, 74,197, 50,228, 89, 39, 89, 70,163,171,206,206,214,250,240, 61, 43,192, 5,191,117, 47, - 95, 94, 41, 6,227, 17, 73, 36,169,170, 53,243,121,177,125,244, 8,173,251, 56,142,125, 39, 96, 39,109, 45,201, 50,156,112, 20, -235, 53, 81, 28,177, 90,174,192,186, 61,198, 83,187,149,220,220, 90, 76,183, 64, 22, 98, 95, 48,237, 93, 3, 18,135,227,142, 78, - 72,216,240,157,245,222,245,186, 88, 82, 23, 43,164,138, 80, 73, 74, 58,156, 64,228, 5, 71, 55, 23,175, 89,204,111,252, 28, 63, -116, 71,218, 77,193,111, 16,237,207,179,221,125, 38, 85,236, 15, 71, 82, 33,227,132,124, 56,230,241,227,135,232,186,228,205,249, - 5,207,158, 61,231,253,103,239, 51, 26,141, 25, 79,143,249,221,223,255,138,139,183,111,121,255,249, 39,220,123,248, 24,109, 13, -127,255,155, 95,179,158, 93,113,112,112, 64,185, 90, 98, 12, 60,121,246, 62, 47,190,249,146, 65,158,243,199,223,253,198,123,232, - 77,205,241,241, 61, 47,138, 18,126, 54,109,140, 97,181, 92,144,101, 3,142,238, 61, 65, 72,120,241,205,151, 92, 93,188, 98, 56, -204,137,162,152,245,106,197,186, 40, 80, 66, 82,107,237, 15, 55, 74, 17,167, 3,132,244,179,251,213,106,133, 80, 94,137,157,166, - 9, 77,237, 69,115, 50, 82,183,222, 91,241, 35,250,145, 93, 80,214, 93,215,181, 84, 50,112,243,239,248,247,174, 88,217,214, 52, - 57, 54,110,140,246,107,219, 24,213,190, 38,105,235, 0,161, 34,234,166,102,181,152, 83,134, 22,181, 49, 22, 41, 36,235,213, 50, -196,178,150,196, 73,206,100,114,192,114,177, 96,181, 92,176, 88,204,113, 78,176, 92,174,168,155,154, 44, 77,136,179,156,155,155, -107,192,241,229, 31,126,207,197,249, 27,230,243, 27, 26, 93, 51, 24,142,249,249, 47,255,146, 71, 79,158,112,125,117,133, 49,134, -203,139,183, 92,188,253, 1, 99, 45,147,241, 1,147,233, 33,101, 85, 34, 67,133,222,119,231,152, 96,189,108, 69,218, 45,248,169, - 93, 75, 61, 75,191,241,172,144, 32,108, 76, 83,127, 13,182, 66,179, 56,142,201,146, 20, 33, 28,151,215,215,156,223, 92,115,124, -112,208,161,186, 91, 86,191, 15,142,241, 81,178,182,197,234, 70,129, 74, 39,189,190,228,244,236,140, 52, 31, 48,191,153,117, 69, - 96,187, 54,182, 9,118,155,207, 75,236,132,184,236,119, 94,109, 33,183,219, 2,197,137,205, 1,157,125,155,248,102, 28,185,181, -169,159, 61,122,242,249, 45, 31,122,216,240,118,231,156, 50, 48,125,251, 88,186,221,170,190, 95,173,237, 46,214,187,194,180,190, -104,142, 61,116,176,118,174,190,171,116,223, 74, 96,235,157,110,108, 27,105,184, 53,231, 16,155, 42, 78,170, 91, 9, 58,162, 23, - 28,211,158,236, 76,104,211,182,222, 81, 37, 4,182, 92,130,109,192,250, 60,116,161,188,143, 60,137, 36,117,109,209,214,120,138, -155, 0,169,252, 70, 47, 59,141,130, 8, 73, 97,190,122,107,213,157, 73, 18,111,194, 70,164, 79,226,138,148, 32,137,253,166,174, - 77, 67,164, 36,171,170, 10, 93, 3,127,113,199, 74,177, 40, 43,178, 56, 38, 9,175, 77, 41, 69, 89,107,180, 14, 21,127,146, 49, - 56, 60, 33, 21, 80, 22, 37, 81,236,133, 84, 46, 31,118, 24, 67, 21, 41,106, 93,117,128,136,166,105, 54,126,209,144,101,220, 82, -215,110, 85,238, 59, 24, 96,209,235,148,136,159,104,105,251, 73,155,247, 78,142,240, 86, 84,175,219,254,222, 56,142, 48,166, 33, -207, 7,164, 89,198,241,209, 17,101, 93, 18,169,136,229,114,238,147,241,210, 52,224, 70, 55, 89,232,157,181,207,137,110,166,190, -121,204,152, 56,203, 24,100, 41,186, 42, 89, 44, 75, 31,109,217, 83,163, 70, 81, 68,146,166,225,116, 31,117,180, 46, 41, 5,113, -146,113,114,122,214,169,110, 23,139,229, 29, 94,100,183, 51, 67,247, 93,158, 46,242,248, 22, 73, 78,220,225, 63,185, 27, 55,219, -135,150,244, 20, 61,157,223,185, 89, 47, 73,210, 12, 17, 69,164,121, 70,181,184,225,234,229,183, 93, 16, 13,108, 56,228, 62,197, - 43,194,154,160, 31,232,102,129, 50, 36,255, 69, 96, 29,241, 32,199, 56,201,195,123,103, 40,233,248,240,227,159,241,250,213,247, - 52,225,113,254,245,191,254,191,105,180,229, 95,253, 31,255, 39,255,254,223,254, 27, 46, 46,222,240,226,187,111,105,202, 21, 22, -203,248,224,144, 36, 27, 50, 28,228, 60,251,248,207,104,234,146, 36, 27, 81,215,154,186, 42,209, 85,201,108, 62,227,242,237, 43, -172,179,156,156, 61,226,201,251, 31,241,209,103,127,206, 15, 47,190, 97,126,241,154,213,242,138,170, 42,201,210,148,197,108, 65, -163, 53,141,105,104, 26, 67, 85, 20, 94, 52, 41, 5,113, 36,177, 77,195,213,197,107, 68, 72, 49,107,241,157,126,109,225, 86,254, -246, 22,176, 10,119, 39,244,202,253, 68,188,178, 71, 52,219,159, 84,229,247, 15, 87,251,224, 92,253, 81, 82,187,166,110,217, 88, -219,174,169,181, 94,176,103, 60,232, 38, 74, 98, 36,146, 7,143,223, 67, 70,146,197,236,154,203,183,175,152, 30, 29,121, 20,111, -146, 80,174, 75, 28, 2, 93,150,172,151, 75,230, 55, 55, 96, 13,231,111, 95, 83, 45,215,172,215, 11,138, 98, 77,163,107,202,245, -138,139,243, 55,124,253,245, 23, 92, 92,158, 83,105,205,193,225,177, 15,225,169, 53,141,246,104,220,201,244,144,225,100, 74, 81, -149, 88,211,248, 88,228, 22,231, 28,246,147, 56,142,187,215,208,239,142,181,175,211, 24,203,186, 88, 51, 26, 14,186, 49,150,104, -181, 71,206,145,101, 57, 39, 71,199,100,105,202,213,108, 65,158,164,164, 73, 70, 20,249, 48,174,182, 91, 83,150, 37, 85, 93,133, -162,107, 3, 2,147,194,219, 59, 31,222,187,199,189,123,247, 17, 50, 98,177,152,119, 12,137,254,232,183, 47,178,236, 23,142,173, -117,175,125,126,110,103,148,218, 63,127,119, 36,214,118, 2,190, 59,134,222,152, 32, 55,133,200,217,147,103,159,203, 29,223,156, -216,185, 16,246, 33, 57,247, 85, 86,251,208,171,187,252, 92,119,199,247,222,165,240,116,119, 28, 26,118,173, 71,237,139,238, 4, -111,129, 78, 36,131,232,192, 43, 20, 55, 41, 68,237,207,234, 11,228,162, 96, 49,235, 11,178, 58,102,179,105,176,181, 79,124,114, -214,224,132, 36, 14,173, 25,103, 45,165,182,248,151,239,136, 98, 73, 99,160, 54, 94, 41,236,171,122,213, 61,111,127, 49, 90,162, -200,111,132,214, 26,164, 18, 33, 50, 53, 66, 72,201, 48, 78,168,106,141, 84,138, 50,144,228,186,196,178, 72,177, 46,106, 6,185, -111, 43,233,198,135, 30, 44, 11,141, 20,254, 84, 41,242, 49,131,233, 33,202,121,188,108,148,165,168,100,136, 86, 81,247, 60,148, -236,150,106, 31, 15, 27,102, 64, 93,230,115,240,137,182,145,142,206,237,244,128,119,252,235,183,170, 20,238,166,161,253,164, 54, -101,255, 49,119, 15,127,157, 29,108,115,250, 85, 33,248, 65, 69,222,246, 52,153, 78,209,117,133,146,130,162, 44,168,181,247,206, - 26,235, 48,205,198,210,214,158,200,189, 79,221,132,142, 74, 80, 29, 68, 94, 77, 61,153, 78,208,117,201,114, 85, 48, 28, 77,104, -108, 67, 18,123,159,109,146,101, 76, 15, 14, 40, 86,107, 63,207,115,126,195, 67, 8,210, 44,231,236,236, 1, 85, 93, 49,187,185, -193,104,141,233, 60,247,110,235,181,108,207,207,221,150,102, 96,147,207,220,111,183,202, 59, 34, 24,249, 73,134,211, 46,155, 49, -116, 9,132,179,172, 87, 75,226, 52, 65,197, 25,235,235, 11,110, 46, 46,177,141,217,204,243, 2,233,206,225, 48,206, 91,178,252, - 7,237,151, 23,149,102,129, 67,239, 71, 73, 88,127, 56,124,254,222,135, 60,127,254, 17,111,223,190,228,197, 87, 95, 49, 95, 44, -121,249,242, 59,158,190,247, 62, 81, 20,243,245, 87, 95,240,235, 95,253, 45,117, 93, 51, 26, 77,168,138,218,255, 12,163, 89, 45, -174, 17,129,233,176,154,205,184,186,190,226,242,237,247,152,166, 14, 63,215, 91, 25,165, 16, 52,186,230,229,139,111,248,230,203, -223, 81, 85,101,224,134,211,161,124,151,139,185,143, 23,173, 61, 92,166, 9, 84,189,209,120,138,214, 13,117,227, 15, 48, 22, 31, -156, 82, 87, 69,167,178,182,216,206,119,189,239,240,217,205, 66,247,108,224,119,253,126,183, 10,151, 74, 6, 33, 84,223, 21,241, - 15, 87,217,239,182,224,119,215,221,214, 10,218,118,156, 90, 40,147,214, 53, 55,215,231,172, 22, 51,162, 36, 13, 17,196,150, 60, -207,153,207,110,176,206,241,236,131, 15,169,107, 31,230,211, 52, 13, 22, 71, 62, 26, 18, 69,169,143, 58,109,179, 9,156,197, 73, - 73,150, 13, 16, 66, 82, 22, 37,139,197,156,170, 42,121,246,193,115,158,127,248, 33,179,249,140, 56, 78,152, 30, 28,243,222,123, - 31, 80, 84, 21, 85, 89,131,117, 30,107,107, 93, 23,200, 20, 69,202,231, 18,152,208, 34, 15,133,146,143, 31, 22, 56, 39,136, 84, -204,253,123,167, 61,125,152,215, 82,121, 8, 77, 68,150,230,140,134, 3,138,178, 36, 82,146,225, 96, 64,154,166,148,101,133,214, - 53,163,225,144, 65, 54, 32, 73, 18,146, 52,197, 90, 75,173,181, 71,208,198, 49, 89,146,112,122,116,200,253,123,247,169,116,195, -236,230,122, 19, 69,190, 71, 32,126,187,237, 46,119,138, 83,233, 49,216,180,255, 7, 43,125,183,206,134,107,193,181,238, 6, 41, - 58, 17,157,232,185, 96,172, 55, 20,160,238, 61,121,246,249,214, 74,113,107, 46,184,253, 4,229, 78,139,117, 55,177,166,223, 30, -223,245,129,187,158,192,109, 23,106,227,238,176, 77,245, 5,116,119, 17,228, 58,202, 93,239, 36, 45,165,231,173,171,254,207, 22, -194,127,168, 65, 84,135,160, 75,223,241, 74,203,104,171,101, 37, 8, 89,227,210, 19,219,108, 85, 96,117,141,146, 10,221, 24,146, - 40, 10,214, 75, 71, 81,155,110,214,174,164,192, 24,168,173,195, 9,235,161, 50,225,132,217,230,226, 74,217,218,176,194,255, 3, - 16, 36, 73, 82,108, 99, 24, 38, 9, 69, 85,225,132,160,168, 52,178,119,234,147, 74, 82,213, 13,113,236,253,150, 69,165,145, 42, -162,168, 52,113, 88,116, 7,103,143, 24, 78,142, 48,206, 98,101, 76,146, 15, 81,249, 0, 27, 84,245,237,169,214, 24,211,169,223, - 61, 39,222,251,125,157,117,254, 70,117, 22, 23,182, 31,209, 19,173,185, 61,157,153,125,118,180,119, 1,102,126,108,179, 23, 59, -158,245, 91,141,230,126,124,121, 56,208, 89, 99, 16, 74,249, 27, 55,203,201,210, 24,221,104, 26,173, 41,170, 2,165, 90,194,220, -166, 82,111, 43, 35, 41,188, 29,173,131, 75,132,107, 34, 31, 12,152, 76, 70, 84,197,138,229,170,164, 40, 86, 72, 54, 22, 56, 37, - 21, 55, 55,215, 24,219,116,202,122,149, 38,228,131, 1, 73, 18,147, 13, 6, 52,186,230,234,202,219, 99, 92,175,178,219, 58,160, -136,237,150,250,254,174,134,216,138,136,101, 15,250,169, 15,241,184,253,253, 97,124,189, 77, 0, 0, 32, 0, 73, 68, 65, 84,110, -175, 95,186, 3, 80,225, 40,151, 11, 98, 21, 83, 45,111, 88,204,103, 16, 14, 58,152, 6,103, 52, 32, 72,178, 1, 77, 93, 35, 48, -136, 56,195, 74,111,245,176,214, 16, 37,190, 27, 34,145,168, 36, 33, 78, 34,166, 71, 71, 76, 70, 83,126,247,119,191, 65, 55,134, -131,227, 67,116, 99,249,246,219,111,249,195,239,126,227, 57,237, 46, 44,142, 56,102, 55,175, 73,162, 4, 99, 27,162, 40,227,222, -131,103,164,113,202,197,249, 43,170,229,204,211, 2,149,224,241, 7,159, 81,150, 43,202,245,146,166,174,189,146,221,249,199,170, - 10,175,156, 95,204,103, 24,109,168,235,202, 11,179, 66,247,204, 3,102, 34, 64,208, 88, 47,136, 19, 8, 26,173,187,117, 77,135, -212,197, 70, 55,161,155,246,110, 66,135, 96,155,214,184, 91,156,236, 77,150,236,219,216,240,107,146,189, 21,124,181,199,121,242, - 19,104,155,119,141, 4,246,205,220, 93, 43, 80, 51,206,207,219,195,235,108,170, 26,103, 27, 86,139, 27,138,162, 32,203, 7,232, -186,226,242,237, 75,255, 94, 75, 69,154, 13,153, 30, 28,145,228, 3,142, 79,238,249,238,135,146,124,246,139,255,134,108, 48,160, - 46, 43, 22,203, 37,149,214, 36,105,210, 5, 74,213, 85,201,108,177,228,252,252,156, 31,190,255,142, 31, 94,126,207,245,108,206, -209,233, 25,143,158, 60, 69, 91, 71, 28,197,196, 73, 66, 85, 85,196, 74,133,148,196,182,224,242, 99,195, 52,205,186, 22, 58, 82, - 82,215, 21,163,241,136,193,112,136, 12, 7, 23, 37,125,193, 19, 69, 49,105,154, 6,235, 91,142,117,150,178, 40,200,211,148,209, - 96,224, 93, 78,206, 49,157, 76,105,116, 67,165, 61,205, 47,142,188,168,216, 6, 36,114,164, 20,147,209,144,143,222,255,128, 44, -207,185,185,153, 5,196,176,184, 5,152,185,123,131,223,246,191,111,117,235, 4,183,132,232,187,157, 75,217,143,133, 13,143,163, -238, 5,245,123,127, 97,233,236, 40,119,180, 74,219,214,199,238,223,237,166,160,237,125, 1, 61,128,205,238, 98,223, 37,193,109, -197,218,237, 15,100,233,171,139, 91, 22,189, 10,209,120,187,201,111,237,247,245,231,240,237, 59, 97, 67, 88,138,175, 72,183,219, -178,221, 8,192, 89, 31,255,167, 53,182, 42, 73,147, 8,173,107,148, 18, 93,107,167,214,254,228,152, 40,159, 75, 30,199, 49, 69, -237,185,216,137, 20,196,106,147, 78,100,157, 37, 73, 34,255,245, 73, 10,132, 89,185,244,249,211,206, 90,226, 80,161, 59, 97,169, - 67,165,100,218, 81,130,244, 74, 78, 41, 28, 81,148,114,189, 42,145, 10,172,147,196,145, 68, 35,153, 60,122,143, 56,203,145,113, -228,231,141,113,140, 72, 82,207,133, 15, 56, 88,235,108, 71, 20,243, 85,139,246, 42,120, 99,130,253,174,109, 61, 6, 88,141,219, -108,232,125, 18,221,173,246, 96, 95,203,176,167, 21,252,174, 8,220, 45,147,248, 62,133,113,223,218,214,210,167,194,169, 86, 69, - 10, 27,198, 30,227,131, 67,172,105, 56,156, 78,169,170, 10, 16, 20,171,117, 24,199, 40,116, 93,117,170,117,219, 6,109,116,155, -186,232, 90,103,113, 28,147, 15, 6,140, 71, 67, 86,139, 5,179,217, 42,168,114,155,110,131,214, 90,251, 27,189, 35, 67,250,235, -241,201,179,231, 12, 71, 99, 16, 48,159,221,176, 94,175, 55,213,185,235, 8,241, 61,113,144,219,105,163,239,107,173, 91,246,152, -103,216,159,105,200,143,186, 11,246, 54,240,157,163, 88,206,169, 86,107,159,209,109, 77, 55, 50, 18,120,156,174,105,106,255, 49, - 37,121,224,224, 71,126,205,136, 21, 70, 27, 68, 20, 51,152, 78,137,199, 62,248,227,240,240,152, 23, 47,190,161, 88,123, 27,224, - 96, 56,226,226,245,119, 32, 28,131,225,148, 55,175,127,224,253,143,255, 44,228, 41, 8, 86,171, 21,113, 44, 25, 15, 15, 56,123, -240,132,211, 7,143,200,242, 1,175, 95,126, 71, 89,174, 59,215,193,205,213, 21,194, 89,172,107,208,141, 38, 82, 49, 73,228, 43, - 46, 21,249,196, 49,227, 44,214,216, 46,148,196,118,185, 9, 46, 88,162, 36,131,209,129, 63,144,225,168,171, 10, 99,253,225,182, -169,181, 87,249, 7, 78,121, 59,207,238, 14,149,237,239,109, 88, 96,223, 1,142,121,215,232,169,219,244,129, 72,170, 91,214,181, - 54,143, 2,185, 1,205,252, 41,157,175,125,254,247,189,207,165,223,141,179,155, 33,147, 53, 62,129,178,181,192, 14,199,195, 0, -185,242, 85,125,163, 11,138,245,146,166, 40,184,186,186,160,210, 21, 77, 99,121,243,230, 53,179,229,188,151,101,224,117, 58, 73, -150,161,141, 97, 85, 22,172,151, 43,140,243,122,151,186,214,204,110,174, 57,127,253,154, 55, 63,124,207,213,197, 91,138,245, 26, -164,228,240,232,152,131,195, 99,132, 76,136, 99,133, 66,114,118,122,143,193,112,194,106,189, 12, 93, 87,112,214,175,231, 77, 99, - 56, 58, 60,244, 27, 93,164, 72,211,196,167,240,133,206,164,183, 87, 71, 36,113, 74,156,250,144,172, 44,203, 56,154, 30,208,104, -205,106,189,226,209,131, 7, 30,248,213,248, 28,121,191, 87,248,117, 60, 82,138, 72, 41,146, 56,230,233,163, 71,124,252,209, 71, - 40,169,184,188,186,232,186,158,109,113, 40,118, 29, 99, 98, 91, 15,212, 63,180,183,127, 47, 17, 72,231,250,228,101,148, 11,193, - 86,248,251,164, 69,187,219, 62, 56,238,244,225,227,207,111,109,154,237,205,190, 67,127,235, 7,179,236, 10,130,250,149,123,247, -247, 61,175,123,255, 36,218,127,188,182,122,221,151,180,214,111, 17,181, 98,173,109, 69,187,220,146,243,111,133, 95,244,146,225, -250,173,255, 54,109,170,127,211,200,112,195,202,144, 57,188, 85,149, 6, 59,133, 84, 10,171,107,159,179,110, 52,177,242, 66, 54, -127,250,243, 22,179, 82, 55,196, 74,250,121, 99, 20,177,174,125,171, 85, 6,180,108,235, 81,116,214,249,100,182,198,118,179,154, -198,152,112,170,147,152,128,144,173,181,193, 73, 65, 85,153, 14,222,159,132,139,210, 43, 53, 35,140,117,220,172, 10,162, 56, 34, - 82,145,223,220,227,140,163,199,207, 16, 74, 33,226, 8, 3, 68,113, 2, 50, 10,149, 73, 80,209,219, 13, 37, 80, 6, 53,101,211, - 4,150,119,208, 32,108,141, 60,118,211,217,118,171,243, 61,200,224,187, 22,180,189, 21,254,158, 5,199,237,177,182,117, 98,205, -254, 98, 39,232,110, 62, 25,208,155, 82, 69,156,157,157,176, 94,175, 49,214,159,198,173,245, 62,124, 99,180, 87,116,247,194, 92, - 8,175,191,239, 33,151,202,183,145,167,211, 49,243,235,107,150,171, 98,163,188,101, 59,217,174, 15,108,242, 96, 32,197,225,201, - 9, 85,185,224,237,155,183,152,166,217,178,227,109,143, 50,118,229,237,242, 39, 83, 2,254, 20, 43,225,187,116, 11,244, 94,207, - 48,207, 89, 46, 87, 52,166, 9, 7,183,128,215,141, 18,226, 65, 30, 98,102, 27,136, 83,148, 76,176, 85,225,223, 75, 33, 25, 76, - 15,153,156, 30,163,146,216, 95, 67, 50, 98,177, 90, 50,156, 76, 89,173, 86, 24, 93,146,102, 67,116,101,121,244,244, 35, 46,206, -191,199, 1,217, 96,192,119, 95,254,142,170,208, 8,225,124,200, 74,163, 89,149,107,102, 87,151,124,245,197,239, 41,215, 75,156, - 19,148,229,202,183, 98,149,191,238,133, 12,161, 50, 33,156,197, 57,219,121,190,109, 99,200, 36,126,222,223, 83,129,139, 54,241, -207, 57, 48,206,119,237,164,236, 72,132, 62, 95,220,244,236,183,219,220, 12,225,216, 8,153,222,161, 31,217, 87,160,188,235, 87, -183, 54,137,109, 63,122,223,238, 33, 16, 63,249, 51,126,215,115,217,237,136,110,117, 86,123,247, 99, 95,123, 98,141,247,161, 99, - 55,217,235, 54, 92, 35,109, 58,165,144,210, 39, 2, 70, 18, 21, 70, 81, 42,142, 81, 73, 76,148,196,158, 46, 23,222,127, 99, 12, -117, 93, 83,148, 37, 77,211,144,132,110,105, 54, 28,121,220,237, 96,202,205,236,138,155,155, 75,170,178, 98,118,125,205,186, 40, -120,244,248, 9,191,252,171,191,162,214,154, 56, 75, 81, 42,226,248,232,132,199, 79,158, 81, 20, 21,171,213,154, 15,159, 63, 39, - 75,115,226, 40,198, 58, 65, 18, 39, 36, 73, 26,112,177, 81,119,152,246,177,177,145, 31, 61, 10, 56,156, 78, 25, 13,115,230,243, - 69, 7,161,242,243,121,175,133,242,130, 58, 13,150, 32, 52,246, 45,252, 39,143,159,240,217, 39,159, 82,150,165,207,109,151,226, -118, 32,204, 78, 58,219,214, 62,197,109, 97,157,227,110,216, 91,187, 91,201, 94,177,163,238, 63,125,239,243, 86, 21,206, 14, 67, -189, 21,203,237,122,194,111,217,202,246, 44,216, 46, 8,214,222,181,120,187, 91, 25,181,251, 90, 19, 50,248,222, 55, 27,110, 63, - 37, 78,244,114,221,251, 73, 89, 45, 98,181,109,203,118, 96, 26,122,111,112,103,223, 18, 93,235,169,205,125,247, 11,133, 12,192, -153,224, 63,182,190, 58, 54,186,102, 24, 75,154,112, 81, 59, 7, 81, 36, 89,150, 53, 82,248,141, 23, 33, 88,107,141,182, 16, 73, -137, 18, 46,228,244,110,124,135, 42,242,237, 98,165,130, 93, 3, 71,146,198, 33,198, 50, 96, 75,113,232,102, 83, 18,164,137, 34, -138, 54, 16,157,166,105, 88,213, 13, 74,122, 81,151,192, 33,135, 83,210,201,161,143, 62,180,198, 43,217,195,197,225, 2,160, 68, -181, 81,159, 61,159,100,247,188,100, 0,226,132,104, 88,211,165,127,189,195,186,115, 71, 75,254,174,246,251,238,103,110,239, 16, - 7,109,210, 23,237,158,138,114, 91,133,174,130,245,168,139, 79,148,146,179,147, 83,138,181,143, 96, 93, 23,171,144,142,167,168, -202,178, 3,138,244,189,234,219,155,122,168,212,243, 33,147,201,152,213,114,206,114, 85,110,143,138, 58, 97,166,236,156, 1,126, -188,226,181, 9,207, 63,252,136,197,205,140, 60, 31, 50,155,207,252,253,228,122,185, 13,253, 62,132,187, 75,197, 78, 15, 94,177, - 43, 27,220, 95,115,139, 61,137, 80,183,133,114,183, 25, 0,221,225,215, 52,172,138,117, 87, 93, 33,101, 71,164, 54, 85,233,133, -148,113,138,106, 28,214,105,191,152, 36, 41,249,228,128,193,217, 25, 34,220, 3, 14,135,147, 18, 21,197, 12,243, 17,105, 62,228, -252,252,130, 98,181,196,153,154,229,242,154, 52, 27, 51,200,115,144, 17,186, 42,177,182,161,177, 94, 89, 47,132, 32,207, 71,204, -110,174,105,170,218,111, 44, 66,120, 81,147,105,130,245,204, 82, 20,107,176, 62,230, 88,135,128, 26,135,192,104,205, 40,242,182, - 38, 35, 19,127,112, 14,218, 25,169,100,239, 32,239,200,243,140,178, 88,227, 11,122,215, 69,157,210, 41,156,183,123,224, 91,122, -228,240,129,182,145, 17,110, 7, 13, 74,207, 71,204, 59, 14,189,219,105,133, 59,155,186,184,125,117,252,216,227,237,174,215, 63, -118,184,232,219, 50, 85,228, 67,146,220, 22,157,180, 79, 56,180, 97,141,247,235, 21,194, 31,128, 91,148,177,140, 35,226, 52, 37, -201, 82,226, 44, 35,201, 50,210,193,192,255, 62,245,127, 86, 82, 5, 16,146,183,217, 58,231,168,235,134,198,104,170,162, 96, 57, - 95, 48,159,249,110,140,214,190,107, 18, 7,143,185,177,240,250,205, 57,175,127,120,193,229,219, 55, 44, 23,115,138,178,228,102, - 62,195, 57,203,193,100, 74,150, 13,136, 18,255,184,195,193, 48,196, 88,107,162, 40,246,128, 46, 92,151, 25,143, 16, 36, 73,130, -117,142,197,122, 69,154,196, 28, 78, 38,148, 85,137,146,138,209,112,136, 20,144,196, 49,105,150,134,245, 86,116, 93, 94,129, 32, - 77, 98,142,143,142,248,229, 95,252, 37,159,126,252, 9, 87,151,151, 62, 2,186,165,254, 5,154,222, 46,251,189,239,104,107,239, -241,109, 30,252,166,128,233,255, 39,130, 80,174,255, 17, 69,237,197,234,118,111,240,128,131,220,253,160,251,196, 57,217, 9, 33, -220, 86,219,105,183, 5,191, 47,243,188,127, 88,224, 29,234,247,190, 79, 61, 78, 18,111, 95, 8,217,205,221, 38, 31,236, 97, 66, -109,183, 44,189,170,115, 99, 77,107, 1, 51,125, 49, 92,167, 71, 9, 25,234, 22,219,249,198, 17,108,226, 3,165,132,196,211,149, -156, 49,216,106,193, 32, 75, 41, 43,237,113,155, 64,166, 34, 26, 99, 81, 89, 68,161,235,112, 40, 48, 88,160,208, 22, 37, 28,113, -236,130,210,220, 32,140,199,147,122,168,141,195, 52,142,104,164,168,145,212,193,171,106,173,161,177, 13,206, 41,164,136,186, 76, -225, 22,180,210,126,236,198,181,239,175, 34,206,135,157, 7, 62,138, 34, 76,152,243, 8,231,176, 33,136,196,226,124, 8, 77,139, -254, 13, 42,127,239, 71,182, 29, 97,141, 78,180,225, 59, 16,214,184,173, 78,206,150, 14, 98, 79,155,253, 46, 10,215, 59,195, 92, -122,157,129, 62, 43, 97, 19,102,225,246, 8,190, 68,104,177, 10,140,181,196,113, 76, 89,172, 59,205, 64,211, 24,162, 56,161,209, -197,150, 80,114, 19,174,210, 35,188,245,246, 56,139,143,186, 21, 66,145,100, 73, 15,148,177,113,127, 72, 41, 25,142, 70,228,195, - 33,243,171, 43,106,173, 81, 82,117,110,129,178, 42,253,231,189,101, 61,113,183, 77,103, 59,239,161,127,142,225,107, 59,193,148, -184,229,165,191, 75, 76,239,110, 7, 66,109,223, 31,239,208, 66,100,113,138, 48,230,255,167,237,205,154, 44, 73,210,243,188,199, -195, 99, 61, 91,158, 92, 42,107,223,186,122, 95,208,221,179, 1, 24, 12,193, 1, 8, 98, 35, 65,137,102, 36, 69, 19, 37,147,153, - 76, 23,148, 81, 50,234, 66, 63, 0,183,250, 21, 52, 74,102,210,133,126, 1, 37, 25, 9,129, 48,112, 48,192,108,152,233,158,238, -234,170,174,125,201, 61,243, 44,177,187,187, 46,220, 35, 78,156,147,153,213, 13, 26,149,102,105,221, 89,149,149,203,137, 8,119, -255,190,239,125,159, 23,227,200,106,109,247,203,147,120,161,143, 8,124,116,158, 83,234,202,126, 93,233,163,241, 88,191,254, 26, -189,141,117,178,233,140, 50,155,225,213, 54,107,221,212,138,241,104,141,167, 79, 30,130,177,240, 19, 35,124,148, 50, 92,184,116, -147,221,151, 79,200,143,142,201,103, 41,181,174, 40,138, 28,173, 52,107,227,117,187, 40, 3,121, 49,199,247, 37,243,227, 41,210, -179, 68,188,170,200,201,179,202, 5, 25,105,188, 32, 32,244, 96, 45, 14, 56,152,165,248,210, 99,115, 60,226, 56, 45, 41,138, 2, -233,198, 41, 69,158,227, 75, 65, 85, 87,206, 10, 9,113,111,132,214,154, 34, 79, 45, 73,210,173, 27,173,118,195, 99, 73,175,208, - 4, 35, 45,186, 29,167, 59, 85, 13, 45, 76, 59, 13, 79,247,190,251, 42, 33, 93, 23, 6,213,109,135,159, 7,161,121, 85, 76,236, -215,137,144, 93,173,206,173, 43,192,107, 79, 16,178,165,124, 90,188,178,104,133,117,142,111, 41,108,245,237, 5, 1, 34, 8,221, -134, 30,179,190,185,229,186,133, 1, 81, 28,211,235, 37, 8,167,108, 47,203,202,209, 16,237,186, 26,250,146, 36,234, 99,140, 33, - 77,103,236,191,124,134, 16,130,162, 44, 73,164,199,209,209, 33,243,185, 5, 74, 73, 35, 28,176, 9, 60,223,166,175,229, 69, 73, - 47,233, 17, 70, 33, 39, 66, 48,153,229, 12, 71, 16,245,122, 60,223,221,103, 60,236,115,241,194, 5,138,178,160,168, 74, 6, 73, - 31,129,108, 92,165,173,227,197,247, 3,142,231, 5, 85,165,185,176, 49, 38,207, 51,180,170,217,190,112,193,230, 72, 32,232, 39, - 22, 61,107,181, 73,117,171,213,169,141,193, 80,114,235,250, 77,254,229,255,248, 47,249,209,143,127,196,191,249,191,255, 13,251, - 71,135,228,133, 21,226, 89,228,184,118,200,112,221, 22, 22,139, 52,184,197,254,169,219,235,190, 40, 8,149,235, 48,121,103, 20, - 90, 45, 38,182,217, 60, 57,199, 87,217,204,171,165, 59,217,118, 67, 86,228,138, 96,238, 44,145,219,170,104,174,249, 59,217,216, -228, 58, 33, 50,221, 9,225,146, 34,191, 57, 80,184, 95, 60, 8,252,133, 77,205,253,163, 5,242, 83, 57,225,148,171, 52,221, 92, -173,133,212,152,142,183,185,201, 52,239,136,134,236, 41,206,169,229, 27, 8,141,123,129,101, 24, 99,170,130, 65,232,132,101, 70, -163,149,109,171, 23,202, 42,216, 43, 23,138,145,215, 86, 40,167,141, 33,144,146, 80, 74,235, 73,215, 26, 85, 59, 33,138,214,212, -202,182,240,141,209, 40,229,172, 28, 74, 81, 42, 77,237, 20,243,129,244, 8, 3,175, 19, 77,104, 23,157,121, 94, 83,106, 72, 2, - 31, 63,140, 9, 55, 46,224,133,161, 21,176,187,153,120,115, 58, 12,253,160, 37,125,181,179, 25, 79, 58, 13,133,110, 15, 82, 30, - 2, 41,236,251, 2,107, 42,206,174,240,224, 76, 91,226, 89, 85,194,215, 17,202,137,229, 35,235,138, 58,252,180, 88,164,241, 94, -123,222, 98,113, 29,140, 70,104,163, 88, 95, 27, 3,216, 76,122,101, 67,113, 60,207, 86,122,182,165,108,218,140,243,198,115,221, - 77,110,147,129,207,112,180,198, 96,216, 39, 79,167, 76,167,169,237, 10,116,112,194,113,146,216, 32,157, 44, 35,233,217,156,106, - 91,249, 37, 92,189,126, 3,173, 20,199,135,135, 45,127,222, 51, 44,217,160,186, 2,183,115, 85,236, 98, 25, 76,179,252,186,153, -149, 10,254, 52,144,228,213, 54,184,211, 94,235, 74, 85,164,217,220, 82,191,140,182, 42,114,165,236, 60,186,174,168, 43,155,136, - 22,184, 49,135, 39, 60,100, 16,179,121,243, 6,198, 8,250,107,235,244,215,198, 8,223,119,155,159, 38, 75,231, 80,229, 72,135, -228, 28,111,108,115,178,255, 28, 53,217,103,154,165, 76,142,143,172,157, 40, 75,173, 94, 36,140,185,121,231, 77,162, 56, 65,213, - 53, 73,220, 35,157,167,212,101,238,218,234,245, 98, 83,113,241,154,104, 99, 83,216,234, 26, 37, 4,218,192, 36,175,237, 33,217, - 24, 12, 30,189,193, 0, 99,106, 43,170,116,130,200, 32, 76, 8,162,200, 69,246,218, 3, 64,107,215,115,173,122, 79,122,103, 90, -148, 16,103,193,129, 22,151,106,184, 49, 38,238,247,240,157,102,163,113,220,156,167,128,239, 94, 99,179,146,200,246, 55,157,163, -191,138, 33,113, 94,177,213,126,236, 58,133,150,172, 41,157, 29, 87, 47, 1,189,108,129, 43,108,171, 93, 74,103,137, 12,136,251, -125,130, 36, 97,180,190, 73,220,239,147, 12, 7,172,141,199, 36,131, 1, 97,191, 79,111, 56, 64, 38, 17,194, 11, 40,234,130,249, - 44,101, 54,155,114,116,120,192,206,206, 11,246,118,159,115,120,112, 96, 15,231,101, 65, 16, 4,244, 6, 67,134,107, 99,162, 56, - 33,137, 99, 27,115, 93,169,150,231,208, 32,180,237, 70,171,168,139,146,227,227,125,210, 52,165, 44, 42,102, 39, 7,124,227, 91, -191, 74, 81, 89, 29, 85, 85,164,182, 43, 84, 87, 75,123, 83, 94, 20,110,111, 18, 84,218,144, 21,182, 64,219,218,220, 64,213, 53, -195,225,144, 36, 73,236,154,238,251, 68, 81,136,244, 4, 81, 24,182, 89, 25, 30,154,170,178,120,234,235,215,111,242,221, 95,255, - 46,158,240,216,223,221,181, 27,177,183, 18,217,186, 50,115, 95,134,183,117,148,146,139,126,253,233,118,124,115,248,186,112,237, -198, 31,211,153, 35,175,230,165,175, 6,212,119, 83,220,196,138,239,177, 57, 24, 4, 65,208,225,187,159,223, 98,106,126,240,230, -192, 96, 58,237,198,238, 24, 96, 65,237,177,159,228, 75, 31,233, 75,151,124,214,137, 92, 21, 11,145,146,173,182,235, 78,203,171, -147,246,213, 68,162, 98, 51,209, 45,209,199, 44,181,199,148, 82,237, 2,223,140, 18,154, 3,141,231,121,144,244, 9,242, 57,161, - 19,150, 41,160, 86,138,162, 86, 4,158,135,198,102,171,151,104, 7,113,209, 4,158, 36,137, 66,132, 39,200,138,146, 74, 27,140, -139, 98, 5, 75,158,171, 74,229, 60,163,134, 90,215,212,218,107,245, 2, 66, 24, 66, 63,112, 22, 36,119,154,243, 60,242,178, 38, -175,173,197, 42,217,216, 32, 28,172,227,133,161,123,232,180, 11,168,145,248,210, 39,240, 36,113, 16, 18,248, 62,129,148, 72, 79, - 16,120, 16, 74, 15, 97, 12, 81, 24,226, 53,179, 67,161, 23,177,142, 13,120, 4,179,136, 63,237,130, 19,190,162, 58,120,213,204, -241, 44, 27,163, 89,113, 68,172,170,238,155, 74, 73, 47, 40,200,246,244,238,132,141, 81, 28,163, 13,140,134, 35,194, 40,100,158, -218,234, 43, 47, 82, 80, 11, 15,111, 99,117,178,182, 30,209, 6, 72, 52, 7, 89,233, 7,248, 65,192,104, 96, 55,245, 52,205, 23, -129, 88, 29,248, 76,145,103,212,117, 77, 89,148, 4, 29,223,186, 50,134,183,223,124,139, 23, 47,118, 72,211,217,146,192,207,156, - 25, 88,124,218,218,214,249,104, 5,169, 41,206,152,173,155,206, 6, 35,120,213, 30,240,170, 56,221,192,151,164,243,212,118,107, - 60,223,233, 51, 34,219,245,241,164, 19,198, 9, 43,170, 20,224, 5, 33,227,139,151, 89,191,122,139,116, 54, 5, 85, 96, 60,159, -193,104, 29,207, 15, 93,248,145,102,115, 60,230,234,181, 91, 4, 97,108, 3,106, 60,152,206, 38, 84,121, 78,216,235, 83,228, 25, - 23,175, 92, 39, 47, 21,227,141, 49, 70, 25, 30, 63,248,130,201,241, 49, 51, 7, 68, 49,216,241,152, 17,160, 84,101, 69, 80, 73, - 15, 79,250,109, 21, 84,105,211,182,239,133,108, 90,237,118,228, 20, 70,129, 35,142,233,246, 80,175,117,205, 96,184, 70,150,231, - 54,136,167, 42,209,170,118, 27,160, 91,235,140, 62,117, 0, 51,102,249,112,181, 60, 30,178,207,109, 93,219, 49, 65, 81,216,132, -180, 94,175,183, 68, 69, 59, 43, 38,186, 9, 17, 17,136,115, 97, 77, 95,167,237,126,158, 95,254, 85, 29,181,110,113,230, 75,191, -237,128, 90,101,119,135,150,102, 4, 32,173, 13, 43,240,145,126, 8,158, 71,152, 36,132,113, 76,152,244, 8,251,125, 6,235, 99, -214, 47,108, 49,218, 88,231,189,119,222,230,251,223,253, 53,254,179,223,251, 61,254,235,255,242,159,113,233,227,111,112,255,243, -135,164,243, 9, 85, 81,161,155,195,119, 85, 83, 87,165, 21,209, 41, 69, 58,157, 49,155, 76, 40,178,148,249,108,198,108, 54,103, - 56, 26,210,239,245, 90,200, 76,163,141,105,102,252, 13,125, 51,136, 98, 48,134,191,251,187,127,143,157,221, 61,158, 60,121,200, -250,198, 22, 74, 27,134,253, 1,113, 20, 33,189, 69,200, 74, 24,132,110,127, 16,173,240, 87, 27,193,116,158,146,244,251, 68, 97, - 72, 93, 22, 68,161, 77,105,108,198,158, 24, 99, 25, 35,190, 21,208,121, 46,165,208, 30,228,124, 62,252,240, 35, 62,254,248, 99, -142,142, 14, 73, 83, 27,247,235,251,114, 89,175,182,228, 80,241,150, 15,232, 98, 33,140,235, 10,138, 13,166,237, 26, 25, 79, 44, - 87,234, 93,161,143, 56,163, 98, 90,218,104,207,240,168,175, 46,226,194,205,101,206, 82,202,119, 63,150, 43,228,186,110, 23,160, - 21,104,104,237, 48,158,139,155,221,115, 17,161,184,205,166, 17,118, 53,153,226,158,183,220, 85,104, 54,243,110,136,135,105,230, -181,157,249,125,227, 37,247, 26, 86,188,155,121, 27, 71, 97,210, 74, 65, 16,162,138,146,190,175,157,135,177, 6, 4,133,178,169, - 72,181,182,153,216,149,182, 62,104,187,121, 10,122, 97,224,128, 50, 53,165,214,148,117,141,241,164,245,184, 27,231,189,116,121, -237,133, 54,237,108,219,206,126,236,117, 82,202, 50,228,125, 41,172, 26, 83, 8,114, 23,210, 50,190,124,147, 32,233,225, 7, 65, -171, 39,240,125,233,188,149,214, 95,153,196,145,245,108,122, 16,152,146,141, 97,159,155, 23,199, 92, 28,245,185, 48,140,233, 71, - 33, 85,145,225, 11,171, 20, 23,221,140, 96, 99, 28,163,120,133,130,212, 57, 48, 45,165,248,157, 35,128, 60, 87, 24,215, 13,115, - 57, 99,203, 19, 43, 42,248,198,165,209,160, 37,219, 92,117,191, 33,228,197,108,172,175,115,120,116,132,116,243,214,230, 97,213, -170, 70,105,219,158,183, 21,135,215,122,215, 27,133,171, 39, 37,195,209,144,209,112, 64,158, 78,152,205,173,146,190, 86,150, 29, -208,204,100,149, 82,205, 74,183, 20, 24,148,244,251,124,118,247, 19,182, 47, 94,226, 96,111,111,233,254, 53, 75,112,138,118,219, -126,197,188,124,209,150,235,126,188, 88,199,205, 18,113,236,172,179,214,105, 91,187, 88,138,185, 53,110, 97,172,148,178,169,128, - 66, 0,150,113,111,202,202, 45,158,170,181,132,106,103,165, 49, 26,198,151, 46, 67, 16, 49, 24,173, 81,151, 21,170,204, 40, 84, -141, 16,144,244,134, 8, 41,216, 26, 14,209,117,142,174, 21, 39,199,187,108,142, 55, 56,153,204,168,148,177, 74,226, 56,177,243, - 86,233, 49, 24, 36, 8,207, 48,222, 88,119, 27, 12,132, 81,224, 4,141, 86,204,134, 39,136, 93,222,119, 16,197, 12, 6, 35,100, - 16, 17,134,177,163,196,249, 36, 73,159,126,127,136, 17,134,168,215,115, 86, 33, 7, 91,113,190,231, 56,138,241,165,199,225,238, - 30,190,244,169,157,216,206, 58,135, 93, 1, 33,204,121,147,166, 51,245, 30, 0,194, 37, 62, 14,135, 35,146, 94,130, 31,248,172, -143,215, 57, 57, 57,121,165, 70,169,219,162, 55, 30,175,156,201,159,167, 73, 58,111,220,181,186,217,175,118, 82,187,136,109,123, -120, 94,198,178, 54,135, 26,207, 19, 14,163,234,163, 49, 72, 25, 32,124,137, 23, 72,188, 40, 34, 25,140, 24,109,110,242,237,239, -253, 38,255,253, 63,251,167,252,183,255,197, 63,230, 15,191,247, 61,190,249,246,219,108,109,111,163, 67, 31,111,109, 76,230,173, -241,240,211,159, 81, 87,181, 67,215,186, 60,117,163,241,156,144, 46,240,125, 64,217, 67, 91,101,157, 23,101, 89, 80, 86, 37, 85, - 85,181, 14,151,174,240,181,161,144,190,245,246,187,140,215, 70, 28, 79,142,120,248,224, 62,191,255,123,255,128, 52, 75,137,162, -152,254,104,196,218,104,141, 94,210,183,192, 40,199, 33,104,210,254, 60, 79,162,116, 13, 24,170,170, 38, 77, 51,210, 44,103, 52, - 26,225, 75,159, 36,137,108, 84,181, 47, 25,174,143,173, 98, 93,184,144, 48,223,190, 78,129, 47,219, 34, 96, 99,125,157, 15, 63, -250,136,219,183,110,241,252,197, 11,151, 12,231, 45,146, 65, 29,189,174, 77, 27,245,108, 4,118,155, 61,191, 34, 84, 95,141,168, - 22,158,135,191, 10,245,160, 19,226,210,253, 34,109,213,202, 57,152, 59,183,192,117,171,107, 58, 11, 80,227,201,238,206,226,151, - 23,119,125,138,216,164, 59,226,172,166, 21,174,148,162,114, 11,163,239,251,237, 70,226,121,182, 98,174, 85, 67, 69, 51,237, 2, -217,216,222,194, 48,112,240,126,185, 0,149,184, 86,188, 37, 14, 45, 44, 78,190,107,145, 55,115,142, 38, 48, 70, 91,105, 51,194, -128, 30,172,161,166,150, 84,149,151, 37,101,165,240, 61, 65,213, 88,196,220, 89,171, 54, 6,129, 79,221, 28, 62,132,245,164, 23, - 74,163,141, 38, 54, 32,195,144, 82,105,180, 1,175,214,212,198, 80, 43,251, 96,249, 46,193,205,151,134, 90, 43,148, 22,104, 93, - 32,189,208,138,224,114,171,186, 15,226, 1, 97,175, 79, 16, 70,104, 1,129,144, 8, 97, 23,173, 80,122,188,255,206, 91,252,218, -119,190,195,120,188,206,139, 23, 47,169, 78,142,248,240,218, 58,178,180, 9, 86,181,170,172, 85,200, 93,247,231, 7,199,220,125, -186,199, 95,125,241,132,105, 81,145,187, 3,139,208,134,122, 65, 36,239,120,156, 23,221,154,110, 87,228,188,217,223, 89,226, 75, - 86,128, 51,221, 42, 93,116, 14, 97, 6,240,244,194, 10,182,186,100,149, 85, 69,127, 56, 98, 62,155, 19,248, 33, 24,207,138, 96, -180, 70, 87,218,102,129, 47,109,160, 54, 31,124,181,106, 22, 90, 83,150, 5,202,109,216,129, 47,219,195, 37, 88,209,140, 49, 22, - 98,210,237,242, 20,101,201,214,246, 37,252,164, 71, 48,139,121,242,248, 73,171, 61, 81,173,101,197,141,118,132,109,115,122,230, -171, 45,104,167,237, 73,167,105,114,171,237, 97,173,207,210, 58,184,223,207, 89, 2, 27, 13, 74,251,210, 27,160, 25, 87, 73,105, -169,138,162,196, 8,129, 31, 68,206,234,105,108,166,129,178, 93,188,160,215, 39, 73, 18,202,170, 32, 24, 12,144,194, 67,213, 37, -218, 24,242, 98, 78, 40,125,140, 22, 68, 97, 76,224,135, 4,226, 10,235,219, 23, 57,154, 76,184, 16, 39, 28, 31,236,177,185,185, -201,108, 54,227, 63,255, 71,255,148, 90, 27,210,172, 96,231,229,115,132,119,151,253,157, 23,108, 95,187,206, 96,184,198,252,228, -144, 47, 62,251, 4,207,225,105,165, 19,189,230,197,156,170,168, 8,130,144,164,159, 88, 4,108, 16,130, 20,110,179, 15, 48,194, - 67, 8,187,248,139,186, 70, 43,136, 70, 67, 60, 63, 98,115,235, 2, 71, 7, 7,110,243,142, 80,170,116, 57,241,242,149, 27, 36, - 75,221, 44,231, 28, 66, 32, 12, 92,216,216, 98, 56, 94, 35,157,206,152,207,231, 28,236,239,211,239,247, 73,211,180,117, 96, 44, - 92, 62, 30,202, 88,194, 91,115, 61,132, 62, 61, 14, 61, 75,236,214, 77,181,252,155, 36, 37,118, 59, 6, 45, 91,189, 33, 26, 90, - 1,206, 82,183,211,122,241,125, 55,219, 21,224, 53, 99, 81,215,154,151,182,106,151,113,196,250,165, 27,124,255,159,252, 55,188, -126,117, 64,207,253,235,220, 61, 75, 18, 65, 32,224,221,143,127,133,159,255,135,143, 72,255,242,223, 83,250, 1,120,121,187,126, -218,145,143,162,168, 43,192,142, 52, 61, 64,212, 86,196, 88,212,117, 91,120,105, 93, 59, 49,178, 92,154, 77, 31, 29, 31,129, 30, -113,229,218, 77,174, 94,185,197, 95,252,224,207, 88, 91,223, 96, 52, 92,195,151, 33,113,111,204,221,123,159,113,124,116,200,149, -203, 87, 88, 27, 14,144,126,224,176,181, 2, 95,218, 12, 4, 75, 21,180, 58,168,167, 47,118, 73,226,136,237, 11,235,108,110,110, -184,145, 27,196,131, 62, 50,180,241,174, 85, 93, 81,229, 5,105,150, 81,149, 5,126, 96,133,135, 27,235, 99,190,253,173,111,113, -229,242,101,254,237,191,251, 19,254,226,135, 63,100,158,205, 73,139,194, 30, 74,252,198, 22,220, 92, 83, 59, 10,142,195,192,229, - 85, 24,202,178,108,187,201,102,165,208,145, 23,175,221,248,227,238,209,243,172, 86,144, 56, 67, 72,177, 42,116,234,222, 16, 77, -187,122, 21, 36,211,110,232, 29, 1,157,148,142,171, 43,101,203, 60,246, 86,190,207, 89, 25,235,141,144,170,129, 24,180, 11,189, - 88, 6,221,208, 73, 48, 51, 29, 47,160,231, 84,136, 93, 32,142,181,146,249, 22, 48,160,117,235,107, 95,220,248,166, 69,199,106, - 12, 66, 6,228, 69, 65,172,107,148,209, 40, 13,165, 82,182,250,198, 35,115, 85,159,104, 88,239, 2,250,161,205,108,159,229, 21, - 89,109,219,179,141, 60,162,172, 21,117, 3,126, 1, 74, 99,163, 93,147, 72, 82, 57, 38,115,232,251,228,181, 34,171, 44, 56,163, -210, 10,141,197,115,142, 47, 95, 35, 25,108, 16,248,176,222,139,217, 94, 27,112,105,173,207,157,173, 33,223,188,115,141,141,216, - 39,159, 77, 56, 62,158, 16, 70, 61, 8,122,124,190, 51,101, 39, 83, 40, 4,101, 62,179,135, 6, 99, 65, 58,195, 36,225,206,197, - 49,191,246,222, 29,198,177,207,254,193, 49,153, 90, 84,210,170, 83, 10,138,149, 50,240,111,154, 50,245, 42, 43,155, 88, 81,121, -181,215,114, 73, 69, 78,123,120,212, 90, 35,164,100,224,210,163, 54, 55, 54, 57,153, 76, 73,122, 49,179,217, 20, 15, 15,101, 22, -233,106,139, 16, 31,227,132,206,237, 48,202, 18,165,226,152,225,112, 72, 89,204,169, 74, 77,154,229,173,254, 34, 12, 67,170,170, - 58, 29,102,131, 33, 74, 6,108, 95,190,204,241,241, 17,147,163,195,101,143,191, 89,252,252,218,205,132,219,252,250, 87, 84,234, -231, 41,219,151,102,176,231,107, 23,219,205,252,212, 6,181, 20,123,233,152, 13,141, 59,192,184, 77, 77, 70,246,243,221,235, 85, - 23, 57,166, 42,237,152, 70,193,232,226, 37, 42,165, 64,186,103,210, 88,165,122, 24, 37, 36,201, 16,180, 33,150, 53, 82, 27, 62, -252,240, 27, 36,189, 1, 65, 28, 83,171,218,117,192, 42, 54,182,182,248,238,119,127,155,170, 42,248,209, 15,254, 61, 59, 47, 30, -243,226,233, 3,166,199, 71,164,233,140,163,221, 23,236,191,120,198,108, 50,163,215, 75,236, 12, 61, 8, 81, 74,225, 7, 1,155, - 23, 46,209, 27, 12, 91,214,134,210, 53, 74,149, 36,113,143, 48,140, 40,202, 10, 92,128,143,144, 62,101, 81,217, 42, 72, 89, 90, - 88,158,102,182, 43, 97, 52, 65,175,111,117, 46,170,217,120, 87,220, 3,205, 53,236,250,213, 91, 78,129,104,215,181,143,190,241, - 49,198,243, 56,220,223,103, 54,157,185, 46,131,106,215,203,110,117,220, 8,167, 76,247,230,215,230,107, 43,220,207,179,169,157, - 69,239, 60,235,217, 91,170,246,219,207,243,150,173, 86,158,103,115,233,189,197, 40, 66, 72, 31,225,135,200, 48, 68, 6, 17, 81, -156, 16, 13,199,188,253,173,239,115,245,141,111,176, 57,246, 8,132,203,199, 0, 20,130,169, 49,236, 23,138,163, 12, 6,195, 45, - 62,251,201, 95, 82, 21, 25,117, 85, 57, 56,148, 21,208,217,180, 75,133, 48,198,226, 88,141, 61, 56, 27,173,145, 66, 32,132,194, -212,202,185, 74,154,188, 10,171, 95, 26, 95,216,230,250,245,235,188,118,251, 54,247,239,125,198,227, 7,247,136,147,132,209,160, -199,246,133, 77,130, 40,226, 79,255,244, 79,120,244,228, 1, 15,191,188,207,103,247,190,224,225,147, 71, 76,102, 51,242, 74,187, - 89,121, 96,149,241,129,133,214,140, 70, 35, 54, 55, 55,241,131,128, 44, 43, 40,235,138,225, 96,136,239, 91,134,124, 55, 78, 59, -112, 88,106,165,236, 56, 65,107, 69, 24, 70,196,253,136,245,245, 49,239,190,247, 14,119, 94,187,205,227,135, 79, 90, 54, 6,157, - 53, 64, 58,118, 75, 20, 71,109,231,193,151,146,126,191,223, 2,222,186, 33,100, 2,135,137, 93,248,186,151, 69, 20, 75,149,122, -167, 21,223, 86, 99,157, 69,182, 81,136,139, 21,104,136,160, 19,227,218,217,240,155,175,169, 26,175,176,227,174,215, 46, 28,101, - 53,150, 85,117, 42, 33,233,196,102,221, 27, 81, 41,213,218, 73,172,160,195, 56, 21,183,183, 12,166,105, 8,110,238, 64,224, 59, -157, 64, 35,178,106,108, 92, 77,190,175,116,177,169, 11,206,189, 93,132,219, 83,181, 16,200,124,142, 54, 53,181,182, 27,123,230, - 80,160,165,214, 40,219,159, 68,120,182,179,208,151, 30,190, 39,153,151, 53,179,214,183, 44,156,154, 84,218,255, 26, 43, 6, 44, -106, 91,185,135, 78, 63,160,181,194,243,237,225,167,172,237,140,178,172,106, 20,134,164,215,227,205,183,222,224,157,155,151,121, -239,198, 85, 46,174,245,232, 73,141,174, 10,230,233,156,227,201,132,162, 40, 81, 69, 65,157, 78,121,254,248, 75, 62,255,226, 51, -102,179, 25,198, 15,121,240,242, 24,146, 53,118,247,119, 57,153, 30, 51,205,114,166,217,220,122,237, 85,205,246,250,136, 15,239, - 92,167, 44, 10, 94, 28, 30,219, 74, 93, 47, 20,192, 75,150,200,175,225,201,253, 42, 49,157, 56, 79,121, 36,132,173,104,117, 87, -216,181,188,169, 43,165,137,162,136, 36,233, 19, 70, 17, 73,146,160,220, 33, 45, 75, 83,215,230,107, 82,250,212, 34,232, 71,177, - 8,120,105, 68,146,158,160, 63, 24,208, 75, 18,116,149,113,116, 60,105,133,149,150,123, 80, 83,185,184,204,133,191,216, 46,124, -227,205, 77, 6,227, 77,166,135, 7, 54,250,213, 85,227,194,216,152, 85,207, 8, 52,102, 17,185,218, 84, 78, 46, 67,121, 89, 28, -119,122, 34,190,252, 18,122,103,136,232,196, 89, 19,243,115, 62, 90,174,252,141,209,148, 69,142, 48,154,126,156,216, 96,160,124, -142,208, 21, 90,215,120, 98,185,197,111, 60,232,173,109, 18,245, 6, 84,101,105,103,223,170,198,168,154,170,200,208, 85, 69,224, -251,252,202,157,183,201,230, 19,214, 55,215,121,244,240, 75,164,128,167,143, 30, 48,232,247,185,243,230,219,124,244,193,135,236, -237, 61,199, 24, 65,208,239, 51, 24,173, 17,245, 7, 84, 90,113,114,120,140,239, 75, 60, 63,164, 86, 41, 69,154, 57,251,148,135, -239, 7,132,113, 66, 20,217,192,150,193,218,152,181,141, 77,251,186, 56, 1,119,158,219,104,206, 38, 42,121, 52, 24, 90,207,178, - 19,235,206,211,185,211, 12, 8, 42,101,147,221,234,170,194,232,106, 57, 2, 83, 72,132,177,207,233, 42, 6,200, 45,118,173,248, -105,125,125,204,230,214, 38, 73,175,207,116,122,130, 39, 5,131, 65,159,170, 42,208, 70,181, 93,192, 56, 9,232, 37,137,173,206, - 26,154,155, 88,133, 49,125,125, 30,193, 89,232,237,243, 50, 58, 78, 9, 87, 61, 15,227, 45,194, 72,108,161,228, 89,231,131,180, - 48, 43,225,249,246,117,112, 65, 56, 66,250, 8,233, 89,123, 90, 24,226,199, 9,189,126,204,205,119,191,195,229, 91,175,211, 79, - 96, 16,122,104, 32, 23, 48, 7,166,198,112, 92,106, 78,166, 10, 63, 24,112,124,176,207,193,139, 71, 78, 17, 95, 97,234, 26,212, -226,208, 45,140,177, 92,128,206, 94,101,217, 20,157,188,121,151,163,225,121,146, 48, 12,121,231,131, 15, 73,122,125,142, 14,247, -233,247, 98,202,178,230,198,245, 27, 92,185,114,157,209,104,204,159,255,135,127,207,151,247,239, 50,222,216, 34,140, 34,164,144, -228, 89,198,213,107, 55,120,255,157,247,200,139,140,159,253,226,231,252,197, 15,127,192, 95,253,232, 71, 60,121,242,152,141,245, -117, 46,109,219, 60, 7,233,217, 44, 14,233, 75,194, 40,116,130, 74, 73, 20, 39,120,194,163,204, 75,138, 60,167,174, 42,132, 39, -232,245,251, 12,215, 70,132,145, 77,196, 11,130,128,173,173, 77,126,245, 87,191,197,211, 39, 79,153, 77,103, 86,163,226,174,183, -244,237,120,175, 46,107,119,208,182, 5, 87, 85, 85,237,235, 18, 39, 49,190, 31,180, 99, 7,191,123,172, 63,143,130,212,204,193, -140, 89, 25, 0, 0, 32, 0, 73, 68, 65, 84, 41,206,108,143,118,218, 62,221,207,107,110,106,229,230,211,205,230,184,104,105, 47, - 8,114,139, 74,193,250,130, 27, 72, 71, 23, 80,211,253, 62,221,182, 60,206, 86, 65,151, 50,167, 77,155,109,222,206, 23, 59,128, -154, 70, 65,223,181,154,104,101, 90,202,154,114,138, 90, 41,229,210, 44, 89, 58, 5,168,116,161, 47,117,173,241,163,132, 84,198, -120, 85,137,240, 52,126, 40,240,202,202, 66,106, 58, 15,137,103, 7,220, 40,225,145,215,118,132, 96, 58,227, 9, 79, 72, 43,252, -105,236, 10,109, 12,158,157,111,246, 35,155,246, 37,227, 16,223, 11,208,166, 64,123, 30,253,193,144,173, 75, 23,185,118,249, 10, -195,193,136, 44, 45,185,123,242,132, 34,159, 83, 85, 54, 24,193,247,125,162, 48, 38, 43, 42, 78,102,115, 7,173,209,152,186,100, -239,120,143, 47, 62,251, 57, 91,151,110,112,116,124,196,112, 56,160, 60,120, 65,236, 89, 52,173, 49, 26, 15,235,181,143,227,152, - 27,155, 9,145,188,198,159,254,242, 57,121, 83, 10,154,211, 54,183,179,186, 58,231,205,213, 87,237,143,171, 27,206, 82, 87,200, - 5,107,156,157,138,101, 58,118, 32,131,210,182, 13, 30,199, 49, 89,150, 57,236,107, 64, 97,114,123,223,168,133,114, 90,172,180, -175,237,169, 88, 18,132, 33,131,254,128,170,180,232,208,178, 40,169,107,221,110,252,117,167, 5,214,188, 5,190,143,240, 37,227, -181, 53, 2,233,145,205,231,103,132,170,173,186, 9, 22,118, 37,179,234, 79,254, 10, 75,224, 25, 44,160,115,164,112, 43, 31,175, -216,217, 76, 71,192,103,154,115,130, 16,100,101,129, 41, 43, 55,158,104, 40, 89,194,181, 34,221,181,213,138,227, 71,247,153, 31, -237,179,126,237, 54, 50, 25, 96,116,133,174, 42,251,155, 57,225,231,228,228,128, 94,210,227,241,131,135,172,175,141, 56, 60,153, -242,183,191,255,187,248,158, 71,145,167,244, 7, 99,122,253, 67,142,143,166,148,233,156,199, 79, 31, 49, 57, 60, 34,157,159, 16, - 69, 33, 73,210, 99,114,114,132, 86,176,113,241, 18,179,217,140, 40,142, 41,139, 20,233, 11,166,147, 99,122, 73, 66,150,206,208, - 90, 17, 39, 17, 82,142,145, 66,112,233,202,136,170,170, 40,171,146,217,201, 17,232,154, 34,183,139,227,250,246, 69,146,254,128, -217, 60,101, 50,155,226,197,125,210,233,196,170,247, 75, 55, 86, 20,246, 16,104,111, 64,191, 83, 81, 45, 55, 83,154, 68, 45,207, -243, 24, 12, 7, 28,159, 28,243,226,249, 14,233,124,238,214, 19,221,230,182,123,129,221,124, 60, 31,170,162,180,112, 44,150, 17, -200, 95, 69, 0,252, 74,136,205,215,128,210,156, 5, 52,105,198,152, 6,105,243,195,219,205,221,129,101, 92,182,134,141,160, 21, -139,141, 94, 56,135, 15, 33,163,181, 13,230,147, 9, 7,179,117,174, 12, 23,191, 68, 41,160,242, 60,246,143, 11,138,121, 5,158, -224,219,191,245,135,124,241,179,191, 36,152,103,212,126,142,144, 37,120, 10,207, 83, 24, 60,232, 8,226, 22,135,106,213,238, 21, -205,134,222,172, 37,195,181, 53,202, 34, 67,245,134,244, 7, 35, 46, 92,188,196,100,242,215, 76, 78, 14,153, 76,199, 60,125,246, -132, 79, 62,249, 5,127,239,143,254, 33,158, 12,248,201,143,126,200,241,201, 17, 55,175,223,100,125,180,206, 15,127,244,151,236, -238,236,112,176,191, 71, 81,164,164,243, 57,147,201,148,157,157, 29,148,170,249,237,223,250,126,187, 78,132,161,101,129,132,113, -104,199, 18,181,178, 7,115,207,178, 19,122,189, 30,243, 52,181,145,207, 75,185, 37, 86, 7,180,177,177,193,191,248, 31,254, 57, -255,234, 95,253,175,252,248, 39, 63,101,230,121, 24, 10,202,178,196,247, 36,184,180,192,162,174, 40,235,218,166,115,122, 30,186, -193,178, 75,201,250,120,108,109,155, 23,174, 94,255, 99,241, 21,130,139, 46, 95,125,117, 56,127,158,239,114,117, 49,175,170,122, - 81,225,174,124, 61,173, 53,126, 96,109, 49,129,163,245,172,170,122,206, 74,120, 91, 84,238,139, 24,213,246, 32, 96,244, 34,181, -205,137, 23, 60,151,201,107,218, 80, 21, 67, 85,215,139,252, 98,215,106,106,190,127,119,161,181, 63,187,107, 43,210,216,241, 36, - 6, 15, 45, 37, 20, 5,149,170, 48,158, 68,123, 18,173,106, 27,191, 42, 60, 16, 6,223, 15,136,147, 30,210,243, 72,243,140,162, -118,153,220,198,210,225,164,239, 57, 82, 92, 19,230, 96, 79,202,113,224,211,235,247, 72,250, 61,130, 56, 36, 76, 34, 46, 95,189, -204,123,239,189,201,187,239,188,197,173,155,183,184,124,233, 10,194, 19, 28,157, 28,178,127,176,203,228,100,143,172,152,161,235, -178,253,154, 2,131,210, 53,101, 85,144,102, 57,105,158, 83,148,150,233, 44,133,226,240,224, 37, 47,158, 63,230,232,100,138,140, - 7, 28,236,239,145,102,115,166,243,148,163,121,206,209,116,206,254,241, 17,251, 39,115,208, 53,107,131,136,151, 39,185,181, 17, - 10,206,180, 67,126, 29,181,110,247,250, 46,221, 67,231,206, 3,205, 43, 32, 56,194,117, 97, 52,194,147, 14, 28,147,208,239,245, -240, 3,223,157,110, 21,121,150,217, 17,135,118,150, 40,173, 81,218,122,240,187,221,161, 48,142, 16,158,199,198,250,134,189, 38, -170, 96,111,255,216, 41,228,205, 43,197, 71,113,220,195, 11, 66,214, 54, 54,120,252,229,125,151,178,167, 87, 68,127, 98, 5,164, - 35,150, 34,149,133, 17,136, 87,164,177,189,210, 2,119,110, 85,119,246,223,117,173, 83,134,133, 45,212, 19, 30, 81,210,163, 84, - 21,190, 19,166, 6,205,243,217,136,100, 93, 88,146, 17, 18, 83,215,204, 14,247, 81,121, 74,210, 27, 34,163,158, 19, 90,106,208, -202, 42,224, 7, 3,190,243,237,239, 32,101,200,108,122,204,214,250, 38, 85, 81, 50, 26, 13,200,210, 19,166,147,140,162,154, 19, -132, 9, 27,227, 77,148, 42,173,174, 65, 43,142,143, 15, 24,142,214, 73,146, 62,147,147, 67, 6,253,136,126,127, 76, 16, 38,244, -122, 3,171, 76, 86, 21,113, 20, 89, 49,169, 31,177,182,190,137, 22,154,195,131, 61,230,179, 19,124, 95,208, 27,142, 16, 64, 85, - 41,202, 34,101, 54, 63, 65,120, 78,193, 29, 38, 84,198,195, 83, 53,186, 42,144,126, 96, 89, 20,110, 44, 99, 5,183,193, 66, 77, - 34, 22,240, 25,188, 69,144, 84, 18, 39,188,126,231, 14,251,123,123, 76,142, 78, 90, 66, 93,115,127,213,181,114,120,104,219, 93, -172, 43, 69, 85,213,157,162,233,244,165, 58, 51, 40,235, 63,226,237,149,255, 78, 52,214, 98,215,102, 23,150,182, 38,125, 31, 25, -132,120, 97,136, 12, 2,130, 40, 66, 4,190, 19,148, 90,110,128, 5,201,132, 4, 97,204,230,229,235, 92,125,227, 3, 60, 95, 18, - 14,214,185,184, 46,169,133, 96,102, 96,191,210, 28, 79,107, 94,188,152, 81,166, 37,126, 16, 16,196, 9,101, 89,176,243,240,139, - 22, 46,100,148,181, 84,154, 78,225,120, 38,235,194,158,186,220,207,110, 53, 83,189, 65,159, 48,136,169,138, 57,219, 23,175,112, -255,222,103,172,173,141,185,126,253, 6, 79,159,220,227,222, 47, 63, 65,120,134, 44,157,243,217,167,127,205,206,203,231, 40,163, -185,243,198, 91,100,121,142, 16,146,170,170, 57, 58,218,227, 96,111,207,118,227,140,245,164, 63,126,242,136,141,141, 13,110,191, -118, 11, 63, 8,236,254,213,177, 60,122,194, 99,126, 60,165, 86,138,176,215,179,161, 48,117,133,244, 3,226, 36,118, 78, 12,175, - 19,117,110,227,174,223,122,243, 77,134,253, 33, 79,158, 62,117, 93,237,213,108,121,171, 3,171,157, 85, 91, 41,123,207, 52,247, - 86, 28,199,200, 75, 77,251,189,179, 73, 47, 54,198, 14,119,253, 12,101,229, 89,120, 87,115, 14,128, 68,176,152, 31,154, 21,149, -179, 85, 16, 47, 68, 61,158, 39, 8,252,128, 56,138,172, 72,161, 17,146, 56, 27, 93, 23, 71, 43,154,234,109, 69,228,225, 59, 53, - 97, 91,149, 55, 85,122, 27, 56, 35, 91, 22,180,193, 90, 17,180,214,173,112, 69,105,213,122,217, 77, 71,116, 36,125,223,109,252, -246,164, 20,248, 1, 65, 98, 57,198,101, 93, 81,107, 8,146,190,109,241, 58, 97,157,231, 73,162, 36, 33,233,245,241,163,136,217, -124,214, 62, 59,218, 88,245,127, 32, 61,203, 51,110, 56,245,158,253,184,215, 75, 24,244, 99,122,131,152, 65,191,199,112, 56,100, -109,180,198,112, 48,160,159,244, 8,130,128,178, 42,152,207,103,228,217, 28,173, 74,247,186,216, 17,130, 85, 79,186,211,180,209, -237,172,212,210,212,106, 59,175,194,118, 33, 36,154,131,131,125,118,143, 78,136,135,155,228,149, 38, 47, 83,234,186, 66, 41,203, -160, 47,170,138,121,105, 61,188,210, 19, 76, 75,150, 98, 7,197, 43,128, 23,231, 42,221,207, 18,245,156,161,233,104, 43, 74, 97, -209,187,203, 15,181,113, 10,105,217, 66,106,194, 56,198,151,146,225,112, 72, 20,197,204,102, 51,180, 82,164,243,185, 21,172,185, - 83,115,179,225, 26,221, 88, 55,109,124,106,156, 36,224, 44, 72, 6,131,169, 50,246,143,166,118, 97,239,156,182,227, 56,238,164, -239,185, 44,104, 52, 81,210,231,157,119,223,231,139,207, 63,181, 68,194, 54, 78, 85, 44,212,209,136,206,235, 39,150,254, 76, 44, -205,208, 95,181,161,119,219,241,175,230,190, 47,205,212,151, 44, 84,157, 72, 78,154,231, 73, 81,213, 21,158, 12, 8,163,144,186, - 44,219,207,107, 8, 89,116, 71,190, 14, 62, 34,140,161, 42, 50, 38,135,251,168, 34, 35,138, 98,100, 20, 1, 30, 81, 16, 32,138, - 57,151, 47, 95, 65,250,146, 11, 91,219, 12, 6, 3,134,131, 94,235,125,175,202,130,227,163, 67,254,214,119,127,147,121,154,178, -179,243,156, 65,127, 64, 20, 5, 76,142,143,209, 90, 89,207,242,104,147,209,120, 19, 63,138,172, 19,164, 44, 90, 23,130, 0,202, - 50,167, 40,114,202, 34, 69,149, 21,198,216, 67,138,209,146, 11,219, 87,121,252,232, 17, 89, 58, 71, 85, 14, 8,146, 91, 12,116, -174, 33, 30,172, 89,233,100, 85,218,103, 74,215,173,141,203, 52, 29, 44, 79,226,198,205,173,214,198, 6,107, 88,225,214,229, 75, -151, 80,186, 34,207, 50,170,170,196,247,131,118,158, 94, 85,182,131,214,104, 64,234, 90, 81, 85,170, 99,163,234,116,108,224, 63, -253,198,125,254, 63,178, 0,153, 6,107,226,217,205, 74, 6, 33, 65, 28,227, 59, 42, 92,216,235,225, 7, 33, 94, 16,224,251,161, -141,218, 21,182, 93, 44,252, 16, 63,138,185,114,231, 93, 54, 46, 95, 71, 43, 69,156, 12, 57,202, 51,166, 8, 74, 41,216, 59,170, - 56,153,105,246, 95,238, 19, 4,161,163,104,194,165, 43,215,248,244,167,127, 69, 62,155,160,170, 18, 85, 23, 24, 55, 63, 87, 77, -176,144, 57,189, 87,153,134, 81,209,196, 74, 75,159,181,209, 24,207, 15,185,117,231,117,142, 14, 95, 50, 59, 62,225,215,191,247, -155, 40, 45,201,138, 18,165, 5, 65, 16, 19,199, 17,181,210,236,238,188, 36,138, 99,198,163,117,226,126,194,207,126,246, 99,238, -127,241, 75, 94, 62,127, 74,145,165, 54, 19,160,174,219, 46,219,147,167,207,216,221,221,227,237,183,223, 34, 8,131,101,151,151, -128, 40,138, 72, 39, 51,158, 61,125, 6, 50, 96,109,107,155,108, 58,193, 51,224,135, 1,210,247,151, 17,195, 2,162, 56,226,202, -149,203,220,188,118,157, 95,254,242, 51,203,215,104,236,183, 90,219,136,228,186,182, 58,172, 51,200,157, 69, 81, 56,161,220,169, -102, 32,231,162, 36, 69,199,252,254,170, 57,206,105,152, 2, 75,179,242,230,189, 81, 4, 55,190, 66, 1,109,166,181,110, 66,238, -157,167, 84,120, 2, 41,155, 7,193,180,249,231,141,119, 82,118, 60,237, 77,165,219,172, 95,141, 61,174, 85,177,138, 69, 36,159, - 82,138,178,170, 23,138, 94, 79,216,234,189,241,208,183,124,116,111,225, 81,110,230,174,190,135, 49, 2, 37, 60,164, 31, 81,214, -154, 48,137, 17, 81, 76,169,236,171, 26,197, 17,253,193,136,193,104,141, 32, 78,168,218,192, 8, 11,199, 8,165, 71, 28, 5,196, - 81, 72, 24,248,132,206, 78,209, 75, 98, 6,131, 30,253, 65,143, 36,142,172, 47,210,101,250,214, 74,145, 23, 5,121,158, 82,148, - 57, 74,217,246,168,231,153, 86,221,111,161, 32, 29,128,129,235,233, 89,173,181,105,184, 26, 78,136, 98,103,123,145, 15,147,201, - 9,251, 71, 19,138,218,146,234,180,202,221, 44, 71, 59, 65,160,161, 82, 10,161, 21, 74, 65,133,116, 7,167,229,246,251,171, 32, - 51,175,194,199,174, 90, 41, 87,163,127, 5,226,220,214,180,215,153, 61,122,210, 90,149,162, 40, 98, 56, 26,113,116,116,132,214, - 22, 64, 83,171,218,157,186,173, 3,193,184,188,122, 99,132,203,101, 87,182, 26,113, 7,195, 40, 10, 81,229,156,131,163,105,123, -216,107,232, 83, 77,117,111, 59, 60,141,111,212,163,172,114,174,221,122,141,135, 95,124,209,130,130,218,214,170, 88, 33,189,189, -242, 9, 60,189,169,159, 62, 64,139, 83, 34,184,243, 27,182, 98,169, 25,223,126, 45,179, 56, 28,105, 99, 16,210, 35,242, 29,128, - 8, 59,211,140,130,128,164,151,112,231,181, 59,206, 38,104, 53, 30,218,133,219, 72, 25, 44, 2, 71,148, 70,101, 41,211,195,125, -242,233,137,173,240,165,224,205,155,183, 56,218,127,201,250,198, 6,233,108,134,239,195,124, 58,225,195,247, 63, 96,231, 96,159, -203, 87,111, 35, 48,252,249, 15,254,132, 47,191,248,140,253,189,231,100,179,204,146, 1,171,202,130,131,140,161,215,239, 51,159, - 30,183,228, 68,141,215, 94,199,162,200, 9,131, 16, 85,151,204, 38,199, 96, 52, 65,212,227,248,112,159,108, 54,227,232, 96,151, -124, 62,107, 55,107,207,243,109,228,171, 50,168,186, 36,136, 99, 8,236,230,164,141, 65,215,149, 19,188,218,206,219, 66, 52,231, -216,219, 94, 55,107,194, 35, 8,124,126,253,215,126,149,173,173,117, 14, 15,247,169,106, 11, 52, 25, 12,250,172,173,141,241,125, - 73,158,231,142, 94, 38,157, 96,179,219,241, 20, 11,247,144,249,143, 3,207,156,183, 46,191,242,205,173,167, 86,236, 39, 65, 74, -100, 16,224, 71, 9, 97, 50, 36,238, 15,137,135,107, 36,131, 17,113,175,135, 12, 66, 16,178, 5,208, 32,172, 96,206, 15, 99,110, -191,251, 13, 6,227, 13,123,136, 41, 10, 52, 33,135,187, 83, 30, 63,216,101,118,156, 49, 92, 75,144,158,164,174,193,143, 2,155, - 75, 33, 36,210,143,248,242,211,159, 80, 21, 57,170,170,209,149, 21, 55,118,139, 67, 86,108, 93, 13,206,184,217,208,165, 47,217, -190,116, 9,168,153,158, 76,184,120,229, 38,111,188,254, 6,195,225, 0,140,230,203, 71,247,185,125,251,117,178, 60, 99,184, 54, -102,119,103,135,249,108,198, 27,111,188,193, 96,216,231,203, 47,238,241,240,222,231, 76, 39, 19,138,178,236,108,230, 14, 95,236, - 34,179,211, 44,103,119,119,151,111,124,227,227, 22, 3,222,125,206,252, 48,198,151, 62, 79, 30,222,231,224,240, 16, 17,198,214, -203, 46, 37, 94, 39, 33,116, 1,252,177,152,235,245,141,117, 46,110,111,243,201,167,159,146, 87,101,219, 77,110, 3,168, 58,163, -233, 85,114,171,188,116,253,230, 31,175,134,184,180, 66,167, 78,221, 47, 56,155,247, 46,206,104,183,175,134, 0,156,218,232,157, - 15,175, 85,182,123,139,185,128,104, 51,111,229, 66,193,171,141,131,196,200, 78,133,212,120,235, 29, 1, 77,122,139,170,180,163, -160,111, 22,224,186,174, 91,177,139, 21, 83,169, 54, 35,183,237, 76, 56,130,148,112,194, 53,220,161, 67,117, 82,157,172, 95,190, -178,149, 60,198, 33, 88,173,157, 79, 6, 1, 90,131, 31,133,244, 7,107,200, 32,182, 62,197, 40,102,180,177, 69,212,235,227, 71, - 61,130, 40,164,158,207,168,148, 66, 10, 65, 20, 90,191, 99, 20, 5, 4, 97, 64, 20, 39, 12,135, 3,214,198,107,140,134, 35,146, - 36, 38, 12, 34,194,192,199,247, 61, 39,234,211,224, 50,133,181, 86, 24, 44,218,213,247, 44, 39,191,121,111,170,116,225, 45,196, -141, 77,126,120,115,157,181,131,177,104,163,218,184,191,195,195, 3, 74,237, 49,159,101,118, 94,102, 74,106,173,218,251,194, 52, -158,122,163,153,139,224, 20,118,244, 85,168,202,175, 34,202,157,130,207,172, 46, 88,103,169,129, 59, 27, 85,227, 53,245,132,205, -158,199,147,108, 95,184,200,209,209, 1, 89,150, 82,107,133,174,173, 53,165, 86, 85, 91,125, 54,163, 16,203, 36,176, 25,221, 90, - 41,130,200, 86,170,186,200, 56, 60,153,217,195,159, 94, 0,106,218, 8, 87,211,220,151, 30, 34,144,244, 71,107,244, 6,214,202, - 84,228,243,133,194,220,217,200,196,210,246, 42, 86,160,183,226, 20,107,156, 51,123, 23,203,213,251,233,246,186, 56,119,147, 95, -186, 86,230, 20, 43, 22,129,103,145,171,163, 1,219, 91, 91,164,179, 25, 69,145, 83, 85, 21, 59,187,187,148,165,101,177,247,251, - 54,119,186,174,114, 60, 25,158, 49,134,209, 80, 85,148,243, 9,213,116,202,165,203, 87, 24,143,215,217,221,121,193,193,193, 30, -101, 89,242,221,239,254, 6, 47,119,246,120,241,252, 57,101, 93,241,249,221,207, 17,158,100,239,197, 51,178, 44, 67,248, 30,170, -170, 40,203, 18,207,179, 85, 80,127,109,131,195,253, 29, 78, 14, 14,145,129,207,241,254, 30,126, 16, 88,113,100,111, 64, 89, 85, - 84,249, 28, 85,215,212, 74, 33, 61,159,217, 44, 71, 43, 40,138,212,197,244,218,145, 90,212, 31,161,165,111,121, 19,198, 80,207, - 78,192,147,200, 40,198,115, 7, 21,161, 42,119,208, 15, 90,155, 96, 99,227, 90,190,183, 61,238,188,126, 7,223, 23,220,253,252, - 51,138,162,112,238, 26, 67,150,229,204,166, 19,242,220,106, 60, 26,155,109, 89,170,211,162, 53,115, 54,124,230, 43,247,229, 14, -198,251,235,180,235,133, 16, 32,221,232,160, 9,183, 18, 18,164,107,183, 71, 33, 97,210, 39, 28,244, 73,214,198,108, 95,189,193, -175,253,246,247, 9, 98, 75, 79, 20,178,153,179, 59, 81,178, 31,224,135, 9, 31,124,247,183,137,251,118,144, 62, 24,141, 25,172, -197,196,113, 66, 85,104,100, 96, 72,167, 41, 39, 7, 83, 54, 47,142, 73,250, 49,170,134, 34,207, 73,146, 30,191,252,201, 15, 40, -102, 83,116, 89,162, 84,213, 58, 46,180,211, 72,121,171,251, 15,158,155,233,219,157, 44, 8, 67, 6,195, 17,107,163, 49, 39,147, - 67, 62,120,239,125, 62,120,239, 67,194, 48,226,222,189,187, 8,207,103,103,231, 5,239,191,255, 33,194, 8,238,125,241, 25,183, -239,188, 77, 47, 9,184,176,117,137, 95,252,226,199,136, 32, 38,157,157,180,148, 56, 33,237, 12,187,215,239, 83,213,165,165,202, - 9,200,178,140, 34, 47,185,115,231,117, 11,190, 81, 6,140,160,174,173,183,221,104,171,198,159, 77, 45, 64,201, 79, 6, 96, 12, - 73, 18,117, 50, 74,108,149, 89,150, 21,194,107,230,236,235,156, 28, 77,120,252,228, 41, 74,107,106, 76, 91,176, 54, 34, 93,175, - 3,121,107,139,219,139,205,166,190,154,249,234, 54,122,239,140, 27,162,171,114, 95, 77,107, 59,107,238,115, 42,237,231, 84,156, -170,215, 86,151,194, 17,125,124, 25, 16, 72, 43, 92, 19, 66,184,106, 64,183,179, 8,209,177,174,117, 97, 55, 75, 16, 5,225, 57, -107,137, 21,234, 89, 72,134,105,219,238,202, 37,163, 41, 23, 45,105,237,111,139, 22,106,147,195,219, 22,141, 77,213,239, 75, 60, - 97,147,213, 26,144,127,243,111, 84,109, 43,188,254,218, 26, 81, 47,193, 15, 2,171,224, 77,122,244,250,125,252, 32,160, 55,232, - 51, 57,220,195, 19, 26,223,247, 72, 98,139,167,140,147,136, 94,111,192,214,133,109,110,220,184,197,173,107,183,185,120,225, 50, -235,107, 27,244,146,196, 10,106,156,208, 79, 10,105, 97, 52, 82, 88,213,105,163, 86,149,118,174,236, 53,244, 63,151,219,190,240, -120,155, 86,223,211,204,100,106,199,151, 87,181,109, 3, 42, 93,163,234,138,131,131, 35, 20,130,121,150,211,139, 67,132,227,183, -105, 3,202, 24,148, 22,248,170,162, 54, 62,149, 57,187,221,254,170,138,225,171,120,213,231,165,187, 9,115,246,223, 11,135,206, -181,150, 68,211,198,216,250,190,207,214,230, 38,211,217,148, 52,117, 98, 37, 99, 25,214,117, 71,184, 98, 23,106,225, 14,108,180, - 96,153,193, 96,196,112, 56, 34,159, 29,114, 50,205, 92, 95,180, 9, 44,234, 4,165, 8,129, 31, 6,214, 50,179,190,197,250,214, - 22, 70,217,176,147,153, 11,153,160, 27,210, 96, 86,183, 95,113,206, 33, 72,156, 10,127, 57,157,153,222, 21,177,154, 87, 84,234, -167, 81,191,218, 44, 0, 71,141,206,163,121,219, 24, 91,113,217,206,222, 30,163,126,191,109,241, 53, 2, 84, 99, 12,121, 94, 80, -150,133, 59,132,203, 86, 96,213,188, 55, 65, 48, 0,158, 81,188,120,254,148, 97,127,196,209,228, 16, 33, 35, 46,108, 93, 96, 62, -207,217,219,223,229,175,127,250, 99,162,222, 8,140,237, 24, 29, 31,236,216,141, 92, 90, 8, 82, 81,228,248, 65, 72,210, 31,241, -236,209,125,210,116,142,170, 20, 6, 69,153,231,148,117, 73, 89,100,164,179, 9,233,108,130,210, 53, 65,224,147,101, 57, 66,120, -252,157,223,255, 35, 46, 94,186,198,227, 7,119,113,151,155,222,112, 64,145, 23,120, 81,130, 17, 18,225,180, 48,166, 42, 45, 13, - 79, 0,117,137,169,106,123,240,109, 81,169, 11,201,123, 55, 97,203,243, 4,235,235, 27, 28, 30, 30, 82, 22, 21,202, 64, 16, 68, - 72, 25,144,206,179,150, 3,210,235, 37,173,231,184, 1,101,157,167,213, 56,143,229,112,150,141,109, 25, 20,243, 53,237,110, 75, -244, 79, 91, 12,104,207, 41,222,163,136,160, 55,160,191,126,129, 59,239,127,196, 63,249, 23,255, 51,127,251, 15,254, 46,191,255, -135,191, 67, 86, 24,118, 95,188, 64,187, 20, 27, 27,152, 19, 48,222,188,196, 7,191,241, 59,148,101,102,245, 5,201, 0,165, 4, - 69, 81,147, 12, 35,178,105, 74, 89, 42,182, 47, 95,166, 55,140, 72,103, 53,121,150,242,248,222, 93,142,143, 14,200, 78, 14,217, -127,249,132,186, 44, 48,170,178,108,248,150,103, 98,187, 70, 75,191,211,146, 67,192,142,106,179,124,202,112, 96, 17,195,253,254, -144,225,160,207,143,126,250, 87,124,242,243,159,144,165,115, 12,240,230, 27,111,243,139, 95,252,130, 60, 79,249,222,247,190, 79, -210,239,163,180,224,233,139,103,212, 85, 77, 58,155,114,225,226, 21, 27, 14,164, 42,130,208,102,176, 55, 97, 63, 85, 85,129,231, -177,187,191,207,181,171,215, 88, 27,142,209,218, 80, 20, 53, 89,102,115, 15,164,244,137,123,125, 6,195, 49,170,174,169,138,148, -193,104,157,162,170,137,147,112,105, 29,171,171,154, 34, 43,156, 58, 94, 18, 69, 49,159,124,250, 41,179, 52,165,110, 51,238,109, -162,168,114,251, 79,151,124,106,140, 65,110,187,246,251,146,101,232,140, 77,220,235,176,174,187, 51,237,243,236, 73,171,139,110, -247,243, 27,175,122,183, 3, 32,221,236,188, 17,225,212,117,237,102,224,178,161,216, 56,206, 51,173,234,184, 13,125,241, 22,182, -187, 38,192,165,153,247, 25, 55,179, 70, 44, 90,183,181, 90,216,152,164, 91,152, 91,130,152, 75,123, 91, 88,224, 76,251, 0, 75, -119,170,234, 42,241,195, 32, 64, 32,241, 60, 73,210,235,217,211,156, 83,223,251,210,170,167,195, 40,162, 63, 28, 88,203,132, 47, -169,106, 13,170, 68, 87, 5, 65,224,183,149,250,250,218,136,139,219, 23,121,239,205,119,120,239,205,183,185,113,229, 42,155,235, - 99,214, 70, 3,214,134, 3,146, 40,114,170,126,151, 92,216,116, 41, 68, 67,191, 19,200,166,117,230,224, 23,221, 24, 41,227, 8, -117,218,104,235, 71,175, 45, 81, 77,213, 26,165, 12,181,114,127,174,172,160,105, 54,153, 82, 41, 48,158, 37,220,245, 34,223,110, -236,205, 70, 96, 44, 67, 57, 50,134,140,192,230, 5,137,211,158,245,243,170,243, 85,218,223,153, 91,207, 10,243,189,155, 84, 36, -206, 10, 34, 52,224,251, 18,165, 52,113, 20,219,156,228,170, 98,107,251, 34,105, 58, 35,207,178, 22,170, 98,180,245, 96, 55, 94, -117,219, 89, 90,184, 29,162, 48,180, 29, 24, 63, 32,142, 67,242,116,206,116,154,182,233,109, 93, 71, 72,183,141,230,249, 62,219, -151,175, 82,171, 10,207,179,109,214,249,244,120,249,112,203,114, 43,177,185, 63, 23,191,137, 62, 67,244,246,213,173,245,211,135, -160,179, 61,234, 75, 46,131,198, 55,223, 4, 70,152, 69,139,255,248,248,132,162,204, 89, 27,141, 80, 85, 77, 81,148, 12, 71, 35, - 46, 93,188,132,214,154, 48,244, 25, 12,122, 68, 65,100,193, 69, 74,227,249,190, 75, 57, 59,173,206, 55,128,170,106,122,131, 1, - 72,195,141,235,183,217,223,125,194,189,251,119,249,229, 47,127, 65,158,101,124,240,209,183,248,242,203, 47,216,223,219,101, 58, -157, 80, 87,133,123, 78, 77, 75, 56,171,138,156,116, 50, 69,215,214,207, 28, 4, 22, 17, 27,199, 33,218,216,170,184, 1,252,120, -126, 64,158, 21,172,111, 94, 36, 25,142,120,246,248, 1, 71,251,123, 24,109,175, 79,111, 56,166,214, 2, 17, 13,109,183,193,181, - 65,181,174,219,117, 65,122, 30,117,149, 97,116,237,198, 87,186,189, 70, 77, 39,190,121, 30,147, 36, 97,208,239,113,124,116,204, -108, 54,163, 42,173,173, 73, 25, 23,169, 92,214,118, 67,167,178,148, 67, 55, 75,111, 68,116,231,102,177,123,237,195,181, 76,252, -124, 69,139,125,169,184,106, 69,184,180,234,252,133, 14,196, 44, 52, 3, 77, 44,155,103, 95,187, 32,234, 17, 13,199,124,235, 55, -127,155,127,248,207,255, 39,130,254, 26,235,235, 33, 65,232,243,218,251,239,176,125,245, 6, 15,190,184,239, 60,229,118,195,185, -126,251, 45, 46,220,126,147, 40, 12, 65,122,132, 97,236,208,194,110,230, 29,249,140, 55, 7, 92,187, 54, 32,159,151,204,102, 37, - 47,158, 60,162, 72, 51,226, 36,225,112,239, 37, 59,143,239,163,138,210,230, 13,116, 52, 31,242, 12, 11,172,149, 0,232, 37,102, - 10,198,227,218,245,155, 28,236,188,100, 50, 57,161, 63, 24,242,240,225, 67,158, 63,126, 76,150,205,153,207,102, 60,126,120,143, - 52,157,161, 84,205,160,151, 16, 6, 33,127,242,167,255, 15,233,100,194,124, 58, 65, 8,184,126,243, 53,102,179, 99, 34,223, 39, - 78,250,244,250, 3,252, 48,224,230,157,183,233,143,134,246,224, 86, 43, 30, 62,122,200,205, 27,183,193, 8,151,243, 64, 27,114, - 99,220, 56, 35,138, 19,138, 44, 99, 50,157,144,149,154,103,207,158,179,181, 57,110,199,194,217, 44,229,217,179, 23,172,141,199, - 60,127,254,146, 48,234,241,244,217,115,118,118,119,168,149,237, 44, 55, 65, 48, 22,160,166,151,198,202, 66, 8, 59, 83,239,190, - 64,222, 25,169,106,237,134,124,142,186,189,251,121, 75, 42,102,113,250,230,123, 21, 51,171, 57,121, 24, 99,136,227,208,109,190, -118, 51, 85,170,118,109,250,134, 84, 42, 22, 39,183,134,247,206, 34,188, 68,105,237, 68, 83,180,108, 96, 85,171,118,110,175, 29, - 26,182, 37,198,181, 63,171,215,138,243,232,122,150, 61,185, 68,195,107, 42,154,134, 66,103, 48, 45, 27, 90,187, 74, 47,142, 34, -130,192, 39, 12, 67,187,193, 4,177,221,120,125, 31, 63, 12,201, 39, 71,132,129, 79, 20, 71,140, 7, 61,110, 92,185,204, 71,239, -188,201, 71,111,191,195,213,139, 23, 9,125,137,239,129,239, 11,164, 39,240, 61, 65,232, 91,177,145,148,129, 83,253,123,109,155, -182,157, 55,139,110,251,214, 86,149,174, 56, 69, 27,183,105, 87, 21, 85,173,221, 70,238, 54,115,109, 95, 31, 91,193, 67, 93, 85, - 76, 38, 83,226,254,144,205,141, 45,106,109, 16, 70,183,179,104, 91,241, 10,170,116, 70, 16,247,169,207,161,187,157, 53, 95,255, -170,244,182,198,239,222,229, 36, 44, 45, 92,162,137, 28,108, 14,141,139, 45, 50, 8, 2,148,170,241,131,192, 90,206,140,225,226, -229, 43, 20, 69, 78, 58,155,227, 75,175, 13,113,209, 14, 19,219, 38, 37,169,197,189,239,251,129, 85,127,199, 17, 73, 18, 81, 21, - 25,211,105,218,114, 19,154, 67, 64, 16,132, 86,109,237, 82,238,106,163,237,188, 81, 74,100, 24, 83,101, 25,233,116,114,230,193, -165, 67,120, 93,102,193,175,136,231,190,202,194,214, 84,242,231,113,246, 95,105,141, 91,101,209,155,229, 74, 48,148, 30,190, 0, - 35,173,253, 74, 43,205,201,201, 9,113, 28,209,176, 50,234,210,182, 25,149,214, 8, 25,172,248,223,151,191,167,210, 21,147,201, - 49,151, 47, 94, 99,158, 77,217,218,216, 70, 41,197,139, 39, 79,241,163,132,193, 96,200,195,135, 95,218, 0,157,147,163,246, 25, -111, 90,214, 69,154,145,206,230,182,139, 39,237, 92,210,102, 92, 7, 4, 81,130, 86,138, 40, 10,137,147,132,108, 62, 39, 72,250, -188,254,250, 91,148,101,205, 27,111,189,195,131,187,159, 51, 57, 57, 4, 32,138, 19,210,185,141,152, 53,194, 32,164,237,212, 8, - 3, 66,105, 40, 51,234, 50,199, 11, 34,100, 28, 91,134,133,182,163, 9,129,215, 82,249, 26,159,130,231,121, 12, 7, 9,215,175, - 94,230,210,229,109,219,125, 27, 12,217,216,220,100,109,109,141, 61,167,162, 22, 2,162, 48, 38, 77, 51,234,218,180, 66,203, 87, - 93, 59,115, 70,244,106,131,144,109, 47,221,169, 46,168, 88, 82,211,183,140,144, 78,228,176,141,179,117,214, 95, 35,156, 77,173, - 33,195, 5,120,113, 76,208, 31,241,254,223,250, 93, 54, 46,108,147,103, 21, 85,161,185,189, 17,178, 22, 74,202,245,139,124,252, -157,111,243,232,193, 35,210,249, 12,240,184,242,198,123,172,111,110, 83, 87,181,117,200,168,154, 34,207, 8,130, 16, 16,172,109, - 13,241,140,160,204, 33,205, 4,233,108,134,169,109, 37,156, 23, 5,233,244,132,103, 95,124,130, 42, 10,235, 89,215,205,198, 14, - 30,103,120,235, 77, 55,162,214, 37,154, 25,205,254,203, 23,212, 70,144,103,115,246, 95, 62, 97,127,247, 37,101,109, 71,168,243, -217,140,233,116, 74, 18,135,244,135, 3,222,253,224,155,220,191,119,143,167,143,191, 36,207, 11,187,134, 72,159, 65, 63, 98, 60, - 26,243,250, 27,111, 82,107,197,141,235,183,121,243,237,119,120,247,189,247,217,220,218, 38, 47, 75,164,244,200,138,156,163,131, - 35,110,221,188,229, 10, 28, 27,195,108, 4, 78,115, 98,117, 55,189,254,144,227,195, 3,102, 39,251, 40, 17,240,232,209, 19, 46, -109, 95,192,199,163, 42, 74,238,125,121,159,126,127,204,193,225, 17,155, 91,155, 28, 28, 30,242,240,241, 67,242,178,108,247, 25, -223,247,219, 34,184,174, 42, 91, 4, 55, 46,232, 70, 40, 39,206, 73,103, 91,170,172,220,205,112, 94,165,126,106,126,179,100, 59, -147,231, 86,105, 75,243,119, 22, 2,182, 48, 8, 48,218,158, 96,131,192,119,109,170,206, 92,191,219,134,111,121,237,139,144, 25, -227,218,233, 56,241,221, 34, 24, 70,180,209,164,141,162,189,201,197,110, 3, 62, 26,152,136,179, 21,136,149,205,188, 73,110,106, - 16,180,162, 67, 66,177, 21,189,108,219,166,145, 31, 16,199, 9,186,210,120,206,235, 30, 68, 49, 85, 58,195, 71, 17, 39, 49,215, -175, 94,228,155,239,188,201,235,183,110,130, 23,115, 50, 47,152,204, 82,166,233,148,163,163, 67, 14, 14, 15, 56, 62, 57,162,200, -237,124, 46,137, 2,250, 73,159,126, 28,227,251,178,105,102, 44,230,176,166,237, 18, 47, 84,252,142, 67,175, 28,245, 78, 53, 7, - 19,109, 80,202,180, 27,155,114,179,250, 90,213,228,121,129, 48,146, 10,195,225,241,132, 40,148, 86, 88,231,108, 96, 70, 8,210, -172, 96, 28,122,100, 34, 90,118, 69, 47,225, 76,205,185,237,192, 85,251,227,169, 26,180,163,237,104, 83,206, 76, 99, 44, 52,237, -102,214,164,149,249,190,111,175,183,235,164,224, 9,198,107, 99,252, 64,114, 50, 57,105, 55,229,166,149,106,175,185,106,225, 13, -102,229,103,148,161,207,168,223, 35,157,207,153,205,231,132, 65,180, 68,145,107,170,246,230,144, 39,164,189,190, 70,215, 68,131, - 33, 39, 7,123,148, 46,161, 77,152,166,203,176,120,111, 3, 25,196, 89, 73,233,226,204,246,251,121,116,252, 69, 22,243, 42, 18, -246,171, 55,245, 85,106, 84, 83,205,173,143, 71,108,174,175, 81,107, 77, 47,233, 51,157, 78, 24,141,134, 4,190,164, 44, 11,234, -186, 38, 75,115, 74,199,213,151, 65,176,132,184, 89,140, 40, 58,209,146, 90,115,233,242, 53,238,188,246, 58,105, 58,231,232,232, -152,254,112,192,108, 58, 97, 99,227, 2,247,239,255,146, 60, 47,201,231,179,246,254, 40,139,130, 40, 73,168,114,155,126,101, 0, -223,165,232,121, 82, 18,247,250, 32, 61,140,174,153,207,231, 72, 33, 73,103,115,174, 94,187,193,104,115,139,186, 40,248,233,143, -254,130,131,253,151,237,122, 1,214, 2,169,234, 26, 93,228,168,170,194,115,246,187,102,164, 2, 2, 97, 4,117, 93, 34, 92,162, - 97, 99,147, 93,204, 51,237, 24,204,151, 62,239,190,243, 22, 89,154,242,252,197, 75,178,162, 96, 48, 24,178,181,181,197,151, 95, -222, 67,107,205, 96, 56,160, 63,232, 51,157,206, 40,242,210,194,178,208,232,230, 94, 62, 71, 13,209,222, 51,102,229,207,186,135, -249, 51,108,198,171, 65, 49,141, 93,225,244,243,232,126, 51, 79, 98,156, 30,199,243,125, 68,104,217,250,239,125,231, 55, 57, 60, -158, 50, 30,175,163,131, 0,229,121,132,189, 0, 2,143,112, 52,228,173, 15,191,203,238,243,231, 76,246,247,185,244,218, 59,244, - 70, 27, 54,208,166, 42,200,203,140, 94,191, 79, 89,149,248, 50,228,224,229, 14, 39,199, 19, 42,163,137,147, 62,101,150,163, 13, -164,105,102, 59,128, 85,193,151, 63,255, 17,166, 40,172, 8, 88, 41,231, 18, 49,175, 52,109, 54,234, 48,219,115,170,173, 35,195, -209, 58,195,184, 71,173,172,130, 60,205, 50, 71,165, 83, 4, 65,200, 71, 31,127,135,207,238,126,202, 39,127,253, 83,138, 60, 35, -205, 82, 12,112,227,230,107,220,121,243, 29,190,249,141,111,243, 71,127,240, 71,124,251, 91,223,228,251,127,251,239,240,240,241, -151, 60,126,252,148,217,108, 66, 81, 22,104, 55,186,124,254,244, 49,227,245, 13,122,253, 65, 11, 22,210, 75, 93, 50,251, 60,244, - 6, 35,230,243,212,218,142,101,192,227,199, 79, 89, 27,246,145, 66,240,228,217, 83, 60,223,227,230,173, 27, 22, 76, 20,197,220, -189,251, 57,199,147, 19, 74, 39, 18,109,138,205,102, 99,215, 29, 56,155,127,150,103,230, 60, 72,200,121,109,246,179,230,162,171, -173,161,110,107,169, 43,102, 58,245,245,221,102, 91, 85, 22,194, 16,133, 9,117, 45, 44, 79,186, 85, 26,107, 43,106,235,120,138, -133, 83,132, 47,241,145,181,161,210,245, 2, 64, 99, 26, 91,154,116,243, 52, 75,180,107,102,235,218,205, 39, 26,251,220, 89,132, -188, 38,226,209, 96,108, 24,132,107,129,120,173, 0,112,145, 98, 39,125, 73,228, 73,126,231,183,126, 11, 33, 2,214, 55,182,248, -223,255,207,255, 3, 60,143,192,247, 89,219,186,200,124,191, 98,173,223,231,221, 91, 55,216,222,216,228,197,206, 1,147,124,215, - 86,211,117,109,163, 93, 93,155,119, 56, 24, 57,175,176,231, 58,113,110, 46, 92,247, 72,179,156,147,217,148, 89,150, 81, 41,183, - 85, 24,141, 49,142,227,108,186,180, 49,207,249,233,220, 70,164,112,109,121,215, 84, 84, 6,227,210,184,154,128,148,227,195, 3, -164, 16, 28,159, 24,198,163, 4, 41, 76,123,128, 80, 70, 51,153, 29, 51, 28, 39, 28,171, 16,104,104,109,250, 92,171, 99, 23,142, -113,214, 12,190,107,133, 92,180,136,205, 18,152, 67, 47, 85,245, 13,102,149,118,174,105, 49,138, 16,132, 33, 89,150, 49, 26, 13, - 17,194,235, 44,158,102, 41,101,176,113, 68, 72,199,253,151, 46,217,107, 56, 28, 46, 24,221,158,160,172,170,165, 92,245,218,241, -242,163, 40,162,215,235, 3,134, 43, 87,174, 81,104, 65, 62,159, 49,155,158,180, 10,251,243, 84,251, 46, 85,160, 67,212,111,101, -241, 95, 27, 64,179, 56,251,152,115,158, 73,150,126,238, 46, 94,242,172,197,209,184,107,156,101, 25,151,182, 54,136,178,130,201, -116,198,198,198, 58, 97, 24,242,226,197, 11,210, 6,171,170, 58,128,168,238, 97,165,251,253, 93, 87, 76, 72,159, 40,142,249,229, - 47,127,206,219,111,189, 65,156,244,241, 3,193,157, 55,222,227,248,240,152,188,168,169,107, 77,145,101,173,190, 65,107,221, 42, -128, 27, 79,178,237,130,197,196,189,190,115,176, 88,218,157, 47, 3,116,109, 72,231, 41,248,146,163,201, 9, 55,238,188,193, 79, -255,242, 47,200,103, 19,180, 81,248,161,196, 40, 67, 93, 87,142, 65,224,238, 3, 99,105,144,120, 22, 28,210, 72, 6,141,174,241, - 60, 27,170, 97, 92, 39,220,222,146, 98,113,223, 56, 27, 83, 16, 70,150, 34, 55,180,150,211,245,141, 77, 78, 78, 78,220,189, 1, -189,126, 15,165, 52, 85, 93,219,192,144,118,221, 89,174,198,141, 94, 86, 53,115, 78,180,235, 42,142,251, 85,207,216,121,115,122, -211,206,181, 22, 50,201,230, 48,102,207, 99,138,195,151,207,185,120,243,117, 94, 62,125,202, 86,125,145,251,105, 74,166, 54,240, -227, 4,141, 64,135, 30,127,240, 95,253,119, 28,236,254, 47,110,156,227, 58,122, 66, 16,202, 8,223, 15, 72, 6, 35,180,170,137, -146, 62,195,245, 17, 97, 16,146,205,230,204, 38, 71, 84, 69,110,103,240, 8,162, 40, 4,225, 99,132,231,198, 14, 11,146,156,118, - 57,234,242,156,172, 4, 97, 26,173, 8, 24,161,168, 84,137,240,237, 24, 45, 77, 51, 75,236, 51,198,230, 0, 24,195,112, 99,139, -147,233, 9,179, 89,202,201,116,234,130,181, 13,232,156,172, 0, 0, 32, 0, 73, 68, 65, 84,108,149,142,231,241,250,107,111,160, - 74,171,133,248,235,159,254,152,157,253, 67, 62,249,229,167, 36,195, 1,243,217,140,181,225, 58, 87,175,221,160,215, 79, 56, 57, - 58,228, 7, 63,252, 33, 55,111,222, 70, 43,101,133,211,206,225, 32,125,191,163,217, 18,108, 95,186,198,201,241, 30, 65, 24, 80, - 86,134,159,252,245,167,188,249,218, 45,134,131, 62, 59, 47, 95,240,250,235,175, 51,159,103,108, 95,216,230,219,223,252, 22, 15, - 31, 63, 65,186, 28, 16,221, 4,221, 4, 11,174, 75,154,166,139, 74, 93,124,141,249,231,234,255,119,165,244,156,161,140, 63, 59, - 23,246,116,123,246, 44, 33,212,162, 77,103,109, 30,117,173, 92, 66,146, 89,138, 66,237,182,151, 76, 7,211,185,164, 2,110,191, -191,215,249, 60,211,122,115,187,200,218, 38,142,181,121,145,154,135,173, 81,194, 47,233, 2,132, 69,252,133, 97, 72,224, 60,241, -113, 20,219,150,187,239, 51, 8, 67, 62,126,247, 93,254,193, 31,252,125, 46,108, 95,230,207,254,252,207, 81, 8,246, 15,246,153, -205,166,214,187, 25,199,152, 42,103,123,125,196, 55,223,125,139,121,161,201,106, 73,165,161, 84,149, 19,123, 5, 36,113,194, 96, - 48,162,223,235, 19,134, 33,190,231, 57,209,154, 89, 82,191, 75,105, 91, 62, 85,173, 90,241,159, 94, 17, 41, 26,163,157,200, 77, -119, 30,120, 22, 64, 21, 22, 86, 67,173,161,170, 43,202,218, 16, 74, 73, 20, 5, 92,189,122,147,178,204, 59,246, 13, 65, 89,100, - 84, 10,250,161, 68,200,128,218, 85, 63,230,220,205,231,213,130, 32,179,154, 25,192, 2,204,226, 9,207,182,218,196, 98, 20, 35, -218,249,186,221,204,155,202,185,151, 36,150, 65, 16,134,244, 7, 35,122,189, 30,105, 54,183,162, 46,167,142,111, 2,108,108, 27, -146, 54,221,169, 9, 12, 50, 24,198,235, 27, 54, 66,177,180,224, 30,221,188,230,134, 37,194,161,210,154,193,112,196,155,239,254, - 10, 71,199, 71,140, 55, 55,121,250,197,231,168,186, 92, 80,186, 92,165,110, 55,120,177,216,252,150,196,126,230, 84,134,189, 57, - 3, 44,179,106,105, 91, 78,112,107, 97,127,231,142,188, 90, 60,238, 25,217,221, 93,182, 67, 20, 6, 68,161,143,231, 73,202,218, -218,147,242,162, 32,138, 66,134,131, 30, 81, 24, 16, 6,161, 85,195, 27,131,244,195, 78,117,142,243,220,227,224, 45,246,119,244, -131,144, 34, 79,217, 63,220, 99,109,188,193,108,122,194,107,183,238,112,120,176,199,201,244, 16,223,131,233,228,200, 86, 38, 44, - 40,127,149,211,218, 12, 6, 67, 54,183, 54, 9,227, 30, 97,100,219,216,202,229, 87,219,209, 84,128,170, 21,183, 95,123,131,126, -191,207,243,103, 79, 57,220,125,129,214, 54, 24, 68,202, 0,225,121, 84,101,238, 28, 53,141,216,177,121,183,173,211,133,157, 82, - 99,180,194,107, 71,184,157,158,183, 88, 36, 5, 94,218,190, 72, 24, 6,220,253,226, 46,199,199,199,120, 88, 80,200,131, 7, 15, - 56, 58, 60, 34, 8,173,114,254,248,200, 66,140,234, 14,108, 70,116, 0,242, 93, 54,200,210,198,187,226, 38, 94,245, 42,127,149, -208,238,213,246,183, 14,235,189, 73, 10,115, 8, 84,194,132,245, 11,219, 12,183, 46,209,235, 15,172, 72,184,172,121,124,255, 41, - 90, 67, 20,245, 49,202, 42,196,123,253, 11,236,189,120, 74,212,239,219,228,200,141, 45,182,174, 92,163,191, 54,102, 48,176,200, -230,209,120,157,233,241,132,201,209, 9,186,182, 64,168,233,201, 33,121,158, 81, 21, 57, 26,195,211,207, 62, 37,207, 38,152,170, - 2,101, 83,219,186,124, 19,113, 78, 55,143,206,235,217,132,226,104,165, 73,211,185,173,218,203, 10, 85, 87, 36,142,243,113,229, -250, 45, 14,247,119,216,121,254,130,249,244,132,178,178,247,156,239,251,108,108,109, 17, 70, 62,166,174,137,147, 30,165, 82,244, -134, 99, 14,142, 14,185,126,243, 53,246,119,247, 0,205,245,107,215,248,224,221,119,136,147, 30, 89,150,130,214, 92,190,120,217, -210, 37, 61,225,226,125,181,253,222, 74,145, 21, 37,251,251,123,244,146,152, 60,157,179,177,117,129, 52,175,120,185,183,203, 90, - 63,226,209,163,135, 92,185,122, 19,165,140,115,153,192,189, 7,247, 56, 57,153, 88, 42, 98,109, 59,133,101, 85,145, 23, 69,155, - 51, 16, 70,209,233, 77,253, 85,241,125,171,109,246,102,147,107,254,219,205, 91, 95,165,204,117, 55,253,174,242,210,235,248, 11, -187,184,209, 5,131,222, 10, 82,154,246,185,215,185,217, 27, 65, 92, 83,209,121, 14,199,218,120, 62,237, 44,121,113,163, 55,127, -191,120,112,188,133,200,169,161,247,184,150, 70,155, 29,220,217, 57, 12, 46, 95,184,165, 6,249, 96, 4, 97, 24, 17, 5, 1,189, - 40,230,206,245,155,124,235,253, 15,121,251,245,219,248,194, 48,153,166,188,216,221,163,172, 20,105, 58,227,100, 50,177,109,225, - 40, 66,186,131,192, 91, 55,175,114,241,214,219, 76, 76,132, 10, 18, 82, 45, 17, 97,159,209,230, 37,174,221,184, 3,126, 72, 93, - 41,148,170, 40,178,140, 44,207,200,203,146,162, 40,168, 28,123,188,217,164, 27,205,113,173,244, 82,140,104,163,112,214,206,194, -214,216,211,186,212,210, 37,126,128,214, 40, 3,101, 85, 82,215,240,209, 71,223,224,131, 95,249,136,231,187,251,244,251, 61, 6, -253, 1,120, 1, 85, 85, 89,223,119,101,233,108,189,164, 71,102,196, 43, 55,244,175,170, 58,197,242,170,229,238,139, 5, 55,125, - 49, 59,166,157,167,219,107,107,239, 15,223,151, 8,237,224, 49, 6,140,131,149, 36,189,132,217,116, 98,209,165, 70, 99,148,107, -187, 58,250,160, 86, 11,230,124,147, 23,160,209,172,111, 94, 64,232,154,188,204, 73,211,194,182,240, 28,207,160, 9,255,105, 9, -137, 70, 83, 42,195,205, 27, 55,168,139,156,151, 47,158,187,142,137,251, 61, 28,247,125,113, 12, 89,158,103, 11,186, 20,185,206, - 38,110,204, 87, 88,218,190, 90, 72,183,202, 6, 88,132,185, 44,111,236,141, 54,164, 57,136,212,170,102, 52, 28,178,187,191,199, -198,230,133,118,113,196,169,209,243, 60,167, 42,109, 28,102,165, 20,158, 12, 58,105,111, 6,207,232, 5, 82,213,253, 69, 63, 73, - 72,179,220,230,168, 39, 61,174, 92,190,194,135,239,191,203,227,167, 79, 41,202,130,170,214,100,233,156, 44, 79, 91, 87,130,104, -232,145,142, 63, 16,246, 70, 92,188,116, 13,233, 75,242,233,148,186,170,152,167, 54, 17,235,157,247, 63, 38, 47, 10, 6,163, 33, - 15,238,125,193,193,222, 75,180,174,172,245,211,147, 32, 44,124,200,156,135, 82,245,150,237,132,198,216,223,197,104, 13,141, 2, -190,209,173, 24, 97, 89,240, 64,150,165, 4, 65,228,156, 42, 30,101, 89,114,176,127, 64,150,102,244,122, 61,162, 40, 34, 75, 51, -234, 74,147,103,249,105, 70,187, 89, 84,223,167,158, 21,195,105, 96,255,127,170, 55,175, 25,243,200, 69, 72,146,139, 30, 70,134, -120,126, 64, 60, 92,227,226,173, 55, 40,243,140, 34, 79,153, 78,142, 41,171,156,201,225, 49,233, 60, 39, 74, 70,110,106,225,232, -106, 24, 43, 88, 52,134,120,208, 35, 74, 2,118,158,237,144, 77,102,204,103, 83,138, 52,165,200, 83,140,214,228,121, 74, 85, 21, -174,192,178,207,242,203, 71,247,152, 29, 29, 64, 85, 58, 24,152, 90,116,186, 92, 39,160, 51,119,236,182,161, 22,197, 64,211,162, - 53,118,156,168,116,109, 81,188,181, 34,244,125,100, 24,147,207, 78,168, 84, 77, 89, 86,164,243,180,181, 63, 71,113,196,205,215, -222, 36, 8,236,248, 84, 74,143, 40,238,113,239,203,123, 40,165,217,221,223,229,141, 59,111,241,221, 95,255, 30,191,255,187,191, -199,103, 95,220,231,231,159,126, 74,150,229,236,236,237,176,182, 54, 98,115,235, 2, 85, 85,183,129, 46, 85,153, 91, 82,163,231, -183, 28,128, 60,157,243,248,193, 93,174, 94,185,194,241,100,206,238,193, 1, 85, 62, 65, 6, 9,117,109,216,221,223, 99, 58, 75, -217,217,123,201,203,157, 29,187,174, 43,237, 80,180, 11, 61, 90,243, 76,251,109,226,213, 74, 27,124,169, 37,218, 84,179,231,120, -213,187,159,219,221,176,155,175,213, 70,196, 53, 27, 76,199,187,222,176,225,187,129, 45, 75, 45, 91, 33,150,104,114, 97, 16, 80, - 20,133,165,198,181, 10,228,166,202,208, 75,107,159,205, 74,246, 23,223, 95,219, 42,181,219,214,109, 46,186, 49, 6,161, 93, 38, -183,239, 99,217, 51,246,231,104, 42, 63, 79,122,110,134,234, 55, 83, 53,146, 56, 38, 10, 67,110, 93,190,204, 63,254,135,255,136, -164,215,227,238,221,187, 60,120,250,132, 52, 51, 28,189,120,196,241,228,132,119,222,122,159,255,247,207,254, 29,243, 44,103, 48, - 26, 81,215, 21,145, 47,249,141,191,245,125,110,221,184,198, 23,247,239,147,165,115,210,188,112,177,122,118,244,245,249,131, 47, -233,247, 6, 28, 29, 29,162, 84,133,174, 50, 34, 81, 19, 75, 64,215,173,158,160, 65, 24,106, 87,189, 55, 7, 26,221, 57,221, 46, - 54,236, 5, 47,153,206,198, 46, 86,250,127, 6,131,244,124,164,172, 81,194,227,147,187, 95,128, 16,156,204, 11,226,237,109,122, -189,128,141,237,107,188,124,250,144,131,151,207,236, 34,154, 79,144,193, 26,218,120, 95,217, 46,126,245, 26,211,196, 63,138, 69, -203, 29,115,134, 80,172,169,128, 27, 65, 35,248, 24,164,239, 33,133, 65, 6, 18,163, 20, 90,213,182, 77,222,116, 39,154, 54,177, -240,150,252,197,184,230,124, 39,124,213,206, 81,141,108, 67,139,154,174, 77,163, 19,145, 82,182,149,111, 93,215,156, 28,238,113, -180,190,142,148, 78,139,161,150, 70,213,231,176,182, 95, 65,124,165, 9, 41,234, 70,195,154,142, 64,112, 97,199, 91,205, 91, 95, - 54,160, 47, 62,238,122,243,151, 54,140, 51,174,153,198, 99,247,232,152,219, 55,111,113,229,218,117, 62, 41, 51,164, 7,155,235, -235,232,186,162,174, 21, 69, 89,177,179,179, 67,254,114,119,233,251, 53,135,228,238, 69, 51, 90,219,153,183,231, 81, 86, 53, 79, -238,223,229, 87,222,127,143,207, 63,191, 11, 24,214,198, 23,240,227, 1,207, 30,125,137,192,163, 86, 5, 32,137,147, 30,170,170, -240,125,143,254,112,200,198,214, 37,158, 60,188, 75,127,212,167,172,114,138,162,194, 51, 18,207,243, 25,174,111,242,193,214, 69, - 62,249,201, 95, 80,164, 51,140,174,240, 3, 31,165,106,226, 36,166,200, 11, 84, 85,127, 77, 49,225,202,245,104,218,187, 66,129, -167, 90,240,143, 16,130,193, 96,200,193,193, 62,117, 93, 34,165,116,155,129,116, 93,140,154, 60,243, 40,203,218,233,131,188,191, -113, 85,253,255,199,155, 16, 43,135,112,209,137, 85,214, 6,163, 43,140,170, 56,126,241,204, 94, 81,167,203,177,107,143,205, 53, -159, 30,238,243, 18,143,209,250, 6,170,174,217,186,124,157,221, 23, 79,160,206, 40,202,156,217,193, 17, 85, 94, 82, 21,182, 18, - 47,138,220,218,194, 48,228, 89, 96, 95, 79,101,173,132, 81, 20, 83,148, 57,201, 96,232, 10,171,102, 18, 37,150, 56, 22,171,115, - 37,115, 70,123,170,155, 83, 34, 16,232,178,118,241,199,130,121,154,114,227,242, 21,158, 61,121, 68,224, 75,122,253, 62,202,161, -163,149,178,237,236, 23,143,191,100,118,208, 35,126,239, 35,126,252,163, 31,240,222, 71,191,202,116, 54,181,182,204,209,128,203, - 23,183,201,243,156,127,253,191,253,107,158, 60,126,192,228,232, 24,141, 97,109,188,193,207, 63,251,156, 7, 79,159,179,183,243, -140,171, 23, 47,242,141,143, 63,182, 7, 64,199,207, 55,120, 28,157,156,208,239,247, 88,223,188, 76,173, 44, 5,113,150,213, 32, -251,188,120,249,140,241,186, 98,255,112,143, 43, 87,174,211, 31,140, 22,124, 23,135,196,214,238, 4, 22,134,161,203, 13, 16,118, -166,126, 22,158, 98,181, 90, 50,103,204,220,151,162, 86, 59,213,115, 35, 86,107,132,105,205,198,234,117,208,179,205,194,210,221, -228, 87, 15, 10,129,239,159,242,198, 91,108,165,180,243,112, 85,183,109,216,238,108,138,142, 23, 94,181, 73,104,180,104, 61,209, - 90,247, 22,149,145,118,130,183, 38, 4,164,109,181, 59, 62,124,243, 86,233,218,205, 91, 37,113, 32,145,198,240,135,127,231,119, -248,248,131,143, 49,192,131, 71, 79, 56,153,167, 24, 35,216, 63, 58,224,249,243,167,164,243, 9, 89, 94,178,187,251,146, 48, 73, -172,152, 74, 43,100,173,120,246,249, 79,233,151, 39,220, 30,111,145, 69, 1,243, 34,103, 50,157,240,236,249,115, 30, 60,191,207, -113, 58, 99, 54,207, 17,210, 39,205,114,146,254,192,158, 36, 49,140,134, 49,107,177,196, 83, 85,123,160,105,212,145, 90,211, 42, -243,187,124, 0,131,193, 72, 15, 73, 3,161,113, 85, 84, 19, 4,237,198,106,173,239, 84, 8,110,223,126,157,195,227, 19,170,186, - 38, 8, 66, 60, 25,176,127,120, 76, 16, 4, 8, 63, 32,232,141,209,234, 17, 85,169, 57,153, 79,233,175, 13, 80,120,232,142,165, -238,111,220, 18, 84, 26,207,128, 22,221,123,111,177,105, 45,132, 96,206,226, 39, 12,190,176, 55,122, 28,122, 96, 60,198,253,132, -124, 62,165, 84, 37, 71, 79,239,115,240,252, 17,117, 93,209, 27,218,128, 15,229,217,106, 59,148,129,125, 25,100,141, 86, 30, 70, -219, 36, 36,164,164, 23,199, 14,157, 9,210,243, 45, 27,192,221,223,149, 3, 23, 37,137,245, 27, 23,121, 78,173, 13,190,123,221, -101,148,180, 73,126,205,115,166,189,211, 45,113, 15,111,129,138,109,181, 31,210, 85,244,221,120, 84,111,105, 54,190,218,110,255, -186,149,123,187, 40,154, 69,149,222,140, 93,204, 89, 54, 57, 64, 24,201,237, 91, 55, 57,153, 28, 51,159, 77,233, 37, 49,187,123, -123,100, 89,198,222,206, 30, 85,165, 28, 64, 42,116,150, 40,109, 15, 72,205,243,214,121,222,141, 49,100,121,142,239,123, 68, 81, -207,182,114,107,205,237,119,222,230, 39, 63,255, 25, 85,173, 41,202,140,121, 94, 90,232,136,178,215,187, 44, 10,162, 56,166, 72, - 83,166,211, 57,126,120,136, 82, 53,147,201,140, 32, 25,160,211,140,241,214, 38,210, 11,185,117,235, 53,254,244,223,254, 95,236, -239,238,162, 77,213, 96,199,136,252, 16, 97, 60,234,178,122,165,202,124,213, 2,253,234,219,119,113, 92,251,255,152,123,179,102, -187,146,244, 60,239,201,204, 53,236,241,204,192, 1, 80, 0, 10, 64, 1, 53,118, 87, 87,143,106,118,183,217,164, 72,118, 75, 10, - 43, 40, 57,194,146,232, 65,162, 47, 20, 33,135, 46,252, 23,120,233,123,219, 23,118,216, 97, 59,194, 23,158,168, 8, 91,150, 76, -134, 37, 82,166,201,102,147,221, 53, 87, 97, 40, 20,102,156,121,216,243, 94,123, 13,153,233,139,204,181,246,218, 7, 7,168, 34, -197,144,136,138,138, 66,225,156,179,177,135,181, 50,243,251,190,247,125,222, 75,151,207,113,116,216, 99, 52, 30, 18,168,208, 61, -239, 60, 33,138, 34,226, 70,200,104, 52, 33,203,115, 10,175,176,255,203,176,169,207,163,134, 79, 68, 12, 89, 7, 97, 50,218, 98, - 10,195,112, 52, 32, 75, 38, 52,187,203, 72,175, 43,114, 85,167, 36,157,205,216,223,121, 12, 88, 58,221,101, 52, 49,235,155, 23, - 56,218,121, 2, 8,215, 93, 76,103,100,105,226,220, 65, 85, 20,182, 68,235,162,162, 91, 74,191, 31, 4, 42,164,221, 93,246,190, -247,121,252,171,125, 94,161,240,172, 21,228, 25, 63,103,221,198, 41,188,240,242,254,157,219, 72, 41, 73,172, 97,150,101,180,219, - 29, 70,163, 17, 90,107,210, 52,227,193,131, 7,108,158,221, 96,243,226,128,100,146,240,225,123,127,196,160, 63, 34,203, 53,179, -100,194,104,120,192,131, 7, 3,130, 56,228,210,213, 87,201, 47, 36,124,255,123,223,227,227,143, 63, 98,111,127,143,163,227, 67, -142, 15,246,233,247,135,196,141, 6,231,206,158,165,221,108, 57, 23,146,207,155,104,196,107, 96, 93,229, 31,132, 13,222,249,234, - 53,110,221,189,195,147,221, 67,130,168,237,198,138, 8, 58,173, 14,237, 86,147, 89,146, 80, 4,130, 48,136,209,133, 23,248, 26, - 83,237, 99,106,211,179,223,159,129,207,156,176,170,217, 19,237,247,147,173,245,147, 80,131, 58,217,232, 36,140,255,121,249,232, - 11,143,227, 63,244, 82,176, 84,162,241, 74,187,218, 28,145, 71, 53,175,168,186, 4,181,177,128, 84,106,129,172, 84, 66,244,231, - 31,178,152,219, 82,202, 22,123, 16,204,199, 7, 30, 88, 83,127, 77,110,241,146,180,227, 38,191,241,183,255, 14, 87, 46, 95,101, -107,239,144,207, 30,222,103, 56, 30,147,101, 25,119,239,223, 99,119,103,139,209,120,196,104, 56,224,204,185,151,216,122,250, 24, - 37,157, 77,173,232, 31,240,253,175, 92,231,245,235,175, 16,199, 45,134,163, 17,195,209,128, 65,239,144,227,227, 3,146,217, 16, -108, 65, 39,128,165,118, 68, 28, 88, 66, 97,145,104,132,206,209,166, 96, 48, 76, 24, 78,114, 50, 20, 65, 24, 97,116, 86, 19,127, -205,253,228,229,102, 94,222, 56,166, 22,175,233,246,117,103, 79, 51,224, 43,123, 23, 33,235, 58, 29, 17, 23, 46, 95,231,184,223, -171,120, 2, 88, 55,107,183,214,137, 64,164,144,244, 14,182, 49,190, 61, 30, 7, 2, 29, 54,220,166,254, 28, 58,220,105,254,244, -133,131,164,169, 99, 43, 75,129,165, 93,184, 79,165, 84, 40,159, 83, 31, 42,103,247,107, 70, 1,107, 75,171, 92, 61,187,202, 70, - 51,224,210,153,101,206,173, 45,209,109,132,204, 38, 3, 14,247,247,233, 29,237,163,141,165,213,234,178,212,238,242,213, 55,191, -194,193,193, 33,218,184,207,187,244,128, 6, 81,196,202,234, 58, 42,140,177, 38, 35, 75, 83,210, 52,165,200,117,117, 88,138,227, -120,222, 57, 10, 2,172,128,184,217,100,245,204, 38,235, 27, 27,108, 61,184, 87,141, 69,168, 87,197,130, 5,248, 76, 73, 59,172, -188,226,207,168,211,235,247, 27,167,224, 97, 57,117,206,126,186, 95,189,118, 77,156,216,255,171,133,207,204,189,235,229, 73,175, -217,138,184,113,245, 10,201,108, 70,175,223, 67, 23,133,127, 63,114,199, 57, 40, 10,178,188,240, 1, 40,139,249, 14,243,191,179, -246, 28,140, 37,142,155,104,109, 88,223, 56,195,104, 50,229,246,237, 91,172,111,108,178,253,248,161,131,201,204,166, 11, 93,166, -134,119, 33,204, 38, 19,134,253, 30, 65, 16,211, 63, 58,102, 50, 25,115,249,234,235, 92,188,124,149, 32,140, 56, 58, 62,226,222, -173,143,201,139, 4, 21, 72,164, 84,158, 32, 23,184,150,239,139,132, 99, 82,156, 18,164,242,156,182,183,156,195,132,194, 48,228, -204,153, 51, 32, 93,102,118, 20, 70, 76,166, 78,195,161,181, 33,207, 10,138,220,197, 37,159,234, 58,248,183,249, 75,214,212,239, -190,170,117,247,158,114, 28,144, 32, 64, 69, 33,171, 27,231,216,184,120,133,150,207,167,207,243,204, 51, 9, 92, 17, 55, 73, 18, -140, 49,132, 97, 72,220,106, 51, 25, 13, 49,186, 32,138, 34,102,233,140,162,200,156,146,221, 99, 86,173,209,180,219, 29,162,184, - 73,150, 37,110,220, 83,100,104, 93, 48,155, 38,236, 62,184,141,206, 83,140, 46, 16,149,168,213,143, 83,121, 22, 58,246, 69, 39, -176,147,221, 50, 91,141, 84, 92, 1,152,205,102,190,205,111,157,248,207,104,146, 89,198,100,216,231,175,252,224,135,228,218,137, -171,251,189,125, 94,186,248, 10,237,165, 85,127, 50, 86, 92,121,249, 18,175,190,250, 38, 63,127,247, 93, 62,254,248, 67, 54, 55, - 55,217,220,188, 72,158,101,100, 58,229,206,231,159,115,243,147, 79, 56,183,185, 65,179, 17, 87,235,135,213, 5,179,196,141,143, -206,109,158,195, 34,248,232,147, 79,120,186,253,148, 15, 62,252,128,235, 87,174,112,118,227, 12, 65, 20,178,189,179,205,113,175, - 7, 30,200,102,173, 75,129,115,193, 64, 78,103, 86,169,223, 79, 82,223, 78, 83, 33,159,150,170,117, 50,148,227, 52,166,183,169, - 43,151, 79,216,216, 78, 90,227,202,159,209,198, 69,126, 90,107, 73,211,172, 98,188,139,122, 35,241,132,101,163, 10,135,241, 23, -152,170,252,245, 84, 65, 49,174,133, 58,199,202, 86, 51,119,255,143, 82,210,219,210,100,245,166, 41,175,162, 46,231,250,161,148, -172,180,150,248,149, 31,254, 10,153, 54,188,127,243, 83,142,251,125,132,128,222,241, 1, 69, 94,240,228,209, 67,142, 14,119, 25, -141, 71,172, 44,175,208,136, 27,172, 44, 47,145,103, 25, 45,147,240,250, 91,175, 34,130, 6, 79,118, 14,152, 38, 35,166,147, 49, -233, 44, 33, 47, 50,239,207,215, 72, 44,198,251,177, 91,113, 68, 43,114,109, 42,109, 12,218, 58, 21,228, 94,111,200,222,225,132, -163, 32,164, 29, 7,172,180, 2, 66,161,157,239,182,108,193,155, 57,180,199,250,147,176, 49, 6,171, 5, 70, 27,114,109, 22,102, -233,121, 53, 2,149,206,187,249,248,169,111,233,187,199,113,109,103,129,241,239,107,220,142, 41, 52, 24,155, 51,203, 45,131,201, -136,165,168,137,150,205,103,236, 97,167,133, 16,156,180,178, 9,192,150, 44,237, 57,108,127,225,251,165,152, 95, 9,129,148,132, -129,165, 25, 71,156, 91,233,242, 15,255,246,143,184,180,185,206,246,193, 17,253,209,152, 89,154, 49, 76,102,156,221, 94, 99,115, -243, 28,247, 30, 61,230,240,168, 71, 95, 91,190,254, 87,127,196,127,252, 31,253, 3,182,247,255,115, 30, 60,124, 72,160, 4, 89, -230, 68, 40,121,158,147, 23, 5,235,237, 54,227,227, 17,179, 36, 3, 43,253,181, 36,201,243,162, 66,165, 90,107, 17, 65, 64,220, -106, 16, 69, 13,174, 95,187,206,238,238,206,188,253, 94,239,118,213,156, 24,194, 31,164,140, 63, 88, 46,194,105, 78, 42,158,173, -255, 12,190,220, 76,253,121,168,222,133,150,123, 85,185,219, 5,159,250, 51,247,176,209, 28, 30,245,248, 40,189,201,227, 71,143, -200, 50,119,144,113,243,244,220, 91,252, 28, 52,199,136,242,243, 58, 29, 34,228, 34, 92, 45,214,184,168,212,184,213,100,123,123, -139,237,221,167,244,122,251,160, 36, 71,251,251,136,192, 35, 49, 75, 33, 98,158, 51, 25, 77, 16, 72,180,201,145, 6, 31, 98,164, - 9, 26, 49,171, 27, 27,140,198, 3,206,108, 92,224,206,205,247, 40,242,153,247,184,251, 13, 29,200,210,153,211, 12,148,159,193, -151,217,240,140,253,194, 34,189,188, 94,198,227, 9,123,123,123, 20, 69,225, 66,159,148, 34, 80, 33, 89,150, 19,132,202,235, 49, -204, 11, 99,117,255,141, 86,233,117,232,145,176,212,135,177,194, 88,172,116, 85,160, 41, 10,116,150,114,255,230,135,188,243, 75, - 63, 66,133, 33,211,201,180, 98,116, 40, 25, 96,116,129,180, 5,227,193, 49,217, 44, 97,121,227, 28, 27,155, 47,241,244,254, 29, -116,225,238,165, 82, 31,227,198,156, 33,185,206,153, 38, 9,205,102,135, 70,220,114, 34, 86,156, 70,161,217,238,186, 34, 74, 6, -222,181,194,169, 54,206,147,235,136,125, 65, 71,194,214, 55,118, 33,156, 3, 72,136,138, 80,103,172,161, 17,195,114,183,193,116, -102,153,101,154,220,102, 28,236, 29,242,123,255,207,239,112,241,210,203, 92,188,250, 26,199,131, 9,159,125,246, 41,211,201, 49, -198,184, 14, 97, 49,217,227,195, 92,240,116,107,155,171,175,188,202,217,179,231,249,248,147, 15, 81, 82, 48, 28,244,249,230,183, -190,199,225,225, 54,239,127,252, 41,191,246, 43,191,196,119,191,243,109,132,144, 76,167, 51,146, 89,202, 96, 48, 96, 50, 25, 51, -153,101, 28,247, 29, 71, 97,146, 76,248, 23,191,247, 59,204,178,156,254,112, 68,179,211, 69, 5, 14, 96,228,186, 40, 6,227,109, -223,133,245,184,242,205, 90, 74,219, 51,216,205, 23,136,230,190, 72, 76,119,154, 10,243,228,134, 95,206, 37,235,172,226,122,214, -236,226,129, 97,209,162, 81, 85,141,245,231, 41, 29, 56,198,214, 42,186, 18,245, 89,162, 67,133,247, 21,151,155,191,155, 13,205, - 89,194,214,206, 75,161, 50,133, 77,249,252,232,242,160,176,214, 93,225, 59,223,254, 5, 14,142,143,249,244,238,109,198,147, 41, -155,103,207,112,112,120,200,211,173,167,108, 61,121, 76,239,240,144, 52, 77, 89, 95, 63,195,245, 27,175,115,247,243, 79, 72,211, -130, 88,100,180, 27, 49,121, 97, 56,238, 29,177,127,180,195,104,212, 35, 73,166,228,254,132,186,128, 3, 45, 19,214,124,181,103, -188, 85,195, 65, 83,220,194,113, 60, 24, 50,157, 38,140,167, 41,195, 73,130, 12, 98,132,180, 96,168,236,108,182, 12, 2,168, 42, -116,175,246,246, 86,182,121,155, 92,248, 53, 76,114,229,218,107, 28, 15,199, 12,134, 35,180,209, 21,168,199,241,206, 45, 97, 28, -209,136,155, 44, 45,117,217,122,248,192,133, 99,224, 14, 12,177,180,132,113,155, 66,200, 23,139,180, 78,222,148, 11,115,102,159, - 96,102, 44,243, 28, 33, 81, 9, 44,149, 16,132,210, 5,226,116,218, 29,150, 35,197,143,191,255,109,126,240,206,155, 36,179,148, - 78,171,197,203,231,207,114,110, 99,131, 0,144, 42, 96,154,165,180,155, 13,154,173, 54,163,201,144,207,239, 63, 32, 51,146,165, -165,101,118,247,182,171, 4, 59,227,245, 23, 66, 8, 86,215, 54, 48,121,198,112, 48,112,234,217, 60,175, 20,211,229,181, 23,134, - 97,165, 1,208, 70,163,162,136,165,245, 13, 30, 61,248,252, 25,221, 66, 5,211,169,133,152, 87,153,108,162, 70,151, 19,207,223, -180,133, 56,141, 50, 87,155,153,219,211,127,118,161,107, 98, 79, 7,206,156,214,130,151, 66,144,167, 9,111,189,122,189,130,118, -228, 69,225, 83,199,138,202,250,100,177,200, 32, 92, 56,160,137, 90,219,211,251,163, 92, 71, 8,139,176,154,118,103,149,227,163, - 99,134,253, 35,138,162,112,112,142,195, 67,162, 70, 76, 58,157, 44, 28,254,165, 12, 0,235,187, 3, 78, 77, 44,132,164,179,180, -194, 43,175,189,197,222,214, 99,182, 30, 63,228,232,224, 41, 86,216, 74, 68, 25,199, 49,179,100, 70,121,210,168,146, 23,121,126, -245, 61, 23,200,189,112, 32, 93,117, 93,202,123,107, 99, 99,195, 57,118,112,100, 76,165, 2,186,221, 37,164,130,209,120,234, 79, -204,226,223,234,102,254, 44,165,110, 62, 12, 18,204,169,162,248, 74, 29,225,232,114,198, 20,172,174,159,229,204,203,215,153,141, - 71,110,230,174, 13, 65, 24,186, 3, 88, 81,176,191,243,148,233,112,192,108, 60,166,189,180,130, 12, 20,211,209, 96, 62,122, 21, -208,108, 52,171,241,183, 7,108,187,188,118, 32, 10, 93,124,174, 20,130,123, 31,189,235,224, 51, 69,225,216, 1, 53,178,168,100, -222, 5,126, 38, 4,234,180,187,230, 68,242,227,201, 49,115,217, 87,210,133,173,108,170,198, 3,182,180, 54, 12, 7, 67,250, 71, -187, 28,239, 63,161,119,116,128, 65,114,238,226,203, 72, 12,163, 97,159,183,191,249, 67,134,131, 35,116,145,114,229,234,117,210, - 52,227,157,183,223, 97, 52, 28,161, 36, 92,186,116,145, 87,175, 94,230, 43,111,188,206,234,234, 26, 91, 79,183,185,121,243, 22, - 66, 10,214, 55, 54, 8,163,152,127,254,187,191,203,225,193, 1, 23,206, 95,164,217,233,114,235,230, 77,192,242,225, 7,239,209, -110,183,233, 46,173,112,216, 59, 98, 52, 26,251,113,243, 92,179,230,226,124, 11,212,185,203, 87,126,235,100,150,245,139, 54,247, - 47,147,248,115,154,165,237,121, 45,254,211, 22,248,250,215,158,119,112, 88,176,183,213, 91,238,254, 38,171,219,221,170,192, 26, -107,231, 1, 39, 30,172, 17,133, 97, 21,202, 81,109, 42,190,131,163,252, 1,161,244, 34,135, 97, 72, 32, 3,174, 95,125,133,251, -247,239,243,238,123,127,202,176,239, 32,253,219,219, 79, 24, 77,198,116, 58,203, 4,129,196, 74,201, 75,151,175, 32,195,144,219, - 55, 63,101,109,101,153,241,104, 64,104, 13,185, 46, 72,146, 33, 69, 54, 69, 8,187, 32,252, 16,181,148,177, 82,183, 54,183,152, -153, 10, 17,168,141,118,137,105, 62,101,108, 60, 26,251,128,154,148,209,104,138,177,130, 48,168, 65,113, 16, 11, 34,146,146, 1, - 95, 89,154,132,240,126, 92, 0,197,185,243,151, 41, 68,200,238,254,126, 21,122, 99, 42, 23,129,115, 57, 52,154, 13,148, 10,105, -182, 90,140, 6,125,146,241,200, 29, 54, 60,109,110,185,213,192, 40,135,237, 60, 89, 69,138,231,164,185,149,223, 37, 77,125, 49, -181,243,245, 83, 8, 31,130,224, 8,123, 97,160,104, 68, 1,157, 64,241, 11,111,191,202, 87, 94,189,198,230,153, 85, 90,171, 75, -172,111,172, 17, 71, 10, 17, 72, 86, 58, 45, 86,218, 45, 86, 87,215, 88, 63,123,150,118, 44,233,180,155, 20, 58,227,222,227,167, -188,253,246, 55,216,219,219, 5, 41, 25, 79, 38,213,232, 69, 72,197,210,202, 42,141, 40,228,248,248, 8, 37, 37,105, 58, 35, 12, -162, 42, 24, 72, 41, 69,179,209,112,108, 5,225,128, 40,227,225,144, 11, 23, 47,243,248,193,131, 42, 5,239,153,234,185,154, 55, - 11, 44,167, 88,149,158,129,135,216, 19, 48,154,185, 13,233,244,141,191,254,152,115,145, 42, 39, 42,245, 5,162,220, 9,193,156, -165, 30, 1,235,254,219,235,245, 72,211, 20,176, 44, 45, 59, 49, 83,158, 21, 20,133,198,250, 64, 15, 91, 7,165, 84,247,184,169, -193,155,124,123,223, 90,167,112,215, 5,201,212,193, 88,154, 77, 71,110,203,138,204,177,191,203,112, 18, 41,200,243,220,117,209, -138,162, 58,244,170, 48, 64,133, 33, 87, 95,185,206, 71, 31,188,199,100,208,195, 26,237,147, 10,149,211, 58, 20,121,205,190, 39, -230,220,138, 83, 5, 4, 39, 98,127,191,176,170, 22, 21, 82, 64, 10,193,225,225,225,194,103, 93, 20,133,195,197, 22,206,154, 84, - 22, 23,127, 9, 20,114,167,158, 45, 74, 43,163,168,101,125,151, 25, 26, 72,197,225,238, 14, 87, 94,251, 42,113,171, 77,103,105, - 25, 21,184, 86, 59, 86, 48, 56, 62, 36, 77,167, 36,211, 41,131,253, 93,118,158,220,103,117,101,205, 81,213,138,220, 31,206,172, -203, 25,143,194,202, 77, 20,133, 13,167,115,209, 26, 21,132,228,121, 70,168, 36,247, 62,121, 31,157, 38,216, 34,199, 58,160, 70, - 13, 23,110, 23,227,105,159,211,122,175,131,158, 78, 82, 41, 79, 37, 70, 8, 65,110, 56, 17,212,228, 58,106, 73,150, 49,153, 78, - 88, 93, 95, 35, 77, 83,146,233,136,183,223,249, 54,218, 8,210, 44, 65,133, 77,186,203,235,188,253,230,155,116, 90, 13,118,119, -158,240,253,239,253,128,115,103, 55,120,245,218, 53,214, 86, 87,249,249,251,239,147,102, 57,179, 44,103, 58, 77, 88, 89, 89,161, -187,180,204, 31,252,209,159,240,254, 7,239,242,225,135,239,241,240,241, 67,250,199, 61, 46,156,191,128, 12, 35, 38,195, 35, 62, -254,224,231,220,186,245, 41, 43, 43,107, 12,250,131, 10,249, 93,198,117,151,218, 52,117,254,242,149,223,250,162,197,246,100,123, -163,190,136,168, 19,182,182, 23,142,109, 78,120,203, 79,109,166,188, 32,189,171,252,217, 42, 10,211,183,195,235, 49,116, 85,242, -152,153,143, 12, 74, 77,128,171, 50,131, 42,115,219, 90,119,113, 9, 31, 80, 47, 69, 25, 92, 79,133,141, 85,129, 66, 23,218,219, -222, 96,125,121,149, 91,183,110,113,176,191,235, 4, 34,105,202,116, 60,162,223,235,177,179,179, 69, 32, 4,179, 52, 33,203, 82, -110,223,252,132,131,221, 29,214, 86, 87,216,221,221,198,230, 9,182, 72,193,228, 4, 10,103,169,168,205,252,235,171,176,193,133, -166,184,136, 80,215,114, 47,140,169, 2, 72,140, 54, 20,214, 85,223,161,114, 42,232,254, 96,128, 65,161,145,204,102, 51,146, 68, -211,108,132, 94, 8, 55,167,165,201, 10,191,234, 17,134,149, 87, 29,180,133, 75,151,175,211,234,174,240,240,241, 99, 15,244,176, - 21, 57,175,172, 42,131,192, 1, 68,162, 48, 34,110,196, 40,165,216,223,221,118, 54, 11, 99,200, 11,141,213, 57,171, 75, 43,228, - 34,152,223,124,167, 28,236, 22, 70, 50,101, 23,103,225,154,180, 11, 85,186, 16,130, 64,224, 50,232, 3, 73, 67, 41, 46,174,117, -248,107,255,206,119,248,230,215,222,160,125,126,131, 40, 8,152,141,198, 28,245, 18,246, 6, 25,147,104,133, 75,111,127,151, 65, - 6,191,243,251,127, 64, 94, 88, 86,219, 14, 37, 26, 7,130, 78,103,133, 34,207, 24,140, 6,180,151, 86,153, 38, 99, 84,168, 8, -131,152, 78,167, 77,163,209, 96,255,112,191,122, 94,101, 16, 71,133, 42, 46, 95,139, 82,172,158, 57, 79, 24,197,100, 69,193,240, -232,208, 45, 66,101,170, 91,229, 36, 17,149,223, 30, 33, 74, 13,220,137,131,140,173,137,150,236, 51, 19, 65,107, 79, 42,221, 23, - 15, 64,139, 14,129, 90,204,234,105, 51,116,158,173,210,235,194,185,178,168, 91,234, 52,177,214, 56, 59,101, 86, 48, 25, 79, 24, -141,198, 20,133,187, 22,101, 24, 59,145,223, 9,111,186,123,246, 37, 55,221,255,189,166,234, 93, 99, 74,177,148,209,140, 6,125, -167,242, 53,154, 34,203, 42,135,130, 3,208, 20,149,229, 8,225,162, 94, 95,121,237,171, 88,109,216,217,218, 98,220, 59,174,198, -107,101,151,206,120, 84,233,188, 52,156, 99,161,191,208,202, 6, 95,216, 42,175,116, 16,194, 85,116,141, 70, 68,158,231,149,205, - 72, 41, 69, 24,134,168, 80,186, 52, 54,243,151,109,150,126,250, 94, 95, 6,241,216,178, 83, 41, 5,168, 0, 35, 4,217,100,192, -149, 55,191,142,182,150, 70,171, 73,158,205, 72,166, 19, 30,126,250, 33,143,239,124,194,163, 91,239,179,255,228, 30, 71, 59,143, -248,236,163,159,147, 77, 18, 26,237, 54,205, 86,199, 5,156, 52,154,213, 24,196,226, 14,234,148, 7,183, 44,117, 98, 98, 11,219, -247,110,187,142,128,246,201,152,245,185, 58,115,232,212,169,115,244, 23,180,226, 79,110,248,212,164,130,194, 7,198,240,204,189, - 88,194,186, 12,185,118, 12,145,209,160, 79, 50, 29,112,233,229, 87,120,124,255, 54,201,184,199,213, 43, 55, 88, 95, 93, 97, 56, -153,240,116,123,143,173,167, 79,104,117, 58, 60,218,218,226, 95,253,191,191,207,247,190,255,139,140, 38, 9, 63,253,147, 63,230, -218,181, 27,116,218, 29,254,248, 79,126,198, 44,203,184,127,255, 30,253,126,143,241,104,196,222,254, 30, 59,123,123, 20, 69, 78, -119,245, 12, 97, 24, 97,117,206,116, 60,165,187,178,194, 44,157,121,189,215,220, 62, 94,104,189, 40,148, 59, 89, 9,127, 81, 60, -102, 61, 37,237,207,166,180, 60,165,146,126,142, 85,110, 81,228,230, 19,200,164,172, 50,215,171,214,156,247, 13,151,226,183,147, -145,176,213, 44,189,198, 73, 47, 59, 20,101,212,166,245,232, 87,170,220,228, 57,103, 94,107, 77, 35,138, 25,141, 70, 28, 31, 31, - 50,155, 76, 40,178,140, 44,155, 49, 29, 15,153,140,135,100,179, 49,219, 91, 91,236, 60,121,204,222,238, 83,218,173, 38, 32,217, -223,217, 66,217, 28, 97, 82, 2, 9,205, 70, 72, 35,114, 92,248, 32, 80, 21,178,214,122, 91,135, 99,145,107,167, 10, 46,177,173, - 53, 54,187,241, 80, 73,237, 55,119,237, 83,163, 66,165, 24, 13, 7, 24,227, 66, 25,146, 52,101,154,104,150,150,151, 61,246,114, - 81, 42, 82, 42,172, 93,234,154, 64,169,136,107,215,223, 98, 48,157,113,255,209, 99, 63, 55,229, 25,228,164, 82, 1, 81, 24, 33, -131,128, 56,114, 33, 51, 27,155,231,120,240,249, 93,231,153,247,129, 57,198, 26,150,226, 16, 19,183,171,247, 92, 85, 89,247,242, -116,251,100, 73, 28, 60, 49, 75, 46, 63,127, 87,161, 67, 20, 72,130, 64,208,140, 66,154, 88,126,252,139,127,133,239,126,227, 43, -116,215, 87,208,227,140,131,189, 99, 38,193, 10,103, 95,251, 26,189,113,202,149,215,223,100,255,201, 19,254,203,255,234,191, 96, -247,224,128,131,225,148,165, 86,147,229, 88,209, 27,141,185,121,231, 22, 55,111,125, 66,175,223, 39,110,180,185,246,202, 13, 70, -227, 17, 97, 20, 99,173, 97,117,117,141, 65,175,135,209, 26, 41, 36,201, 44,241,221,157,146, 19, 31, 80,174, 48, 97,220,228,234, -107,111,208, 90, 89,229,224,233, 67,239,175, 86,149,133,115,145,140,103,107, 43, 75,141,103, 47, 78,162, 98, 79,130,103,120, 38, -165,109, 49,176,165, 86,144,215, 20,194,166,182,137, 47,108,228,246,217,110,126,221, 59, 15,130, 56,148, 92,191,122,153,131,131, - 67, 95,173,103,126,182,103,171,128,154, 32,138,171,231, 43,235,110, 57,107,231, 7, 75,251, 44,201,238,100, 39, 35,207, 50,226, - 48,244,145,203, 98,193, 85, 83,142,218,164,116,108,242,175,127,235,123,236,238, 60,225, 96,119, 27,107,114,162,184,137, 21, 2, -165, 4,201,100,186,176, 22,156, 86,152,124,225, 38,247,101,151,183, 90, 11,222, 37,108,197, 11,196,194,102,179,129, 16,138, 44, -205,249,203,160,146,123, 94,180,111,133, 26,198,175,209, 98, 94,116,136, 50,158, 85, 41, 54, 47, 95,227,218,235,175, 98,173,160, -191,243,148,159,254,243,223,230,222,205,119, 25,236,109,147, 39,206,151,111, 10, 75,220,110, 49, 58,218,229,222,237,143, 56,222, -219,166, 25,199,116, 86,215,157,130, 94,107,239, 12,104,250, 10,126, 30,133,108,172,229,240,233, 3,198,199,135, 14,224,164,181, -227,241, 87,227, 85, 83,241,130, 78,253, 40, 42, 32,205, 23,136, 18,159, 17,203,215,161, 79, 39,238, 13,127,253,229, 69, 70,154, -184,196,198,116,146,128,180,116,219, 75,252,135,127,231,239, 49, 26,244,249,131, 63,252, 3,162,214, 10,159,221,254,148,123,247, -238,112,231,179, 59, 60,124,120,159,163,253,125, 62,189,117,203, 69,182, 78,167, 92,124,233, 34, 79,183, 30, 35,140,102,125,125, -157,237,167, 79,217,222,217,102,154, 36,164,126,141, 41, 71, 93, 71,199,199,104, 4, 23, 94, 82, 40,254,104, 0, 0, 32, 0, 73, - 68, 65, 84,190,198,242,202, 42,163,193,176,178, 39,215,117,110,193,105,202,245, 47,106,123,215,253,230,245, 7,123,209,172,253, -212, 22,189,251,225,133,141,254,121, 30,248,114,174, 94,125,152, 60,203, 14, 87,118,222,126,209, 39, 68,124,178, 22,147,169,132, -154,115,114,149, 66,227, 90,166,185, 79,192, 17,190,101, 86,206,230, 93,212,169,164,119,120, 72, 0,196, 74, 81, 68, 17, 82, 74, -178, 60, 37, 47, 28,128,163,200,139, 74, 73,185,182,113,142,184,217,225,248,112, 23, 37, 11,172, 41, 8,162,152,184,225, 82,219, -194, 56, 64, 40,111,241, 51,186,186,168,140,117,173,235, 10, 38, 32,106,157,115,227, 96,162,214,211,241,140,177,149,114, 29,143, - 86, 92, 95, 89, 98,239,240,136, 76, 54, 8,195,136, 84,231,220,125,240,148,213,110,155,245,149, 14, 74, 26, 74, 82, 22, 82, 32, -140, 59, 36,157, 59,123,142,245, 51, 23,248,224,227, 79,153, 38, 9, 89,238,160, 44, 37, 59,191, 12, 76,113,138,115, 89,161,121, -181,113, 56,219, 32,140,121,249,218, 13,238,221,249,148,194,104, 50, 45, 8,178,130,201,160, 79,107,101, 19, 67,136, 8,148, 79, -138,115,136,204,211,198, 51,101, 37,185,216, 29,147,115,244,171,128, 64, 42,162,192, 17,253,154, 13,197, 87, 94,190,200, 47,124, -235,171,180, 86, 87,248,240,206, 99, 76,176,194,165,215,191,198,217,149,101,178,241, 4,140,230,247,255,175,127,202,214,206, 14, -199,253, 62,147,233,140,220, 88,118,219, 13,206, 47, 55,153, 76, 19,102,179, 41,173,102,196, 81,111,200,222,214, 35,242, 60,227, -210,203,175,112, 60, 56, 66, 23, 57, 22, 65,220,108,147,231, 41,179,116,230, 19,253,236,130,227,194, 10,129,241, 21, 69, 50,157, -176,220,234,160,132, 66,163,171, 76,129,242,117,154,146, 85,239, 71, 33,178,222,169,240, 89,230, 86,212, 5,166,210,139,190, 78, -155, 22, 10,255,181,231, 35, 97,171,251,246, 52, 95,186,125,142, 3,174,238,128,241,125,232,187,159,223, 99, 48, 28,158,162,178, -183, 32, 2, 16,174,163, 37,237, 92,204, 90,253,189,162,238, 45,125,254,129,191,178,189, 77,167, 94,129, 45,159, 73, 48, 11,226, - 22,235,103,206,208, 59, 56,224,248, 96,151,227, 67,103, 93,147, 40,194, 70,196,236,184, 71,102,245, 51, 27,250,139,214, 39, 43, - 79,175,222,159,215, 89,124, 94,209, 18, 69, 77,178, 44,101, 50,153,186, 66, 36, 16, 4,161, 34, 73,166,232,194,117,158, 76,185, -254,153,127,131,155,187,239, 66, 84,118,200, 23,188,134,250,215,165,209,110,205,209, 26,147,103,216, 34,103,101,237, 44, 31,252, -209,191,228,171,223,254, 58,163,163, 67,126,247,127,249, 31, 72,167, 99,208, 6,157,165,108, 92,184,196,108, 58,101, 54, 30, 96, -173,166, 40, 82,116,158,113,144,205, 24,245,118,185,184,253,148,183,191,255, 75,180,151,150, 40,242,156, 32, 20,200, 48, 38,203, -166, 30,185, 43, 48, 66,208,238,174, 34,124,212,181, 68, 82, 72,129, 53, 94,243,100, 23,181, 32, 11,117,117,221,234, 38, 74,203, -174,124, 86,203, 32,244,179,135,216,242,243,174,246, 32, 9,218,206,117, 6,229,101,108, 64,203,156, 52,203,216,121,186,205, 27, - 63,184, 66, 40, 4,201,108, 70,220,108,115,239,243,219, 60,121,120,215,125,159, 17, 52, 26, 13,194, 48, 64,197, 9,183,111,223, -226,171,111,190,141, 80, 33,253,193,152,111,191,243, 38, 15, 31,109,177,183,191,141,213, 5,157,165, 37,146,169, 75,132, 28, 14, -135, 28,247,142, 49,186,160,217,104,178,127,112,200,153,205,179, 72,225, 58,137,105,158,122, 88,154, 43,178,213,185, 90,251,189, -190,145,158, 12, 96, 57,109,179,127,145,128,238,139,102,244, 39, 79,230,245,138,252,180,249,125,249, 51, 74,169,170, 74, 87, 62, - 83, 86, 8,215, 14,166,166,110,180, 53, 46,252, 73,191,125,201,254,149, 82, 86,254,116,170,106,138,202,130, 36,107,127,111,145, -229,100,201,148,225,192,225, 29,103,179, 25,133,206, 25, 13, 7,164,201,148, 44, 77, 49, 30, 62, 18, 55, 26,116,151, 87, 24,142, -122,228,227, 1, 81, 96,105,182, 98,218,237, 38,173, 86,131, 70, 35, 34,244, 23,106, 57,223,118, 1, 42, 46, 20,160,208,154,188, -208,243, 4,181,194, 7,172,120, 82,158,241, 54,140,178,245,107,106,191, 47, 79,217,179,241,136, 66,187, 20,171, 60, 75, 25, 14, -199,244, 7, 67,162,184, 65,220,104,184, 16, 27, 25,114,233,242, 43,108,158,127,153,227,254,136, 59,159,223,115, 68,174, 60,119, - 86, 66,127, 16,170,136,109,202,139,104,164,123,159,130,200, 37, 46, 41,233, 56, 4,175,222,184,193,231,119,239, 82,232, 12,140, - 69, 97, 9, 67,197,153,213, 13, 18, 84, 21, 27, 88,222, 44,245,141,238,153, 77,228,196,255, 43, 41, 9,165, 34, 14, 20,177,143, -171,109, 55, 99, 46,158, 59,203, 95,255,193,183, 33,106,114,107,171,207,107,239,124,143, 43, 55,110, 16, 91, 67,150, 76, 73,250, -125, 6,253, 62,159,222,185,195,253,199,143,120,186,179,203, 44,207, 92,187, 88, 8, 58,141,144,179,171,107,156, 59,179, 10, 64, -146,205,232,247,122,244,143, 15, 40,140,224,236, 75, 23, 25, 28, 29, 34,149,100,150, 76,152, 12, 71, 68,141, 38, 77,159,133, 29, -248,107,208, 88, 75, 20,199, 8, 36,175,191,249, 53, 70,147, 17,105, 50,165,119,176, 83,125, 62,101, 71,169, 90, 44, 79,128,126, - 78, 31,239, 74,230,244,208, 50, 60, 68,158,242,157,230,196,194,204,233, 11,221,243, 82,217, 56,197,157, 82,102,161,251, 3,213, -203,151, 47,178,177,182,198,246,246,182, 23,170,233, 10,185,236,216,247, 13,172,159,153,150, 48,160, 58, 20,164,154,167,155,211, - 53, 52,229, 47,135, 95, 86,172,172,157,101, 50,117,194,178, 58,142, 87, 40,197,217, 51,231, 57,119,241, 26, 71,251,187, 4, 97, - 64,239,232, 16, 99, 11, 26,205, 54, 2, 65, 54,155,157,114, 8,122,113,149,126, 90,229, 42,106, 34,184, 47,155,126,231, 58,127, -165,109,207, 29,198,243, 92,163, 2, 73,224,105,123,149, 2,191,178, 97,253, 69,151,225, 44, 48,211,235,243,243, 47,122, 25,149, -174,199,206,237, 98,214, 3, 83, 92,114, 91,196,160,127,204,184,119,192,224,176,199,209,238, 46, 79,239,124, 72,150,140, 73, 6, - 61,148, 10, 80, 82, 50, 27, 14,152,141, 71,238,179, 47, 52, 66, 41,116,145, 17, 73,129,102,134,176,154, 31,253,242, 15,248,214, -235, 47,241, 87,191,118,133,141,151, 54,216, 29, 36,232, 92, 87, 89, 11,227,225, 17, 7, 79, 31,162,243, 12,171,139,106,174,238, -174, 49,243,101, 32, 2, 78,213, 47,234,180, 70,106,110, 46,243,140,189, 29, 43,189, 45,160,228, 97,204, 61,242,162,246,205, 37, -170, 60, 12, 67,154, 81,204,155,111,220,224,151,127,229,199,252,244,103,239,114,251,230, 71,140, 70, 99,102,105, 78, 86, 20,100, -233,148,241,104,136, 54,150,225,104, 76, 20,134, 28,247,246,201,138,156,191,249,227, 95, 69, 32,249, 23,191,247,123,108, 61,126, - 64,103,121,133,206,242, 10, 71, 7,187,140, 6, 3, 63,230,115,119,228,120, 52,100, 54, 25, 51, 26, 14,152, 12,157,107,170, 28, - 77, 86,123,225,201,217,230, 2, 60,166,182, 41,214, 41,112,167,193, 98,158,231, 57,175,195, 99,234, 32,148,147,143, 83,127,252, -178, 98, 95,240,158,151, 27,108, 41, 6, 80,202,243,110,165,159, 7,107, 95, 73, 74, 31, 7, 57, 63,105,137, 90, 34, 91,185,192, - 42, 64,103,217, 92,100, 87, 34,246,188, 71,189,172, 50,148,116,214, 55,171, 53,147, 34, 35,203, 51,164,214,180,154,109,166,211, -137,131, 75,100,153, 15,160,113, 33, 19, 75,107, 27,236,236,110, 65,150,208,105, 70, 52, 26, 49,173,166,139,239,140,163,144, 80, - 41,119,113,121,161,131, 46, 61,229,218, 86,243,243,234,207, 42,188,230,226,216,212,225,113, 75, 90,215,124, 42,164,148,162,221, -140, 41,150,187, 28, 31,245, 25,229, 25,113, 28,131,177, 68,141, 46,171, 27,231, 89, 95, 93, 37,140, 66, 86, 87, 54,216,218,221, -229,233,231, 15, 25, 77,198, 20,121,129, 54,144,231, 69, 69,207, 19,114, 46, 76, 3,220, 97, 64, 73, 10,107,209, 89,142,140, 37, - 89, 54, 67,155,156, 65, 43,230,235,223,252, 22,239,255,233, 79, 72, 77,226,188,158,133,161,107,115,142,180,168, 94, 75, 61, 38, -176,126,125, 85,201,107,118,174, 76, 45,149,238,129, 82, 68,161,162, 17, 40,226, 56,162,221,136,121,233,236, 58,239,188,253, 85, -150,175,188,201,149,235,175,242,118,171, 73, 58,153, 48,218,219, 35, 29,143,153,206,102,140, 39, 99, 90,237, 22,211, 52,229,201, -214,150, 99,151,251,252,234,217, 44,193,218,101,148, 18, 52, 26, 45,174, 95,186,128, 21,154,100, 58,227,248,120,192,147,123,183, -152,142, 71,156, 57,191, 73,255,232,136,194, 67,137,242, 34, 39,153,102, 14,103, 41, 5,173, 78,135,162,208,196, 81,139,140,132, -187,119,111,113,253,141, 55,200,211,188,186,158,203, 3,104, 9, 98,114,112, 27, 65,133, 29,247,139,134,180,174, 74, 55, 88,167, -190, 47, 57, 90,246,217, 10,125,190,158,213,105,113,146, 18, 28,242,140,219,224, 36, 68,170,138,202,173, 5,218,152,103, 43, 90, - 33, 29, 90,245,194,217, 51,188,255,254,187, 30, 89,108,177, 86, 84, 60, 4,169, 2, 80, 17, 66,248, 52, 54, 81,111, 91, 46,160, -216,170, 77,126, 81,121, 44,124, 64,145,179,146,158,191,240, 50, 81,179,201,112, 48,196,154,172, 18,136, 34, 29, 98,121,121,125, -131,139,151, 47,241,217,167,239,177,189,245,168, 10,203,137, 27, 33,195, 94,223, 45,254,226,249,235,209,139,218,176, 11,239,180, -177,207,232, 15,190,208, 1, 87, 86, 77,213,154,227,172,178, 69,102, 16,161, 97, 99,125,149,163,163, 30, 89, 94,212, 47,246,191, - 96, 16,205,179,226,203, 47, 62, 5,188,224,141,160,204, 50, 87,188,242,214, 59,236, 60,121,128, 18,130,219,239,253, 41, 75,203, - 43, 24, 96,188,191,141,148, 17,121,146,112, 52, 26,209, 93, 93,198,160, 73, 39,125, 26,237, 46,224, 10,153,184,187, 68,220,234, -242,215,254,214,223,226,157,175, 92,162,227, 15,241,231,150, 2, 94,125,231, 77,222,251,253,159, 85,159, 85,171,179, 76, 32, 21, - 90, 74,180,244, 65, 84,254,208, 97,132, 66,218,130, 42, 80,161,126, 80,172,237,210, 14,125, 91, 99,231,215, 70, 81,162, 10,114, - 61, 37,177,208, 8,103,119, 43,243, 0,172,168,220, 81,165,191,189, 44,174,180,213,124,235,155,223,225,131, 15,222, 35, 77,167, -136, 32,102,117,237, 12,253,209, 49, 82,226,214, 86, 93,208, 63, 62,114, 78,155,167,143, 89,234, 46,241,173,111,126, 23, 33, 36, -255,244,119,126,151, 59,119,111,179,118,225, 10, 26,193,238,211,251,132, 97,140,144, 9,198, 20, 8,161,136, 26, 13,242, 44, 39, -157,142, 73,147,137, 11, 38,211,208, 63, 12, 64, 8,154,237, 14, 43,235,235,174,253,126,154,111,252,180, 22,251,105,222,242,250, - 97,224,121, 45,244,106,211,246, 27,232, 98,240,138, 88, 0,191,212,127, 54,244,193, 42,117, 95,161, 82,202,167,223, 24,239,177, -244, 9,109, 69,238,210,211,188,144,161,158, 27, 44,132,163, 4,151,139, 75,224,177,158, 82,202, 10,177, 90, 38,173,149,207,173, -140,182,179,198, 98,180, 83, 57,106,147, 17, 70,146,233,196,197,246,101, 89, 78, 50,153,204,231,102, 86,115,230,236, 69,122,189, - 30, 38,157,210,142, 3,218,173, 6,157, 86,147,118,179, 69, 51,106, 16, 6,174, 61,105,152, 87,219,198,227, 24,203,133,220,248, -204,242, 50, 46,181,162,125,213,211,154, 12,212,211, 29,220,215, 60,124, 32, 12,104, 54, 27,180, 59, 77,250,131, 4, 35, 53, 43, - 43,171,172,159, 61,203,214,206, 46, 59,123,123,238,189,149,161, 19,219,105,235,177,180,206,142, 37,213,156, 65, 80,126, 6, 66, -200,138,187,141,239,226,228, 89,234, 14,181,214, 96, 80, 60,121,242,152,111,125,227,155, 36,163, 1, 55, 63,254, 16, 81,228,232, -194,192,108,134,106, 52,252, 77, 49, 87,241,159,122, 16, 52,245, 81,204,252, 0, 23,133, 1,237, 56,164,211,108,208,104, 70,220, -184,118,157,255,224, 55,254, 46,151, 95,185, 65, 16,134, 88, 93, 48, 58, 56,100,251,193, 67,246, 14, 14, 56, 26,244, 25,140, 70, -196, 81, 72,183,213,164,208,154,227, 94,143, 52,115, 86, 40,165, 20, 45, 37,232, 54, 27,132, 74, 48, 26, 13,209, 86,112,118,117, -157,241, 75, 41,147,241,132,100,150,113,180,243,136,201,100,200,245, 27,175, 18, 6, 1,178,217, 97, 52,157,160, 84, 64,220,108, - 83,228, 5,171,235, 27,156,221,220, 68, 69, 13, 30, 63,184, 71,123,121, 5,169, 2, 84, 96, 8,194,152, 60, 75,221,231, 82,131, - 26,149,135,150, 64, 82,113, 4, 28, 1,195,111,123,165,218,184, 18,131,178,160,196, 61, 41,136, 91,172,206, 69,109,147,175, 87, -202, 44,204,211,235,215, 85,245, 57, 44,228,148,204,103,251, 75,221, 54,227,241, 8,107,153,107, 61,204, 60, 83, 62,110, 52,202, -243,196, 60,141,238,196, 33,226,228,115, 95,180, 50,218, 42, 38, 51, 12, 3,250,253, 17, 29,107,208, 58,247,137,104,165, 88, 83, - 34, 85,196,234,218, 58,247,238,222,117,190,115,147, 57, 30,124,163,235, 58,102,214,248,212,177,103,153, 8,207,221,212, 95, 80, -189,139, 47,240,254,191, 72, 59, 84,142,174, 28,122,212,133, 11,245,122, 61,154,205, 6, 81,100,153, 78,167,167,118,105,254,117, - 54,248, 10,253, 45,190, 64,173,111,249, 51,141, 76,193, 18,183,219,228, 72, 90,221, 46,201, 36, 97,185, 27,114,180,245,152,113, -239,136,168,209, 65, 97,153, 26,195,234,114,151, 65,239, 8,210,148, 34, 84, 36, 66, 18, 11,137,140, 20,249, 44,161, 17, 53, 88, - 90, 90,117,215,147,128, 22,208, 16,208,141, 36,155,151, 95,230,209,237,155,168, 32,164,189,180,142, 12, 34, 80, 33, 66,166,126, -189,151,104,225,102,201,218,147,230, 92,209,225, 14,174,202,199,237,212,139,181,197, 52, 70, 49,119,158, 8, 89, 19,160,136,197, -251,169,132,103,149,254,125, 33,177,214, 9,233, 22, 2,116,140, 91, 67, 63,255,252, 54,191,240,131, 95, 35,255,201, 79,153, 77, - 71,180,150,150,209,153, 33,153, 76, 40,138, 12, 99, 13, 89,154, 49, 30, 73,226,134,195,186, 54,162,128,255,249,127,255, 39,124, -252,209,251, 12,199, 19, 90, 75, 41,247, 63,187, 73,174, 11, 54,207,157,103, 58, 29,187, 22,252,160,135, 57,202, 80, 81, 3, 71, -112,201, 73,103, 57, 97,224, 58, 63,233, 44, 37,153,140, 29,179,129, 5, 65,193, 98,139,170,180,122,213, 23,225,211, 84,241,230, - 4, 49,238,180,139,164,126,120, 56,201,135, 63,217, 46,175, 82,175,106,208,155,210, 51,108,125,251, 86,212, 84,167,174, 29, 44, - 61, 71, 94, 84, 20, 57,234,173,118,127,161,203,154,232,174,200,139,202,166,229, 90, 76, 94, 61,232, 55, 45, 99, 32, 20,150,209, -200, 35, 82, 85, 76,160, 66,116, 94, 48,153,140,231, 64, 22,161,176,182, 96,237,236,121,134,227, 9,249,184, 71, 43, 14,232,180, - 27,116,151, 90,116,218, 45, 26, 81,132,146,110, 67,215, 94, 40,100,124, 53, 99, 44, 11,144, 24,131,157,167,166,249, 25,251,156, -225, 94,183,188,137,234,212, 90, 23,148, 41, 41,137,163,128, 86,171,201,100, 50, 67, 8,184,241,234, 13,158,238,236,186, 78, 64, -158,147,102, 57, 66,230, 85,107, 13,124,123,205, 31, 36, 2,143,232,173,130,112,164,187, 30,202,228, 38, 55, 2,208,164,201, 12, -209,116,239,155,176,150, 79,111,125,198, 43, 55, 94,229,179,219,183,208, 69,134,176,150, 73,145, 17,212,114,238, 23,170,243,250, -181,178, 80,189,205, 95, 75, 32, 37,113, 24,178,220,105,243,131, 31,252,128, 95,252,225, 15,121,235,171, 95,157,115,251,141, 38, - 79,166,124,126,231, 51, 30, 61,125,236,103,228, 9, 81, 20, 35,165,228,225,147,199,252,236,221,159,145,164, 41,218, 64,161, 11, -154,161,224,237,107,151, 89, 95,110, 19,133,138,115,103, 86,233, 13,198,140,166, 51, 46,158, 59, 75,175, 63, 96,107,107,143,172, -200,153, 14,123, 60,125,112,159, 55,191,246, 13,194, 64,177, 90, 44,211,233,174,178,180,186, 74,191,215,167,187,180,204,113,255, -152,157,251,119,137,163,152,241,120,200,215,190,253, 93,110,127,250, 33, 97,160, 16, 68, 11,225, 58,229, 53,222,108,196,228,121, -177, 48, 94,210, 20, 8, 31,136,227,224, 72, 94, 88,230,201,134, 86,204,163,103,173,173, 11,228, 56, 69, 41, 95, 27, 59, 85,213, -250,233,115,200, 5, 21,119,237,108, 80,210, 19, 55,214,215,216,218,217,229,168,215, 39,215, 5,218, 3,115,176, 22, 25,134, 8, - 21,250,124,250,249,140,189,238, 15,182,166,102,103,171,157, 28, 68, 13,213, 38,144,172,173,173,113,220, 59,102,253, 76,215, 57, - 82,128,220,183, 98,165,183,203, 93,184,240, 18,239,253,233, 79,208, 89,234,184, 14,194, 32,131,128, 70,171,197,209,193,129,123, -159, 78,137,168,123,225,134,126, 90,149, 94,155, 61,215, 99,115, 79,163, 97, 62,239,151, 91, 67,139,234, 13,157, 78, 19,148,114, -238, 20, 71, 28, 59,203,238,238, 14,105,154,249,238,199,226,251,242, 23,141,145,173,242, 29,172, 56, 33,196,164,218,216,202,131, - 92,125,125,113,158,246,128,214,198,121,242, 36, 97,243,202,171,140,134,199,204, 70, 19,250,219,143,144, 50, 68,197, 29,102,147, - 9,177,144, 28,238,238,208, 89, 90, 34, 53,160, 34, 73,220,108,146,102, 41, 65,208,172,116, 65, 15,118, 70,228, 97,131,175,191, -178,202, 76, 73, 44,150,245,182, 98,105,125,133,229,141, 77,250, 7, 59, 52,219,173, 74, 29, 95, 18, 66, 33, 64, 6,238,192, 91, - 81, 30,124,226, 34,126,253, 42,199,170,198, 66, 16,133,224,225, 99, 74,205,117, 61,162,114,249,186,112,167,146,223, 81,138, 29, -189, 14,207,223, 47,126,195, 23,118,174,121,241,213,190,214, 46,108,203,138, 6,255,245,127,247,223,112,255,193, 99,166,211, 25, -236,239, 34,149,192,234,204,195,119, 28,160, 41,205, 82,194, 80,210,104, 54, 64,103, 28,247, 15, 28,160,104, 54,227, 96,111,135, - 52, 77, 64, 88,182,182,158,160, 4,204,146, 49,214, 26,150, 86,214,220,129, 58, 79,145, 50, 68, 11, 91, 65,160,220, 37, 44, 73, - 38, 67,212, 75, 87,174,253, 86,189, 69, 88,254,190,172,184,235,201,107,167,169, 84, 95,228, 57,126,230,235, 44,182,153,234,233, -105,207,125,252, 19, 21,124, 61, 74, 20,223,150, 53,117, 17, 82,101,113, 91,100,202, 83, 59,185,153, 90, 53, 95,190,214,234,123, -237,220,190, 21, 74,133,180,218,181, 79,140, 37,203, 83,146,233,132, 65,191, 79,154, 58,239,171,227, 22, 27,214,207,108, 18, 68, - 49,147,254, 33,145,130,165,149, 46, 43, 43,203,180, 59, 77, 26, 97, 84, 29, 20,108,237,162, 43,202, 12,115,227,158,207, 66, 66, -154,135,197, 24,175,126,119,141, 0,255,189,214, 83,225,202, 83,226, 41,177,139,162, 84,183, 99,152, 76, 19,182,119,118, 29, 42, -179,166,145, 42,103,218,162,220,208,107, 93,147, 32, 8, 80,202, 93, 19,229,115, 47,223, 39, 91, 94, 15,218,248,150,253, 60, 56, - 39,155, 37,244,122, 7, 0, 76,135, 3,226, 64,210, 93, 90, 99, 22,183,170, 48, 2,251,140,255,154, 10, 77, 41, 43,223,245, 60, - 85, 47, 12, 20,237,102,131,127,255,223,251,117,126,243, 31,252,125,206,158, 61,131, 64,187,220,227, 60,101,116,120,200,222,163, - 39, 76, 39, 99, 86, 87, 87, 24,244,135, 12, 6,125,126,254,238,187,252,225, 79,254,136, 79,111,223,162,223,239, 51,203,115, 10, -109, 9,149,224,213, 43,151,176, 86,115,112, 60, 96,239,120,196,104, 58, 37, 8, 20,221, 86,204,230,198, 42,157,118,147,195,227, - 99,114,237,252,234, 73, 50,229,184,119,196,234,198, 38, 97,163,201,203,175, 92,227,232,168,199,229,171,215,216,221,221, 33,155, -165, 92,186,114,141,160,217, 38,144,130,175,124,237, 27, 12,122,125,118,183, 30,249,155, 94, 19, 40,229, 16,161,204, 53, 43,129, - 63, 56,151,239,121, 5,241, 40,237,162,158,218, 55,103, 9, 44,206,120,221,124,221,214,252,234,182, 90,228,202, 5,219,156,210, -122,175,171,122,235,237,247,234,113,165, 64, 73,133, 82,130, 43, 23, 95, 66, 74,193,131,135, 15, 43, 49,105, 57, 75, 71, 74,231, - 81, 22, 39,204, 65,181,131,197,220,130, 52, 31, 37, 61,111,131,205,243,204, 19,184,142, 25, 14,122,104,163, 89, 94, 61, 67,119, -249, 12, 81, 28,145, 76, 38,244,123, 71, 20,121,138, 49, 69, 37,218, 12,155, 77,134, 71, 71, 53,221,128, 61,213, 14,251,194,249, -243,115,138,119,235,199, 80,226,207,225, 46,159,119, 97, 68,237,192,227, 30,117, 58,157, 80, 20, 57,215,175, 95,231,204,217,117, -164, 4,173,115,162, 40,174, 80,207, 66,252,249, 28,237,167,161,110,169, 52, 26,162,154, 19, 63,239,223, 42,129, 78, 8,159,214, - 38,232,172,158,165,181,178, 6, 24,210,100, 74, 51,110,179,255,232, 46,194, 8,116,145, 18, 55, 91, 20, 89,130,140,154,172,110, - 94, 32, 79, 18,166,211,169,235,164, 26,215, 73, 84, 97, 68,216,108,177,177,121,129, 75,175,190,205, 36, 41, 24,231,150,112,165, - 65,174, 5,137,129,105, 46,209,153, 32,153,142,177, 90,243,248,179, 79,176,217,204,143,103, 42, 28, 99, 21,121, 45,253,136, 80, -224,177,224, 42, 64,249,252,244,102,171, 5, 82, 17, 55,155, 72,239, 80,209,126, 92, 20, 70,145,127,125, 10, 21,200,170,219,105, -235,234,249,170,179, 33, 43,240, 66,185,129, 10,191, 62, 73,165,252, 56,179, 67, 97,220,251,190,183,189, 69,154, 78,201,139, 2, - 37, 93, 7,180,240,188, 15,107, 33,140, 20,175,189,241, 6, 55,110,188,134, 69,241,217,231,159, 97,116,193,242,234, 58,211,233, -136,229,181, 51,140,135, 61,198,227, 33,129,116,118,235,201,100,204,100, 52,154,143,162,152, 51, 89,202,123, 76, 27, 67, 80,103, -115,139, 19,155,105, 57,124,175,111,188, 11,109,140,231,136, 93, 22, 99, 86, 69, 37, 26, 57,141,187,187, 32,128, 57, 37,127,189, -254,252,202, 25,123,229,181, 53,134,236, 68, 27, 87, 91,235, 33, 6,207, 17, 30,149, 17,175,245,248,215,242,134,247, 85, 71, 57, -115, 15,172,229,240,120,159, 36, 73,137,226, 6,179, 36, 97, 58, 25, 59, 94,175,157,103, 33,183, 59, 75, 68,113,131,195,221,167, - 4, 66,179,188,220,101,101,185, 75,171, 21, 19,120, 14,118,125, 97,181, 98, 49, 37,171,156,107,186,234,188, 38,134,179, 22,171, -107,170,247,133, 74,140, 5,193,199, 2, 81,201,131, 83,130, 48, 96,169,219,113,185,205, 70, 34,164, 34,203,114,148,146, 85,100, -168, 91,103, 10, 55, 19, 5,148, 31, 97, 72,165, 8, 84, 48, 63,196,251, 11, 73, 41,229, 68, 44,170, 84,193, 11,178, 52,163,221, -110,131,133, 44, 25,211,159, 12, 89, 90, 94, 33,110,181, 16, 24,116,220,194, 26, 75, 97, 10,194, 48,152,135,243,148, 23,185,177, -181,106,109,174,246,174,115, 9,148,128,203,155,155, 12,182,158,146,123,228,230,193,161,131,140,116,219,109,100, 20,242,249,195, -135,252,225, 31,255,132, 39,219, 79,201,178,140, 44, 75, 73,115, 77,150,166,228, 89,142, 13, 36, 86,132, 44, 47,117, 73,211, 4, - 37, 27,180,226,152, 70, 28,209,104, 70, 24, 11,163, 36, 71,143,166,116, 91, 49,223,253,246,215,248,224,227, 59,236, 29, 15, 41, -140,100, 58, 26,240,254,207,126,202,149,235, 55,200,181,229,242,213, 87,248,227,255,239, 95,113,225,202,117,186, 97,192,165,107, - 55,184,127,247, 19,194,112,153,159,253,228, 15,217, 56,115, 22, 37, 36,218,186,195, 83,238, 55,119, 87,145, 91,194,208,205,160, -163, 40, 66, 23, 5,141, 70,236, 14,155,194,131,143,170, 46,137,172,196,139,243, 89, 97, 57, 71,180,167,116,144,197,124,211,197, -158,110,140, 19, 98, 65, 40, 87, 86,233,115, 29,131, 19, 70, 6,202,169,118,239,223,191,231,179,204,221, 34, 47,132,131, 23,133, -173, 54,160,124,133, 35,158,233, 16,212,227,148,235,243, 78,123,170, 56, 11,138, 66,211,106,181,156,144,209, 31,118,134,253,125, -191,168, 74,199, 0,151,101,165, 41, 43,221,137, 45, 10,151, 88,101,236,159,105,142,126, 18,122,244,252,118,250,191, 30, 3,174, -126,207, 22,133, 65, 74,151, 93, 48, 30,143,185,121,243, 38,113, 28,179,113,102, 29, 41, 87, 49,154,170, 77,255,103,174,212, 69, -221,208, 43,106, 35, 20,177,120, 37,136,231, 24, 41, 78,142,213,253,245, 16,117,215,185,242,181,111, 51, 60,220,103,116,116,196, -202,230, 57, 30,220,254, 24,165, 11,180,201, 88, 57,115, 22,109, 4,205,238, 26, 43,103,207, 96,108,200,116,154, 16,132, 19,172, -182,206,117, 35, 11,130, 56,118,192,153, 48,102,253,220, 26,237,165, 37,102, 89,193,126, 63, 39,138, 35,140,129, 70, 67,210, 89, -109,179, 52, 62, 67, 62,155,209,237, 44, 81,140, 7, 20,105,130, 53,134, 48, 12,208, 57,152, 60,243,133, 2, 85, 97, 87,142, 31, -221, 90, 38, 43,253, 78,150,166, 85,155, 62, 8, 2,172,177, 85, 55, 90, 5,110, 13,146, 42,116,155,165,209, 8, 99, 64,120,123, -110, 41,106, 60, 69,120,234, 66,179, 28,233,110,243,236, 6,241,210, 6,255,236,255,252, 39, 8,161,201,103, 89,117, 24,104,119, - 58,140,199, 99,180,182, 4,202, 29,220, 55,214, 55,104,119,187, 92, 86, 1,191,246,171, 63,226, 95,254,139,255,219,165, 8,182, -219,244,143, 14, 49, 90,163,243,130,194, 20,110, 68,154,103, 72, 9, 70, 23, 46,209,174,222, 89, 43,159,159, 54,174,253, 94, 79, - 36, 83,190,181, 90,199,232, 85, 21, 93,109, 3, 44, 55,159,231, 85,238,162, 6,129, 81,114,206,237,173, 31, 14, 78, 30, 8, 78, -250,149,235, 9, 79, 39,189,236,117, 31,226,169,145,173,190,213,126,242,241, 79,235, 48, 72,233,136, 70, 89,158, 19,120, 5,124, -150,164, 36,233,148, 52,211,132, 81,132, 46,114,210, 52,113,111,180,213, 94,176,103, 89, 89, 89,227,210,203, 87,249,236,206, 77, - 58,221, 54,173, 70, 72,187, 17, 18, 71, 17,129, 82, 56, 26,182, 19,137, 85,117,148,183,161,105,239,229, 46,219,235,101, 5,228, -158,167, 88,244, 21,215,255,123, 34,145,232, 52,210,159, 22,212,218,146, 49,205,246, 58,147, 89, 70, 62, 75, 61,218, 83, 35, 2, -239,157,182,154,208,131,121, 44,206,242, 87,142, 52,100, 20,184, 86,150,231, 63,231,121,238,181, 8, 22,130, 0,165, 2, 66, 11, -195,193,128,110,167, 3, 89,130,206, 82,178,100,198,245, 55,223, 98,231,222, 93,138, 32, 68,133, 1,141,176, 81,221, 17,133, 46, -144, 34,170, 4,114,162,242,195,155,133,248,199,210,153,144, 21, 57,135,251, 7,220, 44,114,250,163, 49,251, 7,135,180,218, 45, - 54,215,214,249,221, 79,254, 37, 63,123,247, 93,166,211, 9,227, 36, 33,203, 10,154,173, 46, 87,111,220, 96, 52,153,144,229, 25, - 71, 71,199,244, 6, 3,126,225, 7, 63,100, 99,165,203,254,227,155,196, 50, 32, 14, 37,145,146,228,105,142, 18,130,165, 78,139, - 70,220, 37, 8, 20,235, 43, 5,157, 78,131,219,159, 63,230,179,135, 91, 32, 91, 36,211, 41,159,127,118,135,201, 52,161,213,110, - 66, 16, 48,236, 31,113,241,226, 69, 30, 63,184,203,183,190,245, 3,100, 16,241,207,254,217,111, 99,172,118,202,215, 60,199,104, - 77,238, 15,129,101,213, 87, 20, 57,121, 14,237,118,147, 52,203, 8,163,200, 17, 14,131,192, 87, 56,146,181,149, 21, 38,137,211, -109,140,198,227,234,253, 50, 70,186, 60,233, 5, 37, 57,207,180,180, 23,174, 23,223,193,114, 27,223, 98,219,125,161, 91, 34, 37, - 42, 80,180,162,128,239,126,251,155,188,247,193,135, 12, 39, 9, 86, 4,142,247,239,235,110, 21, 5, 40, 21,121, 13, 8,115,101, -189,209,158,246, 53,191,134, 75,109, 8, 44,104,154,170,231, 95,223,136,157, 0,117, 62, 2,156,143, 14,204,188,227, 85, 35, 61, - 2, 36,147,233, 51, 4,190,231, 89,115,159,217,108,149,120,225,102,126,234, 33,224,207,209, 22,175,119,169,140, 41, 59,137,150, -162,112,215,198,116,154, 96,140,173,220, 61,127,174, 89,186,239,174, 11, 36,194,202, 74,201, 94,111,167,151,133,133, 16,206,237, -229,148,228, 39,170, 83, 97,231, 98, 52, 41,233,172,173, 97, 76,193,222,195,207, 89, 61,119, 17, 91,104,206, 94,184,196,254,195, -187, 68, 81,131,163,189, 61, 86, 55, 47, 96,116,206,195, 79,110,162, 34,201,250,185,151, 89, 93, 63,203,184,191,207,100, 60,116, -252, 0,109, 43,161,106, 40,192,106,141, 45,220, 1, 53, 79,115, 32, 36, 8, 37,157,149, 38,179,233, 42,211,126,143,246,202, 10, -199,187, 79,156,251, 7,193,108, 60, 69, 98, 92, 54, 70,161,107,196, 80,119,176,212,133,239, 38,149, 56,235, 64, 57,112, 13, 32, -164,139,238, 46, 5,213, 97, 20,185,255,247,150, 81, 21, 40, 2, 17, 98,140, 70,171, 0,105, 13,166,200,253, 24,215, 44,194,161, -172,197,216, 2, 99, 21, 6, 75,127, 48,229,124, 39,163,217,140,120,237,181, 55, 9, 90, 75,108,111, 61,230,104,127, 27, 99, 52, - 65, 24,144,101, 51,164,116,135,138,217,116,202,168,223,231,157,111,124,139,143,254,183,223,198, 90,184,248,242, 53,142,222,219, -167,217,110, 19, 70, 17,211,233,148, 36,153, 56, 97,120, 32,200,178,194, 61,119, 31,220, 37, 76, 77, 11, 35, 4,113,179, 69, 32, - 2,133, 40,149,226, 82,122,239,242, 34,117,169,218,132,107,113,171,167, 85,229,167, 17,224,202,197,164,220, 96,203,141, 88, 41, - 89,109,108,229, 70, 95,229, 85, 63,227,145, 21, 21, 69,170,172,252,235,234,198,250,205, 91,175,238, 22, 84,214,222, 27, 92, 23, -190,168, 42, 69,206,162,133,107,143, 34,160,219, 94, 34,104, 11,158,110, 61,102,117,253, 44,218,228,236, 60,125, 82, 29,110,178, -204,217,121,150,151,150, 81, 65,192,173,155, 31, 99, 77,138,141, 44,214, 58,162, 91,154,107,164, 84,142, 57, 46,231,115, 68,107, - 45,218,251,208,141,246, 27,123, 41,152, 43,219,154, 85,170,218, 41, 18,154,103, 87,153,121,219,188, 70,166, 51,101, 68,169, 49, - 52,226, 54, 82,134,228,249,196,159, 94, 93,197,168,252,169,181, 12, 71, 81,202,231,252, 26, 91,101,198,131,160, 17, 71,152, 60, - 7,165, 92, 42,151, 15,171, 40,133, 91, 65,224, 42,181,181, 70,200,103, 79,134,104,173, 25,245,123, 8, 1, 27, 47, 95, 67,250, -214,123,150, 58, 4,168,171, 36, 13, 34,116,177,139, 86, 59,148,157,148, 2, 93,122,182,189, 34,118,126, 80,131,157,195, 67,158, -236,237,242,217,131, 7,172, 46, 45, 33,138,130,255,245,227,143, 73,242,148, 98,150,146, 22, 57, 69,174,137,162,128,183,222,120, - 3, 29,181,153,152, 67,194,216,176, 26,182, 89,218, 56,199,225,209,128, 39, 79,119,201,199,199, 20,217,152, 70, 20,209,105, 55, - 57,183,190,138,176, 14,189,187,123,144,146,105,205, 74,183,197, 82, 28,241,205,183, 94,101,181,219,229,167, 31,222, 65, 55, 90, -204,166, 83,118,158, 62,100,216,239,243,221, 31,252,144, 44, 77,120,252,248, 1,191,248, 75, 63, 38,108,181,184,115,247, 54,151, - 95,121,141,157, 39, 15,171,249,110,217,121, 85, 82, 85,160,150, 82,195, 48,153, 76,231,170,120,165,136, 27, 49, 70, 55,153,165, - 51,166,179, 41, 81, 24, 58, 38,130, 15,143,113,215,181,155,249, 9, 69, 85,221, 63, 27,200,100,107, 21,123,233, 27, 63, 73,162, - 43,157, 20, 78,132,134,112, 20,197,149, 78,155, 31,126,239, 59,124,116,243, 14,131,233, 20,171, 66,132, 21, 8, 43,144,210, 98, - 69, 76,220,108,186,138,199,138,234,103,237,137, 68, 58, 83, 63,132,207, 25, 59,243,195,132, 20,167,186,102,234,136,213,231, 49, - 51,234,247,247,105,157,195,211, 32, 90, 95, 70,241,254,236, 33,233,197, 62,254, 47, 61,203,174,117, 28,231,207,207,187, 88,140, -121,198,150,248,103,241,203, 47,190,198,121, 22,134, 16, 2, 43,221,102, 47,101,224,148,224,117,210,154, 45,199,120, 69,181,151, - 11,127,240, 52, 62,115,161,189,186,138, 10, 26,220,255,248, 61, 90,157, 46,253,253, 29,132,216,198, 10,201,202,153, 11, 76,123, -251,132,129, 96,210, 63,118,247,252,185, 77,162,110,151,217,116,134, 72,199, 36,211, 25,130,192, 37,160, 69, 49,177,243,249,209, -235,205,104,228, 46,164, 42,159, 25,218,109, 24, 79, 50, 38,135, 41, 42,118,214, 57, 21,199, 68,237,101, 12,194, 59, 44,114,162, - 40,164, 72, 83,135,254, 45, 59,184,158,211, 96, 60,215, 71, 5, 1,198,111,212, 69, 49, 71, 99, 75,159,215,174,117,225,136,164, - 30,255,109,180,174,116, 89, 74,185,215, 30, 70,110,141, 51, 37, 56, 74,107, 87,212, 21, 5,162, 46,100,182,198,233, 38,164,229, -235, 95,255, 14,157,206, 18,147,153,230,224,184, 79,239, 96, 31, 97, 5,179,116, 70, 20,197, 76, 38, 51, 47,230,134,193,112,192, -112, 50,230,191,253,239,255, 71,238,125,126,135,222,225, 49,221,253,125, 90,173, 14,195,126,143,241,120,236, 14,181,218,197,180, -106,159, 63,159,231,218,239,115, 18, 35,234,150, 60,197,198,185, 11, 4, 82, 4,160,202,198,167,153,243,144,235,189,250, 90,251, - 93, 49, 79,249,122,222,134,126, 90,197, 93,138, 70,194, 48,244, 11,154,160, 40, 52, 38,207, 23,114,214, 23,226, 26, 79, 40,231, - 23,199, 28,139,194,187, 82,154,163,164,243, 67,159, 84,226,155, 90, 96, 76,153,167,155,123, 10,157, 41, 12,104, 81, 5,207,191, -116,238, 2,189,254, 17,107,235,235,228,121,206,206,206,150,159,119,105, 39,188, 80, 1,215,175, 93,231,168,223,227, 96,127,143, - 64, 65,187,213, 38,110, 68, 72, 37,200,178,212,193, 39,146,128, 78,179, 73, 28,187,217,100, 25, 19,171,181,169,170,101, 93, 19, - 34,158,156,139,215,233, 78,243,150,169, 55, 57, 9,129, 16,238,243, 82,101, 84,162,193,251, 73, 61,224,194, 90,116, 97,216,124, -233,101,238, 61,126, 74, 81, 20,200, 32, 64,168, 16,107,203,155, 88, 33,101, 88, 45, 44, 81, 20, 57,135,130,183,247,149,239,191, -138,156,216, 43, 68, 96,204,148, 44, 75,189, 16,205,137, 81, 98,165, 72,103, 99,180, 41, 48, 70,163,132, 37,153,140,233, 46, 45, -179,186,188,196, 36,205, 80, 50,168, 16,153, 74,134,228, 58, 67,226,102, 82,185,201, 17, 82, 18,169,208,205,169,252, 60,185,228, -166,107,107,121,247,227, 15,152, 78, 19, 86, 87, 86,248,224,253,119, 25, 13,199, 20, 58, 7, 93,208,105,183,120,233,194, 75, 92, - 60,127,142,118,167,201,210,250,101,254,167,223,254, 63,104,118,151,208,198, 48,153, 76, 41,138, 82, 45,170, 41,146, 17,103,215, - 26, 46, 83,249,224,144,187,247, 30,178,220,237,162,117,238,222, 39,169,220,162, 32,157, 80, 44, 14, 67, 46,158,223,224,179,135, -219,200, 80,145,205, 82,164, 28,241,199,127,248,251,252,250,223,254,123,188,252,202, 53, 62,187,127,143, 70,239,144,180, 48,204, -210,132,233,100,226,112,165,122,174, 87,112, 52, 68, 93, 89,220, 44,208,104, 52,176,214, 18,199, 49, 66, 56, 37,171,197, 18,199, -145, 79,254, 26, 19, 4,129, 11, 34, 18,130, 44,119,169,104, 69, 81,182, 6,213,124,113, 51,178, 2,209,216, 19, 40,247,122,103, -173,172,152,141,152,183,106,141, 23, 38,158, 61,179,206,215,223,124,157, 91,119,239,178,219,239,147, 89, 65,216,140,209, 58,132, - 44,199, 20, 1, 42, 8,208, 24,108, 97,106,194, 61,255, 27,169, 28,239,223,207,252,109,158,213,194,106, 36, 82,168,154, 38, 75, -204,133,172,214, 98, 69,173, 34,178,207,186, 35,202,123,184, 12,177, 56, 77,188,251, 34,150,198,194,198, 40,112,250,144, 47,216, -204,203,106,200,242,124,124,246,151,109,191,215, 93, 68, 95, 22,216,245,162,224,172,250,103,233,227, 13,221,104,194,135,163,224, -215, 6,161, 66,164, 10,161,116,176,148,104, 81, 99,145,166,192, 26, 85,141,194,140,119, 53, 88,105, 9,194,136,165,245,115,204, - 38, 99,116, 94,112,238,205, 55,152, 77, 71,216, 40, 66,228, 5, 59,119, 63,197, 26,104,182, 87,152,142, 6,124,229, 87,255, 38, -227,222, 33,105, 50, 97,178,179, 75,119,117,133,181, 11, 23,137, 59, 29,246, 31,221,197,164,137,235,248,165, 5,251,187, 91,172, -172,174,209,232,116, 24,141, 20, 90, 7, 68,205, 54,231,186,109,134,163,130,145,214,180,219, 93,154,221,149,106,108,154,231, 5, - 86, 91, 10,107, 80, 50, 64,121,231,147, 20, 1,214, 26, 47,240,149,126, 68, 3, 22,231,112, 10,130,176, 34, 19, 10, 33, 80, 65, -232,218,240, 85,241, 36,208,186,112,227,197, 44,247,118, 49, 93,105,205, 92,112, 16, 8,169, 8, 99,133,201, 51, 76,145, 98,116, -128,209, 2, 83,192,104,146, 34,172,229,165, 75, 87,249,236,243, 7,124,252,241, 7,236,237,239,145, 22, 5, 73, 50, 67, 10, 8, -125, 1,100,140, 65, 5, 1,119, 63,187,197,209,225, 49,195,222, 33, 82,186, 8,235,217, 44,113, 17,181,182,168, 52, 83,218, 7, -220, 96,172, 87,223,251, 14,133,181, 21,138, 45,110,180, 72,179, 28,117,249,198,107,191, 85,250,187,149, 10,188,202,208,253,107, -173,168,130, 62, 74,131,123,125,206,247,188,121,250, 73,128, 76, 85, 61,215,190,182, 96,107,170, 61,110,213, 70, 62, 97,161, 19, - 39, 50,209, 23,103,201,243, 27,110,193, 67,191,224, 63,180, 11, 17,178,210, 47,170,229, 99, 27,111,105,123,243,198, 27, 72, 20, -131, 97,159,132, 80,116,139, 0, 0, 32, 0, 73, 68, 65, 84,227,163, 3,142, 14, 14,232, 31, 29,146,207,166, 4, 50,224,210,197, - 75,156,191,112,158,163, 94,143,100, 50, 70, 97,104,196,129, 59,241,154,162,170,200, 10, 93, 48,153, 76, 24,142, 71,100,190,106, -183,214,121,192,243, 44, 35, 77, 83,210, 44,119, 89,187,185,118,179,223, 92, 59, 31,117,225,226, 80, 11,237,189,235,198, 96,141, - 83,227, 87,194,186, 42, 11, 93,160,125,178,154,174, 14, 5,110, 65, 52,198,210,238,174,178,179,127, 72,174,139, 57,113, 72,133, -126,214,230, 90,238,145, 71,123, 42, 37, 17, 74, 18,197,113,101,191, 42,219,159, 11,109,221,170,171,224, 90, 74, 69,158, 19, 80, -176,183,183,205, 44,205,220,141,101,253,236,216, 95,188,237, 86, 19, 25, 40,164,114, 55, 83,171,213, 34, 12,189, 8,211,186,249, -151,242, 32,135, 56,142,104, 54, 34, 90,141, 38,141, 40, 34,240,115, 51,172, 33, 77,198,220,191,119,143,217,108,198, 74,183,197, - 27,215,175,242,230,107, 55,184,112,126,147, 78,171,233,248,237,195, 33,135,227,130,135, 15, 31, 49, 75, 51,198,163, 17,147,201, -152,241,104,236,197, 38, 67, 38,211, 9,253,227, 67,199,203,247,215, 76,111, 48,160,223, 31,160, 45,196, 81,228,240,187, 8,154, -205, 38, 42, 12,201,138,130, 48,144, 12,134, 83, 76,161,209,185,198, 34,120,252,228, 1, 54,136,233,174,175,241,224,225, 3, 64, - 48, 30, 13,233,237,239, 82,164,169,231, 41,168, 42,107,160,209,104, 84, 93,153, 32,112,135,208,208,107, 28,242, 60,159, 7, 12, - 57,110, 49,194, 7,232,148,184,226, 82,224, 89,230, 0, 0, 14, 12, 36,231, 73,111,167, 77,138,133, 56, 49, 78, 21,243,141, 87, - 74,119,224, 14,162,136, 44,203,153, 36, 9, 91,135,199,164, 86, 16, 53, 91,196,205, 54, 97, 28, 59,129, 81, 28,251,216, 74,223, - 6,183,194,181,176,253, 3, 75,165,124,165,231, 84,197, 85,160,141,168,161, 94,173,255,243, 74, 64,231, 47, 90, 97,231, 10,237, - 83, 52, 59,245,195,239,151,154,149, 63,103,147,175,218,210,242,249,246,173,210,226, 36,236,159,127, 51,127, 33,224,237, 4,112, -235,203,188,150,231, 30, 0,228, 92,208, 37,202,116, 71, 41, 64, 73,148,138,170,170, 55,108, 52, 8,154, 13, 84, 20, 35,195,192, -117,102,165, 68,149,109,121, 51,223,228,100, 32,233,172,108, 32, 27, 77, 58,235,155,100,227, 33,237,165, 53,198,211, 41,217,168, -143, 21,130,217,112,136, 20,176,122,225, 42, 27, 87, 94,225,209,167, 31, 33,180,211,207,172,159,217,244,221,165,130,209,254, 62, -221,245, 77,164, 10, 72,210,148,184,217,228,229,215,191, 74, 24,197,164,105, 70,163,209,224,194,185, 37, 38, 19,195,112,148,145, -207,114,172,143, 91, 61,222,219,101,251,243, 79, 48,121, 6, 90, 59, 8,141, 53,196, 97, 8,194, 86,135, 20, 33,157, 85, 57, 8, - 84,117, 79, 24,173, 43,135,148,214,186, 74,232,196,111,226, 69,238,198, 99,110, 63,243,185, 18,254,250, 45,113,225,194,167,117, - 6, 97, 80, 27,255,136,170,163,168, 66,183,166, 5, 65, 64,179, 33,184,247,120,139,247,223,255,144,189,221,109,142, 14,246,232, -245, 29, 55, 33, 77,103,149,203, 35,142, 34, 94,126,229, 85,150,186, 49,121, 50, 98,150, 27,218,157, 46,107,235, 27, 28, 29, 29, - 19,133, 17,131, 97, 31,172, 33, 73,146,103,192, 81,243, 9,128,171,194,195,176, 65,216,104,146,103, 41, 65, 16,198, 78,128, 83, -218, 5,132,192,230, 26, 99,115, 71, 1, 50,174,250, 21, 66,248,225,252,226,156,238,121,204,248,250, 77, 80, 23,183, 21, 90, 47, -204,190, 69,237, 2,175,186, 2, 53,181,117,189,125, 78,109,211,182,214, 1, 49, 42,158, 86, 13,112, 33, 42,240,194,252, 20,190, -224,163,247, 11,166, 19,139,233, 10,184, 20, 6, 49,233,108,198, 39,159,189, 79,154,206,176, 58,195,100, 83,110,188,114,149,102, -163,133,214,150,199, 79, 31,243,116,123,155, 60,155,177,212,109,113,245,213,183, 72,124, 14,186, 49, 5,195,254,144,201,112, 76, - 16, 69,142, 66, 54,155, 49, 61, 56,102, 50,153,177,178,178,228, 17,180,174, 26, 52, 69, 81,145,226,180, 93,244, 81, 86,190,124, - 47, 90, 18,178,166,103, 0,247,103, 85,242,130,152,211,198,124,240,130, 16,146,118,103,133, 36,205, 25,142,134,174, 77, 30, 70, -168, 40,244,226,172, 16,109,164, 15,209,112, 39, 89,225,185,236, 90, 23,196,113,140,146,178, 26,143, 84,135,176,210,235, 31,134, - 24, 93,144,102, 51, 66,107, 57, 60,220, 39, 77, 83,172, 17, 21, 79, 95,161,153,142,134, 28, 8,151, 81,254,242,229, 43, 72, 4, - 71,131, 1,105,234,110,182, 86,179,129, 14,138,234,115,141,163,144, 70, 20,209,106,196,124,247,187,223, 37, 75, 51,126,254,238, -207, 24,245,143,105,168,130,235, 87,206,243,202,249, 51,108, 29, 30,145, 23,154, 70, 28,161,243,132,233,172, 96,150,103, 96, 12, -253,241,132, 34,137,152, 76, 38, 20,214,144,165,169,203, 27, 46,124, 5,130, 11,213,136, 59,174,170, 49, 86,147,204,114,119,125, - 97, 25, 14,157,194,180,213,137, 9,136, 24,141,134, 52, 26, 77,132, 20,196,113, 72,183,221, 96, 80, 76,208, 69,198, 44,113,168, -201,119,127,246, 39,124, 43,250, 1,107,107, 27, 28, 30,236,185,249,160, 46,136,194,144, 52, 75, 1,136,227, 24, 89,184,215, 26, -199, 49, 74,185,112,146,102,163,193,108, 54,171, 14, 82,113, 28,179,178,186,206,104, 52, 34,148,146, 8, 8,131,128, 52, 73, 72, -114,141,191,236,137,163,168,186,151,178, 44,199, 10,119,143, 73, 37,145,126,102, 47,125, 56, 69, 57, 58, 42, 89, 12,101, 28,170, -170, 34,140, 69,149, 3, 80, 8,193,214,113, 31, 21, 54,104,117, 59,116,186,109,150, 90, 45, 90,157, 46,143, 62,191,207,104,212, -131,169,152,207,201,133,196,228, 57,214, 80,177,237, 43,104,139,160,210, 70, 24,171, 48,122, 14,198,113,247,167,245,154,191, 57, - 23,162, 92,248,240, 12,138, 50,201,144, 90, 43,127, 49, 55, 91, 84,179,133,178,242, 63,181,162,149,254,103,202, 13,236, 57,221, -247,122,119,172,100, 74,252, 69,167,170,125,153,217,252, 11,109,194, 82,156,104, 41,216,121,242,156,152,167,198, 9,161, 28,102, - 53,142, 8,154, 45,154,173, 22, 81,171,229, 73,147, 25,217,116, 74,150,140,201,237,204,123,177,221,230,232, 75, 42,186,235,231, -152, 76,199, 60,250,232,167,180, 90, 93,198,189,125, 10,157, 49, 62, 60,162,187,190,142,144,130,229,179, 87, 65, 24, 76,158,177, -121,233, 34,187,143,238,209,108,116,232, 77,166,152,108,138, 4,166,211, 33,218, 66, 97,157, 16,236,120,231, 41,201,184,143,146, -138,102,167,203,176, 55, 96,187,213,118, 5,139, 17,164,238,198, 66, 2,157,149, 85, 84, 16, 17, 6, 1,133, 79,229, 67, 24,138, - 44,243,240, 49, 75, 24,134,100, 89, 70, 24,134,104, 63, 94, 20, 82, 16,133, 81,165, 87,146,158, 70,170,141, 65,133,110,175, 11, -130,128, 80,132,206,146,102, 53, 58,119,100, 79,112, 40, 95,155, 25, 71,200, 11,156,198, 8,223,209,116,113,180,129, 15, 35, 50, - 20, 89,206,163, 71,143, 24,140,190,206,159,190,251, 49, 23, 46, 93,102,118,119,226,214,158,188,192, 8,227,175,117,235, 58,169, - 82, 48, 29,245,185,122,233, 58,127,245,135,191,202, 44,115,227,197,155,159,126,204,253,207,239, 48, 73, 18, 26, 81,196,160,215, -175, 88, 78, 56, 3,245, 34,108,202, 58, 36,144, 12, 67,178, 44,117,194,191, 43,175,191,245, 91, 65, 24, 16,180,151,120,235,251, - 63,230,245, 95,248, 53,246,182, 30, 86,115, 3, 74, 48,138,243,117,184,139,197,183, 13, 79,170, 88, 79,206,181,235,109,166,250, -102, 95, 46, 46,246,148, 25,147,168,230,187,170, 38,124,153,131, 48,194,192,205, 23, 85,149,197, 46,170,141,201,214,172,150,198, -204,189,233,139, 93, 3, 81,117, 6, 92,165,238, 78,101,145, 10, 88,105, 53,105,197, 33, 87, 46, 94, 98,169,187, 68, 20,198, 52, -154,109,158, 62,221,102,119,119,135,253,189,167, 36,211, 17, 75,203, 93,222,250,202, 91,116,186, 45, 14, 14,247,221, 38,173, 11, -154,113,131,165,165, 54,173, 86,147,241,100,202,100,154,160, 84,128, 46, 44,179, 52, 37,203, 50,144,130,188,200,125, 24, 70, 70, -150,230,164,121, 65,158,187,232,202, 34,119,155,143, 46, 52,186, 48, 30,242, 97, 42,219,155,214,102,129, 29,160,125,212,105,245, -103, 94,192, 24,197, 45,130,176,197,214,206,182, 23,248,153,202,210, 38,164, 32, 12, 99, 98, 31, 86, 34,149, 34, 12,220,133, 27, -120,117,186, 53,238, 51, 40, 85,242,117, 97, 99,149, 56, 22, 56, 33,201,100,116,204, 44,153,186, 19,175, 80, 85,222,186,107, 51, - 75, 79,251,115,254,252,179,107,171,188,245,234,117,214,151,187, 40, 44,179, 52, 67, 96,137,194,144, 86,163,193, 82,183,195,234, -114,135,223,248,141,191,199, 47,255,240,151, 89, 91, 59,195,183,190,254, 13,152, 77, 32,157,241,232,233, 54, 27,107, 93, 90,113, - 68,111, 56,226,225,214, 46,211,201,148, 89, 58,227,184,119,204,222,225, 17,123,131, 9,195, 73,202,241,209, 1,121,158,187, 27, -171, 40,156,106,212, 24,114,237,102,113,113,224, 5,163, 30,195,235, 33,194, 24, 11,147,201, 20, 16,100,105,142, 53,174,237, 23, -248,152,222, 32,144,244, 7, 83,255,179, 78,148,147, 37, 41,201, 52,161,213,110, 81, 20,206,179,159, 12,123,254,125, 82,213,184, - 69, 74, 73, 24, 4, 11,157, 37, 37, 37,202,115, 1,138,162, 32, 77, 51, 79, 55,140, 64, 64, 20,134,110,164,100,220,125,160, 2, -167,134, 47,147,245,170, 64, 21,225,108,104,243,205,194,169, 99, 85, 16,204,163,137, 3,215, 58,199, 71,216, 10,207,244, 23, 74, - 33,131,128, 64, 69,200, 48, 36,106,180,136,187, 93,190,253,203, 63,226,199,127,227, 87,248,207,254,209, 63,226,165,183,191,201, -159,252,228, 15,209,153,193,234,194,117,166,202,209, 81,121,240,174,186, 98,204, 91,155,182,140, 72, 22,148,140, 25, 41,189,122, -221,143,146,130, 32, 68, 10, 5, 72,164,170,205,126,171,215, 70,181, 33, 87, 7,217, 26, 6,181,222,221,123, 30,191,189,116,113, - 45,102, 11,136, 47,156,185, 87, 97, 38,255, 26, 91,251,105,233,132,207, 83,232, 63,239,123,235,207,201,138,186,191,190, 38,148, -165,236,236, 72, 80, 1, 82,133,200, 40, 34,108,181,105,116,151,232,174,159,229, 23,255,250,191,203, 59,223,120,135,131,163, 99, -135,163,206, 51,116,158, 59,159,183,153,199,220, 6, 97, 68,107,253, 60,157,149, 85, 4,146,205,235,111, 50,203,114,178,241, 8, - 93,228, 76,143,246,252, 65, 57,103,237,226, 53, 86,207,189,196,131, 91, 31, 34, 50, 67,180,212,101,253,204, 57, 58, 43,171, 12, -143,246, 89, 90, 59,135,176,154,102,179,193,100,150, 18,199, 17,203, 27,231,233,110,156,161,221,238,162,148,100, 50,158,129,149, - 4, 81, 64, 62, 75,209,133, 91,219,148,146,220,122,247, 39, 20,201,132, 34,207, 48, 69, 65,150,165, 72,220,156, 89,248, 14,104, -169,189, 66,184, 17, 41,224,218,230, 94,155, 97,117, 78,145,205, 40,178, 12, 93, 24,108,161, 41,210,140, 60,203, 48, 70,147,231, -169, 15,108,242,228, 82, 37,252, 38,238,102,233,214,119, 39,117,225,210, 6,181,214, 4, 53,235,159, 46,114,186,203,203,244,134, - 35,246,119,119,216,122,252,136,217, 44,113,201,149, 94, 40,141,117,186,154,184,217,228,149,107,175,240,235,127,243,111,113,229, -202,117,158,110,239,242,243,159,253, 9,119,238,124, 2,198,146,101, 46, 75,100, 60, 26,185, 98,186,196, 44,159,134, 49,150, 78, -255,100,181,235, 44,170,171, 95,121,231,183, 26, 75, 43,252,250,223,255,135,172, 93,255, 26, 75, 27,155, 92,124,237, 45,182, 63, -251, 20,107,180,195, 45,122, 11,152, 61,225,237,176, 47,152,247,156,100,191, 83, 71,243,149,213,166,156, 43, 92,203,235,179, 20, - 0,148,173,216,178,253, 65,165,196,119, 31,114,185,201, 27, 47,182,179, 53, 11, 77, 57, 78, 40, 69,117, 96,171,220, 94, 37,221, - 9,173, 20,201,149, 9, 90, 18,129, 41, 10, 62,249,248, 35,238,222,189,205,195,135,247,217,222,126,196,193,222, 46,228, 9,231, -214, 58, 92,191,250, 50,231, 55, 55,105,197, 49, 71,251,251, 12,142,143,156,184,194, 58, 85,248,104, 52, 34, 75,115,119, 51,116, -218, 88, 99, 24,142,198,213,251,145,166,238,226, 49,198,144,103, 25, 69,166, 41, 10,235,218,236,198,162,141,203,118,169, 90,237, - 94, 33,235, 54,109, 91, 81,188,230, 27,189,167,122,121,152,194, 60, 12, 6,144, 49, 59,123,123,228,121, 86,181,122,181, 23,144, - 72,143, 77, 12,195,208, 91,216, 28,158, 83, 5,174, 98,147, 66, 34,188,117,173, 84, 66,215, 25,223,248,208,154, 66, 23,136, 34, -101, 58,237,187, 74,176, 48, 11, 16, 25,119, 34,117,157, 30, 83,104,210, 44, 37, 73,166,140, 38, 19,214, 86,151,121,249,194, 5, -246, 15,143,104, 53,155,116,218, 45, 86,150,151, 57,191,121,150,255,228, 55,127,147,111,124,253, 29,148,112, 98,199,126,127, 72, -119,101,157,183,111, 92, 35,153, 36,188,127,251, 54,135,189, 99, 38,211, 41,199,253, 33, 89,158, 49,153,142,201,242,130,193,112, - 68,127,146,208, 27, 12,153, 37, 83,103, 5, 43,244, 34,122,215,107, 42,148,112, 7, 40,176,149, 8,198,233, 55,220,117, 51,157, -204, 8, 35,229,230,215,186, 32,245,239,101, 24, 6, 20,133, 33, 77,253,166, 86, 20, 72, 99, 29,135, 89, 41,214, 86, 86, 72,134, - 3,178,116,230,248,253, 53, 59, 90,201, 30,112,158,236, 2, 33, 28, 92,197,169,227,243,106,163,207,178,148,188,112,244,187,178, -109,103,252, 97,218, 98,252,225, 32, 68,201,192, 87,236,248,123, 38,240,140, 1,181, 96, 79, 11,124,182,184,227, 10,232, 10, 53, - 28, 4, 78,109, 31, 54,154, 52, 90, 45,226, 70,147, 48,108, 16,196, 33, 75,103, 94,226,111,252,230, 63,230,245,239,124,141,161, - 86, 44,159, 91,231,222,205,123, 28,238,110,147,167,105,165, 8, 46,221,117, 37,208,163, 20, 42,205, 79,252,198,111, 60,243,181, -195,109, 60,170,234,182,217,178,138, 46, 15,233,118, 14, 21,153, 35,245,230, 10,125,225,181, 37, 98,129,158, 87,234,238,230, 68, - 53, 33,235,126,235,103,173,127,165,111,120,193, 9,240,156, 18, 94,212, 44, 99, 95, 54,180,106,161,226,174,165, 20,137,231,204, -199,235, 22,187, 58, 18, 94,212,108,228,101,173,230, 82, 39, 85,237,192,225,252,231,238, 0,163, 16,210,233,103,130, 70,147,176, -209,166,179,178,194, 55,127,244,235,252,221,127,252,159,242,218, 87,190,194,250,250, 10,183, 62,185,137,201, 92,206,187,242,135, -178,178, 96, 10, 84, 72,123,195,145, 18,219,221, 37,250, 71,251,164,199,187, 12,142,142, 88, 94,223, 96,150,204, 88,218,216,164, -217, 90, 98,220, 63,102,120,124,140,178,112,230,226,203, 12,143, 14, 80, 81,131,241,168, 79, 50,153,208,238,180,153, 38, 9,198, -104, 26,113,131, 84, 27,154,141,198,255,207,216,155, 53, 93,118,221,231,125,191,181,214,158,206,240,158,119,232,185,209, 24, 8, -128, 0, 41,142,162, 36,138,166,101,137,113, 60, 68,101, 91,113, 18,203,169,196,169,148, 99,187, 42, 85, 78, 85,110,146,155,220, -233, 35,164, 42, 23,249, 2,185, 75, 37,185, 73, 42,150, 35,185, 28,155,162,165, 68, 38, 9, 2, 32,230,161,129,158,251, 29,207, -176,167, 53,229,226,191,246, 62,231,109,192,174,168,170, 11, 32,213, 4,222, 62,103,239,181,254,195,243,252, 30,102,251, 71, 60, -122,112,143,227, 71,247,177, 77, 77, 89,230, 28, 93, 59, 34,132,192,122,181,196,168,192,122, 93,243,228,238,251, 52,231,167, 4, -111, 33,117,202,106,228,156,200,103,150, 23,249,216, 80,246,125, 63, 78,110, 51,109,146,156,195,128,145, 2,215,152, 76,200,153, - 74,236,131,168,184, 21, 94,134, 32, 1, 95,206, 38, 11, 92, 74,243,180, 86, 92, 2,131,146,158,109,226,160, 79, 65, 78,171,213, -138, 44,211,124,254,249,231, 66, 33, 77,246, 51,105,108,182,119, 83, 81,148,124,227, 27,223,100,127,255, 0, 93,148,252,209, 31, -255, 17,127,250,147,159,208,180, 45,171,229, 18, 31, 44,214, 58,250,182, 75,218,155, 47, 97, 73,164,181,153, 30, 66,148, 6,148, -247, 43,223,254,222, 31,188,244,157, 31,242,123,127,237,183, 89, 57,176, 94,177,127,245, 10, 71,183,190,194,163,143,223,149,234, - 32, 0,193,141,226,149, 47,171, 42, 71, 11, 74, 26,227,203,142, 94, 46,231, 93,200,203,112,113,239,102,171, 15, 47,211,144,127, - 60,140, 8, 7,251,151, 78, 99,224,161,251, 24,132, 50,214,186, 75,138,249, 8, 59,255, 46,181,195,130, 87,227,216,127,224, 91, -139, 80,193,108,185,220, 41, 31,219,100, 25, 89,158, 81, 78, 38, 44, 22,135, 92,189,126,157, 95,255,214,215,121,253,133, 91,204, -231,115,242,194, 96, 76,160,170, 12, 89,158,179,222,172,217,108,234,180, 47,181,108,234,134,243,229, 10,133,162,172, 10,148, 81, -108,234,102,244, 14,123, 55,236,154, 17, 69, 99, 20, 97,138, 15, 91,162,209, 22,223, 57,100,160,171,241, 50, 8,126, 80,171, 50, -118,240,113,199, 54, 20,130, 98,113,120,141,167,199, 79,211,133, 46,170, 78,180, 38,140, 58, 38,233, 56,135,253,211, 96,239, 16, -209,157,172, 39, 98, 90,155, 12,161, 29,131, 87, 58, 4, 41,170,180, 82, 28, 85, 37, 79, 30,223,195, 6, 59,118,187, 69,158,166, - 39, 3,164, 65, 43, 20,102,156,166,216, 68, 1, 91, 45, 87, 64,228,251,223,255,117,190,241,245,175,241,250,107,175,241,131,223, -252, 62,255,241,223,253,125,174, 95,191, 78,223, 89,158, 62, 61,161,107, 59,150,203, 37,117,219,242,228,124,197,147,147, 99, 62, -253,236, 46,117,189, 33,164,132,184,179,243,115, 66,140, 44, 55,107,234,182, 33,146,179,169, 55, 64, 24, 15,233, 8,120, 2, 62, - 72,200, 70,145,105,170, 60,217, 90,242, 98,199, 78,184, 29, 95,246,125, 18,205,165,105,131, 15, 49, 85,236, 48,153, 78, 88, 47, - 55, 41, 41, 47,226,189, 67, 17,232,218,158, 24, 34,191,247,215,127,151,227,147, 99,188,179, 20,121,190, 99,195,188, 44,150, 27, - 38, 31, 82, 92, 60, 99, 7,245, 94, 72, 84,182, 31, 87, 95,206, 59, 92,138, 17, 30,228,202,222,187, 81, 61, 63, 8, 82,135,191, - 94,130, 74,237,188,151, 89,158, 83, 77, 38,228, 69, 73, 62,153, 50,221,223,231, 7,191,253, 35,130, 54, 24, 13, 42,207,185,246, -194,171,236,223,122,149,179,139,150, 27,139,146,220, 40, 78,150, 61,239,191,241, 83,108,215,202,196, 46, 12, 23, 74,216,134,174, - 71,149, 10,204, 64, 72, 30,125, 18,214, 89,155, 12,147, 87,242, 57,167, 3, 81,107,153,202,201,228, 71,108,110, 3,230, 89, 17, - 81, 42, 35, 14, 10,251,168,182, 48, 16,145, 89,166,139, 44, 29,106, 73,133, 63,192, 87,226, 22,230,192,229,244,108,158,209,254, -164, 83, 40, 97,190,213,151,181,252,234,178,138,255, 89, 27,233,179, 93,246, 37, 27,225,206,164, 64,253,255, 16,196,141,178,130, -157, 95,195,100, 66,237, 80,222, 84, 52,105, 58,163, 68,221,158,166, 46,202,100,104, 99, 48, 69, 73, 94, 77, 40,231, 11, 14,111, -191,200,223,254, 7,255, 21, 71,123, 21, 7,251, 21,249,254, 29,222,123,243,109, 46,158, 62,193,245,157,116,233,195,196, 67, 41, -178,201, 30,135, 87,174,241,248,238, 71, 60,253,252, 67,218,147,199, 84,251, 87,216, 63,186,194,102,117, 65, 81, 78, 89, 28, 92, -165, 60,186,130,183, 61,183,191,242, 21, 94,253,222, 15,249,236,189,183, 9,174,102,117,122, 76,240, 61,161,107,192,100,248,174, - 30,185, 68,214, 7,188,181,188,244, 43,223, 70,147, 38,153,109, 67,244,129,118,211, 98,178, 18,239, 28,171,243, 51,172,179,108, - 46,206,121,114,239, 99, 92, 47,191,207, 90, 59,174,110, 20, 3, 36,109, 11,203, 26,126,105,173, 83,135, 43,235, 40,149, 38, 84, - 67, 99, 56, 56,176, 32,146,103,197,184,234, 28,178, 56,124, 90,145,142,235,225,212,220,120,239, 83,145,238,240,222, 74,134,135, -247,108,214, 75,108,211, 74,174, 68, 42,232, 7, 31, 59,113,139, 13,206,242,130, 23, 95,188,197,231, 15, 30,240,139,183,223,227, -207,254,213,143,233,154, 13,171,139, 11, 54,155, 13,222, 59,122, 43,200, 99,231,253, 88,148, 14,151,185, 74, 14, 50,163,115,209, -195,148, 5, 42,147, 76,122,243,157,191,242,183,255, 96,239,198,109,166,135,215,248,250, 75, 71,226, 61, 46,114,200,166, 60,255, -234,215,120,240,238, 91,248,232,136,222,237, 68, 50,200, 99,157, 25, 53, 66, 66,198,206, 96,135,209, 62, 28,166,255, 54,130, 28, -187,240,253,103,252,215, 35,183,125,119, 12, 63,168,136,141,185,228,153,223, 85,136,155, 81, 88, 21, 71,114,218,176,175,244, 59, -202, 89,191,147,205,172,210, 56,121, 82, 85,204,247,246,152, 78,167,236,205,103,252,230,235,119,120,229,214, 33,125, 80,212,205, -134,186, 89, 19,156, 67,105,200,115,195,100, 90,161,140, 97,185, 92,209,247, 78,198, 89, 46,208, 52, 45,193,123,242, 50, 31,153, -191, 74,233,212,228,170,116, 81, 15, 35,115,149,198,168,106, 36, 79,197, 56, 68,121, 12, 2, 9,149,246,213,124,241,215,176,199, - 68,129, 41, 56, 61, 61,195,121,199,179,217,233, 58, 77, 43, 80, 91,225,162, 92,236,217,248,160, 12, 99,204,144, 62,183, 24,183, - 21,236,120,177,123,153,224, 68,215,114,182, 60,197,246, 61,214,121,116, 10,180,217, 45,194,134, 84,183, 24, 67, 82,147,166,137, -141,179, 20, 85,197, 55,127,229, 59,252,141,191,241, 55,249,238,119,191,195,157, 59,119,104,234,150,213,114,197,195, 7,143,121, -248,232, 49,239,191,255, 62,239,127,244, 33,159,222,189,203,187, 31,126,200,233,114,197,189,123,119,193, 59,140, 22, 42, 87,219, -247,184, 32,118,180, 24, 34,157, 35,229,157,203,110, 95, 10,161, 93, 47,117, 36, 83,158,204,200,115,213,182,173,136,105, 82, 72, -144, 74,151,131,119,142,174,119,219,241, 90, 10,112, 24, 42,231, 44,203,104,234, 94,134,246, 49,101,219,123, 7, 58,227,243,135, -247, 57,220, 63,192,104,205,186,222,160,180,102, 54,221, 35, 47, 10, 92,114,103, 88,235,198,105,215,179,193, 68,131,251,100,247, -253,202,242,108, 39, 25, 46,142,214,202, 93,119,137,117, 14,159,166, 34, 67, 17,230, 82, 6,252,160,120, 30,120, 4, 90, 9,199, - 63, 47,167,124,243,135,255, 46,127,243, 31,253,151,252,157,191,246,151,120,255,179,123,180,171, 53, 87, 95,249, 38,251, 87,110, - 81, 86, 37,215,110,236,243,222,221, 51, 78,142, 47,248,232,103,127, 74,244,210,121, 68,239,211, 35,186, 99,117, 13, 81,238,246, - 33,173, 38,217,229, 76, 62, 17, 49, 83, 18,251, 9, 63, 80, 58,216, 1, 59, 60, 54, 36, 89, 70, 28, 0, 68, 70,114,211,119,125, -234,187,221,247,112,151,139,109, 73,212,245, 3, 92,103,123,241,146,160, 62,122,135,107,175,118,172,166, 91, 6,253, 22,228,244, -229,195,124,197, 23, 19,238,255, 77,151,251, 32, 72,223,253,199,168,103,200,126,250, 75,212,122, 81,113, 73, 28, 60, 76, 92,134, -159,105, 60,115, 49,219,100,202, 1,161,173,141,188,227, 89, 70, 86,149,100,229,148,114,190,199,183,126,240,151,121,238,107,223, - 34, 22, 21,214, 5, 30, 30,247, 44,207, 46,248,244,157, 95,224,186, 14,219,117,226, 12,241,146,168,118,227,197,215,216,172, 4, -131,236,172, 20,161, 89, 53, 99,115,126, 66, 81, 84, 4, 31,113,206,114,250,249, 93,162,183,168,124, 66,191, 89,146,207,247,112, -206,211,175,151, 68,239,153, 29, 94, 97,255,230, 29,162,143,172,206, 79,210,153, 0,157,237,185,253,242,107,244,125,143, 78,248, -108,239, 28, 85, 89,162,148, 98,255,234, 85,102,251,251,152,116,238,124,252,246, 79,101,244,237, 44,209, 59, 84,202,166, 24,222, - 1,107,123, 92,111,241, 93, 47,239,152,146,127,222,240,221, 26,109, 70,237, 81, 72,235,182,241,158,138, 67, 49,163,101,237,165, - 53, 69, 85, 73,206,187,210,227,153, 25,189,191,148,119,162,134,236,139,176,181, 36, 55, 77,141,138,158,174,179, 95, 96, 20,140, - 58, 51,163,184,126,227, 14,197,116,198,197,114,201,103, 31,127,196,102,189,162, 75,171, 66,157, 9,212,107,184,191,134, 39, 71, -171,173,104,124, 11,160, 74, 14, 0, 99,200,139, 2,243, 23,126,255, 31,252, 65,140,154,174,243,204, 23, 11, 14,142,230, 92,217, -211,120,165, 9,122,194,213,175,188,202,189,247,222,198, 59,139, 6,130, 10, 9,151,159,144,173,187, 30,144, 52, 98,218, 13,237, - 24,237,104,138,203, 81,168, 59, 99,200,225,226, 31, 30,204, 16,119,189,189,187,254,206,157,188,219, 29, 21, 44,201,136,159, 37, - 49, 67,252,146, 66, 97, 87, 53, 59,132,194,152, 56,192, 23,118,212,168,193,147,105, 1,146,252,254,111,125,155,231,174, 29,242, -248,244,130,227,179, 99,154,174,149,159, 65,177,115, 73, 36, 54,121, 81, 80,215, 45,109,211,139,210,210, 73,224,139,140,121, 53, -214, 58, 66, 80, 9,221,154,228,170,137, 2, 17,254, 13, 74,222,161, 75,143,232, 81, 37, 28,119, 63,247,241,115,147,192,154,131, -163, 27, 44, 87, 43,156,183, 91,127,114, 52,104,164,130, 83, 90,165,125,234,144, 8,163,183, 15,203,168,254, 20, 49, 99,166, 20, -202,168, 17,132,209,247, 61,196, 64,110, 12,125,215, 17,219, 13, 15, 31,220,163,169, 91,172, 21,242, 81,158,208,178,222, 75, 66, - 86, 81,138, 88, 16,181,165, 21,142, 5, 93,210,103, 52,173,163,247,138,227,167, 39,156,157,157,115,126,126,193,189,251, 15,248, -248,211, 79,248,232,227,143,249,228,179,187, 60,122,242,136,207,238,223,231,228,244,132, 39, 79,143,105,235, 13, 58, 90,180,138, -108,154, 70,124,176, 81, 81, 21, 25,189, 13,116, 86,118,245, 91,215, 64, 24,185, 11, 58, 93,236,121, 14, 68,127, 41,196,161,200, -139,157, 98, 83, 62,103,151, 70,222,218,104,116,216, 82,164,188,115, 20, 69, 65,107, 61, 46, 74, 37, 29, 19,123,160,111, 54, 68, - 5, 39,167,103, 28, 30, 94,197,218, 20,157, 24, 34,185, 49, 4,196,159,156,103,121,210,136,100, 8, 42, 66,112,156,101, 41, 36, - 66,109,242,100, 27, 76,123,112,116, 26, 87,203,101,159, 21,133, 20,130, 65,165,253,191, 35,203,244, 72, 19, 20,132,166,198,165, - 41,144,243, 50,217,144,247, 84,118,232, 33, 68,148,201,152, 92,189,205,228,232,121, 14,175, 28,240,163,223,249,139,252,201,191, -126,139,249,254, 53,174,220,126, 1,165, 12, 77, 15,171,139, 37,237,186,230,147, 55,255,156,232,196,197, 33, 36, 46,149,216,216, - 70, 20,237,105, 26,166, 70,109,139, 8,121,182,163,104, 48,121, 33, 25,221,105,138, 36, 69, 85, 33, 40, 79, 45,110,146,164,208, - 33, 58, 25,185,134, 1,172, 50,100, 64, 16, 6,191, 89,130, 53,233,173,118, 72,102,249, 41,161, 75,143,251,250,129, 68, 55, 20, -155, 50,190, 14,219, 81, 60, 34,218, 27, 14,173,237, 65,252,197, 49,248,165,113,248,191,141,188,250,165,172,249,237, 47,249,247, -169,173, 78, 64,111, 3, 73,244, 80,216, 72,219, 65,150,148,236, 58,175,136, 94,172, 89, 90, 25,178,172,144,226, 89,203,187,174, -141, 65,231, 5, 89, 81, 98,138, 9,197,100,206,247,255,234,223,162,110, 58,150, 39,231, 60,122,116,202,241,163,199,120,219,243, -193,207,255,140,208,203,133, 30,162, 71, 71,205,244,240, 42,135,215,111,211,212, 75,206,158, 60, 22, 59,114, 89,113,254,232, 51, - 98,223, 64, 4,219,110,168,102,123, 76, 15, 14,197,102,217,183,120,231, 57,253,236, 67,124,179,161,237, 26,116,112,216,182,165, -187, 88, 82, 78,231,168, 24,233,218, 46,253,121, 34,139,163,107, 76, 22, 7,168,116, 70,104,109, 36,106,212,139,214, 39,132, 64, - 81, 22,248, 16,249,252,221,183,232,235, 21,209,201, 84,204, 91,183,221, 85,167,243,187,172, 74, 2, 18, 48, 36, 33, 74,249, 86, -135,149,166,146,195,234, 41,244, 14,223,183,242,172, 69,143,235,186,228,200,216, 70, 67, 59,231,192, 57, 1, 42,141,116,211,128, - 11,253, 24,194,176,109, 90,183,117,160,117, 2,134,250,130,133, 50, 49, 3, 98,140,212,245,146,201,108,193, 39,159,124,194,217, -201, 19,250, 78, 38,114,178,255,151,221,189,184,156, 52, 69, 38,185, 35, 10, 45,231, 65,158,163, 77,145,222,227,156,188,172, 80, -202, 72,241,245,189,223,253,253, 63, 80, 68, 84, 86,224, 66,206,201,121, 77, 38,180, 57, 94,188, 57,165,233, 75,170,197, 21, 30, -124,242, 30,113,180,128, 25, 52,122, 59, 10, 32,238,228,211, 50,238,224,229,247,102,210, 33,106, 35,255,187,161,138, 76,177,149, -187, 17,155,195,222, 79,143, 47,237,176, 83,246, 95, 96,190,239,122,153,135,145,202,176,131, 83, 9,203, 58, 84,174,187, 66,188, - 81, 9,191, 3, 55,201, 82,245,158,105, 40, 50,195,126,161,249, 47,254,218, 15,152, 20, 5,239,127,118,143, 7, 79,159,208,219, - 14,231, 3,189,117,244,214, 97,157,140, 65,157,245, 9, 10,160,200,203, 66,208,164,109,159,210,214, 4, 20,160,146,157, 45, 36, -151, 65,212,154,219, 47,188,196,124, 58,163,217,108,190, 32, 54,124, 54, 67, 62,198,248,229,244,139, 29, 53,240,225,225,117, 78, -207,207,176,182,191,212, 79, 12,172,231, 93, 22,180, 54, 3,236,199,165, 74,243,178, 34,121, 16,156,232, 44, 75,182, 16, 81, 75, - 7,235, 68,220,215,110, 56,126,120,143,126,204,212, 78, 93,121, 42,118,212, 78,214,176,210, 9,218, 16,125, 82,240, 75,149,158, -165, 61,125,215, 91, 78,207,151, 92, 44, 47,248,232,227, 79,120,227,205,183,120,227,173,183,120,240,240, 1,239,190,255, 62,143, -159, 60, 74, 43,142,141,216, 1,173, 37,162,185, 56, 63,161,239, 59,188,143,180,109, 71,223, 89,138, 50, 39,132, 72,221,202,247, -179, 91,201, 14,148,196,144,138, 64,173, 2, 85,153,143, 47,250,176,218,136,113,187, 34, 25,166, 38, 33,122,242, 97, 77, 49,192, - 90,210, 75, 95, 22, 57,117,211,143, 34,152, 24,228,121,168, 55, 53,104,133, 71,243,202, 43, 95,165,105, 91,218,166,145,238, 81, -171,113,167, 87,148, 37, 85, 85,141,151,112, 94,148, 20,121,129, 54, 57,101, 89,146, 23, 57,104, 70, 13,197, 32,180, 35, 69, 73, - 86,147,106, 76,214, 83, 90,211,185, 86,132,121, 62,117, 92,218, 80,228, 37, 38,121,114,243, 66, 68,119,213,116, 42, 42,226,196, -173,214,166,100,239,198,243,124,246,228, 12, 63, 61,164, 90, 92,231,228,201, 99, 14,175,223,164,169,215, 92,156,157,209,180, 29, -101,153,243,249, 59,191,192,168, 72,112, 14,163, 34, 70,111, 69,168,222,245,178,198, 73, 98,201, 44,207, 81, 38, 29,164,121, 78, - 4,242,178, 36, 26,141, 41,139, 68, 46,148, 72,206,172, 40,119, 14,198,132,133, 13, 34,253,149,209,125,158,198,237,114,226,140, -231,138,201, 80, 89,142, 70, 46, 65,245,133,209,122,122,151,140, 65,101, 89,178,220,101, 59, 69,255, 22,214,163,118,146, 31,213, - 51,227,206, 93, 82,223, 23,239,232,221,247,118,123, 17,111,187, 42,149, 86, 4, 38,253, 85,167,124, 3,117, 73,232,182,253,125, - 25, 90,201, 4, 77,103, 57, 40,137,128, 54, 90,244, 46, 74,107,185, 52, 6,244,245, 80, 63,232,161, 48,145, 49, 60,218, 96,202, - 9, 47,190,246, 77,110,124,245,155,232,244, 51, 0, 2,131,137,145,143,223,252, 25,125,189,194,247, 54, 53, 71, 5,119, 94,255, - 22, 15, 62,252,128,249, 98,159,213,197,146,230,244, 49, 42,203,185,241,252,203,212,171, 11, 41, 24, 77, 65, 62,157, 83,159, 31, -163, 99,164,239, 26,138,170, 2,157,209,172, 46,168,166, 83,250, 8,147,233,148,166,171, 9, 68,230,135,135,244,155,141,192,110, - 82, 87,124,245,249,175,140, 83, 61,165, 52, 85, 85, 49,153,207,201,179, 92,198,252,185, 80,223,150,167, 79,185, 56, 63, 35,116, - 45, 93,151,236,109, 3, 91,101, 71,248, 88,148,213,248, 12,110,211, 4,183,156,145,241,110, 72,107,179, 33,206,123,248,118,135, -223, 35,233,159, 62, 9,157,164,192, 55, 90, 19,162, 0,106, 6,184,211,160, 13,219, 77,193, 86, 92, 14, 78,218, 5, 80, 13,133, - 64,189,233,200,180,231,233,211, 99,250,182,193,165,189,124, 8, 16,188,221, 38,145,178,147,156, 58,196,142,103, 25, 33, 6,166, -211,185,188,215, 89, 62,198,101,103,121, 57,197,118, 13, 49,120,154,182, 38,106,197,114, 85,179, 56,216,199,249,200, 87,111,151, - 60,126,112,141,219, 95,253, 22, 79,222,123,131,168, 68,249,234,250, 14,111,165, 59, 81,153,145, 81, 98,240, 34, 84, 73, 23,248, -110, 28,168,216, 82,118,199, 75,137, 78,165,182,200,199,129,176, 21,134, 10,118, 28, 39,233, 75, 97, 43,222,123,226, 14, 57,110, -232,210,191,128,174, 77, 23,223,110, 62,251, 16,199,106,148, 6,205, 56,117, 48, 64,169, 13,243, 50,231, 31,253,205,223,102,189, -186,224,237,143, 63,229,209,201, 9,117,130,129,244,189,165,233, 58,186,116,153,121,183,229,121,251,244, 96, 28,236,239,211,119, - 22,215, 73,190,186, 15,208,247, 62,209,250,228,115,217, 59,184,194,115, 47,190, 12,192,252,224,136,187, 31,190, 39,194, 35,226, -165,148, 44,249,252,182, 67, 62,161, 79,201,165, 56, 10,111, 80,204,230, 11,234,166,166,183,221,248, 32,201, 90, 76, 19, 73,227, -209,192,104,201, 24,157, 8, 90, 4, 37, 33,147,221,167,128, 99, 92,234,240,114,250,166,165, 40, 10, 76,138,174,245, 33,208,212, - 43, 86,199,143,176,222,141, 99,121, 53,230, 4,132, 17,113, 59,201,243,241,165,145,145,167, 34, 83,233,251, 77, 66, 48,153, 38, -156, 16,116,206,253,135, 15, 4,173,155,214, 36,214,245,137,122,167,201, 50,147,188,221,145, 44,207,152,239,237,209,213, 43,218, -213,177,172, 25,180,192, 40, 54, 77, 71, 94,148,114,153, 61, 3, 45,146, 98,110, 16, 99, 5,138, 49, 82, 86,165,231, 39,219,174, - 25,140, 17, 37,112, 58,116,109, 11, 33,143, 68,111,229,179, 73,172,105,157,233,164,180,213,244,214,143, 34, 47,130,199,247, 45, -203,147, 99,148, 82,124, 58,157, 74,103, 63,157,236, 68, 57,138,226,189,183,150, 92,105,172,245, 84, 85, 41,187,184, 36, 98,140, - 81,118,141, 67,158,188,202, 50,250,190,199,123,177,196,233,116,232,228, 69,153, 46, 75, 77,102,229,189,171, 38, 5,218, 20,244, -125, 75, 83, 55, 68,160, 40,103, 40,163, 5,149,217,247, 76,166, 19, 38,213,132,136,162, 91,159, 97, 52, 56, 27,121,231, 23,239, -114,229,246, 11,220,250, 74, 79,189, 94,142,233,104,206, 58,172, 19,180,166,219, 64, 86, 20, 66,226,138,144,101, 10,239,123, 14, -142,174,178, 94,174,240,206, 97,114, 57, 60, 51, 99, 36,125, 46,147, 29,111,140,158,216,117,210,137,121, 71,232, 45,166,170,198, -152, 99,173,205,200,230, 38,117,111, 49, 70,116,114, 80,168,152, 82, 94, 7,161, 94,218, 35, 15,211,129,184, 51, 21,210,122, 27, - 21,108, 98, 58,200,131,189,132,215,139,207,218,132,190,112,113,199,103, 68,192, 95,140,188,125, 86,124, 55,166, 8, 95,194,244, - 50,234,100,182,253,207,142, 31, 62,173, 72, 6,175,185, 78, 69, 77,112,126, 11,206,138, 17,188,147,238, 62, 8,153,108,248, 9, -181, 82,168, 76, 10,156, 4,151, 23,232, 76,102, 56,188,253, 2, 68,159, 92, 52,145,205,102, 57,118,169, 70,103,137, 88, 22, 32, - 42,110,190,252, 42, 49,159,114,248,220, 29,166,211, 25,119,202,138,139, 71, 83,206,159, 62,228,248,225,231,104,109,232,154,142, -172, 42,233, 86,167,105,194,148,161,157,164, 32, 26, 34,213,254, 1,229,116,198,193,108, 70,179, 89,161,173,172,236,234,205,122, -132,175,232, 24,121,242,240,115, 94, 79, 23,124, 76, 1, 71,218,228, 92,191,113,147,174,235,232,155,154, 79,158, 72,186,228,252, -232,170, 60,247, 7, 7, 44, 14,143,184,120,252, 57, 33, 41,247,173,181, 9, 78,211,210,197,228, 10,138,110, 28,173,235,180,111, - 87, 41,252,101, 16,139, 14, 78, 20,109,178,109, 80, 85,178, 5,199,244,121, 25,149, 38,187, 70,167,166, 5, 20,134, 97, 56, 19, -125, 28, 27,205, 97, 10, 26,249, 34, 91, 65,107,149,134, 66,210, 68,249,208,243,217,103,159,141,211,223,152,244, 85,187, 83,104, - 61,228,189, 39,251,221,144, 58, 26,147,234,191,109,107, 84, 16,144, 90, 4,241,210,255,133,255,224,239,255, 65,223, 55,160, 20, - 7, 71, 7, 92,189,114,200, 43, 55,230,244,125,207, 68, 65,223, 89, 62,123,114,206,100,126,192,234,252, 41,191,247,247,254, 51, -190,245,171,191,198,251,191,252, 37,209,167, 46, 58,205,252,181,145,100,156,184, 35,134, 51, 89,142,206, 11, 98,158, 97, 76, 62, -138,172, 98,138,205, 83,105, 31,185,133, 82,196, 75,227,232,103,189,154,187,123,137,209, 30,167,245,184, 23, 83,169, 19,229,153, -125,203, 46,144, 70,167,226,193,104,141, 86,145, 12, 40,138,140,107,243,156,127,252,119,254, 42,103,167, 39,188,249,254,199, 60, - 62, 59, 99,211, 54, 99,135,222,117, 61,109,215,211,118,162, 76,116,214,209,185, 68,247, 74,118, 51,159, 4,121, 77,219, 15, 59, -135, 52,141,144, 75,253,234,141, 91,188,250,250,215, 0,141,143,129,172,200,153,237,239,211,212, 45,193,217,103,212,141,162, 24, -222, 86,240,250,153, 67, 68, 51,157,238, 49,153, 78, 57,191,194,157,189, 67, 0, 0, 32, 0, 73, 68, 65, 84, 56, 27,173, 68, 91, -171, 14, 99,162, 80, 28, 20,199, 90, 37,149, 59,163, 14,194,239, 4,141, 12, 65, 53, 3, 24,197,217, 45,166,179,107, 54,172,206, -142,233,147, 26,123,155,239,190,141,205, 29, 4, 43, 82, 84,164,161,161, 54, 91,139,226,142,216, 39, 36,165,190, 41, 38,137,238, - 4, 62,136, 0,178,235, 58,185,252,173, 19,229,121,215,211, 91, 75,219,118,108,154, 13, 49, 4, 86, 23,167,146,174, 68, 32,166, -132, 38,235, 44,109, 55, 76,118,134, 23, 40,249, 67,149,188,136,121, 6,123,211, 34,197,154,138, 58, 95, 43, 77, 85, 86, 99,122, - 89, 94,228,152, 76, 39, 20, 37,148,101,182, 85, 95, 15, 10,109,149, 4, 51,218,200,184, 45,117,102,178, 54,145,151,211, 54, 13, - 93,189,161, 15, 96,242,156,106, 50,197,246, 61, 10,141, 15,226,202,152, 76, 42,148, 86, 88,231, 41,203,130, 44, 47,201,138, 50, - 5,190,104, 38,147,138,136,172, 78,242,162, 36, 47, 39,130,233, 69, 81,148, 19, 76,150, 37,158,181,132,228,120, 31,211,104, 63, - 75,140, 9,152,148, 37, 93,215,201,159, 75,139, 95, 92,167,239, 64, 70,253, 66,205,122,238,213, 95,161,105, 54,220,255,240, 93, -110,220,124, 46, 1,120,228, 77, 45, 39, 21,189,237,120,252,201,123,172,206,142,119,150, 55,106,236, 42,154, 90,192, 60, 33,186, -148, 46,103, 32,147,206, 34, 70, 69,112,194, 18,200,140,104, 77,156,117, 66,167,115,142,224, 44, 74,201, 69, 79, 90,105,104, 5, -222,166,177,104,176, 16,189, 0,109,184,140,130,101,136,159, 84,187, 0,158, 56,186, 77, 98,240,242,115, 5, 47, 2, 74,197, 51, - 19, 48, 53, 46,179,227, 56,133,228,153, 57,186, 73,150,177,221, 61,189,254, 2,104,107, 39,190, 38,209,205,164,152, 55,131,101, -111,236,210,245, 51, 10,252,180, 42,244, 97, 20, 4, 15,248,216,224, 7, 27,149,149,231, 61,185, 94,118,185,238, 35, 34, 26, 17, -127,234,172, 64, 87,178, 79,255,198, 15,254, 29, 38,139, 67,114,147, 37,253,135, 31, 39, 88,247, 63,124,135,213,249, 41,132, 32, -137,136, 87,111,211, 47,143,217, 52, 45,121,102,120,240,206, 27,105,114, 87,160, 82,246, 69, 94,100, 4,231,192, 20,248,190, 69, - 87, 19, 50, 83,145,207,167,242,253, 78,231, 28,222,184,201,191,255,247,254, 46,189,213,212,221,134,246, 98,141,171,107,250,166, - 22,194,103,148,141,201,149,180, 91, 86, 74,225,157,136, 64, 3,154, 92,105,214,155, 13,251,135, 71, 84,147, 41, 79, 30,221,231, -211,119,223,164,190, 56,167,171, 27, 17, 42,175, 86,216, 62,229, 89,244, 86, 22,148, 70,166, 60, 90,103,228,121,145, 62,139, 44, - 69, 4,139, 40, 26, 5,202,232,177,141,138, 74,206, 30, 17, 16,171,241,153,137,169, 49, 24,154, 40, 23,194, 56, 69, 66, 25, 50, -109,210,106,140,145,200, 55, 90, 56,227, 23,119,233,187, 53, 98,140, 65,114, 33, 92,154,246, 14,141,231, 78,120,153, 50,106, 43, -246, 77, 77,110, 28, 38,225,200,123,156,167,149,131,100,150,180,152, 31,254, 71,127,255, 15,218,122,141,214,134, 59,119,158,227, -214,205, 3,166, 85, 78,221, 88, 30, 28,175,120,178,234,105,235, 30, 23, 28,175,253,198, 95,226,246,237, 91,188,246,149,219,124, -122,220,112,246,224,174,188, 44, 67, 37,146,196, 62,227,107, 98, 68,168, 49, 63,186,198,205,151, 94,229,198, 75,175,112,253,206, - 11,156, 62,126, 66,196,239, 92, 8,151, 99, 82,227, 78,106,155, 82, 91,114,207, 46, 66, 86, 95, 2,209,196,203, 25,240,169, 74, -247, 67,170,212,176, 18,136,140,212, 45,173, 52, 26, 48, 58, 82, 25,205,181,253,146,127,252,119,254, 61,238, 61,120,192,219, 31, -124,202,211,243, 51,154,174, 77,227,118, 75,239, 44,109,111,105, 59,249,207, 62,200,120,211, 90,135, 77,202,111,231,124,178, 33, -121,188,143, 56, 23,136, 90, 46,129,249,222, 62,183,238,188,200,205,231,158, 79, 15,155,116,164,104, 48,166,224,202,181,171,116, -109,135,109,235, 47, 69, 87, 62, 43,248, 33, 29,232,183,110,221,230,254,195,251,169,235,141,151, 58,133, 65, 95,160, 47,141,224, -213,184,251,150,137,187,216,252, 68,197, 29, 18, 3, 25,156,235, 69, 97,170, 21,206, 7,186,190,103,125,113, 66, 95, 47,147, 26, -148,173,120, 7, 41,144,178, 60,151,110, 41,185, 15, 66,218,173, 87, 85, 53, 22, 13,219,136, 91,149,252,158,134,172,172, 70, 17, - 94,111,133,182,231, 67,192, 58, 65,199,186, 4,142, 25, 92, 15, 46, 56,140,145, 32,149, 16, 45,153,201, 83, 97,229, 19,240,199, -109,227, 62, 99, 28,213,199, 58,189,140,211, 42,163, 48, 30, 21,117, 18, 94, 13,152, 82,159, 42,122,249,123,239, 29,214,202,139, - 93, 85, 5,193,203,126,111,224,145, 7, 34,214, 75,194, 93,223,185,145,152, 56, 88, 93, 98,178,209,181, 93, 77,212, 6, 23, 96, - 50,153,162, 12,148,211, 10,162, 88,115,124,242,192,102, 67,108,100,158,177, 60, 59,197, 91,217, 89,247,222,147,229,197,142, 34, -190,199,246, 45,125,215, 18,131,163,109, 26, 20,208,182,146, 38,136,214,100, 58, 99,189, 90, 50,157,205,105,123,241,226,122, 39, -191, 23,101,164,227,201,133,175,221,117, 22,231,123,154,213, 5, 89, 81,240,198,159,252, 51,238,254,242,103, 60,248,228, 93,232, - 54,220,190,117,139,201,254, 21,124, 90,191, 60,250,248, 61,150,103, 79,211, 69,236,100,156,157,114, 19,178, 50, 3, 45,249, 6, -209, 11,113, 16,173, 18,227,223, 99,170,153,116, 69, 9, 91,107,178,156,168, 21,161,239, 80, 33,121,132, 83,113, 20,124, 32,203, - 11,121,166,179, 12,147, 23,163, 96,105, 0,223,171, 4, 97,209,227,101,158,194,163,162, 79,191,103,123,138,142,176,170,129, 4, -166,205, 40,143, 87, 12,251,235, 92, 82,180,118,194,240,244, 16,112,180,141,185,186, 36,162, 83,207, 8,234,134, 67, 88, 4,123, - 82,204,139, 72, 53,147, 98, 38,132,164,228, 31, 82, 44, 83,238,130,218,166,235, 13,142, 1,217,241,134,113,181,181, 61,207,212, -214,222, 55,140,100,147, 93, 75,103,178,146,168,246, 14, 89, 92,189,198,226,218, 45,190,246,107, 63,100,190, 88, 36,235,161, 23, -177,175, 18,127,200,211, 79, 63,160,222,172, 48,218,176,127,237, 38,203,167,143,241,161, 71, 25,131, 65, 51, 89,236,211,173, 87, -228, 85, 78,223, 54, 40, 34,222,118,168,244, 57, 13,163,243,114,111,143,122,121,142, 71,113,120,253, 22,127,235, 31,254,215,124, -237, 55,127,200,107,223,253, 1, 63,255,241,191, 96,121,126, 76,232,107,112,242,174, 4, 13,202, 24, 38,243, 3,174,222,121, 9, -149,132,144,121, 81, 81, 85, 51,154,182,198,246, 13,211,233,140,117, 93,163, 35,172,207,158, 82, 22, 21,117,189, 18,232,139,119, -100,121,197,226,224,128, 44, 47, 36, 20,169, 44, 41,247, 22,152,106,134,169, 38,168, 92, 64, 90, 74, 25,242, 66,220, 77, 89,158, -141,171,194,108,136,100,245,162,149,177,206,161, 18,113, 46, 12, 88,214, 16,200,242, 60,225,102,147,118, 43,136, 48,118,151, 88, -122,121,210,243, 69, 93,216,151, 9,231,226,142,190,108,176, 11,235,228, 64,216,198, 43,171, 49,155, 3,165, 4,110, 86,148, 48, - 20, 6,189,195,121, 75, 86, 20,100, 42,137, 69,188,119, 92, 92,108,176, 55, 28,217,193,132,131,171, 11,138, 50,103,185,233, 89, -175,106,108,168,232,172,229,222,241, 25,142, 57, 55, 94,250, 26,199,247,239,242,244,195,183,209,198,143,246, 2,141,132,137, 40, -147,145,149, 21, 7,183, 95,226, 63,252,199,255, 13, 89, 81,209,219,158, 39, 15, 31,115,182,110,121,250,206, 79,233,187,142, 16, -133,154,150, 21, 5, 93,219,142,170,246,221,250, 57,124, 73,244,107,216, 77,114,219,197,195,166, 42, 44,164,144,154,161,210,218, - 85,255, 74,247,168, 40,116, 32,207, 50,158,191,118,192, 63,252,189,191,204,135, 31,127,194,187,159,220,229, 98,189,161,237, 29, -109,239,232,250, 30,235, 29, 54,117,235,206,185,241, 66, 15, 99, 40, 75, 28, 17,159,182, 23,136,195, 48,254,150,124,240,140, 91, - 47,188,196,222,254,193, 8, 25, 25, 44, 56, 42, 26,130,242,100,101,201,139, 95,125,141,207, 62,132,229,233, 83, 66, 84, 59, 15, -201,238,223, 39, 37,167, 41,120,238,249, 59,220,189,251,105,122, 32,118, 5, 61,113,188,208, 73,190,230,164,143,150,207,211, 15, -236,129,124, 28,117, 26,147,139,125, 35, 58,130, 23, 47,118,196, 83,215,107,148, 50,116,245,134,118,179, 36, 6, 39,135, 92,166, -192,167,137,140, 50,163, 29,111,248,204,157, 11, 20,121,158,108,108,189, 88, 76,242, 20,247,234, 61,206, 75, 17, 24, 16, 5,173, -117, 18, 9, 27, 92, 24, 29, 15, 33, 4, 17,213,164,255, 60, 20,119, 42, 81,235,138,178, 18, 50, 90,148,233,131,236, 4,183, 30, -222,221,240,146, 33, 90, 52, 18, 41,139, 28, 8, 9, 7, 41,227,125,107, 59, 50, 99,232,250, 78, 66, 87, 34, 20,166,160,137, 46, -185, 22,130,236,163,123, 1,195, 40,163,164,163, 26, 42,232,129,149,144,250, 87,141, 33, 32,106,252,168, 20,190,239,104,250,150, -199, 79,159,114,116,184,143,181, 75,130,117,163,170,126, 62,157, 81,247, 29,101, 53,197,213,146,202,182, 92, 55,236,205,102,216, -174,103,179,188, 96, 50,155,210,108,234,113,159,166,149,194,119, 82, 88,154,244,125,175,215,107,170,170,164,179,210,233,110,234, -205, 96,145, 16,192,204, 14,250, 55,246,129,249,254, 76,198,223, 58, 99,125,113,206, 79,254,143,255, 69,246,246,101, 73,187, 57, -231,239,253, 39,191,199,143, 94,127,137,255,225,143,222,160,109, 26,180, 86, 84,179, 61,116, 86, 82,150, 51,162, 23, 17,224,197, -197, 41, 93,189,161,107,107, 97,191,163, 48, 69, 69,158,101,172,151, 23,104,165,201, 39,179, 20,109, 41,226,159,124, 50,163,111, -106,209,221, 20, 37, 38,125, 71,133,150,136, 85,109, 68, 5,159, 37,145,157,235, 59,217,195, 78,167, 4, 39, 58, 22, 77,132,232, -241,125,122, 78,148, 78,137, 91, 70,214, 70,113,187,183,150, 43, 12, 17, 75,142,153, 17,126, 75,112,132,180,134,242,105,226, 98, -146, 6, 68,143, 99, 79,181, 83, 24,200,122,103, 23,170,181,221,207,139,126, 38,169,173, 35,168, 16, 4,123, 26, 83,113, 49,234, -125, 92,114,152,248,203, 59,250, 1, 67, 10,248, 20,200, 49,232,144,212, 48, 49, 72,207,206,240, 39, 83, 49,146,229, 21, 24,195, -244,240, 42,249,124,143, 96, 50,246,142,174,161, 76, 70,179,217,144, 38,189,227,121,146,105, 77, 32, 96,138,140, 24,146,205,181, - 42, 9, 24,190,246,205, 95,227,163, 55,127, 74,189, 60,101,115,126, 12, 65,145,151, 37, 62,244, 76,166,251,184, 96,113,125, 71, - 94,206,152, 95,191, 73,112,142,189,131, 3,154,190, 71,103, 57, 81,101,252,203,127,242,199, 76,247, 14,184,114,235, 5,238,191, -255,150,176, 56,148,146,231,209, 6,188,238,121,242,224, 51, 94,254,238,175,139, 14, 41, 57, 35, 8,142,166,222, 96,180, 33,203, - 11,190,245,205,151,248,241, 31, 63, 0,109,232,154, 53,121, 94,176,184,126,133,107, 47,188,138,235, 59, 30,127,252, 14,121,189, - 33,134,158,152, 77,152, 45,246,184, 88,175,200,148,194,247, 61,221,234,156,220, 24, 86,167, 79,201,141, 73, 82,155,129, 31, 32, -133,188, 8, 86,183,161, 90, 38, 43,164, 57, 73,124, 10,219,247,105,205, 19,208, 64,166, 53, 46,110,163,188,197,134,173, 46, 5, - 16,238, 82, 77,159,205, 66, 25,154,205, 1,207, 27,194, 51,211,167, 84,240,169, 24,228,142, 14, 17,157, 75, 65,231,156, 39,116, -242,238,149, 85, 5, 10,250,102, 67,240,158, 76,155, 76,126, 80,111, 89, 45, 47, 88, 46,111,114, 95, 53,172, 27,143, 77, 41, 98, - 89,158, 19, 54, 53,205,122,205, 36,219,227,238, 39,143,216, 52,107, 94,248,214,247, 57,121,240, 25,193,245, 72,200,143, 60,184, -160, 68,145,183,119,200, 55,127,244,183,200,202,169,140,124,187,134,174,217,160,179, 50, 17,173, 82,130, 80,100,100, 90,239,102, -171, 15, 9, 82, 38,170,203,252,246,193,182,182, 83,253, 12,148, 58,183, 51,250, 31,108, 12, 3, 32, 96,232,218,132,197,173, 40, -116,206, 87,111, 31,241,159,254,245,223,225,173,119,222,231,163,123,247, 88,215, 29,155,174,163,237,123, 58,219,211, 89,135, 75, -126,232,221,110,209,123,143,141, 91, 40,140,115,142,222,246,233,247,185, 17, 37,168,203, 41,175,126,237,235, 44,246, 15,198,160, -132,224,125,210, 13, 12,190,229,109,184,199,243,175,188,198,103, 49,178, 62, 63, 75,202,199, 93, 33,207, 24,171,197,173, 91,183, -184,127,255,222,206, 97,160,158,137,220,228,210,255, 78,171, 20,151, 42,207,160,136,223,216, 90,250,198,157,143,218,174, 44,188, -151, 78,179,111, 86,216,102,147, 24,222, 10,204, 96,203, 24,194,184,119,144,161,232, 49,184, 70,172, 84, 96, 19,113,175, 76, 63, - 94, 89,149, 88,235, 70,160,138,181,150,182,109, 37,236,103,231,115, 25, 31,236, 49,130, 85,158, 25,101, 50,161,182,169, 12,219, -123,242, 92, 14, 90,235, 60, 58, 72,145, 50,138, 2, 83, 82,147,112,161, 21,133, 1,188, 37,154, 84,173,135,136,237,251, 81,197, - 60,144,168, 98,140,152,164, 21, 41, 39,229, 56, 26,140, 97, 8, 6,218,249,115,167,233,134,188,148,113, 71,156, 40,213,124,145, -231, 76,166, 83, 90,231,104,187,142,229,114,195,180, 50, 56,219, 75,213,157, 23,180, 93, 55,230, 63,139, 64,174,160, 98,150,166, - 34, 25, 58,182,130,141, 53, 2,197,200, 76, 70,211,118,227, 5,144, 87, 21, 10, 40,136,248,190,199,197, 64, 85,148,232,244,157, - 5,165,169,138,130, 88, 41,154,166,145,117,135,247,156,158, 28, 99,187,158, 98, 50,161,179, 2,216,201,139, 10,173, 34,166,184, -201,231, 93,206,113,132, 59, 47,220,225,222,253,159, 81, 78,166,228,213,132,194, 64,219, 53,244,237,138, 96,123,154,229, 90, 54, -137, 74, 99, 55,141,140,128,171,146,122,179, 74, 23, 65,196,219, 22,116,134,170, 42, 76,111,211,164, 66,163,210,200,210, 90, 43, - 62,143,114, 66, 62,221, 35,120, 59, 34,110, 1,178,114, 34, 14, 3, 23,208, 89, 1,190, 79,153,211,253, 51,221,122, 42,226,181, - 76,227,134,127,143,183,219,145,243, 46, 71,223, 15, 90,138,212, 21,101, 89,114, 40, 40,157,252,246, 94, 86,139,121,177,163, 11, -138,130,224,221,153, 84, 26, 99, 80,169, 80, 45, 10,233, 12,189,119,224, 18,173, 77,237,140,104, 71,184, 76,144,245, 84, 18,142, -134,180,235, 29,236,174, 18,172,178, 5,226,196,200, 86,212, 58,252, 36,105,127, 62, 57,186,193,245, 59, 47,112,242,244, 17,122, - 50,161,107, 90, 38,121,197,100,190, 71, 84,242,220,102, 90, 99,135, 78, 57, 74,199,253,244,241, 35,124,178, 95,109,214,231,196, -222,163,243,140, 55,127,242,207, 8,182,167, 44, 39,204,143,174, 98,219, 6, 83, 77, 81,141,193, 69,232,211,132, 55, 43, 74,250, -182,198,213, 13, 93, 83,163,103, 51,174, 60,247, 34,143, 62,255,132,122,179,230,252,244,132,249,222, 30, 97, 8,159, 82,146,198, -136,145,226,173, 62, 59,225,209,221,143,184,118,231, 69,209,129,116, 45,117, 83, 51,153,239,113,176,127,192,100, 50,149, 44,133, -211, 99, 10,173, 8,197, 4,221,119, 60,190,127,143,168, 52,175,126,243, 59,224,191,202,197,147, 7,156,159, 61,197,247, 27,158, -220, 59, 70,155, 92,208,209, 74, 83,205,246, 49,121,198,162,154, 16,187, 22,223,181,233, 60, 11, 99,225, 63,128,188, 6, 24,215, -176, 99, 19, 93, 70, 68,103, 57, 33,233, 91, 98,210, 85, 13, 65, 51,131,248,122, 88, 69, 74,186,218,176,184, 18, 18,157,222, 9, - 79,218, 42,233,216, 70, 18,127, 73,168,217, 64, 9,244,222,203,179,229,135, 34, 51,236,228, 97, 52, 9,143,238,137,209,144,197, - 32, 35, 15,235, 29,103,231,199,124,240,145,225,202,181, 27, 84, 85, 69,211, 52,137,170,163,113, 73,184,212,186,137, 92,106,125, -143, 15,129,107, 47,188,202,195, 95, 94,160, 50,201,157,213,131, 58,211, 24, 94,249,181,223, 98,122,112, 72, 93, 55,180,109,143, - 14, 13,143, 30, 63,150, 7,192,185, 45,175, 61,249, 6,141,210, 98, 15,218, 29, 81, 4, 46,237,216,135,203, 58,236, 84, 59, 3, -128,198, 36, 33,129,218,193,153,234,144, 70,239, 70, 46, 33,165, 34,133,130,210,104,126,229,165,235,252,221, 31,253, 5,254,245, -155,111,241,217,163, 71,212, 77, 71,107, 45,189,243,244,206,138, 48, 40,161, 69,157,115, 66, 7,139, 97,244,186, 59, 79, 26,215, - 8,164,196, 89, 47, 99,120,175, 8, 42, 99,239,240,128,219, 47,189, 76, 89, 85, 56,111,229,192,208, 26, 27,100, 66, 32,234,100, - 80, 33,133,221, 36, 33,199, 75,175,127,157,187,239,191,199,250,252, 84,210,174,118, 22, 49,121, 81,240,149, 87, 94,230,227,143, - 63, 22, 5,232, 51,240,140,173,239, 54,140,127,111,140,140,194, 51,163, 9,189, 35,230, 2,252, 48,202,226,209, 24, 37,182, 24, - 27, 60, 74, 73, 7, 61, 96, 83,187,166,198,182, 53, 42,248,113,172, 62,168,119, 51,165,177,189, 37,166,160, 14,149, 58, 26, 82, - 94,120, 8,162, 25, 24,148,192,195,216,122,179,217,164,189,117,113,105,205,224,131, 8, 32, 51, 35,157,242,152, 57, 16, 3,153, - 54, 34,114, 74,184, 85,107, 45, 65,107,156,149,110,201, 37, 71, 2,201,159, 28,189, 30, 97, 70, 42, 17,151,162,130, 34,215,226, -107,198, 19,130,165,200, 75, 26,111, 41,243, 34, 77, 11,196, 82,147, 23, 57,125,234, 6,147,206,106, 84,174,135, 16, 8, 74, 22, -130,163, 98, 62, 56,136, 26,165,195,152, 68, 55,124, 27, 93,215,161,215,107, 38,139, 67,172,237,105, 90,141,210, 19, 22,243, 61, -202,178,148,139, 91,233, 84,216,165, 4,191, 16,201,203,146, 34,203,136, 70, 49,153, 76, 57, 57,126, 2, 38,103,146, 25,218,182, -193,232, 28,239,122, 34,233,185,235, 58,116,166, 9,126,208,124, 72, 49,101,116, 70, 81, 85,244,245,154,197,222, 62,139,197, 30, -171,213, 90,188,173, 90, 49,157, 77,232, 92,148,203, 50,173, 36, 98,132,197,254, 17,214,101,220,221, 88,230,133,161,200, 69, 44, -151, 85, 21,235,186, 97,125,113, 33, 17,148,222,129, 50, 56,107,177,189,167,216,155, 19, 77, 78,191,217,160,243, 60,137, 72,193, -247, 94,158,149,180,175, 52, 69, 37,163, 92,215,201,120, 61, 61, 39,209, 7, 92,179,193,148, 19, 17,215,209, 67, 94,146, 21, 5, -182,174, 69,192,228,122,217,137,218, 94,216,230,166,148, 51,100, 32, 69,170,173, 80, 50,120, 71, 72,224, 27,231,211,133, 54, 28, -168,131, 24,119, 48,141,166,201,143, 8,183, 18, 38, 59,129,154, 98, 34,254,177,179,187, 15,131,162, 35,147,194, 28,155, 46,101, - 21, 81, 74,214,114, 74, 41,148,217,190,167,158, 40,239,162, 15,224,211,110, 53, 36,200,211, 78, 50,221, 56,130,213, 59, 9,120, -105,236, 30,188, 56,105, 48, 18,229,123,245,246, 75,204, 15,175,178, 60, 59, 97, 54, 63, 68,103, 25, 7, 47,221,230,236,244,148, -253,195, 35, 33, 2,196, 32,163,101, 45,206,139, 1,238,114,245,232,136,186,204,217, 63, 56, 66,103,138,243,167,143,232,218, 30, -179,119,128,243,158, 60, 93, 77,155,122, 13, 23,199,152,114, 74,153,103,244,227, 4,209,211, 93, 92,200,250, 77, 41,166,179, 57, -139,163,171,114, 46, 38, 59,231, 24, 14, 53, 89, 80, 78, 29, 81, 25, 22, 71, 87,201,242,140,227,199,143,121,243,159,255, 19,170, -131,107, 60,247,149,175,114,120,227, 38,205,209, 85,190,241,157,239,161,180,226,232,232,128,247,222,121,155,199, 31,188,201,170, -174,185,115,231, 5, 30,126,238,217, 59,186,134,137,138,139,243, 11,206,158, 60,226,244,209,125, 76,140,216,190, 67,103, 18, 23, - 29, 99,196,119, 27,172,209,168,124,159,162,156, 80, 28, 28,145,153,156,199, 31,190,157,138,178,132,155, 69,161, 85, 42, 34,181, - 34, 6,143, 11,150,188, 40, 32, 10,224, 39,216,128,245, 81, 84,254,206, 75, 65, 31, 44, 24, 41,224,213, 96,173,212, 6, 51, 92, -215, 81,246,251,113, 88,171,196, 32,231, 68,220, 22,121,151, 46,245, 65,111, 17,116, 18, 60, 2,153,161,152,204, 40, 38,123,172, - 47, 78,100,189, 20,163, 8, 20,147, 72, 52, 4,105,220, 50,239, 44, 38,203,177,125,131,235, 29,231, 39, 79, 8,193,137, 96, 37, - 37,108, 13,150,148,224, 29,245,122, 35, 87,133, 82,132,232, 40, 23, 7,163,245, 7, 45,190, 83,101,114,102,215,158,227,206,107, -223, 98,111,255,128,179,179, 53, 39,143,239,179, 89,159, 99,219, 22,215,181, 34, 86, 24,179,166,227, 37,206,242,110,216, 75, 24, -147,213,182,106,210, 81, 85,184, 19,103, 56, 64, 82,116,138, 13,221, 85,156, 10,164, 65, 38, 9,185, 86,148, 38,227, 55,191,241, - 60,127,245,215,191,195, 79,126,246, 11, 30, 30, 63,165,238,172,236,207,221, 96, 87, 11,116,105,103, 19,119,168,111,206, 58,172, -149,125,115,103,163,236,208, 93, 24,201,107, 62, 42,138,233,130, 23, 95,121, 29, 93,108,119,115, 34,126, 9,163,162,187,239,123, -249,179,166,162,205,167, 73,131,140,155,114,238,188,252, 10,159,190,215, 38, 32,132,188,208,215,174,221,224,198,141, 91,188,241, -214,207, 71,235,218,174,248, 66,118,111, 91, 91,204,240,208,120,239,209, 42, 75,193, 61, 50,186,201,115, 61,114,199,197, 77, 32, - 93,170,243,253, 54, 32,196, 54, 4, 55,120, 55,185,100, 21,138, 49,138, 61, 58, 29, 14,104,131,242,126, 7,224,162,211, 68, 36, -237, 42,147,127, 61,238,124,231, 38,229,189,143,153, 98,195,254, 59,141,207,195,128, 32,141,208,187, 30,149,108,129,195, 63, 71, -167, 42,185,222,244,105,103, 94,226,189, 70, 41, 55, 50,146,213,142,178, 80,199, 64,166, 36, 78,210, 24, 65,189, 42,165, 36, 14, -145,116, 33, 32, 69,141, 49, 25,174,173,201,114, 77, 89,230,244,189, 31,121,248, 46, 14,249,198,189, 92,236,163, 23,126,187, 50, - 82,227,190, 85, 10, 44,103, 59, 92,223,226,209,244,105,156, 63,159, 77,169,235, 90, 4, 57, 99,244,109, 78,223,116,100,101, 73, -168,229, 80,148,157,114, 46,206,138,222,178,222,172,152, 77,231, 16, 3,235,181,199,104, 35, 54,177,224,241,214, 50,219,147,169, - 80,219,117,148, 89, 54,130,137,170,249, 2, 61,157,145, 25,195,190,201, 88, 47,151,201,250,164, 33, 4,108,232,153, 76,230, 68, -173,200,179,130,182,174, 57, 59, 57,193,114, 5, 61, 45,121,120,239, 83,166, 69, 73,116, 82, 68, 76,167, 83,234,205, 26,235, 28, - 89,154,158, 77, 39, 21,109, 93,227,194, 18,141,134,178, 66, 35,252,124,147, 23, 2,183, 34,226,189, 18, 74, 37,242,215, 16, 13, - 69, 89, 98,187, 14,101, 52, 58,203,112,182, 69,117,129, 0, 20, 70,211, 55, 29, 42,234,164,242,150,117,145,174,166,178,130, 81, - 98,111,199,203, 30, 61, 58, 55, 10,138,242,178, 74,217, 21, 74,138,195, 29,161,210, 54,131, 34, 36, 23,132, 20,161,193, 89,176, - 18,206,237,147,170, 94, 33,197,192,176, 19,143,131,202, 89,128,155, 99, 62,121,140, 91,219,227,229,228,200, 48, 78,208,198,233, - 64,186, 24,131, 26, 14,242,237, 25, 23,119,224, 91,227, 59, 77,130,244,144, 66,178,162,230,224,214,243,232,217,130,213, 90,236, - 95,117, 93,179, 56, 56,228,193,199, 31, 50,153,237, 49, 63,186, 62, 34,164, 65,177,127,112, 64, 91, 55, 16, 21, 23, 39, 79, 57, -189,184,224,112,177,199,143,126,247,119,249,222,215, 95,230,127,253,167,255,156, 55,255,228,159,115,118,124, 76,110, 10, 86,231, -167,168, 24, 80,125, 39, 46,139, 76,210,252,242,114, 74, 87,175,232,214,107,208, 6,151,154, 14,231,182,225, 41,145, 72,119,113, -202, 47,255,236, 79,152, 31, 28,114,116,227, 57, 92,219, 99,140,226,124,121,142,111,123, 38,179, 25, 46, 4,170,194,112,255,189, -159,241,240,227,138,124, 50,225,231,255,226,255,226,187,191,249,219,132, 31,252, 69, 30,222,253,132,186,243, 76,170, 9,159,191, -255, 22,147,217,158,232,167, 92,207,131, 15,222,165,111, 86, 76,247,246,165,184,110,164, 88,115,193, 19,108, 35,194,105,215,227, -250, 6, 93, 78,169,235,134,201, 94,193,213,231, 95,230,244,222,199, 50,177, 12, 1,157,153,209,143, 31,163, 98,255,250, 45, 54, -171, 11,156,181,152,172,164,172, 38, 28, 93,187,150, 82, 55, 97,115,126,130,109, 54, 82, 56,244, 29, 90,103,194,108,239, 54,224, -210,244, 38,203,100,247,158,154,231, 65,247, 17,113,233, 78, 96, 20,109,142,148,200,212,208,128,168,238,163,146,105, 72,150,222, -137,220,104,122,103, 49, 90,227,108,135,114,201,142,153,118,241,153,117, 22,147,231, 18,241, 25, 35,189,237,185, 56, 59, 27, 17, -123,243,197, 62, 93, 39,163,103,147, 14,234,188, 42, 96, 37, 73, 93,179,131, 35,130, 2,147, 41,188,151,253,188,201, 74,190,254, -131,191,204,222,193,129,204,250,219, 53,245,250,140,174,149,180, 42, 63, 28, 84,105,151, 48,140,147, 92, 8,151,246, 13,195, 62, - 44, 68,208, 81, 93, 2,213, 12, 42,246, 1, 47, 57, 92, 94,227,152,126,184,128,140, 38,250,128, 73,222,232, 92,121,254,210,183, - 95,230,183,190,245, 85,126,242,231, 63,227,201,233, 9,117, 47,222,243,206, 90,185,212,173,160, 57,189,119,120,151,130, 84,162, - 8, 41,172,115,216,222,211,245, 46,197,164, 58,130,219,134, 71, 22,147, 61, 94,120,245,117, 24,226, 51,147,246, 33,203, 76,234, -200,212, 37, 74,208,208, 77,196, 97,140,230,229,210,213,202,240,237,239,253, 6,239,191,245, 38, 90, 43,158,187,115,135,243,243, -115,222,120,235,231, 56,103,199,139,239,210,142, 38,170, 52, 58,122, 54,223, 30,162, 26,246,127,134, 44,106,148, 15, 68,207,184, -174, 32,253,255,114,157,209,245, 29,202, 54,120,219,143, 15,222,238,197, 43, 47, 19,146,129, 14,219, 16,145, 36,114,116,130, 56, -146,181, 77, 31,200,203, 28,149, 4,123,206,187,237,120, 52, 72,246,182,245, 29,244,137, 63,111, 51, 98,234, 78,117,178,192,141, -161, 10, 59, 34, 34,249,108, 53,125,111,153, 76, 12,155,218,147,231, 37, 33, 56,116, 52, 18,198,144, 16, 59, 67,245,107,148,102, - 54,157, 74,119, 27, 60, 74,103,108,234,134,162, 16, 75, 79, 76, 69,142, 82,138,206, 89,124,136,148,101,158,124,202, 34,236,180, -206, 74,170,158, 23, 10,160,140,222, 24,173, 42, 32,197,238, 64,255,146,122, 34, 82,102,197,184,151,117, 38, 77, 44,214, 53,101, -145, 97, 93,143,235,123,202,178,146,162,176,146,245, 84,189, 89,227,157, 64,125,116, 12,180,169,216,173,202,146,174, 93,163, 77, -193,193,213,107, 4,160,239, 58,209,177, 32,227,245,106, 90, 73,174, 61, 2, 40, 9,198,160,179,146,255,252,191,253,239,248,249, - 31,255, 51,254,244, 95,254,145, 8,214,188,195, 7, 77,136,158,197,222, 62,182,109,200,116,134,119, 45, 23,199, 79, 88,157, 93, -112,239, 73,141,114,142,197, 98,159,183,255,236,199,204, 22,251,244,109,139,221,172, 49, 69, 65, 62,153, 98, 55, 27,138,233,140, -222, 89,116, 8, 20,113, 34, 29,104, 83, 19,163, 99,114,112, 69,158,165,190,163,247, 14, 92,130,199,132,128, 46, 39,168,104,136, -198,144, 77, 11,201,138, 70,130, 42,212, 64, 94, 76, 69,112,182,216,147,231,205,121, 92,240,224, 44,193, 9,166, 83,246,221, 30, -111, 59,140, 86,232,172, 16,190,126, 90,227, 13,138,226,232, 29, 58,203, 83,119,239,112,125, 75,116, 1,163, 21,190,107,241,151, - 36,202,140,174,146,160, 6, 0,137, 26,237, 82,146,230, 21, 70, 84,237,144,121, 64, 4, 53,236,216, 47,217,226,146,246,104, 80, -188,234, 65,166,183, 5,219,124,193,237,163,212, 37,224,166, 34, 1,106,140,225,240,214,115,204,110,220, 98,115,242,132,235, 47, -188, 74,177,216,103,249,232, 1,174,239,201,243,130,114, 54, 35, 6,207,242,228,152,114, 34, 73,123, 81,105, 38,179, 41,103,109, -205,197,241, 67, 50, 13, 55, 94,122,141,175,255,214,143,248,213, 87,175, 48,191,243, 50,255,253,147, 83,138,217,125, 78, 62,255, - 72,214, 63,121,193,252,106, 70,104, 55, 44, 79,159,208, 36,129, 98, 57,219, 67,231,149,104, 67,172, 37,203,115,138,170,196,104, - 41,242,108,215,115,247,189,119, 56,188,113,155,197,108, 74, 80,154,165, 63, 38,159,204, 56,212,154,207,223,123,139, 96, 59,170, -195, 43,248,174,166,111, 26,174,238, 31,225, 81,196,174,230,173,159,254, 9, 79, 30,223, 99,179, 92,115,254,240, 83,113, 0, 52, - 29,171,211, 99,153,100,205,246,216, 91,236,211, 52, 23, 20,101,142,142, 21,209, 7,154,245,121,138, 14, 55, 20, 69,137,183, 29, -118,185,196, 21, 45, 69, 89,176,172,215, 28, 92,187,129,201, 43,156, 93,146,231, 89, 10,104,114,228,211, 57,123, 87,174,179,218, - 52,152,162, 16,205,144,235,105, 87, 61,247, 87,231,204,174,220,192,152,140, 43, 55,158,231,241,231, 31,209, 53,205,104,171, 46, -247,175,160, 54, 25,120,209,121,216,182, 29, 27, 21,239,182, 81,201, 36,173,213,136,185, 77, 28, 9,209,139, 57,225,123, 88, 11, - 74, 51, 63,188,138,235, 58,218,174,147,201,128,120,209,137, 49, 80,228,197,152,191,224,157, 76, 38, 50,103,123,138,178, 74,138, -209,136, 11, 30,229, 68,221, 13,208,157,244,100,229,132,178,154,140,151,145,182, 33,117,247, 29, 89,150,147, 77,102,216,149, 67, - 43, 15,153,230,240,165,175,178,119,253, 38, 93,211, 18, 9,156,159, 29,167,156,104,141,119, 30,215,181,226,197, 75, 88,189,173, - 71,239,139,106,246, 24,159,137, 96,221, 65,204,142,248,188, 52,118, 85, 59,216,167, 44,117,236, 25, 74, 70,120, 70, 83,233,200, -239,124,251,235,252,234,107, 47,240,227,127,253, 6, 39,231, 23,212, 86, 70,149, 93, 26,223,202, 47, 17,114,141, 23,186,247,216, -224,113,214,210,247, 61, 93,215,139,128, 46, 68,188,143, 73, 12,165,153,204, 15,120,254,229, 87, 65,103, 35, 54,115,248,153, 92, -242,154,238,166,156, 41,149, 66, 85,180, 78, 10, 76, 18,224, 64, 2, 80,110,222,188,197, 43, 47,188,200,219,111,255,146,247, 63, -120,159,166, 89, 75, 37, 10,151,186,241, 93, 33,221, 86, 45, 25, 71,166,251, 48,254,210, 70,141, 93,198,144, 92,164, 52,163, 2, - 28,133,176,138,187, 6,111,187,241,243,189,132,245, 77,246, 60,177,124,196,113, 31, 63, 70,230, 42, 9,198, 25,108, 74, 74,107, - 76,250, 94,131, 19, 92,175, 31, 83,219, 96, 82, 78, 40,138, 41, 69,145, 39,129,157,197, 58,143, 9, 89, 18, 61,169,109,250, 94, - 98,159, 75, 76, 34, 99,154, 95, 85, 85, 88,103, 89,215, 46,141,200,183,246,200,209,118,167, 34, 89, 38,159,203,100,182, 79,219, - 54,156,158, 95, 80,228, 66,115, 19,193, 18,152, 44,167,222, 52, 96, 36, 46, 54,203, 50,177, 39, 70,228,187, 78,147,131, 1, 63, -169,148, 30,253,249,234,153,116,180,193, 35,139, 74, 41, 81, 49,226,209,228, 64, 52, 74,194, 31, 14, 22,163,227, 99,248,115, 74, -218,157,128,101, 68, 32, 35,234,127, 23, 35, 69, 81,224,108,143,201, 75,178,188,196,152, 12,219,247,104, 34,157,237,100,220,105, - 61,237,102, 13, 90,227,243,156,216,247, 76,167,123, 28,220,124,158,135, 23, 1,125,235,101, 50, 35, 65, 53,104, 45,221,140,117, -100,123, 19,202,131, 5,237,234,148, 44,155, 18,154, 53,203, 39,247,249,249, 79, 26,126,237,123,223,224,218,237,231,120,242,240, - 51,166,199, 2,237,153, 92,185, 66, 83,215,226,122,169, 38,212,155, 13,224,164,216,212, 25,237,122, 73, 94,230,228,249, 28,147, - 85,180,205,169,248,168,123, 75, 94, 85,178, 46, 75,223,143,237, 58, 76,102,232,235,150,201,254, 2, 91, 55, 4, 21, 49,121, 70, - 81,150,178, 2,219,172, 19, 35,163,199,118, 77,226, 44, 10,168,197,183, 50,221, 32,121,211,125,240, 24, 72, 46, 15, 57,103, 84, -112,194, 91, 0,148,115,152,164,192, 15, 56, 84,212,226,249, 86,131, 69, 76,143, 0,146,113,138, 20,197, 22,154, 37, 37,181, 75, - 10,114,162,219,166, 81,142,108,236, 45, 3,227,146,131, 37,237, 83,135,169, 84,220,217,241,127,169,152,106,107,222,217,118,114, - 8,191,255,224,197,175, 9, 86,181,200, 89,249,192,106,185,162,176, 61,235,179, 99, 76, 81,162,140, 97,125,118,198,163, 79, 63, -230,224,230, 45,218,122,133, 49,154,253,120,136,214, 50,193, 57,125,120, 31,215,247,204, 15,175,243,193,123,159,203,132, 40, 26, -190,254, 27,191,195,189,255,233,127,148,212, 72,219,210,156, 62,102, 54,159, 19,141, 88, 42,189,179, 84,243, 61,186,182, 37,116, -231,236, 29, 94, 35,186, 62,229,138,151, 40,109, 56,190,119,151,211, 71, 15,184,118,227, 22,235,139, 11, 62,254,248, 67,174, 30, - 93,197,219,142,227,251,159, 82, 47,207, 40,103,251, 20,211, 25,231,199, 79,184,114,231,121,138, 98,194,227,187, 31,145,149, 37, -179,163, 43,168,182,229,241, 39,239,179, 57,123, 58,134, 47,133,190, 39,248,158,102, 89,227,250,154,213,233,147,148,134,105,209, -232,196,120, 7,103, 27,202,249, 62, 49, 56,114, 3, 69, 49,197,111,106, 54,231,167,228,213,132,122,189, 38, 95,236,211,119,155, -212,217, 71,242,106, 66, 83, 55, 52,245, 93,180,138,184, 32,194, 77,103, 59,116,150,227,173,149, 38,197,228, 60,168, 87,204,175, -221,230, 32,203,201, 51,195,163,187, 31, 81,106,205,166,105, 48,229,148,201,193, 30,251,121,198,249,147,135,233, 29,247,232,129, -227,158,222,121,159,166,155, 62,132, 75,107, 86,121,182, 50,170,197, 2,147, 27,154,149, 76,176,134,251,114,120, 46,109,215,146, -151, 69,210, 17,201, 26, 55,243,174,151, 17,153, 78,162,142, 40,187,205, 76, 39, 54,120, 12, 16,253,184, 15,202,139,156,233,116, - 70,215,214, 18, 91,231, 28,211,253, 3, 46,214, 75,162, 50,228,229,156, 87,191,251,125,136,145,174, 94,177, 90, 45, 89, 47,207, -119,242,184,165, 83,223,221, 31, 12,187,223, 81,245, 30,183, 23,210,229,209,172,122, 6,204,162,198,204,111,118, 16,176, 49,141, -139,115, 45,163, 96,173, 2,149,134, 31,253,234,107,124,227,165,155,252, 63, 63,251, 5,199,231, 75,218,116,137,143, 29,186,243, - 35,137,203, 37,155,154, 79,236,108,235, 44, 93,223,143, 0, 26,231, 60, 62,113,220, 81,138,233,222, 33, 47,190,250, 58,166, 40, - 70,108,173, 26,119,197, 97, 20,246, 13, 97, 30,195,139,107,173,197,107, 77,151, 58, 17,147,246,104,218, 40,222,255,232, 35,206, -143,143, 57,121,250, 68,208,172, 33, 25, 59,241, 59,182, 8, 70,133,238,128, 54,189,100,169, 8,106, 75,239, 75,151,176, 73,118, - 58, 83,228, 73,113, 26,100,135,212,247, 68,215, 17,146,126,226,217,220,231,221,159,121,152,140,236, 68, 99,165, 75,219,164,121, - 82, 82,130,166,239,220,104, 13, 90, 16,171, 99, 28,105,114, 28, 25,163, 69,160,150,145, 44, 76, 34, 54, 11,131,127,126, 7,198, - 16, 19,118, 52, 36,205,128,243,158,243,243, 53, 81, 23,162, 54, 31,196,133, 81, 95,210, 96,164,108, 45,186,206,209,116, 23,148, - 69,206,222, 98, 38, 1, 41, 49,160,117,206, 16,212,187,183,191,160,235, 59,233,192,245, 54,210,179,200,114,177,219,245, 66,125, - 26,138,169,109,245, 61,228,154,196,113,228, 63, 20, 85, 33,133, 62, 40,165,241, 86,209,183,138,144,121,234,186, 96, 50, 21, 75, - 95,158, 44, 42,222, 58,242,201, 68,226, 94, 11, 89, 95,204,230, 19, 17,130,134,136,239, 26, 52,162,103, 8,108,198,149,134, 41, - 74,218,205,122, 28,249, 85,213,132,195,107,215, 68, 53,139, 98,255,230,109,154, 77, 13,222,147,103, 21,101, 9, 94, 41,170, 73, -201,115, 55,111,176,152,237,113,245,202,117,170, 42, 99, 58,157,210,245,150,201, 12, 96,195,241,219,111,178,167, 12,207, 31, 29, -242,254, 7,239,162,179,140,229,106, 45, 84, 35,167, 48,121, 65, 81, 58,108,221,163,156, 99,179, 57, 37, 83, 17, 91,247,244, 62, - 82, 76,231, 68, 47,211,173,114,239, 0, 85, 84, 52,245,154,204,128,206, 10,242, 73, 37,221,114, 85, 98,173,199,148, 21, 49,138, -111,184, 61, 63,195,187,142,124,190, 64, 89, 75,223,108,208, 69, 65,244,160,243,156,232, 28,249,100,134,201,139,132, 80,214,100, -222, 74,162, 87, 18,186,129,136, 5,163,119,105,167,169,229, 45,218,161,116,237,146, 7, 7,112, 85, 24,248,117,218, 80,236, 29, -146,229, 57, 54,229, 10,204,102,115,121,127,251, 78, 86, 5,232,145,139,176,155,176,198, 86,233,178,179,150, 81, 91, 16,212,176, - 74, 28, 69,191,113,220,221,203,152, 63,185, 89,130,128,238,181, 82,148, 7,215,176,109,205,139,191,242, 45, 62,255,229,155, 66, - 90,244, 29, 89, 54,167,174,123,202, 16, 81, 24, 44,158, 95,252,203,127,202, 55,127,248, 35,174,191,248, 10, 23,199, 79, 57,123, -252, 0, 85, 84,204, 38, 21,231, 39, 39,168,224,200,202,130,102,189,230,157, 55, 62, 96,113,116,192,100, 58,167, 71,166, 70,155, - 51, 79, 94,228,180,117, 67, 49,147,207,169,156,204,112,182, 23, 81,161, 87,244,205, 10,147, 21,180,155,154, 96,206, 8,109,205, -187,255,239,143,137, 94, 88,236,222,119, 76,247, 14, 56, 59,125, 66, 94, 78,152,237, 29,176, 60,126,194,116,230,105,235,134,253, -107,183,233, 55, 27, 84,166,152, 46, 22, 88,231, 56,127,114, 76,166,100,202, 72,242,175,120, 47, 49,150, 33,126,235,103,147, 0, - 0, 32, 0, 73, 68, 65, 84,145,241, 66, 47, 83, 55,235, 3,173,247, 18,143, 92, 77,136, 86,180, 36,193, 73, 86,133,202, 12,218, - 59, 40, 52,186,207,209, 40,234,211, 39, 84,211,153, 56,117, 38, 51,170,204,224,162, 34, 79,130, 92,219, 53,204,247, 15,101,130, -231, 39, 41, 22,184,166, 62, 57,134,225,156,246,142,147,205,146,217,124,159,163,219, 47,210,110,150, 20,243, 25, 6,133,239, 91, -124,121,192,244,232, 26,205,217, 9, 33,133, 30,133,116,207,146, 66,150,134,103, 35, 38, 33, 53, 73,255,161,148, 65,101, 37,117, -221, 18,130, 5, 47, 40,229,129, 34, 24,135,230,201, 90,178,114, 2, 78,161, 99, 36, 11, 78, 48,121, 58,203, 8,174, 79, 88, 76, -233,194,108,218, 57, 5, 31,164, 74, 67, 49,157,207, 88, 28,236,209,187,142,102,179,130,232,201,171,169, 96, 42,209,220,249,198, -247, 80,121,133,237, 90,188,214, 50,198, 14,113,199, 56, 47,201, 53, 90,105, 73, 2, 75,151,176, 74,132,167,225, 2, 28, 46,191, -225,178,215, 73, 73, 28,158, 25,175,135,103,140,253, 99,230, 91,234,148, 53,145, 60, 6,254,202,175,125,141, 87,111, 94,229,207, -223,120,139,211,243, 37,173,243, 88,231,147, 40,110,184,208,229, 2, 23, 17,220,224,137,246,116, 86,178,207,219, 86,126,245, 54, -161,252,162,248, 44,103,139, 67,158,255,202,171, 40,147, 39,144,137,194,169, 65, 97, 26,198, 76,242,203, 62,237,237,203, 63, 8, -253, 68, 81,158, 68,101, 41, 84,225,224,234, 85,154,174,195,159,157,226,172,144,224, 37,248,101, 11,154, 25,184,248, 90, 15,158, -126,189, 3, 60, 48,137, 80,149,246,212,128,245,110,228,130, 15,209,109,193, 57,202, 76, 83,119,237, 54,130,240,223,240,127,187, - 76,129,225,187,113,206, 97,244,206,119,160, 52, 70,169, 49, 83,219, 90,187,165,132, 13, 63, 51, 34,236,176, 93, 75,112,158,162, - 44, 49, 69,150, 14, 71, 81,153,102,137,181, 62,216,210, 66,240,137, 84,231,197, 51,171, 4,185,218, 39, 46,187,210,195,103,172, - 47,157,170, 49,249,125, 5,145,171,137,193,211, 54,109,218,253,217, 17,196,227, 98, 36,246, 93,210,102, 4,130, 11, 99,238,124, -212,194,179, 47, 39, 21,125,107, 89,175,219,157,176,133,203,120,200,241, 32, 87,105,175, 91,228, 56,140,168,110,181, 22, 11, 86, -140,212,117,141, 41, 36, 66,213,118, 34,208,243,222,210,180, 66, 64,235,109, 47,140,252,245, 5,104, 67, 53,157, 97,178,146,166, -105, 89, 44,166,116, 93, 77,179, 92, 10,104, 36, 69, 74, 18,163,140,152,163,199,181, 45, 89, 89, 81,100, 57,139,197, 33, 83, 19, -184,121,109,159,151,255,202,143,184,121,253, 10, 85, 53,225,236,244,148, 7, 15, 30,240,244,244,148,183,127,249, 11, 30, 63,126, -194,197,122, 69,151,128, 35, 89, 94,224, 81,216,118,195,164,154,112, 84, 85,108,186, 14,242,156,182,235, 8,182, 97,243,244, 33, -138, 64,187, 90, 82,149, 5,161,235,105, 92,143, 34,144,103,133,136, 45, 21,162,169,233, 91,178,178, 36, 43, 43,130,202,201,139, - 10,215,247,100,101,142,106, 35,209, 54,226,205,159, 78,112,125,143,201, 53, 89, 54,167, 44, 43, 86,155, 53,198,228,216, 70,254, -251,232, 83, 99,224, 3,125, 16,157, 73,244, 33,229,130, 27, 84,148, 67,116,240, 36, 71, 21,183,120,217, 24, 19,113, 49, 38, 60, -103,216, 74,204,119, 9,114,218, 48, 59,186,138, 79,174, 14, 83,150, 20, 38,195,246, 22, 99,114,178, 89, 65, 17,231,184,122,141, -247,189,124,231, 73,168,183,203,143,103, 87,185,126,169, 27,223,157,173,139,198, 97, 36,108, 2,154, 48,230,163,155,168,136, 89, - 69,145, 23,152,178,226,209,103,159, 11, 3,221, 59,206,238,223,103,249,248, 49, 58,207,113, 77, 75, 8,158, 98, 58,193,118, 45, -239,253,249, 79, 56,189,255, 57,251, 55,238, 80, 78, 38,116, 93,205,253, 15,223,193,117, 27,166,211, 25,127,246,135,255, 27, 95, -253,238,111,114,116,227, 57,178,204, 80,204, 22, 28, 46, 14,248,232,211, 15,241,222, 51,223,191,194,242,233, 35, 92,221, 80,237, -205,105,235, 84,196, 16, 41,102, 11, 22, 87,142, 88, 47,151,248,213,138,216,119,252,248,127,255,159, 49,153, 32,130,171,178,164, - 42, 14, 56,125,122,159,249,209, 85,192,177, 58,125, 66,166, 21,182,109, 41,231, 11,178, 34,163,113,176,126,248,153,196,192,102, - 5, 58,207,132,243,129,193,246,141, 48, 9, 18,253, 13, 43,161, 74, 33,207, 69,152,171, 21, 89,169,133,182,215, 59, 84, 89,162, -130,176, 38,242, 65,195,148, 11,207, 98,178,191,143, 15,112,176,191, 79,125,113,198,100, 49,199,118, 22,227, 17, 30,188,109, 41, -230,115, 80,153,112, 67,240,184,214, 82,204,166,216,190, 99,178, 56,144,130, 63, 70,130,237, 40,138, 18,235,122, 46,158, 62,144, -226,249,202, 45,150, 39,143,137, 26,234,139, 51, 14,174,222, 64, 21, 83,150,247, 62,148,169,204,240, 61, 15,162,239, 49, 88,204, -108,207,111, 34, 89, 53,197,118, 29,190,171, 9, 33,146, 23,165, 56,205,124, 0, 31, 49,166, 20, 1,118,140,116,109,195,245,231, -158,103,185,188, 32, 3,112,182, 39,207,115,124,155, 82,140, 70,230,178, 92, 2,193,121,154,186,230,234,205,155, 20, 85,197,141, -235, 11,188,179,172, 46,206,133,139,107,114,136, 80,236, 31,242,252,107,223,192,228, 57,206, 89,234,141,140,217, 69,233,157, 20, -238, 68,220,224, 5, 38,224,113,104, 50, 66,144,238,207,164, 17,244, 32, 44, 24,254,208,121,150,225,158,205,102, 31,168, 59,195, -152,219,139,178, 80,167, 49,132, 81,145, 34, 51,252,238,247,191,193,203,215, 15,249,233,219,239,114,124,177,150, 93,184, 31, 46, -245,173, 48,206,122, 47,248, 83,239,101,204, 27,124,218,175, 91,186,222,210,119, 78,226, 94, 19, 23, 66,105,205,116,126,196, 43, -175,127, 93, 68, 64, 32,182, 44, 32,186, 33,157, 42,209,219, 50,177, 97,149,101, 65, 8,158,222,246,228,153,128, 40, 38,149,248, -159, 7, 81,222,174, 15, 54,160,184,241,220,109,130,247,172, 47,206,240,110,184,216,253, 14, 57,110,123,201,199, 4,130, 25,198, -124,146,238, 22, 68,196,152,132,143,104,177,103,121,229, 71,107, 83,149, 27,214,203,243,157, 49,208,151,231, 60,147, 82,221,118, - 67,123, 6,200, 79, 8, 17,103,211, 5,236, 35,121,110, 80, 90, 44,109, 38,217,246,134, 88, 92,175, 52,166,170,200,242,156,178, - 40, 83,101, 10,222,249,203,252,108,173,200,116,158, 72,131, 73, 45,140, 32, 38, 93,114, 29,216,190, 39,102, 85, 42,156,134,174, -222,143,107,130, 33,201,111,184,168,157,239,233,122,217, 99, 9,111, 64, 34, 90,135,213,192,192,129,215, 74, 73, 88,141,113,151, -199,236, 94,145, 23, 25,101, 89,176,217,212,255,246, 80,237, 4, 22,233,218,142,108,190,128, 86, 44, 88, 58, 4,233, 20,203,146, -190,237,216,155,207,200,114,161, 12, 42,163,177, 77, 67, 52,154, 98, 58, 19,136, 9,157, 80,231,154, 13,121, 53,165, 42, 13,103, - 79, 31, 18,134, 85, 64,215,203,187, 86, 24, 10,147, 81,230, 5, 55, 14, 22,188,246,202,203,188,250,202,171, 92,189,114, 68, 54, -153,243,232,179, 95,112,239,225, 67, 62,249,252, 83, 30,125,126, 95,190,243, 40,130,207,224, 4,236, 19,188,172, 70,226,238,193, - 3,184,224, 57, 61,125, 74,232, 29, 74, 27,246,239,188, 68,116,142,254,226,140,110,181, 68,107, 17, 70,246, 93,155, 64, 84,194, - 14,176,209,166, 76,119, 5,222,226,189, 67, 11,228, 0,163,229, 29,192,121,156,237,133,205, 94, 77,161,174,241, 93, 79,232,122, - 52, 80, 30,236,179, 89, 94,176,152, 47,216,212, 27,178,178, 32, 4,135,171, 91, 76, 85,166, 51,200,165,116, 56,145,176, 73,151, -230, 80,105,106,166,180, 92,142,243,253, 35, 54,235,117, 18,129, 14,234,198,144, 82, 91,147,134,103, 27,228,142, 46, 75,102, 87, -175,211,174, 86,184,182,147,245,161,113,152, 20,182,163, 50, 77,183,218, 80, 45, 14,217, 92,156,130,239, 18, 77,143,173, 56,110, - 55,114,117,135, 26,169, 7,167,199, 72,132, 19, 75,168, 79,228, 50,165, 53, 58,229, 38, 68, 4,172,115,229,246, 11, 52,235, 37, - 87,111, 61, 71, 95,183, 76, 23,123,156, 63,252,140,126, 85, 83, 93, 57, 32,223, 59,226,224,232, 10, 58,192,217,249, 9, 89,211, -129,247,156, 60,186,199,201,227, 7,180,245,138, 44,175,176,125, 71,240,150, 60, 43,113,161,229,141,255,251,255,228,250,243, 47, -115,251,229,175,179,119,112, 72,223,183, 2, 21,242, 61, 23,247, 62, 97,126,116,141,233,193, 1,203,227, 83,113, 34, 36, 43,149, -175, 47, 56,237, 90,129,186,104, 18, 42,248,156,195, 91,207, 99,148, 98,117,246,132,117, 8,244,137,143,241,244,163,247,152,236, -237,179, 56, 60, 98,117,126, 54, 6,185, 52,199,143, 49,101,133,242, 1,165,197,201, 68,128, 24, 44, 89,150, 19, 8,244,109,131, -209, 97, 11,118, 73, 62,127,121,246,133,172, 22,173, 69,225,152, 47, 22, 52,117, 43,169,105, 42,210,246, 13,209, 71,154, 20,123, -124,124,113,134,173, 87, 40, 5, 89, 49, 33,102, 17,173, 34, 36, 90,163, 46, 10,209, 74,232,140, 98,146, 37,127,186,162, 89,175, - 41,170,138, 16, 28,109, 43,193, 78, 98, 75,189,192, 7,207, 34,191,201,193,181,231, 56,123,252, 0,147,103, 52,109, 3, 10, 22, - 87,110,176, 60,121, 50, 6, 8,145,184, 7, 74,171,157,105,132, 18,209, 49,164, 84,206, 20, 45,174,181,228, 42, 36,224, 77, 89, -205,176,109,147,116, 28, 25,202,119, 92, 28, 31, 19,108, 47,150, 54,217,209,165, 81,172,243, 40,187,225,252,226,140,232, 44,125, -103,153,204, 23,120,219,224,219, 13,123,251,251, 44,114, 69,115,113, 65,115,113,142,237, 91,148, 23,186,211,141, 87,127,133,147, -243, 51,202,114, 34, 35, 45,160,109,219,145, 32, 6,138,205,234, 12,163,227, 40,208, 50, 81,227,198,140,112, 63, 50,122,119, 19, -216,132,238,227, 47,153,245, 7,210,220, 24,205, 58,166, 26, 41, 9,152, 0, 74, 13,191,251, 27, 95,231,165,107, 7,252,244,237, -119, 57,185, 88,210,165, 32, 22,235,131, 64,101, 6,171,154,115,120, 39,208, 20,235, 29,125,194,191,118, 93, 71,215, 89,249,229, - 44, 54,101,110,163, 21,139,195, 43,188,244,213,175, 17,181,162,183, 2,191,232,109,155,128, 44,169, 91, 54,154, 34,151,160,145, -233,180, 20,214,122, 20, 60,232, 16, 54, 99,157, 8, 76, 76,102,100,172,239,253, 88,189, 77,170, 10,165, 20,207,189,248, 34,159, -125,226,217,156, 47, 83,241, 98, 80,218,239,116,233,122,136, 1,130, 32,159,137, 73, 7,178, 28,176, 59,248,221, 8,133,201,196, -158,215,247,236,205, 42, 46,206,207, 46, 93,232,207,118,228,113,199,105, 48, 92,206,195,229,206,232, 88,144,113,238,192,234,118, -222, 83,152,124,236,212, 81,160, 82, 74, 86,215,123,166, 51, 67,136,242, 89, 75, 84,135, 65,231,122, 27,169, 27, 2,222, 37,223, -104, 98, 97,199, 24,232,157, 37, 88,199,102,179,150,139, 36, 47,105,221,150,210, 52,216,108, 96,187,167,142, 41,150,179,237, 68, -209, 28,162,236, 85,135, 92,243, 49,145,109, 80, 28,251,196, 25, 80, 58,233, 65,242, 81,125, 76, 16, 0, 69, 81, 21,212, 77, 61, -134,198,124, 49, 83, 91,145,153,140,197,193, 33,231,203, 85,154, 22,196,116, 16,201,147,237,218, 38,249,225,115, 98,204,196,173, -161, 20,139,131,125,250,174,195,164,208,139,253,249,140,190,107,105,234, 13, 69, 46,202,239,214, 71, 22,211,138,233,228, 64,146, -197,181,102,177, 88,176,183, 55,231,202,149, 43, 88,107, 57, 59, 61,227, 15,255,240, 15,121,122,124, 76,239, 93, 98, 44,216,244, -188, 91,194, 78, 40,207, 16,116, 17, 99,196, 39,178,219, 46,228, 60,142,241,146,178, 18, 57,254,248, 61,170,217,148,250,226, 20, -237, 21, 62, 6,200,140,144,193, 84, 18,232,121, 9, 6, 10,182, 67,169, 82,220, 30,209,163, 98, 78,187, 94, 98,108,207,180,156, - 72, 7,141,194,214, 13,217,164, 76,197, 68, 96,126,112,200,242,248, 17,205,234, 12, 99, 50,106,231,168,230,123,236, 29, 94,161, - 93,111, 88, 47,143,137, 14,233, 86, 93,143, 87,113, 27, 20, 37, 3, 83,124,244,130, 9,205, 10, 17, 80,230, 37,218, 52,168,144, -145, 87, 83, 1,237, 52,235,244,189,123,166,179, 57,171,243,179,244, 89, 4,242, 98,194,234,248, 24,239,122,166, 7,251,228,179, - 9, 33, 68,138,201,148,104, 29,206, 89,242,178, 32,120,139, 41, 38,184,214,166,127,191,223, 82, 29,119, 86,139, 99, 42, 98,132, - 24,117,194, 67,169,241,204, 80,169, 57,136, 99, 6,183, 17, 77, 33,194, 12,105,215, 43, 22,215,110,209,247,158,217,193,130,227, -135, 79, 41,231, 11,170,131, 43,156,124,122,151,105,221,209,157,159, 51,217,219,227,197,215,191, 77,140,240,224,163,119,105,154, - 53,121,105,208, 33,146,155,140,217,245, 3, 66,215,225,131,101,177,127,192,201,131,123, 60,250,224,151, 60,248,224, 29,204,100, - 70,119,113,142, 93,159, 17,108,155,138,151,138,222, 5,170,171, 87,232, 47,150,100,113,104, 2,197,177,211,183, 45,121, 53,101, -121,246,132,104, 45,255, 31,107,111,214,107,217,118,158,231, 61,163,155,221, 90,187,173,230, 84,157,150,189, 72,217, 82, 68, 67, -145, 34,201,177, 13, 27, 70,236, 0, 1,114, 23, 36, 65,126, 67,174,114,175,235,252,134,252,132, 24, 72,144,139, 64, 18,226, 8, -233,164,216,162,104, 89,148, 68,137, 61, 79, 91,221,110, 86, 55,155,209,229,226, 27,115,238,181,235, 20, 69, 58, 73, 1, 4,139, -181,139,187,214, 94,107,206, 57,190,230,125,159,119,247,234, 25,147, 15,196,126, 11,198,208, 86, 13,219,231,159, 1,138,241,118, -195, 62, 14,104,109,184,185,122, 73,119,216,224,186, 22, 69,133,107, 42,108,221,162,181,230,208, 15, 24, 99, 36, 17,113,127, 43, -252,134,110,205,118,115,205,116,123, 91,112,169, 5,225, 58, 14,242, 57,215, 53,126, 26,217,222,222,160, 51,168, 82,184,107,103, - 81, 74,104,152,227,126, 75,246,129, 20, 38,172,171, 68,211, 17, 36,159, 32, 5,143,153,237,189,218,200, 68,166,174,192, 58,116, -219,160,135, 17,165, 51,104,203,170, 91, 51, 21, 61, 71,234, 7,208,137,253,245, 75,236,227,183, 89,157, 95, 50,110,174,153, 54, -215, 50,101,169,106, 86,151, 15, 9, 67,191, 76,110, 93,101, 65, 89,170,166,195, 84, 77, 17,168,190, 2,162,168,242,115, 2,101, -229,247, 74,194,192, 92, 99,201, 49, 81,119, 39, 76,227, 68,211, 86,244,187,196, 88,114, 26,108,202, 25,130,167,170, 91, 84, 78, -252,228, 47,254, 13,251,231,159,148,184,205, 1,163, 21,235,183,222,145,212, 28,231,184,122,254,140,241,176, 67,229,204,245,179, - 79,136, 41,177,221,220, 48, 22,155, 81,101, 29, 67,127, 16,219, 86,169,128, 81,142,203, 71, 15, 57, 63, 63,231,111,190,189,165, -170, 91,116, 18,165, 61,179, 42,187, 24,129,238,141,167,239,101, 14,223,133, 36, 28, 91,218,102,100,108,230,110,151,169,148,194, - 41,248,167,223,252, 42,239, 60, 88,243,173,239,124,151,155,205,182, 28,202, 34,130,243,197,190, 38, 2,185,184,196,236, 77, 81, - 48,176, 97,154, 24,167,145,195, 24, 24, 7, 25,191,199, 52, 43,201, 53,167,231, 15,121,231,139, 95, 38,170, 12,175, 41,217,199, -215,236,102,211, 32,227, 92,111,166,123,154, 0, 93,132,114, 66, 41,131,170,114, 69,144, 21, 23,142,186,177,194,228, 54,206,242, -133, 47,127,149,159,252,224,123,236,174,175, 75,152,197,241, 8, 62, 45, 33, 3, 2,221,209,247, 68,135,179,143, 63, 31, 61,184, - 51,137,117, 87,113,123,125,181,228,159,243, 90,194,213,252,111, 28,147,178,244,226, 5,190, 35,252, 29,219, 15,103, 16, 16,101, - 92,153,138,221, 79, 27,141,181, 8,129, 79, 57,170,186, 89, 10,131, 80,132, 75,218,154,101,175,152, 82, 20, 48,201,236,227,212, -242,247, 98, 28,241,227,196,216,247,212,198, 72, 81, 88,170,218,156,239, 54,152,119, 19,140,242,136,141,119,241,137,222, 23, 24, -196,146,173,124, 23,254, 35,197,161,252,185,181,154,190,247,168, 58, 46, 34, 40, 33,238,149, 28, 3,173, 75, 88,142,122,195, 68, -163,225,201,211,183,121,241,226, 51, 8, 35,217,219,242, 25, 5,200, 1,149,196, 83,222,239,119, 52,174, 70,163, 88,175, 87,144, - 34, 58,131,142,129,166,109,249,234, 87,191,200,111,254,202, 55,248,244,147,143,249,225, 79, 62,226, 43, 95,251, 58,127,253,189, -191,230,185,134,143, 62,254,132,159,252,224, 7, 18, 13, 89,246,255, 70,155, 18,121,171, 22,198, 93,158, 3,109,114, 38,167,112, - 55,145,152, 5,171, 71,107,173, 99,193, 78,154, 29, 4, 25,244,189,162, 73, 38, 4, 35,137,170,233,152,250, 30,109,196, 14, 86, -181,107,198,195, 1, 87,215, 69, 21, 61,145, 83, 32,231,106,137,189,156,167, 82,121, 26,202,161, 97, 4, 30,164, 19,109,219, 49, -170,137,147,211, 83,110, 55,175,208,198, 16,134, 30,219,118, 88, 99,192, 53, 76,125, 79,213,182, 84,125, 71, 31, 54,160,196, 3, - 79, 74,100, 93,145,125, 95,196,184,185, 60, 8, 87,133, 82,231,228,249,101, 13,218, 54,210,117,231, 68,187, 58,197,135,162, 37, -170, 91,222,122,255,156,195,102, 67,191,219,115,241,228, 61, 14,135, 45,121, 18, 33, 31,197, 22, 25,250, 3,227, 52,208,180,107, -204,234, 4, 63, 12, 60,184,120,196,243, 31,239, 49,121, 6,113,177,208,230,142, 39,107, 51,224, 68, 33,221,250, 82, 48,135,176, -220, 15,234,181,172, 11, 20, 40, 43,133,209,216,111,241, 49, 82,107,139, 81, 30,101, 58,118, 55, 87,156, 63,122,204,201,249, 67, - 76,219,242,234,217,199,124,231,127,255, 3, 46,223,253,128,102,221,177,187,125,201,245, 39, 63,230,226,233,123, 12,219,107,174, - 62,253, 33,167, 15,158,144,114,100,243,233,199,212,221,154,221,245, 43,170,182, 99, 26,182,228, 97, 36,142, 3,221,233, 57,167, -143,222, 98,183,189, 69, 77, 35,105,200,132,113,192, 89, 77,181, 90,211, 31, 14, 40, 96,117,118, 70,136,208,173, 90,246,219, 45, -174,178, 28,174, 95, 18, 82,160,182,162, 95,209,109,131, 51,208,191,124,129, 31,182,164, 18,217,155,148,130,144,104, 86,122, 73, - 27,171,234,138,186,233,216,221,188,162,223,202, 84,160, 62,185,100,154, 6,218,245, 57, 85,221, 9,202,117, 28,150,156,243, 16, - 60,166,114, 84,117, 39,207,193,186, 38,246, 61, 89,121, 66, 73, 16,100, 63, 21, 84,238,184,196, 16, 91,173,101, 79,111, 53,214, - 53,164,209,131,171,200, 90,163,117, 38, 14, 35,174, 86, 40, 87, 17,235,204,176, 63,208,157, 93, 74, 36,117, 10,226, 46,113,134, -208,143,164, 52,177,191,126, 73,119,241,144,238,201,187,248,205, 53,195,254, 22,101, 12,174,235, 88, 63,122,155,147,203, 7, 84, - 85,205, 20, 35, 85,221, 8,177,116,115,205,199,127,241,167, 40, 63, 98, 87,157, 8, 64,251, 3,182,110,136,227,129, 16,189,232, -110, 80, 98,117,205,226,216, 24,139, 5, 54, 12,131, 52, 5,191,250, 79,255,211,223, 85, 90,227,172, 97,120,245,140,219,207, 62, -100,127,251, 74,186,188, 28,101, 84, 94,117, 60,120,250, 46,221,201, 9,111,189,245,132, 7,151, 23,220,222,222,114,125,117,197, -180,185,230,213,135, 63,100, 56,236,217,223, 94,211,158, 63,164,106, 26, 81, 32,150, 46,201,213, 13, 74, 27,218,213,154,127,240, - 59,255, 62,230,242, 93,110,174, 95,144,134, 81,170,104, 53, 83,159,204,145,250,244,206,175,174,143, 20,214,199,202,230, 57,222, -115, 6,161,216,226, 57,174, 13,252,179,111,126,157, 39, 15, 78,249,179,191,250, 30,183,219, 29, 67,217,159,251, 20, 23,150,187, -159,185,238, 37,210,115,242,179, 24,110, 98, 28, 7,198, 33,208, 15, 35,227, 56,201,250, 32, 43, 50,134, 7,111,189,195, 91,239, -189,191,120,178, 23,101,126,217,137, 27, 35,108,119,231,220,189,220,248, 88,208,178,113, 6,228,112,103,205, 19, 12,161, 95,186, -233, 16,100,239,173,142,132,130, 49, 4, 86,235, 19,134,113, 36,166, 48,243, 7,142,120,195,106, 73, 59,154,213,232,202, 26, 33, - 55, 41,161,179,169,130, 72,244, 97, 96,213, 52,236,182, 59,194, 76, 39, 42,133, 85, 62, 10,135,190,195,206,170,123,221,198,146, -150, 87, 62,135,197,173,112,164,236,159,213,246,233, 72, 79, 97,141,101, 10,129,102,125,206,122,125, 78, 93, 53, 56, 39,233,108, -139,111,255, 8,173,173, 22,154,220,157, 71, 61,165,128, 54,154,171,231,207, 16,126,151, 28, 8, 75,134, 60,199, 43, 74,181,236, -227, 41, 96, 35,209,119, 32,238,134, 52, 99,133,239,132,141,179, 5,105,158,126,196, 24,138, 54, 65,149,207, 76, 23, 37,126,185, -102,115,129,249, 24,179, 88, 65,173,171,120,235,201,219, 60,123,246,113,241,154,139,183,209, 58, 87,192, 58,186,196,137,218, 2, -195,145,117,147,206, 50,206,211,113,228,131,119,223,230,131,183,159,242,107,191,252, 13,166,113,162,247,129,195,190,231,247,255, -224,247,248,254,247,190,199,199, 31,127,196,102,115,131,247, 19,193, 11,181, 44,248,129, 16, 38,166,209,151,140,235,105,249,111, -225, 43,140, 2,165, 41,228,195,249,253, 76,217,151,160,143,185, 27, 23, 1,229,140,192,229,181, 78, 94,238,199,128,214,134,186, - 93,147,162,232, 1,230,232, 90,128, 48,202,120, 55,197,128,115, 21,145, 68,138, 19, 36,179,144,251,180,182, 40, 39,190,228,156, -163,236,191,125,228,244,242, 1,253, 97,203,180,223,139, 0,179,233,112,109, 67,189, 58, 37, 7, 95, 56, 5,226,108, 9,253, 64, - 24,123,116, 78, 16, 19,201, 79,114, 77, 26,177, 21,186,118,133,114,142, 24, 3,182,228, 83,168,242, 60,113,171, 83,230,105,165, - 53,197, 66,105, 96,119,115,141,173, 59, 92,183,194,147, 5,177,107,172, 64,102,198, 1,235, 68,225,109,170,134,213,250,132, 48, -121,234,170, 34,161, 24,118,183, 18, 83, 93,178,220,103, 63, 60,121, 14,132, 41, 34, 43, 85, 81,157,156,241,232,131, 47,147,141, -197, 56,177,216,229, 57,183,161,232, 49,230, 92,116,180, 33, 78, 61,109,183,198,186,134,155,231,159,178,187,125, 73,189,186, 32, - 4,207,187, 95,250, 26,219,205, 45, 99,244,156, 62,120, 72,179, 62, 71,229,196,254,250,154,151, 31,254,144,245,197, 3, 92,211, -138,166, 73, 27,252,102, 67,127,123,197,225,246,134,102,213,178,187,189,194,186,138,170,169,153, 38,113, 15,180,235,115, 78,159, -188, 75,232,123,194,176,199, 89,185,126, 43,235,132,202, 88, 75,128, 75,181, 62,161,110,197, 62,151,181, 20, 97,227,126,143,169, - 43,153, 67,100, 69,232,119,108, 63,251,144,112,232,209, 90, 8,144,171, 7,143, 56,123,231, 3, 65, 72,123,207,116,216,115,184, -185, 37,142, 3,251,219, 43,182, 87, 47,216,111, 94,149,156, 14, 69,152,122, 73,253,155, 70,156,107,100, 42,180,106,139,208, 21, -234,110, 45,147, 36,239,101,255,236,229,186, 71, 41,234,166, 37, 76,163, 64,105, 10,133,112,121, 80,104,141,173,107, 17,109,154, - 74,214, 34,193,139,237, 51, 7,193, 18, 43,193,253,198,113,148,251, 64,203, 14, 31,165,240,125, 79,221,173, 49,174,194,104,203, -184,219, 67, 14,164, 24,105,154,142,195,237, 13, 97,216, 3, 10,215,173,112,141, 96,211, 73,137, 48,244,220,124,246, 33,207,191, -255,215, 98, 73,107, 26,148,169,136, 99, 47,233,163, 41, 74,200,147, 49,212,221,186, 60,143, 84, 1, 79, 9, 16,171,170, 26,208, - 18,152,100,183, 87,175, 64, 27,182, 10,252,245, 43,206,207, 47,240,253,129,113, 47,166,123, 89,138,142,132, 32,163,232, 97, 28, - 24, 71,233,176, 66,191,231, 71,223,249, 83,210,112, 96,181, 90,163,227,196,119,255,232,127,225,139,191,246, 31,112,249,228,221, - 2, 61,185,179,165,220,188,124,201,248,165, 39,252,234,175,255, 61,206,223,122,143, 63,249,253,255,158,143,255,252, 79, 9,169, -199, 58, 17,180,228,146, 57,126,143,170, 84,212,159,243,159,201, 97, 87,108,193, 37, 54, 85,151, 8,204, 74, 37,254,227,223,248, - 59,116,149,225,219,127,249, 93,182,135,158, 16,115,217,163,251,114,120,139, 10, 55,248,184,164,172,249, 98,109, 11, 33,226,189, -168,220,167, 49, 48,134, 64,140,130, 63, 69, 91, 30,191,253, 46,143,223,125, 87, 58,202,196,189, 67,123, 30,169,205,236,121,239, -135,123,157,121,140,113,121,237, 51,239, 55, 22, 59,140,214, 66, 64, 51, 71,145,178,199,200,217, 37,118, 49,103, 30, 63,121,202, -103,159, 38,166,188,151,125,114, 25,224,113,196,202, 71,149,192,148,172,139,143, 95,223, 29,206, 25,106,227,216,110, 54,203, 90, -227,245, 46,253, 88,237,126,140,226, 53, 11,165,237,238,107,139,250,251,216,138,120,151,125,123,148, 57,173, 73, 89, 17,146,166, -106,219, 37,215,253,158, 96,232,104,132, 61, 51,152, 83, 60, 66,102,230, 36,196,177,146,184,101,180,101, 12,241,232,235,247,121, -249,119, 4,194,132,153, 83,213,102,183,133,145,117, 7, 49, 99,172, 94,222,187,202,185,165, 80,138, 94, 44,134,126,242, 84,141, -187, 87,212, 40,149, 37, 24,165, 28,236,198, 24,218,118, 77, 93, 87, 24,235,184,185,121, 41, 33, 45,106,182,172, 9,199,217,148, - 92,113,173,192, 40, 25, 97,234,148,112, 10,106, 99,248,250, 23,222,227, 63,252,251,127,159,182, 93,241,233, 39,159,241, 71,127, -252,175,248,238, 95,127,151,126,216,211,247, 59,134, 65, 56, 10,115,144, 80, 94, 20,222, 44,194, 75,165,194, 82, 21,101,117,167, -182, 94, 28, 39, 69,127,241, 58,154,242,206,217,255,166,228,209, 99,199,138, 20, 67,126, 26, 49,211, 65, 66,109,124,128, 20, 10, - 34, 51,145,163, 39,231, 80,214, 85, 53, 26,208,170,164,181,149,207,203, 54, 45,174,107,232,183,215,132,254,192,250,193, 99,154, -211,115,246, 55,215,248,105, 79,115,114,194, 0,180,103,103,236, 94,189, 68, 69, 17,186,141,126, 96,123,115, 69,211,180, 18,187, - 55,217,146,242, 86, 66,157, 74,214,181, 49,150, 52, 13, 40,109,113,117, 45,100, 69,235, 74, 71,175,177, 86,163,147,131,249,190, - 84,178, 94,168,187, 21, 33, 78, 52,110, 45, 7,204,110, 67,156,122,180,181,162,228, 47,193, 50, 70, 27,250, 41,224,154,134,126, -119, 35,158,238, 18,147, 59,219, 20,141,171,151,251, 46,229,140,113,142,170, 59, 97,117,249,128,195,208,179,221,220, 98,218, 83, -186,139,154,126,181,166,174, 42,110,158,125, 76, 12, 1,171, 32,102, 17,136, 42, 3,171,147, 7, 40,109, 24,135, 3,206,153,114, -175, 67,142, 35,253, 56,240,232,237,247,249,248,251,127,201, 79,191,243,109,214,151,151,196,152,121,244,254, 23,217, 95,157,224, -163,151,113,116, 85, 99,141, 99,236, 26,177,155,166,196,184,219,163,188, 39, 97,240, 54,208,174, 79,208, 4,134,205,142,253,203, - 79,138,221,179, 66,105, 77, 93, 53,104,107, 8,227, 68,189, 94,163,180, 97,127,245,130,237,228, 81,149, 21,108,108,191,195, 96, - 48,166, 69,103,205,112,123, 69, 24, 15, 16, 60, 83,140,116,235, 19, 78, 31, 61,145,206,247,176, 19, 58,161, 21, 93,212,233,227, -135, 96,157, 76,248,250,137,182, 89, 17,149,194, 84, 14,191,223, 17,166,145,122,117, 2,214, 16, 61,140, 87, 55,216,170,146,103, -158, 82, 36, 31,105, 47, 30, 96,141, 99, 58,108,153,174, 95, 81, 59,135,239, 15,228, 32,216,222,156,131, 20,134,133, 22,152, 82, -196, 31, 14,212, 93, 71,208,153,230,228, 12,114,194, 79,129,228, 39, 76,219, 10,154, 88,101, 92,101,200,211, 28,197, 90,138, 88, -149,217, 93,191,100,117,249, 80,206,162,104, 9,126, 98, 56, 28,152,218, 14, 84, 70, 21,171,243,238,229,167,203,234,184,223,109, -201, 42,115,120,249,156, 28, 3,198, 58,140,171,104,219, 21,155,225,192, 52, 77, 24,173, 24,198,129,238,244,130,172, 45,221,217, - 67,198,131,188, 15, 42,131,138,153,221,205, 21,198, 57,148,171, 48, 95,249,205,127,244,187, 57, 37,210,208,243,209,223,252, 91, -114,152,196,194,166, 53,193, 79,178,231,242,158,195,237, 13,239,125,240, 62, 79,223,125,159,237,126, 79, 28,123,254,242,255,250, - 67, 12,137,174, 93,221, 9,219, 82,230,249,135, 63, 68, 27, 75,119,122,134,182,142,211,139, 75, 80,162,248,109,234,150,199,143, - 78, 25,189,226,236,201, 7,188,252,244, 67,198,237,117,177,229,132,101, 31, 59, 71,131, 46, 97, 28,233,200,247,157,103,122,142, - 42, 21,156,198,106, 88, 25,197,127,246,143,127,157, 48, 14,124,231,111,190,207,213,238,192, 24,228, 96, 30,167,145,113,242,244, -227, 68, 63, 72,132,103, 63,142,178, 51,159,252,226, 61, 31, 38,207, 56, 5, 17,198,121, 33,135,101, 20,218,214,188,247,149,175, -114,254,232,113, 81, 97,231,227, 37,170, 88,185, 22, 83, 20,139,109,237,248,144,114,175,101,120, 47,161,142, 90,223,195,189,206, - 10,252,249, 48, 79, 71, 63,187, 16,143, 42,214, 39,167, 12,195, 72, 88,132, 34,234,232,223, 23, 68,165,210, 51,228, 37, 45,121, -188, 74, 41,114,240,132,105, 16,100,164, 82,159,123,134,223,127,221,249, 30, 39,224,245,175,191, 46, 10,211,250,206,157,155,230, -152,194, 34, 10,169,234,138, 97,240,216,170,163,105,219,130,116, 77,139,106,219, 26,161,125,165, 16,165, 32,137,177,164, 32,205, -239, 71, 36,229,194, 11, 24,122, 14,219, 91, 32, 19,162, 64, 97,142,187,243,227,124,236,188,156, 65,226,209,151,176,154, 34, 98, -179,230,181,124,173,153,249,124,119,224,105,163, 5, 98,162, 53, 90,217,187, 80, 29,173,105,219,142, 7,151, 15,121,240,224,146, -203,139, 11,186, 70, 96, 16, 42,121, 42,107,168, 92, 77,229,156, 28,238, 86,126, 70,227, 12,117, 35, 19,138,186,170,105,170,138, -182,177, 60, 56,127,192,127,249,159,255, 23,124,245,107, 95,231, 15,255,240, 15,249, 31,255,167,255,129, 63,249,211,255,155,159, -124,248, 99,118,187, 91, 14,135, 61,195, 48,138,168, 50,132,163,236,229, 18,166,115, 52, 60,191, 39, 26, 76,249,136,115,157,238, -168,126, 41, 45, 97, 47, 71,233, 55,159,251, 79, 86, 71,233, 83, 5,190,162,178,184, 48, 20,162,202,141, 97, 34, 77,253, 29,179, -159,187,162, 65,149, 2,171,106, 87, 50,193, 43,126,110,165, 21,174, 93,145,208,144, 34,205,234,132,140, 98,216,239, 73,211, 40, -157,105, 8,146,163,238, 35,232, 84, 86, 44,137,112,216, 23,184, 73, 47,221,117, 57, 64,181,150,168,215,153,169,111,170, 6, 87, -213, 88,109,133, 86,199,140, 51,246, 40,109, 9, 62,146, 52, 24,165, 81, 37,111, 61,244, 66, 81,108,215, 29,219,235,107,178, 31, -168,154,150,250,228,148,170, 89, 21,241,219, 28, 35,108, 32, 76, 96, 44,209,143,132,105,148, 28,244, 16, 74,252,231,146, 49, 69, - 44,130, 55,116, 69,119,118, 70, 72, 9,165, 37,130,214, 88,203,230,229, 11, 82, 24,176,237, 25,239,124,237,151,201, 85,203,116, -216, 44, 72, 88, 5, 52,103, 15, 56,108,111,201,113,228,252,233, 59,108, 94,188, 66, 91,232, 78, 31, 81,185,138,148, 60, 15,222, -254,128,195,246,154,235,103,159,178, 94,159,177,189,126,133, 31, 14, 36, 63,144, 99,102,191,185,198,239,182,165,168, 21,222, 62, -174, 34,101, 69,115,122, 42,161, 61,109, 39, 34, 57,100, 66, 83,159,156,138,230,200,143,165, 48,169,192,104,246, 55, 47,201,193, - 11,113, 19, 79,229, 42,134,221, 6,223, 31,104, 78,207,152,250, 3,177,223,163,114, 68, 87,141,136, 99,173, 37,107,199,212, 31, - 32,121,148, 49, 84, 93, 71,101, 45,118,125, 34, 80,150,144, 96, 28,136,136, 29,205, 26,195,238,230, 10,162,167,106, 87, 36,173, -153, 14, 91, 84, 14,184,186, 22,107,234,216,227,247, 59,218,211, 53,202, 84, 52,103,231,160, 53,174,233,200,106, 62, 87,196,233, - 5,154,156, 2,166,106, 81, 74,227,234,138,106,125,130,109, 90,154,238,100, 41,188, 46, 30, 63,102, 28,122, 9, 66,178, 22, 91, - 87,248,221, 94, 80,225,211, 40, 19,156,186, 22, 20,117,153,104, 77,135, 65,130,169, 82, 20,176, 84, 1,208,168,156,133, 35, 17, -147, 16, 85,141,240, 72, 82,191,165,191,189,197,186,170,208, 56, 21,227,126, 67,138,129,186,110,240,126, 92, 10,214, 20, 60,195, -126, 71,219,173,138, 5, 61,225,167,177,220,109, 82,220,171,255,228,191,249,111,179, 86,134,208,111,121,254,195,191,160,114,142, -171, 23,207,229,205,107, 86,180,171, 21,187,155, 43, 50,145,186,187,228,226,233, 83,108,101,185,125,241, 2,171,197, 14,164, 82, -194,213, 45,202, 88,166, 97, 39,213,222, 56,112,241,197,175,241,203,191,241, 15,104,214,103,196, 20,217, 95, 95,209,180, 45, 31, -124,225, 93,190,240,165, 47,240,209,179, 45, 47, 63,249,132,255,243, 95,252,119,140, 87,207,137, 94,198, 26,186,196, 3,222, 75, - 40, 91, 30, 20,101,180, 91,118,210,141,117,172,155,138, 47, 60,189,224,159,124,243,107,252,240,167, 63,229,207,191,255, 67,182, -135, 3, 57, 33,129, 36, 94,194, 86, 38, 47,201,107, 50,138, 20,145,156, 80,227,164,243,155, 66, 40, 73,108, 98,105, 19, 43,180, -193, 52, 45, 31,124,249,171,172, 78, 78,203, 46,250,110,220,190, 36, 49,151,131, 26, 40,236,242,124,151, 17,191,132,170, 72,170, -210, 44,192,178,206,150,189,179,196,231,205,221,252,124,136, 58, 39, 29,246, 52,141,146, 51, 92, 32, 49,179,170, 59,248,137, 79, - 63,250,136,195,230,150,232,131,236,197,203,104, 25, 85,200,114,200,247,152, 31,162,218, 24,242, 52, 49,142,135, 37, 81,236, 77, -157,250,177,241, 90, 41,222,184,107,255, 92, 1,240, 26, 74, 86, 21,142,187, 4, 31,204,137, 83,154,179, 7,143,133, 58,101,101, - 69, 97,141,163,114,245,189, 32,158,121,197, 18, 82, 32,229, 89,161, 46, 98,191, 28, 19, 97, 26,120,249,217,199, 88, 13, 99,148, -116,181,251,137,118,199, 83,130, 18, 81,153,131, 36,179,149,110, 84, 38,239,234, 30, 2,119,206,176,159,247,229,179, 8,112, 24, -194, 17, 75, 94,126,150,186,174, 89,173, 78,120,120,113,201, 55,127,229,239,242,206,147,167,156,156,156,144,128,155,237,134,207, -158,125,198,237,102,195,230,230,150,205,174,167,110, 59,201, 60, 46,185,240,171,182,227,226,226,130,203, 7, 15,120,250,244, 29, -158,188,253, 14,191,247,251,255, 51, 63,252,193,119, 25,203,225,237,189, 95, 2,132, 94, 47,244,142,187,236,123,201, 79, 63,231, -215,231,146,162,254, 54,241,254, 49, 89,173, 80,211, 68,214, 85,148, 48, 70, 81,213,107, 76,211, 10, 20, 36,133,146,137, 93,144, -187, 37, 7,160,110, 86, 12,227, 64, 12, 3, 68,121, 15, 99,206,172, 30, 62, 17,203,156,247,140,195, 30, 91, 53,116,235, 83,198, -195, 22, 63, 5,140, 21,219,165, 42,220, 10, 9, 33,145, 32, 23, 85, 44,165,162,131, 48, 76,135,173,220,103,206, 80,219, 90, 98, - 94, 21,226, 88,137, 35,190,239,177,174, 22,136,139,214,216,170, 34,135, 40, 68,184,172,197, 89, 80, 57,146,210, 24, 87, 17,134, -158,169,236, 52,171,182,197, 15,131, 36, 20,182, 77, 9,161,242, 88, 39, 65, 58,209, 7,105, 52,172,240,106,253,126,131,223,221, -144,149, 76,113,150,235,171,170, 56,127,242, 62,125,223,203, 33,128, 98,220,223, 82,117, 93, 17,163, 25, 92,211, 17,188,231,189, - 47,124,153,103, 63,253, 9, 55, 47, 62, 22, 86,190, 50,156, 63,125,135,155, 23,207, 48, 78, 70,223, 85,211, 80,117,231, 24, 39, - 19,171,166,105, 9,227, 72,221,118,156,156, 95,130,214,188,250,232,199, 76, 67,207,230,229,103,156,191,247, 62,166,228,181,223, - 60,251, 8, 93, 57,113,194, 4,143,137,153,144, 35,171,179, 11,114, 85,227, 55, 27,146,159, 88,157,158,178,189,190,194, 57,195, -254,246,134,186, 91, 51,141, 7,114, 12, 52,171,115, 92,219, 97,170,138, 48,236,232,247, 7,204, 76,203,203, 25,239, 39, 30, 60, -121,159,221,238, 26,235,106,134,205, 43,172,109,209,206, 48,110,182,212,103,151,164,169, 39,196, 72,123,249,144,243,199,111, 17, - 67,196,185,134,253,254,134, 92, 16,220, 50,141, 72, 16, 71,148,173,200, 33,112,122,113,201,161,239, 25, 15,123,210,208, 99,234, - 10,165, 52,245,106, 45,244, 70, 32, 78, 19,126, 56,200,243, 49, 76, 75,196,237,184,223,147,226, 36,250,147,170, 69,187,138,179, - 7,111,145,114,196,144,192, 88,233,210,115, 18,152,216,212, 75, 58, 92,215,137,152,179,170,100,252, 29,139, 80,184,236, 12,141, -210,196,113,196, 52, 53,201, 7,108,229, 68, 19,165,213,146, 77,146,149,194,186,134,230,244,148, 20, 34,219,231,159, 64, 12, 40, - 99, 75,240, 86, 36, 76, 19,205,106, 77,127,216,161, 11,150,154, 18, 54,148,203, 64, 45, 39,129,109,165,232,239, 61,151,212, 63, -252,175,254,235,172,173,225,246,217,103, 92,127,248, 61, 50,208,117, 45,231, 79,222, 97,243,234, 57,227,161, 71, 33,121,206,205, -234,140,105, 60,208,157, 92,240,248,237,247, 56,125,240,136,151,207, 62,193,162,160,114, 12,125,207,208, 31, 72, 83,207,228,101, -127,248,248,131, 47,243, 43,255,248,159,115,123,179, 97,218,111,209, 70,211,117, 39,252,250,175,255, 93,246,222,240,234,122,203, -179, 31,124,151,111,255,193,191, 32,239, 55, 4,239,165,211, 57,202,166, 21,196, 99, 46,150,153, 2,214, 48,134,135,167,107,190, -251,157,111,241, 15,191,249,126,114,229, 16, 0, 0, 32, 0, 73, 68, 65, 84,119,248,231,255,240,183,248,238,143,126,204, 95,255, -248,167, 92,111,183,140,147, 39,101, 33,144, 29,198,177,116,226, 98, 73,243,243,254,113,246,162, 23,232,140, 15, 17,239,163, 16, -198, 10, 45,236,244,242, 49,239,127,249,203,168,178, 3, 60, 78, 16,155, 65, 55, 10,169,174,102,114,219,241,206,159,162, 58, 63, - 62,172, 36, 75,157, 59,117,186,214, 12,227,184, 0, 93,154,186, 94, 8,100,249, 40,141,201, 88,203, 56,142,203, 3, 61,198,136, - 81,138,155, 87, 87,188,122,241,140, 88,148,245,162, 98, 15,229, 80, 55,119, 7, 92,241,135,231, 50,186,126,211,115,253,243,128, -159,227,241,249,155, 65, 64,175, 19,231,244,145, 35,225,248, 16,137, 41,211,158,156,114,114,118,129,171,101,148,103,140, 65,101, -141,181,142,166, 84,241,139, 85, 46, 70, 66,244,229, 80,143,152, 66,210,154,198,129,161,223,179,223,222,144, 67, 96,240, 98,155, -155, 99, 57,238,113,228,243, 93,201,161, 85,194, 89, 93,252,242, 44,204,246, 69, 0,104,140, 0,150,172, 94,128, 62,115, 33,213, -247,158, 16,211, 66,254, 3,168,170,138,223,252,205,223,226,119,126,231,183,104,140,225,253,167,239,178,221,237,249,151,255,219, - 31,242,226,229,115,254,189, 95,249, 85,190,241,213, 95,226,242,242,130, 15, 63,123,193,247, 62,252,148, 67,127,192, 24,203,195, - 7,151,156,159,158,224, 39,207,217,197, 5,255,230,223,126,135,255,245, 95,254, 30,195,110,203, 56,141, 71,251,238,244,185,131, -252,245,145,249,231,176,162,127,219, 52,229,141, 49,144,199,161, 65,119,244,122,212, 29,206, 84, 73, 14,170,116, 58,198,210,172, -214, 12,187, 45, 41, 78,210,233,180, 39,178,211, 43,122, 17,177,201, 86, 98, 91,179, 14,223, 15, 40, 29,101,149,149,101, 71,237, -234,150, 80,198,216,202, 88, 66,191, 35,142,162,160, 78, 37,167, 62,163,202, 88, 82, 99,187, 21,201, 71,217,169,103,137,196, 68, -137,253,171,110, 59,140,214,152,218,209, 52, 29,155,155, 27,214, 39,231, 12,253,158,245,229, 5,253,245, 21,193, 71,186,147, 83, -250,253, 86,232, 96, 65, 88, 1,227,190, 71,233, 76,213,201,212, 64,151,153,151, 63, 28,208, 85, 37,207,131, 24, 22,111,187,113, - 21,145, 92, 86,133, 98, 73,171,187, 85, 73, 32,108, 56,123,252,148, 97, 24,249,244,175,190, 77,244, 99, 33, 31, 90,233,244,186, - 21, 81, 91, 84,140, 66,228,172, 42, 50,153,208,247, 66,246, 76,145,140,166,105, 91, 76,213,209,118, 29,183,207, 63, 18, 97,102, -213, 96,154,150,155,103,159,210,158,156,177,191,126, 73,117,126, 65,183, 58,103, 28,123, 84,140,108,111, 94,209,174,206, 57,121, -235, 29,234,174, 1, 63,209,111,182, 12,227, 1,103, 20, 97, 12,248,105,207,176, 59,200,202, 73,107,148,145,207,119,220,110, 57, -121,240, 80,198,253,222,139, 75, 35, 69,200,177,172, 28, 12,126,183, 97, 60,108, 65, 25,234,238, 4,234, 10,231,196, 94, 56, 29, -118,146,153, 48,202, 14, 59,251,145,170, 93,115,250,228,125,118, 87,159,225,199,158,250,244,130,112,216, 18,134, 3,209, 39,206, -158,190, 71, 10, 2, 20,178, 77, 39,250,159,153, 49, 80,132,179,105,154,196,175, 29, 38,113, 78, 88, 65,145,199,146,142, 88,175, -207, 80, 57, 73, 52,116, 86, 37,175,196,162,200, 88,231,216,222,188, 34,123, 47,177,224, 57,163,141, 35, 14, 91,148,169,229,239, - 84,181,172, 73, 10, 47, 65, 43,168,170,134,213,217, 41,251,237, 45, 41, 38,170,174, 91, 38,132, 74,107,180, 17, 98,166, 54,154, -113,183, 67, 27,141,182,181,112, 47,252,128,107,106,252,174,167, 90,119, 18,122,149, 18, 41, 39,170,182,193,185,134,201, 71,153, - 92,110,111, 37, 95, 94,107,162, 23,146,171, 82,220, 11,163, 50, 90,211,180, 34, 10,220,221,190,148,103,171, 54, 75, 70,129,144, - 6,245, 18,229,171, 78,223,253,154,152,205,146, 48,148,231,113,112,213, 84,152,170,166,118,142,238,244, 28,101, 29, 77,221,138, -202,214, 57, 44,138,203,247,190, 72, 28, 7,250,190,167,114,150,253, 97, 47,194,139,195,129,182,182, 4, 44,167,103,231,116,111, -127,145, 47,253,202,223, 43, 12,116,141,194, 8, 2,211, 86,180,235, 19,198,113,228,195, 63,255, 87, 60,255,203,127, 77,152, 38, -241,171, 46, 48,145, 84, 44, 96, 34, 66,202,128, 5, 30,156,156,240, 23,127,254, 39,252,147,111,126,131,223,248,181, 95,226,118, -187,231,251, 31,126,202,213,237,134,195, 56,210, 15, 3, 62,102, 38,239,233,135,158, 97,156,152, 70,217,149,207,135,185, 32, 96, - 19, 62, 21,122, 92, 17,140,101, 36,148,230,173,119,222,227,241, 59,239,242,250,217, 55,191, 71,166,160,104,115,121,125,249, 72, - 12,167,181,198, 57, 39,172,243,146,144, 20, 99, 42,251, 90,121, 16,121,239,165,147, 77,169,248,246,115, 81, 92,139, 95,218, 57, - 39, 94,233, 35,235, 85, 78, 18, 50, 35,225, 43,177, 68,142, 6,198,253,158, 23,159,125,202,112,216,147, 99, 16,122,209,231,178, -216,203, 52, 33,166,251, 20,180,215,118,233,247, 4,102,234, 46,152,228, 24,153,121,140,242,189, 79,110,227,141,246,174, 16, 34, -182,170, 57,187,120,136,171,171,226,189,148,149,128,209, 86,110,226,114,128, 44, 84, 61,165,136, 69,169,157, 83, 66, 37,208, 41, -113,253,234, 25, 77,235,100, 63,181,221,115,232,195,145, 54, 64,196,107,175,255,124, 57,103, 92, 73,104,203, 71, 73, 88, 11,123, -127, 22, 94, 42,133,177, 74,194,145, 22,175, 60,244,125, 88, 14,245,227,159,249,157,119,222,225,173, 39,111,243,219,191,253,247, -121,249,226, 21,223,254,214,191, 70,107, 77, 87, 32, 53,171,213, 10,107, 44, 62, 70, 62,189,186,101, 28, 5, 78,210,216,138,135, - 23,231,124,225, 43, 95,227, 7, 63,250, 17,127,246,237,111,137,162,121,156,238, 29,230,199, 54,189,191,173, 51,255,119,233,212, -127,230, 65, 95, 66, 75,140,169, 0, 69,189,234, 8,211, 40,190,115,231,228,107,182, 90,178,205,181,209,197,206,213,200, 1, 61, -121,146,239, 69,245,157,228,224,110, 87,107,114, 74,248,113, 36,132, 9, 91, 85,164,105, 2,235,202, 92, 90,147, 81,216,170,146, - 49,165,150, 3,198,212,141, 92,187, 73,214, 48,198, 58,178, 18, 70,194,176,223, 74, 24, 84, 18,125,130,173, 87, 84,149,208,254, -180, 85, 56, 99,208,149, 99,127,117, 35, 33, 79, 74,238,213,172, 65, 47,140,109,208, 81,120,217,245,106, 37, 5,129,177, 76, 51, - 30, 57,103,166,161,199,213, 53,186,106, 73,195, 94,246,232,100,252,112, 0, 91,139,110, 40, 41,170,202,209, 61,122,155,202, 25, -174, 95,189,146,174,154,204,230,217,135,244,155,155, 82, 24,170,133, 50, 23,124,192, 24,201, 89,207, 41,129, 17, 97,165,159, 38, - 48,178,154,137, 5, 89,122,249,232, 29,110, 94,124, 74,158,122,148,109,105, 79,215, 92,125,250, 33,109, 43,193, 36,196, 32,130, - 45, 52,166,233,120,252,193,151,217,111,183,228,113,135,174, 58, 78, 31, 60,150,131,113, 28,216,148,241,117,191,221,144,198, 3, -174, 93, 19,166,177, 0,120, 64, 87, 22, 99, 42,246,215,175,176, 69, 16, 71, 74,212,231,151, 50, 53,219,221,202,202, 32, 71,252, - 52,144, 49, 11,202,219, 85, 21,198, 90,252, 56,160,148, 28,148,202, 84,232,170, 42,248,223, 3,132,132, 89,119,196,126, 68,169, -132, 91,173,201, 73, 97,107,203,246,249, 11,234,213,138,106,181, 22,209,169,214,140,227, 84,114, 11, 20,149, 49, 12,123,185, 63, -172,150,209,121,214, 21, 57,140,210,160,141, 3, 90, 67,123,122,137, 50, 22,211,212,194,188,200,153,254,246, 26,107, 13,190,239, - 73, 41,138,159, 61, 70, 82,240,100, 37, 65, 71,221,122,205,246,246, 26,163, 20,209,139,120,212, 88,199,201,229, 35,246,219, 91, -218,245,154,201, 15, 24, 52,253,110, 47, 5,134, 54, 98, 5, 79,145, 56,150,164, 65, 99,132,187,223,116, 66, 68,108,106,234,102, -205, 84,112,202, 49,120,201, 49,152,167,128, 69,247,161,146, 88, 76,133, 80, 56,200,186,170,238,164,153,209,134,108, 13,214, 89, -249,188, 98,196, 79, 7,172,171,202,230, 44,162,172,152,130,163, 31, 48,117,221,252,174, 51,137, 48,141, 88,138,184, 37, 74,108, - 99,158, 70,246,155, 91,110,175, 95, 17, 38,207, 52,246, 69, 13,171,104, 86, 29, 99,127, 64,165,196,246,246, 26,149, 69,121,190, -189,189,165,169, 42, 48,150,147,179,115,188,159, 24,110, 95,241,234,217, 39,156, 93, 62, 34,219,138, 7, 15, 31,224,170, 26, 31, - 67, 73,154,153,232,206, 31,240,226,163, 31,145,252, 40,123,242, 89, 2,173,100,204, 62, 43,224, 29,138, 47,127,240, 62,223,251, -235,191,196,198,129,191,243,181, 15, 88,175, 87,124,248,233, 11,158, 93, 95, 51, 76,158, 97,148,221,120, 63,120,250,126, 96, 63, -244,244,253,196, 56,200,254, 60,198, 40, 35,167,152,137, 33,225, 99, 34,198, 25,249,106,104,215,231,252,242, 55,127,157,211,139, - 75, 36, 19, 70, 14,232,217,170,101, 75, 76, 36,115, 10, 89, 65,213, 6,239, 23,194, 93, 46,225, 56, 33,220,101,147,207,157,250, -228, 5,192, 81, 85, 21,206, 90,186,118,141,179, 66,163,115, 78, 70, 72,218, 80, 2, 80,226, 61, 44,235, 28,251,154,114, 94,198, -243, 74, 41,218,174,227,252,225, 35,214, 39,103, 12,211, 32,160,130, 69,189, 62,123,154,242,189, 4,168, 95,100, 76,251,250,193, -145, 95,163,109, 29, 23, 3,111,250,158, 75,231, 77,166,233, 78,208,243,195,162,168,200, 83, 73,194,139,169, 4,189,148,104, 87, -165, 50,137,180,208,228,230,177,123,229, 28,239,189,255, 1, 93,183, 38, 68,207,110,187,101,242,199,216,220,226, 79,207,234,115, -218, 0,163,149, 96,115,143,202,180,101,170, 48, 39,203,149, 49,175,124,190, 37,155, 91, 27, 97, 96, 31,145,255,142,187,231,182, - 91,113, 24, 70,254,213, 31,255, 17, 87,215, 87,244, 67,207,118,191,101,179,221,240,242,234,138,171,155,107,110, 55, 55,108,183, -183,188,122,241,138,241,176,197,105,232,125,100, 76,153,111,253,241,255, 65,191,223, 50, 76,163,140, 9,203,161, 62,187, 11,142, - 69,146,111,234,202,255,127,249,165,144,156,244,102,133, 50, 78, 68,155,109,135, 53, 21, 97, 20, 44, 42, 41,226,170, 70,250,249, - 56,128,173,113,182, 34,250,137, 56,141, 84,237,170, 80,177, 68,241, 61,175, 46,102, 27,228, 28, 68, 52,167,152, 69, 63,161, 52, - 84,117, 35,214, 36, 63, 22, 24,135, 22, 29,197,216,203,222, 82,107,180,107,208,192,212, 31,150,253, 50,198,208,173, 79,169,155, -150,126,191,197, 57, 43,144,163, 16,200, 70, 19,167, 73, 62,107, 35, 49,154, 90, 91, 97,132, 71,143,181, 21,202, 88, 86, 23,151, - 66, 26, 11, 1,237, 68,156,149,163, 76, 26,108,213, 96, 42, 89, 13,164, 40, 35,209, 48,142,228,163,159,171, 89,159,209,156, 94, -162, 82,160,223, 9,155,126,232,119,140,251, 77,201, 82, 40,233,130, 89,220, 39, 25, 68, 17, 30, 50, 88, 75, 46, 57, 15,185, 8, - 66,115, 12,229,218, 21,161, 85,115,114,142,171, 91,252, 97, 75,247,232, 9,231, 15, 30,113,216,238,121,235,139, 95,199,251,145, -113,123, 43, 0,176, 36, 62,253,205,243, 79,152, 14, 91, 82,130,232, 7,198,126,207,254,250, 5,211,110,195,246,234, 5, 97,154, - 72,209,163,141, 33,145, 68,213, 62,201,251,158, 99,102, 58,220, 66,158,157, 36,138,170,109,203, 84, 82, 51, 28,118,228,156,169, - 79, 46,100, 69, 48,238, 33, 38, 84, 78,133,121, 48, 9,196,169,237,164,249,106, 27,180,210, 76,125, 79,142,130, 19, 71,219, 66, -217,172,120,240,222, 87,217,223, 92,137,128, 24,141,170, 44,204, 84,207, 20,201,209, 19,166, 3,113, 24,228,251, 28,118,104, 45, - 24,243, 56,179,216,135, 3,202,104,170,166,193, 53, 43, 40, 20,198,208,239, 25, 54, 55,132,126, 47,238,146,114,224, 26, 43, 96, -180,170, 91, 97,171, 74, 48,227,193,227,199, 65, 98,177,199, 81,126,150, 36,227,251,126,119, 75,215,173,177,182,162,223,222, 50, - 13, 61,218, 57,180,169, 74,200, 84,194,212, 13,117,187,150,247, 52, 70,186,243, 75,108,177,136, 91, 99,161, 80, 66,115, 74,226, -190, 72,178, 91, 79,177, 76, 12,163, 76,143,179,130,170,109,229,185,173,133, 99,226,202,251,175,148,194, 54, 53,205,250, 20,239, - 3,198, 73,209,107,235,134, 24, 34,198,138,183,191,110,215,152,136,250,221,224, 39, 73,144, 9, 94, 82,147,148, 66,165,196, 52, -142, 84, 86, 18,103,114,140, 12,187, 45,155,155, 43, 76,221, 74,166,242,245, 21,166,118, 28,110,174,216, 92, 61,103,232,247,140, - 67, 79,229, 12,187,219, 91,166, 97,196,185, 10, 63,121,108,244,108,111,174,121,247, 75, 95,193,117, 39,140,211, 72,206, 48,236, -247,248, 98,129,113,206,177,127,241,169, 92,160,139, 66, 92, 14, 48, 82,198,104,203,147, 7,231,188,247,228, 17,219,221,134, 56, -236,249,123,191,242,117,158, 61,127,193,199,207, 94,177, 27,122,246,135,129, 93, 63,210,247, 35,125,223,115, 24,122,134,126, 96, - 28, 71,166,201, 19,125, 42, 81,169,146,141,238, 83,190, 19,189, 41,195,197,227,167,124,240,181, 95, 42,161,138, 37,174, 80, 73, - 44,233, 44, 4,155, 69,129, 25,137, 40,245,222, 47, 57,206,179,103,219,135, 99, 58,220, 76,170, 58,122, 64,151,238,125, 62,252, - 99, 10, 82, 77,134,105,241, 86, 47, 10,225, 50, 5, 88,172, 98,179,197,143, 59, 21,241, 60, 38,174,219,150,139,203,135,180,221, - 10,231,106,162,247, 24, 3, 42,107,224,223,109,239,250,249,223,171, 5, 81,187, 36, 82, 41,245,198, 29,251,221,129, 47,235, 0, - 87,246,127, 20,212,235,236, 67,159, 19,134, 84,177,154, 9, 69,106, 14,181, 60, 2,202, 68, 81, 37,251, 24,216,236,247,220,110, -119,220,222,108, 10, 79,252,110, 85,115,103,129, 84,247,138, 14,117, 71, 80, 89,194,127,102, 33,230,220,186, 43,238,162,178,164, -102, 43,211,152,194, 53, 56, 94,163,196,121, 47, 92,248, 6, 31,253,228, 39,236,246, 27,198, 97,162,239,123,130,159, 24,135,158, -195,126,199, 97,191, 99,187,221, 50, 13, 3,195,208, 83,187,154,171,155, 43,222,253,210, 87,248,243,111,125,139,253,118,139, 47, - 7,250,113,177,240,249,131, 91,221,203, 66,120,253, 84,214,218, 20, 92,172, 89,172,133,191,208,103,157,149, 88,147,144, 7,238, -140,111,182, 70, 51,244,135,187, 4, 49,146, 28, 8,128, 50,150,148, 35, 57, 6, 84,202, 69,237,157,239, 60,216, 86,172, 76,174, -170, 68,152,148,210,114, 15, 64, 22, 45, 14, 37,124, 72,105,218,213, 10, 63,121, 97,178,135, 88,246,205, 82,104,168,226,227,150, - 81,112, 70,187, 90, 58,107, 91,203,218, 75,203,250, 38, 22,139, 97, 24, 39,252,161, 47,182, 55,177,117, 90, 39,148,176, 56,138, - 55, 57, 78,226,157,247,227,132, 31, 5, 93, 27,195, 68, 14,114,152,200,158,124,196,143, 3, 57, 4,210,228,203, 53, 41,247,163, - 42,157,189,107,107,140, 43,176,147,171,231,197,178, 39, 69,139,109,107,210, 56,150,124, 3, 3,218,136,150,164,164,167, 25, 39, - 54, 54,107, 37, 93,208, 58, 43, 66, 76, 43, 19,129,217,118, 21,253,196,184,187,165,233,206,193, 89,252,110,199, 68,164,118, 53, - 73, 65,236,123,161,244, 41, 67, 74, 35, 57, 68, 84, 14, 52, 39,103,164,225,192,184,219,150,252,109, 81,108,163, 69, 33,238,170, -154,241,176, 21,149,189, 53, 18,227, 73,198,184, 6,109,138,125,211, 88, 17,160,141, 35,214, 89,206,222,122, 7,103,100,125,104, -235, 22, 63,138, 95,122,206,163,207, 89, 44, 95, 97, 26,241,135,189,220,207,126, 4,165,152,166,158,105,191,167,238, 86, 2,253, -105,239,172,207,246,244, 20,187, 90,163,109,141,237, 86,242, 62, 36, 48, 77, 71, 78, 89, 68,117,197, 83,158, 70, 17,155, 37, 47, - 93,235, 60, 50,207, 74, 44, 93,113,148,200,106,227, 42, 25,229,219, 26, 93,166,160,106, 22,110,134,128, 31, 6,166,177, 71, 27, - 9, 22, 74,209,163,148, 89, 38,121,169,136, 65,167,126, 71, 70,179,190,124,200,225,230,134, 56, 13, 52,167,167,212,235, 19,186, -211,243,114, 70, 36,140, 85,168, 36,238,134,122,125, 42, 54, 83,239, 81,206, 72,145,172, 32, 36,201,104,168,218,150,147,139, 75, -148,117, 24,227, 4,106, 84,213, 40,231,112,117, 43, 19, 46,165, 48, 85, 77,214,153,122,181,194,143, 35,195,126, 79,189, 94, 9, -123,161,109, 5, 36, 86,183,232,170,161,110, 86,216,174,193, 88, 99,127,183,182,182,236,178,197, 11, 61,119, 8,190,216,169, 98, -140,228, 16,168,156, 69,229,204,238,230,213,124,226,114,245,242, 57,211, 32,135, 38, 9,234,170, 46, 65, 39,242,128,110,155, 70, -198,164,251, 61,117,221,242,252,167, 63, 96,154,122,170,238, 4,101,140,188,249, 5,248, 81,175, 78,121,249,209,143, 37,163,118, - 86,125, 23, 90,144,214,154,202,104,222,122,112,193,111,255,198,111,114,187,235,153,246, 87,228,156,248,248,197, 21,219, 97, 96, -191, 63,176, 59,200,193,126,232,123,250, 97, 88,124,230,163, 23, 53,187, 79, 16,202,126, 55, 37,200, 81, 24,244,182, 89,241,133, -175,124,131,183,222,121,151,144,227,145,194, 61,139,205,109,182,150, 45,108,120, 81, 97,207, 15,223, 80,186,231,249,128, 19,226, -154,185,247, 32, 94, 24,246,249,206, 3,157,146,208,236,124, 8, 12,195, 32, 86,184,153,122,231, 61,241, 72, 68,167,142,108,126, -115,135, 57,127, 63, 17, 82,221,129, 96, 92,221,112,118,118,193,219, 79,159,242,107,223,248, 6,219,253,158,170,170, 24, 75, 62, -251, 47,218,229,189,222,173,207, 93,244,235, 35,250,123, 7,232,113, 58, 93,204,104, 87,209,174,214, 11, 93,107, 30,217,205, 52, -188, 59,141,128,236,183, 99,138,196,114, 45,230, 36,252,245,148,226, 81,114,165,196,184, 14,251, 61, 41, 77,132,123,135,250, 93, -166,252,253,117, 66,177,142,149, 0,133,187,194,104, 78,230,186,163,167,169, 35, 22,119, 46, 7,120, 40, 43,139,187, 67,253,238, -208, 29, 14,226,178,152,134, 99, 81,155, 95,128, 46,177, 20,200,126,154, 64,105, 14,135, 3,104,203,233,217, 37, 63,249,209,247, -229, 58,154, 99,131,143, 88,208,175, 31,218,182,110,168,187,174,176,241, 53, 70, 91, 81, 95,107, 77,221,117,196,156,113,117,139, -209, 86, 68,138, 85, 85, 70,216,241,103,124,186, 26,109, 92,121,112, 24,114,242, 50,125, 82, 37,116, 71, 43,252,208, 47, 78, 14, - 91, 85,101, 44, 92, 75, 34, 86,201, 20,200, 57,163,173, 65,149,181,135,240, 8, 12,182, 28,118,218, 56,146, 23,166, 54, 89,118, -242,112, 52,253, 50,134, 20, 51,214,153, 5,125,153,147,236,176,179, 50,232,156,240,126,162, 89,159, 74,234,218,236, 44,209, 98, -149, 37,137, 77,205,104,131,182, 6,215, 84, 12,125,191, 60, 87,210, 36,206,136, 28,198,194, 66, 80, 24,107,150,235,200, 24, 45, - 58,147, 16, 37,228,168,236,187,231,130,111, 89,131, 20,118, 65,138, 81, 0, 62, 94,166,151, 85,179,102,191,187,197, 31,118,168, - 74,172,190,211,225,192,180,223, 82,107, 75, 44,186, 13,137,173,238, 74,102,187,145,125, 71, 18, 5,179,115, 86,198,254, 41,137, - 85, 42,196,146, 17,239,200,126, 18,141,135,173,216, 93, 95, 49,236,110,209, 37, 4, 42,236,183, 68,157, 48,198, 17,147, 71,187, - 6, 69, 70, 87, 21,227,110,131,138,210, 73, 74, 71, 39,207,147,170, 28,198,126,216,201,228,192, 24, 17, 31,230, 88, 64, 90, 34, -214,210,214,201,136, 26,104,218, 86, 50, 18,108,141, 94,157,208,180, 43, 65, 11, 23, 17,171, 92, 11,250,232, 25, 80,166,109,229, -153,100,235,154,243,119, 62,224,209, 23,190,194,197,211,119, 56,125,244, 4,109, 29,175, 62,252, 9,164, 72, 30, 71, 14,215, 47, - 25,111, 94, 17, 14,123,198,205, 53, 49,121,113, 65, 4,143,113, 21,182,169,209,174, 42,170,253, 17,235, 26,180,117,203, 68,168, -106, 58, 41, 2,235,150,122,181,198,181,107,185, 86,167, 65, 10,116, 43,157,116, 12,190,220,191,153,166,235, 22,123, 98,158, 60, -166,170, 68,231, 83,186,250, 28, 68,167,212,172,215,164, 8,174,169,152,134,189,224,191, 21,146,124,103,197, 99,175,180,165, 62, - 57, 21,186, 93, 63, 74,102,129, 49, 37,116, 69,188,238,214,105,177,200, 25, 71,127,123, 45,216, 91,171,165, 8, 69, 34,154,179, - 82,114, 63,205,137,154, 5, 13,155,201,216, 74,152, 30,201, 7,252, 52, 82, 85, 85, 17, 37, 3, 86, 17, 14, 7,140, 50,234,119, -231, 78,245,110,135,154, 72,196,162,216, 83,146, 55,157, 37,176,195,123,143,202,176,185,190, 98,119,125, 77,191,185,101,232, 15, - 12,251, 61,187,219, 27,246,219, 91, 54, 55, 87,164, 24,216,221, 94,179,187,189,229,176,221,112,216,221,178,219,110,137,211,196, -179,143,126,194,230,197,167, 84, 77,195,217,163,199,100,165,232, 86, 43,208, 22,107, 13,155, 79,126, 92,118, 9, 44,176, 25,149, - 21,219,155,107, 46, 78, 78,249,244,249, 11, 82,134,143, 63,250, 17,251,161,231, 48,120,118,251, 61,219,195,129,253,225,192,208, - 31,232,135, 65, 72,112,163, 39,248,192, 20, 11,201,108, 57, 72,138,164, 74, 41,214,231,151,124,233,151,126, 89, 56,219, 90, 47, -169, 97,186,116, 44,174,236, 81, 77, 17, 82,205, 7,198, 49, 93,237,206, 70,148,143, 60,246,102, 25,217,207, 7,250,241, 3,123, -206, 67,159, 57,231,199,193, 47,247, 44,108,206, 45, 10,208,153,210,198,226, 71,190, 75, 11, 91, 50,229, 99, 66,199,196,186,169, -249,173, 95,251, 85,190,255,195,239,145,115,228, 63,250,103,255,156,205,205, 75, 54,219,237,207, 13,109,249, 89,135,123, 94,136, -126,234, 40,234, 85,125, 78, 89,173, 11,253, 47,163,104,154, 21,182,174,238, 40,103, 37,216, 98,166,225, 29,191,119,243,244, 34, -198, 57,184, 37, 45,162,190, 88, 40,100, 58, 11,255, 64,124,246,133, 61,127,212,201,206, 76,131,121, 79, 76, 78, 84,206, 96,116, - 49,126,228,187,168, 83,238,125, 94,250,232, 8,157,197,116,185,104, 29,242,242,112,158,209,158,119,113,155,178, 27, 59, 94,177, -136, 80, 80,151,196, 63,121,136,132,148, 75,124, 36,116, 37,182,114,115,253,106, 73,103,122,125,111,190,216, 55,181, 40,157, 5, -103,233,137,217, 23,182,125, 81,225, 55,173,236, 30, 67, 16, 37,172, 82, 18, 15, 89, 80,173,117,183, 46,146, 10,185,238,151,185, -139, 86,212, 39,103,203, 1, 61,175,188,100, 4,110,138, 54, 68, 17,162,132,202,228, 66, 1, 20, 58,154, 64, 49, 4,177, 43,110, - 20,178,164,253, 25, 99,136,201,151,189,186,198,247,187, 34, 40,147, 3, 32, 5, 65,112,198,121, 28,159,228,247,202,150,238,204, -218,226,137, 22,152,136, 93,173, 57,127,235, 41,166,233, 24, 55,183,146,100, 55,201,232,222,212, 98, 73,178,206,201, 88, 59, 38, - 14, 55, 55,228, 48, 45, 66, 83,109,172,160,120,251,253, 34,220, 19,107,155,145,255,127,241,148, 7,223,203,103, 88, 10,143,153, -239, 80,181,181, 0, 63, 10,233,176,170, 92, 57, 8,100,122,112,184,189, 38,142,131, 68, 75,143, 7,252,208, 83,183,141,116,250, - 37,171, 93,105, 5, 70, 48,163,217, 57,153, 46, 84, 53,196, 76,240, 35,227, 48, 16,167, 81,158, 49,182, 42, 55, 79, 20, 97, 93, - 41,116, 4, 29,170, 57,127,235,169, 92, 83, 5, 77,157, 67, 44, 66, 62, 45,239, 77,242, 18, 46,101, 4, 68,149,166,161,104, 36, -214, 98, 43,156,198,133, 34,152, 10,192,132,194, 79,152,113,180, 74, 25,234,149,140,148, 87, 23, 15,139, 80, 95, 51,245, 3,222, - 15,130,196, 53,150,135,239,127,145,211, 71, 79, 88, 61,120,200,250,193, 99,161,198,149, 49,244,188,246, 66,101,129,118,189,251, - 62,202,213, 68, 12, 89, 43,134,126, 75,242,131, 20,192,202,224,170, 10,215,201, 78,221,117, 39,130,183, 86, 6, 99, 53,186, 36, -137,234, 82,105, 87, 77,131,237, 86,116, 39, 23,216, 50,249,176, 93, 71,213,173,200,126, 44,197,173, 34, 28,246, 66, 13,212, 74, -248, 16,211, 72,152,119,218, 5,139,110,173,132,243,104,115, 87, 88,205,228, 69,148,198, 85, 21,202, 58, 92, 85,129,130,118,125, - 90,176,174,213,178,182,171,219, 14,162, 76,160, 82,136,128, 64,151, 66, 10,140,251, 3, 58, 73,120, 80, 8,129, 28, 36,139, 67, - 87, 53, 85,229, 74,188,178, 20,183,211, 56,146,189,168,229, 83,150, 40,234,186,145, 17,123, 78,119,177,221, 49, 6,234,110,133, - 15,113, 81,222,123, 31,208, 40,148,169, 92, 54,186, 42, 15,163, 80,160, 28,186,140,200, 68, 68,164,141,166,109,133,197, 27,124, - 98, 26,101, 39,227,189,151, 81,189,149, 49, 82,246, 35,171,147, 83, 34,136, 74, 59,138, 61,237,228,228, 4,235, 44, 7,159,136, -185, 80,180, 92, 77,189,106,184,120,252, 46,221,233, 37,103, 15, 30, 82,119,107,214,167,167,124,252,103,127, 68,216,221,146,115, -184, 3,207,164,204,245,139, 79, 57,105, 27, 98,132,186,174, 24,251, 45,181, 17,181,237, 52, 77, 12,227,184, 16,225,252,228, 9, - 94, 68,112,169, 28,230,243, 77,190,140, 38,181,229,236,225, 83,222,251,194, 23, 36,240,100,238,224,202, 27,172,203, 7, 63, 87, -179,179, 34, 61,197,184, 80,212,142,249,232,233,136,166,118, 39, 16, 11, 50,242, 42,129, 33,198,152,123,244,178,101,164, 59,179, -217,103,220,170, 18,146, 89, 42,241,175,199,136,214,121, 4,239,189, 95, 48,171,243, 40, 57, 6, 25,135,174,234,138,183, 31,158, -243,253,191,249, 46,155,195, 30,239, 61,239,125,240, 69,126,240,189,191, 98,187, 59,208,247, 35,199,197,220, 47,162,152,254,124, -247, 30, 63,135, 71, 61, 38,184,133, 4,174,169,105,186, 53,202,222,241,252,117,113, 22, 28,103,192,207, 41,105,199,223, 71,171, - 59, 75,153,214,119,133,139, 45,147,130,231,159, 61,147, 49,105,140,159, 19,240, 29,227, 82,180,202, 52,165, 3, 75,197,173,144, -239,248,186,247, 82,178,238,212,237,105,241,176, 79, 62,148,110,189,136, 21,179, 94,248,242,115,129, 51, 3, 85,142,127,213,117, -141, 82, 98,235,201,139, 37, 76,246,170,151,143, 30,227,189,103,115,125,117,111, 84,254,250, 4, 69,148,188,229, 16,201,243, 13, - 61,145,115,162,114, 13,193, 71, 92, 85, 9,246, 53, 76,196, 40, 2, 43,235,172,120,144, 11,247,193, 24, 75, 44,228,185,156, 3, -228,162,250,213,242, 26,181,117,228,233,128,159, 60,174,145,152,215,249,189,141,229,122,167, 96,123, 82, 89,109, 88,107, 8,197, - 22, 20, 39,209,125,100, 35,216, 79, 99, 68, 36, 90,117, 13,195,237, 13,214, 58,130,151,140,131, 20, 37, 48,199, 53, 53, 33,133, -101,197, 81,175, 86,178, 75, 14, 94, 68, 87,195, 1,237, 42, 50,170,116,151, 35, 74,207,162, 71, 39, 99,102, 91,225,180, 33,146, -136, 94,138, 29,241,163,231, 50,182,207, 98, 77,165, 36,215,217, 10,215, 52,119,247, 90,140, 36, 47,235, 62, 99,181,168,155,141, -146, 88, 87, 99, 36, 72, 68,137,210,222, 15,123, 81, 85,231,132,214,118,177,221,106,227,176, 93, 71,152, 2, 42, 70,236,170,197, -168,138, 76,100,218,109, 36,144,200, 40,146,177,204, 97, 4,139,179, 34, 69,177, 61,133,128, 63, 28, 72,222,203,206,182, 8,250, -156,109,104, 26, 73, 23, 75, 49,225,125,164, 62, 59,195,239,183, 36,239,169,187,149,236,126, 55,183,242,220,210,242, 60,142,227, -136,174, 43,121,253, 41, 98,235,150,156, 53, 85,123, 2,113,162,223, 92, 19,194,116, 84,220, 74,126,135, 43,185, 2, 74, 25,218, -211, 83,153, 40, 93, 62, 64,215, 53,182, 93,227,180,198, 7, 95, 16,192, 70, 0, 80,198,144, 82, 96, 60,236,229, 90, 73, 9, 63, - 28, 24,119, 27, 14,183, 27,180,134,230,226,193,146,195,174,141, 33,249,136, 31,123, 82,156, 56,121,240,136,148,181,172, 24,154, - 53,193,247,184,110, 69, 46, 98, 54,101,107, 9,231, 41,153, 9, 41, 6,201,174,139, 17,109, 13,166,178,132, 97,146, 21, 76, 6, - 21, 70,108, 41, 94,134,205,141, 8,135, 99, 92,132,203, 42, 73,152,144, 2,148,117, 34, 86,179, 22,219,212,114, 14,204,153,231, - 41, 97,108, 69,138,129,105,242, 84,109,135,117,150, 97,191,163,105, 86, 36,149, 8,195, 88,252,227, 65,166, 54,206,129,117,212, -171, 21, 83,193,165,147,165,152,215, 85, 3, 33, 72,161,163, 13,193,135, 50,242, 87,139,223, 92, 44,183,242, 76, 9,105,126,222, -204, 52,189, 73,114, 20, 98,148, 32,164, 28,197, 94,170, 16, 18,100,185, 79, 45, 80, 48,142,110, 97,108,235, 82,125,172, 86,107, -198,113, 96, 42, 55,236, 56,142,184, 82, 65, 43,149, 72,217,139,220, 41,138,122,155,156, 49, 10,214,171, 53,155,156,197, 2, 48, - 14, 88, 45, 33, 14, 4, 79,240, 94,114,110,199,158, 56, 57,134,155, 27,169, 90,180, 41,227,232,128, 5, 78,215, 43,156,179,104, -173,168, 92, 37,209,149,211,192, 38, 78,120, 47,140,222,186,174,208,185, 98,119,243,146,148,194, 29, 25, 46, 68,124,144,195, 60, - 22, 47,232, 34, 96,155, 31,160, 74,113,114,118,193, 59, 95,250,146,252, 12, 71,156,115,217,177,136,240,205,154,146, 72,150, 67, - 1,124,136,203,217, 20, 74, 89, 76,162, 28,181,214, 82, 85, 85,233, 44,147,140, 54,181,161,109,170, 69, 76, 39,126,217,226, 31, - 95,186,118,241,251,106,173,113,165,160, 80, 41,149, 15,210,209,212,134, 97, 28, 8,161, 88, 29,138,189,111, 62,224,231,209,104, - 42, 10,122, 91,215,212, 64, 99, 18,127,246,103,223,166, 31,101, 21, 17, 99,100, 56,236, 81,100, 42,103,152, 38,125,151, 61,254, - 26,150,247,245,238,251,103,217,161, 94,223,167, 23, 18,170,160, 85,115, 46, 1, 26, 50,126,180,152, 5, 76, 19, 99, 90, 16,185, -119, 42,244, 35,251, 92,177, 83, 37, 53, 71,168,138, 14, 98, 6, 16, 37,163,142,160, 43, 63,199,202,149, 51, 85,101,151,232, 77, - 85, 56,180,234,136,121, 48, 23, 87,220, 67,214,136, 47, 54, 33, 93,169,210, 80,219, 6,227,172, 64, 31,128,113,232,101,172,103, -220, 50,206,227, 8, 74, 52,142,227,162, 63,200,121,246,252,203,251, 21,124,144,170,252,104,186,243, 57,140,155,182,104,215, 20, -100,109, 22,129,214, 20, 36, 86, 84,233,162,228,181,242,112, 46,158,109,167, 5, 12,227,199,210, 93,207, 32,169,201,163,180,162, - 89,159,160, 85,226,176,221, 18, 99,194,232, 8, 89,147,198,177,216,129,140, 92,247, 85, 35,202,239, 24, 72,125, 47,120,212, 73, - 58, 64,173,197,161, 48,141,195,178, 67,143, 57, 99,181,232, 37, 92,201, 53,239, 86, 43,134,195, 30, 87, 58, 13, 93, 10, 85, 99, - 42,148, 74,139,125, 53,233,132,209,150,225,112, 16,222,133,130, 20, 2, 57, 38,124, 56,160,181,145, 38,193,128,171, 90,156,177, -101, 29,209,202,244,161,164,119, 85,117,203,216, 79, 98, 7, 42,152, 91, 17,202, 89,177,149,185,134,172, 52, 62, 39, 12, 48,237, - 7,185,145,231,156,130,152,100, 20,156,133, 2,103,234, 70,186,224,190, 47,208, 28,181,140, 93, 83,140,210,217,106, 83, 10, 38, -201,249,182, 93, 3, 73,161, 79, 90,226,112,144, 3, 44, 75, 97,225,251,219, 5,157, 45, 9,108,101, 38,180,151,136,232, 92,162, -122, 83,142,212,205,169,248,236,147,103,119,115,189, 4, 52,105,224,240,234,153, 76,227, 92,205,161,223, 75,166,248,194,130, 40, -175, 5, 32,102, 70,223, 75,129,149, 7, 98, 12,178,222, 48,118,113,250,184,102, 77,187, 58,161, 41,224,149,238,100,205, 20,164, - 80,148,142, 59,224,131, 76, 59,199,253,150, 49, 38, 98, 24,197,101,226,106,166,225, 64,242,178,110, 2, 69,211,173, 9, 83, 47, -201,122,109, 71,213,157,130,211, 76,251, 61,113, 24, 80, 90,227,195, 36,162,198,202, 80,153, 83,137, 21,237, 58,226,212, 19, 75, -154,162,239, 15,203,179, 82,135,128,107, 87, 12,251,145,232, 7,148,213, 88,219, 72,168, 82, 85,147, 38,177,246, 78,195, 30, 5, - 84,174, 34,135,137, 48,236, 89,159, 95,128,115,164,113,100, 56, 28, 88,157, 93, 98, 84, 46,174, 36,150, 41,169, 80, 15,181, 48, - 48, 74, 94, 5, 42, 17,211, 40,215,132,159,240, 36, 82,168, 80, 10, 9, 35,170,220,130, 28,214,214,112,178,126, 64,156,196, 46, - 61,238,246,104, 39,141,151, 46,118,232, 28, 5, 68,163,157, 45,215,130, 88, 57,181, 49, 76, 67,143, 53,154, 80, 38,225, 49, 6, -180,213,196, 36,120,226, 48,149,231, 68, 17,100, 83,105,140, 66, 4,164,218, 96,107, 39, 43,190,113,196, 26, 45,251,155,105, 44, - 17,114,214,150, 40, 56,176,214,208, 52,103,146, 62, 54, 78,232, 70, 14,166, 76, 68,107,119, 39,188,202, 18,167,106,173, 45,234, -234, 76, 93, 87,172,234,154,151, 37, 43, 59, 21, 26, 85,242,158,132,151, 49,119,152, 72, 74, 18,205,194,140,209, 36,131,134,151, -251, 87, 92, 94, 92,208, 31,122,166,105, 36,133,204,233, 90, 70, 87,135,221, 65, 84,163, 39, 39,152,213,154,243,199, 31,176,185, -126,206,245,237,103, 75,148,102, 90,108, 92,119, 25,198, 50,142,213, 75,168,194,201,217, 25,159,254,244,167,212,133, 89, 61,231, -112, 27,123,196,249, 86,122,177,184,220, 37,194, 73, 36,232, 44,162, 51, 71, 1, 39,226,237,149,239, 49,179,219,149,146,180,174, - 76,201, 21, 47, 1, 54, 51, 20,134, 35,170,156,117,142,170,170, 80, 40,198,105, 98,115, 59, 44,157,120, 88,162, 75, 53, 77,211, -200, 13,114,164,184, 79, 33,113,121,178,162, 81,145, 63,255,139,239,136, 56,107,154, 74,167, 15, 97,216,242,240,226,148,205,118, - 95,144,184,211,231,198,190,111, 82,180,191,233,144, 63, 14,147,153,223, 99, 81,226,151, 66,195,106,180,181,133, 43,144,153, 74, -118,249,220,145,223, 81, 97,213,178,135,141,113, 6,246,132,101,197, 49,143, 56,245,145, 56, 47, 70, 24,246,253, 2,238,121, 61, - 89,238,120,140,110, 52, 56, 87, 82,169, 99, 42,246,107,125,143, 91,159,231,252,117,197, 17, 64, 72,145, 77,197,234,228,156,126, - 24,201, 33, 96,148,102,236,123, 80,241, 46, 26,211, 88, 92,211,242,228,225, 91, 40,149,249,248,199, 63, 42,171,141,227, 81,250, -113,108,182,220, 7,227, 56, 46, 58,150,159, 49, 14,161,174, 27, 66,138,101,148, 89,248,242,202,226,227, 88,186, 35, 33,236,205, -233,124,214,213,248, 97, 36, 71, 47, 96,163,130,218,213, 42,139,149,212, 74,186, 83, 80,165, 24,202,101,143,108, 21,202, 9,246, - 56,250,132,213,166,208,252, 34,132, 88, 70,251, 94,236, 99,182,102, 26, 7,121, 99,149, 16,186,100, 34,160, 9,113,162,106, 79, -136,211,132,113,150,105,146,177,126,213,117,140,253, 32, 5,112,140, 4, 21, 48, 40, 9, 37,162,116, 45, 73,194, 86, 68,248,102, -136,253,142,156, 11,210, 21, 45,133,212,148,113,173, 0, 90,194, 56,149,184, 86, 95,196,152, 19,253, 32,226, 56,227, 4,231, 41, - 7,168,172, 6, 82, 41,204,181,118,144,228,103,203, 74,152, 13,218, 72,215, 29, 66, 57, 28,149, 70,169, 64, 86,147,240, 50,148, -194,213, 13,126, 60,144,115,146, 67, 60, 75,183, 71, 78, 76,195, 1,165, 12,205,233, 9, 83,144,181,161,239, 15,100, 63, 44, 19, - 14,121,198, 33, 25, 12,165,128, 77, 73,118,230,198, 24,210, 52,148,235, 83,254,238,176,219,210, 89,199,238,246, 26,103,141,136, -149, 83,194, 84, 14,229, 5,206,149,198, 3,170,178,242, 94, 90, 91,148,221,147,168,236,181, 38,145,208,182,194, 86, 21, 85,211, -226,186, 78, 24,225,198, 82,183, 45,174,110,169,154, 26,109,170, 34,130,126,201,238,246, 10,180,102,119, 53,162,172, 35, 6, 79, -216,111, 72, 89,209,118, 45,245, 74,104,110, 97,242,104, 45,170,235,186, 54, 12,219, 91, 17, 79,150,184,219,172, 20,251, 87, 55, -212, 77,141,169, 90,249, 28,181,220,123,140,194,100, 55, 85, 77, 56,236,201, 94,156, 14, 42, 37, 84,101,152, 98,160,173, 27, 66, - 24, 81,105, 66,185,122,209,189, 56, 87, 19,167, 9, 91,201,253,169, 93, 77, 56, 92, 99,157,101, 10, 17,140, 98,183,189,161,114, - 21,218, 88, 17, 44,135, 9, 99, 44,245,170,163,170, 42, 14,219, 45,121,242, 68, 50,214,233, 99,177, 80, 17,237,170, 69,215,144, -185,155,196,218,170, 38,101,141,173, 26, 80, 3, 62, 69, 52,224,199,145, 20, 3,253, 86,225,170, 90,168,135, 41,147, 14,101,138, -165,164,240, 27,251,131,172, 6,212, 26, 83,116, 21, 50,129,128,186,149, 53, 18,193, 75, 61,111, 52,218, 86,228,232, 33, 38,140, -179,168,194,212,239,214,235,187, 53,102,209, 32,105,175,241,131,151,107,247,242,225,131, 76, 74,236,247,123,241, 69,151,132,167, -217, 86,112,204,125, 94, 66, 43,172,101,183,221,202, 40,131,153,148, 3,206, 90,218,182,165, 91,203, 72,200,143, 19, 67,121,152, -167, 24,137,153, 5,109, 9,144,141,154,123,222, 69,184,163,114, 70, 35,123,171,203,139, 11, 66,142, 76,227,200, 48,244,156,173, - 59,166,201,139,186, 56,137,234,207, 53,141, 64,243,235,134,243,211, 51,198,194,105,150, 67, 34,210,247,123, 66, 12,164, 56,143, - 87, 29,221,122, 77, 93,215,244,135, 3,219,155, 77,121, 56,189,198, 31,215,234,104,111, 74, 17,129,148,124,242,124,140, 33, 61, - 2,179,168,251,172,243,187,144,148, 55, 24,130,185,235, 12,151,172,101,165,142,128, 45,175,131, 69,212,231, 20,208,188, 70,122, - 67, 65, 61,135,195, 20, 97,159, 88,188, 50, 86, 25,126,253,215,190,206,205, 26,201, 54, 75, 0, 0, 32, 0, 73, 68, 65, 84,205, -134,237,126,207,245,205,142,253,232, 23,203,221,155,188,229,233,181,108,245,159,213,189,139,135, 93,149,201, 65, 65,252, 58, 11, -218,144,185,139, 82,157,211,168,230,195,124,166, 59,205, 48,159,227,174,127,222,113, 11,171,125,134,249, 20,174,119, 8,244, 37, -199,252,117,139,215,241,161,174,138, 15, 84,171, 84,186,114,150,113,214,113, 64,208,113, 26,214, 44,134,114, 77,199,234,228,156, -113,242, 12,253, 1,171,149, 92,203,214, 8, 94,210, 24,124,185, 1,219,174,195,218, 74, 70,223,198,136,224, 49, 75, 39, 32, 98, - 74, 41, 52,239, 89,253,170, 90,174, 81,239,223,248,158,186,170, 45, 22, 48, 1, 77,184,186, 70,105,135, 34,209,239,110, 23,207, -243, 92,148, 44,144, 24, 37, 84, 42,237,236,162,231,240,147,167,106,107, 73,105,139, 1, 84,150,189, 34, 25, 91, 75,140,168, 50, - 70, 2, 48,130,172,179,148,177,152,202,225,234,142, 56,141,140,251, 29,166,114, 24, 43, 22, 47, 91, 50,164, 33,211,111, 55,146, -251,236,106, 41,144, 80,197,205,209,200, 52, 47,149, 14,184, 64,127,178,204,189,139, 54, 68, 45,110, 5,215,118, 40,237,176,221, -154,105,115, 85,130,160, 44,211,184, 45,241,158, 53,117, 85, 49, 14,135, 37,108, 38, 83,118,248, 33, 16,167, 94,208,172, 40,225, - 52,204,176,170, 34,185, 80, 86, 14,121,138,118, 67, 27, 17, 20,230,162,116, 87, 57, 72,161, 93,236, 92,202, 57,121, 52,232,146, - 28, 24, 37,215, 91, 70,245,242,181,105,154,168,187, 86, 30,184, 49, 10, 30,182, 64, 79,140, 17, 53,244,108, 59,245,211,192,126, -179, 93,160, 72,178,243, 78, 37, 37,112, 6,109,149, 16, 39,165,169,219,182,160,120, 69,231,160,141, 38, 34,197, 94,140,177, 16, - 10,197, 43,173,170, 6, 87, 86, 46,117,211, 80, 85,181,216,166,178,164,232,245,195, 64, 85, 57,188,151,201,158, 31,123,136,137, -172, 50,206, 85,244,251,173,172, 5,170,122,249,115,163,172,224,136,167, 1, 85, 85, 52, 39, 39, 76,189,176, 4,106,103,232, 15, -123,114,148,231,179, 2,154,245,169,216,235, 80,248, 73,124,219, 49,120,116,153,180, 85,221,186,192,110, 44, 41,140, 24,224,176, -187, 69,219,138,126,115,139, 53,142,186,109, 73, 74, 97,157, 43,235, 17,207, 52, 76,100, 13,149,171, 81,214,138,245, 48, 68,140, -162, 76, 10, 18,168,132,159,166,226, 0,113,216,210,168, 25,109, 24, 15, 61, 33,136,230,193,152,106,113,191,132, 24,139,218,223, -226, 71, 41, 90,133, 29, 80,180, 36, 83, 40, 40,235, 40,214, 61,231, 80, 57, 75,232, 80,153,204, 25,231, 36,246, 55,197,242,125, -181, 88, 4,103,157, 71,121,173, 89, 33, 1, 63, 22,226, 36, 2,224, 16, 60,196,128,171,203,218, 64, 21,158,129,214,203,202,192, - 86, 21, 42,139,152,122,190,142,140,117,232,202, 22, 17,172, 20,172, 49, 39,121,237, 57,163, 78, 79, 79,179,177,174, 8,175,132, - 5, 94,215,117, 65, 99, 74,151, 61, 39,134,205, 15,222,105,154,238,135,152,148,165,190, 49, 34,116, 51, 90, 14,249, 56,239, 38, -230, 78,176,188,153, 49,132,229,247,170, 36, 95,163, 64, 31,113,163,181, 82,212, 77, 77,202,130,114,205, 33,241,248,241, 67,110, -111, 55,101, 44,163,151,189, 68, 46,112,101,235, 92,161, 80,201,235, 92,173, 86, 75,188,105,211,180,244,195, 64,206,176,219,110, -217,237,182,164,169,255,156,239,250,115,221,104,193,155,170,252,198,227,249,115, 4,182, 55,158,223, 71,225, 51, 63,103, 89, 93, - 0, 32,247,255,254,155, 44, 99,111,250,183, 94,127, 45,199,127,231,209,197, 25,239, 62,185,100,179,221,113, 24, 6,174,110,183, - 12,211,231,129, 38,111,130,208,188,254, 58,222,100,119,123, 61, 85, 15, 83,172, 97,202,220,237,146,139, 48, 80, 23, 15,184, 88, -156, 18, 70,105,156,177,119, 32,152,215,152,248,203,117,100,164, 90,159,250, 93,233, 36,243,210,253,190,233,245,222, 17,241,242, -178,211,254, 89,157,241,204,221,183,214,209,118,107,178,182,248,224,169,235,134,253,110,131, 51,138,201,143,162, 21, 8, 98, 63, - 18,127,168, 65,235, 59, 53,119,244,129,170,150, 73,203, 76,196,243, 97, 44,206,137,180,140,231,223, 84, 56, 45,175, 69, 59,108, - 83,139,154, 90,139, 56,199, 84, 78, 10,161,156, 24,125, 95,178, 17, 28, 42, 75,154,215,140,140, 84,170, 66, 31,233, 59,102,113, -166,113, 78,146,195,180,198,199,113, 97,192, 27, 83,129, 81,104, 37, 59,247, 28, 99, 25, 67, 10, 45,203, 52, 43,172, 49, 12,219, -237, 66, 0,140, 36,170,238, 68,196,144, 33,226,167,190,116,159,162,202,151,107, 33, 20,193,153, 65,105, 43, 99,200,163,251, 59, -149,189,190, 82, 70,214, 12,214, 10,183, 90, 91,170,213,154, 48,246, 40,163, 9,135, 67,193, 27, 87, 24, 87,108,115,204, 58,153, - 84, 10, 5,241, 26, 83,188,232,179,207, 61,149,166, 68,235, 12,218, 81, 53, 45,126, 26,228,224,205,185,140, 62, 5, 98,148, 98, -144, 3, 73, 73,138,225, 44,114, 93, 16,195, 74,137, 93, 45, 43,116,229,138,189, 78, 9,119,220,139, 14, 97,154, 36,169,142,152, - 80,214, 98,173,198,106, 43,137,138, 69, 12, 56,236, 15, 66,153,155,111,112,117,103, 43, 68, 41,148,171,201, 89,209,173, 79, 48, - 77, 35, 20, 57, 99,113, 93, 39,205,214, 65,112,168, 18,166,114,130, 3,129,103,249, 81,108, 93, 33,162,171,154, 41, 38, 76, 18, -151,142, 81, 26,219, 84, 82,156,228,204, 52, 12, 66,236, 43,215,137,109, 86,132,126, 91,226,141, 37, 53, 80,107,205, 52,140,100, -173,201, 97, 4,165,105,186, 85,137,212,173,202,251,164,200,195,192, 56, 78, 40,147,168,171,154,164, 28, 49, 76,146, 47, 30,228, -240, 83, 41, 20, 27,157, 47,161, 80,250, 46,108,202, 89,185,222, 38, 65,184, 38,173,113, 85,205, 52, 12,229, 90,138,248, 65, 86, - 42, 77,183, 46, 20,193, 36,153, 1, 25,198,221, 70, 26,173, 36,103,151,117,142,105, 28,200,229, 51,136, 62,162,109,105, 42, 42, - 71, 14,178,110,182,110,158,206,200,148,137,210,220, 4, 31,150,230,204,160,176,117, 89,169,198,178,126,205,226, 44, 8, 67,225, - 37, 40, 9,176, 81,128, 31, 4,110,163,180, 41, 5,115, 83,172,134,229,185,105,156, 4,202,228, 84,162, 83,101,108, 63,147,196, -165, 24, 17,202, 93,206, 72,241,146,196,134,167, 75, 17,159, 10,220,204, 56,119,231,122, 10,242,254, 46,141,161,117, 46,207, 15, -153,170,114, 71,157,203,220, 85,231,123,132,171,227, 7,187, 41,157, 23, 57,211,156,172, 57, 28,246,165,143,212,228,164,238,212, -197, 71,113,170, 40, 85,246, 21,119,135,250,189,110,235,232,127, 59,107,139,210, 87,212,239,111, 63,125,139,171,171, 43,188,143, -139,197, 68,110,182,185,210, 85,203, 65, 48, 31, 28, 57,229,123, 29,238,146,205,157,197,115,251,243,196, 96,233,232, 80,254,197, -100,100,159, 63,224,223,212,225,190,233,235,121,161,122,253,130, 69,192, 47,248, 58,148, 82,188,245,224,132,166,170,152,250,129, -253, 48,114,152, 60, 49,203, 65, 52,163,103,127,158, 56,238,103,119,234,234,158, 72, 80, 78, 28, 85, 42,203,197, 69,125, 47, 12, -229,120, 39,191, 92, 83, 71, 25,240, 75,128,143,214, 56,107,201,170,196,108, 78, 19,253,246, 22,227,172, 8,147, 20,111,156, 52, - 28,167,142,221,229, 88,155,207,173, 27,238,189,158, 34, 94,170, 91, 17,233,120,239, 89,157,156, 46, 74,227,152,226, 81, 65,122, - 36,158, 76,249,158,151,159, 50,246,173,171,154, 76,146,125, 99, 41,110,195,228,239,189, 87,175, 59, 40,140,173,208,182,146, 3, - 43,140, 18,110, 1, 40, 39,212,189, 56,141,196, 52,149,117,142, 66, 97,202,136,176, 88,238,112, 34, 30, 42,126,239, 84,186, 82, - 83,176,146, 33, 4, 80,113,185,151, 99, 20, 20,103, 93, 75, 44,165, 42,130,186,170, 91, 49,238,110,209,182,150,245, 78, 12,203, - 26,193, 56,131,105, 86,139,208, 44, 76, 3,166, 20, 49, 51, 54, 89,151,135,142,173,220,226, 90, 32, 20,119, 64,140, 40,107,101, -119,238, 39,201, 87,112, 21, 49, 4, 76,229,100,170,166, 37,179,156,178, 38,209,214,201, 94,185, 36,192, 41,173,164, 11,212, 74, - 70,221, 57, 9,176, 67, 59,172, 43,137,107,185, 4, 3,165, 40, 99,232,166, 19,139,214,145,174, 38, 23,203,174,201, 81, 96, 48, -101,204, 61,187, 82,100,194, 99,138,202, 95,192, 48,218,150,206, 61,196, 82,140,100, 17,240,161, 56,185,120, 68, 54,144,189,120, -158,109,187, 34,151,213, 69,240, 35,126,156,216,190,248,152,148,203,154,206, 20, 5,181,213,216,118, 45,156,249,186, 33,197,192, -176,189,165, 61, 61,195,214,174,164, 45, 86, 88,173,136,101,229,151,208,248,253, 78, 86, 90,206, 17,134,129,186,173,151,231,156, -178,150,105,156, 36, 34,183, 68,199, 78,135, 29,227,126,183, 20, 63,200, 98, 20, 87,117,160, 21, 81, 89,116, 18, 24,139, 43, 42, -252,113,216,210,158,156, 9, 51, 36,201,148, 66, 18, 39, 13,126, 26,228, 25,175, 53,227, 97, 79, 93, 94,187,107, 90,146, 50,212, -117, 67,191,185,149, 34, 94,105, 98,152,152, 14, 59,113, 21,116, 45,218, 84,203,117, 50, 14, 67, 17, 17, 42,209,179,196, 32,162, - 61, 35,250,164,170,112,249,229,240, 44, 65, 66,211, 64, 24,229,186, 21, 97,182, 34,132,169, 8,113, 11,141,173, 36,183,105,103, -150, 51, 39,229,194, 14, 40,137,133,193,143,133,140,215,144,179, 39,166, 66, 13,205,119,115,100, 17,184,105,140, 50, 36,226,172, -116, 46, 34, 86,185,174,181, 49,132,105, 64, 91, 41, 34,195, 32, 73,154,174, 59, 97, 60,136,215,190,233,218,133, 77,111,172, 22, - 60,110, 17, 80,162, 53,209, 79,114,175, 78, 99,209, 32,201,251,144, 98,196, 89, 43,175,167,132, 50, 73,129, 20,203, 53,228,200, -193, 99,173,173, 69,180, 18,131, 8,123,150, 69,169,186,183,139,158,247,190,138,187, 17,102, 76,130,225, 91,173, 79,184,184,184, -224,176,219, 21,185, 49,139,122, 48, 33, 35,122,133,189,235, 8,231,152,206, 55,224, 80,142,255, 44, 38,217,105,228, 44,177,170, -198,184,162,216,150, 29,172, 84, 56,234, 78, 92, 5,101,252,117, 63, 64,114, 57,224,103,102,187,254,249, 32,150,165,243,203,111, - 72,160,252,127,113,176,254,194, 5, 64,254,255,246,111,253,172,239,191,219, 29, 8,110, 98, 28, 3, 67,177, 80,213, 90, 18,219, -156, 53, 76, 62, 83, 57,177,246, 76, 33,222,255, 64,142,138, 45,117,180, 34,120,125, 42,112, 15, 21, 27,197,194, 49,139,209,178, -206,100,125,132,157,205,243,167, 38, 7,147, 46,185,211,177, 84,220, 40,177,158,169,164, 8,227, 40, 22,163,236,232, 15, 91,249, -122, 58,238,192,255,182,247, 91, 23, 17, 30, 64, 88, 46,239,255,135,182,119,123,182, 45,187,235,251,190,227, 58,231, 92,107,159, -107,247,233, 86, 95, 37, 97, 33, 1, 78,217,152,150, 64,232, 90, 96, 4, 50,134, 22, 32, 83,101,236, 36, 85,182,137,157, 34,148, - 19, 76,128, 0,126,224,159, 72,133, 84,156, 84,229,217,111, 49,149,188, 17,192, 72, 72, 8, 12,182,193, 6, 74, 18, 82, 75,106, -245,233, 62,221,231,182,215, 90,115,142,107, 30,190,191, 49,230,220,187,143,132, 69,146,166, 84,146,104,245, 57,251,172, 53,231, - 24,191,203,247,251,249,242,142, 85,235,190,219,208,186, 82, 18,187,157, 44, 5, 45, 74,129, 42, 21, 49,100,236,247,123, 28,203, - 81,226, 68,171,136, 20, 53,195,115,234,202,145,231,244, 74, 46, 81,185,208,186,207,222, 40,233, 44, 86,235, 98,149, 82,221, 88, -143,170, 50, 74,153,201, 79, 40, 10,202, 82, 56,101,165,226, 51,154,222,255,210,138, 32,137,251, 77, 49,136,210, 57, 33,205, 11, -252, 64, 18,149,119, 14, 73, 46,198, 84, 43, 82, 34,147,221, 24,142, 70, 81, 11,106, 81,152,143, 71, 88,203, 61,164,117,158, 29, -158,223,179,120, 87, 21,185, 68,164, 90, 96,221, 64, 49,147,228,164, 43,109, 96,148, 70,140, 39,248,129,216, 81,130, 86,232,199, -205, 81,222, 83,105, 18,232,207, 38,181,141,142, 8, 81,239,166,200,241,125,173,107, 36,111, 38, 70, 22, 66,221, 82,202, 72,167, -146,160,138,240,217,151,133,187, 99,101,228, 89, 98,122, 86,173, 69,236,107, 22, 0, 17,166, 57, 5,241,157,179, 83,111, 9,134, -186, 86, 20,205,213,159, 17, 77,145,210, 6,181, 40,185,192, 34,178,100,114, 87,244, 96, 8,129, 41, 53,208, 20,245, 26,122,154, -224,252,196,221,121, 45,200, 49,193, 78, 59,114, 14, 36,190,249,250, 83,111,195,120,182,135,214,134, 12,138, 38,118,205, 12,198, -210,206,146,174,231, 12,118, 2, 95, 41,165,192, 15,212, 51,148,148, 17,107,128, 53,252,190,171, 82,192,114, 34, 32,236,200, 63, - 67, 41, 9, 58,106,118,123,161, 98, 57, 62,228,251, 37,144,177,106, 20,156, 85, 8,167, 83, 79, 24,211,198, 96, 24,207,144, 42, - 71,238, 41, 39,185,140, 21, 78, 15,239,241,121,149,110, 86,247, 9,157, 70,174, 25,195,110,135,179, 43,215, 16,194, 66,253, 78, - 12, 72, 49, 33,207, 71,228,156,225,167,157, 92,182, 21,110, 28,145, 66, 68, 90, 2, 74, 58, 2, 90, 97, 62,175,176,178,230,136, - 61,151,130,103, 74,156, 23,248,113,192,241,225, 34,211, 5,230,115,104, 89,177,150, 82,224,188, 68, 77, 75,113, 62,142, 35,194, - 50,179, 72, 30,216,253,198,152, 96,132, 46, 87,115,129,117, 86, 52, 40,169,227,169,195, 50, 19, 2,100,120, 54,198, 82,232,132, -176,150, 69,130,213, 8,121, 17,218, 39,109,125,214, 13,253,188,174, 57,119,135, 71,152, 79,208, 85, 97,119,229, 26,187,247,221, - 14, 70,175, 17,200, 69, 44,106,203,131, 7,112,251,189, 4, 6, 81,168,189, 44,212,168, 53,158,201, 48, 76, 84,203, 87,198, 55, -147,215, 47, 1, 22,185,240, 78,148, 36, 55,165,181,169,218, 74,176, 70,123, 49,148,196, 45, 86,244, 74,191,138,183, 24, 77, 85, -170, 72,176,186,126,227, 38,174,221,184,138, 47,252,249,159,203,173,201,202,182,200, 45, 90, 21,247, 19,181,208,251,221, 60,188, -125, 7,184,217, 99,111, 81,152, 93,133,172,184, 19,222, 13, 19,110,221,186,133, 59,119,238,224,116,154,153, 32, 94,202,155, 4, - 94, 91, 63,248, 54,178, 84, 89,166,133,213,194,113,111,150,139,237, 47,180,113,109, 26,253,250,136,168,209,175,127,153,126, 99, -221,253,255,159,127,121,163, 48,104,131, 84, 50, 98, 15,163,208,226, 87, 85, 82,185, 82,248, 83,170,186,176, 62,120, 19,211,172, -126, 99, 73, 95,253, 31,212,234, 66, 71,219, 50,214, 47,195,107, 46,106, 18,218,227, 65,156,112, 73, 17,222,143, 20, 28,126, 35, -197,146,122, 84, 86, 56, 95, 24, 99, 45, 47, 6,176,115, 50,134, 34,199, 38,166,107, 29,110,179, 40, 86,197, 36,178,150, 28,214, - 16,188,219,100, 62,109,188,164,208, 25,104,163, 16,194,210,215, 86,186,170,139, 57,244, 0,247,197,211, 30,243,204,168, 77,227, - 6,228,144,160,141,146,253,188,130,115, 35,209,153,162,220,213,218,176,123, 47,153, 18,144, 86,128,101,250, 51,172,117,125,117, -209, 0, 52, 20,232,104,161, 30, 70,228, 76,156,176, 31,119,244,223, 43,192, 57,238,173, 21,106,239, 70,115, 18,111,188,182, 98, -251,108, 28,134, 12,104, 22,211, 90, 93,180, 37, 66, 51, 42, 18,208, 92,179, 56,135, 28,104,169, 83, 50, 10,174, 69, 10, 35,109, -101, 39,159,197,167,110,164, 24,227,207,158,195,178,121,229, 54,216,220,158, 35,175,183,153,114, 93,160, 38, 86, 19,177,232,117, - 85, 39,170, 22,199,139,192, 81,170, 38, 3, 92,107,122,177, 57, 69, 17,228,112, 74, 40, 57, 72,166,248,208,249, 22, 57, 37, 24, - 71,113,152, 86,128, 25,175,226,250,211,207, 34, 11, 1,209, 58, 71, 17,109, 91,131, 72, 92,110,137,180,117,169,193, 3, 57,194, - 24, 47,110, 6,242, 65,116,101, 46,184, 49, 6,199,187,119,232,201,182, 22, 49,109,152, 12,146,234, 85,114,130,223,237, 17, 67, - 64, 13, 97, 29, 41,139, 64, 85,187, 1, 37, 71,140,251, 61,242,210,206, 77, 73,193, 52, 2,140, 1,177,217, 16,134,251, 26, 23, -202,226,198,121, 39,161, 54, 20, 46,150,154,145, 78,179, 36,152, 41,140,211,158,154,134, 40,246,188,249,196,115, 88, 50, 44, 84, -129,240,251, 13, 89, 2,181, 34,137, 62,165,251,255,115, 38, 28, 43,132, 46,166,229, 52,131, 66,176,150,104,231,252,128, 24, 35, -188,115, 36,252,213,194,181, 17,184,195,142, 33,138, 93, 80,193,248,145, 54, 49,235, 17, 79, 92,227,168, 74, 60,111, 35, 28,166, -156,100,116, 79, 66,160, 22,183,147,170, 21, 41, 71,185, 51,184,254,114,214, 9,245,143, 90,159,162, 10,156,159,128,156, 97, 70, - 22,194,241,112, 20,235,119, 64,142, 4,228, 40,205, 41,150, 21,114, 93, 19, 81, 49,229, 52, 11,123,191,194,250,145,191,127,206, -253,231,138,145,133, 67, 19, 28,115,205,109, 80,218,138, 45,113,146,173, 21,157, 17, 41,103, 24,235,135, 95, 81, 18,244,206,113, - 71,100, 66, 84,228,127, 46,210,246,215, 82, 89, 57,131,123,139,179,171,215,177,219, 95, 65, 74, 17,175,188,242,114, 23,151, 84, - 33,192,245,177, 55,149, 38, 28,191, 26,131,210, 14, 31,163,121, 64, 8,114, 17,154,202,105, 62,100,106, 61,160,100,116,234, 45, - 45, 16, 49,144,167, 94, 30, 97, 5,106, 7,101,171,222,182,251,226,188,161,106,233,166, 50,210,237,165, 55,210, 17,188,249, 95, -171, 8,174,253,124,205, 69,200, 74,233,242, 24,185,255, 11,234, 2,217, 12, 23, 48,175, 6,126,183,199,213,107,215,165,170,206, -184,113,243, 49,248,137,241,139, 90, 55,232,226,166,176,104,191,150,252, 44,109,135,162,154,162, 84, 93, 28,231, 27,163,241,244, -173,199,225,140,198, 28, 2,172, 54,120,230,137, 39,176, 59,219,227,252,252,156,162, 10, 40,105,120, 21, 45,137,221,218,165, 54, - 73, 93, 10,219,255,107, 15,100,197,215, 42, 88,234,133, 72, 87,106,126, 20,166,221, 30, 90, 25,212,210,246,189,156,107,173,235, -151, 53, 46, 85, 41,244, 10, 85,105,211, 65, 39, 41, 82,220, 85, 36,236,167,110, 62,146,203,233,113,111, 30,175, 95, 8,135, 69, -173, 32,141, 76,102, 67, 70, 68,160, 33,210, 3,190,132, 89,166, 65,124, 97,106, 3,228,136, 82,159,169,124,229, 66, 42, 95, 15, - 69,209, 10,218,104, 12, 3,217, 14, 60,104, 44,118,187,125,199,227, 54,129,105,109,184, 93, 99,248,125,180, 24, 69, 73, 93, 82, - 82, 69, 57,231, 80,228,123,170,149,235, 38, 99, 44,199,144,150,107, 0, 5,185,100,187, 26,141,130,197, 54,194, 4,179,197, 40, -246, 82, 74, 56, 20,141,211,206,238,127,216,157, 33,246,195, 63,247,202,180,234,214, 7,147,157,175, 21,117, 19,188, 60, 50,140, -113, 27,246,190,172, 21,188,196,254,214,194,125,174,106,197,143,192, 88,208,131,238, 69, 36, 84,161,106,102, 68,166, 29, 96, 60, -199,191, 57, 44,168, 37,138, 43, 66, 82, 17,219,184,114,243,220,212, 77, 50, 32, 39,129, 45, 71,158,238,137, 90, 55,236,245, 34, - 73, 87,150,158,240,225,236, 10, 42, 52,252,200, 9,199,180, 63, 19,116,177, 36,212,201,100,178,150, 36,191, 46,133,155, 10,149, - 83, 36, 63, 97,216,239,184, 2, 40, 66, 66, 12, 84,191,231, 24,176, 28,238, 75, 33, 82, 16,115,128, 1,189,239,125,143, 91, 50, -114, 78, 88, 14,231, 56,157, 63,224, 30,181, 22, 32, 39,156,223,123, 3, 57, 38,132,195, 1,105,225, 36, 36,204, 39, 10,182,106, -145, 51,147, 43,128,146, 51,130,140,225,141,177,112,206,194, 89,122,186, 75, 45,200,129, 19,150, 18, 35,166,179, 43,208, 70, 33, -158, 22,228,101,134,181, 22,110, 28, 96,157,133,245,140, 68,214,214, 82,121, 13,197, 21,140, 68,222,242,157,161, 7, 59, 47, 51, -223,122, 43,223,117,131, 68, 89, 11, 35,205,149, 27,185, 62,137, 33,200, 62,189,160, 40, 41,168,229,172, 94, 78, 51,140, 54,156, - 68, 21,230,145,167,176,192,106,186, 31,170,130, 20,188,238, 66,147,166,157,195,238,202, 85,228, 66, 63, 55, 74,162,197,249,120, -146,100, 55,130,124, 74,150,180,180,178,153, 42,214, 76,119, 1, 52,252,126,191,198, 63, 43,208, 30, 60,142,208,198,116,114, 91, -201, 25, 69, 41,104,203,117, 98,146, 73, 75, 77, 9,121, 14, 80, 37, 67,123,203,117, 81,164, 64,155,241,210,150,188, 10, 8,163, -164,242,140, 79, 37, 49,205,176,130,105,161, 49, 32, 37,137, 48,150,130,167, 2,253, 51,171,133,222,125, 93,229,182, 45, 92, 59, -181, 41,140, 86, 10,234,198,227,111,169,253,197, 18,232,124,169,124,153,115, 46, 40,109,127, 83, 86, 62,182, 42, 5,243,124, 92, -189,185,235,109, 41,119, 37, 71,135,171, 15, 80,242,102,197,179,169,149, 22,123,147, 21,251,152,233,106,245,154,248,224,240,103, -128,188,148,192, 48, 24,126,185,137,126,204,121,158, 59,116,228, 63,233, 47, 77, 15,174,247, 35,139, 62,109,152,155,219, 85,235, - 82,144,180,237, 67, 83, 18,162, 85,141,249, 77,173,183, 86,246,194, 58, 97, 43,184,170, 34,230,105, 59,155, 38, 76,218,237,247, -152,231, 5, 57,205, 66,125,178, 8,203, 17,126,216, 97,119,245, 42,140,124,249, 70,177,128, 57, 29, 30, 82, 24, 97, 89, 16,245, -171, 85, 90,217,157, 85, 88, 34, 87, 39, 74, 0, 45, 79,220,188,137,199,206,206,240,198,189,187, 56, 63, 28, 81,148,194, 59,223, -254, 86,168,148,241,210, 87,111,227, 16, 34, 14,226,135, 92,139,143,202, 62,214, 24,218, 50,154, 26,183,174,130,182,134,104,237, -223,185, 86,111, 82,172, 87, 81, 37,183,203,186, 42,142, 3, 7, 63,194,218, 1,203, 50, 35,151, 32,124,239,218,201,102,245,194, -164,133,151,174, 17,162, 20,138, 66, 10,139,196,124, 86,104,237,190, 97, 34,222,163,196,126,195,196,142,191,200, 78, 74,107,141, -170,120,120, 51, 53,142,172, 0,165,168,174,238, 26, 18, 77,202, 93, 78,185,127,247,107,135,174,229,103, 55,112,102,160,157, 16, -192, 48, 14,196, 63, 42,133, 16,102, 44,167,153,159,120, 87, 6,114,100,143, 28,101,194, 36, 42,118, 67,118, 67, 46,236, 10, 42, -128,146, 22, 1,176, 12, 72, 65,252,201,138, 93, 53,180, 88,242,180,163, 69,176, 71, 56, 2, 21, 9,165, 84,134,153, 40,177,248, -213, 42, 8,202, 2, 45,164, 53, 84, 30, 70, 74,183,238,183, 82, 12, 40,200, 91,198, 97, 82,229,109,134,145, 12,238, 13,196, 68, - 73,234, 30, 49,167,150,135,190,146, 85, 65, 46, 40, 53, 97, 3,253, 19, 16,157,172,231, 52,221, 53,195,180, 7,156, 70, 58,156, -144,230, 35, 69,106,122, 51, 50,147,132,183, 6,243, 49,146, 4,216, 42,197,214,149, 43, 45,185,239,218, 73,180, 46,189,212,165, - 97,136,219,115,221,124,222,226,113,111,170,120, 13, 42,197,107, 10,200, 53,139, 94,211,160,192,244,203, 69, 43, 45, 41, 89, 20, -235, 66,186,114,227, 61,140,159,216, 73,149,140, 24,131, 40,227, 7,140, 35,125,214,202, 40,132,121, 65,134, 98,206,188,102, 49, - 82, 50,225, 71,203,241,200, 95,203, 8, 76, 72,154,160, 44, 35,112,227, 44,204, 48, 64, 41,133,249,156,120,109, 63, 77,124, 94, -149, 70, 70, 69, 9,252,231,180,229,103, 27, 67,160,215, 95,166, 17, 75,138,216,159, 93,101,144, 87, 46, 12, 62,170, 5, 37,102, -216,221, 14, 49,156,160,229, 93, 45,125,202,166,132,159, 79, 64,202, 34,221,121, 21, 80,143,117,131,176, 56,170, 60, 27,220,149, -231, 24, 37,222,216, 98, 9, 1,206, 51,102, 90,149, 2, 37,168,225, 90, 42,198,113,162,224,173, 22,146,247,192,142,189, 77, 62, -232,200,140,130,243, 70, 47, 20,105,245, 20, 23,140,124,255, 41, 70, 64, 85,126,111,181,194, 13, 35, 45,145, 0,172,227,168,219, - 12, 3, 47,243,102, 83, 22,189, 76, 3, 96,181,238, 91,107, 77, 91, 33,148, 92,162, 26, 49, 4,148, 18,145,226,194, 2, 96,216, - 65, 91,135, 20,232, 94, 25,252, 64,164,110,201, 29,160,131,170,101,114,144, 68,187, 70,231, 74, 5,237,107, 28,198, 4,153,166, - 86, 57, 87,100,181, 18, 98,231, 62,148,166, 37,107,195, 80, 62, 31,122,149, 97,242,182,144,241,156,238,130,178,214,157,224, 2, -158, 99,211,149,169,186,233, 34, 91,151,160,250,248, 70, 65,131, 4, 26,221,115, 96,181, 53,112,195,136,157, 80,122, 98, 76, 8, - 97, 70, 8, 1, 70, 41,120,163,225,252,216,115,171,189,183,120,233,115,127, 2,212,140, 28,203,133, 81,231,229, 49,252,229,127, -103,124,166,130, 31, 7,164, 12,252,149,119,126, 43, 25,204,206, 98,240, 94,188,222, 43, 51,156,187, 63,221, 71,125,107,124,169, -128, 54,164,211,210,154, 99,197, 54,206,108, 72,209, 45,223,189, 20, 6, 50,220,254,242,151,112,247,181,215,176,219,239, 48,207, - 39, 17, 34, 38, 33, 83, 37,190, 4,178, 87, 27,166, 29,115,158, 67,160,146, 90, 43, 76,187, 51,156, 93,185, 6, 63, 12,176,206, -245, 42,238,155, 31,223,225,229,219,175,226,193,131,115, 92,189,122, 5,113, 89,112,255,245,215,113,251,254, 3,196, 92,161, 74, -193, 83,143, 95,199,131,135, 71,204, 49, 33, 36,130, 66,154,162, 65,183,113,164,168,211,223,242,236, 91, 49,158, 93,129, 51,182, - 87,173, 89, 58,214,118,169,231,148,132, 60,149, 59,171, 93,201,231,118,231,246,203, 8,167, 35,213,206,146,213,204,110, 53,117, -208, 3, 84,237,185,219,189, 40, 82, 43,126, 86,235,117,202,161, 69, 0, 19,103,118,143,206, 25,164, 84,254, 63, 73, 40, 51, 66, -185, 99, 21, 45,227,252,142, 57,229,101, 76,159,180,234, 42,124, 78,109, 74,247,200, 55,188,111, 76,233, 66,200, 77,145, 0,162, -113,156, 16, 66,196,217,217, 25,162,140,205,141, 49,136, 75,192,225,156,118, 74, 70,234, 42,233,158, 23, 33,222,169,213,154,167, -101,212,107, 28,204,224, 24,110, 33,126,236, 2,141, 97, 28,129, 92,152,162, 88,169, 90, 47,169,244, 9, 79,227, 33,144, 47,193, -232,227,134,103,101,167,199,113,172, 50, 22,222, 13, 28,175,134,176,129,229, 64,166, 37,101, 53,255,203, 65, 98,157, 39,118, 84, -116, 6,168,144, 44,107,254,115,218, 90,134,190, 40, 13, 88, 3,228,138, 82, 34, 90,245,172,128,213, 66, 38,247,181,177, 14,198, -239, 96,167, 17,200, 25,167,251,111, 0, 37, 65, 59,185,112,141,131, 19,174,124,109,188,129,206, 60, 72,194,116, 87,235,175,171, - 13,236,184,231, 88,223, 89,249,231,216,144,148, 78, 15,163,176,174,182,137, 87,138, 66,153, 84,210,164,228,158, 46,167,173,199, -176,191,194, 8, 85,173,122, 1,128, 90, 97,172,195,238,230, 77, 32, 46, 92, 93, 10,216, 42,166, 4, 85, 51,247,237, 57,139,232, -140, 35,122,109, 61,255,179, 49,152,231, 35,167, 82,129,223,163, 86, 64, 56, 74, 96,139, 54,200, 37,193, 15, 99,143, 69,173,155, - 21, 86,142,140,182, 53, 45,163, 61, 70, 32,103, 40,237,224, 28,159,113,229, 44, 12,200,130, 88,230,133,246,227, 84, 80, 53, 16, - 14,135,126,254,213, 82, 96,173, 70, 46, 12, 81,201, 41,178,227, 5, 96,156,135,209, 10,203,124, 36, 0, 8, 10, 37, 39,114,212, - 1,132,195, 57, 25,243,126, 92,223,211,134,193, 78,146, 58, 41,178,166,113,156, 24,144,229, 44,194,178,136,208, 45,174,107,146, -246, 29,201,196, 44,203,168, 25,198, 72, 72, 13,159,183, 42,133, 51,215,136,236, 92,211, 18,228,249, 32,121,174, 59, 52,100, 42, -105, 90, 65, 38,142,174, 90,138,144,242,248,123, 59,137,195,237,236,126, 65,134,135, 48,195, 57, 6, 39, 45,243,188, 65, 91,211, - 37, 70,187,155,130,245,142,116, 67,201, 23,224, 20, 80,214, 75,138,164,191, 92, 88,188,181,117,222,118,231,155, 69, 33,223,136, -166,144,117, 24, 74,221,156, 51,153, 23,190,232,203, 28,197,238,250, 47,125, 58,214,182, 19,215,109,254,169, 59,119,187,141,167, -139,177, 60,140,156, 7, 44,121,202, 26, 68, 76, 94,189,122, 3,111,127,215, 55,227,157,111,123, 43,254,232,243, 95,132,222, 93, -131, 1,112,184,253, 37, 28,143,231,152,166, 61,142,135,115,140,227,128, 87,191,252, 69,220,127,245, 43, 56,157, 22, 25,193, 94, - 28,175,127, 61,203, 21,139, 11,133, 97,119,134,231,191,233,155, 97,135, 1,222,251,245,242,149, 98,164, 93,196, 74,169, 30,119, -218, 4, 81,218,232, 46,144,209, 13, 15,187, 97,185,231, 13, 24,166,171,171, 75,193,233,120,196, 87,191,252, 18,150,211, 65,198, -135,108, 50,156,181,140,102, 20, 63,249, 69, 37,180,194,245, 27,183, 58,181, 76,155,149, 76,116,243,241, 91, 56,187,118,141, 74, -237, 90, 17, 94,123, 9, 15, 15,231, 98, 7,227,169,184, 44, 17, 7, 81, 89, 15,214, 98,178, 10,231, 11, 73, 73,146, 61,215,168, - 0,221,155, 93,181,194,213,235,143,225,153,231,223,214, 19,230,140,248,196,203, 37, 81, 35,247, 67,134, 34, 25,241,165, 26,173, -240,213,175,124, 9,203,233, 33,140,196,103,134,176,244,231, 64,139, 29, 74, 73,197,157,150,136,170, 87, 47,185,145,113,218,118, -101, 65,188, 46, 24,134, 32, 62,111,231,136,204,252,127,243, 87,239,170,183,172,247, 13,242,183,141,246,183,249,238,173, 3,207, -153,223,151,179,174,175, 95,218,238,189,213,187,236,244,148, 92,248, 30, 26, 28,237,183, 78,145,170,225,136,195,225, 97, 79,172, -187,114,229, 26, 30, 60,124,192, 17,185,192,112,180,101,224, 74,149,139,176, 20,230,185,163, 84,118, 55, 90,203,133, 53, 66,193, -144,177,110,164,248, 96,221, 46,162,214,220,179, 3,172, 0,129,226,178,136,143, 20,178, 90,147,207, 67, 91,153,180,212, 46,254, -106, 88,133,246,188,148, 90, 24,210, 82, 43,180, 50,208,206, 33,199,163,140, 76, 91, 33,109,229,117,217,192,140,132, 4, 87,197, -127,223, 86, 97,181,174,130, 90,217,205,241, 16,214,196,205,214, 28, 16, 23,217,137,182,243,165,141,242,203, 74, 98, 67,189,228, - 26, 81, 10, 90,211, 10,167,106, 65, 70, 21, 34, 30,227, 78, 33, 99,217,156, 3,187,121, 59, 72,246, 58,199,171, 74, 27,228,194, - 53,141,130, 98,135,166, 52,114,142, 24,134, 65, 46, 33,218,178,172,181,152,103, 78,203, 74, 76,208,158, 22, 50,141, 2,103, 44, -130, 4,196, 40,227, 49, 77, 3,194,188, 96, 62, 30, 96, 6, 94, 28, 42, 3, 74,212,217, 70,113, 50,166, 4,207,125, 58,158, 80, - 98,146,236,116,195, 46,222,211, 6, 88, 82,166,250, 27, 96, 23,108,180, 52, 82, 44,212,172,243,240,211,200,240,151,211,204,207, - 91,181, 75,130, 23, 79, 56,158,122,129,145, 83,234,232,230,146,137,207,181,150, 19,197,210,236,142,242,185,133,211, 9,202,114, -180,156, 75,150,100, 63,174,128,232, 25,183,112,178,234,128,176, 4, 80,105,237,100, 39, 28,161, 5,135, 90, 75,165, 77, 84,206, - 81, 35,231,176, 18,177, 24,159, 79,238,140,195,188, 96,218,237, 58,145,179,136, 46,195, 58, 90, 13,115, 18,123,167,110,239,155, - 67,152,143, 93,180, 27, 99, 98,242,165,116,190, 57, 23, 12,131, 39, 85, 21,100,168,215, 94,236, 86, 56,239,122, 6, 69,143,147, -142,156,188,148,202,191,223, 2,182,140,209, 72, 45, 3, 34, 5,137,142, 22,174, 65, 23,124,242,158, 44, 98,199,214, 45,133, 83, - 9,241,180, 49, 98,180, 70, 94,130,188, 11, 26, 70,242, 25,154,104, 57,201,184,253,194,121,166, 0,163,148,250,149, 34, 47,110, - 85, 27, 95,245, 95, 56,199,212,130,207,180, 34,144, 49,189, 19, 27,247,123,216,113,135, 97,183, 67, 85, 14,118, 58,195,120,227, - 38,222,245,237,239,195, 59, 94,120, 31,158,122,251, 59,128, 56,227,214, 91,223,134,159,248,153, 95,198,247,125,207,135, 96,158, -124, 59,238, 63, 60,226,193,237, 47,195, 40,133,249,240, 0,167,243,115,120,207,248,188,211,225, 28,243,241,161, 84,185,229,235, - 10,220, 46, 95,234,198,112, 42,240,252, 95,121, 23,185,216,114,129,180,130,160,169,131,137,115,149,112, 14, 1,119,148,141,253, -169,231, 66, 55, 1,213, 38,131,187,117,108,125, 12, 93, 10, 94,127,229,101,188,252,133, 47, 8, 96,132, 15,237,150,196, 22, 99, - 92,233, 51,151,228,230, 41, 71, 0, 5,187,253, 85, 56, 63,210,178,148, 19,142,199, 3,144, 51,118,103, 87,160,181,198,225,252, -128, 7,247, 31, 98,137, 25, 75,140, 56,133,136, 37,150, 77,151, 0, 44, 21, 36,147,109,247,244,235, 70,147,128, 0,173,241,228, - 83,207,174,233,105, 27,145, 88, 45, 43,142, 85,119,103, 68, 69, 76, 81,186,161,138,211,249, 67,156,206, 31,136, 91,161, 18,202, -225,185,147,170,149, 35, 40,138, 36,203, 70, 32, 38, 35,119,179,138, 27,123, 22,247,134, 90,151, 83, 90, 39, 35,165, 92, 16,152, -125,189,196,185, 71, 61, 35,143,178,230,117,197,122,175,136, 37, 58,211, 17,253,155, 82, 75,192, 43, 2,205,177,221, 99, 90,149, -150,173,204,106,115,107, 25,236, 44, 88,208,247,177, 61, 8, 72,138, 23, 37,239,144, 27, 6,242, 16, 20, 69,170,178,192,231,127, - 55, 50,233,130,196,253, 22,174,113, 26, 15, 31, 45, 42, 82, 17,185, 82, 75, 22,177, 79,219,151, 87,122,207,101,117,164,218, 4, - 74,158, 81, 73,221,185, 40, 62,208, 26, 40,185,143,223,187, 80,180,212,141,189,115, 29,125, 43,173, 55, 12,235,118, 60,108,200, -129,114, 64,179, 67,170, 12,142, 17,207,239, 74, 98,225,250,203,143,123, 17,215, 1,206, 15,112,222, 51,116,101, 3,234, 81,219, -108,249, 75,110,145,170, 86,173,140,145, 17, 51, 52, 68, 9,239, 97,135, 81,244, 5, 32, 33,111, 55,194, 79, 87, 48,236,206,176, -191,122,141,104,220,193,195, 88, 15,227, 60,246, 87,175,145,189, 33,225, 46, 70,107,140,251, 51, 64, 46,145, 86,248,101,185,132, -107, 34,178, 84,105,122,212,173,229,133,238, 28,127,205,112,126,206, 46, 58, 4,148, 24,201, 53,240, 94,172,118, 89,210,226, 82, -183,254,214,148,201,180,151,220,129,184, 44,112,227,128,218, 70,214,162,226,206, 34,228,132,192, 81,198, 73, 34,107,107, 69, 73, -137,148, 63,209,112, 64,241,137,154, 15,135, 62, 86,166, 0, 58,117, 91,167, 86, 26,110, 28, 37,201,143,107,207, 6,107,137,167, - 3,179,228,119,123,126,134, 34,126, 43,221,210,200,231, 63,134,136,184, 4, 84, 80, 4,215, 10, 96,166,243,197,238,104,176,206, -179,148,179, 70, 88, 39,220,179, 47,167, 83,239,232,115, 74,220, 55,135,185, 83, 33, 83, 74, 64,202, 80, 61,224,138,122,135, 24, -196,162, 91,214, 21, 75, 46, 45, 10,187,192, 59, 9,103, 1,119,244, 76,109,203,136, 33, 34,200,138,132,197,155, 92,186,168,178, -227,166,198,140, 33, 71,116, 35, 52,167, 70, 90, 22, 32, 39,201, 99, 15,162,168,111,243,172,138,180,204, 20,137,230,218, 11,217, - 44,197, 45, 63,127,134, 84, 65,236,125, 45,123, 68,203,121,225, 36,216,171, 53,146, 70,211,142, 12, 25,185,183,134,168,214, 74, -159,217, 55,220,171,171,117,180,254,150,231,222, 10,227, 61, 82,228,158, 70, 25,131, 88, 43,198,113, 7,101, 12,134,235,183,240, -248,219,191, 5,183,158,124, 10,238,236, 10, 71,137,167, 19, 94,250,179,127, 11,227, 38,252,222,239,255, 33,254,228,202, 21, 60, -118,235, 41,164,176,224,238, 87,190,136,176,204,208,134,176,134,227, 67,118,116,147, 51,120, 32, 69, 67,201,249, 66,144,202,215, - 20, 71,105, 37,100, 33,133,167,158,127, 59,252, 52, 94, 72,215,218,114,211, 85,223,201,229,126,121, 23, 57, 56, 57, 34, 47,107, -103, 33, 23, 64,151,148,201,195, 10, 40,228,148,113,239,245,215,240,250,107,183,145,230, 0,109,170,116,228, 25, 53,173,135,177, -150, 47, 69, 65, 33,166, 72, 1,148,124,129,212,111, 84, 28, 15, 15,145, 66,194, 52, 78,220,149,185, 65, 58,251,140, 59,175,124, - 5, 55, 30,127, 2,251,155,183,144, 0, 28, 14,231, 24,198, 9,211,110,143,229, 52,227,206, 43, 47, 67,213,140,212,246, 49,155, -241,166,117, 78, 68,103,235,184,103,220,157,113, 15,212, 25,243,186,199,239, 86,169,136,181,225, 94,212, 26,118,175, 30,192, 44, -222,210, 92, 41,192,210, 89,203,159, 45, 35,132,128, 69, 44, 78,167,116,234, 35,175,182, 67,110, 36,186, 42, 66, 77, 35,130, 15, -163, 13,114, 76,125,231,215, 58,223,245,115,198, 35, 69,146,151,187,241,203,127, 79,107,141,162,234,155,158,247,173,207, 62,213, -220,181, 9, 37, 23,204,105,102,151,173,152,117, 77, 65, 90,233,217, 0,198, 16,175,138,170,225, 7, 15, 40, 22, 67, 97, 14,178, - 51,213,168,134,160, 18, 93, 40,184,137,129, 21,126, 46, 5,227, 72, 20,236, 34,252,238, 42,140,252, 84,202, 5, 62,137,113, 3, -114, 90,144, 69,153,219,126, 62,165, 34,106,137, 80, 72,114,144,181,110, 64,189, 73,237,175, 42,253,186,198,115, 23, 87, 21,187, -239,237, 42, 75, 21,190, 3,202,200,200,190, 52,157,201, 58,205,226, 5,156,249,153, 24,203, 24, 88, 59,145,232,102, 84,135, 65, -109, 47,220,106, 28,204,186, 10, 7,148,129,202,252,124,156,155,100, 60,235, 48, 94, 57, 67, 10, 17,214, 59, 82,238, 34, 99,136, -181,185, 33,157,222,250, 75,235, 38, 96,213,186,103, 98,123,233,182,214,164, 62,153,190,105, 11,101, 57,121,210,214,162,122,234, - 69,134,105,236, 35, 78,165,184,162,211, 90, 65,139, 98,159,121, 23, 14,126,240,228,159,203,136, 24, 74,113,103, 74,143, 33, 82, - 73,216, 79,103, 8, 89, 24, 24, 41,147,161, 62, 14, 24,198, 29,105,156, 22, 88, 78, 6,225,116,148, 51,140, 63,239,124, 56,107, -247,251,101, 0, 0, 32, 0, 73, 68, 65, 84,239, 8,104,165, 13,180, 2,242,145,182,196,132,140,112, 58,192,250, 17, 73,166, 45, -241,116, 98, 7, 58, 12,200,224,106, 42, 75, 81,101,140,197,184,191, 66,187, 88,145,176, 31, 9,250,136, 33,200,168,182,160, 64, - 73, 49,145,101, 21, 88, 72,156, 75, 11, 16,101,204,158, 24,221, 11,161, 19, 90,203, 9,135, 54, 28,239, 47,243,204, 80,159,101, -238,145,198, 74,113,170,232,156,227,103, 43,159,107,138, 77,228, 88,133, 47, 96,225,189,165, 7, 93,105, 20,163,186,232, 44, 75, -205, 61, 56,139, 26, 19,178,201, 29,223,109, 28, 57, 5, 78, 85,228,196,128,147,156, 51,192, 21, 57, 66,187, 23,148,130,246, 6, - 49, 37,232, 10,178,230,173,197,233,112, 32, 85,111, 71,135, 75,170, 11,156,227, 5,110,220,136,113, 28, 49,207, 39,177,123,242, -236, 88, 26,207, 68, 6, 73, 33, 44,156,136,150,128, 26, 91,166, 65,238, 77, 65,145,137,145,202, 60,183,138,116,230,109,250,192, -117, 14, 3,116,138,100,155,104,200,238, 95, 38,147,237,188, 50,222,195,141, 3,148,209,171,134,204,104,129,228,108,102, 91,150, -116, 66,211, 2, 93,190,177, 11,157,221,133,181, 22,143, 61,243, 28,158,124,219, 55,225,234,141, 91,120,229,203, 95, 68,138, 39, -204,243, 2,141,138, 24,102, 88, 59, 0,113,193,227,207,189, 21,198,144, 93,235,156,129, 86, 6,103,215, 30,195,114, 56, 32,206, - 11,238,165,132,135, 15, 30, 98,127,245, 58,178, 84,238,170, 18,138, 97,149,198,224, 7,188,113,239,174,140, 27,213, 35, 47,241, - 45, 12,103,219,137,229, 92,240,212,179,111,195,213,235, 55,186,104, 72,111, 33, 39, 27, 60,233,214,111,109,164, 82,154,231,185, -255,247, 70,213,195,166, 83, 44,146,117, 91, 66,194,107,175,223,193, 27,175,223,161,160, 75,138,134,138,210, 89,239,198,104, 25, - 73,234,174,154,110,209,170, 74, 2, 58, 8, 27, 97,178,215,213, 43,215,165,115,229,168,101,116, 14,206, 57, 60,120,112,159,251, -181, 92,113,253,198, 77,156, 93,127, 28,103,215, 30,231,200, 78,107,248,113, 15,235, 7,156,206, 31,192,141, 35,166,221, 30,119, -239,188,138,211,241,128, 43, 87,174,225,234,141,199,113,239,141, 59,200, 49,114, 31,110, 12,174,223,124,172, 23, 20, 45, 92, 39, -245,203, 65,117, 54,123, 27,189,167,174, 48,230, 56, 47,133, 32,163, 50, 25,197, 41, 5,109,233, 51,135,140, 2, 27,128, 98,220, -237,225,156,195,195, 7,119,225,156,133, 53, 30,168, 10,199,211, 9,126,156,176,219,237,112,247,206,171,189,120,107,127,181,148, -188,111,148, 15,208, 94,114,165, 21, 84,174,125,127,255, 38, 52,237,165,156,245, 38,250, 44, 69, 24,209, 85,132, 80,166,160, 4, -134,235,104,165, 37,170, 82,201,106,129,147, 4, 22,147,165, 67,156,172,181, 72,105, 65, 76, 74,214, 21, 44, 78,115,206,212, 77, - 24,226, 44,115, 78,178,155,165, 39, 91, 85,192, 14, 30, 41,132,238,221,109,186,141,203,127,206,174,148,120,196, 58,106,251,255, -203, 45,171,155,145,103,111,250,204, 46,100,205, 63,170,112,146,106,150,207, 47, 63, 51,101, 45,170,168,123, 59, 37,173,189,103, - 74, 51,159,218, 57, 25,255, 42,156,157,237, 81, 2,211,190,172, 88,217, 98,140,152, 79, 11,220,224,217, 53,157, 30, 80,191,225, - 29,114,169,176,195,142,251,102, 41, 60,221, 56,193, 13, 99,239,222,181,214, 24,134, 17,231, 15, 31,246,169,132,243,142, 4,181, - 90, 96,161, 49, 14, 3,134, 97,132,241,132, 46, 41, 25,167,134, 72, 78,189,149,247, 45, 87,217,213,203,202,106, 62,157,160,181, -193, 48, 14,176,198, 98,201,132,149, 24, 41,242, 75, 44, 56, 29, 14, 61,248,202,136,176,169, 88,141,147,120,142, 75, 12, 72,129, - 23, 94,213,180,115,181,113,179, 5,247,161,203,137, 9,101,227,110,135,211,225,128,186,176,184,107,158,101, 15,199,220,134, 24, -113, 56, 63,172, 83, 66, 71,181,123,205,137,113,175,185, 32, 37, 22,214,214,176,113,208, 74,163, 42, 77,218,167, 8,216,180, 76, - 23,167,221,180,190, 95,181, 80,241,223,166, 74,194, 14,200,162, 42,167, 80, 80,220, 76,149, 4,181,148, 2,225, 47,137,255, 76, -204,177, 23, 42,198, 88,129,168, 68, 57, 71, 10,156,176, 16, 80, 25,192,162,116, 17, 46,137,130, 19, 43,102,206, 85,244, 67, 25, -218, 0,203,233, 40, 89, 16, 21, 89,219,126, 38,180,179,185, 55, 94,146,132,153, 1,140,195, 64,101,121,160, 6,105,183,219, 35, -135,136,180,156,216,180, 89, 10, 97,189,196,246, 62,188,123, 23, 86, 70,229,196, 36,104,104,129, 24,149, 66, 44,172,214,166, 79, - 31,170,102,161, 63, 88, 6, 87,161, 86, 56, 17, 35, 54, 86, 75,173,133,223, 7,202, 42, 92,149,213,102, 77, 21, 69,137,106, 93, -238,176,150,140,104,157,225,108, 53, 3,121,166, 37, 14,146, 6,233,228,247,171, 45,224, 69, 85, 6,208, 80,224,106,234,215, 69, -157,244,121,188,100,192,106,135, 39,159,125, 30,215,110, 62,134, 36, 35,194, 36,216,197,144, 34, 6,231, 48, 78,103, 64, 45, 56, -205, 39, 24, 59,226,230,219,222,137,235, 79, 62,131,179, 27,143, 97,152, 38,204, 49,224, 11,191,255,219, 56,127,227, 46,190,227, - 7, 94,132, 25,247, 61, 20,229, 15,255,175,127,137,227,235,175, 66, 41,238,120,174, 92,189, 9, 44, 71,220,186,126, 13,159,249, -253, 79,227,225,189,187, 50, 10,253, 26,249,211,232, 26, 28, 40,107,176, 63,187,142, 91,207, 62, 15,109, 12,206,206,246, 23,254, -119, 12, 92, 17,111,159,236, 76,215, 96, 23,117, 33,219,124,235,157,215,205,103,104, 45, 30,220,191,143,215,190,250, 50,142,231, -231,178,103, 86,178, 75,150,209,126,161, 0,107, 16,220,160, 2,199,238,195, 56,118, 65, 72,201,165, 23, 12,237, 96, 86,130,169, -156,166, 51, 2, 62, 36, 28, 38,166, 40,214,149,210, 71,136, 79, 62,245,180,172, 7,215, 17, 76,217,234, 13, 20,186,138,189, 66, -146,235,100,100, 69,225,148,186,248,191, 71,237, 2,169, 90, 75,183,151,213, 77,238,121,227,182,183, 9,234,237,151,191,130,154, - 19,156,245, 24,134, 1,169, 37,168,149,196, 16, 20, 57,228,151,121,134,117,244,130, 47,203,140,253,126, 39, 41,128, 90, 48,143, - 86,188,169, 5,199,243,115,142,166,196, 38, 86,115,249, 75,100,192,115, 45, 98,172, 65,174, 50,218,172,111, 38,238,245, 11,205, -232,205,231, 32,171, 1, 33, 90, 53,241,223, 86, 93,221,212,211, 74,124,198,131,136, 59, 43,170, 8, 39,249, 82,167,196,196, 63, -235, 71, 24,177,171, 65,145, 78, 86,132,255,112,124,120, 14,109,101,204, 45,234,108,242,201, 45,209,146, 57,200,231,208, 52, 14, - 43,122,217, 24,207,247,176,235, 54, 30,125, 57,247,145,249,230,207,176, 37,220,213,139,233, 51, 93, 60,219, 81,166, 88,133, 79, - 85,138,124,109, 24,241, 25,227,210,255,231, 90,211, 69,225,166, 29,134,221, 30, 90, 53,235,159,146,113, 33, 73,111, 89,158,167, - 20, 35,187,212, 90,176,204,146, 23, 33, 78,152,166, 48,231, 36, 44,178, 64,240, 3,140, 49,216,239,247, 88, 2,119,217, 89,184, -230,227, 56, 18, 51, 10,250,139,173,113,240, 50, 17,169,181, 34,156, 78,162,218,182, 52,249, 85, 42,163,149,248,217,155,207, 57, - 44, 11,217,233,198,226,112, 56,174,211, 65,163, 59,190,115, 28, 60, 98,206,164,240, 13, 35,178, 20,253,109, 28,222,159,175, 10, -238,175, 35, 39, 95,170, 69, 0,111,178, 35, 90,179,145,165,139,111,211,188,148, 98, 31, 7,231, 37, 34, 85, 22,137, 70, 27,132, - 64, 69,246,176,223,211, 91, 29, 2, 82, 73, 12, 1,145,179,185, 52, 6,126,165, 22,132, 97, 37, 4,153, 64,219,222, 1, 54, 66, - 95, 74,129,171, 5,205,239,128,219, 57,221,233,154,188, 76,201, 15,105,120, 85,109,116,143,149,206,178, 42, 96, 83,169, 17,162, - 76,145, 64,235,164, 22,241,180, 54,134, 46,121,121, 6,154,110,165,101, 22,180, 95, 35,132, 83, 95,215,233, 38,180,150,245,199, - 54, 14,155,171, 47,221,179,238, 33,133,179,149, 84, 61,158,157,180,199, 86,164,174, 3,115,206,147,248,151,104, 35, 51,214,193, - 26, 35,207,144, 80,228, 44,137,124, 90,105,138, 72,219, 78,190,226,194,232,187,244,120,230, 10, 59, 14, 44, 32, 82,232, 5,190, - 86,156,214, 37, 17, 10,247,149, 98,159,150,229,126,102, 88,237,144,107,165, 21, 15,196,176,243,123,202, 4,118,109, 51, 46,196, -102, 9, 5, 88,168,175,229,237, 85,171,144,189, 2,214, 77,240,227, 14,103,215,174, 3, 2,227,176,158,108,218,209, 59, 44, 33, -224,137, 39,159, 22,190,122,129,177, 14,126, 80,184,126,243, 6,194,221,219,120,245,206, 87,240,250,176,195, 32,161, 0,121, 57, -192,170,132,207,254,222, 39,240,215, 62,240,253, 72,110, 68,124,120, 23, 74,105, 2,238, 99,224, 11,102, 72,120,122,245,206,107, - 24,207,206,240,224,222,189,175,137,250,220,174,165,181,179, 24,166, 17,215, 30,127, 92,118, 42,232, 47, 13, 71,168,232,234,193, - 46,158,176,182,239, 92,187, 96, 67, 42, 39,198, 39,178,194, 74,153, 35,177, 55, 94,123, 21,135, 7, 15, 24,174, 32, 99, 46, 35, - 15, 92,251,117,140,236,136, 83, 34, 86,177, 86,218, 40, 56,170,177, 82,145, 57,161, 3,209,206,146,115, 6, 50,129, 35, 33, 48, - 82,114, 24,175,112,244,103, 12,180, 6,172,177, 56, 29,142, 8,243,140,123,238, 85, 92,185,118, 3,186, 99, 53, 55,254,132,138, -110, 3,161,213, 38,118, 11, 86, 43, 96,106, 59,216,172, 69, 77,107, 17, 67, 8,132,237, 54, 17,134,249,152,126, 16,134,101,129, -209,154,196, 55, 0,185, 22,177, 32, 22, 17,150, 84,201, 0, 23, 79,118, 27,209,139,216,112,154,118, 8, 33,193,143, 99,255,204, -195, 18,176,155, 38, 20,163,224,253, 0, 99, 86,101,234, 95, 86, 20,199, 17, 49,214, 61,120, 42,111,186,204, 59, 22, 88, 4, 99, -109, 66,210, 5, 41,186,176, 88,145,177, 92,169, 50, 46, 85, 18,202, 81,169, 98, 45, 21,125,140,214,220, 17,198,170, 62,169,202, - 41, 32,139,160, 84, 41, 0,177, 74, 40,137, 56, 49,202,210,193, 74,189, 64,149, 65,122,123,126,149,161, 96, 48, 36,198,169, 58, -235, 17, 67,134,179, 14, 41,230, 55, 21,186,151,187,117,244,136, 97,125, 65, 28,136, 75,212,192,102, 98,237,126, 23, 93,187,126, - 64,107,122,113,181,182, 20,158,142, 20,153, 85, 99, 4,186,194, 49,114,140,137, 20,180, 24,232,183, 13,129,239,182,117,128, 49, - 44,110, 23,130,109,160, 50,140,247, 93, 71,163,172,101,192, 72, 41,240,211,136, 20, 35,188,248,134, 33, 7,218,225,120,164,182, - 32, 74,167, 62,141,208, 90, 99,186,114,182, 82,227, 80,113, 60,127,136, 97, 26, 25,119,139, 10,239, 60,187,111, 25, 27,103, 52, -193,107,146, 2,129, 5,133,243, 30,117, 48, 24,188,239,223,137,177, 26,199,195, 57,150,211,140,120,100,120,142,150,130,213,201, -158,189, 24,221,115, 2,166,118, 97,196, 8, 85, 40, 64,165,112, 74,173, 98, 84, 17,138,165,166,179,145,142,121, 89, 78, 76,157, -148, 72,219, 90, 11,172,165,154, 61,132, 32,206,139,136, 20, 22, 70,225,138,142,194, 24,205,221,114,173, 68,192, 66, 73,129,144, - 81, 82, 16, 96, 11, 80, 53,207,217,156,228, 50,146,233, 80,137, 9,218,208, 14, 87,228,125, 77, 18,116, 2,165, 96,189,151,181, -133,146,124,111, 42,184,249,121, 82, 27,211, 44, 97,227, 48,244,116, 74, 99,169,114, 39, 3,162,202,215,168,200, 36, 80, 64,141, - 73,144, 80,107, 3, 81,107,145,128, 23,141, 20, 69, 4,106,128,249,116, 98, 51, 36, 52,188, 24, 35,134,105,130,159,246, 29,127, -157, 19,227,102,167,113,224,115, 83, 43,142,167, 0,109,148,160,200, 61, 49,227, 53,116,139,174, 42,133, 16,156,102,203,116,142, -205, 80,206,200,149,145,192, 53, 73,182,128,156,225,173,160,217, 10,184,203,233,196, 8,234,230,138,169,156,236, 45, 33,116,161, -222,178, 44,189, 67,103, 65, 68,155,163,117, 3,191, 19,231, 0, 48,211, 32,165, 44, 24,105,221, 53, 70, 70, 64, 56, 90, 19, 13, - 29,194, 2,117,243,169,103,171, 81, 21, 39,233,166, 90,120,139,115,252,144,199,113, 47,182, 16,133,152, 72, 12,210, 98,189,242, - 35, 83,147,134,253, 21, 44,167, 35, 66, 88,112,118,245, 58, 98, 8, 24,167, 9, 75,100,213,179,219,237,128,156,113,152,103, 76, -195, 0, 55, 56,196,200, 3, 86, 1, 24,118,103,248,238,239,253, 62,252,199, 63,253, 83,124,229, 63,252, 1,194,233,136, 36, 93, - 92, 73, 9, 15,223,120, 13,243,178,224,252,120, 64, 60,206,152, 79,199, 71,178,211,169,116,180, 61, 24,229,250, 99, 79,224,236, -218, 13,102,106, 79, 19,172,181,184,121,227, 6, 69, 17,105, 29,125,181,127,111,187,160, 86,253,181,203,220,116,113, 81,193,253, -123,119,113,239,206,171, 88, 78, 7, 24,235,168, 2, 93, 24,252,161,187, 26,158,199, 32,127,157,117, 71,171,213,218, 5,182, 98, -193, 88,223,163, 81, 33,246,193, 62,218, 23,128,134,247, 3, 82,161,138,147,144, 20,133, 16,163,224, 83,169, 54,221,157, 93,197, -181,155,143,117,132,175,146, 23,113, 62,157, 99,158,249,153, 37,129, 93, 48,124,196, 67, 91,218, 92,152,152,149,225,188,131,243, - 35,174, 94,189, 78,107, 71,163, 2, 10,126,119, 62,157,176,132, 5,165, 38, 70,241, 2, 24,252,128, 16, 34,194,178, 32,231,200, -157, 57, 0, 63,140,128, 54, 8,243,194, 49, 85,201,221,150,145,114,194,224,188, 84,212,138,182, 16,169,240, 57,166, 94,247, 69, -218, 40, 28,206, 31,114,140,245, 13,118,233,198, 24,120,177,220, 80,149, 26,229,249,102, 16, 80, 11, 48,170, 21, 61,116,161, 95, -106,210,177, 55,167,131,177, 34,122,138,161, 3,107, 46, 20,149,114,243, 25,229,186,219,162, 49, 11, 82,179,186,192,192,202, 62, - 57,133,136, 24,103, 73,119,146,189, 48, 20, 15, 13, 17,194, 41,105,227, 90, 30, 51, 15,162,138, 34, 29,105,110, 16,151, 10, 73, - 80,180, 12, 44,105, 19, 38,121,111,219,216,254,242, 7,216,125,232,117,101, 80,160, 23, 1,186,119,232,218, 90, 88,235,224,199, - 61,166,113, 66,169, 21, 73,246,209,220, 33, 22, 73,125, 99, 2,213, 50,207, 40, 18,221,220, 20,202,181, 16, 99,105, 6,138,223, -106, 37,126, 87,105,210,177,164, 69, 99,112,199, 56, 50,172, 35, 6,248, 97,224,202,233,238, 93,160, 22, 24,231,225, 6,223,223, - 75,235, 28, 71,145, 49, 33,201,212,196,121,102, 75,107,240,224,111,163,211,113, 55,246,212,200, 20,147,104, 37, 26,196, 73,117, -119,198, 18, 22, 10,237,156, 23, 49, 97,225,133, 49, 12, 84,145,167,132,105,162,207, 60, 74, 71,174,181,134,119, 44,236,219,229, - 96,181, 65, 88, 22,174,171,114,238, 86, 77, 94,198, 36,162, 89,177,105,245,241,174,156,137, 90,243,178,204,226,120,224,212,128, - 43, 19,101, 52, 11, 4, 77,165,126,202, 25,214,106,217,119,243,252, 51,138,244,180,156, 18,243,228,229, 61,174,165,116, 65,155, - 53, 6, 85,101,204,243, 76, 61, 75, 33,208, 40,201, 37,229,100, 95, 77, 43,112, 70, 8,139, 76,232,164,163,150, 2, 56,199, 40, -104,212,181,160,204,133, 2, 62,107,157,252,121, 77, 23,255,101, 17,220,105, 45,107, 1,177,254, 26,109, 46, 4, 17,181,127, 37, - 81,145,163,210,186,197,105,154,172, 74,101,106,170, 5,153, 76,198, 6,255,126,146,221,125,201,161,167, 37,110, 18,116, 56, 81, -170, 70,136,111,233, 66,244, 50,208,128, 72,224,243, 86,154,144,154,140, 0,133,214, 97,139, 53, 81,206,102, 40,238,198,105,245, - 77,162,254, 95,169,135, 74,217, 46,184,141, 49,116,113, 57,137,175, 50, 37,117,108,164, 82,224,231,154,195,194,179,209,123,225, -152,180, 63, 75,237,205,135,222, 20,239,234,169,183,125,115, 5, 42,118,187,157, 0, 76, 52,118,211, 4,165, 20,238,221,187,143, - 97, 28, 97,180,193,241,120,232, 29,157,181, 86,126,112, 30,124, 87,111,222,196, 52,237, 48, 55, 88,128,177, 56,157, 78, 24,199, - 1,199,195, 17,110,156, 48,237,175, 98, 26, 44,238,223,125, 3, 85, 91, 60,241,196, 19,152,151, 0,173,128,121, 89, 24,154, 96, - 13, 16, 23,220,216,239,240,215,191,237, 91,240, 45,207, 63,135, 63,254,143,127,132, 95,251,245, 95,199,157, 87, 95, 99, 69,154, -178, 80,129,202,163,119,167,114, 48, 25,163,113,243,137,167,113,253,230, 99,172,126, 44, 85,150, 55,110, 92,239, 93,122,104, 29, -149,140,123,219, 24,170,237, 44,154,202,189,136,197,231,149, 47,125, 25,111,188,118, 27, 80,249, 66, 55,219, 42, 52, 35, 54, 47, -107, 9,144,105,249,236,106, 3,133, 99,148,226, 38, 57,238, 52, 99, 28, 71,156,142, 71,164, 28,161, 45,171,185, 32, 2,179,246, - 69, 57, 67, 15,166,147,162, 69, 9,115,154, 74, 85,142,108,173,103, 52,225,245, 27,215,169,138,191,247, 6,150,249,176, 9, 77, -145, 84,171,134, 21, 48, 78,212,221, 65, 50,223,233, 1, 55,198, 66, 91,221,201,124,109,244, 90, 37,150,176, 66,118,178,112, 23, - 59, 66, 84, 10,197, 10, 71,207,126,220, 97, 28, 39, 64, 14, 87,213,236, 27, 45, 49, 72, 44, 74, 86,160, 15,203,178, 32, 38,218, - 77,156,236,210, 24,162, 18, 55, 5,201,127,218, 95,205,137,160, 52, 11,212,230, 37,175,165,160,170,198, 99,175,125,124,142,114, -177, 72,172,138,187, 57,136, 63,191,109,162,180,209, 72, 2,126, 80, 90,245, 11,171,136,127,182, 51,224, 69,104,214,240,165, 90, - 27, 56,199,189,165, 54,242,207,228, 36, 56,202, 12,101, 72,139,203,114,232,246,149,137, 88,219, 26, 35, 64,113, 25,222,139,209, -218,194,140, 58,125, 82,196,133,162, 29,128, 92,234, 13,239, 91,187, 82, 77, 14,182,214,137, 27, 6,102, 24, 59,146,133,224, 7, -196,200,231,171,161, 49, 83,140, 92, 9, 88,233,232, 4,212, 19,150,128,146,138, 0,165,216, 13,101,173, 48,237,118,210,197,144, -154,168,229,130,207, 57, 82,100, 40,157,190, 23,245,127, 56,158, 48, 12,131,136,217, 12,197,130, 82,168,107,173, 58,217,204, 25, -118,133, 33,198,126,128,166, 86, 52,202,138, 38, 44, 11,172,229,251, 72, 74,215,218,101, 26,109, 58,226,212, 90,141,184, 4, 40, -197, 17,127, 46, 25,222, 15, 88,150, 5,222, 59, 76,211,142,239,114, 46,116,196,180,104,227, 24, 89, 28, 74,151,202,149, 23,237, -107, 13, 11,218, 99,126, 5, 74,212, 63, 63, 41, 30, 8,105,203, 93,227,225,253,208,215, 34,243,210,232,106,226,252, 48,235,153, - 64,118,130,216, 97, 51,117, 49, 13,193,221,166, 47, 40, 44, 24, 90,241, 83,202,230,231,223, 8,141, 27,134,187, 36,174, 69,140, - 92,142, 74,172,171, 57,103, 40,171,187,154,221,136,176,173, 23, 9,194, 31,175, 98, 83, 83, 90,117,155,102,197,186,202, 72,162, - 89,232,192, 50,149,123,211,208, 68,205,236,220,215,181,159, 18, 65, 89,183,186, 41, 43, 89, 14,153, 54,245,237,180,182,249,245, -105,117,144,149, 71,161,125,177, 38,186,137,234,197, 28, 11, 99,116, 39,218, 21,113,183,212,182,106,104,248,226, 77, 26,247,122, - 62,232, 94,188, 87, 69, 44, 47,202,138, 37,238, 19,152, 26, 54,105, 38,205,142,185,230, 53,180, 51,179, 57, 90, 90, 20,116, 91, -221,233,205,180,177,121,216, 59, 30, 89,165,254,179,242,179,217,172,114,222,242,214,119,212,138, 74, 12, 94, 5, 82, 98,183,218, - 67, 91, 68, 57,137, 90,169,250, 3,176,219,237,112, 60,157,122,130,219, 48, 49,191,215,141, 19,119,160,168,216,237,246, 8, 49, -162, 84, 6, 31, 92,189,126, 3,203,241,128,162,128,135,111,220, 69,201, 9,198, 90,140,187, 29, 30,123,236, 22,222,120,253, 14, - 30,222,127, 3,163, 82,120,250,241, 27,240,206,226,185,103,159,199,167, 62,243, 41,220, 59, 63,199,221, 59,119, 16,101, 55,211, - 68,108,109, 52,218,232, 98,171, 79, 28, 48, 86,225,153,103,159,131, 25,105,253,130, 37,229,106,240,142, 76,110, 17,199,108, 71, -147, 90,107, 86,222,109,223,190,233,222, 94,250,179, 63,197,131,251,111,116,203,214,186,187, 87, 23, 88, 60, 20, 66,240,103,108, - 84, 34,165, 40,254,208,198, 96, 89, 2,198,105, 15,173, 21,230,211,130, 24, 78, 28, 1,213, 42,149, 27,171, 46,235,249,226,198, -152,224,156, 21, 4,104,197, 48,140,240, 34,242,129,113,140, 26, 60, 30,122,135,160,141,198, 50, 47,168, 57, 10,156, 65, 93,200, -109,111,121,215,237,146,106, 22,172,166,220, 84,208,112,110, 32, 40, 65,118, 61, 77,213,218,247,180, 72,156, 24,104,215,197, 48, - 37,243, 98, 3,248,188,228,148, 96, 61, 19,155,140,160, 94,169, 17,152,248,114, 90,141, 16, 4, 40, 99, 44,230,211,188,198, 32, -110,212,214,126, 28,144,226,130,211,241, 32, 74,221,191,248, 98,215,114, 65,213, 66, 12,163, 31, 6,185,216, 76, 23,221,212, 82, - 59, 29,143,113,158,232,207,115, 35,203,117, 49, 90,139,249, 20,245,126,227,194,183,233, 78,251,121,201,247,206,189, 40, 48,114, -169,180, 17, 98, 3,214, 84, 1, 29, 85,201,158,215, 70,175,172, 7,249, 50,166,105,194, 44,254,225,214,137,148,182,135,109, 35, - 62,189,218,252, 90,113,217,132,141,132,199,160,143,169,183,241,158,206, 15,176,214,195,141,163, 48,208,185, 99, 85, 50, 21,224, -123, 21,101,101,154,250, 69, 91,115, 97, 87,104,200, 26,208,206, 99, 24, 38, 30, 36,133,197, 9, 52,127,190, 97, 28, 73,220, 43, - 89, 0, 28, 96,106, 85, 74,152,231, 5,251,179, 51, 1, 24, 37,174, 44,106,134, 1, 15,113, 35,244, 51, 55,248,206,153,143, 41, -209,198, 37,147, 29,165,208,199,201, 16,143,118, 5, 16, 67,192, 48,142,136, 49,244,221, 37,207,181, 4, 99, 13,173, 76,173, 64, - 18, 63,183,213,134,174, 8, 9, 2,225,202, 96, 17,235, 33,191, 19,107,140, 20, 72, 76,218, 75, 57, 99, 24,124,159,234,181,213, - 72, 88,102,185,116,116,143,111,173,165, 9,160,200,237,247,110, 32, 53,111, 24,113, 58, 29, 17,101,226, 54,202, 26,106,158,231, -126,118, 52, 14,122, 91,201, 41,128, 19, 80, 17,205, 70,217,215,106,153,246,100,177,153,214, 42, 46, 15,153,216,109, 69,192, 49, -165, 14,204,130,102, 51,163, 42,221, 55,109, 29,208, 39,138,214,162,214, 40, 29,115, 97,172,246,182,155,109, 80,175, 64, 93, 21, -127,158, 44, 5,177, 52, 62, 86,201,222,217,244,181, 83, 69,126, 4,107, 68,193,185,245,146,165,240,222,245,187,159,180, 67,185, - 8,107,234,231, 90,167,204,201,132, 73,195,116, 18, 91, 46,220,105, 91,105,210,180, 86,125,181,220,120,236, 10, 10, 69,200,151, -237, 89,234, 83,136,156, 87, 62, 3,234,198,106,102, 69, 80, 25, 87, 88, 91,109,191, 46,127,246, 82,163, 8,105,209,197,156,106, - 51, 9,227,213, 33, 10,125, 37, 76,137,190,240, 66,135,222, 48, 67, 65, 92, 64,170, 9, 80, 75, 47, 36, 27,181,181, 57,176,212, -173,231,222, 94,141,182, 60,108, 53,149,155,141,140,211,186,140, 54, 98,178,198,224, 56,207, 20,125,165,132, 24,162, 68, 27, 70, -164, 40,137, 77, 50, 78,219,157,157, 97, 28, 71, 76,251,171, 56, 30, 30, 80,101,169, 12,158,126,246,121, 60,124,112, 31,119,190, -250, 21,156, 14, 7,104, 99, 72, 89, 59,157, 16, 68,141,234,141, 6, 20,199, 81,188,180,163,192, 34, 32,163,135, 71,119,233,219, -238, 25, 0,158,125,246, 89, 60,249,236,179, 0, 8,178,184,123,255, 1, 74,173, 24,167,145, 60, 94,107, 68, 73,171, 46,120,158, -139,248,178,141,209, 40,185,226,238,157,219,120,229, 75, 95,232,169,116, 85, 68,102, 77, 67,168, 5,250, 98,157,229, 72, 20, 20, -124, 53, 69, 59,113,156,172, 82, 41,166,147, 2,181,129, 75, 80, 48, 77, 35,149,246, 70,118,254,194, 38, 79,185, 21, 50,182,175, -218,252, 48,245,189,120, 43,110,134,145,225, 5,199,195,195,158,250,229,189,195,114,156, 31,153,151,238,156,147,241,237, 10,208, - 49,155, 29, 43,133,123,128,181, 94,236, 19,194,209,110, 15, 92, 46,152,246, 59,196, 16, 81,228,101,111, 15, 98, 78, 9, 74,243, -103,176,198,226,202,181,155,164,165,201,165, 30,195,204,203, 48,241, 33,236, 22,175, 20,161, 12, 17,167, 85, 14, 82,227, 29, 78, -135, 35,106,166, 79,116,123,224, 60, 50, 83, 94,108,140,109, 36,182, 62,236,171, 7, 61, 39,254,218,165, 38,148,154, 59, 89,141, -169, 93,130,137,148, 44,227, 34, 30,249,134, 60,109,200,203, 21, 58,179,138, 39,183, 1, 66,173,192, 42,133,169, 94,253,255, 54, -105,118, 53,151,222, 97,107, 65, 40, 15,110, 66,106, 94, 94,233,148, 26,252, 72, 27,225,182,215,210, 17,181,141,102,181, 50, 5, -234,166, 72,115, 24,166, 61, 9,109,198, 96,152,118, 72, 49, 33,166,216, 45, 89, 57,208, 71,172,228,251,177,134, 4,195, 16, 2, -198, 97,236, 93, 36, 97, 75,166,175, 38,140,214, 88,150, 32, 92, 7,177, 60,106,141,148,104,243, 83,150,118,180,156, 50,172,179, - 24, 5, 93,218,114, 33,170,240,246, 99, 78,112,150, 25, 16,214, 58,161,150,213,190,103,110, 32,168, 44, 20,182,139,144, 18,134, -217, 12,195,216, 39, 99, 45, 24,164, 86, 18,198, 26,186,180, 37,104, 53,220,168,179, 78,126,159, 34,168,224,180,250,242,229,210, - 95,117, 37, 77,209,222,166, 50,232, 1, 27, 74, 64, 49,121, 62, 97, 28, 71, 28,230, 19,121,251,185, 64,171,213,115,173,205,170, -181, 1,152, 69,193, 75,123, 3,189,130, 98,230,189,210,152, 79, 39,120,207,213, 92, 53,210,253,241,166, 64, 41, 5,161,217, 41, - 53,197,128,168, 96,198,128,232, 66, 90,127,104, 68, 51,176,106, 60,106, 7, 75, 21,233,250,202,118,124, 43,226,188, 34, 69,107, -107,152, 74, 33, 50,188, 97,160,251,223,211,130, 88, 86,142, 58,133,229,196,212,194,222, 4,168, 62,166,108,182,184, 6,220,106, -239, 99, 91, 21, 53,102, 65,201, 69,172,179,182,175, 65,141,113, 50,229,145, 66, 75,241, 62,208, 74, 34,126, 7,207,233, 88,230, -148, 66, 43,197,140,200, 90, 41,210,172, 69,138, 45,161, 69,202,187,210, 38, 61,106,243,123, 55,248,147,210,252,110,173,113,189, - 99,231, 20,166, 64, 85,211, 47,125,126,191, 23,215, 2,219,247, 60,167,210,197,146, 69, 2,139, 20,140,136,147,179, 8,147,141, -176, 31,128, 84,194,122,167,201,148, 38,119,182, 69, 19,228,181, 6,139,239,139,105, 97,105,165, 64, 61,247,142,111,169, 45, 47, -184, 86, 25, 43, 57,203, 75, 90,198, 3, 74, 14,113,165, 21, 82,169, 48,168,120,112,247,181,206,251, 53,146, 54, 83, 10,122,167, -236,189,235, 96, 10, 55, 76,180,186, 84, 5, 5,118,104,198,168,238,211,245,222, 99, 57,205,228,130,167, 36,233,148,107,176, 71, -206,140,191,107, 52,167, 34, 80,128,206,226,150, 81, 20,122, 44,108,237, 23, 23,140,130,179, 35,222,241,205,239, 0,148, 70,200, - 21, 89,107, 12,222, 95, 24,159,111,187,242, 34,151,162, 86,236,120, 62,251, 31,254, 61,169, 83,149,161, 54,166, 9,232,154,226, -176,212, 11,236,251, 54,110,109,161, 15, 97, 9, 93, 13,175, 54,190, 96,109,124,199,224, 26, 99, 16, 83, 64, 76,164,176,181,174, -116,220, 79,136, 33,118,146,151, 49, 86, 58,199,218,163, 53,155,141, 44,151,184,226, 63,165,195, 51,130,247,236,130,191,237,206, - 74,246, 92, 61, 7, 91, 46,243,182, 7,229,231,191,198,221,106,181, 86,143,237, 5, 33, 99,217,194, 88,215,211,147, 56, 53,160, -103,178, 40, 13, 20, 17,117, 88, 30, 36, 77,247,128, 84, 58,136,165, 86,218, 87,140,247, 56, 28,206, 97, 69,145, 31,101, 68, 93, - 75, 33,212,225,146, 13,241,178,229,138,216, 77, 45,209,162,169,127, 31,157,184,167, 0,239,118,124,166,171,112,214, 37,230, 23, - 21, 48,134,184,222,148,151,254,179,181,139, 94, 9, 89,174, 19, 4, 37, 22,148,150,153,120,225,165,107, 99,184, 62, 50,239, 42, -242,245,231, 55,170,101,158,211, 89,130, 90,177,155,174,244,151, 83, 27,211,173,120, 57, 39,164, 48,119,125,134, 17, 64, 72,202, -172,242, 75, 19, 30,109, 46,224, 27,143, 63,137,156, 11, 66, 88,196,246, 2,225,201,139,211,192, 59,148, 34, 65, 45, 57,111,130, -102, 12,114, 72, 80, 86,112,156, 69,222, 37, 85,123, 1, 89, 82, 90,127,118,165,100,159,107,214,236,122,219, 70,225,149,221,180, - 2, 61,228, 34,208,219, 78,219, 90, 80, 78,206, 9, 49, 44,242, 25,202,138,161, 20,174, 1, 36, 85,173,253,124, 37, 19,145,202, - 34,215,247,162, 58, 69, 54, 1,109,154,210,246,228,100, 65,180,245,132,176,200,141, 97,129, 3, 80,208, 90,106,215, 89, 48,117, -183, 94,248,253,226,114,224, 68, 83,177, 73,104,191,126,206, 25, 74,186,104, 24, 33,155, 85, 64, 11,119,161, 52,123,171,156, 43, - 37, 70, 40, 41,144,149, 91,197,185, 49, 70, 56,109,104,231,149,207, 70, 41,133,130,204,233,132,214,114,249, 66,186, 66,197,115, - 85,136,107, 45,199, 33,183,149, 89, 59, 15, 69,179,208,236, 97, 85,232,113,109,141,185, 21, 8,207, 18,191,221, 58, 96,231,125, - 63, 91, 57,125,227,229,153, 34,245, 41, 53, 7,193, 45,227,114,172, 98,143,218,109, 78, 13, 62,175, 89,132,130,166,191, 71,125, -223,140, 22, 50,165,132,210,166,123,131, 3, 84,105, 66,184,154, 75,145,246, 56, 47, 65, 66, 73,214, 41, 70, 72,109, 0,197,210, - 57,101,228,180, 92,204,172, 64,203, 84,103, 81,221,159, 39,113, 31,181, 53,106,233, 65, 79,252, 62, 99, 92,160,149,236,254,179, -234, 43,190,148,216, 28, 52,209,121, 91,199,117,254,131,132,186,176, 40,214, 29,154,196, 75, 63,247,119,184, 86,201,128,183, 92, - 69,108,117, 16,205,123,213, 39, 13,218,201,103, 28, 89,128,201, 89, 99,180,129,122,226,185,111,170,205,242,195,221,231, 76, 49, -132,140, 65,219, 97,225, 29,193, 4, 41, 6, 28, 31, 60, 64, 12,179, 84, 61,121, 29,169,136,170,214, 24, 13,107, 60,125,134,242, -133, 43,217, 3, 25,165,176,204, 39,233,106,249,135,205,130, 52, 53, 82,121,180,189,125,219,177,144,176, 22, 4, 93,152,133,107, -156,250,168,243, 50,254,243, 2,243,189,129,114,140,129, 27, 38, 60,251,150, 39, 17,252, 30,215,206,118,128,140, 79,219,255,182, -237,213,245,102, 28,127,255,141,215,241,202, 75, 95,144,168,214,188,142,226,228, 34,104,104, 86,213,199, 51, 91, 27, 17, 15, 99, - 35, 23,124,199,136,110, 50,180,201, 10,230,129, 56,237,246,136, 75,148, 41,200, 44,163, 43, 3,239, 60, 22, 9, 19,104, 66,141, -203,106,229,166,160,111,227,162,216, 61,167,245,130,112, 76, 27, 90,187, 32, 28,107,165, 52,129, 15, 18,148, 99,189,195,224, 7, -104, 17,133, 89,229, 69,249,202,159, 41,167,212,121,197,237,215, 72, 49,193, 58, 79, 15,183,164,132,181, 11,162, 85,182, 57,166, -245,103,177, 28, 53,182,184,196, 48, 47,124, 81,115,227, 26, 3,211,217,213,158, 94, 53,159,142, 76,150, 42, 76, 27,235,157,197, - 86,252, 85, 36, 40,200,177, 75, 52,176,210,113,229, 78,147, 34, 95,219,118,225,156,117, 22,135,243,131,172, 13, 32,235,153,157, -100,100,207,172,226, 65,182,192,254,202, 30, 57, 5,148,148,201,206,223,236,223,218,207, 82,164, 75,184, 76,170, 43,162,101,184, - 48, 93,218, 40,159, 91,183,167,149,238, 35,103,101,232,205,134, 20, 29,237,175, 24, 66,167, 24,246,195,185, 22, 84,148,238,233, - 14, 33,138,239,213, 2,114, 48, 43,227, 96,228,187, 13,155, 48, 36, 22, 98, 60,184,157,179,130,186, 52, 82, 56, 23,132,200,113, -113,179,204, 52, 72,147,181, 22,208, 10,211, 56,177,208,104,214, 52,153, 94, 76,187, 9,243,178, 80,239,145,171,224,105, 77,127, -103, 90,103, 29, 67, 88,167, 21, 61, 57,171,202,165,195,142,182,253,179, 49,198,126,240, 27,137,131,213,138, 10,120,238,154, 13, -156,245,226, 35,102,118,130,181,150,154,149,211, 44,103, 81, 69, 88, 66,239, 24,149, 42, 34, 62,202, 44,164, 65,250,152,115, 3, -180,150, 80, 15,113, 57,104,205,119, 95,105, 94, 82, 49,196,149,219, 48,211,139,190,132, 64, 31,186, 60,111,165,172,246, 67,165, - 87, 87,131,115,180,184,162,143, 98, 85,159,136,240,187,169,208,186,246,119, 98, 35,178,232,162,219, 42,197,170,150, 4, 61,254, -115, 70,138, 83,211, 87, 81,218,153, 46,124, 78, 50,233,172,185, 10,245,172,172, 12,126, 0,206,112,202, 81, 37,174, 90, 41,133, -188, 48, 14,181, 42, 37,126,244, 36, 22,198,136, 90, 18,180, 29, 72, 32, 20,246,120,203, 65,104,241, 83,173,219,246,195, 4,109, - 41,108, 76, 51,245, 51,176, 6, 59, 65,190,114, 37,121, 98, 22,134, 93, 33, 66,121, 89,200,233, 24,169,243,104, 69,174,150,231, -162,138,238,197, 89,102,136,212,178,177, 60, 3, 12, 3,106,174, 40,209,173,232, 11, 41,154, 10,198,183,120,211, 53,154,187, 33, -104,177, 25,191, 67,238, 57,166, 9,102, 24,237, 68,175, 19,122,206, 64,237,211,196,214,241,235,238,164,162,182, 33,119,135,131, -241,178, 94,128,130, 22, 97, 94,159,248,137,213, 89,105, 80, 76,172, 56,149, 9,203, 2, 85,218,157,167,122, 49,223, 2,106,212, -147,207,127, 83,237,224,147,166, 0,183,174, 87, 26, 70, 43, 44,135, 35, 82, 14, 8, 11, 81,131, 37, 71,193, 66,234, 53,144,163, - 39, 46, 53, 16, 7,129, 8, 45,150,178,237, 34,154, 48, 45,198, 72, 97,152,214,112,214,247, 10,174,167, 46,109, 43,213, 82,224, -188, 65,136, 75, 87, 8,230,148,165,203,192, 26, 87,249, 8,230,251, 42,160, 35,186,241,108,242,184,249,204,219, 49,238,207, 40, -248,217,120,210, 91,246,116,171,134,181, 86,248,202, 23, 62,143,135,111,220,145,236, 94, 25,231, 72,167,211, 4, 64,205, 34, 5, -137,228,107,251,161,150,246,217, 72, 95,237,240,111, 54, 65,138, 67, 86,142,120, 78, 21,222,143,189, 43,235,106, 70, 73, 99,138, -178,231,108, 98,172,173,183,184,239, 99,196,207,221,172,123, 91,175,114, 71,178,218, 53,201,136, 59,101, 81,214, 27, 5,231,173, - 80,179,116, 15,255, 48,198, 10, 11,170, 32, 69,185,236,244, 58, 70,237, 2, 44,173,225,156,237,209,155, 74,254,236, 60,140,213, - 70,160,199,231,192,187, 65, 84,180, 21,110, 24, 88, 25,183, 63,155,165,159,179, 77, 75, 98, 12,128,230,184,172,241,223,157,140, -200,115, 94, 59,147, 42,107,132,221,120, 5,181, 86,204,203, 17,198,104,204,203, 44,151, 57, 15,255, 69, 14,170,214,217,230,210, -186,242, 22, 63,203,239,211, 89,143,105,218,163,232, 74, 68,101,133,132, 60,228, 21,157, 43,221,115,251,110, 46,115,228,183,145, -188,229, 18,226,184,148,139,227,115,237,100,239,175,248,185, 55, 85,123,243, 61,183,127,190,129, 46,200, 55, 87, 40,117, 45, 78, - 83, 35,175, 41,139,253,181,235, 76, 2, 12, 51,184,242,166, 55,190, 11, 48,157,195,225,252,192, 85,135, 49,136, 37,146, 22, 40, - 97, 28, 85, 0, 28, 74,222, 73,173, 53,180,119,221, 91,110, 69,204,213, 53, 32, 75,232,214,206,118, 30,180, 21, 72,206, 69,240, -200,169,139,160,134,113, 16,209,153,235,151,118,179, 30,105,249,126,154,192,177,141, 59,149,105,236, 1,219,215,130,237, 57,235, - 66,182,176, 32,165, 32,197, 64, 18,200,211, 32,171,176, 85, 52, 23, 99, 20,119,134, 18,225, 41,250, 69, 91,123, 6,129,193,224, - 25,244,113, 60, 28,145, 82,128, 22,222,131,245,132,145, 32,101,122,161, 69, 9, 94, 47, 69, 67,211,130, 56,247,213,137,130, 22, -119, 64, 19, 56, 53, 63,123,211,192, 72,154,157,210,128,114, 92,197,133,147,172,243, 68,247,129, 53,198,120, 45, 48, 13,188, 36, -164, 45, 98, 57, 85,222, 94,152,104,182,119, 49,199,128, 2,238,255,155, 70,132,169,148, 70,190, 51,201, 27, 48,190, 79, 55,148, -161, 46,129,169,113, 9, 90, 1, 87,111,220,236,197,130, 49, 6,167,121,193, 52, 77, 23, 56, 23, 45,130,183,237,203, 67, 8,130, - 63, 21,125,134,106,161, 74, 9, 49,206,178, 55,214, 82,156,108,144,196,162,179,169,149,233,118, 70, 68,156, 4,251, 4, 62, 59, -125,116, 45,231,146, 53,240,195, 0, 99, 92, 23,162,214,146, 17, 98,128, 22,148,108,233,186,136,213, 40,210,108,103, 13,109, 91, -181,234, 34,223, 20, 78, 50, 25,145,230, 65,183,243,146,211,157, 20, 35, 19,235,100,220, 62, 12, 67, 39,201,157, 78, 39,113, 92, -104,140,211,136, 28, 19,255,127, 90, 19,185,219,215,122,141,110,202,105,129, 50,154, 22, 57,173,161,114,185,224, 54, 72,125,125, - 4,168,199,159,121, 91,117,222,117, 11, 84,219, 91, 48,171, 55,225,225,189,187, 72, 33,192,104, 69, 11,151, 98,149, 93, 55,169, -102,237,144,106,163, 43, 5, 30, 10,106,211, 99,132,184,192,104, 67,106,210, 50,247,202,172,177,181,219, 11, 11,177,203,213, 42, -151, 43, 74,239, 16, 90, 28,102,110, 29, 74,174,242,210,134,254, 51,247, 52, 57,189,230,158,247, 75, 86, 3,187,179, 43,184,118, -235, 45,216,239,246,240,195,200,151, 66, 46,215,102,213, 83,194,124, 87, 74,225,207,255,228,223, 75,190, 52,186,154,189,237,110, - 27,204,165,230,178, 66, 94, 54, 17,158, 85, 70,243,125,183,178, 17,169, 1,181, 95,110,156, 56,104, 1, 43, 88,140,187, 9,203, -233, 36, 34,172, 44, 99,101, 43, 99, 54, 86,136,143,134,253, 41,137,212,220, 88,195, 30, 65,222,107,209,130,237, 50,113,126,232, -190, 78, 40, 9,201,144,145,249,176, 99,198, 21, 86,125, 49, 0, 0, 32, 0, 73, 68, 65, 84,251, 91,158,122, 26, 95,253,234,151, -129,156, 48, 47, 71,126, 95, 41,139,206,160,137, 4, 53,172,111, 35, 62, 33,159,129, 12, 0,181,245, 64,107,221,241,157,244,134, - 87, 30, 20,206,174, 62,113,161, 50, 89,235, 48,237,118, 72, 41,225, 52, 31, 57,213, 65, 22,145,149,192, 22, 12, 15,247,249,116, -196, 40, 94,100,103,199,158,168, 22, 83, 16, 74, 30,215, 66, 45,145,173,202,164, 40,165, 36,154, 16,133, 42,251,175,113, 63,241, -243,168, 44,120,148,209,216,239,246, 56, 29,143,168, 40,152,231,211, 38, 20, 70, 73,174,177,238,234,235, 54,174,223, 10,219, 46, - 23,157, 29,161,185, 33,229,217,193,173,121,224, 66,179,107, 63,123,223,251,109, 80,152,107, 32, 81,211,122,180, 83, 73, 49, 96, -201, 90, 12,211,116, 97, 39,238,172, 19, 79,125, 35,208, 17,192,116,118,229, 10,253,205, 41,194, 40,141,249, 52,195, 15, 30, 65, -138,178, 6, 19,105, 33, 60, 57,167,190,223,238,171, 24, 41, 60, 46,248,117, 27, 85,171,214, 53, 63, 33,165, 30,233,220,118,208, -222,121, 24,203,130,154, 74,107, 43,251,244,212,167, 62, 20,135, 81,121,222, 14,231, 62,101,178,174,191,191,218,104, 28,143, 39, -177,170,105, 9, 94, 75,162, 76, 86,253,172,113,222, 35,198, 4,239, 70,174, 21, 74, 20, 65,176,134,145,181, 86,138,129, 54,188, -156, 55, 42,110, 89, 1, 58, 43,235, 46,153, 34, 20,116,129,156, 17,151,144,113,174,187, 5,170,236,241,161,180, 92, 26,178,194, -232,249,245,166,235, 38,170,230, 5,168, 4, 9, 92, 43,136,125, 45, 69,172, 82,194, 15, 23,209,100, 45,205, 42, 91,123,129,234, -156, 67,236, 65, 36, 70, 72,113, 10, 41, 50,215,124,144, 2, 45,151, 4,163,201, 82, 72, 57, 83,197, 47,234,121, 37, 26,146,152, - 9, 67,242,195,216,211,211,172,117,130,160, 21,239,121, 76,244,244,215, 66,246,188, 60,223, 77,148,198,227,153,107, 53,107, 12, - 80,133, 8,231, 38,100,209, 80, 89,103,225, 29,239,154,208,172,146, 37, 35,135, 32,157, 41,255,220,109,194,148, 82, 20,253, 15, -241,215, 85, 70,228,235, 4, 4,189,160,175,141,236,153,137, 31,246, 98, 41,174,138, 14, 16,171, 13,210,194,149, 2, 41,131,156, -193,242, 44, 93, 11,139, 42, 32, 35,163,109,207, 22, 73,178, 26, 78, 41,195, 72,135,238,198,161, 71, 57,231, 24, 80, 82,146,239, - 16, 88, 78, 7,209, 49,240,166, 26, 26,101, 79,107,174,121, 50,127, 95, 37,154, 19, 37, 69,114, 19,125, 38,129, 51,141,227,196, - 16, 29, 41,172,212,173,103,223, 86,219, 94, 55, 73,240, 67, 69,197,233,252, 1,142, 15,238, 51, 62, 78,118,165,109, 7,209,226, - 70, 87, 56,127,185,176,103,116,110,144, 78, 67,144,119,165,116,122, 78, 5,129, 10, 90,226, 27, 75,201,240,206,203, 14, 18, 29, - 15,120,182,187, 34, 68,182, 69, 72,108,102,173,220, 68,220,209, 68, 14,198,174, 1, 27, 68,231,101,148, 34,226,154, 84,122,182, - 46, 3, 26,110, 48, 65, 73, 70, 59,205,151,143,186, 85, 22,170,174, 52,188,115,251,203,156, 98, 84, 92, 40, 82, 30, 37, 62,195, -102,135,165,141,140, 93, 83, 35,191,217,254,249,246, 17,173, 8, 96,144,219,202,129,201, 78,168,188,228, 74,230, 62,136,130,148, -149,176,212,246,237,151, 83,234,182,232, 80,173, 47,138, 43,154, 7,124,221, 97,173,201,105,169,172,216,208, 54,138, 30,220, 78, - 38, 4, 28,139, 95,185,122, 13,198, 58,132, 48,227,225,221,215,101, 66, 83, 36, 83,120, 45,112,116,223,149,149, 46, 78,106, 23, -245,101, 20,239,234, 67, 93,189,190,198, 83,160,167, 97,251, 63, 99, 5,254, 80,106, 69, 92,150,149,188,167,106,207, 32,176,218, - 97,153, 79, 40, 53, 97,218, 77,208,202, 81, 20,150,105,155,108, 10, 90, 35, 93, 30,197, 79, 65, 68, 38, 44,112, 56, 78,172,189, -139,107,170,254, 97, 28, 48,238,246, 72,115, 98,135,129,184, 10,214,186,237, 81,148,244,169, 92,208, 87,104,249,141,183, 34,186, - 11,176,155, 46, 82,148, 75,209,153,238,164,104,123,180,230,107, 85, 93,180, 86,251,127,238, 30,112,153, 24, 52,112,142,209, 76, -150,170, 10,112,195, 8, 39, 42,245,182,143, 44, 0,134,113,132,183,182,119,124,203,105,238,106,247,101, 89,250, 74, 66,107, 22, -102, 45,232,162, 23,132, 82, 96, 48, 92,194,247, 16, 14,215, 59,249, 36, 29,132,234,207, 30,215, 93, 50, 37,176, 43,175, 29,218, -200,218,105,145,139,223,246,216,216,214, 73,182,132,185, 90, 19, 14,135,115,201, 75,160,115,231, 32,225, 36, 94,144,203,198, 58, -212, 34, 14, 4,180,213, 64,233, 10,241,134, 27,229,207,149, 68, 69, 47, 75,180, 66,225,231,106,113, 37,195,161,233, 83, 90,177, -188,205, 13,168,138,186,148,102,109,106,159, 17, 15,101,234, 11,106,229,207,106,133, 15, 65, 61, 66,238,107, 33, 6,167, 8, 81, - 80, 75,174,142, 92, 30,181, 84, 89,105, 82,107,145, 36, 88, 36,151, 40,206, 10, 45,103,134,216,218,114,193, 56, 78,156, 42,201, -103, 7, 5,129,188,208,251, 93, 11,137,112,103, 87,174,224,112,184,143, 82, 8,138, 9, 37, 99,127,182,199,114, 56,137,162, 61, - 9, 95,220,139, 62, 97,129, 82, 44, 76,180, 29, 36,168,138, 66,180,184, 4,168, 10,236,247,123,132,146,186,216,177, 79, 4,141, - 37,111, 65,161, 67,170,160, 20, 6, 63, 74, 67,146, 48,203,122,182,105,123, 80, 27,200,138,147,210, 6, 15,107,186,149, 36, 81, -208,109,122, 97,156,199,178,204,208,146,123,209, 26,144,246, 44,110, 89, 32,132,218,176, 51,231,250, 53, 74,120,146, 70,205,122, - 19,199,172,197,138,236, 37, 36,166,246, 56,214,182, 26, 8,139,248,233,165, 49,110, 83,166, 22,241, 76,217,140,176,246, 43,159, - 85, 32,119,171,179,179, 3, 74,201, 72, 89, 28, 12, 5, 93, 12,153, 82,236,129, 87,237,204,131, 96,172, 27,156,170,189,139,234, -217,119,124, 75, 37, 38,180, 81,128, 34, 78,231, 15,241,224,222,235, 60,240,172,185,232, 3,175,107,151,145, 83,234,226,161,210, -108, 20,114,232,140,195,212,187,110,235,156,164,209, 68, 84, 85, 37, 40,190,118,225,152, 31,124,183,207,113,135,174,161,140, 21, - 37,173,234,126,227,134,127, 45, 49, 95,220, 39,202,232,147, 21, 91,129, 31, 60,131, 70, 20,224, 68, 65, 57, 12, 35,140, 27, 81, -123,199,230,187,221, 71, 3, 66, 31,138, 80,224,206,109, 29,119,134, 62,118,111, 66,148,203,202,235,173, 87, 82, 43,242,166,171, - 20, 57,164, 65,149, 11,187,246, 78, 75,106, 23,177,236,228,253, 48, 66,203,168,149, 96, 26, 67, 31,170,216,197,122, 10,156,252, -247,166,190,221,254, 60,219, 81,239, 86,136,178,189, 84, 47, 96, 81, 53,163, 35, 91,193,214,162, 22,107,134,168,111, 19, 98,100, - 16,132,115, 3, 73, 88, 98, 95, 10,241,196, 3,127, 9,107,202, 89,251, 25,101,231,104,141,237,197, 87,247, 86,111, 70,210, 23, - 68,111,138, 47,153,181,236,194,169,128, 93,161, 21,228,174,107,248, 97, 32, 30,179,169, 82, 81,112, 60, 60, 4,114, 65,201, 17, -128,198, 56,237, 96,172,197, 60, 31,251,231,221,124,217,109,215,168,196,179,156,114,146,110,142, 47, 35, 11,216, 53,169, 46,151, - 12,231,104,219, 33, 4,130,223, 89, 20, 60,114, 19,207, 25,109, 16,150, 0,239, 28,146,240,162, 91,166, 55, 47, 92,211, 47,248, -203,211, 19,165, 20,220,224, 97,108, 27, 17,166, 46,184,105, 74,221,245,251, 46,111,134,197,232,149,209,111,140, 65, 73,244,163, -107,205,116,180,155,183,222, 2, 63,120, 28,143, 71, 88,109,112,229,218, 85,148, 90,112, 58,112, 34,180, 44, 51,106,202, 18,122, - 4,217,201,243, 2,143,153,147,140,126, 49,200, 37,207,238, 95,138, 12, 41,208,138, 28,184, 45, 22,210,138,183,188,105, 72,170, -228, 26,240,153, 34, 38,180, 36,134,172,164,148,160,219, 97,105, 27,177, 78,116, 50, 21,112,214, 80,200,213,100, 79, 2,254,112, -206, 33,134,136,113, 26, 55, 57,247,164,251, 53,194,225,210,246,251, 50,109,107,227, 86,116, 6,186,145, 75, 38,194, 57,139, 20, -179,240, 46, 12,147,243, 4, 41,154,115,233,171,193,178, 65,189,150,218, 50,192, 77, 23, 14,119,145,154, 18,228,175,230,190,187, -217,171, 80, 11,180, 93, 39, 27,212,161, 24,122,206,107,233,127, 62, 85, 57,114, 46, 85,245,253,113,127,102,188,164,225, 25,219, - 39, 96, 81,210,223, 32,159, 67,179,138, 86,168,158,172,150, 18,215, 44,200,228,218, 3, 92, 9,104,239, 96,157, 71,145, 14,216, - 24,254,121, 0,230,150, 91,239,153,106, 38,103, 84,206, 65,236,142, 21, 86,214,101,200, 60,219,236,224,165, 80,110,137,102, 22, -206, 13,194,161,151,243,222,112,226,210,190,183,146, 73,199, 35,150, 86,206,176,192,201,140, 86, 43,156,166, 54,135,142,162,144, - 81, 67, 73,108, 44, 16,115,192, 52, 78,176,110, 90,211,227, 74, 21,247, 76,236,122, 39,191, 17, 11,194, 26,198,214, 22, 48, 25, - 79, 10, 18, 99, 12,170, 20,165, 41,208, 37, 97, 68, 7,181,125,247,120, 89,103,228, 84, 72,131, 19,213,125,142,153,207,157, 76, - 59,140,184, 92, 74,201,112,227,142,233,109,137, 26, 2,239,184,226, 41,114,110, 55, 87, 73,227, 93,212,146,161,176,174,183,147, -172, 13,156,117,176,195,192, 70, 55,132, 21, 62,211, 4, 48, 37, 71,220,187,115,187,115,196, 97,214,142, 69, 27,241,225, 98,141, -208,107,112,130, 90,215,241,160,151, 93, 58,215, 25, 78,188,145,179,136, 15,208, 15, 31,170,228,125,143, 39,108,123,222,182,139, -109,149,248,170, 20, 68,127,153,120, 33, 25,201,168,165,112,203, 26,122,207, 89,153,154, 46, 38, 73, 41,195,251, 17, 80,236, 40, -248, 96, 38,156, 36, 66, 16,194,210, 54,114,129,244,253,108,173, 72,113,126,211,165,249,168,144, 12,102, 37,243, 66,111,194,133, -246,123,183,137, 69,231,182, 54, 43, 92,189, 84, 32,136,208,100,187, 39,225,197,154,145, 99,238,126,204, 14,134,137,249,194,239, -127,249, 98,223, 94, 30,125, 45,112, 25,212,211,166, 10,114, 41,121, 55, 94,216, 79,230, 18, 68, 20,167, 49, 14,211, 5,123,216, -188, 28,145, 11, 5, 70, 45,129,173,237,243,183, 97, 11,173, 19,127, 36, 40,104,219,241,200, 5, 57,141,103,235,207, 15, 48,201, - 76,190, 87,231, 28, 32,200, 89,109, 40,166,172, 37,224,120,126,191, 43, 89, 21, 92,191,200,157,116,162, 80,181, 13, 65, 36, 72, -163, 72,242, 26,167, 71, 73,196, 52,173, 99,110,156,129, 22,210,210,138, 72, 22, 38,188,228,202,134,114,215,138, 75,242, 8, 56, - 62,235, 57,235,242,188,199, 16, 59,100, 98,187, 91,111,207,184, 29, 7,236,175,220,228,255, 62, 6,132,101,134,177, 26,203, 50, -119,112, 5, 19,182,226, 70, 76,186, 22, 99,109, 52,217,104, 88,131, 31,112, 58, 29, 97,180,197,120,245, 58,166,105,183,118,120, - 98, 47,107,201,103,218,232,222, 21,199, 16,186, 24,117, 24,134,110,157,105,207,133, 49, 90,128, 44, 25,187,253, 94,186,111,153, - 16, 24, 43,254,118, 2,131,180,214, 80,226,214, 80,214, 96, 89,150, 21,102, 35, 34,210,150,162,198,159,137, 1, 21,222, 79,125, -218,227, 28, 63,211, 52,179,115, 84,150, 23, 24, 59,230,210,199,164, 90,107, 56,205, 34, 82, 91,131,249, 2,172,165, 34, 45, 81, -194,114,108,159,110, 40,173, 9, 0, 42, 44,162,243, 38,235,189, 21, 42, 73, 40,130,252,204,141, 48,232, 83, 15,214,105,135, 63, -191, 8,211, 61,199, 4, 92, 5,226,111,141, 33,249,185,182,238,187, 37, 65,182,213, 13, 58, 29,112,157,106, 66,252,238, 78,206, - 23, 35,171,165,181, 56,136, 41,117,151, 71,251, 61,155,192,182,237,161,235,230,231,105,239, 99,215,151, 56,139,229, 52,163,166, - 40,142, 8, 78, 77,131,168,203, 73, 95,100,163, 68,142, 6,159,229,198,165,112,158, 41,119, 41,134, 46,142,205, 33,118, 61, 68, -115,233, 88,107, 37, 60, 74, 38,135,210,237,210, 60,193,226,179, 69,229, 78, 59, 22,228,198, 88, 60,184,123, 15, 41, 46, 44,188, -156, 21, 54,131,129, 49, 30, 86,236,105, 78, 86,126, 77,191, 21, 3, 87,189,214,177, 64,174, 0,134, 97, 64, 92,102,132,176,136, - 80, 78, 67,149, 36, 19, 57, 2,177,154,190,105,203, 39,104, 13, 93,148, 34,181, 61,143,169, 93,186, 13, 50, 85,139, 92,191, 0, - 52, 73,122, 41,156,164, 96,209, 29, 9,222,206, 23, 40, 5, 59,122,104, 77,231, 80, 56, 29, 55,172, 8,121,238,228,242,215, 82, -100, 91,107, 49, 31,169, 55,104,194, 82,103, 56,209,140, 18,206,147, 98,132,209,198,252, 74, 78, 17, 41, 69,204,199, 3, 30,222, -123,227,130, 98, 58,203, 88, 26, 34, 30,115, 27,240, 70,219,143,117, 21,178, 68,100, 86, 40, 56, 71, 18, 93, 59,220, 82, 73, 61, -111,218,180, 93, 99,167, 34,229,222,141,109, 1, 28, 91,145, 69,201,220,155, 53, 75, 79,219,149,112,119,187,141,207, 92, 21,247, -109,255,200,253, 43,119, 94, 57, 69,156,206, 15,194, 36, 23,203, 74, 23,100,172, 48,131, 53,230,179, 92,232,106, 47,199,189,182, -223,151, 65, 31,237,129,211,155, 11, 84, 93,240,107,182, 95,163,217,120, 46,255,122,140, 55, 85, 61,185,173, 49, 3,154,103,153, -162,168,218, 57,229, 95, 43,130,244,107,198,209,110,138,145, 62, 70, 85,144,233, 2, 21,152,219,191, 47,196, 69,242,166,253, 40, -135,105,171,118,153, 25, 77, 31,101, 90, 5,115, 27, 5,231,215,179,160, 93, 22,146,105, 77, 8, 75,201,181,119,210,181,174,217, -246,237,197, 77,145,118, 51,141,214,105,101,234, 30,178,144,236,166, 29,173, 40,206,242, 34,149, 93,122,169, 25,203, 18, 86,122, - 84,161, 14, 35,181, 29,187, 96, 58,183,122,131, 82, 75, 23,221,172,130, 47,238,113,171, 88,237,218,225,174,181,233,126,228,118, -105,133, 6,129,169,196,227, 54,199,198,246, 89,178, 34,148,212,214,162,130, 26,145,154,139, 8,158, 12, 35, 72,229,192, 48,158, -129, 28, 70, 34, 70, 25, 58, 99,228,192,169,253,215,214,146, 7, 62,236,118, 44, 70, 12, 47,167, 24,151,190,255,204,145,151,170, - 31,135,158,151,157,230, 19,211,251, 98,160,152,104, 62, 33, 71, 78,177,226,178, 64,213,130,148, 55, 17,168,169, 77, 54,100, 50, - 37, 69, 74,142, 17,113,158,225,186, 74,186,160, 0, 24, 5, 84,213,176,172, 85, 38, 99, 80, 26,211, 52,193,137,162,185,233, 17, -198,105,236,140,236, 34,222,236,227,241,128,154, 51,126,249, 23,126, 14,127,245, 91,191, 21,239,125,207,123,240,157,239,126, 55, -118,187, 61,190,240,133, 47, 72,115,194, 29,110,227,104,240,194, 89,129, 85,125,149, 85, 50,254,235,127,252,147,248,212,167,127, -135, 89,244,226, 76,105, 56,213,102,107,180, 13, 19, 28, 24,122,162,141,238,209,156,206,218,126, 46, 61,251,236,115,248,216,139, - 63,140,247,191,239,187,241,194, 11,223,129,119,189,243,157,120,237,206,107,120,253,245, 55,160,149, 17,152,138,129,159,168, 4, -247,214, 74, 46,187,238,162,200,113,183, 35, 29, 82,136, 81,186, 5,179,148,132,113,183,147, 98,118,141,130, 86, 90,227,159,255, -210, 47,224,214,173,199,241,167,127,246, 89, 84,195, 48,157, 2,133, 23,255,246, 15,226,199, 94,252,219,248,215,159,248, 4,146, -124,134,168,133, 66,191, 24,113,154, 15,114,161, 19, 24, 53,207,179,136,189, 42,172, 54,248,135,255,229,127,129,127,243, 7,191, -143, 42,186,134, 34,247,193, 48,208,101, 80, 50, 47, 59, 55,120, 65, 89, 20,209,128,212,238,151,111,137,117, 78, 70,255,222,211, - 89,176,219,159, 97,127,229, 58,198,105,194,184, 63,195, 56,237,224,134,177,187, 40, 82,140, 34,206, 95,215,117,196,113, 83,232, -154,164,176,162,112, 16,132, 89,149, 36,218,135, 32,113,165, 17, 94, 38,158, 49,101,252,212,127,245,143,240,103,159,253,115,121, -119, 87, 59,109,109, 33, 87,160, 86,228,195, 31,252, 16,190,248,197, 47,110, 38,122,186,219,127,219,197,254, 75,191,248,243,248, -196,111,127,146,103, 80,229,251, 83, 74,133,129, 33,198, 87,181, 6, 78,139,235,166,133, 70, 25, 12,187, 51, 64,236,126, 78,166, - 4,185, 50, 5,206,122, 98,146,189,183, 29, 2, 71,235, 45, 25, 2,222,123,248,105, 15,109,157, 56,104, 82,215, 84, 25,173, 97, -231,227, 67, 40, 24, 25, 29, 68,241,228,110,186,208,110,223,169,146,243, 92, 31,169,222,109,192,141,237,190,180,237,208,114,206, -112,134, 42, 87, 63,120, 34,251,138,228,184, 87, 72,167,151, 47,176,211,217,233, 42, 25,235,231,238, 47, 69, 89,189,222,173,243, - 87, 86, 95, 8,192,128,110,132, 76,217, 55, 68,114,125,115,225, 5,105,189, 70, 42, 17, 70, 57,120, 71, 54,177,241, 14, 74, 87, - 44,167, 19,106, 99, 27,215, 40,232,212,244,166, 11,106,123, 49, 89, 25,183,179,154, 34, 78,177,141, 67,173, 93,189,200,141,204, - 7,185, 68, 59,188,164,118,118, 33,253,193,122,221,183,106,165, 41, 52, 51,172,102,149,140, 12,183,251,242, 71,197,102,118,191, -253,230,130,223, 78, 12,182, 23,119,150,200, 87,219,220, 0, 90, 99, 24, 7,132,249, 8, 20, 5, 59,140,176,222, 97, 14, 75, 63, -116,123, 87,219,188,192, 13,124, 34,235,129, 54,110,250, 90,121,231, 23, 34, 67,183,246,188,170, 80, 16, 80,161,123,230,120,205, -220, 57,230,154,137,171, 69,155,100, 44, 80, 18, 66,209, 70,211,252, 12, 79, 80, 3,119,188,110,114,200, 57,225, 52, 31, 40,158, -105, 34, 74,137, 48,108, 42,235,186,101, 72, 2, 24, 68, 68,217,186,223,214,109,176, 99,178, 80, 8,236, 80, 27, 92, 35, 87, 84, - 85, 16, 37,253,203,120, 15, 63, 77, 24,167,137,226,186,196,239,178, 90,181, 10, 43, 55,138,100,109, 53,114, 8, 40, 81,192, 25, -149,241,197,165,174, 93, 96,155, 20,104, 59,245,149,202,178, 44, 93, 27,209,188,194,107, 17, 46, 69,142,247, 56, 29,143,208, 69, -244, 48,142,159, 9, 11,143, 5,167,123,231, 80, 80, 24, 6,223,147,173,170, 60,215,170,135,125,104, 40, 72,164,110,179, 7, 74, -252,227,114,154, 87,124,116, 62, 33, 73,129,228, 7, 17, 9,201,175, 83, 82,133, 82, 22, 57, 19,140, 83, 82,130,202, 9,147, 31, -160, 0,156, 30,220,103,119,149, 18,252,110, 66,200, 11,226,195, 83,183, 34, 41, 99,196, 38,199, 40, 87, 0,248,213,127,241,191, -113,229, 0,141, 31,255,248,143,226, 61,239,254, 14,124,250,119, 63, 77,122,227,124, 18, 54,115,243,199, 43, 24,227,160, 75, 4, - 52,245, 45, 37,103,252,143,191,250, 63,201,180,128, 28,245,246, 16, 88,241,144,103,137, 49,181,218, 96,244, 59,209, 27,112, 36, - 74,225, 30,195, 79,158,121,250, 25,124,252, 71,127, 4,255,199,191,250, 63,241,210,151,190,136, 24, 23, 60,255,252,243,248,241, -143,255, 56,254,213,175,253, 26, 94,190,253,154,248,243,141,196,149, 70, 44,243, 81,236,109,121, 13, 38, 89, 66, 87,105, 59,231, -176,196,163,228,113,187,206, 67, 72, 41,194, 58,122,198,219, 91,246,204, 51, 79,195,123, 22,178,121,166,182,225,185,103,158,234, - 46,134, 90, 51,146,112, 37, 96, 60,236,224,144, 79, 89,232,128, 22,195,180,195,168, 64, 42,156, 64,121,254,231,255,229,127, 69, - 65,225,190,190, 64,172,132, 9,167,153, 78,144, 97,164, 53, 56, 71,242,242,149,161, 48,179, 69,173,114, 82,233,186,166,162,166, - 68,116,179,241,124, 62,132, 8, 90, 98, 64, 12,129, 34,189,193,203, 88,219,194, 24,141,105,127, 13,203,249, 57, 82, 78,152,207, -207,249,243, 9, 63,192, 96,128,170, 26, 41, 22,212,148,168,151, 82,149,161, 96,169,192,160, 34,156,102, 58, 73, 42,240,171,255, -226,127,103,234, 93, 73,240,126, 64, 81,109,212,157,164, 97,201, 48, 90,225,131, 31,124, 31,126,227, 55,127,179, 35,199, 21,128, -176, 68,152,129,110,135,216, 45,161, 65,120, 30,182, 79, 68,180, 53,236,133, 20, 4, 11,172, 40,118,107, 76,139,148, 86,226, 97, - 60,225,225,233, 62, 74, 6,140,182,208,131, 66, 60,158,195,218, 1, 49,202, 68, 71,166,168, 41, 37, 40,195,223, 91, 69, 2,164, - 98, 27,235,107,141,227,249, 57,255,243,238,234,245, 95,177, 27,101,231,163, 58,186,109,119,249,168,236,101,117, 9,180, 81, 11, -250, 14, 46, 37,142,240,154,234,217, 15, 14, 49,132,181,122,111, 20,156, 75, 2,162, 70, 61,106, 79,108,145, 7,115,139,103,189, -172, 52,215, 27, 79, 96, 69, 69, 76,177, 31,160,205, 70,182,138,250,184,183, 12, 97, 97, 71, 18,230, 30,116,176,178,135, 73,221, -186,124,249, 92,190, 40,171, 28,184, 13, 50,161, 85,171,234,146, 8,168,248,165,172,177,158,146, 47,222,149,148,184,144,107,221, -246,203, 73, 84,189,109, 20,212, 46,152,254,121,151, 55,231,193, 95,254,249, 90,129,117,193,255,120,105,202,208,160, 58,106, 19, -163,219, 4, 69, 69,172, 29, 41,240,179, 76, 49, 82,252, 97,214, 40, 82,165, 20,252,224, 24,242, 98,152, 90,117,217,210,243,245, -130, 87,182,251,245, 30, 63, 41,159, 63, 47,180, 13,103,189, 81,159,186,195, 65, 34, 89,229,114, 86,130, 84,204,133, 10,212,222, - 29, 67,161,208,105,218, 69, 94,218,240,217,217,157,237,101,164, 69,161,208,197,119,160, 72,113,102, 68,149,221,236,108,101, 99, -251, 83,221,161, 81,213,170,142,205, 49,178, 11,149,240,139,254, 86,151,122,129,235,223, 44, 73, 44, 12,185,115,107,107, 41, 37, -126,116, 99,109, 87, 46, 55,244,101, 73, 73, 72,139, 84, 84, 55, 17, 87,195,244, 54, 0, 81, 16,251, 30, 90,252,174,116,158,235, - 84,162,192, 40, 30, 80,109,172,107, 44,245, 1,171, 98,221,136,147, 33,174,129, 68,151,166, 77, 41, 37,184, 97,130, 49, 22,126, - 28,168,106,175, 43,200,169, 42, 77,241, 92, 92,196,167, 78, 66, 99, 59,204,183,172,137, 16, 23,118,147, 41, 73,216, 72,238,129, - 72,218,112,124,251,225, 15,125, 8,191,254,235,191,209, 11,226, 87, 95,123, 13,223,251,189,223,131,207,252,254,103,240, 75,255, -195, 47,226,183, 63,241,219,114,137, 90,252,242, 47,254, 60,126,235, 55,255, 53,114, 74,248,249,159,251, 89, 44,243,130, 31,121, -241, 99,248,195, 63,248, 67,252,243, 95,254,101,252,250,111,252,223,184,245,248, 45,252,253,159,248,123,248,192,251, 63,128, 15, -127,240, 67,112,206,227,165, 47,189, 4,165,128,159,255,217,159,131,247, 30, 63,240,253, 31,193,135, 63,252, 65,164,156,113,251, -246,171, 66,110,244, 72, 49,227,197, 23, 95,196, 39,127,231, 83,248,236,103, 63, 71, 65,152,182,152,151,136, 7,231,231,120,247, - 11, 47,224,223,254,209, 31,225, 23,254,217,127,135,253,110,135, 15,189,255,187,241,109,239,122, 23,190,252,242, 87, 80,114,193, -199,127,228, 69,124,248, 67, 31,192, 11, 47,124, 7,238,190,113, 23,247, 31, 60,128, 2,240,207,126,230,159,194, 57,143, 31,252, - 91, 31,197, 7,222,255, 62, 44, 75,192, 43,183,111,195,239, 38, 78, 51,100,106,240,254,247,126, 23,254,221, 31,255, 49,206,246, -103,184,253,202,109,148, 90,241,237,127,253,175,225,252,112,142,167,159,122, 10,159,248,212,167, 48, 12, 19, 62,246,195, 63,132, -143,124,239,223,196,123, 94,248, 14, 60,241,196, 45,124,238,179,159,199,199,127,244, 99,176,214,225,229,175,222, 70, 10, 51,254, -193,127,254,247,241,210, 75, 47, 97, 62,205,248,197, 95,248,239,241,137, 79,125, 6,187,253, 30, 63,246,195, 63,132,247,189,247, - 59,241,194,223,248,118, 28,231,128,243,227, 76, 85,252,188, 32,151, 36, 12, 2, 32, 71,222, 37,203,178,240,121, 73, 9, 47,254, -224, 71, 81,115,198,237,151, 95,198,123,222,253, 55,240, 3,127,243,123,240,201, 79,126, 18,113,153,241,211,255,228, 39,241,204, - 51, 79, 67, 1,120,120,254, 16,223,249,238, 23,240,183,190,255, 35,248,244,239,124, 10,181, 20,252, 55,255,248, 31,225,185,231, -158,133, 54, 6,175,188,250, 26,222,247,222,247,226, 99, 63,252, 67,248,204,239,126, 6,126, 24,241,211, 63,245, 79,240,153,223, -251, 55,253,206, 56, 59,219,227,239,124,252,199,240,190,239,254, 46,188,231,221, 47,224,171,175,220,198,253,123,247,160,180,198, - 47,253,252,207,224,147,191,251,123,176,222,226,191,253,233,159,194, 48,120,124,244, 35,223,135, 15,189,255,253, 8, 75,192,235, -119,239,225, 39,255,225, 63,192,217,217, 30,127,245, 63,251, 54,188,252,202,109,124,244,251, 63,130, 15,188,255,125,248,174,247, -188, 7,247, 31, 62,196,157,215, 95, 71,138, 9, 31,254,208, 7,241, 27,191,245, 91,221,145,160, 0,236,246,123,252,224, 71,191, - 31, 31,249,222,239,193,119,190,240, 2,158,121,203, 83,248,252,231, 62,143,156, 50,126,246,103,254, 41, 66, 12,248,209,143,189, -136,207,127,238,115,248, 59, 63,250, 49,188,247,187,190, 19, 55,111,222,196, 79,252,221,191,139,223,254,196,239, 32, 37, 6, 7, -229, 84, 16, 75, 20,206,254,122, 30,181, 48,178, 6, 20,202,226,248,202,249,255,105,236, 76,159, 45,171,206,243,254,172,113,239, -115,110,247,109, 36,134,238, 6, 97,232, 9, 73, 6, 33, 71, 88, 3, 2,154, 73, 72, 66,178,173,146,227,184,236, 36,114, 92,113, - 20, 89,137,243, 7,164, 42,149,207, 73, 85, 62,197, 54, 66, 8, 13,209, 16, 59,138, 36, 16, 66,102,176,100, 97,155, 18,118, 89, - 52, 13, 52,160,110, 26,232, 6,122,138, 26,163,190,125,239, 61,123, 88, 67, 62,188,239,187,246,190,167, 79, 43, 81, 21, 85, 8, -154, 59,156,179,207, 90,239,240, 60,191, 39, 98, 50,161,207,158, 86,124,152, 16,174,116, 35,110, 21,231,249,255,243,118,149,161, -203,226,181, 82,138, 92,165,117,208, 6,104,186,117, 22, 7, 36,204,214,215, 25,211,199,124,108, 71,225, 33,134,171,226, 50, 70, -112,188,231, 96,242,146,181,166,100,120, 43,163,139,111, 92, 72, 97, 37, 80, 68, 48,143, 33,209,207,163,201,151, 75,214,168, 9, -171,103,199, 64, 8,182,120,141,212,216,146, 7,109,141, 31,112,176,252,179, 26,103,225, 42, 79, 81,147, 60, 54, 41,185,182, 80, -240,174, 70, 93, 79,105, 28, 42,118, 54,134, 62,132,142,152,194,226, 9, 70, 42,211,253,115, 10,169,200, 17,132, 98,101,145, 34, -192, 89, 82,225,138,130,254, 23, 93,232,106,206, 94, 52, 63, 97,152,103, 47,147,106,152,246, 90,109,187,206, 97, 3, 1,109, 59, - 35,194, 90,234,161, 77,134,210, 9,109, 55, 67,136, 29,123,105, 21,172,246,204,180,119,164,226,255,127, 92,224,139,132,114, 27, -126,238,192,206,129,130, 91,165, 9,142,176,160,181, 48,203,249, 89,178,158, 70,204,153, 33, 17, 57, 13, 42,217,152, 34,225, 96, -197,225,192, 69, 76,100,136, 10, 69, 54, 78, 97,172,161, 20, 46,102,127,199, 72,212,180,190,239,209, 52, 45,154,102, 70, 35, 54, -241, 92, 11, 84,194,210,168, 95,241, 94, 90, 94, 87,217, 9,147,101, 38,151,238, 78,113, 49, 65,207, 62, 1,129,104,135,168,137, - 88,101, 8,182,212,199,182, 8,123,114, 74, 72,161, 71,232, 26,164,182,135, 77, 84,112, 26, 69,241,139,154,227, 50, 13, 11,149, - 42,231,224,140, 97,210,155, 46,226, 30, 99,104, 52,152,250,128,174,233,216,254,100,145,161, 97,108,133,106,186, 4,227, 43,134, -200, 80, 74, 33,165,200, 25,248,201, 20,182,158, 64, 57, 15, 88, 7, 87, 79,224, 38, 83, 44,109,217,130,233,230, 77,168, 39, 19, -122,238, 51,117,153,237,172,129, 85, 6,134,121,218, 86,101,232,156, 10, 54, 86,105,141,164,193,142,135, 0,101,128,182, 91,135, -117,154,227, 42,105, 28, 29,216,149,208,245, 13, 21, 52,177, 67, 74, 28,229,105,128,156, 3, 66,236,112,252,196, 49,108, 89, 94, -166,221,249,136,220, 39,187, 80, 24,250,203,123,143,205,155,151,113,215,221,119, 83,246, 56, 51, 19,110,188,225, 70, 60,249,228, - 62,252,233,231,238,198,255,254,214,183,177,247,166,155,160,148,133, 82, 4, 75, 90, 57,187,130, 63,189,235,110,124,245,235,127, -134, 91,110,222, 91,244, 63,194, 76,184,252,109,151,225,208,161, 67,136,169, 71,211,172,163,239, 27,172,173,173,224,192,179,207, -226,109,151, 93, 10, 1,182,158, 56,126, 28,119,221,125, 15,246, 63,189, 31, 55,223,120, 3,238,184,253, 22, 60,185,239, 41,124, -233, 43, 95,195, 55,191,253,109,124,244,163,119,148,103,164,174,107,172,174,207,240,249, 47,126, 9,223,252,206,125,184,229,230, -155,144,144, 48,107,214,145, 56,209, 79,166,111,251,159,126, 22,239,190,246, 26,192, 26, 84,211, 9,174,189,246, 93,120,238,224, -225,242,249,187,243,195,119, 96,125,189,193, 61, 95,249, 26,238,253, 31, 95,199,108,214,224,227,191,118, 39,158,125,238, 5, 92, -181,123, 7, 98, 55,195,150,229, 45, 48,218,224,196,137,147,104, 57,199, 60,180, 13, 62,180,247, 38, 60,245,204, 1,124,245,207, -191,133, 71,126,248,215,184,253,230, 27,145, 98,164, 93,112,223, 33,181, 29, 92, 86,208,164,217, 67,202, 1, 90, 37, 24,157,161, - 84,196,139,135, 15, 97,215,206, 43,144, 16,112,217,165,219,161,141,194,210,196, 99,235,197, 23,227,196,201,147,120,254,133, 23, -176, 99,199,149, 8,161,199,101,151,110,135,209, 26,155,183,108,198,101,219,183,225,248,137, 19, 56,240,220, 1, 92,241, 75,111, -131,175, 60,174,188,242, 10, 24, 99,177,229,130,183,226,146,173, 23,227,228,201, 83,188,102,161,162,246, 29,239,120, 7,158, 61, -240, 28, 62,119,247, 23,240,131, 31,252, 8,111,191,106, 15, 66,228, 73, 52,128,212,119,136,125, 64, 93, 85, 88, 59,187,142, 47, -126,249,235,248, 95,223,190, 15,183,222,188, 23,214, 58,220,115,239,151,144,115,198,231,191,248,101,188,255, 87,223,131,159,236, -219,143,123,191,242, 13,252,249,119,238,195,135,111,191, 13,198, 16,143, 67, 41,160,154, 76,144,149, 0,158, 52, 62,124,199,237, -152, 53, 51,252,241, 93,159,195,127,255,227, 63,193,234,218, 42, 62,250,145, 59,144, 19,241, 16,150, 55, 47,227,158, 47,124, 17, -183,222,178, 23,251,159,222,143, 63,185,235, 46,156, 60,245,127, 70,235,108,131, 4, 13, 55,169, 81, 89, 79,251,116,163, 73,172, - 26, 99,225,185, 20,232,152,175,160,173,135, 50, 22, 41,211,164,196, 14, 4,141, 1,252, 63,127, 8,143, 47,141, 34,248, 26,117, -234,227,127, 38, 9, 89, 4, 83,233, 17, 69, 12,150, 68,188, 96, 17,218,126, 68,219,202,100, 63,201,172, 16,151, 49,170,236, 27, -141, 45,241,152, 64,134,171,104,199, 17,250,192,233, 74,156,188, 36, 20,160, 12,116,161, 43, 16, 16,197,133, 0,197,144, 54, 3, -194, 83,147,189, 66, 32,248, 66,174, 27, 44, 86,128,117, 21, 97, 17, 89,149, 29, 11,247, 88,109,152, 8, 8, 5,148,196, 16, 25, -117,237,208,245,205,112,233,136,234,145,255,251,158,211,123,196,119,184,240, 66,102, 82, 29, 70, 26,130, 24, 34,178, 38,144, 77, -138,233,188,118,182,249, 9,203, 60,140, 39, 45,200, 38,167,204,247,174, 36,176,137, 39,147, 70,242,185, 80,226, 60,227, 9, 99, - 14,112,222,242,127, 23, 10, 37,139, 68, 68,241,188, 24,215,115, 52, 4,162,154,159, 91, 13,200, 30, 49, 55, 27,109,114,153,129, - 28, 36, 78,202, 67, 2, 18,191,127, 42, 15,239, 43, 93,230,185,224, 92,181, 54, 37, 69, 48,100,178, 9,202,126,117,182,122,182, - 4,193,116,163, 52,170, 46,118, 76, 85, 76, 5,177, 58,168,217, 85, 41,184,168, 88, 76, 44, 48,213, 69, 40, 58, 88,248, 12, 39, - 63,129, 45, 64, 96,193,169, 20, 7, 64,232, 35,140,175,248, 67, 75, 10, 92,194,103,170, 98, 47, 19,193,141, 50, 6, 94,203,103, -161, 47,171, 7,195,202,238, 28, 19,218,166, 41,241,198,145, 69,151, 33, 4, 42, 4, 52,101,132,183, 61, 5,222,200,190, 48,178, -200,179,158,110, 98,161, 40, 91, 2,115, 70,219,206,120, 39, 40,170,246,140,118,214,161,239, 90, 26,225,242,104,177, 98, 29,141, -210, 26,179,181,181,146, 47,144, 2,135,120,244, 25,109,163,138,167,189, 8,241,184,235, 88,159,173, 67, 3,232, 83,195, 1, 51, -170,160,135, 5,131, 76,252,108, 86,251, 91, 82,165,139,222, 68,210,220,134,103, 93,166,115, 61, 3,125, 52,246,237,219,207,110, -135, 84,252,229, 15, 60,240,125, 92,121,229, 21,184,241,134, 27,113,249,219, 46, 43, 52, 64,100, 42, 22,159,222,255, 44,170,170, -194,217,179, 43,168,171, 10,211, 41,101, 86,200,129, 44, 1, 40, 58, 37,216,202, 22, 72,140,245,244,185,104, 27,178, 9, 62,123, -224,121, 64, 41, 60,253,204, 1,220,126,235,173, 80, 74, 97,251,214,109,229,204,115,206,225,242,203, 47,199,169,211,111, 0, 0, -158, 63,120, 8,198, 58, 28, 59,113, 2, 85, 69, 14, 20, 91,240,206,177,156, 93,111,188,249,143, 80, 74,227,130,229,101,102,134, - 0,199, 94,123,165,188,102,187,119,237,196,221, 95,248, 18, 86, 87,206,192, 26,131,199, 30,251,107,252,209,103, 63,131, 7, 31, -126, 4,119,126,248, 14,108,222,188,140, 61,187,118,226,249, 23, 94, 64,229, 43,100, 94,113,108,222,188,140, 61,123,118, 99,251, -165,219,203,117, 97,141,193,150,165, 9,142,159,249,121,177,147, 93,125,205,213,184,225,250, 15, 0, 0, 94,123,253,117,124,247, -123,247, 83,113, 13,224,208,161, 67,216,123,211, 94,104,165,176,188,188, 25, 7, 14, 28,192,214,109, 91,113,209,133,151,224,208, -193, 23,113,248,197,151,112,243, 77, 55,161,239, 58,108, 90, 90,194,179,207, 29,192,165,219,182,227,162,139, 46,196,193,131, 7, -113,232,197,131,184,121,239, 94,204, 86,207, 98, 58,153,226,185,231,159,199,214, 75, 46,198, 37,151, 92,140,195,175,188, 12, 87, -121,244, 45,233, 87, 94,125,245, 85,252,230, 39, 63,129,109, 91,183,226,232,209,163,120,236,241,199,137,183,192,175,191,202, 25, -154, 33, 63, 79,238,219,135,190,235,113,236,117, 74, 8, 4, 50, 42,231, 10, 49,116,207,238,221,216,190,109,123, 33,201,121,231, -112,201,133, 23,225,212,201, 83,101,213,232,172, 97,143,120,198, 85,123,246,224,115,247,220, 11,235, 42,100, 21,241,183,143, 63, -129,255,240, 71,159,197,131, 15, 61, 10,173, 53,254,225, 31,126,130,148, 51,118,238,220,129,239, 63,242, 40,170,201, 38,252,244, -208, 75,248,117, 86,146,197, 24,209,207,214, 80, 85, 53,173, 52,196, 30,103, 6,207,125,230,201, 30,229,103, 4,238,224, 3,122, -150,163, 89,242, 40, 83,183,144,121,148, 44, 22,131,177, 90,122,124, 32,203, 67, 60, 62,184,199,130,167,177,218, 25,137,187, 73, - 77,120, 77, 93, 4, 39, 29,119,245,169, 68, 44,138,109, 12, 89, 49,207,118,128,111, 56,103,203,232,175,239, 3,152, 98, 80, 20, -235,154,173,117, 5,251, 42, 99,124, 70, 77,134, 28,120, 4,136,162,154, 12,125, 40,157,105,217,199,142,212,221, 41,145, 82, 56, -132, 8,228,190,216, 23, 40, 98,185, 31, 40,100, 25,136, 32, 81,157,115, 21,214,103,107, 12, 77, 80, 67, 80, 3,163, 27, 67, 8, - 32,158, 78, 42,138,213, 52,166,101,205, 9,217, 98, 74, 27,194, 1,148,210, 8, 41, 12, 86,144, 81,183, 62,252, 25,117,142, 96, - 78,207,165, 47,157,163, 62,215,138, 51,145,133, 87,221, 23, 26,222,240,223,170,193, 82,148,135, 76,238, 12,226,139, 91,199,248, - 83,171,145,146, 62,167,120, 88,180,255, 23,200,143,240,170, 69, 25,170,202,106, 34, 3,188,203, 83, 60, 86,202, 26, 27, 56,245, -162, 72,103, 75, 41,211,160,116,185,196, 99, 26,168, 89, 57,101, 86, 26,107,234,158, 71,185,208, 41, 71,116, 44,118, 73, 41,163, -207,116, 48,106, 14,119, 16,224,136,172, 2,250,209,106,166,120,241,249,235,143,197,118, 90,145,110,193,232, 1,242, 68,185, 7, - 20,189, 75,117,169, 8,137,104, 60, 78,212, 53, 33, 43,210,159, 55, 92, 12,128,223,171, 34,218,169, 42, 82,189,178, 93, 38,167, -132, 54, 72, 58, 29,169,216,145, 51, 34,248,210, 1,225, 62,219,190, 37,209, 85,160,117,153,172,169, 50, 43,136,149,162,201, 72, -232, 5,254,130, 34, 90,108,243,106,217,115,139, 16, 52,247, 1, 74, 73, 82, 23,189,111, 52,101,137,252, 62,164,226,152, 17,236, -172,214, 44, 50, 10,125, 17, 19, 81,250, 89, 42,175,163, 88, 11, 69, 24,168, 52, 29,104, 89,130, 95, 56, 19, 97,251,246,109,120, -227,244,233, 57,194,101,134,178,154,237, 95,117,209,131,172,172,172, 20,129,162, 72, 41,126,247,119,126, 27, 57,103, 60,245,244, - 51,120,238,167,135,176,123,247, 46,108,190,224, 34,134,223,208,103,175,237,154,242,181,155,217,172,188,230, 49, 37, 28, 59,126, - 2,187,118,237,194,243, 47,188, 64,192, 30,190,120,175,218,185, 3,199,142, 31, 71, 61, 37, 45,132,175, 43,248,105,205, 84, 73, -218,215,126,249,171,223, 64, 74, 25, 49, 71, 44, 47,111,198,155,111,254,188, 8, 82, 99, 8,188,151,118,197,155,156,145,233,117, -234,122, 58,220,121,186,183,127,255,211,248, 39,239,190, 22, 49, 70, 60,181,255, 25, 0,150,187, 83,250, 29,214, 87, 87,224,140, -102, 11, 22,157,187,125,219,225,240, 75, 47,227,109,151, 95,142, 61,123,118,227,145, 71, 30, 37, 94, 0, 39,161,173,172,252, 28, - 74, 41,124,245,235,127,134,164, 20,102,235,107,216,178,105, 9,235,107,235,168,152,111,146,145,113,224,185,231,241,204, 51, 79, -163,235,154, 34,254, 75,153,130,190,218,190,199,202,153, 51,216,185,115, 23, 78,159,126, 3, 22, 16,133,108, 0, 0, 30, 13, 73, - 68, 65, 84,175,190,250, 26,246,236,217,131,139, 47,186, 24,247,127,247, 1,156, 57,115, 6,103,206,156,193,238, 93,187,240,179, -211,167,113,244,232, 81,236,217,181, 7, 91,183,109,197, 3, 15, 62,136,182,233,113,118,101, 5,123,246,236,198, 27,255,248, 6, -142, 30,125, 21,187,118,237,196,214,109, 91,241,200,163, 63, 36,246, 2,187, 19,142,159, 56,142, 47,125,229,171,184,236,178, 75, -113,205,213, 87,227,125,239,123, 47,190,246,141,255, 89, 44,193, 98, 27, 43,206, 19, 61, 36,109,182,179, 25,140,172,121,120,141, -122,207,189, 95,100,129,108,192, 91,222,242, 22,172,156, 93, 65,148,207,125,206,232, 67,132,182, 14,155,150,170, 98, 47,116,181, -129,101, 85,191,130, 66, 53, 89, 2, 0,172, 53, 13,217, 53,181,134,210, 14,198,219,241,183, 71,229, 61,101,128,180,179,193,174, -205,246, 82,113,102,196,152, 73,136,110,249,172,230, 40,104,128,116, 44, 90,130,215,125, 85, 67, 91, 83,226, 34, 49,202,211,157, -223,121, 47,234,244,198, 48,150,177,160, 76, 58,206, 20, 3, 98,232,208, 54, 77,185,240,144, 56,228, 62, 49,149,141, 45,109, 41, -210, 62, 84, 20,197, 74, 41,116, 29, 85, 66,129,253,151, 41, 14,147, 3, 10,224, 8,165,155, 42,169, 66, 44,172, 51,156,255, 27, -121,116,154,216,170, 65,128,131, 88,114,142, 5,171, 74,251,193, 30, 49, 13,137,112,137,131, 25,100,223, 46, 99,255, 1,132,162, -120,191, 69,118, 30, 73, 29,202,194,207,143,113, 3,182,181, 76, 42, 70,235,139,141,123, 86,158,138,240,107,148, 35,241,138, 37, -155, 89,104,116,243,163,235,113,160,205,248, 34,157,199,147,206,255, 61,121, 98, 67,161,205, 9, 29, 79,162, 9, 41,255,189, 66, - 93, 87,152, 78,166,152, 76,234,145, 63,219, 65, 43,203,104,205,204,124,232, 52,183,194,209,131,254,162,120,245,243, 0,174, 73, - 35,155, 98,137, 68, 82,228,217,204,137,169,116, 6, 33, 38, 32, 41, 32, 41,196, 62,193, 40,139,190, 13,148,154, 4, 3, 40,138, -132,165,191,200, 90, 98,121,119,236,157,135,175, 60,124, 93,195,122, 42, 46,189,167, 46,213, 58, 87,170,113,177,137, 41,222, 91, -149, 0, 6,246, 2,107, 53,164,121, 73,225, 38,129, 45,218, 88, 0,102, 4, 51,225,247, 49, 43, 40,101,144,179,130,209, 14,149, -175, 11,186,152,186, 76,202,138,118,206,163,174,107, 76,167,155,225,171, 41,124, 61, 65, 85,215, 88,218,188, 25,213,116, 2,227, - 45,136,244,158, 81, 47, 45, 49,238,216,161,102,221,138, 20, 75,211,233,148,136,109,145, 58,104, 13, 0, 42,161,235, 26,204,154, - 53, 14, 14,138, 8,221, 58,102,107,103,209, 53, 13, 66,215,161,107, 86,209,183,107, 64,166,194, 57,132,128,156,104, 74, 66,225, - 39,228,247,119, 94, 96, 41, 28,109,218, 53,228,112,209, 52,122,205, 57,194, 58,205,203, 16,177,108,229, 18, 88,100, 13,145, 36, - 5,111,106,140, 45, 66, 64,234,122, 2,114,236, 73, 12,169, 51,127,205,204,142, 22, 74,165,146, 52, 68,173, 13, 38,147, 26, 31, -254,208, 29,120,106,255, 83,200, 57, 99, 54,155,225,162, 11, 47,130,181, 22,215,190,235,154, 18,117,155,227,184,144, 53,168,166, -203, 0,128,229, 11, 47,196,206, 29, 87,226,133, 23, 15,227,181,227, 39,177,117,219, 86,158,130,116, 36, 24,229, 51,192,251,170, - 20, 31,206,123, 98, 41, 88, 11,235, 29, 30,255,241, 19,248,208,237,183,226,210,109,219,224,141,133,211, 6,111,223,189, 27,119, -220,122, 43, 30,255,187, 39,136,107, 0,224,170, 61,187,113,230,204, 25,236,220,113, 37, 94, 63,118, 12, 71, 95,123, 13,191,122, -221,123, 16,115,194, 91, 46,184, 0,159,250,221,223,193,100, 82,147,239, 30, 64,223, 54,104,214, 86,202,153,151, 50,229,176, 55, -179,134,114, 21, 88, 99, 98,180,193,225, 35, 71,240,246,183, 95,133,107,174,185, 26, 47,191,250, 26, 28,107, 68,172,181,120,229, -149, 35,184,237,150, 91,139, 39,250,134,235, 63,136, 23, 95,122, 25, 70,107, 60,247,211, 23,240, 43,215, 94, 13,231, 28,222,252, -249,153, 18, 53, 76, 32, 45,224,149, 35, 71,112,245, 47,191, 3,171, 43,103,176,105,105, 9,159,250,151,255, 2,109, 75,218, 40, - 9,184,162, 51,115,120,150,115,210,176,182,134,179, 21, 98,159,113,240,224,139,184,121,239, 94, 28, 59,126, 2, 39, 79,254, 12, - 87,252,210, 21, 76, 24,237,224,235, 10, 7, 15, 31,198,222,189,123,241,250,137,147,248,217, 27,111, 98,199,206, 29,112,206, 97, -101,117, 13,202, 90,188,116,244, 40,110,191,237,118, 28, 63,117, 10, 63, 59,125, 26, 59,118, 92, 73, 63,239,202,207, 75,146,104, -206, 9, 55,221,248, 65,188,243,157, 87,225,149,163, 47,227, 7, 63,250, 33, 46,185,228, 98,162, 89,140, 10, 67, 1,208, 36,104, -248,122, 90, 94, 39,101,136, 36, 71, 19, 19,139, 35,175, 28,193,123,175,187, 14, 10, 10,111,189,240, 34,252,254,239,125, 10,203, -111,189, 24, 75,203, 91,248,207, 51, 53, 46,103,132,152,241,210, 43, 71,176,247,134,235, 41,135,160,114,184,254,250,247,226,197, -151, 95,166,192, 23, 0,214, 87,240,213, 4,199, 78,156,196, 59,223,177, 7, 33, 4,252,202,187,174, 30, 88, 34,160,115,198, 88, -143,186, 94,194,242,230, 11, 80,213, 83, 24, 95, 97,178,105, 25,213,100, 51,170,201,166, 18,241, 29, 2,223,209,153,214, 85,125, - 31, 96, 83,140, 80, 60,146, 42, 73, 78,163,136,190,121,129,216,162,191, 95, 52,226, 29, 95,236,227,206, 94,170,103,169,212, 23, -117,115, 41, 37,164, 46,157, 87, 57, 61,223,241, 73,165, 58,102,145,207,175, 15,198, 63, 87,226,240,134, 50, 30,231,200, 60,249, - 75,126, 94,242, 50,115, 40,139, 49,101,172, 43, 68, 61,241,184,210, 5,168,203, 30, 81, 60,172,146,206,165, 88, 65, 57, 22,182, -157,207,126, 54,111, 1,179,115, 22, 66, 1,120,232, 57,173,195,216,137, 48, 30, 7,142, 95,135, 49, 77,238, 28,175,120, 33,149, - 37,100,182,100,197,148,144,212,200,194,196, 30, 74,161,199, 9,217,140, 2,146, 76, 81,104,230, 12,152,202,195, 40, 64,103, 83, -246,225, 80,169,140,242,233, 34,228,176, 31, 69,126, 76, 98,102,115, 26, 87, 70,233, 78,245, 40, 69,105, 90, 87, 20,253,105, 52, -175,113,128,202, 84, 37,195,216,130,223,211,132,209, 37, 36,160,146, 76, 96, 17,153, 36,101,217,115,147, 0, 78, 62, 40, 57, 39, -164, 17,247, 91,241, 78, 89, 27,203,226, 49,234, 92,141,115,144,221, 75, 86, 25,206,121,194, 69,182, 29,144, 2,121,148,121, 66, -147,152,102,151, 25,212, 98,173, 69, 31, 3,150,182,108,198,218,234, 26,209, 14,235, 26,206,215, 5, 79,171,148, 65, 61,157, 34, -165, 72, 25,219,124,128, 27, 70,121,246,103, 87, 75,176, 11, 82, 44, 83,139,174, 35,187,143,116,213, 98,149, 36, 91, 84, 46, 30, -252,242,140,240, 51,170,180,130,206,166, 76, 98,136,169, 78, 2, 68, 99, 12,186, 48,227, 52,169,140,166,105,152,190,167, 57,195, - 71, 38, 61, 28,122,196,232, 87,153, 76,248,170, 98,213, 47,157, 49,145, 49,177,170,120,252, 19, 5, 85, 8,238,212, 90, 68, 94, -181, 72,193, 27, 56,119, 90, 43,148,238,253,223,125,230,179,229, 17,222,247,212, 62,252,228,201, 39,161,148,194, 95, 61,246, 24, -254,213,167,126, 15,179,166,193,161, 67, 47, 98,125,125,157, 64, 37,142, 9,122, 8,232,250,128,212,205,144, 1,156,121,243, 52, - 30,127,226, 9,124,228,182, 91,112,195,251,223,139, 35,175,190,134,147,167, 78,225, 3,239,187, 14, 63,126,226,239, 25, 51,219, -111, 96, 89,164, 20,145, 17, 8, 84, 3,224,165,151, 14,225, 91,223,106,113,219,173,183, 96,203,150, 45,128,162,137,192,125,223, -123, 16,175, 31, 59, 70,140, 5, 0,219,182,109,197,191,255,183,159, 70, 8, 17,223,127,228, 17,172,158, 93,197,111,124,236, 78, -188,251, 93,215, 32,165,132, 7, 31,122, 24,179,217,140, 96, 36, 0,180, 33,238,130, 8,153,233, 61,113, 37,152,168,170, 41,117, -208, 86, 53,214,103, 13,142, 29, 63, 1,133,140,211, 39,142,151,201, 68, 8, 1, 15, 60,248, 61,220,249,209,143,226, 15, 63,243, -111,160,160,240,250,177,215,241,208,195, 15,161,107,214,112,248,208, 79,241,137,143,127, 12, 63,254,187,191, 47,201,117, 85, 85, - 49, 72, 40,226,251, 15,255, 5, 62,249,235,159,160,226, 35, 70,124,255,161,135, 1,171,161, 66, 66,219,117, 5,107, 92, 77,168, - 57, 20, 15,190,181, 22, 25, 17, 46, 37, 28, 62,122, 4, 31,249,200, 29,184,255,190,239,146, 69, 49, 37, 28,121,229, 40, 91,211, -128, 67, 63, 61,136,143,124,232,118,220,255,192,119, 49,155,173, 35,231,140, 35, 71, 95,229,198, 15, 56,112,224, 57,220,182,119, - 47,190,125,223,203,180, 74, 77, 25, 71,142, 30, 45, 66,216,207,124,250, 95,227,174,187, 63,143,159,236,219,135,127,246, 79,127, - 11,239,127,223,251,129,156,241,208,195,143,150, 9,174,240, 72,154,142, 70,241,117, 93, 99,214, 52,224,254,164,172, 76, 94,125, -237,117,252,225, 31,252, 1, 30,252,139,135,112,195,245, 31,192,117,215,189, 7, 49, 69, 60,250,163,191, 65, 76, 28,127, 13, 96, -203, 91, 47, 2, 0,124,250,183, 62,137,111,124,243, 59,248,225, 99,127,131,219,110,190, 17,191,255,207,127,187,172, 33, 30,126, -244,209,146,180,137,152,208,182, 61, 30,254,203,191,194,111,254,198,199,113,253,251,222,139,195, 47,191, 52, 36, 10, 26, 13,235, -201, 21,144,186,128, 62, 4, 88,231,208, 52, 13,250,212, 82, 67,155, 18,159,153, 9, 10,182,184,175, 16,105, 98,165,124, 53,205, - 89,241,232,141,243,157, 69,113,187,200,115,124,190,255,141,225, 48,243,196,178,249,127, 63,190,108,230, 71,206,231,155, 0,204, -143,139,207, 39,194, 90,100,153,218,208,145, 74,132,166, 26,178,137,101,239, 46, 49,157,227,240, 1,171, 76,129,136, 8, 64, 65, -118,188,195,174, 83, 23, 32,142,194,144,135,190,104,244, 61,238,156,101,143,188, 8,161, 58, 63, 29,145, 63, 51,223,221,207, 7, -134,204,127,159,249,255,102, 92, 56,205,191, 94,218,144,224, 43,165,200,158,239,180,129, 70, 39,151, 3,180, 46, 46, 1, 85, 66, -124, 40,232,129, 16,135,105,128, 95, 48,233, 79,118,206, 68, 11,163, 49,168, 1,177,157, 99,236, 1,149,153, 13,173, 74,193, 52, - 38,209,141,127, 79, 81, 93, 67, 37,190, 60,194, 40,129, 13, 8, 49,192,217, 97,204, 59,126,109, 1, 5,163, 28, 93, 26,177,227, - 85, 67, 26,101, 4,112, 20, 99, 73, 85, 35,111,108,206,212,229, 2, 25,206,212,252,115,244, 37,165,144, 9, 55,152, 78,166,108, -117,227,233,144,228, 70, 51,218,216, 79,106,100, 40,120, 95,205, 61,159, 50,198, 15,140,105, 94,163, 34, 50, 37,228, 65, 46, 65, -227,248,144, 10,222, 56,241,238, 90,129,248,237, 80, 3, 46,146,194,114, 34,107, 5,200, 38, 36,170,120,121, 77, 41, 67,221, 48, -252, 39, 12,185,242, 60,242, 87,140,243, 20,139,151,236,242, 52,231, 93, 43,101,202, 20,138, 64, 47,118,136, 83, 29, 37, 8,230, -148, 40, 30, 51,210,106, 39, 15, 73,180, 35,184,205,128,109, 53,198, 64,201, 80, 38, 69,206,165,103, 91, 96,249, 12, 83, 0,137, - 54,102,160, 91,234,204, 7,161, 71, 53,153,208, 88, 54,210,250,193,185,138, 5, 83, 29,148,202, 92,180,107,254,153,153,197, 62, -138, 79,238, 67,128,183, 14, 57, 68,116, 93, 71,170,228, 24,161,116, 46,122, 7,173,137,154,105,180,167,213,134,179,236,211, 15, -108,191, 29, 26,143,148, 51,254,243,127,250,143,248, 47,255,245,191, 21, 26, 33, 56, 84, 71,176,162,134, 51, 15,180, 38,113,111, - 98,116, 41,137,153, 59, 24,231,225,235, 9, 77,124,140, 70,219,176,206,129,121, 17, 52, 57,140,232,214,214, 96,157,131,171, 38, -180,223,205, 25,179,213,179, 0, 59, 41,250,158,152,234,214,146,107, 39,132, 14,222,209,115,221, 52, 51,118,221, 48,208,199,123, -244, 41,162,170, 38,165,136,108,155,117,162, 58,130, 66, 72,172,182,156,131,174,104,213,169, 73,149, 72, 43,178,142, 38, 58,108, - 79,149,175, 91,213, 53,250,190,167,164, 62, 75,238, 32,103, 93, 9,123,177, 12, 23,235,218,174,232, 50,228,108, 9,161,131,210, - 10,222,214,229,156,147,179, 20,165, 96,103,107,167,202,216,180,188, 92,220, 23,179,179,103, 97, 76, 42, 69, 98, 76, 17,206, 79, -138, 71,222, 24,154,240,117, 93,139,102,245, 44, 89,170, 57, 66,181, 90,218, 84,210,101,133, 47, 31, 66, 40,133,111,142, 17,177, -107,105,173,232, 44, 28,127,182,148,214,101, 82,163,181,198, 53,191,252, 78,156, 60,121, 10, 39, 79,157,194,238, 29, 87,226,134, - 15, 94,143, 47,220,251, 5, 30,251,187, 33, 31,193,209, 51,165, 51,208,181, 45,140,167, 56, 89,209, 4,228,156,160, 61, 77,171, -228, 62,179,196,124,167, 14,215,213,245, 6, 82,214,162, 75,113, 67, 30,183,214, 11, 59,247,249,238,113, 17,221,108,124, 89, 47, - 26, 23,159,239,207, 46, 82,120,207,119,186, 24,209,149, 74,231, 63,242,243,101,174,200,114, 76,163,209, 41, 10,239, 93, 68, 73, - 69,133, 61,242,125, 11,250, 81,126,175, 18,229,167,135,159,193, 57,183, 33, 30,181, 60,108,163,215,100,124, 73,207, 79, 52, 22, - 41,194,231, 47,254,249,241,125,129,183,140, 87, 15, 11,246,235,139, 92, 13,243,218, 8,173, 52, 18,134, 98, 99, 3, 67, 62, 68, - 40,157, 74,103, 87,220, 7, 69,148,151, 75,104,133,176,198,181,102, 1, 93,228,152, 54, 30,217,246, 37, 16, 69, 23,112,138,175, - 42,116,125, 15,171, 53,192,158,120,203, 59,168,148,135,140,225,217,250, 58,172,115,232, 67, 71,190,112,182,216, 73, 97, 69,228, - 50, 71,123, 91,165,145, 64,223,203, 90, 7,149, 13,122, 70, 44, 26,103,161,216, 31, 28, 56,184, 68, 43, 77,193, 34, 37, 62,151, -188,203, 70,107,142,151,101,225, 23,239,146, 5, 55, 27, 35, 37, 48,137, 86, 34,167, 4,239, 61,251,152,137,218,215,172,173,211, -197,219,211, 42,202,121,207,251,236,196,236,253,192,154, 2, 77,137,105, 70,145,170,157,243, 9,250,190,163,120, 81, 14,187, 48, - 28,244, 32,170,216, 62,211,161,109, 28,145,221, 98, 8,240,236,248,136, 35,144, 10, 69, 97, 86,100,209,203, 9,245,116, 9, 90, - 91,244,125,203,155, 15, 3,199, 69, 68,219,208,238,216,122,218,175, 27, 95, 13,151, 46, 59, 12, 28,167,173,137,218, 95,108,145, -178, 19, 22,199,137,171, 43,100, 85,163,107, 26,166,252,177, 54,162, 8,126, 4, 25,154,201,175,204, 9,110, 90,107,244, 93, 42, -169,120,214, 57,186,132, 69, 15, 33,148, 56,173, 96,149, 41,197,141,100,143, 67,152,217, 37, 65,144,247,143,134, 57, 21, 92,224, - 4,134, 10, 73,128, 70,207, 73,116,211,233,148,158, 23, 22,137,138, 87, 92,196,147, 2,200, 81,161,163, 29,123,136,176, 74,163, -226, 9,133, 49,134,158,105, 46,223,164,200, 82, 60, 26,215,220, 84,136, 67,161,231,140,238, 20,169,120,101,133, 23, 21,106,129, -220, 25,180, 18,171, 11, 94,183,107, 37, 5, 46,193,250,138, 96, 65,150,194,100, 36, 34,216, 56,135,164, 20,150,150, 47, 32,202, -225,108, 70,207,117, 93, 35, 6, 16,248,166,174, 57,132,171, 43,218,162,156, 18,214,207,174, 48,221,143, 46,176,186,158, 80,145, -212,118, 72,138, 50,236, 83, 86,101, 37,229, 61, 77, 26,218,245,158,226, 72,179,218,208,100, 52, 77, 83,166, 48, 73,129, 29, 39, -145, 4,213,214,210,180, 46, 4, 24,239,202, 20, 45,101, 90, 71,106, 22,122, 6,126,166,135,162,142, 26, 2, 33,193, 37, 46, 36, -214, 87, 86, 97,140,193,116,105,138, 96,135, 17,187, 76,169, 98,232,208,183, 13,156,175, 16,160,208,176, 88,215, 79,166, 8, 81, -158,113,141,220,119,164, 41,233, 91, 78, 34,164,115, 67,132,108, 49, 37, 88, 6, 58, 37,100,172,175,174,177, 11,140, 82,249, 68, -144,122,242,196,113,252,218,157, 31, 99,138, 97,192,253,223,189,191, 76,128, 36, 6, 92, 91,139, 28, 19,186,142,226,161,141,181, - 8, 93, 71, 33, 57,145,154, 41,107, 13, 66,215,193, 79,232,189, 72,125, 15,181,249,130, 45, 57,134,192, 85,196,136, 75, 45,153, -188,233,220,145,240,144, 78,181,248,210,152, 47, 6, 22,117,138,139, 4,120,243, 95, 67,118,176,243, 23,252,152,103, 62,190,220, -203,231,119,110, 74, 32, 62,217, 68, 82,229, 50,202, 45, 23,165, 8,238, 70,161,244, 37, 90,116, 4,214,145,160, 4, 81, 53, 40, - 6, 32,108, 76,112, 99,146, 82, 30, 10,157, 69, 93,183,236, 99, 82,206, 64, 60, 87,116, 56,223,221, 91, 70, 36,198, 64,197,200, -184,211, 30,139,237,198, 95, 99,254, 98, 95,244, 90,142,255,185, 20, 56,114,248, 45,130,195, 72, 88,141, 92, 38, 37,174, 86,186, -235,208,151, 75,222, 90, 74,101, 18,145, 96,140,131,167, 90,243, 5, 89, 87, 36, 44,204,204, 52, 54,138, 3,130,180, 96, 87,171, - 50,186,146,228,171,161, 35,164,223,175,235, 26, 6, 11, 57,104,208, 7,150, 50, 7,108, 33, 26,142,167, 69, 50, 77,177,149, 71, - 96,198, 58,210,128, 93,205, 41, 65, 89,170,248,189,245,220, 68,211,200, 89, 18,199,104,234, 78, 56, 88,227, 28,250, 24,209,207, - 26, 40,197,214, 57, 97,161, 71,234,162,164,121, 8, 33, 0,138,243,178, 37, 19, 59, 18, 49,169, 8,121,114, 38, 11, 30,175,130, - 68,159,225, 45, 51,239,189, 45,104,228,242, 94,135,110, 68, 37, 52,133,131, 29, 99,130,134, 41,104,212,196, 94, 94, 17, 97, 74, - 64, 6, 49,251, 21,172, 51,197,203, 30, 51,117,241,114, 96,181,124, 8, 91,134, 80,213, 85,141,174,153,145,232, 85,145,221, 82, -137,151,157,217,114,214,113,103,193,197, 52, 61, 47, 34, 30,141,163,207, 42, 23,209,114, 73,131,178,166,233,253,227,223, 53,105, -238, 28, 45, 81,229, 18, 96,148, 97,118, 64, 67,182, 84, 30, 75, 87,147, 37,158, 58,101,238,176, 19, 98,236,208,181,164, 40,174, -107, 10,184,105,154,117, 94, 65,104, 76,234, 9,115,209, 3,114, 12,152,205,214,233, 89, 12, 61, 77,144, 28,197,189,130,159,151, -152, 40,170, 53,165,140, 28,185, 56, 97,224,143,226,164, 65,138,247,165,108,119,205, 97, 76, 90, 32, 70,200,232, 2, 1,174,144, - 80,130,134, 36, 10,184,170, 42,186, 76,103,171,180, 90,226,208,147,192,180, 63,148,226, 89,179,194, 95, 81,162, 27,128,233,230, -101, 2, 87,133,128,212,145,247,185, 99,168,141,245,100,129, 50,218,148, 72, 91,173, 57,148, 40,131, 93, 14,148,148,233,189,135, -178, 28,122,162, 73, 68,157,186,128,138, 3,170,122,158, 10,133,142,184, 3, 80, 40, 84, 69,192,148,247, 50,201,100, 34,147,149, - 51,107,133,170,162,125,123,223, 19,167,128,238,137, 72,104, 84,165, 8, 47, 28, 35,103,228,168,194,212, 79, 49,150, 51, 83,162, - 86,165, 64,146, 98,123, 72, 47, 36,157,147,136, 92,135, 38, 10, 37, 97, 84,130, 94,148,166,100,190,204,233,143, 84, 76, 81,118, -130,117,158, 94,239,190,167,113, 63,191,183, 41, 15, 89, 0,196,101,233,209, 53, 51,190, 27, 60, 11,181, 25,150,163,108, 89,197, - 42, 77, 19, 69, 33,133,202,164, 79, 62,135, 36,128,235,139, 72,206,251,138, 0, 64, 18, 41,203,197,173,210, 6,221,172,225,179, -152, 25, 35,213,180,206, 50,106, 44,222,109, 25, 63,139, 56,107,129, 64,110,145, 61,105,190, 91, 94,148, 37,189,104,108, 63,159, - 41,125,190,238,252, 23, 49,215, 41,175, 93, 21, 33, 9, 32,135,106, 95,118,132,196,209, 29, 46,172,113,247, 59,207, 76,159,255, -126,202,104, 22,190,165, 50,118,203,153, 71,198,163,110, 36,179, 71, 26, 41, 47,252, 61, 54,252, 78,134,222, 48,149,206, 45,154, -230, 85,226,122, 84, 60,148,181,193,252,248,124,244,251,204, 23, 82,231,251, 25,210, 2, 84,237, 56,124,101,161,151,220,104,170, - 82,197, 35, 43,216,204, 17,215, 95,254,222,217,170, 64,129,132,221,174, 12,237,125,193,186, 5, 9, 10, 9, 61, 41,160,141, 49, -136,153,252,226,198, 56,228, 60,100, 35,199,148, 56,137, 75,149,113, 86,148,164, 61, 12, 97, 25,150,201, 87, 4, 31,145, 0, 14, -186,192, 60,119, 27,208, 10,129,129, 25,133,216,196,159, 5,203, 62,234,208, 52,176,188,167,214, 90,163,227,252,109, 65,203, 98, - 60, 13,138, 1,202,100,120,231,105,159,206, 33, 32,206,122, 74,176,226,139, 87,105,186,220,188,247,252,186, 42,168,172, 55,140, -196,193, 19, 0, 5, 58,204,140,166, 49, 97, 97, 92, 3, 60, 2, 22,141, 5, 79,159,120,226, 33,211, 13,100,197,236,238,106, 3, -154, 88, 10, 15, 25,157, 91,118,129,216,146,192, 70, 7, 66,215,247,197, 34,230,125,197,226,205,128,122,186, 9, 49,229,146,170, -102,249, 51,101,152, 41, 16, 82, 44, 84, 52,226, 50, 88, 62,108, 19, 66,232,225,188, 67, 61,153, 2,138, 94,247,241,207, 39, 83, - 5,235, 28, 52, 20, 17,249, 82,134,159, 76, 40,252, 73,216,217,214, 34,244,129,144,180,125, 83,118,199,244,185, 20,138,156,134, -182,194,181,231, 49,101,166,200,214,182,109,208, 54, 13,170,170, 66,211, 52,124, 72,114,227,208,243, 90,133,216,199,112,174,134, - 18,235, 28, 64, 48, 38,100,164,220,243,232,147,159,241, 20, 81,213, 53,156,243,232, 3,117, 82, 50,253,208,242, 28, 43, 32, 41, -193,251,242,243,217,181,116,177,205, 77, 67,251,208, 35,131,223,103,254, 30, 10, 84,244, 5,198,187, 26, 51,164, 77,146,157, 50, - 66,107, 46,166,140, 65,142, 67, 54,125,199,171, 19,207,194,176,196,231,153, 8,137, 21,175,171, 40,119,131,249, 8, 24, 50, 57, -100, 61,169, 37,227, 92, 41,104,111, 41,213,142, 73,105, 20,190,100, 11, 23, 95,107,141,208,245,208,236,150,113,206, 21,236,113, -202,122,195,138, 54,116, 13, 98,232, 4,128, 12,103, 45,250, 44,107, 32,201, 45, 36,119,163, 20,163, 98,235,204,194, 56,225,127, -166,248,124,210, 22, 5, 15, 92,156, 26, 25,229,107,142,102,209,133,220, 71,110,141,142,207, 66, 91,226,116, 49, 2,153,135, 16, -161, 6, 50, 76,249, 60, 1, 84, 56,177,238, 24, 9, 52, 69,152, 76, 54,209,103, 35,244,136,125,187, 33,175, 65,101,250,222, 60, - 85, 39,192, 21, 71,231, 10, 24, 44,178, 16,149,158, 5, 62,103, 57,205,209,249,106, 56, 51,234,165, 73, 22, 30,181,116, 93, 82, - 9,228, 13,249,223,139,249,226,243,137, 91,114, 17,204,239,216, 69,236,148, 70, 41, 93,133,118,166, 48,240,109,139,126, 41,151, -110, 54,143,166, 7, 98,163, 2,228, 65,213,128, 70,233,254,114,166,220,104,241,243,106, 30,195,201,158, 78, 58, 93, 98,172,235, -162,110, 46,126,119, 30,227, 10, 1, 78,176,140,242, 98, 67,169, 18,118,163,184,187,151, 48, 18, 73, 80, 42,169,110,163, 3,127, - 17, 50,149,186, 89, 83, 46, 28, 98, 78, 15,235,131,177, 53, 80,200,117,242,218,204, 23, 90, 37, 40,224, 92,177, 65,217,251,157, - 79,155,160,244, 72,204, 88, 94,147, 97,151, 90, 30,104, 25,169,178,109, 76,241,168,141, 87,176,163, 73, 65,166,180, 41, 75, 31, -118, 57,172, 40,121,142,212,219, 49, 16, 77,140, 82,226, 92, 73, 3, 76,125,160, 48, 9, 16,208,163,239, 41,179,217,123,143,166, -153,177, 13,146,126, 95, 25, 97,130,223, 31, 18,155, 40,166,150,245,165,243, 49, 44,248,146, 9,130,144,232,192, 2, 57,241,178, -107,163,145,122,242,115,183,236,189,166,192, 17,195,121,210, 29,151,132,156, 78, 22,169,195,140, 49,161,170,107,222, 87, 83, 39, - 97,188,229,139, 62, 21, 65,102, 98,225,151,209,134, 5,107,186, 20,137,200, 2,159, 96, 77,128,175, 54, 8,247,232, 57,212, 60, - 58, 23,130, 97,164,215,158, 15,133,148,169, 51, 86, 37,187,128, 38, 70,154, 45,114,178,167,155,212,180, 59,157, 53, 52,194,117, -206, 33, 35, 97,245,236, 10, 1, 95,152,210, 88, 88, 17,222, 1, 25,148, 95,221, 7,100, 62,180,164, 32,107, 24, 25, 90,108,169, -138,211,250,180,134,213,131,143, 94, 10, 49,202,193,142,156, 68, 71, 7, 94,230,140,135,201,116, 90,158,193,192, 22, 68, 17,228, -129, 39,104,194, 65,136,137,167, 68, 10, 35,218,157, 32,153, 13,180,178,128,202,232,218, 25, 77,121, 56,170, 54, 33,151,196, 60, - 41,114,170,122, 9, 93,223,114, 20,180,131,202,153,244, 30,124, 6,146, 34,217,242,186,169,160, 28, 16, 82,199, 89,217, 50,225, - 33,176, 78,224,156,235,192,171,164,166,153, 81,167, 23, 40,114, 85, 91,135,170,154, 32,133,158,133,145,185, 40,216,141,172,244, -248, 92, 81, 86,241,186,112,248,190,148, 8,169,144,114,228,105,142, 30,206,111, 74,196,130,113,154,223,119,118,196,240,197,161, -184, 11, 13,129,176,203, 96,198,134, 16, 8,105,106,201,175, 47,115,172, 19,235,102,140,177,204, 84, 31,200,147,213,116, 2, 40, - 10,251, 74, 33,240, 20,129,234,161,200,249,224,164,189,137,232, 57, 29, 78,206, 26, 63, 89, 42,137,121, 68,240,108, 8,102,147, -233,251,201,253, 96,140, 43,249,236, 57, 6, 32, 49, 0,202, 58, 62,215, 41, 65, 77,107,218,241,231, 76,120,216,156, 69,164, 59, -110, 90,116,209,176, 24, 71,221,180, 2,208,119,109,185,216,105, 29,146,138, 7,124,108,169,132, 2,172,162,192,153,164, 56,241, - 81,244, 42, 44,162, 38, 57, 58,231,156,112, 35,147, 99,162,132,195,174, 67,223,207, 54, 76,192,141,113,112, 85,189,209, 9,149, - 50,186,134,196,163, 90,113,152, 19, 55,139, 9, 84, 84,210,247, 1, 39,233,145,182, 75,185,202,103,233,252,100,132, 59,223,177, -142, 47,232,241, 78,120, 17, 41,108,200, 32,158,235, 0,141, 88,219,226,185, 17,166,154,198,216,153,127, 64,140,176,169, 89,243, - 45,159, 85,217, 93, 41,141, 18, 26, 64,135, 92, 42, 85,190,116, 3,101,175,206,181, 84,230,168, 82, 41, 84, 12,139,222,100,132, -169, 70, 23,122,185,252,242, 70, 29,129,208,199, 36,184, 68, 59,179, 33, 45, 46,199, 52, 4,125,140, 10,159,177,103,121,209,200, - 91,137,192,133,127,182,177,136,110,222,166,118, 62,178,223,184, 83, 55,227,145, 20, 79, 24, 18,219,227,140, 53,200, 50,130,226, -169,128,243, 53,197, 45,198,128, 16, 90, 89, 44, 48,172,164, 47, 83, 14,137,127, 53,134, 47, 9,229, 8, 18, 19,187, 33,121, 78, -200, 72,176,195, 56, 82, 58,126, 14,119, 80,150, 81,168,154, 10,189,174,167,241, 96,197,151,244,108, 54, 3, 52,231, 51,247,161, -224, 76, 37, 41,208,216,154,188,195,137, 46, 52,138,142,205, 60,186,235,135,160,149,241,164, 8,131, 74, 27, 90,141, 98,131,134, - 88, 80,195,187,172, 60, 42,110,164, 88,178,206, 34,230,126, 24,255, 97,128,217,140, 47, 30,235,106,158, 52,144, 50, 63,134, 88, -190,190, 98,128,143,202,150, 19,182, 90, 18, 8, 90,143,172, 6,219, 93,207, 93,135,115, 14,211,165, 37,172,173,173, 33,117, 68, - 82, 19,203,139,172,135,104,135,167,209,183, 36,228,146, 41,136,100,136, 71,102,206,203, 26,194,123,143, 12,193,221, 6,182,218, - 80, 17,102,180, 7, 44, 9,183,156,247,132, 80,230,207, 44, 20,144, 59, 66, 62,131,137,142, 2, 28,154,173,175,161,239, 90, 88, -107,177,105,249,173,180,166,136, 52, 70,157, 78,167,136, 41,160,109, 90,210, 6,104, 13,240,100, 77,229,140,102,157,216,238, 74, -103,102, 9, 12, 69,189,226, 46, 36, 33,194,123, 7, 36,179,113,162,149, 19, 41,218,181,166,112, 26,126,221, 19, 51, 1, 8,134, - 4,116,253,108,195,234,206,185, 26, 74, 27,226, 85,244,161, 8, 97,157,119,197,246,164, 56,188,202, 24,131,179,103,207,142,148, -253,204,207,103, 36,113, 8, 45,239,196, 29, 1, 67,178,240,219,201,186,215,117,237,128, 5,230,204,117, 18,148, 89, 56, 95, 19, -234, 55, 70, 40,147, 57, 54,215,151,162, 53,143, 82, 0,169,139, 30,108, 79,162, 82, 13,177, 35,203,166, 98, 84,169, 64,105, 18, -125, 77, 57,171, 73, 60,233,169, 3,207,153,108,183,252,185,144,201, 78,219,182, 52,130,150, 76,135, 81,154,157, 20,159,138,189, -217,198,145,152, 12, 28,127, 28, 2, 69,247,198,174,167, 51, 71,206, 24,126, 45,233,119, 36, 19, 89,236, 57,141,204, 89,216,106, -130,212,209, 10,140, 10,168,140, 28, 3,199, 41, 36,230, 68, 24,206, 88,208,108, 25,165, 85, 10, 77, 45, 21, 7, 41,169, 34,110, -150,115, 84,177, 10, 31, 60,154, 46,235, 46,214, 90, 24,163, 97,109, 69,124,128,216,177,248,141,166, 29, 61, 7,178,164, 60, 52, - 3,164,187,161,159,221, 51, 53, 51, 34,208,215,134, 45,194, 86, 73, 2, 20, 33, 43,121,217,251,226, 16,200, 41, 65,153,196, 83, - 12, 85,172,220,229,181, 23,156, 55,108, 57,131,202,164,152, 45,108, 89, 69,134, 89,233, 13,137,114,138, 98,202, 77, 22,165,246, - 34, 5,250,162,136,204,121, 97,219,188,130,123,252,239,138,112, 65, 94, 76,217,225,168, 97,199,166,173, 46, 86, 13,217,109, 23, -158,182,101,139, 77, 98,117, 42,168,235, 46,214,187,178, 91,209,188, 95,237,202,113,237, 57,122,111, 40, 86, 80,196, 67, 37,255, -156,243,180, 29,171, 64,199, 47,148,140,160, 5, 77, 74, 28,239, 92,162, 42,133,243,157, 82, 34, 65, 76, 23,248, 48, 75,191,144, -202,119,142,200,205, 12,187,120,185, 28,230,149,237, 27, 52,210,115,188,247,178, 39, 42, 58,135, 65,240,150, 71, 35, 38,137,244, -139,253,176,247,149,113,163, 60,112, 41, 69, 56,231,161, 45, 95, 2,163,172,123, 89, 59,196,126, 70,135, 61,239,204,100,156, 89, -136, 71, 25,176,218,151,221, 22,217,251, 72, 8, 35,135, 33, 21, 92,186,116, 74,196, 83,167,223,203, 57,135, 46, 52,163,106,159, -187, 57,126,180,140,113,133, 73, 64, 32,163, 6, 33,246,229,226,119, 60,158,151,125, 25, 51,231,120,183,173, 24,118, 18,160,160, -203,100, 74, 86, 4,162,208, 79,220,225, 10,211, 57,198,128, 12, 26,235,107,238,252,145, 83, 81,248,203, 37,172, 52,121, 69,115, -162,174,189,170,235,162, 24,150,247, 36,198,204, 49,193, 13, 50,200,215,171,149,229,162,201,113, 52,108, 40,249,244,148, 83, 30, - 81, 77,167,244,103,140,101, 98,152, 1, 56,103,185, 93, 91, 35,177, 28,175, 70,178,214,240,149, 71,219,180,136,125,132,243,180, -107, 38,220, 48,133,183, 88,239, 24,130, 83, 3,153,196, 63,221,250,250, 16,233,201,147,138,148, 51, 65, 49,152, 47, 17, 25,245, -218,117, 84,240,213,147, 26,117, 69, 74,102,205,235,147,213,149, 51,208, 76, 98, 12, 18,167,220,199,162,248, 46,207, 62, 40,110, - 88, 4, 79,212,193, 36,202,131, 7, 69, 25, 87,156,212, 22,186,192, 14,135, 76,200,222, 16, 56,129,145, 38, 32,190,170,208, 7, -238,206,178,134,119, 21,105, 38,242, 16,127, 44,205,139, 97,116,116, 8,137, 47,170,136, 73,181, 4, 91, 85,172, 76, 79,212,117, -114,186,158,179, 14,142,119,244, 89, 1, 33, 81, 87, 26,251,142,186, 49, 91,195,121,143,204,160,157,148,104,186, 66,123, 93,113, -222,100,190,152, 13,180, 37,208, 80, 63,155,113,231, 69,234,112,233,166,229,112,143, 41,194,213,117,129,143,228, 56, 20,157, 74, -110, 76,100, 24,237, 56,134, 56,241,216,190, 43, 36, 61, 85,216, 29,156, 35,238,253,224,238, 41,205,195,240,172,143,115,226,157, -119,200, 28, 63,171,120, 66, 4,129,254,176,198,133,132,168,129, 39, 47, 10,198,123,104, 67,209,167, 57,103,164,182,231, 41, 2, -101,154,103,254,126,202, 12,194,197, 13, 83, 76,118,169,128,207, 9,107, 61,186,102, 86,130,112, 32,166,196, 24, 97,205, 16,179, -108,189,101,119, 67, 40,162, 93,161, 59,106, 78,190,164,103, 54, 21,205,152, 26, 9,167,233, 92, 55,176, 85,205,122,170,192,141, -230,176, 58,148,148,209,208,245,229,191,111, 26,138,134,117,140,124, 14,146,187,192,147, 51,225,179,103, 94, 11,211, 57, 30, 54, -220,149,214,186,210,148, 42,177, 65,115,161, 70,110,156, 84,156, 70, 96,231,205, 56,112, 10,172,135,128, 2,148, 49, 38,207,171, -168, 23,141,139, 23, 93,238,227,127, 47,221,225,188,213, 42,241,131,156,211,224,133, 29, 72,101,140,237,228,125,104, 8,113,180, -239, 80,133, 2, 86, 10, 83, 53,108,254,199,100, 37,197, 30,107,249,231,153, 67, 41,232,193,205, 3,243,187,160, 21, 89,105,237, -253,134,241,181, 36, 94,149,157, 30,255, 92,169,140,224,198,123,106,197,187,171, 65,113, 46,187,244,255,159, 8,212,249,108,243, - 69, 25,232,227, 85, 3, 74,113,144,202,142,101, 28, 67, 43,191,183,182,166, 92, 76,146, 0,199, 67, 7,218,189, 56, 18, 51,209, - 5,235,217,243, 76, 33, 37,117, 85, 3, 48,133,131, 47,123,228,114,184, 84,228,211, 22,138,175, 54,190,100, 75,107, 46, 8,148, -206, 84,124, 37,178,194,104,230,169, 83,244,109, 44,140,121,122, 77,217,182,147, 3, 91,140, 98,233, 38, 3, 95,218,134, 87, 32, -224,241,186, 80,158,198,217,225,178,154, 41, 3, 50,165, 7, 49,161, 30, 10, 75,202, 91, 39,219, 28,161, 93, 21, 23,137, 28, 8, -163, 53, 66, 72,101,109,144, 68, 35, 33,107, 2,165,209,118, 29,234,233,132,108, 74, 33,192, 57, 75,133,152, 26,232,129, 49, 4, - 58,248,185,171,183,118,148,239,206, 7, 67,138, 17, 49,245, 69,236, 20, 35, 74, 49, 82,236, 77, 35,203, 99,202, 25,137, 17,145, -142,197, 97,126, 82,163,154, 76,208,206,102, 20,127,154, 50,218,166,225,236, 4,186,196,157,247,240,174, 98,219, 14,143, 37,219, -150, 53, 31,116, 57,118, 93, 71,232, 88,207, 43, 43, 99,128,152,105, 7,170,136, 34,168, 64, 2, 39,178, 49, 41,198,159, 58, 36, - 16,153, 81,240,206,190,158,194,123, 18, 63, 89,235, 16, 83, 96,210,162, 27, 5, 37, 89, 82,253, 51,175, 91,166, 93,179,217, 58, - 84, 38, 21, 63, 97,182, 52, 66,215,162,109, 8,197,234,234, 77, 5,251,170,149, 66, 26, 77, 52, 82,160,209,179,228,197, 3,170, -140,121,243,168,144,144,212,197,156, 51,170, 73, 13,235, 61,197,191,174, 55,133,177,159,115,134,245, 30,125, 34, 10,101,104,251, - 97,236,174,169,185,192, 56,145,113,164, 92, 23,204,171,171, 60,145, 1,155, 6,138,199,246,198,121,154, 42, 4,178,113, 25, 86, -228,147,178,191, 27, 86,127,124, 33,150, 4, 63, 13,196,204,200,107,100,210,111,241, 25, 43,151, 77,215,247,165,147, 31,226,145, - 89,124,170, 93, 25,131, 27, 75, 46,134,196,164,193, 28,184,225, 65,102, 42, 91, 68, 70,228, 28,136,138,167, 31, 25,137, 47, 67, - 42,126, 81, 20,249, 2, 11, 42,180,113,173,134, 25,152, 38,209, 23, 24,133,156, 82,228, 6,128, 59, 81,171,139, 46,130,166, 97, -142, 29, 20,164,223, 0, 39,158,229,190, 37,219, 27, 84,129,194,200,244, 66,192, 72, 18, 93,171, 53, 54, 64,195,138, 82,140,245, - 79, 68,134, 36, 69, 60,253,188,110,131,237, 18,252,239,101,133,129,209, 42,154,112,196,125, 57, 19,170,170, 70,232, 19,135, 53, -229,130,129,158, 39,124,202,100,192, 90, 83,238, 61,197,129, 93,101, 13, 48, 55,141,165, 78,157, 5,138, 74,196,131,154, 67,115, -134,232, 95,177,157, 90, 99,121,133, 9,252, 95, 84,139,234, 94,223, 17,236,117, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, - 0}; - + 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,187, 36, 86, 92,226,207, 35,253,154, 1,176, +221, 57,108, 17,193, 18,128, 74,191,223, 89,103,157,117,214, 89,103,157, 93, 1, 70, 0,156,115,116,243,191,218,125,235,239,126, +252, 23,190,243,240, 39,127,241,187,142,190,243, 7,190,238,143,250,165,219, 97,126,166,179,206, 58,235,172,179,206, 58,123,158, +103,234, 4,160,255,147,111,126,201, 59,126,225,123, 95,250,214,109,213,242,252,150,117,243,179,111,248,250, 23,191,228,245, 47, +221,178,235,195,159,122,250,233,227, 11,227,207, 2,144,206,185,119,214, 89,103,157,117,214,217,243,219,169, 59, 0,115,223,120, +195,236,247,252,211,173,245, 43,151,143, 28, 67,117,252, 40,234,229, 17,110,185,229,250,141,223,251,250,155,190,253, 51, 79, 28, + 47, 62,247,228,169, 79, 0, 88,238, 28,123,103,157,117,214, 89,103,157, 61,191, 51,245,193, 71, 30, 59,245,244,230,245,253, 87, +189,238,166,117, 87, 75, 45,104, 78,159, 66,125,250, 52, 54,110,221, 90,190,229, 77, 47,255,198,134,235, 23,127,248,145,167, 63, + 6,224,104,231,216, 59,235,172,179,206, 58,235,236,249,233,212, 1,128, 68,112,250,143, 31, 57,249,241,103,150,155,205,119,188, +108,195, 45, 51, 69,137,106,121, 25,205,137, 99,192, 96, 14,119,188,238,229, 47,123,213,245,235,119,126,240,147, 79, 62,182, 48, +172, 15,117,143,168,179,206, 58,235,172,179,206, 86,159, 61, 95,234,207,155, 1,176, 30,192,181,175,191,121,237, 15,253,214, 91, +182,255,216,245,179,229,204,210, 82, 5, 20, 5,220, 53, 55, 96,230,186,235,240,232,147, 71, 79,221,245,203, 15,254,252, 7, 62, +254,196,187, 1,156,214,223,151,231,243,205, 20,145, 29, 0, 54,234,127, 30, 34,162,175,232,160,228,171,237,122, 59,235,172,179, +206, 58,167, 62,221, 28,128,117, 0,182, 93,189,174,252,142,255,242, 67, 55,253,139,215, 95, 61,127,245,112,185, 1,192,160,109, +215, 98,246, 69, 55, 98, 44,140,255,237,215, 31,250,207,255,215, 31,253,195, 79, 3,248,146,158,239,115,118,236, 34,178, 29,192, +246, 85,254,248,113, 34,122,120,149,199,125, 0,192, 46,253,207,123,137,104,239, 87,184, 83,255,138,184, 94, 13, 78,118,105,128, +178,195,252,211,195, 0, 14, 1, 56, 64, 68,199, 47,192,231,180,143,143, 11,189, 6, 39, 62,115,223,206,115, 91,235,119, 63,248, + 48, 58,235,172,179, 43,214,202,231,224,148, 25,192,218,205,107,122, 95,179,121,190,220,204, 66,148, 69, 10, 4, 16, 17, 73,248, + 14,133,239,199,127, 45, 1,204, 85,141, 44,255,212, 31, 31,254,211, 95,252,206,235,190,243,181, 91,231, 55,140, 43, 1,142, 31, +197,112,110, 13,122,155,183,225,223,223,181,243,173, 59,110,222,246,146,183,221,255,151,111, 63,177, 48,254,240, 5,114,236,187, + 1,220,119, 14,155, 49, 0, 28, 0,112,144,136,246,119,203,230, 43, 6,101,216,173, 95, 43, 57,189, 16,176,220, 47, 34,251, 53, +112,121, 46,206,125, 7,128, 7,206,227,247, 14, 2,184,227,146,172,245,125, 59,211, 90,191,251,193, 75,182,214,101,223,206, 28, +245,185,251,193, 14,245,233,172,179, 75,228,212, 9, 0,205, 15,138, 29, 63,247,230,235,223,249,150, 91,183,238, 92, 63,219,235, + 51, 57,239,176,157,243, 95, 68,160,178,200,254, 27,206,129,138, 34,253, 55,249,127, 99,144, 84, 66, 92,151, 37,156, 57, 78,221, + 84,224,101,194, 15,221,241,202,175,191,237,230, 45,239,253,209,119, 29,252,153,143,126,246,200,175, 3, 24,225,210, 67,241,187, + 1,236, 22,145,221, 0,238,188, 16,153, 91,103,151,213, 62,122,142, 63,191, 7,192, 46, 17,185,243,124,179,230, 43,200,252, 90, +223,183,211,175,245,187, 31,188, 20,107,253, 62, 19, 68,221, 11, 96,111,183, 68, 59,235,236,210,101,234, 91,246,125,251,141,239, +250,201,215,190,240, 13,227, 37,134, 48,161,112,228, 19,120, 33,255, 5, 7, 98,242,174, 87, 0, 56,242,185, 61, 11, 80, 0, 68, +228,243,125, 1, 10, 34, 42, 29, 21,154, 17,123,167, 46, 0, 68,192, 68, 24, 45,141,241,170,235,183,110,121,224,157,223,253,203, + 63,249,238,191,120,241,239,252,249,103,127, 30,192,145, 11,148,181,135, 76, 8,103,201,214,236,127, 63, 32, 34,119,116,142,253, + 43,198, 30,214,236,244, 97, 34, 58,168,153,252, 70,125,214,123,204, 26,216, 14,224, 61, 34,114,251, 5,122,246,251,225,225,253, +179,217,133, 92,103,231,190,214,247,237,188,227, 18, 57,246,206, 58,235,236,114,100,234,131,158,219,254,207, 95,182,241,213,178, + 88,161, 26,142, 0,102,239,164, 35,178, 30,242,121, 74,126,183,112,112,155,183,170,115,103,144, 3,192,138,226, 19, 16, 61,188, + 99,239,248,157, 3, 26,120,126, 62, 1,227, 81,133,245,253,190,251,127,238,254,214,159,122,245, 75,174,254,154,127,249,171, 15, +221, 61,170,154,143, 95, 8,199, 78, 68,103,132, 54, 53, 59,191, 15, 9,166,221,161,155,125,151, 77, 92,217,182, 31,192,254,105, +153,183, 58,237, 3, 0, 14,136,200,253,250,188,131, 99,191, 80,207,254, 64, 8, 34, 46,149,209,221, 15,158,121,173,251,236,188, + 91,235,157,117,118,133,154, 59,143,223, 41,198, 21, 31,253,221,191, 63,242, 17,114, 35,204,247, 27,204,207, 2,115, 51,162, 95, +156,254, 62, 96,204,184, 49,208, 84,160,193,156,119,242,204, 0, 51, 98, 86, 14, 0, 24, 3, 60, 4,120, 25,144, 33,128,145,255, +111, 25,235,207, 11, 68, 24, 85,195,168, 71, 13,126,234,123, 94,189,235,129,125,223,243,135, 55,108, 91,247,221,234,246,221,197, +188, 73, 68,116, 0,190,166,105,179,149,221,221,242,185,162,237, 14, 34,186,107, 53, 80, 58, 17,221,213,202,168,239,249, 74,189, + 41,116,247,131,221, 90,239,172,179,175,178, 76, 29, 2, 28,189,231,143, 30,251,153, 63,254,228,179,223,253,178,171,103,175, 39, +192,177, 8,235,182, 0, 22,239,178,151,198,236,110,123,209,218,151,255,248, 27,111,222, 62, 83,206, 56,102, 6,138,194,231,214, +204,144,241, 2,168, 32,184,235,110,133,219,114, 51,104,221,213,160,153,117, 64, 61, 2, 47, 30,129,156,126, 10,124,228,179, 64, +189, 12,208, 44, 4, 13, 26, 1,120, 97,140, 55,188,242, 69, 47,122,255,190,239,249,181,127,118,239,239, 23, 95,120,234,228,123, +145,200,123, 23,203,177, 31, 18,145, 3, 38, 99,219,113, 33,142, 59,133, 17,253,240, 5, 98, 90, 91,214,243,121,181,155, 93,136, + 99, 92,138,235,109,157,231,170,142,119, 30, 25,242,126, 36,194,217, 70, 17,217,241,149, 90, 91,167,187, 31, 60, 36,251,118,158, +215, 90,151,125, 59, 39,159,239, 37,128,238, 91, 68,187, 75,246,185,157,117,246,149,224,212, 27, 0,139, 0, 62,245,193, 71, 23, +222,245,193, 71, 23,102, 49, 93,196,102,243,155, 95,181,245, 71,191,251,246, 27, 95, 48,231,250,174,102,241,208,251,112, 8, 25, + 45, 2,205, 34,138, 91,222,128,242,246,239, 71,113,227, 55,172, 8, 33,200,177,199, 80, 63,250, 1, 52, 95,124, 8, 84,244, 1, + 17, 8, 1,227,165, 49,110,185,102,243,250, 63,252,215,255,205,175,188,233,237,239, 57,246,236,201,225,159,227,194,213,216, 87, +178, 11,194,200, 85,199,182, 71, 51,160, 29, 83,254,253, 16, 18, 52,124,124,133, 99,220,103,126,247, 0, 17,237, 55,199,221,131, + 22,163, 91,143,185,119, 53,236,125, 17,217,163,217,232,246,115, 61,175,139,113,189,103,184,214,123,244,184,118, 51,127, 46, 76, +241, 51, 89,219,129,111,252, 10,223, 27, 86,189,214,213,145,175,252,124,247,237, 76,207,183,229,104,101,223,206, 7,166, 4, 14, +123,100,223,206, 93, 43,124,220,189,122,110,187,244,107,199, 74, 65,199,153, 62,183,179,206, 58,167,158,140, 1, 12, 1,212,240, +162, 48, 90,245,142, 61,239, 66,132,151,239,253,222, 91,126,246,237, 59,111,216,217,140,129,113,211, 64,170, 17,100,184, 4,212, + 35,160, 20, 12,190,245, 95,162,188,253, 45,103,207, 26, 54,221,128,222,166, 31,133,187,250, 85,168,255,238, 87, 1,215,120,151, + 79,132,241, 82,133, 87,189,248, 5, 87,189,235, 39,118,238,251,193,251,254,244,187, 1, 60,126,145,157,186,221,200,207,107,147, + 16,145, 93, 0,222,115, 22,167,176, 93,179,194, 61,103, 96, 91,135,222,106, 0, 56,168, 45, 90,247,159, 33,171,218, 14,223,154, +181, 67,225,228,149,156,239,253, 88, 25,110, 13,231,181, 91, 68,238,184,132,215, 59,237, 90, 31,248, 42,112,172,151,211, 86,181, +214,213,249,174,254,249,238,219,121,103,171, 23,126,215, 10, 63,191,253, 12,231,181, 7,171,107,211, 11,159,123,143,146,253,186, + 30,252,206, 58,167,190,210,187, 12, 63, 3,189, 10,190, 87,255, 44,174,191,106,230,219,239,127,203, 75,247,126,203, 45, 87,189, +120,180,204,104,154, 10, 24, 45, 3,117, 5,144,128,122,192,224,187,126, 30,197, 43,191, 45, 30,236,212,242, 8,239,255,248, 99, +120,255, 39, 30,195,177,133,101,244, 10,194,203,174,217,132,239,184,253,102,124,221, 77, 47,240, 7,190,238,213,160,254, 90, 84, + 31,254,119, 64,191,244,167,224, 8,245,194, 8, 63,240,166, 87,222,246, 91, 31,248,244,143,190,255,239, 30,123, 7, 46, 82,187, +155, 58,188,221,173,140,240, 92,143,177, 91, 55,192,118, 6,120,208,108,156, 54,219,217,142,196,180,127,248, 44, 27,240,123,204, + 70,120,192,100,150, 59, 90,231,189, 71, 68, 14,173, 32, 20,115,223, 20,135,110,143,181,219,100, 70,239,185, 76,215,187,177,229, +208,143,155,243,219,126, 17,223,149, 93,103,201,220,159,203,186,186,224,229,151,231,116, 78, 62,243, 62,235, 90, 87, 82,221,185, + 63,223,220,193, 30, 52,235,116,163, 65, 9, 86, 66, 10,142, 79, 65, 20, 14,181,206,113,187, 62,175,237,118,205,200,190,157,183, +119,253,239,157,117, 78,253,236, 22, 32,239,245,111,126,229,166,159,218,127,231, 75,238,190,118,205,236,236,242, 98, 3,105, 70, + 64, 53,210, 79, 42, 64,245, 34,122,175,251,177,204,161,255,205,231,158,194,219,127,251, 67, 56,244,236,105,204, 12,122,232,149, + 14, 78,128, 79,124,233, 24,126,239,175, 63,141,111,191,253, 38,252, 31,187,223,128,185, 65, 15,110,219, 75, 81,190,242, 78,212, + 31,251,117, 96,237, 54, 0,226,139,232, 66,248,215,111,125,237,143,253,217, 71, 31,251, 61, 17,124, 18,190, 68,112,161, 29,250, +253, 45,167,177,255, 28,143,177, 93,143, 97, 55,163,187,166,212,118,247,182,178,219,240,217,183,159,225,240,247, 24, 7,124, 87, +219, 41,232,103,191,199,108,174,247,136, 72, 6,117, 43,228,190,167,181, 57,223,217,170,163,219,115,219,117,153,174,247, 30,115, +188,123,149,196,216,126, 86, 23,195,118, 95, 4,199, 59, 53,195,213,114,196, 1,248,114,196, 37,117, 66,234,208,207,186,214, 85, +169,110,242,249,222,253,224,228,243,205,179,249,236,249, 6, 54,190,194,240, 97, 77,237,167,187, 31,220,123, 22,116, 96, 47,128, + 3,103,202,190,101,223,206,144,209,219,207,189, 3,157,117,214, 57,245,179, 58,244, 27,223,246,205, 47,252, 55,247,189,249,134, +255,182,228, 18, 75,163, 10,104,198, 64, 83,251, 58, 58, 1,144, 6,116,213,117, 40, 95,243,214,248,203,159,123,250, 56,222,250, + 43,239,199,225,229, 26,115,243,179,168,138, 2,189, 94,129,126, 65, 40,164, 15,106,106,188,247, 35,159, 71,225, 28,126,238,251, +119,250,140,253,230,111, 66,243,153, 63, 5,154, 5,160,156, 5, 8,168,199, 21,110,187,105,235,213,175,121,217,213,223,242,145, + 71,158,254, 20,124,137, 96,213,217,186,136,220,115,150, 12,173,237,192,238, 58, 15,162,213,253,173,236,114,197, 94,103, 34, 58, +168,240,118,200, 72,119,136,200,158,179,212,195, 15, 18,209,157, 43, 28,239,144,136,220,139,164,102, 22,122,176, 15, 76,113,150, + 97,131,158,218,135,111,206,237,163,151,241,122, 15,173,116,188,139,145,229,234,250, 56,239,128,238, 44, 8,203, 52,219,174,207, +227, 30, 17,185,160,242,187,178,111,231,185,175,245, 73, 71, 61,253,249,174, 80,183,166,187, 31, 60, 40,251,118,230,207,119,223, +206, 61,231,171, 88,119, 38,135,223,250,185,253, 90, 87, 15,235,126,151,236,219,185,189,203,214, 59,235,156,250,202, 14,157, 54, +205,151,111,122,247,238,155,126,225,251, 94,117,213,173,163, 33, 48,162, 10, 96, 15,181,163,231,226, 79, 74, 53, 70,121,203, 27, + 65,107,174,138, 7,184,247,183, 31,194,231,190,124, 18, 88,191, 6, 39, 23,106,128, 26, 20, 4,204, 21,132,171,230, 75,108,156, + 45,177,126,253, 26,252,225,223,126, 14, 59, 95,113, 61,118,221,122, 35, 80,148, 40,182,191, 17,245,199,127, 3,180,229, 6, 64, + 24, 76,132,254,108, 31,223,183,243, 37,187, 62,242,200,211,255, 9,192, 49,156, 27, 4,191, 90, 25,205,253, 56,143,222, 98,163, + 45, 30, 47,253,108,206,135,136, 30, 86,105,210,123,204,134,123,166, 77,240,174,179, 28,239,160,136, 60,140, 28, 10, 13,231,215, +150, 74,221,123,166,243, 51,231,182,231, 50, 93,239,222, 75, 5, 81,235,181,220,215,202,210, 47,132, 83, 15,186,242, 54,211,180, + 26,244,113,109,138,200,246,149,120, 16,231, 97,231,182,214,167, 56,116,101,154,231,207,247, 44, 68, 52,186,251,193,135,101,223, +206,115, 89,207, 23,196, 52,160,176,235,126, 55,186,158,251,206,190,130,237,124,250,187, 3, 41,110,205, 27,110, 90,251, 47, 30, +250, 31, 94,241,123,223,247,178, 77,183, 46, 45, 53,104,208,120,135,238, 0, 20, 4, 42, 8, 84, 18,168,112,160,146,224,174,121, +101, 60,200, 23,158, 57,129, 63,249,248,227,192,220,172,111,115,115, 14, 40, 10, 52,112, 56, 61,106,240,133, 35, 75, 56,116,120, + 9,149, 16,184, 40,240,129,127,248, 98, 58,129,171,110,134, 44,159, 2, 80,235,217, 8, 80, 51, 94,122,237,166,155, 0,188, 0, + 23,111, 80,205,110,205, 34,207, 21,226,181, 27,224,241,115,112, 10, 7, 91,159,189,162,131, 88, 37, 76,187, 18, 65,105, 87,203, +193,174,230,252, 14, 92,166,235, 61,116,169,244,247,181,132, 96,181,218,143,159, 45,120, 58,139, 29,135,103,111,223, 68, 68,183, + 19,209,157, 68,180,215,124,221, 73, 68,155,244,103,172,147,220,163,129,215,165,180,221,154, 81,111, 60,235,243, 93,125,198,189, +218,245,124,161,237,192, 42,208,145,206, 58,251,170,204,212, 3,220,126,205,143,124,195,150,159,125,247,183, 95,255,227, 61, 46, +176, 52,102,160, 16, 64, 24, 36, 0, 49, 65, 10, 82,232,221,255, 10,149,125,184,141, 47,138, 7,122,236,200, 41, 44, 47, 85,192, +186, 65,138, 19, 66,110,237, 28, 32,130, 19, 11, 21,170,113,141,107,215,151, 56, 61,172,210, 73,172,221, 6,160, 0, 70, 75,160, +217,181, 16, 8, 80,215,184,113,219,218,173,131,126,113,245,104,220,124,234, 28,175,235,222, 51,252,155, 37,221,108,132, 97,127, +159, 67,182,184,107, 5,199,138, 85,100,215, 89,214,184, 2,129,108,181,200,193,161, 51, 92,227, 57, 29,171,125,110,151,240,122, + 47, 9,131, 89, 3,183,118,205,251,222,231,210,155,174,191,187, 26,177,155,189, 34,114, 16,121,137,227,190,179, 4, 82, 23,111, +173, 79,202,196,158,223,243,245, 89,115,150,241, 95, 8, 70,186, 34, 7,103, 98,204,239,106,161, 33,157,117,214, 57,245,144,253, +174,157, 41, 94,251,111,191,237,218,125,119,237,216,242,186,241, 24, 24,246,188,228,171, 52, 2,170, 24,253,190,195,201,166,225, + 89, 56,135,178,136, 29,236, 4, 0, 82,199,131,109, 93, 63,135,162,223, 67,195, 80,189,120, 81,167,174,127, 10, 1,133,195,226, + 82,133, 47, 14,135, 24,220,106, 78, 85, 26, 64, 42,160, 30, 2,110, 29, 72, 24,194,140, 77,243,189,185,245,115,253,141,135,199, +203,231,132, 64,172,166,102,169,117,213,123,144,198,115, 62,128, 51,147,215,176,194, 70,178, 93, 71,150,158,143,109, 60, 67, 6, +248, 92,236,188, 54,105,253,217, 29,151,248,122, 47,186, 83, 87,135,254, 64,235, 58,238,186,148, 19,250,180, 28,113, 47, 18, 92, +190, 93, 68,118,183,137,129,231,124,220, 85,212,163,181,238,126,166,181,158, 63,223,212,107,126,161,214,243,106, 28,121,104,109, +187,167,203,190, 59,235,236,220,156,122,128,178,123, 47,221, 54,243,253,191,253,125, 55,238,253,186,173,115, 91,151,199, 12, 12, + 74,239,208, 43, 70, 89, 49,250,179, 5,254,213, 7,158,248,196,245, 27,250, 27,126,124,199,150,235,135, 2, 80,200,214,171, 10, +252,236,231,225,174,123, 53, 0,224,101, 47,220,140,175,127,241, 86,252,213,167,142, 0,101,233,157,184, 83,135, 30,116,225,216, +255,238,240,216, 34, 94,124,117,122,111,229,212,147,192,232, 20,100,180, 1,164, 19, 99,132, 67, 80, 0,135,139, 0,191,107,246, + 4,179,201,174,134,188, 54,109,243, 58,151,249,214,151,195,142, 95,128,159,189,146,174,119, 53, 14,253,222,203, 52,114,215,170, +216,225, 82,221, 71,186,251,193,189,154, 81,167,181,158, 19,219, 46,235,243,213,204,188,211, 41,232,172,179,243,112,234, 1,110, +223,122,231,215,110,122,251, 47,125,235,181,255,243,213, 51,189,254, 18, 19,104,206,167,224, 50,102,204,176, 96,216, 7,254,167, +247,125,241,125,251, 31, 58,252, 7,191,118,231, 13,119,147, 40,242, 94, 40,251,189,116,144,103, 62, 25, 15,236, 28,225,167,191, +235,118,124,235, 35,255, 31, 48,172,128, 65, 95,167,187,169, 83,103, 0,194,192,194, 18,110,123,249, 11,241,131,223,248,138,248, +187,124,248, 83, 16,169, 64,205,216,255,160, 8, 28, 9,142, 45, 12,151, 79, 45,141, 79, 95,196,236,105,175,170,155, 5,219,141, +115, 39,251,156,169, 7,247, 66, 58,220,231,139, 93,105,215,219,118,232,251, 47, 36,251,252, 28,215,219,241, 22,185, 49,180,114, + 93, 42,199,190,154,181,126, 73,159,175,102,232,109,157,130,253,138,224, 28,154, 6,231, 43,242,112, 31, 58,235,236,171,220,169, + 19, 0, 42, 11,186,229, 29,255,236,154, 95,122,251, 63,185,250, 91,234, 26, 88, 42, 29,104,224, 32, 44,144,229, 6,243, 37,225, +177, 81, 61,252,225,223,250,194,175, 62,248,217, 83,191, 13,128, 31, 63, 89, 61, 3,146,151, 74,204,212, 1,204,204,161,121,236, +195, 40,143, 63, 6,218,120, 3, 0,224,205,183,221,128,253, 63,241, 77,120,219,175,125, 8, 75, 39, 70,192,204, 0, 40,124, 61, + 29,227, 10, 88, 90,198,215,189,116, 27,126,239,237,223,134,249,153,158, 63,171,106, 25,205, 35,239, 5,245, 7, 0, 53,128, 48, +132, 27,192, 57, 60,250,244,137, 35,195,113,115, 4, 23,143, 40, 7,248,154,243, 46,179,201,158,115,246,117,185,156,196,101,178, + 43,230,122,117, 26, 91,219,161,223,117,153, 79,235,114, 6,114,171, 89,235,251, 87,219, 98,118,129,108, 79,203,161,119, 74,113, +157,117,102,204,157,197,169,111,189,239, 91, 95,248, 43,119,191,238,234,111, 25,214, 64, 53, 87,130,102, 11, 8, 3, 88,106, 48, + 63, 83,224, 47,158, 92,124,102,231,187, 63,253, 51, 15,126,246,212,127, 0,240, 24,128, 39, 62,243,236,240, 51,112, 4, 52, 74, +122, 42,156,135,216,235, 5, 84, 31,126, 87,246, 33, 63,254,166, 87,224,175,127,254,123,241,182,127,254, 53,184,113,211, 0, 51, + 82, 97,141,107,240,218, 23, 95,133, 95,254,201,111,198, 95,190, 99, 55,110,220,182, 62,254,124,253,119,191, 10, 57,241, 24,208, + 27, 64,148,132,135,186, 1, 28,225, 51, 95, 62,254, 69,248, 57,235,252, 60,187,207,103,147,197,188, 82,207,111,215, 21,122,189, + 43, 57,244, 61,207, 51,135,254,124,181,203,249,124, 45,107,126,239, 42, 29,250,246,238,145,117,214,101,234, 0,174,219,216,223, +249,195, 95,179,233, 77,227, 33, 3,107,122,160, 62, 65,198,130, 98, 88, 99, 48, 95,224, 55, 63,113,244,211,255,227,239, 61,246, +111, 79, 45, 55, 31, 2,112, 20,126,208,203,204, 95, 62,122,250,111,159, 58, 93,253,200, 85,115,189,178, 17, 73, 77,112,179,115, +224,199,255, 18,245, 67,191,136,242,117,111,139,159,243,170,235,175,194,187,126,228,141,248,249, 31,172,241,244,177, 69,244,123, + 37,174,217, 52, 63,113, 62,205, 35,127,132,250,239,127, 19,152,153,243, 81,135, 43, 32, 13,131, 26, 70, 53, 28,225,189, 31,122, +244, 33,120, 61,250,139,233,212,207,103,131,200, 32, 84, 17,217,120,185,165, 64, 91,118,200,156,223,170,216,193,218,191,125,165, + 94,239,149,228,208,207,151,196,120, 49,215,122,254,124,247,237,220,120, 9, 7,166,236, 56,143,251,113, 69, 4,150,157,117,118, +177, 51,245,242,134, 77,131, 23,111, 28, 20,168,217,179,219,101,169, 65,127,220,128, 6,132,183,191,255, 75, 7,223,250,155,143, +254,175,167,150,155, 15, 0,120, 6,192, 73, 0, 99, 0,213,147, 39,198,127,251,222, 79, 29,255,120,175, 4,100,216, 0, 16,144, +131,239, 87,159, 91,139,230,239,255, 51,170,131, 63, 13, 89,122, 54,251,192,153, 94,137, 27,182,173,159,116,232,213, 50,154,143, +188, 27,245,135,222, 1, 26,244, 65, 69,225,235,245,189, 1, 80,213,232, 57,224,111, 62,243,212,211,127,245,200, 51, 7,225,181, +223, 47,138, 83,111,141,248, 60,151, 77,165,221, 38,182,231,121,182, 14,236,249,109, 84,217,214,231,178, 81, 62,223,175,247,138, +112,232, 42,221,219, 14,190, 46,205,103,123, 25,216,149,214,250,149,243,124,189,164,108,151,169,119,214, 57,117, 0,197, 35,207, + 44,127,246,203,227,166,158,155, 43, 48, 87, 53,152, 43,128,133,130,229, 7,222,115,232,119,126,225,129,167,126, 22,192, 39, 0, + 60,171, 25,186,247,222,126,200,203, 51,191,244,193,103, 14,156,172, 26,148, 85, 3, 84,236, 89,115, 42, 74,131,249,181,224, 71, +255, 4,227,247,190, 21,205, 63,190, 23,114,234,137,233, 47,228,226, 17,240,163, 7, 49,254,131, 31, 65,253,177,255, 8,204,204, + 0, 69,233,197,102,136, 64,174, 7, 26, 86, 64, 33,248,185,223,253,216, 31, 0,248,188,126,254, 5,119,234,166,111,217,218,170, +218,139,180, 13,201,110,200,247,156, 37,211,189,212,118, 0,121,237,246,158, 85,220,139,123,174,224,235, 93,201,161, 63,140, 51, +247,113,159, 53,232, 19,145,123,204,215,174,214, 61, 59,215,245,102,201, 93,199,113, 97,250,212, 87,227, 8,207,184,214,233,238, + 7, 39,159,175,103,164, 63, 87,180, 8,171, 64,139,142,175, 54, 3,215,235,232, 8,114,157,125, 85,217, 25,225,247,163, 11,245, +223,125,223,239,124, 97,239,219,222,184,109,247,230,185,114,253,167,158, 29,126,249,255,254,240,225,247,253,227,147, 75,255, 47, +128,167, 0,156,208,236,220, 58,209, 6,192,242,231,143, 12,255,228, 29,127,254,244,174,125,223,118,221, 29,245, 66, 13,148, 14, + 52, 40, 18,133,109,110, 29, 80,159, 68,245,225,119,130,250,107, 64,155, 95, 10,183,233, 38,160,156, 1,184, 2,159,120, 28,114, +228, 31,129,225, 9,160,215, 3,230,215,155,183, 21, 0, 59,200,136,208, 95,227,240, 27, 7, 63,243,200,159,253,215, 39,126, 7, + 30,122,175, 46, 66,118,190, 11,147,243,197, 3,235,118,181,118, 23,114,237,245, 7,116,204,232,193, 85,124,254,110,117,150, 23, +133,144,164, 44,235,189,102, 3,220, 37, 34,247, 79,203, 88, 77,203,215,198, 43,245,122,207,224,208,239,120,142,101,130,237, 45, + 39,114,175,201,106,119,168,214,193,254,179,245,154,155, 49,186,246, 30, 95,116,105, 92,205,206, 87,187,214, 39,159,175, 31,171, +122,112, 21,159,177, 91,131,131,189, 43, 56,245,221,103, 16,166, 57, 96,158,219, 30,217,183,243,192, 10,140,247,105,173,137,157, +117,246, 85,237,212, 43, 0,199,254,250,208,233,255,244,215,135, 78, 63, 0, 96, 45,124,221,252,105,120,168,125, 65,127,166, 45, + 43, 22,230,173, 63,253,239, 62,240,212,187,110,187,110,238,198,183,220,186,249,230,229, 83, 99,208,186, 62, 48,112, 94,105, 14, + 2,244,122,160, 94,207, 51,216,143,126, 2,245,225,135,227,225,200,149, 64,217, 7,230,215,180,222, 86, 0,227, 6,194,179,152, + 25,244,241,240,231,158, 57,254,191,252,199,143,236,211, 44,125, 25,231, 49,161, 77,206, 32,141,118, 38,167,117, 46,155,172,170, +165,221,133, 52,217, 42, 56,186,131,186,241, 63,220,114, 14, 97,131,221, 97, 28,196,197,180,253,200,199,100,238,209, 76,115,191, + 57,183, 93, 72,236,227, 67,186,217,239,184,210,174, 87,175,107, 26,100,252,158,115, 88, 10, 7,206,163,119,125,151, 6, 76, 97, + 84,232, 52,237,247,246,168, 92,192,203, 0, 95,144, 0, 71,246,237, 60,191,181,222,170,153,171, 58,220,228,243,221,183,243,124, +159,111,208,133, 15,129,204, 71,117, 24, 75,187,228,144,149,138,244,231,246, 35,141,123, 13,130, 57,150, 37,127, 0,151, 86,150, +182,179,206,158,151, 78,189, 81,199, 93,171, 19,119,250,189,145,126, 53, 88,121,104, 74, 13, 96,129, 69,254,225,191,255,221, 47, +252,220,230,249,242, 29,255,244,230,245, 47, 28,158, 28, 3,107,123,160,153, 34,245,175,123, 15, 14,244,103,206,220,135, 38, 0, + 88,128, 81, 3, 62, 53,198,236, 11,182,225, 83, 79, 29, 95,184,115,239, 7,247,158, 92,172, 62,100,130,140,139,109, 15,171, 67, + 63,103,210, 18, 17,237, 55, 2, 54, 27,237, 70,127,185, 23,130,102,235,119,106,118,179,125,133,204,211,102,110,119,226, 44,208, +230,243,249,122,167,216,185,102,116, 7,159,195,103,109,199,234,235,208,251, 47, 65, 64,119,230,181,190, 2,195, 92,167,160, 93, +144,231, 75,119, 63,120, 92,246,237,188, 23,249, 56,215,105,194, 54,123, 21, 37,176, 63,183,231, 12,247,243, 46, 61,183,206,169, +119,246, 85, 97,238, 44,110,180,134,175,151, 31,135,159,124,118, 2,192,146,126, 95,206,242,187, 35, 0, 39, 79, 45, 55, 15,126, +215,254,207,254,239,191,249,177,163,159,158,233, 59,244, 78, 85,224,147, 21, 48,228,120, 20, 2,129,104,202,151,254, 15, 13,128, + 49, 67, 78,213,160,227, 35,204,110,220,128, 7, 15,157,124,250, 91,126,230,224,207, 28,122,102,225,247,245,220,150,112,241, 88, +239, 7,117,115,189, 83, 7,113, 60, 23,253,239,253,240,146,155,251,177,186, 30,228, 3,186, 49, 93,252,137, 86,126, 40,204,237, +103,249,172,131,240, 99, 79, 31,190,210,175,247, 50, 56,200,123,177,122,114,229, 1,248,114,192, 93,151,184,115, 32,173,245,187, + 31,188,253,108, 45, 99,170, 50,119, 65,158,175, 30,235,166, 22, 58,180,210,103,222,137, 51, 19, 7,253, 58, 61,207,241,174,157, +117,118,165, 26, 93,228,227, 23, 0,230, 52, 82,126,197, 15,191,118,235,143,253,155, 55,191,240, 59, 94,184,190, 95,214, 35, 65, + 93, 18, 48, 83,128, 74,231, 51,119,103, 78, 71, 4,104, 0,169, 25, 24, 54, 40, 42, 70,175, 71, 56,213, 0,239,252,208,177,191, +248, 63,223,247,232,253, 85,195,127,135,212, 74, 87, 95,137, 15, 64,161,224,118,150,120, 8,126,186,217,193,203,120, 94, 1, 46, +181, 66, 31, 7, 87, 57, 13,238,138,187,222,203,244,220,183, 99,146,155,240, 48, 60,220,126,252,138,188, 46,207, 54,159,254,124, +207, 82,111,191, 64,159,119, 8,192,195,221,204,244,206, 58,167,126,113, 29,251, 12,128,245, 0,174,126,209,166,193, 55,239,121, +195,214,239,252,161, 29, 87,189,230,218,181,189, 30,132, 32, 34, 96, 34,176, 57, 27, 39,128, 19,241,173,107, 4, 28, 29, 54,252, + 95, 62,113,236, 31,238,127,232,240,251,254,254, 75,139,127, 12,224,203,138, 28, 44, 95,169, 14,189,179,206, 58,235,172,179,206, +174, 52,167, 30, 62,167, 15, 96, 30,192, 58, 0, 87,111, 90, 83,126,237,107,110, 88,243,154,239,189,117,211,171,111,125,225,220, + 11, 54, 14,138,249,249,146,250,165, 35, 87, 51,100,169,225,241,201, 49, 47,125,238,240,242,145, 3, 31, 63,246, 95,255,234,208, +194,223, 62,121, 98,252, 48,128, 39, 0,156,130,175,161, 95,180,158,244,206, 58,235,172,179,206, 58,235,156,250,153, 63,203, 1, + 24,192, 67,242,115,240,140,250, 77, 0,182,205, 13,220,230,153,210,173,235, 21,212,175, 89,234, 97, 45,167,151, 70,205, 81, 17, + 28,134,135,216, 79,193,215,205, 23,113,118,162, 94,103,157,117,214, 89,103,157,117, 78,253, 18, 58,247,158,102,239,225,171, 68, +156,190, 14,104, 6, 94,233,215, 88, 29,121,221, 57,243,206, 58,235,172,179,206, 58,123,254, 56,245,246,231, 7, 39, 31,254,180, + 78, 93,204,159,157, 35,239,172,179,206, 58,235,172,179,231,177, 83, 63,211,249,116, 78,188,179,206, 58,235,172,179,206, 58,235, +172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179, +206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58, +235,236,249,103,244, 11,255,254,254, 41,253,224,228, 27,198, 5,128, 19,136, 56, 16, 1, 2,153,104, 36, 23,209,225,106, 2,128, +226, 31,254, 79,246,202, 49,100,254,125,194,244, 51,130,238, 76,251, 71, 68, 4, 68, 4, 8, 65,136, 0, 97, 64, 4, 76,254,248, +241, 68, 5, 16, 61,239, 48, 4, 6, 2,255,187,228, 79, 84,116,164,171,136,254, 12,128,147,199, 79,225,243,159,252, 36,164, 26, + 97, 60, 30, 97, 60, 30,163,116, 4,112,131, 97,221, 96, 80, 20, 32, 2,170,170,194, 53, 55,223,142, 47,127,225, 31,112,242,228, + 81, 44, 46, 47, 98,121,220, 0, 4,148,228,208,239,247,225, 92,137,235,111,188, 17,183,237,248,122,252,205,135, 14,226, 59,238, +124, 43,126,235,254, 95, 2, 0, 12,199, 21,102, 7,125,140,235, 6, 11,163, 17, 54,174, 89,131, 99, 11,139,232,247,251,168, 26, +198, 85,235,214, 98,177,170,176,102,102, 22, 71,151, 71,184,106,237, 58, 52,189, 62,182, 93,115, 3,238,120,227, 14,212,117,141, +162, 40, 32, 16, 52, 13,235,120, 90,125, 46, 2,228,119, 94,255,206,128,232,115, 11,247, 54,253,108,254, 16, 68, 0, 97,255,253, +162, 40,210, 13,202,127, 49,222,235,186,105, 80,150,101,122,102,162,127,115,254,153, 53,117,131,162,112,128,142,208,133, 0,226, +116,101,137,254, 28, 51, 8, 2, 17,242,107,139,210, 51,231,134, 81,184, 2,172,139,136, 38,206,133, 32, 4, 52,117,141,178, 40, + 1, 71,186, 86,194,234, 37, 16, 73,190, 24,178,251, 3, 64, 8,228,156, 89,107,128, 35, 2,131,179, 75,110,154, 26, 16,160,236, +149,241, 40, 77,195, 96,105, 80,186, 82, 23, 26,226, 49,195,177, 8,233, 35,133, 4,117,221,160,212,123, 75,250, 84,184, 97,127, + 92,241, 63,200,204, 40,138, 2,228, 0, 18,154,120, 33,152,211,125, 32, 2,200,172,107,210,197, 16,214, 74, 81,148, 0, 73, 28, + 99, 44,228, 47,200,193,233,187,161,191,235,244,126,137,128, 28, 65, 24,104,152, 81, 56,231,255, 27, 2, 71, 78,239,143,121,209, + 29, 0,214,123, 76,173,157, 65,160,191, 75, 19,239,181,152, 71, 9,248,119, 52,220, 87,146,180, 90, 9,126,208, 19,216,175,119, +127,233, 28,215,147,115,206, 15,103,118,225,227,195,117,232,211, 38,232,181,167,115,142,251, 81, 60, 15,137,207, 11, 96,127,190, +122,223, 29,153, 61,197,158,187, 72,220, 79,152, 25, 18,206,153, 68, 63,155,210,235, 18, 94, 11,241,255, 46,254,170, 16,207,138, +243,123, 1, 2, 26,110,224, 92,161,207,197,236,140, 4,115,103, 4, 68, 46,109,161, 83,246, 85,161,120,194, 16, 61, 33,134,232, +190, 25,254, 91,255,170,215, 42, 77, 3, 16,161, 32,151,164,193,244,254,137,238,167, 68, 64, 93, 55, 40,156,131,211,159,147,169, +123,183, 95, 99, 0,193,133,125, 56,172,124,241,251, 12, 17,129,196,175, 77, 2,161,214,119,173, 40, 10,148,101, 9,231, 72,215, +114, 1,231,156,126,207,193, 81, 1, 1, 67,216,191, 51,117,211,160,105,154,248, 60, 24,156, 28, 20, 72,159,145,223, 16, 5,140, +170,170, 65, 68,254, 93, 41, 11,239, 83, 26, 70, 35, 2,102,127,156,134, 25, 77,237,143,219,176,255, 83,194,179, 55, 15,152,245, +122,184,105, 80,148,165,127,191,117, 63,101, 22,136,232,121, 10, 64,196, 96, 33,248,213, 76,113,221,133,187, 39, 8,163,200,245, +247,133,211,125,247, 59,132,174, 79,255,190,138,243, 43,196,238,112, 37,166,250, 89, 73, 47, 30, 3,112,254, 64,102,141,100,110, +129, 37,238,231,126,169, 10,169,227,165,236, 84, 97, 54,164,108, 5,176, 46,116,231,166,123,127, 65,107,211,208, 69,236,140,175, + 33,179,176,201, 94, 9, 38,182, 21, 50,171,238,169, 39, 14,163,239, 8,203, 0, 6,101, 1, 97, 7, 97,160,152, 93,143,254,240, + 52, 32,140,153,126, 15,253,153,121,112,189,140, 53,235, 54,161, 39, 35,188,242,214,215,227,200,211,143, 97,225,228, 17, 44, 13, +135, 56,185,184, 4,160,194,145,103,158,196, 23, 31,255, 2, 78, 29, 59,134,247,189,231, 55, 1, 17,244,251,126,227,175,234, 26, +131, 94, 15,189,178,192, 51, 39, 78, 98,203,186,181, 24, 51,163,160, 18,133, 35, 12,202,158,127, 1, 0, 44,142,199,152,235,207, +160,223,235,129, 69,204,213,200, 10,247,136,208,246, 1,105,211, 74, 47,101, 88, 32,103,215,246,145,184,241,132,141,151,153,163, +143, 36,202,125, 44,181,159, 41, 77, 62,179,176,120,252,239,232, 65, 36,223, 56,226,117, 18, 32, 78,224,196, 65,156,100,139, 78, +200,165,243,167,116,156,228,208,225,157,188, 58,118, 97, 19,228,153,205, 81,244,228,201,120,223, 44, 62,162,214,245,101,151, 40, +186, 25,217, 32,152,144, 60,138,185,104, 71,198,147,133,247,200,249, 0, 85, 15,236,156,196,207,201, 30,143,228, 49, 9,145,185, +110,245, 60,206,158,183,121, 94, 33,168, 9,215,236,224,252,102, 68, 26, 96, 73,242,110,132, 16, 60,135,235, 22,115,205,148,159, + 79,188, 93,102, 92,178, 58,173,176,225,132, 95, 38,164,141,213,250, 38,202,246, 26, 74, 14,157,252,250, 23,117,244, 78,210,223, + 73,247, 1,127, 89,193,233,132, 99,187, 21,182, 11,153,120,158,200,110, 47,153, 77,117,122, 98, 65,246,121,170, 3, 23, 50, 65, + 27,252, 51,208, 80, 16, 52,241, 30, 74,246, 46,248,251,238, 55,118, 10,123,152, 6,100, 89,192,163, 9,141,216,223, 35,228,107, + 52,188, 79,230,221, 33, 32, 91,176, 18, 28,188,122,112, 33,154,140,172, 68,131, 40, 17,239,128, 77,224, 27,110, 92, 8,146, 98, +240, 76,103,214, 46,163,236,157, 78,187,137,176,248,128,140,210,251, 65,240,251, 11,224,131, 65, 87, 56,179,206, 39,118,110, 13, +160, 82,160,170, 33, 73, 10, 96,194, 5,147, 79, 30, 76, 90, 3,110, 88, 31, 37,195, 57, 31,224,178, 8, 24,234,128,197,223, 7, + 97, 6,139,126,177, 63,174, 79,124,196, 4,114,234,235, 88,131,103,129,254,155, 38, 74,254,168,209,163,138, 0, 16,239,216,195, +222,108,111, 55,169,211,101,166, 24, 56,144,190,247, 44,230, 93,204, 18, 91,134,168, 99, 7, 1,101,246,194,197, 13, 65,204, 99, +161, 44,178, 75,145,171, 76, 70,134,225,223, 37,253,153,254, 77, 98,140,153,189,117,186, 17,248,147,229, 20,217,211,180, 69,162, +143,142,252,141,137, 17, 13, 76,118,180,130,191, 18,187, 8, 41,237,147,117, 53,198,184,170, 80, 64,176, 60, 30, 99, 92, 53, 40, + 9,232,213,139, 24,143,199, 88, 51,211, 71,191, 44,113,114,113, 1,167,191,124, 8, 60, 94,192,236, 96,128,197, 83,207, 98,184, +120,194,143,159,235,149,216,186,113, 19, 70,163, 33, 78,159, 60,133,191,254,208, 95, 96,110,118, 22,195,103,158, 66,233, 10, 12, + 23,198, 0, 17,122,101, 9, 22,198,210,168,194,160, 44,176,118,110, 22, 79, 30, 63,133,185,193, 0,163,170, 65, 45,130,138,147, +235,118,174,192,186,181,115,153,123,166, 41,219, 82,184,104, 27, 64,197,101, 20, 82, 70,177,206, 73, 90,142, 54,223, 98,211,254, +156,175,141,144, 69,218,167,145,118, 74,154,120, 86, 89, 48, 69,249,179, 72,171, 56, 4,129,186, 97,137, 68,132, 37,126,188,232, + 86,165,209,124,216,220, 69, 55, 32, 74, 41, 31, 68, 52,115,179,225,156, 58,123,161,224, 64, 18, 90, 67, 54,205,160,228,116, 17, + 55, 8,127, 78, 69, 81,168, 67, 36,115, 47, 83, 22, 39, 38, 82, 16,139, 12,133,127, 11,136, 83,116,118,186,129, 58, 93,195, 18, + 28,130, 94, 79,184,126,189,110,187,177,198, 13, 74,130,238, 2,159,201, 0, 0, 32, 0, 73, 68, 65, 84, 35,116,209,183,134,205, +197,103,177,206,103, 64,138,132,216, 64, 43,249, 95, 74,247, 46,124,148, 57, 87,210,119, 55,162, 44,118,149, 81, 30,119,132,189, +195,111, 48,233, 57, 66,131,245,248,110, 91, 24, 67, 12, 42,168, 14, 61,100, 33,241, 90,201, 32,112, 41, 58, 11,121,121,204,196, + 98, 86,110,145, 3,105, 35,144, 33,203, 54,193, 88, 88, 45, 45,112,202,162, 25, 9,122, 73,193,161,207, 46, 91, 1,163, 6,172, +100,130,128, 44, 7, 51, 31,228, 17,170,228,120, 65,228,209,171,128,186,132,165, 25, 31, 76,218, 87, 77,138, 21, 3, 42,187,231, + 74,132,154,194,251, 28,130, 14,196, 48, 38,247, 36,126,237, 4,167, 42, 98,144,162,112,175,188,199, 2,179,119,134,228, 40,189, +155, 19, 1,159,143,145, 18,218,228,175,159,217,175,121, 71, 41,243, 15,153,175, 40, 2, 89, 56,151, 16, 86,164, 53,106,159, 79, +112,120,193,129,134,228, 82,162, 31, 10,240, 3,167, 37, 32,226,179,111,230,152,160, 56,231,188, 3,111,127,177,164,239,115,114, +246, 49, 40, 54, 1, 30,216,255, 12, 21,206,223, 87,201,157,162,255,189,112,206,122, 60, 18, 19, 39,230,153,191,253, 29,210,247, +142, 69,162, 31,149,108,207, 9,235,202, 39, 8, 2,160,148, 24, 33,183, 50, 14, 19, 9,138,121,242, 36, 98,147,174,184,225,144, +249,102,150,205,199,183, 3, 16, 19,141,147,125, 73, 72,146,239,177, 16,159,121,225, 66,178, 67, 49, 25,114,105,155,144,201,128, + 78, 32,112,146, 67, 86,109,215, 83, 20, 5,184,105, 48,174,198,232, 81, 8, 26, 9,174, 32, 84,117,131, 70, 4, 85,211, 96, 88, + 85, 88,191,245,122,148,253, 25, 28,254,210,167, 49,211, 43,177,102,253, 22,156, 58,250, 4,106,241, 11,100,195,250,181,104,154, + 10, 87,109, 88,135,225,120,140,211, 75, 75, 96, 1, 28,249, 81,239,133,115, 24, 85, 21,230, 6, 3, 20, 68,232,151, 37,142,157, + 94, 64, 89, 56,244,123, 5,198, 77, 3, 1, 97,105, 60, 70,175,215,247,215, 92, 20,216,188,113, 93, 68, 35,200,166,196, 2,144, +227,184, 81,176, 36,167, 39,146, 94, 66,145,228,132,130,147, 74,112,113, 56,142,152, 23, 61, 5, 91, 33,211,245, 25,140, 36,168, +212,194, 35,113,191, 49, 25,145, 61, 79,146,137,224, 65,212,153,165, 61, 69,226,231,161,245, 60, 69,131, 78,103,119,139, 86, 73, + 37,157,167,191, 22,136, 3,133,204, 23, 33, 88, 48,193,168,102,177,126, 13,165,108,158, 76,176,103, 95,200,152,249,218,108, 40, + 56, 68,114,233,126,132,204,137,210,117,133,181,203, 48, 65, 64,112, 58, 44, 30,157,210, 99,123, 39,239, 64,122,204, 0,171,155, + 16, 62,194,228,118,151,139, 73,179, 58, 55,167,155,162,144, 34, 29, 36, 38, 72,202,157, 98, 58, 52,133, 16, 94,175,143, 98,137, + 35,123,198,230,126,147,125,255, 3,180, 76,249, 51, 20,139,172,165,216,203,196, 81,169,148, 66, 72,193, 26,217, 76, 95,207, 71, +204,117,251,159,117,241,173,246,159, 31,160, 72, 73,232, 0,181, 49, 72,239,112, 93,200, 96, 37, 21, 8,194,166, 11, 69, 10, 72, +236, 70,151,103,160,193,217, 50, 9,192,121, 52, 64, 89,150,219, 10,164, 92, 2,207,200, 64,233,193,233, 48, 75, 44,179, 69,152, +213, 58, 74,139, 18,200, 36, 10, 22,127, 77,225,169, 24,160, 75, 10,138,108, 54,111,177, 76,214,204, 53, 36,101, 9,151, 79,193, + 48,139,119,188,142,156, 6,139,122, 92, 70,150, 82,248,243,117,166,172,224, 51,113, 31,132, 23,201,225, 3, 49, 43, 22, 2, 74, +231,124,233, 97, 21, 72,128, 5, 46, 83, 89, 81,252,181,139, 41, 45,232,147, 15, 48,189, 52,141, 71, 3,156, 3,139, 15,102,188, +227,214,210, 95,128,189, 21,218,103,227,208, 67, 6, 30,159, 5, 43, 60,238, 92, 12,158, 41,236, 91, 54, 99, 87, 24, 61,193,247, +105,159,161,214, 50,147,184,111,164,160, 58,250, 83,227,127,205,227, 73,136,144, 0,101, 40, 61,164,104,175, 85,103,178, 17,175, +197, 33,163, 99,144, 22,208, 45,147,105,153,121, 56, 28, 55,104,139, 12,231,248, 88,138,116,125,168,226, 98,106,148,240,118,239, +220,237, 77, 52, 79, 16, 4, 18, 55, 1, 7,199,210, 64,200,132, 28,161,169, 70,126,195,224,198,215,137, 11,231, 55,205,114, 22, +197,184,246,245,225,166,198,210,201,103, 1, 87, 96,221,134,109,168, 22,142,224,248,225,199,209, 52, 90,251, 66,131, 13, 91, 94, +132, 83, 39,143,163, 95,150, 56,181,176,136,173, 27,214, 99, 97, 56, 66, 85,215, 24, 85, 53, 22,150,135, 40,156,127, 9,230, 7, + 51,152,155,157,193,210,104,140,126, 81,120,135,202, 90,207,132,143, 30,157, 43,208,239,207, 96,203, 85, 27,178,136, 92,108,116, +199, 90, 83, 35, 91, 51, 23,221,168, 40,131,128, 99,230, 26, 2, 40, 78,165, 81,230, 54,222, 27, 16, 19, 74,217,138, 36,120,150, +140,179,177,209,118,136, 20,197,236, 54, 18,179, 26, 11,191,147, 47,217,180,130, 3,187,168, 73, 11,165,126,195,144,220,177,233, + 70,199, 32,205,116, 53,184,136,155,123,168,227, 33, 58,153,176,209,248,123, 22,119, 62, 5,173, 40,135,224, 37,193,215,220, 4, + 52, 32,161, 66,194,201,169, 59,146, 86,146,146, 54, 58,177, 85, 8,130, 57,142,158,175,110, 44, 46,148, 11, 26, 68, 39,239,178, + 87,199, 77, 64,235, 9,180, 54, 79, 56,220, 38,123, 12, 39,254, 93,208,235,119,234,248,132,140, 99, 23,103, 56, 17,254, 60,156, + 75,200, 65, 59,141, 37,180, 29,122,242, 52,206,192,146,146, 83, 94,210, 86, 66,148,161,126, 54, 48,161,248, 28, 9,182,186, 14, +179,230, 40,192,210, 38, 64, 9, 25, 63,153, 77, 46,162, 30, 34, 38,150,145, 88, 63,246,207,223,105,157, 18, 89,160, 32, 6, 1, +203, 61,151, 89,203,122, 63,217,137,217, 14, 41, 15,120,219,232, 83, 12, 26, 96,156,131, 63, 79,230, 20,144,101, 91, 36, 89,104, + 68,223, 31, 19, 20, 73,142, 45,233,251,165,225, 2,153, 96,198,122, 35, 83, 82,241,107,135, 65,226,159,123, 22,208,144, 45,179, +250,111, 20,206,212,219,217, 32,174, 33,208,139, 8, 89, 8,162,204, 59,163,176, 59, 73,130,148,153, 27,127,220,194,121, 56, 92, + 75, 91,177, 36, 52, 45,118,161,148,185,250,140,218, 58, 94, 24,248, 91,209, 5, 97, 52, 85, 3,230, 70,223, 15,159,161,135,154, +119,128,216,131, 67, 79,127,230, 95,214, 7, 38,135, 30, 74, 23,138,192,217,108,155, 89, 3, 6,127,236, 88,190,177,153,121,112, + 96,198,129,147,115,177, 86, 31,185, 26,250,239, 36, 45, 4, 43,172, 7, 93, 99,101,132, 4, 98, 6,220,130, 75,197, 68,239, 90, + 15,136, 16, 56, 44, 12, 68,104, 35, 15, 80,136,129,180,198, 17,106,185, 54,147,132, 93,176, 50, 89, 19,166,108, 25,122,199,199, +122,215, 36, 56,118, 39,126,179, 18,179,177,145,137,132,244,173, 16, 3,213, 18,128,133,211, 75, 0,215,112, 32, 84,236, 73, 18, +125, 0,101, 89, 98,204,140,170, 26, 99, 80,206,160,106, 24,163,165,163,152, 91,179, 1,167, 23,142,162, 97, 65,179,124, 24, 47, +121,197, 63,193, 35,127,255, 16,170,166,193,209,103, 30, 7, 57, 66, 85,141, 49, 63, 55,131,245,235, 55, 99,113,248, 36,214,206, +206, 98,166,223,192,185, 33, 78, 44, 46, 97, 92,251,104,120,220, 52, 0, 57,172,159,157,197,233,225, 24,253, 94, 15,181,214, 15, + 89, 4,189,162, 64,217, 31, 96,110,118,128,170,170,167, 16,123, 36, 67,182,125, 36,154, 46, 94, 20,230,201,235,136,186, 96, 36, +109,152,162, 89,114,138,200, 53,214,102,130, 35,246,153,168, 6, 29, 22,234,202,156, 9,179,129, 32, 37,174,153,137,218,140, 5, + 2, 40, 71,117,242, 90,112,202,140,201, 56,129,172,164,230, 8, 78, 56, 57, 91, 67,246,113,209, 7, 58, 83, 38,114, 62, 12, 8, +228, 39, 55, 89,175,158,228, 5,234,186,119,166, 10, 44,134, 84,231,200, 67,205,148,103,249, 36, 57,106, 30,126,209, 57, 31, 72, +134, 32,200, 19,126,210, 3,114,164, 65, 74,150,195,145,169,112, 36,120, 53,119,135, 97,131, 20, 13, 20,148,152,100,160, 91,167, +142, 92,148, 92,231, 8,137,124, 74,240,129,179,115,250, 60,194,231,135, 19,243, 55, 52, 98, 99,134,148, 24,207,198, 32, 39,193, +249, 56,161, 84, 12,114, 46,110,136, 46, 43,139, 37,104,155,148, 36, 99,239, 15,166,160,232, 20,235,234, 6, 38, 54, 11,204, 57, + 83,131, 15, 59, 7,181,216,104,162,231,167, 72, 20,153,210, 67,172,149,154,117,235, 47,207,133, 45,219,144,156,108, 38, 29,214, + 21, 39,162,154,201,212, 99, 1, 82,159, 65,128,175,195,134, 13, 81,228, 70, 4,226, 40, 86,249, 99, 62, 99,136,202,212,218, 27, + 39, 74,149,225,182,154,172, 91, 16,156,176,180,238,167,175, 51, 59,253, 76,145,188, 42, 71, 72,245,246, 68,126,157,246, 30,155, +192,138, 0, 18,231,131, 23,102,125, 46, 69, 66, 92, 53, 86,143,129,130, 58,116, 9, 65, 43,145, 6, 0, 57,218, 17, 75, 39,193, + 9,102,208,184,255,118, 72, 24, 34, 68,207,140,186,110, 80, 55,117,250,156,152, 57, 7, 7,158,190, 68,131,132, 72,130, 52, 95, + 30,182,119, 38,248, 55,207, 62,242,201, 82, 86, 30,206, 41,108,215,161,118, 79, 34,134, 76, 25, 40,112, 98,170,169,146, 80,134, +112, 28,189,105, 98, 17, 17, 33,127, 60, 74, 40,104, 41, 1,119, 12, 25, 59, 88,111, 26,101, 14, 35,175, 81,113,142,170,106,172, + 32,173,138,141, 39, 50, 48,210,118,144,232, 18, 57, 37,165, 77,102, 17, 91, 45, 51, 78,154,178,168, 59, 6,196, 98,178, 8,151, + 7, 1,214,171,133,151, 56, 68,207,167, 79, 45,105,192,193,122,131, 24,163, 90, 80, 56,135,133,133, 83,145, 28, 6, 0, 27,182, + 92,135,133,163, 95,198,252,186, 45, 88, 58,117, 4, 27,183, 94,143, 35, 79,127, 17,227,241, 8,253,194,197, 69, 80, 53, 13,138, +130, 48, 30, 15, 49,211,235,129,133, 49,174, 42,204, 13,122, 24,142,123, 0, 1,199, 23,151,193, 2,244,202, 18,149, 8,202,162, +244,108, 75, 1, 6, 74, 16,233,247, 6,152,157,157, 67,211,112, 11,102,163,172,214, 11, 75, 52,138, 28, 10,206,160,204, 54,215, +128, 67,109, 26,169,110, 30,157, 39,139,169,202, 83,172, 9,138,137, 48, 29,185,108, 67, 16, 75,166,162,196,100, 79, 48,170,100, +203,199,229,151,210, 34,181,135,236,143, 90,165,122,253,190,163,140,242, 72,206,229,196,171,136,244, 36, 70,109,128, 61, 69, 28, + 34, 31, 91, 98,186, 16,179,148, 8,196,170, 47, 9, 76,115,223,101,144, 54,120,231, 8,204,137, 57,111, 9, 83,217, 57,183,131, + 16,231, 20,166, 51,207,192,249, 99,179,214,228, 18, 19,156, 20,109,208, 13,211,229, 84, 79,154,218,195, 0, 56, 74,140,228, 24, + 76,192, 1, 78, 52,153,162, 4,187, 58, 19,180, 59,138, 25,176,103,204,187,228, 36,145, 2, 38,100,132,181,132,206,216,141,215, +197,178,136,190,131,206,220,119,195, 68,151,144,149, 59, 19, 80, 90,248,221, 44, 92, 39, 38,251,215,243,183,196,216,176,209,134, +110, 10,187,161,144, 18, 8,132, 0,155,255, 7, 20, 35,150, 31, 99,237,152,226,125, 97,136,249, 92,195,153,176,149, 12, 73,129, +137,232, 29,167,176,113, 19,153,140,122,210, 17, 64,107,243,204,158, 40,236,239, 5,193,137,180,136,112,138,232, 76,208, 95,167, +172,131,192,168, 14,205, 66, 54,192,116,146, 81, 72, 96, 28,171, 93,207, 98, 23,178, 32,214,209,157,118,220,132,208, 76, 76,171, + 1,153,154, 75,188,207,234, 95,156,162, 71, 33,136, 99, 32,146,206, 60, 50,233,203, 78,148, 0,163,172, 59,130, 76, 9, 76,192, + 62, 56,177, 14, 23, 22,126, 23, 52,193,169,139,160,110,188, 67,247,239, 95,145,213,208, 89, 82, 22,237, 29,189,102,229, 83,234, +236,204,141,105,235,242, 1, 92,224, 6,196,189, 79,226, 42,156, 32, 55,199, 64,137, 13,138,160, 40,137, 47,155,165, 64, 85, 2, + 42, 20,192,248,144,140, 25,248, 93, 4, 6,249,161,184,231,151,108, 32,153,184, 93, 50,212, 25,211, 68,218, 28,115, 48,243, 66, + 83,116,217,192,212,116, 59, 64, 94,166,197,129, 51,212,221, 7, 2, 34, 46,239,114, 11, 27,134,155,194, 72,142, 59, 56, 39,184, +136,166,180,230, 73, 98,250, 38,226,151, 63,247,163,135,159, 5, 55, 53,136,128,113, 85,163,223,235, 1, 10,193,207,244, 75, 84, + 85,133,185,249, 57,156, 60,113, 2,199, 15, 63,238, 95,188,211, 71, 81,174,217,130,199, 31,123, 4,115,243,235, 80, 55, 13,230, +215,109,195,169,147, 71, 0, 0,117,195,232,245, 6, 88, 88, 92,192,114, 85,249, 90,122, 93, 99,221, 96,222,215,207,203, 30,202, +162,193,184,105,208, 8, 97,105, 52,198,220,140,195,104, 56,130,144,195,218,185, 89, 52,228, 80,148, 37,182, 94,181, 33,102,199, + 57,208,218, 10,132, 76, 13, 39,188, 84,108, 83, 74,125,183,242, 4, 68, 18,148,221,174,152,136,193,230, 67,203,153,169, 45,163, +213,222, 67,166, 45, 46,176, 63, 41,237,120, 41,101, 17,202, 9,239, 97, 45, 5, 34,184, 51, 48, 37, 37, 50, 72,246,119, 11, 79, + 88, 72, 22,105,211, 70,107,211, 10, 75,208,153,226,174,143, 31, 92,236,201, 36, 11, 69,170,199,145, 80, 63,116,164,108,125, 75, + 25,160, 44,123, 22, 75,228,106,247, 51,133, 98,134, 75,215, 11,246,229, 1,103,202, 89,142, 76, 22,164, 4,183,200,246,182,180, + 4,106, 55,151,234, 6,169,181,115,184,252,190,180,176,237, 68, 75, 16, 3, 97, 75,186, 56,203, 31,200,136,173, 68, 10,175,107, +234,152,213,223, 13,243,194,146,195,156,139,132,198, 12,202, 14, 40, 94, 86,195,150, 20,153, 43, 18,231,226,207,155,172, 81,204, + 93, 53, 72,176, 24, 66, 32,161,213, 33, 97,106,231,100, 57, 37,148, 53,137,105, 80,144,194, 38,138, 28, 22,221,103,178, 78, 0, + 13, 45,204, 26, 79,153,170,114, 38, 90, 84, 66,219,254,203,148,218,227,178,245, 65, 57,185, 50,161, 32,121,113,157, 12,171, 92, + 38, 88,231, 48, 92,147,128,180,218, 14,153,244, 51,204, 77, 68, 69, 36,242,166, 40, 33,156,146, 8,108, 49,204, 51, 92,139,248, +236,132,178,165, 20,118, 33, 71, 46,173,167,224,208, 37, 57,244, 66,225,112,138, 8, 5, 33,246, 41, 82, 43, 66,142,101, 87, 24, +135,107,225, 5,152,164,212, 7, 75,141,162, 16, 69,225, 82, 59,162,169,111,115,116,230, 98, 88,238,121,150,206, 77, 19, 97,241, +128, 76,134,224,217,217,210,151,237, 56,136,168, 67,218,139,165,213, 61, 34,194,202,173, 9, 1, 11,181,250,207, 36,102,248,129, + 43, 38,246, 90, 45, 74, 20,156,122,134,237,183,234, 45, 49,139, 55,100, 34,177, 45, 21, 72,181,219,108,155, 17,219, 99, 30, 98, + 14,210, 7,234,124, 29,210, 48,152, 41, 16,108, 72, 33, 49, 39,166,115,143,160,123, 61, 92,140, 94, 18,123,217, 16, 67,167, 58, +116, 80, 43, 96, 49,247,180, 26,141, 48,170, 42, 20, 34,232,151,190,182,221, 8, 99, 92,141, 49, 59, 24,160,174,107, 44,156, 62, +141,170,105,208, 43,123,177,174, 52, 24, 0,189, 94, 15,203,139,167, 80, 22,132,178,236, 69, 88,105,208, 43, 48, 55,232,227,244, +226, 18, 74,114,232, 21, 14,235,102,102, 80, 42, 36, 58,232,245, 48, 55, 51,131, 97, 85, 97,185,170, 65,174,192,176,170, 65,206, +161, 44, 29,134, 85,141,193, 76, 15,253,126, 31,215, 94,179, 37, 11,160, 44,119, 65, 76, 73, 36,254, 41,182,231,214, 68,137,220, + 38,218,144,121,129, 90,162, 3, 89,245,132,227,155, 59, 45, 35, 72,181, 29, 49,109, 57,137,117, 27, 34,215,180, 1, 7,200,211, +100, 80,176, 80,110,170, 16,134, 90,114,200,178, 12, 55, 46, 18,207, 28,181,218,243,178,136, 33, 5,132, 36,201, 65,201, 4,249, +134, 2, 9, 27,224,176,198, 44,199, 41,175,113,134, 87,206,185,212, 27,170,137,112,138,150,115, 90,159, 46,245,148,137,248, 76, + 83, 55, 82, 24, 62,128,115,246,166, 78, 4,177,100,153,103, 54, 66,179, 93, 41, 49,147, 82,182,191,194,204,177,253, 83, 82, 11, +152, 71, 50,108,160,219, 38,253, 89,126, 75,114,186,129,200,135,204,249, 79,182,139, 6,103,234,218, 16,170, 13, 14, 45, 89, 45, + 23,152,136,142, 44,107,209, 74, 43, 36,214,108,179,174,157, 72,242, 21,211,241,144, 2, 46,154,210,180, 38, 22, 62, 37,151,101, +243,129, 32,232,203, 7,156, 65,232,150, 32, 44, 52,217,250,230, 29,128,225, 42, 91,248,223,212,159, 89,127,214,129, 48,173,245, +103,218,198,221, 70, 35,179, 18, 91, 27, 53,210,114,139,216,223,136, 21, 55, 45, 84,133,154, 85,171,172, 26,218,195,138,178,240, +136,139,237,138, 16, 49,229, 26,171, 91, 16,229, 68, 18,105,211, 41,242,161,253,218,161, 28, 21, 90,219, 68,252, 61,118,134,108, +155, 5,206, 19,117, 89,219, 42,150,123,212,208, 57,193, 44,104, 26,127,237, 78,187,118, 36, 43,193, 80,116,144, 9, 46,151, 84, + 91,103,109,107,107, 26,189,135,206, 35,183, 1,121,104, 83,195,204,166, 24,223, 65,246, 78,159,201,247,159, 57, 39,218,174,166, + 65, 79,188, 71,173,174, 80,180, 24,246, 33,163, 55,140,255, 88, 70, 53,101,160, 84, 83,151,182, 75, 79, 48,152,101,177,134, 15, +205,107,135,210, 98, 86,231, 53, 36,155, 1,112, 38, 46,145,156,126, 56, 65,168, 67, 87,218,120,106,253,137,235,197, 63,244,208, +102, 34, 42,164,192,180,178,174, 77,214,127,108, 30,124,225, 28,154,102, 12, 7, 96, 84, 85,168,235, 26, 78, 23,127, 89, 20, 24, +141,199, 40, 93, 1, 34,191,129,215,117, 13, 71, 2,162, 18, 39,142, 62,139,219,190,225,141,248,200,135, 62,128,158, 43,113,250, +244, 9,192,149,224,166,194,242,112, 4,114, 5, 70,117, 13, 17,198,218,249, 13, 96, 89,194,104, 92, 97,208,235, 97,208, 47,192, + 12,108,152,159, 71,111, 60,198,114, 85,107,173,211,197,252,210,185, 2,253,193, 44,214,175,157,207,200, 47,210, 22, 80, 17,201, + 30,124,124,192,129,117,169, 11, 92,164, 21,214,217, 23, 90, 38,117, 67, 34,203,155, 82,230,205,182,197,200, 66, 73, 54, 35,136, + 74, 68,148, 50,156,140, 61,237, 29,137,139,153,189, 75,125,189, 68, 74,216,227,172,134, 29,196, 69, 36, 8,142, 80,106, 25,131, + 17, 19,130, 35, 16,115,238, 0,132,114, 21, 24, 50, 68, 54,164,168, 48,157,187, 68,241,145, 32,140,147,148, 77,200, 56,141, 38, +182,106,197,227, 32,177,199,209,226,110,132,214, 53,103,179,195, 40,250,146,132, 90,242,146, 67,130,245,226,102, 65,121, 78,105, + 9,136,225, 60, 2,113, 80,196,212,209,205, 70,103,235,242,169,103,222, 20, 69, 66,155, 96, 64,226,168,229,132, 66,103,201, 20, +102,178, 32, 23, 44, 32, 35, 52, 98,154, 45,180,164,144, 58, 96, 92,187, 65,182,221,194,148,137,211,164, 86, 47, 17,155,117,231, + 29, 55,212,234,166, 12,168,132, 76,169, 66, 7, 66,153, 24, 34, 29,216, 16,227, 98, 64,147,103,201,237,243,181,251, 76, 44, 31, + 56,164,250,105,222,129, 22,239,189, 39, 92,230, 39,237, 20,177, 16, 66, 78, 76, 14, 37,160,200,214, 55,215, 20,136,144, 98,131, +201,188,209, 53,235,138, 1, 32,210, 68,104, 60,113, 10, 40, 75,204,162, 72,140,158,167, 4,237, 5,166, 12,170, 39, 9, 98, 65, +154,221,187,164, 37, 64,162,109, 89, 90,211,138,144,123, 8,248,195,117, 58,202,136,184, 68,212,110, 96,240,213,103,227,132, 5, +150,112,168,190, 65,133, 99,156, 3, 92,209,203, 90,171, 69, 25,242,142,104,130, 33, 36,166,166, 46,202,150,103, 86,135, 30, 2, + 32,227,129,133, 45, 33, 50, 95, 14, 28,215,162,131, 19, 1,107, 73,203,223,127, 86, 46, 1, 77, 32,218,233,164, 84,164, 40, 36, +199, 76, 9,114,213,146, 72, 44,190, 6, 4,220,215,212,101, 66,111, 43,131, 86,131,102, 12,167, 95, 22,147, 9,137, 97, 85,228, +209,176,129,121, 34,133,159, 76,155, 28,165,202, 96,128, 83,156,175,135, 16, 28,192, 30,238, 18, 2,136, 29,216,105,101,158, 18, + 68,225,197,198, 90,117,204,184,241,176,214,126,173,218, 83,171,199,166,241,108,200,180,129, 11, 26, 22,140, 69, 80,184, 34, 66, + 48,117,211,248, 53,220, 8, 42,140,177,249,234,107,241,153,143,125, 20,194,140, 74,106,128, 5, 92,143, 65, 68, 88, 59, 55,171, +181, 23,198,252,204, 12, 74, 7,212,117,157,181,236, 49, 75, 84,236, 90, 63, 55,139,165,113,141, 6, 64,197,128, 43, 28,250,131, + 89,204,207,175, 69,163, 81,161,176,104,164,107, 80,146, 88, 11, 75, 10, 64, 28, 11, 27, 65,165,141, 99,210,148,152,200, 28,137, + 7, 17,102, 38,202, 3,187,140,232, 21, 20,189,242, 77,144,208,142,232, 93,204,188,131, 56, 72, 90,232,228,219,230, 66,173,149, +130,162, 25,103, 81, 51, 41, 12,239,156,135,223,162, 98,154,217,157, 61, 36, 75,104,132,163, 0, 73, 32, 99,178,169,217,145,178, +139, 44, 99, 90, 12,115, 62,135,243, 16,219,177,156,238,190,181, 18,228,168, 45,160,100,234,174, 25,232,236, 16,157, 40,217, 62, +101, 18,160,241,228,189,212,130,149, 58, 8,136, 8,172,253,185, 54,227,182,237,160, 19,164, 37,103, 90,235, 36, 5,123, 20, 91, +215,148,204,150,114,218, 68, 72, 51,237, 99, 4,100,237, 99, 81,219, 42,219,236,114,116,131,162, 82, 28, 90,142,142,140,120, 84, + 98,125, 59,228,109,177,142,104,162,252, 34, 19,220, 9, 35,136,226,108,139, 99,128,253,253,198, 72, 83,217, 97, 45, 18,153,237, +168,176,173, 90, 98,154,234,200,246, 45, 68,175,233,137, 94,194,185, 8, 79,171,165,169,221,188, 17,168,116, 89,195, 0, 77, 19, +181, 9, 80,191,192, 21,110, 10,142,216,106, 91, 35,180,196,100, 36,181, 50, 74,114, 1,150,255,228, 4, 89, 74,160, 57,163, 65, +215,196, 40,243, 73, 12, 2, 8,169,111, 61, 40,185, 89, 86,126,162,176,114,150,110,136,238, 21,177,254,174,239,155, 40, 12, 22, +248, 73,142, 92,114,248,137,206, 30,223,119, 24,135, 62,161,133, 18, 2, 91,225,172,165, 45,181,219, 58, 0,141, 87,221,116, 20, + 85, 47, 19,252,237,247, 69, 9, 73, 43,229,119, 92,140, 99,111,154, 6,208,142, 4,239,132,149,188, 25, 74, 4, 28,217,149, 70, + 71, 35,173,118, 7, 1,187, 68,122,115,162, 92, 28,176,118,151, 56, 67,122, 14,129, 15,195, 66,128,162,136,134,247,211, 2,166, +212, 67, 15, 88,180, 36,161,157,165,200, 36,248, 30, 96,187, 80,135, 22,150,152, 33,249,236, 56,151,219, 12,117, 3,201,153, 26, +121,133, 71,114,193,148,172, 17, 46, 44, 82,237,223, 96, 39, 17,246,242,189,230,236, 29, 59,169,211,146, 40,152,167,205,252, 38, +139, 50,170, 86,162, 13,116, 73,223,196,188,204,166,255, 48, 58, 62, 17,244, 10,231,137, 21,149,111,113,107,234, 26, 36,130, 65, +175, 7,144,195,117,183,188, 28,167,143, 31,195,154, 77,155,240,236,137, 99, 40,136, 81,141,135, 88,187,118, 61,150,151,151,176, +176, 60,196,154,185, 89, 16, 57,148, 69,129,133,229, 33, 64, 14, 71,142,159,192,214,141, 27, 80, 22, 5, 10, 39, 24,244,123, 24, + 47, 15, 65,202,214,173, 26,193,186,217, 25,140,169,192,236,220, 60, 94,241,146,235,181, 70,237, 73, 27,209, 41, 69, 8, 38, 64, + 20, 6, 66, 50,121,189,135,118, 44, 60,102, 24,148,129, 72,167,145, 50,152, 97, 40,227, 70, 91,192,197,160,142,200, 74,185,154, +154,135,110,126, 62,219,113,177, 13, 37, 17, 94, 40,170,192, 37,226,154, 36,158, 3,200, 28,103, 74,207,180, 35,191, 57, 88, 49, + 28,197,223, 83, 13, 50, 64,130, 28,107,124,118, 23, 32, 50,100,173,184, 33, 58, 11, 34,249,210, 0, 75, 11,218,116, 10,139,230, + 29,202,209,217,183, 68, 18,194,182, 41, 46,106,226,234,207, 53, 49,200,129,173,149,154,112, 33,182, 9, 9,101,104, 89, 91,236, + 36,235,221, 15, 18,157, 28, 54, 9,189,223, 65, 32, 39,211, 10, 32, 27, 70, 79,122, 36,180,197, 82, 82,157, 58,246,128, 7, 78, + 13, 51,224, 82, 91, 85, 12,148, 66,192,152,149,188,172,142, 69,210,168,136,157, 40,210, 18,149,153,162,148,152,183,166,250,245, +237, 98, 54, 73, 45, 81,152,188,191, 91, 12,131,210,255, 93,139,129,228, 18,178, 69, 17, 66,208,189,141,209, 98,140,153, 18, 65, +112,140, 52,169,254, 22,203,133,146,117, 8, 73,187,182, 31, 90, 50,117,189, 57,155,168,100,144,110, 46,150, 21,224, 98,178, 52, + 9,131,148, 69,245, 61,105,145, 55, 39,216,155,161,195,133,141,252,104,250,100, 34,151,139, 24, 81,206, 12,176, 65,159,223,183, +253,123,197,234,230, 3,233, 45, 65, 6,236,131,112,223,175,171, 65, 12,165,122, 60,100, 66,187, 38, 10, 29, 25,228,199,175,127, +110,245,115,231, 32,188, 8,251, 86, 99, 34, 20,101,191,197, 21, 10,244,248,196,147,161,118, 97, 86, 81,206,192,124,247,221, 86, +234, 15, 67,237, 31, 41, 49,140,201, 42, 75,174,168, 24,249, 54,182, 13, 82,223,139,162,136, 93, 13, 48,196, 78, 95, 42, 51,165, +173, 86, 66,147,237, 15, 6,117,200,253, 45, 80, 90, 5,177, 88,206,138,208, 91, 18, 75, 14, 14, 34,246,207, 66, 50, 38,168, 8, + 90,236,211, 41,145,119,187, 78, 96, 53,227,197,194,195, 28, 55, 69,105, 87, 46, 56, 57,148, 80,126, 20,146,137,190,249, 0,211, + 49, 88,123, 30, 77,170, 7, 96,113,113, 25, 77,237,251,208, 11,173,151,129,253,131, 31, 14, 71, 40,139,196,180,119,206, 67,173, + 77, 85,227,208,167, 63,137,122,180,140, 23,191,242, 54,204,244, 10,124,231, 91,127, 2, 15,253,197,251,193,227, 33, 22, 30, 95, + 64,233, 60, 4,210, 40,131,114,113,121, 25,101,225,107,235,225,107,113, 52, 70, 51, 28,161,110, 24,107,102, 75,212, 34, 24,214, + 21,250,189, 30,202,254, 28,214,173,223,132,141, 27,215, 37, 7,174,168, 5, 50,230,163,100, 89, 86,210,118, 78,172,184, 8,206, +217,150, 49, 14,122,193,126,115,102,109, 29,113, 45, 96,145,130,151,205, 54,150,208,182, 97,220,156,152,168,218,108,142,225,231, + 45,209,107, 10,211, 49,219,124, 96,101, 77, 93,139,103, 23,106,236,102,123,138,210, 35,129, 0, 20, 25,208,134, 80, 67,121, 75, +132, 36, 42,183, 97,225, 43,111,195, 52, 58, 7,231,232,218,250,183,204, 19,109, 54,164, 65,139, 11,252,134, 80,100, 7, 25, 22, +187, 11,152, 42,164,209,141,221,182,134,181,217,254, 66,104,235, 4,145, 21,251, 33, 43, 6, 19,136,118,148,109,146,148,157,163, + 76,203, 3, 77, 63,130,180, 90, 11, 13,207,154,173,142,190,121,223, 91, 2,247, 81, 21, 47, 18,187,173,148,110,144, 64,240, 8, + 75,200,242, 89,219,237,218, 27, 83,146, 34,150, 24,160,184,176,192, 93,171,213, 47,239, 84, 75, 37, 15,161,169,202,148, 70,245, +220,223,151,176,199,177, 76, 84,168,189, 52, 70, 59,176,112, 32,150,172,229, 80, 44,109,205,181,121, 62,148,171,249,217,162,135, +169, 83, 35, 35,234,101,196,134, 84,115, 13,207, 91,196,160,102,134,120,156,244,252, 76,143,179,161, 1,146,105,107, 11, 74,137, + 89,139,154, 18,193, 66,157, 61, 91, 15,146,161, 21,100,102, 24,136,146, 53, 93,152, 73, 17, 85,222, 36, 30, 15,142, 82,155,226, + 10,179, 64,114,117,194,182,212, 8,197,253, 38,180,164,229, 28, 46,246, 18,176, 58,167,129, 50, 4, 82,203, 87, 12, 95, 34,176, + 62,202,138, 60,181,250,207,195,241, 40, 4, 42, 45,213, 31,106,151, 70,200,200,249, 72, 82, 87, 13, 62, 47,150, 90, 76,112,158, +136,185,146,169,203,133,236, 92,100,242, 89,138,233,188,176, 4, 97,129,160, 36,153,148, 12, 13,112, 44, 69, 41, 55, 83,157, 38, + 67,237, 11,241,170,180, 64,247, 51, 77,111, 16, 73, 89,189, 32,171, 21,167,122, 71,104,155,115, 96, 79,173,243, 17,160,164, 26, + 98, 10, 44,208,138,244, 44,249, 43, 72,110, 74, 98, 53, 43,196,115,248,169, 35, 16,110, 98,173,145,156,195,210,120,140, 53,179, + 3,148, 5, 97, 92, 85,232, 21, 5,198,149,215,107, 31,143, 70, 0, 8,213,120,140, 65,191,143,199, 63,255, 57, 16, 57,252,254, +111,252, 7, 20,101,137, 2,192,160,223,195,160,215,195,114,229,135,194, 48, 51,250,189, 18,227,170,130,192, 15,201, 88, 30,141, +193, 44,232,247, 11, 20, 13,163,110,252, 2,170, 26, 6,185, 2,131,153,121,124,211,235,111,139, 11,171, 45, 35, 24,162, 56,219, +218, 16, 54, 49, 75,174,200,154, 95,196,212,208, 92,128,152,225,137, 41, 43, 72, 4,231,252, 10, 36,201,207,232, 88,204, 70, 69, + 98, 53, 64, 84, 60,196,236,108, 45,169,233,148, 64,166, 38,199,208,178,152,201,190,186,124,216,131,157, 37,146, 45,181,140, 95, +150,152,190,137,234,175,155,145, 75,114,180, 20, 24,237,177,198,107,106,224, 17,242, 50,173,113,129,212, 20,197, 99,146, 99, 10, +218,244, 98, 55,225, 76, 56, 36,180,248, 5,228, 67, 97, 60, 73,153, 91,108,141, 49, 25,105, 96,168,115,155,132,102,226,162,144, +109, 69,216,149,141, 28,172, 65,199,132,166, 75, 47,135, 64,197,147,228, 82,139,132,216, 32,199,180, 44, 10, 56,107, 45,139, 74, +104,237, 77, 56,110, 17, 28,159,171,180, 2, 80,114, 41,227, 32,194,132,180, 43,183,135, 69, 41,159,134,152, 38,231, 71, 32,175, +191, 7, 36,207, 77,153,118,146,161, 21, 36,109,212, 91,251,136,141,234, 31, 73,166,188, 6, 35, 96, 67, 70,165, 46,163,173, 77, +219, 6, 37, 21, 29,131,122,160,115, 46, 83,178,203, 75,244, 18, 73,124, 86, 53,209,119,171,229, 94,145, 88,178, 46,144,201,218, + 0,101,199,111, 76,201, 39, 75,226,148, 63,227,138, 34, 31,118,212,234,165, 78, 8, 71, 98,200, 35,244,150, 27,241, 50, 22,142, +104, 65,100,193, 7, 46,149,213, 26, 32, 76,246,129,154,128, 51, 28,203,133,210,161,149,192, 85, 82, 28, 55,254,252,203,178,244, + 3,136, 96,157,108,232, 96, 56,131, 58, 93,144,112, 85, 14,140, 71,223, 85,251,193,206,155,136,100, 95,158, 16,217,154, 92,143, + 46,238, 65, 78,239, 79, 36,128,154,225, 79,161, 28, 34,153,180,108,242,135,194,222, 19,122,212, 79,249, 11,241, 81,164,110, 37, +129,160,228, 73, 80, 38,170, 9,217,250,164,232, 77, 34,141,180,153,166, 79, 73,160,246,180, 23,194,228, 12,146,120,242,148, 35, +230,129, 68,192, 33, 50, 15,110,158,141, 92,127,254,232, 57,244, 44, 34,181, 68, 65, 55,206, 88, 95, 52,113,111,112,138,207, 30, +121, 22, 77, 93,129,185, 65, 93, 87,177, 58, 58, 28,141,209, 43, 74,159,109, 43,140,211,159,219,128,122,120, 18,194,130,254,154, +121, 12, 6, 3, 84, 53,227,244,233,177, 95,108,250,206,204, 13, 6, 94,133, 72, 7, 6, 56, 17,148,206, 97,153, 25,131,178, 64, + 85,215,232,245,122, 32, 34, 44, 12,135,152,155, 25,160, 44, 29,158, 61,126, 18,189,178, 7,110,106,140,199,203, 56,122,236, 4, + 54,110, 88,155,193, 50, 98,153,183,166,221, 34,146,202, 44, 89, 46, 35, 31,155,118,160, 86,219, 71,116,194, 38,138,148,168,214, +229, 35,126,223,189, 65, 17, 74, 54,218, 36, 9,208, 13, 18,181, 20,218, 82, 67, 58,153,136,100,148, 45, 6,215,154,166,103, 8, + 72,218,203, 45,146,234,108, 48, 16,189,100,221, 0, 70, 6,115, 5, 72, 57,108, 34,162,187,187,173,241, 6,134,106,104,235,116, +182, 74,164,196, 54,162, 52,128, 67, 76,185, 41,240, 59, 38, 68, 64, 90,189,204,214, 1, 56,106,201,135, 76,244,242,183, 5,110, + 66,214, 39, 83, 85,181, 72, 3, 71, 24,165,191, 48, 55,201,137,217,128, 12, 33, 79,166,100,183,150, 36, 20, 56, 20,118,128, 74, + 6,189,155,126,157, 24,254,185,244,125,137,140,117, 74, 76,233,216,114,151, 79, 77,228,152, 56,132,172,131,125, 9,135, 90, 98, + 86, 20,196, 58, 82, 91, 30,133,247,222, 1,211, 20,106,194, 51,137,142,157,114,150, 58,209, 20, 49,129, 86, 31,125,206, 6, 48, +192,132,164,250,105, 30, 36, 72,156, 49, 35,237, 12,147,210,115, 16, 73, 19, 1, 67,199,130,216,119, 52, 59, 19, 73, 76,254, 8, +143,231, 78, 58, 57,115, 3,197, 74, 62, 91,195,102,246, 44, 57, 1,206,180,203, 40, 33, 86,215,190,136,121,126,156,101,238,105, + 38, 67,208,140,167, 72,124,211,234,166,135,240, 67,125, 89,167,206, 81,106, 73,137, 98, 67,206, 94,187, 51,106,116, 66,102, 45, +104,171,174,214,156, 45,244,220, 52,170,231,174,164,191, 32, 98,147, 54, 58, 78,168,174,209,219,144,108,126,134,182,177,197,242, + 67, 13,110,252,223, 29, 5, 37, 78, 45, 89, 56,179,159, 5, 52,219, 37, 14, 91,251,221,138,136, 89,224,156,176, 37, 16, 43,111, + 4, 70,219, 93, 82,112, 33, 98, 20, 67,163,240, 77, 99,238,145,174, 67, 78,123, 79,222,210,102,225, 93,141, 48, 28, 43,163, 81, +255,142, 80, 81, 18, 51, 54, 36,111,221,204,175,200,238,186, 50,169,234,100,135, 17,132,151,197,171,130,137, 78,178, 81,125,101, +109, 43, 9,155, 3, 36,181,137, 8,113,146,187,132, 25,142, 0,196,217,134, 22,210,241,250,198,190, 55,177, 17, 79,142, 27,148, + 5,150,133, 49, 28,213,152,233,123,182,100, 81,248,204,170, 30,157, 6, 64,152, 25,148,168, 26,198,226,169, 83,216,176,121, 11, +150,122, 37, 70,117,227, 55, 65,231,176, 60, 26,250,145,129, 86, 70, 49, 8,182,232,248, 64,102,193,184,174, 48, 59, 24,128, 89, + 48, 26,215, 94, 65,174, 44, 80, 53, 13, 92,221,224,216,241, 83, 88,191,118, 62,131,218,131, 90,156,173,205,196,105, 68, 1,253, + 16,153,224, 49,144,149,124, 53, 68,198, 80,219,166,224, 72, 39,166,224,185, 56,174,208,143,227,244,120,117, 32,170,177,165,150, +144,109,183, 10, 89,181,107,101,122,208, 64,193,101,237, 31, 78,235,230,182,236,147,106,136, 97, 35, 55,235,199,229,179, 53,210, +212, 44, 59, 36, 51,109,177,206,170, 93, 81,202, 62, 41, 40, 28, 42, 27,159,117,163, 17,155,193,144, 83,197, 56,137, 47, 47, 25, +102,115,123,120,144,149,156, 32,201,191, 99,184,172,153,236, 98,208,106,199,132,206, 87, 56, 14, 77,153,185, 68,177, 55, 61,145, +209,210,251, 68, 0, 56, 12, 96, 33, 81, 7, 79, 83,138, 97,134,165,107, 72,115,156, 5, 69, 98,160, 68, 78,132, 40, 74,159,107, + 7, 93, 56,152, 81,187, 72, 37,162, 0, 27,139, 76, 81, 28, 20,214,126,111,138,217,146,133,171,197, 74,239,134,250,109,144,193, + 21,180,102,129,217,174, 56,191,151,196, 32, 71, 50,205,211, 92,156,222,118, 7,147,164, 65, 56, 18, 56, 0,169,163, 36, 79, 38, +147, 60,110,132, 30,166, 12,134, 1,165, 65, 54, 54, 75,183, 76, 86, 50, 29, 39, 25,215,128,140,138, 12,166,115,147,162, 36,107, + 36, 4,114, 36,169, 98, 74, 95,186, 69, 89,178,182,172, 40, 20,227,140,124,190,145,152,109,197, 12,158,100, 76, 81,176, 41, 56, +244,240,125,192,197,206,143,148, 28,248, 18,158, 35, 81,117,194,124, 56, 82,152, 47,224,242, 9, 46, 58,223,192,197, 17,209,129, + 1,206,204,137, 31,224, 40,203,120,227,207, 25,103, 25,127, 39, 53, 11,129, 21, 49,117,228,209, 97, 59,145, 50, 34, 5,250, 61, +202,160, 50,138, 82,188, 78, 91,250,166, 54,137,155,118, 91,143,150,166,146,128, 51,129,169, 40, 57, 83,208, 18,190, 49,196,218, +248, 62,137,207,220,197, 36,178,254,189,244, 33,149,175,123, 4, 45,221,116,199, 12,219,154, 99, 86,138, 32,203,135, 36,213, 23, +245,249,166, 40,241,248, 11, 53, 69,125,219,118, 37,236,251, 22,153, 33, 96,213,199, 77,218,187, 86,211, 55,144, 23, 96,213,128, + 56,158,106,186, 25,225, 85, 86, 82,132, 48, 32,236,153,135,162, 89, 61, 87, 99,101,165,123,247, 52,174,198,217, 60,106,168,180, +160, 48,131,164, 1,161,209,127,171,112,237, 77, 47,195,145,167,158,192,141, 47,255, 90, 16,128,161, 66,242, 75,195,161, 50, 60, + 69,219,226, 42,136, 0,101, 81,162, 84,145, 5,209, 72,179,170,107,157, 22,212,160, 87,248,104,112,121, 92,129,133, 81, 87, 85, +166,104, 4,115,205,217,232,191,144, 49, 81, 94, 55,247,218,238,156, 36, 19, 57,100,233, 14, 73, 46, 55, 17, 81,200, 78,203,108, + 73, 90,218,210, 10, 25,184,109,106, 68,106, 90,145, 60, 91, 63,169,195,133,214,142,192,218, 13, 89, 92, 40,163, 56,202,213,163, + 34,251, 29,173,172, 79, 12,107, 85,210, 6,220, 18, 80,200,115, 24, 74,157,253,193,225, 18,181, 27,125, 16,219, 71, 60, 36, 10, +149, 52, 77,187,173, 0,145,181, 43,206,212,182, 96,201, 70,148,205, 80, 16,177, 51,149,146,243,139, 14, 10,100,155,225,162, 79, +200,199,103, 74,222, 16,171,151,203,146, 90, 94, 60, 25, 87, 51, 39,146,108,150, 52,155,169,125,118,220,170, 95, 86,166, 59,192, + 20, 41, 73, 18,209,146,219, 36,166,192,117,224, 0,199,230,211,206,196, 8,122,132, 88, 35,182, 51,217,193, 62, 48,226, 33, 72, + 34, 34, 17, 1, 9, 1, 0,251, 47, 49, 74, 92, 4, 85,253, 10,231, 10, 43,201,153,158, 54, 66, 93, 82,153,195,177,211,134,124, +184,203,196, 96,237,121,134, 89, 31, 96,117, 4,196,233, 86, 50,130,182,169,231, 6, 24, 73,207,164, 51,155, 36,118, 41, 76,159, + 12,239,155, 75,181,220, 4,231, 90, 4,131, 98,141, 84,136, 38,152, 16, 20, 59,143, 12, 72, 74,212,154, 1, 96, 42,237,148,214, + 84,210,247,144,216, 27,221, 46, 13, 4,105, 94,114, 97, 94, 61,153,245, 69,137,231, 65,148,173, 59, 43,109, 28, 70,139, 6,212, +213, 75, 35,187, 52,146,137, 2, 1,149, 50,132,201, 41,113, 55,188, 75,206,200, 69,219, 36, 37,188,115, 58, 10,188, 36, 0, 0, + 32, 0, 73, 68, 65, 84,161,134,207, 38, 0, 12, 74,151, 81,111, 29,201,199, 72,208,111, 23, 63, 27,157,245,123,193,175, 4,132, + 66, 68,208,112,147,246, 34,241,254,195, 78,117,131,109, 73,164,196, 92,247,113,163, 51,252, 62,149,108,142,242,208,136,153,191, + 29, 10, 37, 58,180,220, 7, 84, 72, 63,239,204,190, 23,190, 96,255, 68, 82,126,148,212,233,226,242, 9,209, 65, 61, 44,181,170, +113,246,247, 41, 35,234,210,122,200,123, 7,219,142,189,165,228, 99,213,128,226,203,202,118,244, 29, 71, 93,223,168,193,203, 86, +218,207,244, 42,178,209,225,209,122, 19,115,146,158, 36,146, 76,252, 97,113,113,217, 7, 14,141,143,114,234,198,183,156, 21,206, +161, 95, 22, 40,136, 80,150, 69,132,194,250,101,137,178,232,163,152,157,135, 48,112,232,211, 31,199,184,169,241,249, 79,126, 12, +227,170,194,203, 95,181, 3,227,186,194,134,181,107,245, 77,115,168,234,198, 75,198, 58,160, 44, 11, 12,250, 61,144,136, 23,187, +209, 40,221, 57,194,241,197, 37,204,246,122,145, 88,151, 74, 19,146, 79, 6,138, 44, 71,142,242,165,105,148, 31,162, 4,104, 24, +132, 32, 46,159, 96, 21, 54, 1,103,156,142, 29,202, 50, 89, 99, 74, 10, 70, 54,243,112, 83, 69,104,166, 8,186, 8,229, 26, 1, + 1, 89, 9, 66, 40,166,219, 33,114, 57, 38,184,149,147, 35, 97,197, 56,202,168,195, 45,148,195,210,102,186, 86,206,140,165,169, +248, 88,104, 65, 19, 35, 85, 26, 53,229, 51,114,147,133,227, 97, 20,183,140,164,177, 21,179,176,172,233, 48,120,130, 37, 35,228, +196, 8, 91, 82,237,212,190,131, 18,186, 61, 36, 10,132,167,241,161, 44, 57,201, 52,176,163,197, 8,183, 4,210,164,101,180, 90, +129, 32,145, 28,249,137, 63, 67,177,191,154, 68, 38,180, 30, 98,214, 26, 39, 80,229,239,123,220,140, 89, 50, 93,124,137,242,169, +152, 8, 30, 17,218,121, 76, 32, 33,176, 68, 73, 49,245, 85, 35,252, 98,158,141,207,168, 57,237, 5, 52, 89,167,181,161, 74, 10, +170, 36, 15, 54, 40,149, 33,185, 13,141, 74, 18, 77, 2, 75,150,240, 39, 62, 71,198,203,205, 62, 61, 49,202,105,226, 93, 65,220, +226, 91, 68,172, 9,173, 13, 67, 80, 36,100,196, 1,123,111,195,181,132,239,179,233,148, 32,228, 60,135, 48,242, 52,116,228,132, +163,166,161, 73,146,205, 46, 0, 1,133, 43,226,160,162,232, 48,212,171, 57, 87, 68, 97, 21,114,102,158, 67, 0, 50,201,229,142, +202, 12,244,137,229, 39,201,131,218,144, 64, 74,227, 29,116,200,128,227, 57, 74, 80,144, 53, 3, 89,180,131,136,117,104, 87,211, + 48,184,209, 49,172, 77,157,178,114, 32,118, 68, 89, 2, 50,195,195,222, 81, 44, 42, 32, 18, 57,180,153,141,169,181, 51, 8, 97, +184, 72, 97, 55,178,247,204,197,224, 76,217,245,225,190, 24, 71, 14,195,213,128,209, 52,136,226,109,118,202, 69, 91,116, 62,102, +185,108,245,197, 57,204, 40, 48, 67, 63, 16,107,189,118,147, 72, 91, 40,219,109,120, 5, 39,159, 34,130,232,192, 17,156,120,138, +174,194, 20,157,160,205,139,200,168,108, 57,119, 49, 14, 61,147, 73, 53, 21, 54, 2, 78, 28, 59,225, 33, 40,120,249, 63, 2,161, +225, 6,117, 93,107, 61,165,193,104, 52, 6,115,131,126, 89, 2, 68,168,235, 10, 11, 39,142,162,225, 6, 27,182,222,128,134, 5, + 47,189,237, 27, 12,190, 35, 24,142,198, 24, 85, 99,140,171, 58,182, 69, 48,252,139, 52,211,239,163, 17, 86, 38,188,175,217,215, +117,131,133,209, 40,190,126,161,143,211,207,219,181, 44,247,124, 59, 34,219,218,100, 7,107, 24,173,104,103,128,203,164,146, 45, +134, 69, 45, 6,178,150, 73, 73, 13, 66, 38,114,146,213, 67,219,210, 29,212,230, 42,133, 12,151,242,108, 27,121,139, 86,166, 23, +109,163, 11,203, 4, 55,127,177,226, 58, 73, 93, 56,135, 80,217,246,173, 74,171,218, 51, 85, 75, 88,226,191, 37, 93,123,125,233, +172, 88,106, 32,188,105, 28, 76, 98, 39,138, 33, 23,167,205, 88,226, 73,166,151, 34,113,200, 8,250, 68,213, 50, 78, 65, 26,101, +218, 95, 25, 76, 30,223,190, 22,196, 40, 33, 40,161,164, 4, 25, 70,242,146,221,180, 76,123, 90, 32, 40,146, 61, 79,194,196,108, +121,201,158,181,237, 85, 70,134,186, 80,198,189,227, 68,226,212,233, 86, 86,212, 40,238, 27, 20,200,119, 81,245,121, 42, 7, 46, +194,254,161,198, 14,110, 73,133, 74, 84, 49, 51,110,193,168,119,229,124,177, 40, 50,100,180, 54,108, 41, 50,246, 12, 35,100,237, + 12, 59, 37, 38,244, 9,199,251, 41,161,149, 44,105, 21,248,252, 52,100,165,105,221, 83, 32,113,197, 72, 59,188,236,110,146, 44, +103, 27,180,173,139,151,244,222,230, 51, 1,140, 78,122, 8,244, 97,203, 89,146,222, 99,147,210, 57,231,224,108, 79,186,146,195, +130,222,187,207, 56, 11,159, 25,234,181,123,135,238, 34,170, 22, 58, 57,156, 74,202, 22,133,255,221, 66, 29,149, 11, 35, 91,173, + 35,183, 42,117, 10,213,219, 57, 66,174,165,230,232,249,110,118,176, 10, 18,236, 30,158,101,244, 13, 65, 17,206, 59,239,166,110, +208, 52,141,255, 59,135,191,115,212,211,136,109,108,234, 44, 89, 19, 75, 7,167, 1,143, 18, 53, 77,247,149,237,112,119, 33, 8, + 50,219, 64,108,136,117, 9,225,240,221, 49,138,166, 4, 84, 80,133, 5, 82,128, 99,191,144, 79,162, 20, 35, 8,133, 92, 1,218, +143, 94,109, 49,207,132,109, 61, 90,157, 2, 27,117,247, 72, 40,230, 76, 73, 40,239,191, 73,176, 23,104, 50,235,130, 89,148,147, + 28, 21,214,246, 12, 59,136, 65,219, 54, 72, 7, 83,232, 57, 18,115, 75,228,134,236,123, 97, 90, 30, 82,231,163,136, 96,225,244, +162,214,147,201,179,212, 65, 24,143,125,125,189,212,197,219, 43,129,186,241,196, 57,144,111,145,224, 10,168,171, 17,158,125,250, + 49, 12,102,102,240,248,231, 30, 1, 1,248,252, 35,159, 0, 1,232,247,123,168, 71, 77, 28, 70, 32,194, 56,185,176, 16, 33, 38, + 17,160,170,106,172,157,155,135, 84,181, 31,104,239, 28,150,171, 10, 27,230,215,224,116,229,137, 30,253,126, 79, 51, 28,202,231, +239,138,117,193,212, 98,213, 6,232,135, 12,196, 76,217, 52,159,216,113,102,183,106,163, 75, 60, 65,143, 54, 3, 53,200,144,220, +178,246,193, 54,241,200,202,123,107,187, 80,222,114,225,107,242,118,236, 99,204,146, 69,114,162,178, 76,225,115,153, 56,173, 61, +168,102,210, 25,168, 82,129,149, 14, 13, 45,110, 25,231, 35,109,226,169,205, 44,245,213,195,204, 18,143,165, 49,237,237,204, 58, + 92,166,192, 24,241, 92, 41,193,241,161, 15, 56, 69,252,172,253,209,173,241,243, 18,102, 48,152,153,105,140, 56, 0, 36,100, 22, + 4, 2,113, 11,128, 96, 1, 59, 10, 50,243,217, 72,212, 28,166, 53,109,164,166,181, 85,178,225,174,148,156, 94, 62,201, 41,118, + 8,180,159, 81, 18,182, 73, 90,123,249, 12,119, 51, 44, 40, 8,231, 68,213, 62, 76,165,234, 83, 91, 47, 64,245,216,147, 2, 27, +199,231,149,230,215, 75,116,238,217,244, 0,178,104, 78, 54,217, 52,107,129,202, 90, 0, 67, 16, 73,166,149, 80, 34, 56,103, 54, + 90,151,171,203,181,230,149, 59,180,180,173,197,138, 31, 18,236,188, 0, 1,161, 61, 79, 35,146, 11, 57,239, 48,177,179,110, 61, +175, 34,172, 11, 21, 91, 49,163, 93,237,177,157,115,153,106, 92,204,150, 93, 75,103, 32, 4, 51, 68,190,215, 60, 78,201, 19, 52, + 65, 52, 74,133,167,156,107, 41, 43, 82, 62,226,216,103,252,105, 52,107,210,180,160,212, 70, 28, 7, 5, 39,129, 32,230, 38, 14, +191,137, 18,183,133, 75,101, 73, 50,194, 92,234,152, 27, 69,101, 61,161,206,255, 25,153,229, 68,102,142,186, 29,147,202,113, 63, + 72,202,143,169,123, 37,182,232,177,164,246, 27, 55,169, 55, 24,144, 27, 50, 12, 85,201, 36,131, 77,144, 21,249, 59,129, 59,192, + 42, 69,226, 64,196,121, 48, 38, 0, 49,197, 86,207,128,162,147, 16,202,188,161, 82, 90,157, 48,126, 55,242, 7,102,211,159,138, + 9, 40, 46,141,158,155,218, 20, 58,165, 49, 81,114,134,240,180, 22, 56,246, 83,222, 66,157,201,129,253, 66,182,222,195, 33,155, +203,237, 29,131, 74,144,186,164,162, 22,115, 78, 2, 78,159, 60,141,113,237,235,215, 2, 65,175, 40,177,204, 67, 52, 77,131,254, + 96,128,186,174, 32,240, 80,249, 76,191,143,209,104,140,185,217, 1, 54,109,187, 9, 71,190,244, 8,120, 48,131,151,221,246, 26, + 60,253,248, 33,156, 60,113, 12,142, 8,195,209,216,143, 38,212, 23,164,105, 26, 12,202, 18,245,104,236,181,221,105,140,126,191, +135,162, 40, 48, 28,143, 49,110, 24, 85,195, 88, 55, 59,139, 90,251,218,157,115, 40,203, 30, 54,110, 92, 23,235,137,177,255,156, +217,108,162, 86, 5, 44,180, 85,153, 94,243,168,180,102,180,187, 44,164, 68,105, 44,166,100, 67, 74,108,168,224,235,255,206, 76, +168, 10, 42, 82, 97,174,125,222, 56, 39,173,201,126,121,223, 53,199,217,229,158,228, 68, 26,192,145,132,201,112, 45, 18,211, 20, +190,101,158,151, 80,182,137,197,122,174, 81, 81,131, 76,226, 16,150, 71,156,103,255,105, 2, 93,128,140,109,227,115,248, 94,224, + 4,196,106,136,157, 75,206, 98,117, 39,178, 94,110,225,212,182, 66,198, 25, 11,155,156,188,213, 58,101, 59,157,216, 16, 62, 67, +141,207, 41,113,148,156,146, 73,131,206,187,248, 25,223, 78, 18, 19,158, 29, 69,114,171,125, 95,218,155,181,125, 7, 73,157,184, +152,110, 5,145,156, 0, 75, 10,115,199,158,121,211,233, 64, 25,137,141, 99,166,159,235,148,103, 19,118,114, 69, 61, 76, 8, 69, +182, 58, 28, 36, 99,185,219,254,125,138,165,193,228, 40,136,172, 64,147,245,226,148,149, 49,210, 90,111,165,248,148,143, 41,182, +208,126,186, 75,138,244,132,153,245,122,151,153, 57,102,169, 57,243,145,211, 92,108, 10,124, 0,100,186,237, 54,224,152, 54, 5, +176,173, 25, 21,118,125, 7,211,150,200,137,241, 30,186, 76,194,181,123,213, 56,202, 97, 95,171,141, 96,113, 35, 93,119,100,160, +255, 70, 91,192,188, 2, 96,174,139, 62, 57,113,209, 62, 11, 23,201,150, 68,200, 4,154,172,200, 85, 88, 19, 33,147, 46, 92, 17, +209, 95,231, 92,154,188, 9, 74, 67,138,204, 40,213,144,145, 55, 77, 29,255, 30,123,244,141, 80, 87,252,121,110,180,231, 62,105, + 75,216, 32, 83,135, 56, 71,228, 55,170, 37,162, 77, 0,213,142,132, 48, 98, 23,173,115, 13,156, 37, 50, 8,160,238,183,206,121, +242, 46, 69, 1, 53,153,168,171, 71,158,131,225, 87,121,137,140,118,125,187, 85, 15, 20, 29, 73, 10,133,183,152,181,206,110,136, + 45, 97, 81,115,224,146,172,248,229,235, 19,225,207,188,248,152, 71,201,109,146, 92, 32,207,217,241,120, 98, 4, 99,236, 53,112, + 24, 61,104, 4,228, 34, 99,217, 17, 10, 48,164,105,188, 4,108,221,168,100,107,129, 94, 89,128,149, 17, 63,211,239,193,145,195, +250,205, 91, 81,169,254,239,242,242, 49,204,111,220,140,211, 39,142,161, 26, 46,225,213,111,216,229,213,102,185,129, 43, 28,230, +103,103,209, 48,163, 87,122, 24,107, 92,215, 40,138, 2,133,214,123, 78, 46, 46, 97,118,208,143, 47,224,160, 87, 2,240, 67, 7, + 22, 70, 99,175, 66, 87,246, 48, 63, 55,171,114,170,109, 26,109,170,135,199,214, 51,251,242,155,121,213, 46,209,182,180,166,149, + 48, 45, 50,138,167,121,123,143,100,217, 64, 96,165,102, 37, 12,161,137,193, 47,177,254,101, 75, 30, 90,190, 97, 93, 63,196,169, +133, 26, 74, 64, 10,179,128,197, 12,150,144,150, 86, 84,156,108, 36,156, 70, 92,154,246,162,118,247,228,132,212,138,149,234, 52, + 67, 12, 68, 18,135, 36, 70,246,150, 36,152, 21, 74, 41,211,207, 15,181, 62,150,198, 16,120,130, 99,160, 68,214,202, 6,236,104, + 13, 60,124, 46, 11,218,255, 99,109,243,226, 64, 52, 3,155,169, 76,173,254, 85, 54,255, 29,122,241, 37, 5, 54, 96,210,251,173, +193,179,133, 36, 3, 4, 30,202, 14,148,106,255,210,170,101,135, 76,172,197,106,136,108, 98,182,147, 22, 37,181, 77,198, 0,165, +213, 18, 55, 65,101,148,156, 4,152, 56, 19, 50,225,208,167,195,242,100,134,104, 27,213, 48,131,246, 81, 70,152, 82,189,110,201, +133,142,243,121,164, 48,219,116,104,219,203, 87, 88, 22,236,138,145,155, 13, 29, 30, 46,175,215, 75,187,141, 78,196, 16, 6,242, + 0,208,101, 89, 94,154, 56,103, 62, 61,149, 49, 12,172, 67,100,106,187,217,180, 64, 51, 77,143, 18, 73, 47,100,238,147, 95,100, +198,172,166, 26,175,135,213,139, 52, 34,150,124, 59,168,139,208,121,129,162, 40,227,248,223,144,177, 7,146, 96,132,241,245, 68, + 67,223,246,196,231, 26, 52,193,249, 2, 70,230,208, 3,195, 62,252,142, 85,215,203,196, 36, 3, 57,142, 5, 77, 93,163,174, 27, + 84, 85,237,137,208,152,206, 35, 98,110, 98,176,224,200,151, 79,146, 14,135, 24,181,196, 0,173,135,243,180,237, 78, 65,207, 90, + 75,145, 86,239,194, 64,240,158,187,160,196,193,120,222, 78,255,219,150, 63,146,178, 95,212,197, 55,130, 57,193, 23,184,194,151, + 67, 74,180,198,132,144,233,201,204, 96, 40,153, 16,157, 50,208, 12,173,208, 44,211,122, 43,173,112,185,157, 18, 51,201, 87,206, +179,179,168, 84,197, 16,118, 81, 40,193,139, 83, 72, 28, 66,224, 34,220, 75, 81, 82,214,129,252,239, 56, 54, 12, 73, 15,195, 4, +120,123, 92,215, 62,219,169,189, 64, 76,207, 17,234,154, 1, 97, 28,121,230, 73,112, 53,194,104,236,176,112,228, 41, 12, 6, 51, + 40,202, 30,190,252,249,207,224,137,199, 31,195,168,170,176,118,205, 90, 84,227,177,207,206,123, 37,198, 85,141, 97, 85, 65, 64, +168,155, 38,146,237,106,102, 44, 44, 15, 65, 68,232,245, 6,168,234, 6, 84, 20,126,254,122,120,193,138, 82,231,117, 91, 49,127, + 51, 92, 7,118,214,181, 68,169,195, 12,246, 19, 35,131, 73,169, 79, 55,204,204,134,115,153, 34,244,228, 20, 44,155, 53,234, 94, +227,236,224, 22,179,155, 68,180,148,147,243, 34,211,111,203,105, 10,154,103, 44,167,169,123, 18,250, 67,109,123,173, 33,107,181, + 59,118,227, 16, 26,178, 67, 56, 90,157,226,148, 21, 9,162,212,162, 19,203,206, 78, 45,163, 97,164,102,232, 63,149,168,222, 37, + 26,116, 80,236, 7,141,130, 22,198, 65,184,150,246, 66, 28,251, 72,156,177,201,145, 57,121,239,192, 11,177,100,191, 21,212, 81, +168,213,156,110, 80,155, 80,243, 13,176, 60, 59, 91,190,240,170,140, 76,126,233,199,214,161, 48,140,195,190,139, 54, 72, 20,153, +144,205, 76, 34,142,100,230,232,217, 88, 79,166,242, 44,237, 32, 22,137,189,221, 70,183,222,204,125,151,172,165, 73, 50,233,145, + 51,193,240,217, 24, 85, 73,112,106,212,172,104,135, 1,217,230,150, 15,222,153,210, 56, 17,215, 77,148, 97,166,214, 84,251, 48, + 69, 80, 44,145, 9, 57,220,218,216, 50,132, 76,209,185,207,203,148, 97, 70,121,128,217, 61, 69,194, 64,237,220,234, 56,105,151, + 17,172, 82,154,178, 15, 98,150, 78, 65, 61, 15, 58,142, 52,192,238, 6, 50, 55, 53,121, 24, 30, 68, 12,214,194,126,194, 9,201, +115, 10,201,103, 72, 79,166, 84,103,136,166,217,176, 22, 50,138,138,166,110, 76, 73,167,159, 57,101,229,126, 86,130, 68,134,184, +216,121,246, 45,191, 21,148, 61,155,198, 19,228,170,186,246, 28,170, 68,244,241,218, 17, 66, 25, 79, 34, 76,172, 75, 36,107,219, +136, 18,208, 38,198, 36, 5,210, 8, 71,233,154,119,128,202, 70,103, 58,133,177,220,148, 20, 32,205,200,229,176,133,168,108,113, + 80,252, 76, 3,113,104, 82,217,207,204, 97,119, 44,148,181,123, 69,198, 97, 22, 62, 79, 97,173,179,105, 77,139, 10, 44, 33,171, + 15,132, 54,253, 59,244,239, 33,123, 54, 53, 58, 33, 78, 45, 64,132,148,157,104, 54, 79,166,221,133, 77,165, 52,157, 15,199,122, + 37, 43, 16, 71,129,212,162,217,138, 85, 4,139, 49,184,246,126, 18,128, 82, 91,202,250,101,225,219,203,156, 67,195, 13,230,103, + 6,216,114,205, 45, 24,204,204, 97,203,213,215, 2,101, 31,107, 54,109, 65,175,244, 83,220,142, 61,123, 24, 47,191,237, 53, 88, + 92, 90,192,220,204, 0, 77,211, 96, 84,213,202,180,244,109,109,142,128,217,193,192,215,128, 32,168, 89,191,154, 26, 53, 51,150, + 70,227,232, 84, 3, 89,197, 75, 19,230,186,190,100,178, 53,203,254, 15, 25, 88,128,122,196,180,240,196, 44, 34,132,240,118, 19, +110,181, 33, 89,214, 54, 66, 95,188,164,146, 70, 32,240, 49,114,221,255, 64,223, 98,180,178, 89,210,101, 31,251,131, 36, 66,164, + 60, 49, 34,217, 8,187,132, 54, 42, 34, 67,185,204, 59, 47,114,246,148,196,129, 9,145, 68, 23,200,147,100, 21, 28, 13,177, 44, + 38, 74,170,142, 38,134, 32,195,166,156, 64, 28, 29,122, 26,128, 3, 21,188,104, 98, 61, 92,226,255, 35,102,171,196,100,250,105, + 83,125, 79, 32, 42, 78,228,215,107, 28,243, 40,156,190, 56,253,221, 18, 75, 83,135, 8,167, 64, 79,251,158, 67, 86,151, 58, 40, +212,137,178,168, 42,168,126,166, 81,174, 11,186,213,130, 28, 41,105,223,239,201,247, 62,139,194,210,103,154, 54, 73, 43, 92, 69, + 81, 48, 37, 61,191, 88,213, 21, 35, 14,131, 73, 7, 43, 88, 89, 60,110,162,102,151, 77,198, 59, 67,154, 17, 54,114, 90, 33, 98, +160,182,124, 31,197,169,122,202, 11,211, 44,204,244,173, 83,171,141,156,114, 53, 72,106,117, 81, 96, 66, 74,139, 90,221, 30,198, +147,184, 86,187,154,107, 49,227,205, 88, 86,202,113,174, 40, 72, 67, 38,211, 11,191,227, 29, 58, 50, 88,215, 33,104, 13,248, 36, + 32, 62,203, 56,121,209,153,181, 71,113, 47, 45,202, 66,229, 97, 93,100,118,123, 2,155,194,234, 14,169, 62, 29, 51,207,148,201, +187,200,138,183,146,185,164,173,202,105,176, 76, 96,170, 23, 81, 28, 42,181,232,218, 54, 82,219, 6,157, 72,113, 77, 84,147,108, + 19,130,195, 20,202,162, 40,163,148,173,247, 17, 46,106,110, 8,145,233,232,165,201, 24,144,146, 34,166, 21,220,203,180,236,145, + 51,252, 67, 64,235, 5,156, 92, 22,236, 64,149, 78,227, 61, 34,151,142, 31,136,225,132, 72, 96, 12, 51,217, 75,112,254, 66,112, +107, 60,173,172,192, 90,138,145, 2,135,112, 86, 38,226,104, 17, 51,255, 91,108, 41, 44,133,161, 1,182,117,150,221,141, 41,155, + 61,165,193, 47,241,150,138, 85, 78, 50, 58,187, 70,137,201,104,142,102,173, 98,126,212,167,160, 87,150,104,154, 26,243,131, 1, + 70,227, 49,170,122,236,135,174,136,160,156,219,128,227, 79,126, 26, 69,217,195,194,210, 50, 94,243,134, 93,216,126,243, 45,248, +224,159,189, 15, 36,192, 51, 95, 58,132,195, 95,250, 2,250,189, 62,150,199,190,166, 94,150, 61,204, 14,250,168,235, 26,131, 94, +137,134, 25,101, 81,196, 81,123,131,210,143,101, 45,156,195,145,133, 69,108,219,176, 14, 39,135, 21,138, 94, 15, 69, 81, 98,118, +118,198,103, 98, 46,205, 44, 14,197, 62,150,233,140,104, 10,178,139,236, 23, 0,135,137,116,176,253,216,200,148,203,108,224, 22, + 56, 11,140, 92,217, 40,219,148,178,150,173,148,169, 5,137, 9, 10, 45,121, 81,166, 53,137,150,136,233,105, 98, 74,117,223, 24, + 93,147,180, 16,137,244,220,216,170,139,232,132, 59,255,236, 56,109,182,176,227, 34,131, 10, 21, 71,201, 76, 49,122,216,164,208, +180, 85,147,226,214,231,133,209,138,108,200,149,137, 59,146, 90,184, 66, 95,139,100,163, 63, 13, 98,160,199,229, 88, 71, 87,149, +190,224,148, 57,241, 69,242,250, 51,226,125,137, 44, 0,201, 21,195, 72,167, 6,186,194,194,143,108,228,118,124, 20,204, 58, 84, + 66,140, 70,180,100,105,182, 81,217, 50,138,102, 98,186,223,192, 6,125,137, 66, 40, 73,150,215,151, 83,147, 42,144,114,134, 18, + 75,191,157,221,218, 50, 9,193,140,172,157, 14, 86,156, 13, 0,204, 37,116, 8,171,177,188,145,195,134, 14,156,195, 35, 97,202, + 24,153,214, 59, 3,106, 83, 28,147,166, 3,131, 56,189,127,209, 39,187,150,242,102,139,219,145,184, 32,110,146,247,145,205, 23, +183,172, 58,202,185,158, 73,141, 52, 58, 5, 59, 54,171,112, 69,108, 75, 99, 70, 44, 9, 6,168,215,182,208,132,121, 9,206,160, +118,182, 68,193,204, 41, 73,114, 80, 72,156, 50,193, 28,178,228,195, 88,254, 12,106,129,206,148,170,195,250,119, 25, 71,130,136, + 98, 80,235, 91,227,200, 59,101, 29,155, 29, 71,126,235,180,199,208, 53, 97,133,148, 66,128,236,235,233, 77, 36,163, 89, 50, 91, + 82,190,243, 14,157,168,137,158,200, 19,209,196, 50,132,162, 44,117,202, 76, 12, 91, 39,102, 17, 46,130, 97,105,248,139,100,157, + 63,225,222,164, 89, 42,100,106,234,118, 48,140,164,128,146,243, 82, 41,105, 96, 6,145,172, 75,170, 4,113, 6,173, 39, 69, 31, + 51,164, 37,235,103,150,140,167, 22, 82,175, 0,133,100, 68, 76, 59,156,200,234,104, 68, 70, 11,155,177,144,211,129,252,124,240, +165, 73,241,162, 94,117, 11, 70,206, 98, 88,154, 96, 67,199,222,123, 34,148, 17, 46, 42,252, 20, 33,125,249, 26,205,134,150, 22, +142,227,170,235,191, 22, 60, 94,192,177, 35, 95,196,167, 63,246, 55,248,228,223,124, 16,235, 55, 95, 5, 1,225,196,201,147,216, +214,239,163, 87, 56, 85,193, 35,148,206,197,186, 76,165,208, 59, 0, 63,190,213, 17,102,250,125,212, 44, 88, 30, 87, 40, 11,135, +186, 97, 12,122, 5, 26, 16,138,178, 84,121, 88, 49,154,202, 18, 85,138,194,128,157, 48, 53,203,110,154, 17, 2,247, 51,106,125, +238,172,218,249, 17,226,146,164,241,237, 95, 26,191, 33,179,102,186, 97,238, 73,156, 2, 7, 50,125,242,134,237,108,170,171, 78, + 18,250, 18,235,178,156, 72, 81, 65,226, 19, 58, 14,212, 73,194, 84,108,251, 90,116,128, 97, 58, 17,115,166,227, 13, 51,200,193, + 51,211, 3,228,201, 89,192,152, 90,188,210, 12,108, 47, 96, 37, 73, 97, 43, 34, 55, 64, 24, 9, 89, 40,155,214,127,110,153,129, +153, 81,225, 76,161, 6,110, 56,173, 85,105,203,184, 38, 90,158, 93,155, 2, 21,120, 42, 10,253,188, 34, 5, 9,246,250, 76,201, +139, 84, 97, 42,228,211, 4, 23,181,180, 35,177, 49,100, 53,113,104, 31,231,141,202,177,158,140, 9,101,177, 72, 40,139,178, 90, +220,226, 34, 80,171,213, 43,144,138, 16, 21,247, 40, 4, 63, 42,247, 25,131,125,215, 30, 18, 99, 2, 35, 59,121,197,220,171,152, +113,146, 13,206, 87,204,203,243,242, 92,212,126,225,216, 98,149,139, 17, 37,169,209,192,160, 13, 90,242,137, 8, 53,173, 16, 73, + 9,134,119, 48,210,190,237, 18,164,164, 64,144,108,201, 48,239, 81,166, 76, 7, 46, 47, 97, 50,114, 7,146, 53,168,144,157,146, +150, 35,169,100,122,150,153,217, 19,192,180, 86, 27, 90,191, 66,171, 24, 55, 18,117, 50, 98,155, 20, 81, 38,193,148,207,141, 87, +209, 42,167, 8, 90,211,100,196,217,162,176, 61,247, 57, 1,218, 73, 88,181,177,196, 28,157, 65, 40,231, 37,161, 75,255, 57,129, +136,234,153,232,161,110,158, 72,114, 94,110, 22,170, 54,154,200,133, 68,173,210, 93,107, 46, 58,194, 88,101,211,198,203,202,107, +113, 74, 28, 12,170,116, 65,143,159, 73, 91, 65, 57,181,157,197,202, 39,153,207,182,129, 89,144,221, 38,192, 69,178,182, 41, 67, +181,231, 8,180, 53,227, 69,172,248,167, 41,253,132, 32, 68, 52,177, 9,247,197,206,201, 86,241, 25,145, 0,185,251, 47,110,101, +135,137,248, 99,107,104,169,190,153,106,103,134,244,134, 51, 4,205, 52, 33,142,213,170,213,139,165,192,228,108, 80, 3,101,194, +181,136,176,164,250,222, 36,166, 47,218,136,230,135,105, 70,202,222, 44,200,161, 17,193,112, 60,246,255,173, 26,224,145,128, 87, +244, 81, 22, 5, 6,179,115, 16, 42,192, 53, 99,241,228,113, 44, 46, 46,224,153, 47, 61,134,222, 96, 6,223,243,223,253, 4,234, +162,244,181,113,125, 57, 6,253, 1,234,170, 78,217,164, 58,152,165,209, 24,131, 94, 15,195,170,194,184,174,209,176, 96,195,220, + 44, 78, 15,199,168,106, 61,167,162,196, 11,182,108,138,189,150,137,188, 20, 72,129,156,228, 14, 37, 13, 95,136,176, 40,155,249, +246, 22,170, 14,144, 61,146,140,161, 71, 99, 57, 85,134, 2,195,219, 44,120, 59, 37,203,142, 68,146, 76, 95, 32, 65,157,108,234, + 90,220, 22, 54,209, 46, 4, 22,195, 3, 8,115, 5,140,144, 17, 49,167, 32, 66,213, 5, 41,178,153, 13,124, 27,127,143, 50,105, +214, 56, 6, 83,130,214, 66, 18, 72,162, 92, 26, 33,169, 25, 6,229, 53,105,201,111,138,129,230,194,116, 36,150, 76,125, 74, 40, + 7,224,115, 18, 25,199,243,138,194, 74,113, 77,152,222,232, 86,105, 43,150,106, 57,215,235, 79,207,133, 18, 82,144,137,210, 24, +116, 44,148,182,192, 38,112,208, 94,238,160,206,198,162,153, 10,183, 4, 95,194, 62,192,185, 32, 13,172,120, 14,101, 68,218,168, + 55, 96,166,136,137,161,109,103, 34,128,182, 93, 78,194,212,202, 40, 87, 25,167,168,145, 33,246, 77,213, 70, 18,163,192,199, 45, +238,129,180,178, 98, 91,231,117, 98,250,122,157,105,119,181, 12,193,212,226, 16, 55, 99, 73, 45,124, 81,232, 73,200,204, 6, 32, + 51, 73,139,205,242, 79, 67,149,162,138, 95, 40,115,218,182,219, 22,105, 88, 72, 75, 58, 38, 88,229,156, 85,232, 51, 92,211, 50, + 23, 25,236, 70,183, 59,206,107, 15, 12,106,231, 38, 71,146, 78,169,123, 72, 8,204,213, 43,251,178, 81,202,240,139,162, 0,156, + 33,109,121, 41,184,188,175,218, 64,203, 20, 9,114,234,244,200, 32,136, 81,243, 31,255, 63, 97,111,246, 99, 91,114,157,249,125, + 43, 98, 15,231,100,230, 29,107, 30, 72,170, 36,138, 20,233,150,186, 5,171,101,116, 75,110,184,219, 48, 32, 24, 48, 26,232,191, +200,127,134, 31,253,228,126,148, 31,236,110, 64,178,101,169, 53,176, 73,113,144, 72,113, 38,139, 44,214,112,235,142,121, 51,243, + 12,123,138,181,252, 16, 17, 43, 86,236,147, 37, 65, 40,136, 53,220,123, 51, 79,238, 29,177,134,239,251,125,102,135, 78,122,113, +113, 96, 13,132, 17,161, 74,114,185,114, 89,150,181, 29, 71, 46,124,254, 51,172, 80,147,211,174, 29, 82, 83, 37,157, 21,168, 57, + 87,196,150, 84, 32,102,214, 17,161,250, 3,171, 76, 87, 47, 58,106,105,163,229,189,171,104,196,184, 42,210, 42, 33,186,190, 44, +182,195,178, 17,196,184, 21,204,231,174, 68, 63, 65, 99,219,107,170,140,198,183,248,128,233,246,193, 23, 85,152, 68,185, 69,151, + 34, 56, 17,114,219,148, 49,183,166,136,153,172,100,103, 3,102,114,221, 71,144, 21,196,135, 20,209,103,224, 29,154, 10,100, 98, +158,211,142, 39,121,140,208,121, 31, 83,216,230, 9,125,211, 36, 63,227,130,174, 59, 3,201,140,143,127,254,247,120,253,221, 47, +225,112,220,195,123,135, 87,223,122, 15, 47, 30,255, 10,159,126,248, 11, 44,204,184,115,247, 62,158, 63,121,140,251,237, 5, 60, + 17, 30,191,120,142,182,105,177,132, 8,174, 97, 22,220,233, 59, 28,199, 17,222,197,172,246,139,237, 22, 83, 8,152,242, 94, 86, + 0,231, 61,218,174,199,221,187, 23, 6, 76,146, 58, 78, 54,151,175,209,169,101,101,122,254,124, 57,237, 47,157,172,108,127,171, + 90,171,140,173,236,165, 75, 38,133,207, 68,185,178, 49, 37,173,230,195,134, 60, 91,160, 64,154, 5, 92, 74,169,220, 25, 75, 5, +196,169, 1, 26,186, 51,206,185,232,160,245,183,160,251,246,245,228, 37,219,174,234, 69,153, 77,181,147, 52,181,168, 59,159, 34, +134, 49, 83, 17, 50, 83, 38, 49, 8,205, 84,113, 7,230, 58, 83,218,196, 6, 10,173,169,108,150,212, 40,149,199, 53,115, 8,180, +131,171,200, 45, 37,123,161,138, 19,101,169,246,166, 89,104, 86,167,195, 25, 10,133,165,218, 25, 52, 37, 86,161, 63, 90,192,105, +128,135, 41,232,237,207, 76,210,152, 57,119,196, 41, 31, 32,238, 32,139,166, 34, 31, 54,206, 48,244,117, 10,153,125,229,142,234, + 52, 59,219,153,231,115,135,179,168,179, 30, 67,219,159,177, 24,209,100, 1, 14,165,238,215,173,206,173, 85, 71,170, 32,167,252, + 53,221,166,173,163,122,102,239,108,174,196,103, 44, 5, 24,118,172, 26,211,181,170,206, 26,107, 95, 26, 25,177,137, 61,108,165, +118,221,173,243, 4,168, 76, 82, 99, 51, 66,104, 26, 3,131,225,114,201, 23, 60,172, 79,151,151, 91, 5, 53, 89,231, 71, 45,140, +132, 32, 9,139,161, 14, 15,215,184, 82, 20,185,245,231, 70, 39, 97, 55, 46,189,116, 46, 7, 61,229,103,137,234,252, 84, 73,106, +117,239, 75,142, 71, 70,193,146,163, 82, 44,218, 89,141,169,200, 44,145, 52,164, 73,105, 14,146,209, 24, 93,182, 54,193, 66, 32, + 84,251, 28,137,138,229,216,221,146,210,178,226, 82,200,106, 38, 44,102,172,238,178,214, 41, 63, 63, 76, 96,199,102,109, 35,230, +218,151,234,108,205,235, 15,230, 56, 33, 65,154, 84,136,132,146, 87, 79, 82,123, 95, 73,125,234,171,167,120, 69, 40, 3,185,219, +103, 95,217, 26,161,163,127,151, 20,234, 84,118, 15,246, 27, 94, 21, 5,214, 26,123,178,161,176, 47, 26, 81,149,140,164,158, 80, + 19,119,168, 47, 92, 22,193, 81,177,127, 57,114, 70, 53, 13,181, 85,108,218, 6, 33, 32, 2,104, 28,225, 48, 68,175,250,118,123, +129, 7,239,126, 9,215,143,126, 10,225, 3,120, 62,130,136,208,181, 61,158,126,252, 62,154,182,197,243,203, 23,248, 55,255,243, +127,192,159,254,241,127,196,187,159,127, 15, 31,127,248, 1,134,113, 68,215,117, 88,198, 17, 23,219, 45,118,199, 1, 77,211,224, + 56,198,105,192, 56,205,113,196,156, 60,171, 89,207, 64, 9,120,227,155, 54, 9,212,210, 40,218, 26,188, 88, 84, 41,201,112,202, +133,224,196,198,206,159,117, 85,121, 27,165,172,152,110, 64, 92,237, 68,144,244, 57,179,139,103,181,208,233,239, 21, 39, 88,108, + 16,142,235,137, 78,233, 58,117, 61, 32, 41,153,204,240,202, 93,178, 54, 90,191,173,237,190,215, 42, 94, 41, 61, 80,165,204,102, +161, 83, 21,244,186, 24, 53,190,110,113,201, 21,203, 37,250, 55, 39,222,229, 84, 39,189,252,184,192,117, 68,145,188,156, 58,216, +144,226, 31,203, 5, 90,188,174, 5, 32,195, 86, 29, 43,118,236, 12, 5,124,124,214, 24, 75, 47, 27,165,148,145,170,141, 41, 49, +231,227,193,151,173, 61,235,196, 68, 62, 85,158, 73,113, 26, 84,239, 96,234,220,201,211,106, 92,191,190, 84,202,250, 67,147,180, + 32,106, 43, 58, 28,142,120,246,236, 18, 87,215, 55,120,241,226, 18, 87, 87,215,216,221,236, 32,150,163,237,202,179,211,180, 13, +182,155, 13,206,207,207,113,113,113,142, 55,222,120, 13,175,191,254, 26,238,220,185,208,159, 7, 37, 43,158, 30, 96, 54,113, 81, + 80, 81,236, 86,184,143,162,210, 6,140, 47,186, 78,179,179, 77,137,152, 49,180, 78, 52,141,149,172, 20, 17, 41, 8,137,220,103, +110,253,197, 90,237, 42,160,206,103, 85, 12,178,138,201,229,219,127, 95,178,110,163,245,228, 34, 94,132, 57,218, 51,167, 15,230, +203, 9,138,167,133, 34, 96,115, 65,155,215,171,122,153,218,226, 80,202,196, 49, 63,191,222, 59,181,122, 21, 84, 3,157, 22, 68, +233, 35,114, 68, 58, 34,207,211,124, 90, 95, 38, 18, 11,102, 27,112, 4, 32,117,218,146, 68,114, 82,222, 11, 88, 27,118,202, 10, + 97,214, 14, 60,187,142, 74, 94, 69,230,213,179, 2,160,136,128, 32, 28, 53, 62,213,142,152, 52,232,202,101, 52,109,158,172,173, +172, 96,197, 95, 94, 1, 49,211,231,226, 42,175, 63, 37, 77, 81, 57, 55,172, 83,132, 83,136, 22, 23, 56, 80, 58,223, 75,113,226, + 98, 14, 9,193, 56, 20, 72,163,146,115, 38, 75,195, 76, 22, 77,187,198,123,192,246,113,197,186, 43, 74,146,163, 10,221,136, 82, + 33, 87,241, 73,107,204, 22, 41, 6, 80, 86, 91,115,141, 99, 37,220, 42, 26,145, 10, 34, 65, 85,250, 90, 29, 66, 82,132, 28,182, +114,202,223,215,176, 44,240, 41,244,100, 55, 12, 8,203, 2,114, 14,188, 44,120,254,242, 18, 51,189,143, 47,254, 55,255, 26, 55, + 95,255,191,225, 92,163,163,123, 34,141, 33,194,159,255,241,255,129, 16, 2,174, 94, 60,195, 52, 79,240,141, 71,227, 8,195,204, +218,225,181, 77,131,253,241,136,182,109,209, 54, 13, 14,227,140,190,107,112,185, 63,224,124,179, 5, 49, 41,176,102,211,117,154, +160, 36, 43,117,119,252,136,185,216, 60, 80,244,137,146, 4,139,101,124,149, 15, 66, 86,136, 76,124,217, 19,161, 72, 92,202,192, +142, 59,113,209, 44,101,151,118,191,217,231, 9,133,155,192,236,114,141,169,169,236,169,243, 11,150, 91,250, 52, 62, 97, 46,148, +164, 76,250,138,191, 29, 85,207,151,142, 22, 45,214,210, 12,198, 84, 63,135,219,233,101,235,230,167,218, 24,144,164,157, 51, 87, +184, 78, 61, 20,242,136, 60,123,110,201,250,211,217,248,211, 89, 1, 27, 76,166, 99, 22, 49,226,160,248, 25, 75,176,169,222, 72, +158, 96,210,125,152,200, 45,202,173,170,119, 19,219,176, 37,103,138,232,190,143,140,232,141, 57,166, 26,130, 78,169, 36, 82, 81, +254,232,100,206, 86, 34, 40, 73,117, 20, 88,129,131,108,241,149, 85,184, 47, 95, 94,227, 23,191,252, 16,159,124,242, 41,246,251, + 61,150,101, 65, 88,102, 44,203,140,176,204, 21, 35, 93,149,193,222,163,223,108,224,201, 99, 88,142, 56,238,143,120,250,244, 25, +136, 8, 63,254,241, 79,209,118, 29,186,126,131, 87, 30, 62,192,111,125,249, 55,240,214, 91,111,160,109, 26,156,226, 80, 87, 22, + 89, 59,122, 49,167,107,142,187,181,233,132, 86, 33, 87,237,130,205,207,195, 57,201,206,161,234, 60, 82,192, 86,142,161, 94,229, + 74,103,123, 21, 25,160, 23, 83,204, 58, 95,139,236, 44,120,139, 21,108,115,203,142, 21,235, 38,202,102,120,155, 66, 43,105,122, + 40, 63,159,166, 75,207, 43,155,252,247,229,145,115,154,103,175,147, 35,251, 60, 74,217, 59,123, 23,181, 32,113,148, 79, 41,202, +216, 60, 71,150, 44,169,174,153,114,107,145,171,156,169, 38,178,217,250,195, 99,193,160,197, 68, 8, 16,137,250,147,122,251,106, + 50, 49,242, 69,158, 46,243, 16, 2,230,121, 86,187, 39, 87, 0,175,220,161,187,212,181,199,127, 23, 82, 35,152,213,247,185, 0, +137, 73,161,206,226,141,110,105,126, 69,253,229,206,192,169, 36,117, 74,100, 39, 25, 2, 21,202, 34,145, 46, 57,251,137,164, 8, +228, 36, 53, 8, 89, 35,161, 79, 25,215,250, 33, 13,132,145,212, 84, 36,212,120,131, 74, 57,124,186,247,190,173, 89,135, 25,213, +202,202,239, 89,149, 6,107,170, 67, 46,235, 42,165,166,110, 51,180,235,119,183,169,238,201,190,199,100, 70,110, 98, 72,107,183, +244, 61,246,125, 79, 93,250, 56, 77,104, 83, 98,154,176, 36, 15, 99,202, 85,119, 17, 22, 51,236, 95,224,222, 43,111, 33, 8,176, +187,252, 4,109,215, 98,158, 70,244,155, 11, 44,211, 1,155,174,195, 97, 28,209,180, 45, 60, 1,125,215, 1,130,120, 49,231,106, + 51, 85,205,219,205,166,132, 10,136, 96, 14,140,198,121,173, 38, 1, 66,211,180,120,248,240, 94,122, 88,107,101,236,122, 45,130, +124,209,162, 48,191, 73, 49,164,174,218, 11, 59, 74, 52, 61, 46, 19, 21,209,113,114,124, 20, 92,218,161, 58,225,152, 62,198,146, +132, 44,201, 62,149, 45, 29,233,115, 47,157, 56,110,237, 86,116, 28,101,124,173, 98,148,177,108, 46, 36, 74,187,252,140, 93,163, +245, 41,177,234,127, 42,161,146,216, 66,141, 78,173,200, 98, 61,248,198, 76, 68,201, 31,110, 49,166,106, 5, 91, 77, 49,146, 29, +136,181, 88, 34,141,255,180, 83, 37, 93, 41,172,150,160,154, 47,159, 1,189,218, 41, 21, 75,138, 48,157, 72,223,181,128,201,227, + 94, 41,224,138, 76,163, 43,239,101, 22, 72, 74,229,143,206,226, 62, 89,157, 63, 85,162,165, 45, 32, 10, 3, 58, 69,161,150,202, +200, 57,135,113,156,240,195, 31,189,143, 95,126,240, 33,246,187,151, 24,135, 1,203, 50,167,195, 55, 30,204, 0,193,103, 43, 78, +218,231,103, 52, 47, 47,130,195,113,151,212,188, 62,249,166,227, 69, 19, 38, 96, 26, 27, 12,135, 3, 14,187, 27, 60,121,252, 4, +155,179, 51,124,238,221,183,241,149,223,250, 34,238, 92, 92,212,227,247,147, 28, 2,193, 63,101,130,211, 21,131,184,202, 85, 99, + 30,145,164,162,118,112,206, 96, 68, 43, 97,240,169, 44,183, 74,249,172, 64,135, 82,177, 62,196, 76,148,196,218, 59, 73, 78,154, + 40, 83, 73,105,115,162, 34, 63, 59,125, 72, 23,111, 86,136,103,145,173, 38,177,165,233,150,211, 61,186,232,110,219,106,105, 64, +208, 11,187, 68,168, 74, 21, 64,147,243,210,201,158,249,146,249, 23,198,205, 64,182,177, 42, 98, 85,152,119, 5, 26,193, 28,247, +229,172, 10,253,116, 70, 8, 39, 40, 88,154,184, 50,170, 64, 39,145, 24,202,178,182,172,205, 38,225,210, 90, 66,243, 37,239, 12, +167,158,165,172,150, 56, 89,215, 20,102, 83, 2, 18, 82, 45,229, 78, 49,208, 84,179, 18, 52, 5,145,204,103, 83,141,230,243, 10, +194, 85, 95,143,234,108,132, 77,212, 54,235,206, 93, 82, 60,120, 1,219, 81, 65,222,144, 81, 89, 36,113, 83, 19,187, 19,209,116, + 40, 59,109,163, 91, 46,199,162,134,172, 48,239, 6,221,150, 79, 90, 62,121,240,233, 86, 67,106, 93, 8, 88, 58, 80,101, 30,161, +213,127, 78,183,188,199,216,104,194, 39, 0, 0, 32, 0, 73, 68, 65, 84, 39,251,170,211, 63, 47,143,216, 54, 93,139,195, 97,194, + 28,150, 24,218, 34, 2,145,128,214, 3,221, 43,111, 99,120,241, 24,127,253,127,253,111,120,243, 11,191,141,143,126,254,119,104, +188,195, 91, 95,252, 93,252,252, 71,223, 68,215,180, 24,151,128,179, 77, 7, 17,193, 56, 69, 27,156, 48, 99, 73,227,198,121, 94, +176,105, 91,156,111,183,120,122,117,133,179,205, 6, 44, 64,227,125, 10,117,113,152,242, 94, 41,225, 97, 95,127,245,161,238,225, + 44,175, 30, 21,238,213,250,108, 75,188,105, 13,180, 46,133, 82, 28,207, 90,235,155,122,203,162,210, 60,109,148, 28, 33,113,210, + 51,194,212,169, 16,175, 96, 63,147, 47, 90,121,255,229,116,210,152,251,138, 57, 95,246,181,148, 10, 14, 50,233, 87,178,134,193, +224,182, 20, 53, 99,225,226, 58,224,225, 51,221, 75, 82, 53, 27,197,217, 72, 37, 2, 53,143,251,156, 9,130, 88,147,245,114, 87, +224,140,181, 79, 71,131,116,203,243,197,101, 84,206,169, 51, 47,235, 5, 90,253, 25, 84,246,219, 84,191, 47,228, 68,139,154,248, +147,224, 82, 0, 40, 12, 40, 25,193,242,122,133, 18, 63,222,217,133, 69,178, 70,114, 45, 83,169, 15,218, 88, 25,100, 26, 93,145, + 41, 51, 28,199,224,137,199, 79,158,227, 91,223,249, 1,118, 87,151,216,221, 92, 97, 94,102,112,136,100, 46, 2,208,182, 77,220, +255,133, 5,109,219, 34, 76, 3, 2, 7,140,156,163, 95, 81, 81,177,188, 58, 68,160, 64, 40, 13, 19,241, 13,154,174,199, 60,141, +152,166, 1,239, 79, 51, 62,249,228, 49, 94,123,237, 33,126,227,215,191,128, 55, 94,127, 85, 67, 69, 40,197, 8,219,195,161,186, +112,233,150, 59,127,237, 23,167,211, 95, 67,100,138, 51,163,206,214,244,187,213, 42, 81,232,212,234, 86,186,241, 34,178, 92, 81, +120, 87,179,198,202,147, 80,166, 64, 43, 96,201,250, 79, 41, 74,232,130,242,229, 36, 50, 75,116, 88,245,132,131, 68,227, 73,243, + 88, 56, 95, 40,121, 52, 47, 84,172, 89,132, 12, 62,161, 2,222,161,146, 74, 88, 58, 48,229,147,166, 81,246,103,217, 22, 72,215, + 38, 89, 0,150,131,127, 98, 56, 12,116,210,152, 71,206,185, 80, 46, 14,142,180, 47, 79, 29,250,178, 68,244,235,178, 44,152, 83, +148,118, 22,194,229,156,244, 24,165,154,181, 31, 37,190, 58, 23,192,130, 85, 67,104,195,119,242,171,168, 18,151,138,167,173,108, +247,172,246,202, 46,129,186,129, 16,227,191, 47, 43, 9, 38, 43,222, 21, 19, 39, 91,146,226,136, 69,227,188, 73,168,114, 78, 84, +198,220, 28, 97,235, 28,154,184, 99,112,122, 42, 9, 92,177,212,125,198,187,113,219,223,211,250,182, 61, 89, 26,114, 90,166,212, + 97, 36,100,254,220,245, 93,109,255,135, 13,141, 32,219,201, 25, 65, 7, 73, 78, 31, 51,165,172,177, 54,101,170, 87,211, 52,152, + 70, 96, 78, 9,109,115, 8,105,124, 19, 71,207,225,242, 25, 46,206,239, 64, 54, 15,211, 46, 39,160, 63,191,131, 39, 31,254, 16, +190,109,225,188, 67,195,132,205,230, 28,227,112, 64, 72, 23,251,249,102,131,253, 56, 41,154,146,211, 33,194, 44, 24,231,120,224, +229, 11,175,241, 13,142,211, 12,223,196, 3,173,105, 59,220,187,123, 81, 58, 45, 35, 70,170, 50,204,171, 28,102, 50,216, 86,170, + 40,115, 34, 81,229,235,170, 14,187, 88,199, 74,208,242,170,160,202,138,103,177,219,109,232,133, 14,196,113, 98,221,238,173, 66, + 39,196,146,193, 86,107, 27, 69,170, 82,237,156,146,149,171,104,189,174,201,187, 98, 5,233,136,138, 71,229,150,255,252,228,227, +170, 86, 60, 98, 2, 29,156, 17,178,153, 47, 96,245,155,230, 46,157,140, 32, 12,235,227,152, 74, 82,160,169,225,141,223, 57, 23, + 5,171, 37,151, 6, 35,157,228,116, 22,222,122,182,242, 89, 6,180, 72,125,241,192, 50,252,165,162,129,213, 22, 47, 19,174, 33, + 37,178,212,118, 95, 32,194,113, 28,240,181,111,124, 15, 79, 62,253, 8,215, 47, 47,209,182, 29,142,199, 61,194, 50,195,123,143, +174,241,184,217,221, 96, 30, 56, 78,163,230, 17,187,225, 8,248, 6, 8, 75, 44, 34, 37,192, 59, 66, 16,193,110, 92, 82,208,138, + 67,227, 72, 71,161,206,121,184,166, 65,211, 52,104, 26,134, 91, 22, 56, 34, 28,247, 30, 55, 87, 47,209,247, 27, 92,189,124,129, +143, 62,252, 4,119,239,222,193,123,191,254,121,124,241, 55,222, 67,211,120,227, 2,176, 43,184,218,186,231, 84,163,147,198,161, +176, 13,198, 74,216,155, 30, 24,114,137, 65, 96, 69, 41,196,233,215, 75,117,193, 18, 91, 47, 62,195, 6,178,212, 83, 27, 41,193, + 47,235,104, 38, 41, 30,101,178,235, 67,192, 16,215, 78,197,174, 64,108, 20,244,188,203,138,253,100, 93,245, 73,196,104, 45,152, + 46, 7, 24,165,145,109,132,208, 56,172, 77,122, 21, 36, 37,157, 39, 53,155, 95, 84,195,148,167, 87, 66,198,194,101, 44,164,102, +249,174, 83,217,124,241, 70, 91, 92,249,158, 74,206,133,201,116, 48,168,101,123,161,231,203,124,158, 39, 29,175,179,138,118,145, +138, 3,129,243, 62, 77,228,160,239,104,190, 39, 92,106,199, 53,201,206, 18, 11,104, 53, 56,164, 85,104,139,212,196, 60, 75,134, +203, 54, 58,169,210, 38,202,100,199, 25, 23, 11,145, 64, 66, 76, 13, 21,150, 8,254,201, 16, 48,157,108, 24,157, 8, 98, 83,150, + 51,225, 29,197,252, 15,102, 70, 67, 42, 88, 43,167,170, 21, 33, 41,202,174,162,127, 65,171,127,125, 52,245,144,249,140,235, 63, + 9,191,114, 58,154,156, 84,209, 38,189,141, 78, 71, 28, 57, 61,142, 12, 86,178,136, 61, 68,173, 38,178,226, 30, 87,233,157, 57, +189, 9,132,101,137,130, 39, 70,192,113,156, 32, 18,148, 46,214,117, 61,166,241,128,195,245, 21,134, 38,122,201,119,187, 43,144, +115,232,125,131,105,158,208,180, 29, 94,127,231,115,248,193,247,190,141,198, 55,152,150, 5,247,219, 22,114, 60, 2, 68, 24,150, + 5, 93,219,225, 48,140,177, 8,240, 30,129, 67,132,221,136, 96, 63, 77, 9,164,224,209,117, 61,218,110,147, 2, 58, 66,242,107, +218,238,184,150, 1, 57,212,223, 84, 25,251,164, 67, 44, 97, 74, 73, 40,118,199, 46,199,139, 58,163, 79,144, 42,159,247,228,136, + 35, 84, 59, 81,245,206, 27, 95,185,220,210, 95, 56, 87,215, 24,213, 90,198, 90,130,215, 7,233,109,130,142,236,113, 88,139, 80, +196, 42,105,111,239,239, 79,159, 33, 67, 17,163, 2,177,201, 21, 48, 75, 73,153,210,148, 50,107, 93, 75,135, 79,125,249,215,242, +182, 44,104,229,149, 87, 62, 91,182, 42,162,151, 81,244,231,125,173,216,145,222, 26, 63,171, 18,120,209, 8,200,147,239, 58,139, +193, 56, 95, 90,171,221,159,241,189, 22, 88, 73,233,222,242, 90,197, 57,135,191,249,250,119,241,233,163,143,241,252,201,167, 96, +102,204,211,136,121, 26, 32,160,136, 68, 6, 35, 68,132, 29, 24,132, 37, 48,166,121,193, 52,141,240,142,176,105, 28,198,121,193, +245, 48,199,209, 33,226,159,211,248, 6,155,109,143,205,102,139,187, 15, 31,162,109, 58, 44,243,136,105, 28,177, 76, 35,120,153, +193, 68,112, 77, 11,223,180,240, 77,147, 4, 83, 11,134,227, 30,243, 52, 96,127, 56,226,231,239,255, 10, 95,253,173, 47,226, 11, + 95,120, 55, 77,111, 50, 47, 3,229,221, 41,114,237,147,135, 66,108, 70,245,173,149, 36, 76,211, 0,229, 21,144,139,205,137,220, + 22, 64,249,153,216, 28,211,127, 75,173,125,112, 89, 56,150,133,125,110,173, 11,202,226,188, 26,180, 20,187,220, 16, 35, 65, 83, + 7, 74, 34,122,190,105,247,237,200, 88,175,156,185, 32, 10, 75,221,173,203, 15,170, 69,129, 85, 65, 97,238, 10,139, 97, 46,107, +137,149, 80,142, 87,107,219,196,169,200, 41,133, 81,229, 94,246,239,156,194, 84,114,162,221,218, 78, 89,128, 50, 5,253, 58,142, + 35, 66,242,207, 87, 52,185, 36, 58,115,228, 10, 31, 69, 36,190, 27, 73,235,163,220,117, 50, 5,221,106,175, 66,197,120,111,176, +212,246,231,111,155,203,213,236, 57,137,216, 92, 18,201,105,201,164,225, 90, 37,172,134,211,148,129,210, 10, 52, 36,246, 67, 14, +208,170,242, 80,210,196, 66,117, 54,185,241,128,160, 33, 37, 94, 25, 51, 63,173,163, 61,211, 5,225,204,248,210, 94,251,105, 57, + 20, 67, 12,160, 96,144,172,244, 91,143,210,179,223,174,136, 66,201,236,236,163,122,190, 80,228,168,140,177,136, 12,123, 9,218, + 9, 23,141, 93,188,120,156, 57,120, 35,238,208,192, 74,210,131, 49,165, 10, 15, 16,156,111,123,112, 88,224, 4,113,223,222,109, + 48, 28,102,188,254,246,187, 24, 14, 59,188,121,239, 33,158,126,242, 33, 14,135, 35,238,156,109,225,155, 6,194, 1, 63,251,209, + 63,224,222,197, 93, 92,222, 92,163,109, 60, 14,195,128, 97,158,241,202,189,251,184, 57, 28,128, 70,176, 44,115, 12,111,233, 58, +220, 28,143,112, 14,184,220, 31,176,237, 55, 24, 67, 20,110,121,215, 96,179,217, 36,145, 28,170, 96, 22, 80,125, 32,185,218,166, + 90,104,220,178,218, 13, 86,142, 1, 42,208, 24, 19,223,172,214,179,147,151,182,198,168, 20, 32, 66, 98,154,151,140,193,149,240, +162,240,183,109,199, 43,230,199, 84,167,171,213,130, 71, 90,183, 34,116,251, 1,185, 10,246, 58,249, 79,171,177,101,101,167, 66, + 37, 64,116, 10, 76,146,202,246,164,190, 86,203, 67, 55,251,172,127,116, 90,101,132, 90, 46,255,161, 11,235,174,177,216,190, 68, +227, 45,173, 13,205,242, 24,114, 13,194, 65, 20,140,196,194,201,205,129,211,164,190, 53,128, 73, 76, 97,100,187,199,234, 30, 43, + 9, 89, 44,140,176, 4,252, 63,127,245, 13,124,242,193,207,177, 44, 51,166,113, 80, 95,243, 60, 28,225,132,209,147, 96, 92, 56, +165, 11, 6,204,227,132,101,160, 20,100, 68, 56, 28, 7, 60,155, 22,184,132,176, 60,191,184,139,139,187,247,208, 54, 45,100, 30, + 48, 29,246,152,110, 46,241,244,230, 69,236,212,155, 78, 17,151,228,163, 11,100, 89, 22, 44,129,225,198, 49,142,128,247, 30,222, + 59, 52,109,139,113, 28, 48, 14,103,248,214,183,143,248,197, 7, 31,227,247,127,239,119,112,126,118,102,131,100,203,116,105,181, +214, 17,147, 93, 64,171,226,184, 38,236,165,247, 37, 1,142,148, 70,166,233,116,164,153, 8,197,115, 72, 37, 37, 17, 53,116,135, +178,197, 68,156,158,123,206, 21,245,111,214, 48,208,170, 99,210, 36, 51,181,109, 82,149,242,231,114,234, 90,158,130, 50, 27,146, +157, 43,162,238,236, 12, 74, 38, 59, 17, 20,202,156, 25,119,173,253, 4, 5,223,108, 71,206,100, 46, 73, 87, 57,111,236, 84,158, + 51,231, 71, 74,254,131,138,239, 4, 5,254,149,109,121, 33,238,201, 5, 57, 69, 46, 1,161,192,234, 93,183, 10,247,176, 44,154, +185,145, 71,214, 25,161,205, 57,102,214,217, 80, 29,170,107,188, 4,165,202, 30,122, 5, 57,165,200, 99,202, 66,217,245,164,196, +164, 81,150,160, 22, 99,183, 21,210,166, 35, 58,128,184,228, 39,172, 0,110,217,165,144, 53, 52,222,187,248, 57, 72, 40, 15, 73, +133,138, 78,226,190, 16,215, 87, 46, 17,229,114, 86, 8,145, 67, 83,208,147, 84,123, 68,193,160, 36,190,145, 50,125,210,255, 45, +100, 51,207,139, 88,135,156, 97,197,165,104,211,220,133, 16,213,208, 9,192, 36,188,230,221,101,174, 70,245,197, 19, 5, 7, 84, +163,138,147,226,186, 0, 46,224,138, 96, 67,119,201,101,113,139, 41, 4,132, 36,144, 3, 4,157,143, 47,235, 34,130,113, 89,208, + 30,175, 49, 46, 1, 47,158, 60,194,221,251,111, 98,127,243, 44, 30, 52,124,128, 8, 48, 77, 19,186,182, 69,215,118,184, 62,236, +177,233, 58, 12,211,132,133, 25,155,174,199, 28, 22,180, 77,131,198, 59,140,243, 28,119,240,243, 4, 17,194, 48,205,104,188,199, +110,156,112,231,108,139, 5, 14,190,105,240,218, 43,247,235,171, 43,166,213, 20,104, 10, 21,155,147,253,231,150,116,166,160, 15, +123,180, 81, 29,229,105, 93, 1,118, 39,148,139, 34, 97,209,113,157,100, 65,150,105,120, 42, 81,164,113, 25,137, 40, 40,179, 12, +157,179,157, 37,253, 60,157,161, 72,229,206,202,213, 86,111, 83,229,186,213,207,246,212,206, 83,241,177,205,222,146, 86,152, 74, + 82, 91,164, 84, 40,201,252, 18,171,141,196, 78, 68, 12, 78, 56, 59, 0,170, 3, 29,183,217,169, 12,176, 36,199,144, 74,121,230, +105, 53,162, 32, 90, 21, 57,102,103, 70, 48,202,228, 36,168, 57, 65,231, 73, 41,160,181, 83, 18, 51,205,160,162,150,163, 21, 91, + 28,214, 34,152,214, 49, 31,127,242, 20,223,254,246,247,240,244,211,143,147, 16,105, 1,132, 17,134, 1,227, 60,163, 33,198, 2, + 7, 33,143,195,120, 64, 71, 64,235, 8,155,206,225,229,113,194,113, 28, 83,204,176,195, 91,111,189,131, 87,223,120, 27,187,203, +167,216, 95, 62,199,225,233, 39,241,231,215, 52,113,111,190, 57,131,243,145,170,215,180,125, 28,149,114,208, 41,199, 18, 66,156, +196, 4, 78,193, 35, 12, 80, 7, 89, 2,248,120,140,239,224,241,136,121,158,240, 39,127,122,133, 47,125,233, 61,124,229,203, 95, + 68,227,188, 9, 55, 66,133, 51, 45,127, 47, 6,160,101,167, 66,214,168,110,156, 29,118,139, 77,197,170,132,202,219,111, 93,133, + 5, 84, 83,124,180, 84,118,183, 34,134, 63,158,158, 86, 39, 69,176,105,215, 83,218,176, 56,203, 37,131,132, 52, 82, 54,202,126, +206,127,166, 3,124,226,176,231, 99, 65,156,168, 69, 83, 56, 1,105,140,181, 77,147,219, 36,175,236,214, 78, 19, 49,113,187,245, +106, 32,255,183, 90, 48,153,137, 34,155, 88, 91,202, 2, 48,237,208,141,120, 54,119,170,185,155, 38, 15,128, 19,127,234,150, 46, +125,137,162,184,108,131,203,249, 9, 57,193, 83, 89,247, 39, 86,194,186,176,181, 63,133, 28, 3,203,134, 8,168,205,160,141,134, +149,154,182, 74,134,166,105,177, 3,121,178, 44,236, 76,148,182,153, 90,167,226, 44,243,236, 41,209, 38, 51,137,146, 60, 25,104, +148,168,149, 53, 36, 97,106,158,176, 49,138, 56,207,129,208,208,138, 8, 71,137, 21, 42,100,164,179, 48, 73, 91, 82, 34, 3,234, +148, 48,164,100, 42,135,219,211, 24, 86, 68, 50, 35, 36,128, 1,173,192,116, 50, 58,142, 55, 72, 88,231, 76, 26,146,172, 39,187, +164, 21, 52,204, 1, 71,201, 63, 39,204,112, 77,131,101,142,182,155, 12,111, 9, 33,104, 22,250,118,179, 1,252, 6,141,204,144, +101,192,225,120,141,144, 58,250,174,105,176,217,244, 88,120, 1, 51, 99, 63, 12, 96,102,180,222, 99,211,247,177,226, 98, 65,215, +120, 28,151, 0, 67, 32, 7,115,244, 68,118, 77, 83, 44,100,105, 12,211,180, 45,222,124,227,161,201, 16, 70,241,134, 59, 35, 90, + 65, 9, 20,112,182,147,174,140, 97,164, 2,143, 34,172,146,122,125,178, 74,214, 42,157, 13, 37,209, 28,213, 24, 96, 3, 87,185, +237, 34,163, 60, 41,112,117,215,232,212,122,232,204, 62,206, 24, 85, 63, 99,124,126,226, 59,182,135, 9,213,190, 32, 77, 60, 50, + 47,238,122,153, 80,245,177, 14, 64,144,202, 43,158, 49,242,178,170, 20,201,172,120,124,134,120,224,150,168, 90,123,248, 87,233, + 89,181,168,170,234,212,113,203,104,132,106,255,181,168,191,152, 78, 39, 6, 70,123, 65, 38,104,130,232,118,133,187,220,182,154, + 72, 13,161, 35,194,119,127,240, 62,126,240,189,239, 98,191,223, 65,132,177, 76, 35,150,105,192, 52, 47, 32, 4,116,109,135, 97, + 94, 16,198, 3, 90, 2,182, 36,104, 60,225, 48,206, 56, 76, 51,188, 44,120,227,243, 95,196,171,175,191,133,171,231,143,241,236, +163, 95,226, 87,207, 62, 69,187, 61, 71,187, 57, 67,127,247, 1,124,211,160,237,122, 64,128,227,113, 15,223,180, 90, 92,180,222, +129,231, 25, 28,102, 44,211,152,124,194, 94,117, 35,204, 49,100,201,247, 61,218,174, 69,183,217,160,235,122, 0,130,121,158,240, +179,247,127,133,199, 79, 46,241, 7,255,234,119,113,182,221, 88, 15,198,186,204,197,237,144,121, 90,189, 69,137,133, 64, 98,252, +251,145,135, 94,139,242,156,249,179,196,164,120, 73,245,172,146,241,185, 59, 29,111, 59,163,117,129, 42,173,133,169, 94, 95, 81, + 61, 9,226,192,202, 7,176,194, 71, 73, 62,238,152, 3, 94,224, 60,218,105, 67, 16,192,229, 66, 55, 49,120,130, 66,226,204,239, + 44,170, 11,200,213,202,125,187,124, 35,210, 78,149, 42,145, 53,233, 58,138,170, 29,186, 47, 50,175,212,144,132, 32,230,121, 55, +192, 33,225, 21,199, 61,169,220, 23,115,161, 75,236,108,115, 78,122, 85,160,211,106,226,168,133, 19, 27,230,124, 14, 23,139,141, +135,203,252, 15, 58, 13,212,115, 46,175,234, 88, 87,190, 86,243,101,234, 69,227,112,145,202,130,200,233,251, 14, 70, 16,167,141, + 68, 22, 46,166, 70,147,164,216,242,178,150, 32,218, 23,157, 10,149,245, 60, 72, 42,253, 70, 43, 63, 22,144,119, 70,178, 38,167, + 17,144,121, 36,168,163,220,250,165, 81,213,123, 18, 29, 72,246,220,225,196, 10, 90,211,232, 76,232,131,165,154,229,113,113,254, + 40,106,127,175, 24,241, 71,230, 78,219,196, 34, 81,132, 97,166,178,229,183, 39,112,162,185, 9,163, 73, 29,125,231, 27,204, 97, +134, 39,192, 99,193, 56, 31,227, 3, 48, 29,192, 97, 70,223,245,104,156,139,150, 9, 22,156,111,122,140,243,140,187,119,238,224, +229,110,135,251,231, 23, 56,142, 3, 26,239,112,121,189,195,118,179,193,113,138,251,196, 56, 21,224,244,208, 56, 52, 4,236,166, + 17,178, 44,232, 55,109, 12,129,217,110,234, 66, 40,103,194,179, 91,157, 65, 82,242, 28,146, 53,167,252,125, 81,233, 22,225, 83, + 61, 2,175,109, 65,182,194, 54,158,210,226,119, 75, 64, 4,170,186,146, 83,238,192,233,223, 58,227, 88,200,207, 66,137,221, 94, +145,207,254, 49, 9,123,254, 25,167, 2,167,124, 9, 25, 55, 89, 4, 58, 39, 23,186, 80,125,225,154,116,166, 56,122, 55, 98, 49, +183, 18,156,113,233,216,179,106, 91,176,178,162,153,247,132,112,170,229,208,231, 84,140, 53, 74, 47,123, 42,130,195,149,163,205, + 56,224,226,180,140, 74, 2, 91,149,111, 47, 0, 28, 39, 87,129,117,137,172,169,142, 4, 51,253,173,245, 25, 68,248,206,247,126, +130,239,127,247,187,152,198, 1,224,128,233,176,195, 56, 47, 8, 97, 65,211,120,128,129,229,184, 7, 66,192, 52, 77,232, 55, 49, + 70,248,217,205, 4,226, 5,191,246,155, 95, 69,215,245,248,248,167,223,199,245,147, 79,240,224,245,183,241,234, 23,126, 19,251, +151,151,104,186, 22,155,237, 57,198,113,192, 60, 79, 24,142, 7, 16, 51,136, 23,176, 4, 44,211,148, 14,108, 96,226,152, 34,151, +109,110,154,228,229,115, 86,183,199, 48, 79,112,137,251,208, 52, 45,186,174, 67,211,118,232,251, 13,194, 50,227,207,255,203, 55, +240, 47,255,219,223,198,107,175, 62,172,118,217,194, 2, 78,201, 94,149,160, 71,110,177,192, 86, 97, 80,197,135,172,162, 69,229, + 94,184, 52, 83,162,147, 21, 25,175,124,184,162,194, 51, 67, 49, 20,131,158,203,171, 42,146, 42,149, 90, 93, 35, 14,101, 28, 45, + 2,223,120, 21,255, 90,148,180,230,157,219,226,147, 10,200, 37,103,157,159,214, 54,117,235, 90,242, 7, 44, 29,242, 84, 16,198, + 54,200,196,112,239,101, 85,100,103,226, 93,222,161,231, 66, 60,138,217, 74, 26,162,203, 43, 1, 69, 98,103, 69,120,108,190, 22, + 78, 29,186,218, 40,163,192,121, 9, 12, 9, 65, 87, 14,250,250,115,137,225,181, 19, 51,201,171, 88, 23, 93, 35,153,255,144,139, + 52,170,210, 12,197, 88,175,211,217,193, 70, 72, 72,117, 64, 81,177,195,186, 74, 56,169,231,122, 66, 51,115,130, 73,145,177,177, +101,215,140,172, 26,224, 92,212,136, 61, 67,243, 61,153, 3,202, 16,115,150, 27,232,222,218,152,244, 13,201, 45,119, 48, 36, 86, +204, 83,118,226,213,204, 52,195,234, 89,204, 97,103,100,141, 98,101,254,167,206,102, 39, 28,109, 86,233,254,101,147, 21, 76,228, + 18,183,189, 14, 94,176, 98,132, 74,224,162, 39,179, 51,163,119,193,203,203,216,121,139,112, 2,252, 59, 28,167, 57, 93,240,132, +102,179,193,126,119,131,175,252,222, 31,192, 59,194, 71,239,255, 4,207, 63,253, 4, 77,170, 48,189,119,152,151,128,113, 9,232, +218, 22,199,113,196,121,223, 39,210, 24,161,105, 26,244,125,252,227,207, 55, 27,236,142, 3,206,182, 27,140,243,130, 97, 94,240, +242, 48, 20, 62, 51, 69,222,187,247,141, 81,142,214, 94,220, 10, 99,106,216,194,118, 20, 70, 38, 12,196, 73,142,102,180,105, 62, +174, 88, 82,114, 42, 94,158,200, 56, 73, 86, 40, 67,137,187,205,236, 47,164, 62,232,218, 59, 47,117, 52, 55,173, 2, 12, 80, 86, + 40,122,200, 82,109,201,160,207,188,212, 63,203,190,150,191, 94, 66,201,111,175,227, 13,181,235,209,132, 45, 75,162,130,238,211, +165,218, 99, 80,213,120,103,224,144,247,126,149, 83, 45,102,186,145, 25,217, 88,217,143, 40, 15, 5,210,238,203,149, 11,134, 12, + 8,165,154,175,224, 84,121,111, 87,150, 44,186,223, 38,169, 47,236,106,133,150,132, 80,180,118,112, 83,250, 89, 23, 36, 21,254, +246,219, 63,196, 79,126,244,125, 44,243,132,105, 56, 96, 24, 7, 72, 8,224,176,160,107, 91,204,199,189, 10,146, 58, 79, 56,235, + 26,188,220,143, 96, 14,120,240,234,155,216,180, 45,158,254,242,167,184,251,198, 59,184,251,250, 59, 56, 92, 95, 98, 58, 30,224, + 57,160,237, 59,236,111,174,112,249,228, 83,180, 93,135,243,179,115, 44,187,107, 76,243,108,112, 30,113, 69,198,153, 89,148, 82, +223,180,128,115, 37,144, 38,100, 79,118, 98,122, 55, 77,180, 50,249,102,198, 52,141,170, 95,249,219,111,127, 15,191,243,207,126, + 11,239,188,245,122, 9, 21,194,201,224,209, 92,170,183,178,177, 76,160,142, 13,126, 73, 58,100, 21, 95,153,159, 61,173, 38,132, +169, 8, 16, 11,150,169,224, 47,171,169,163,153,192, 40,169,220, 18,184, 73, 18, 1,209,151,139,217,144,215,114, 33, 84, 77,112, +114,208, 76,162, 88, 22, 90,155,168,109, 53, 70, 29, 71,162, 89, 29,203,156,233,118,118, 10,145, 9,124,164, 95, 99, 17,239,145, +209, 99,149, 98,192,142,220,157, 51, 43, 63,148,253,186,165, 19,138, 57, 83,214, 93,122,212, 90, 4, 37,173,133, 16,192,203, 82, +180, 38,118,189,203,156,210, 3,107,241,169,230, 82,144, 17,252, 42,131,130,203,125, 66,162,104,106,177,249, 0, 73, 55, 81, 34, +179, 45,233, 48,195,132, 88, 75,202, 42,146, 58, 9,218, 52, 14, 23,208, 14,156, 45,221, 50,103,116,152,203, 30,171,117,158, 84, +164, 68,209,159, 81, 83, 2, 26, 10,245,170, 64, 20,226, 5,157,127,124,146,125,209, 92, 30,230, 18, 77,135,202, 94,150, 65, 14, +146, 22,241, 69, 60,101,144,167,154,158, 90, 50,192,179,162,146,243, 8, 57,131, 16, 50, 59,155,163,122,145,172,239, 55, 18, 62, +140, 34,152,170,145,147, 80,217, 15, 63,123,252, 12,211, 52, 96, 94, 2, 58,141, 17,140, 5,205,184,204, 88,194, 2, 97,198,203, +231,143,241,226,227, 15,176, 59, 78,248, 87,255,238,143,240,103,255,233,255,196,166,239,163,199, 86, 24,103,253, 70,247,206,151, +187, 29, 60, 59, 76,211,140, 22, 64,215,120, 72, 82, 4,103,192, 64, 96, 81,117,125, 16, 70,215,117,145,211,235, 91,156,157,111, + 35,104,129,252, 73, 58,129, 10,114,204,168,150, 20,102,111,139, 24,169, 92, 1, 69,152, 67, 85,236, 31,131,203,203, 78, 57, 58, + 52,122,146,243, 3,109,119,202,150,243, 81, 14, 40, 42, 52, 43,219,117,211, 74,161,175,227,246, 91, 64, 68,255, 84,176,102,165, + 1,147,244,108,186,106,204,133,196,185,143, 62, 82, 57,157,134,107, 7, 43, 21,104,163,188,180, 89, 77, 94,239,211, 93, 26,141, +102,245,172, 90, 83, 18,177, 75, 76, 34, 82,106,161, 81,247,199,165,136,145, 44, 92, 90,137, 0,101, 37, 78,188,117,175, 33,181, + 56,207, 70, 30,231,125, 71, 25,223,210, 42, 95,193,198,111,202,138, 18, 23,127, 38,223,252,206, 15,241,254,207,126,130, 48,141, + 24,135, 35,198,113, 64,152,103,244,219, 51, 44,211, 21,166,227,132, 97, 90, 0, 4, 16, 9, 14,227,140, 97, 94,112,255,222, 3, +220,189,184, 0,115,128,235, 58, 52,219, 11, 76,135,125,244,160, 55, 13,246,215,151,152, 83, 20,241,171,111,188, 5, 23, 2,142, +135, 61, 94, 28, 15, 8, 22, 54, 73, 17, 84,227, 82, 1,228,168, 36,218, 45, 92,194, 81,154, 84, 56,121, 20,120, 17, 0, 44, 75, +236, 96,124, 2,144, 68, 5,254,140,123,247, 31,226,155,223,158,177,252,206, 87,240,107,159,127, 39,117,129,174,112,200, 13,200, + 64,216,234, 36, 96,146,226,170, 61, 87, 90, 33,149, 34,206, 24, 51,112, 42,249,150, 42,183,156,224,170,149,136, 10,205,108,224, +135, 17,146,138,152,200, 68, 64,121,233, 89, 39,225, 82, 42, 36, 76, 70,125,182,234,230,244, 51,103, 46,147, 24, 83, 92,240,184, +121,103,203, 38,253, 15, 44,113,151, 76,171,181, 65,242,150,179, 75, 19, 9, 17, 67,233, 33,165,230, 57,228, 81,121,162, 27,234, +133,158, 85,238,105,228,174, 84, 62,210,177,114, 46,152,156, 39,237,202,245,254,144,188, 75, 14,106, 97,203, 23,250, 18, 2,150, + 16,195,177, 74,206, 56, 71,194, 34, 21, 11,111,254, 82, 75, 49,145, 11, 92,115,247,144,171, 50,202, 81, 73, 75, 11,190, 58,159, + 71, 14,121,122,146,162,100, 29, 41, 59,196, 73, 36,105,102, 21,175, 6,204, 24, 77, 65,198,249, 50,115,244,210,167, 41, 67,222, +157, 35, 77, 40, 2,135,114,217,155,207,171,214, 60,152,243,221, 33,118,234,162,182, 30, 54,153,221, 48,177,145, 98,252,201, 70, +255, 46,108,246, 69, 22,198, 80,188,128, 36,133,155,157,237, 57,234, 7, 20, 59,190,103,211,221,217, 40,198,219,146,157,204, 55, +103,198,210, 10, 58,161,178, 75,113,112, 70,253, 41,184,124,113, 9, 44, 51,132, 3,130, 35, 44, 44,240,105,132,182,164,157,204, +249,249, 5,238,223,123,128,235,231,207,208,206, 1,191,248,209,143,225, 93, 84,247, 14,195,144,188,235,209, 39, 57, 76,179, 94, +220, 11, 11,206,124, 28,127, 29,134, 49,141,248,227, 15,179,107, 60,230,137,177,105, 91, 28, 67,192,194,140,174,105,209,118, 45, +222,124,253,149, 26, 77, 69,229,135, 69, 85, 91, 70,102, 85, 33,153, 51, 82,246, 87, 70,209, 46,206,146, 52,106,165,111, 25,128, + 20, 1, 21, 11, 27, 96,202, 74,247, 80, 5,159,100,251,124, 29, 49,170,163,234,138,107,156, 15,143, 60,125, 41, 84,187,127, 42, +246, 58, 31,124, 26,211,109, 19,137,196,176,209,157,156,220,134,174, 88, 39,160, 24,100, 35,128,115, 84,232, 90, 58, 28,203,226, + 20, 72,165, 56,245,206,153, 11, 93,212, 79,190, 30,151,151,144, 26,169, 46,226, 66,130, 51, 40, 72, 99,109,178,123, 95, 73,105, +232, 5, 0, 83,127,221, 42,190,211, 67,149,193,226, 76, 2,212, 58, 58, 52,171,240,169, 66, 18, 1,132,239,253,224,103,248,224, +253,247, 49, 15, 7,140,195, 17,211,112, 68, 88, 22,108, 54, 27,236,174, 95, 98, 9, 1, 36, 1,144,120,112, 58,223,224,149,215, +222,194,205,213, 11, 76,199, 29,252, 43,175,226,250,209,135,232,250, 13, 8,130,241,176,199, 60,141,160,182,195, 60,207, 56, 63, +187, 64,152, 71, 60,125,252, 40, 49,243,163,181,175,113,132,222, 59, 4, 0,115, 16, 12,204,198,157,224,208, 55, 30,189,247,145, +221,208, 52,240, 77,171,207,151,107, 26, 77,207,202,222,118, 24, 25,160, 48, 99, 26, 71, 92,189,124,129,101, 89,240,183,223, 28, +112,125,117,141, 47,127,249, 55,208,119,157,122,177, 19,141,163,176, 7, 80, 67,234,164,114, 9, 38,127,182, 18,211, 82, 98,151, +208, 45, 98,221,245,254,100,205, 56, 55, 14, 4, 3, 38,114, 54,108,135,236, 36, 46, 99, 40,162,253,138,243,120,157,106,106, 39, +115,178,166,101,102,190,121, 29, 56, 20,184,140,173,120,173,207,157,115,179, 38,197, 41, 83, 9,254, 40,138,166,153, 56, 22,209, + 41,144, 36,251,184,137, 83, 66,166,148, 56,208, 12,193,129, 0,190,241,133,193,110, 2, 92,132, 11,112,201, 37,230,124,200, 93, + 44, 10,223,157, 67,134,204,164, 29,122, 10,221, 90,194, 2,201,206,144,164,142,215,120, 92, 5,170, 69,106,168,230,142,195,233, +215, 16, 47,246,172,181, 49,232, 89, 33, 35,134, 45, 97, 70,122,105,235, 68,194,229, 13,111,130, 40,145,209,232, 24, 10,158, 81, +237,231,159,133,168,192, 47,130,116,178, 88,208,158,165,250,223, 39,193,119,158, 16,148, 2,159, 75,129,105, 86,122,141,118,180, + 82, 7,120,232,135,154,187,131, 12, 4, 0,213, 25,150, 40,157, 75, 57,175,202,152, 81,244, 67, 65, 5, 97,176,236, 24, 89,137, +142,132,172, 18, 20, 56,217, 18,138, 20, 60, 30, 23,117,124,174,248,236,145,198, 18, 31,196,236, 67, 12,203,144, 60,179,169, 82, +228, 8,199, 0, 16, 65, 13, 0, 94, 92, 62, 7,253,224,239,113,255,205,119,113,239,213,215, 16,210, 14,135, 57,118,216,158, 8, + 75, 86, 88, 58,143,214,121, 92,108,183,241,242,110, 35, 62,214, 57,143,101,154, 19, 54, 54, 22, 75,125,219,226, 48, 45,209,206, +145, 40, 90, 93,191,137, 99, 66,177,138,126,174,108, 72,197,227,105, 21,153, 6,120,177, 82,109,231,155,208, 33,134,183, 72, 22, +252,172,186,220,242,247, 82,129,102, 50,193,169,236,132, 11,102, 75,196,197,112, 20,161,138, 75, 15,171,189,226,149,183,213, 74, +149, 20,109,250,143,229, 92, 73, 90, 35,212, 86,155,124, 49,186,170, 27, 39, 77,128,210, 24,113,163, 80,119, 84, 95,220,209, 18, + 71,133,217,158, 86, 51,100, 96, 44, 90, 17,195,140, 48,205, 88,214,173,197,238, 21, 8, 82, 42, 59, 89,241,145,138,201, 44,136, + 7, 2,155,223, 75,199,171,167, 90,122,163, 27, 41, 5, 26,107, 39,200,137, 58, 71, 38, 87,186,236, 67, 8, 43, 68, 46, 4, 31, +125,252, 4, 63,249,241, 79,112,253,242, 57,198,225,136,101,153, 49, 7,198,102,179,193, 97,119, 29, 19,161, 56, 96, 90, 22,244, +125,143,109,123,129,155,151,151,120,242,232, 67,188,245,185,247,112,245,244, 17, 14,207,226, 72,125,216,221, 32, 72,252, 26, 66, + 8,216, 54,130,109,215, 98,183,187,214, 40,215,141,119,240,206, 35, 48,227, 24, 56,118,255,233,235,108,189,195,182,105,209,184, +180, 67,119, 81, 16, 55, 47, 11,134, 16, 32,227, 8, 2,161, 73,163, 89,151, 46,175,184, 99,143,239, 95,164,209,121, 52,109,116, +134,132,101,193,254,230, 10,211, 56,224,251,243,130,159,252,236, 23,120,239,215, 62,135,127,241, 59, 95, 69,219, 54,169, 72,229, +106,181, 98, 26, 95,115,161,145,217, 91,151,236,237,245,127, 79,107, 92,109,189,139,169, 82,221,116,205, 98,243,192,237,207, 41, + 55, 51,153,116,150, 46, 42, 73,221,104,158,164,230,175, 49,243, 22,188,203,239,188,121, 15, 76, 96, 84,213,111,170,107,197, 30, +192,101,242,102, 87, 99,122,162, 74, 14, 66, 98, 93,195, 58,163, 15,136,159, 67,116, 64, 9, 73,180, 97, 38, 75, 35, 25,145,109, +254,246, 66, 66, 10, 3,156,192, 48,208,166, 42, 98, 84, 11, 14,118, 89, 34, 28, 76, 16, 47,253, 37, 4,204,115,156,168,194, 85, + 47, 73, 58, 31, 68, 27,149,220,165,115, 90,179,185, 85, 99,201, 21, 32,174, 64,183,156, 35, 80,138, 64, 45, 18,157,248,193,229, +252, 44, 42,177,159, 39, 50, 76, 93, 69, 48,148, 79,191,126,175,115,102,124,214, 19,100,219,158,141,162,118,100, 83,175, 87,182, + 84, 70, 37,237,204, 98,247, 70, 76, 72, 72,161, 30,145,170, 1,201,132, 81,139, 33, 5, 81,218,127,159,136, 77, 50,140,160,196, +186, 87,123,218, 60,100, 39, 89,147,185,168,136, 51, 36,255,249,166, 18,204, 86, 55,138,157, 83,109,235,177, 95, 3,167,126,167, + 28,244,249,207,185,186,138,251,116, 79,241,144, 24,166, 17, 14,192, 24, 2,186,156, 57, 76,130,179,126,139,166,237,241,252,209, +199, 24,166, 17,219,205, 6, 23,103,231,104,251, 22,199,195, 17,228, 61,198, 57, 94,216, 93,219, 68,251, 77,250,138,142,227,168, +149,215,107,247,238, 97, 14, 1,227, 28, 71, 43, 49,152, 32,232,194,173,241, 13,154,166,143,159,119,144, 34,208, 48,215, 96,180, + 18,186,146, 11,153,194, 85, 40, 77, 32,156,121, 81, 43, 21,117,201, 54, 51,236,145,244,123,235,100, 72,106, 49, 79,250,156,217, + 94,240, 82,160, 42,185, 58,140,121,191,197,182, 6,235,101,117,198, 54,164,193,147,174, 22,197,177, 29, 61,202, 73,103,185,182, +140, 89,119, 4,161, 88,238, 74, 20,171, 33, 21,138,177,122,229,245, 59,139, 78,127,212,155,190, 18, 54, 89, 31,107,182,154, 56, +202,128,204, 98, 39, 90,153,202, 74, 49,201,197,135,107,195, 82, 78, 85,162, 54, 44, 61, 33, 84, 43, 79, 48, 21, 27, 94, 69, 35, + 77, 19, 4, 69,242,214,218,134, 18, 79, 91,235, 22,204,137, 0,128, 48,140, 19,190,243,247,223,195,203, 23,207,176, 76, 35,166, +101, 6, 68,224, 73,112,184,185, 6,135, 37,173, 97, 28,206,206, 47,112,184,185,193,205,245, 21,222,120,235,115, 56,220,188,196, +241,249,167,145,134,120,216, 99, 97,142,128,140,116,194,220,187,123, 15,215, 55,215, 74,203,186,104, 91,176,196,240,164,221, 60, +235,133,209, 57,135,179,166, 85,148,169, 35,135,153, 25,199,121, 49,145,194,241,103,216,100,229, 63, 11, 22, 65, 76,169,226, 56, +165,240,236, 65, 46,192,135,120,169, 79, 97,137, 26,149,166,137,151, 53,185, 56,101, 8, 14, 31,124,240, 49, 62,126,244, 4,255, +230, 15,254, 37,238,223,191,155, 88, 25,245,138, 75, 42, 48,146,171,197,193,100,125,235,174, 46,102, 5, 56,101,192,166,174,222, + 57,243, 62,148,130, 91,179, 26,108, 12,236, 42,250,215,145,141, 66,166, 42,236,164, 4,127, 68,113, 25, 12, 31,132,212, 34,102, + 69,158, 38, 4, 64,145,183,180,138,174,205,131,123,152, 68,178,162, 93,137,235,187, 50,141, 99,137,239, 54,167,113,116, 94,183, + 74, 48,185,237,121,198,202,101,202, 17,210, 89,199,156,104,114, 32,132,176,104,206, 66,190,204, 67,186,188,243,191, 11,204, 8, +105, 4,175,239,195, 42,118, 52,167, 88, 66,193, 44, 81, 92, 35,169, 9, 83,144,147, 38, 32,202, 41, 13, 21,206, 20,215,229, 51, + 32, 42, 14,129,188,150, 35, 71,137, 36, 32, 22,198,161, 77,175,238,195,243,217,146,190, 55, 97, 54,233,111,164,118,188, 16, 88, + 5,177, 46,209, 72,117,200, 79, 48, 26,166,178,122, 22, 13,155,202, 43, 73, 78,163, 81,169,253,185,146, 59, 46, 97, 48,101,217, + 77, 26, 87,216,124,111, 61, 78, 68,199,153,105, 11, 18, 63, 60,142, 43, 71, 29, 45,164,191,178, 47, 49,163, 10,171, 10,197, 84, +105,156, 84,144, 72, 99,148, 92,245,136, 90, 29,160,255,173,253,117,202, 11,102,209, 17,204,179,103, 47, 32, 97,142,190,215, 84, +189,206, 97, 65,147,136,111, 89, 18,226,154, 6,211, 60,162, 61,191,192, 89,215,197, 12,109, 34, 60,184,255, 70, 84,219, 54, 13, +186,166, 69,227, 61,142,195, 17,141,163, 20,179,234,209, 54, 49,209,237,238,197, 25, 22,102, 28,198, 81,171, 48, 0,184,179,237, + 83,215, 17, 69,114,219, 77, 15, 9, 5,139,200, 66, 9, 98, 33, 21, 85,170, 56,107,216, 84,141, 82,232,101, 40,248, 85,210,125, +184,152,201, 71, 26,163,173, 60,225, 2,169,146,140,128, 98, 35,129,225, 5,104,149,186, 2,240,211,138,122, 67, 44,229,217,224, +162,220,172,190, 80,181, 42, 22, 91, 90, 62,184, 52,109,221, 36,166, 72,122,162,157,134,113, 20,176,140,133, 37,101,106, 22, 57, + 42, 89,241, 34,149,123, 67,253,168, 98,144,185,142, 44, 85,216, 68,200,102, 11, 27,175, 77,104,171,201, 17,110, 9,251,226,146, + 3, 77,101,167, 70,245,183,166, 5,119, 84,227,150,142,144,141,125, 40,167, 58,149,149,103, 26,149,234,178, 46,117,240,156,159, +247,180, 23,102,210, 76,244,124, 89,254,191,255,223,215,240,236,241, 35, 0,130,113, 28,227,179, 18, 34,196, 99, 9, 81,204,185, + 57,187, 64, 96,198,225,250, 37, 88, 2, 62,255,235, 95,194,225,242, 41,156, 48,166,105,194,241,176,199,148,224, 23,173, 35,116, + 93, 11,231, 28, 94, 94, 95,195, 59,143, 77,219, 97,211,118,184,158, 3,174,199, 9, 1,192,198,123,220,239, 58, 60,232,123,156, +183, 45,188,143, 95,215, 20, 4,135, 37, 96, 10,113,154,197,202,216,167,204, 61,139, 59, 84,112, 17, 76,165, 17,237,180,204,105, + 36, 11,180, 93, 3, 79, 64, 67,130, 6,140, 6,130,105, 28,112,115,245, 18,187,155,235, 4,172, 25,240, 23,127,249, 13,124,244, +209,227, 40, 44,115, 69, 56, 25,193, 84, 86, 26,194,229, 0,183,244,185,106, 86, 79, 53, 34, 81, 12,195,195,213,123,245,252,107, +178, 37, 46,171,195, 93,186, 24,200,229, 83,219,196,105,106, 23,204,105, 74,145, 47, 20, 73,227,120,203,114, 79,104,106, 42,116, + 50,231, 10,177,161, 36,186,213, 64, 8, 21, 59,167,231, 72, 68,192,224, 52, 58,151, 34, 99, 20,251,238,230,160,167,210, 80,112, + 58,249,203,136,217,174, 86,115, 98,121,137,244, 45, 43,121, 50, 32,149,116,118,101,165,251, 74, 20, 23,145,176, 33,141,217, 85, +217,107, 34,160,243,241,197,224, 16,140, 69, 47,255,112,210, 29,162,239, 79,189,102,164, 21,220,153,140,143, 62, 83, 75,165,130, +164, 82,181, 30,181,104,182, 8,136,225,164,203, 65,177, 49,138,164, 32, 43, 11, 65,238, 0, 0, 32, 0, 73, 68, 65, 84,154, 66, +248,206, 95, 83, 8,172, 26, 47,164, 64, 27,214, 2,128,205, 29,154, 11,183,236, 14,200,112,158, 36,182,203, 55, 58,107,252, 94, +241,203,177, 42,230,226,101, 46,137, 18,167, 29, 64, 76,176, 79, 85, 2,167, 31,116, 26,107,114,124,232,152, 74,197,146, 15, 28, +145,242, 82,208,106,127, 32,146, 65, 3,171, 11,158,139,106,177,144,131, 68,255,251, 58,149, 7,234, 25,143, 95, 98,252,119,203, + 56,193, 19, 48, 47,179, 73, 72, 3,230,101, 73, 31, 70,252, 90,135,253, 13,154,126,131, 39,143, 31,225, 95,255,209,191,199,112, +220, 99, 9, 11,118, 55,151, 58,234, 90, 66, 12, 18,216,244, 61,188,247,233, 66,111, 49,135,128,243, 77,143,203,235, 29,246,195, +128,190,237,146,208, 1, 24,151, 5, 11, 71,191, 59,136,208,182, 45, 94,127,237,161,241,252,231, 14, 78,170,233, 93,190,120, 41, + 15,146, 51, 36, 70, 44, 55, 67,140, 13, 66, 20,188, 64,149,210, 58,223,180, 57, 39,220,172, 60,140, 26, 84,247,228,234,177,148, +178, 15, 54, 93, 58,192,170, 32, 39,148,157,185,133,159,104,231, 0,171, 52,207, 62,209,228,228,207,227,255,244,156,229,157, 98, + 17,113,202, 9, 61,150,196, 8,192,202,196,178, 78, 28,163, 98,105,212,131, 56,129,137,156, 6,197,216,253,162,232,193, 70, 68, +198, 45, 0,107, 82,186,157, 12,154,167, 84, 82, 2, 85, 88,194,201,129,193, 22, 94,193, 69, 79, 2, 75,254,226, 36, 70, 69, 41, + 94, 65,162,239, 94,190,232,171,255,203, 41,128, 40,226, 40, 6, 39, 98, 84, 60,252,255,228,207,254, 43,158, 63,125, 4,114, 62, +249,209, 69, 59,159, 41,165, 91,121,231,112,125,117,137,105, 28,112,255,213, 55,112,126,113, 23,215, 79, 31, 65,194,130,225,120, +196, 28, 2, 56,173,170,130, 48,218,174,199,126, 24, 83, 87, 24,223,129, 67, 0,218,139,187,184,127,126,142, 59, 93,139, 51,231, +208,186,242, 51, 8, 16, 12, 75,192,176, 4,204, 34,152,153,181, 25,200, 7, 99,144,252,164,150, 34,206,185, 56,150,109,154, 6, +103, 23, 23,184,123,113, 7,189,143,137,106,211,188, 96, 10, 1,199,105,198,113, 90, 48, 6, 70,219,120, 48, 7,140,195, 17,251, +253, 13,134,195, 1,195,241,128,111,125,231,123,248,232,195, 79, 43,123,172,152,143,190, 16,177,120, 5,235, 65,157,101, 43, 43, +243,165, 83, 23,237,233,226, 35, 51,198, 83,145,160,180, 65,117, 8,185, 4,243,178,230, 4, 87,197,170,218,100,181, 28, 10, 66, +228, 42,215, 68, 14, 4,137,151,125,114, 53, 85,213,116,214, 78,229,166, 42,142,213,203,115, 36,149, 86, 55, 95, 82, 76,108,172, +203, 40,182, 53, 41,131,167, 16,226,229,239,114,177,196,169, 68, 79,205, 33, 88, 42,204, 41, 17, 21,144,138,115,218, 61,179,100, + 63,122,217, 59, 71,190,251, 82,229,141,147,201,248,144, 52,245,202, 13, 36, 57, 82, 31,191,162, 54,210, 61, 64,169,112, 17,219, +140,164,238, 59,135,216, 84,180,193,138,180, 76, 26,121,234, 12, 68, 32, 94,178,241, 11,200, 2,183, 2,136, 33,157, 82,229,221, +122,154, 39, 40,254,149, 67,252,124,179,181,150,243,221,202, 5,150, 85, 38,127,165,105,203, 23,125,201,148, 79,108,194,108, 89, +179, 29, 69,238,248,216, 40,135,237,193,149, 95, 0, 49, 62, 76,205,186, 77, 47, 41,153, 14, 45,143,221, 89, 88, 35, 61,197,236, + 55,212,183,201,185,234,227,242,178,217, 14, 60,193,250, 97, 46,118,189,204, 13, 85,168, 68,145,139,126, 24,251,235,107, 72,218, +215,177, 48,150,144,149,148,241, 80,117, 46,138,229,238, 62,120,136,174,105,240,251,127,248,111,241,183,127,246,159, 0, 56,156, +157,157,227,234,230, 10,141,247,216, 31,227,101, 45, 64, 60, 96, 54, 27,204, 75,226,186, 51, 99,152,163, 29,104, 89, 66,154, 10, +196, 29,224,113,154, 49, 45,241,240,241,222,163,235,183,248,220,187,111,172, 8, 77, 84, 35, 62,211,136, 70,125,136,249, 66, 62, +225,159, 72, 97,166,234,216, 92,180,179,103,243, 50, 86,240,126, 27,244, 98, 87, 36, 34,230, 51,204,248,215,194, 41,135, 77, 77, +202, 42,219, 28,234,192,214, 82,184,202,205,227, 2,192,203, 51,207,220, 45,169, 67,146,211,215,158,198, 19, 42, 30, 73,128,163, + 50,181, 16,131, 95,189,237,150, 53,140,123,148,106, 25,230, 48,208,252,244,172, 86, 79,130, 36,114, 84,225, 63,203,141, 91, 47, + 71,226, 58,162, 60,223,101, 85, 37, 74,212, 83, 72,132,157,192, 19,233,170,137,114, 30,114,122,223,242, 40,148,149,135, 45, 58, + 5, 81,205,139, 80, 61, 50, 48, 5, 92, 81,208,150, 78,228,107,223,248, 46,158,124,242, 1,230,121,198,241,176,131,132,128,182, +109, 49,207,115,180,133, 57,135,160,153,232, 11,222,124,231,115, 56,222, 92,129,199, 35,230, 33, 94,230, 89,164, 39, 28,192,169, +184, 61, 12, 3,188,139,171, 36, 52, 29,250,123,247,113,209,183, 24, 94,190,136, 97, 71,204, 96,223,192,109,206, 32,109,135, 57, +196,103,162,115, 30,157,247,216, 52, 13, 90,231,224,157,131, 87,194, 95, 28, 39, 54,142,208, 38,212,167,243, 13,182,103,103, 56, +219,110, 32, 97,193,238,230, 10, 87,215,215,184, 25, 70, 48, 3,203, 56,162,129,195, 89,223,227,124,179,193,249,102,139,190,235, +113,126,118, 17, 5,116,195, 17,199,227, 30,199,227, 30,227,120,196,119,191,255, 35, 60,123,246, 98, 69, 21, 43,123, 95,150,168, + 91,200,150, 46,125,166, 13,250, 64,110, 1,253,104, 33,187, 26,231, 56, 41, 28,247,180,144,133,165,165,171,136,212,228, 49,100, +245,120,134, 15,145, 41, 21,114,186, 29, 81, 89,217,197, 11, 45,196,103,215,213,111, 67,121,246,216,164, 46, 82,217, 4,169, 11, + 89, 84,178, 76,246,204,200,255, 36, 63,235,149, 5, 90,212,229, 17,199,231,133,141, 33, 44,197,111, 46,208,220,115,152,145,123, + 14, 59,202,133, 70,214, 47,229,115,108, 73,214, 53,187,158,172,168, 20, 5, 28, 31, 59,244, 84,236,136, 80, 5,105,202, 81,171, +169, 94, 54,199,128, 17,225,210,109,252,130,136,241,181, 14,133,248,243,112, 37, 14, 57, 29,110,249,235,207,182, 89,123,135,129, +217,216, 54,169,106, 74, 45,192, 70, 12,179,192, 90,250,226,123,205, 90,184,229, 21, 75, 30,229, 43, 11, 30,159, 65,209, 42, 52, + 44, 89, 69,172,154,238, 15, 82,141, 64, 44,228, 50,119, 95, 86, 68,103, 81,159, 86,248, 84,252,209,198,219,158, 5, 42, 54, 49, + 76,125,139, 69, 84, 0, 29,221,151, 70,148,101,253,239,226,215, 18,150, 17,135, 97, 68, 8,140,253, 48, 34,112, 76, 87,155, 67, +192, 52, 47, 8, 34,232,218, 6,199,253, 1,151, 47,158,227,187,223,252, 26,190,252,187,255, 29,218,198,225,221,247,126, 19,195, + 56,193, 59,135,182,241, 32, 31,227, 82,135,113,194,126, 28,225,189,195,243,171, 43, 44, 33,224,172,239,113,115, 60,162,239,218, +232,245,101,198,113,156,112,214,181, 24,230, 5,219,174,141, 60,107,223,192, 27,160,142,172,195, 36, 12, 76, 71,147,211,196,226, + 96,165,176,225,171,157,109, 25,185,137, 88,223, 62,173, 58, 13,169,254, 34, 35,248,144,106, 23,155, 70,107,153,230, 32,208, 78, + 95, 42, 97, 25, 85,129,187, 57,183,220,162, 56,173,255,180,172,105,160, 63,103,253, 89,243,138, 63,175, 5,129, 73,109, 74, 80, + 33,155,166, 4,170, 87, 22,122,121,230,209,252, 74, 37, 79,171, 13,146,176,161,247, 85,197,129, 9,150,176, 9, 51,171,240, 7, +251, 82,150, 44,116,147, 1,107,119, 31,149,106,134, 84,192, 94,185,218, 88,140,166, 32, 21,182, 40,164,176,147,177, 40,103, 49, + 83,249,210,255,230, 27,223,197,207,127,250, 35, 28,142, 71, 44,243,132,113, 56,162,237, 55,184, 73, 49,170,228,188, 30,164,227, + 60,227,205,183, 63,135,253,203, 23,144,121,194, 60,141,113,228,157, 56, 18, 99, 88,208,111,182,224,101, 81, 71,138,184, 22, 3, + 8, 15, 31,220,199,254,249, 19, 44,211, 17, 65, 4,205,246, 2,226, 28,194, 60, 99, 57, 30,176,140,137, 20, 39,121, 69, 35, 32, +230, 56,194,247, 30,173,247,232,124, 74,112, 19,192,119, 27,156,221,189,135,182,233, 16,150, 5,187,155, 27,140,195,136, 37,193, +156, 28,128,251,119, 46,176,233,123,244,141, 7,230, 17,251,221, 14, 87, 87, 47,241,226,197,115, 60,123,250, 4,151,151,207,245, +193,152,167, 9,211, 56,226,176,223,227,112,216,227,107,223,248, 14,110,118,187,250, 98, 86, 47, 54,116, 37,132, 42,222,248, 51, + 28,152,166, 98,147, 28, 14, 66, 6,231,236, 74, 83, 68,134,173, 76,118,173,162, 13, 12,233,132, 49, 95, 80,118,251,123,242,231, +229,142,143,163,118,231, 4, 46,195,208,125,120,149, 16, 71,229,140, 86,136,149,148,228,199, 50, 85,173, 61,252,146,108,156, 36, + 84,133, 13, 81,102, 2, 88, 10, 31, 21,119, 84,190,240, 0, 74,157,108, 33, 47,178, 97,154,151,176,165,216,253,115, 88, 37, 36, + 90, 61,132,190, 99,162,182,225,146, 56, 39,122,153, 26,178,217,103, 5, 49,214, 59,180,117,161, 70,162,220,150, 66,247, 19,117, +171,144,130,112, 66, 37, 30,204,177,228, 34,130, 32, 92, 29, 39,121,100,174,167, 81, 62,223,133,203,207, 34,189,203,246,114,207, +197,143,242,224, 77, 19,150, 45,185,192,106, 67,174,192, 25,172,124,223,107,216,162,148, 75,164,206,220,206,163,220,184,215,131, +144,217, 85,202,237,118,100, 49, 23, 68,222,165,165,110,133,243,120,118, 53,130,207, 15,131, 29,201,219,127, 47,105,204, 1, 8, +174, 47,175, 49, 78, 35, 68, 24,195, 28,213,190,251,113,196, 56, 47,152,142, 71,221,123,180, 77, 3,159,118,227,158, 25, 31,252, +236,199,184,184,123, 15,111,188,243, 57,156,111,183, 24,166, 49, 2, 69, 24, 88,194, 2,239, 29,166,105,196, 60,207, 49, 58,210, + 69, 1,219,221,179, 45,250,182,197,238, 56,164,116, 42,159,186, 20, 96,152,131, 2,104, 56,119,212,246,251, 2, 42,168,122,158, + 80,208, 58,104, 7,167, 64,139,181,191,155, 84,189, 27,199,221, 66,230, 98, 68,193, 64, 74, 21,221,122, 90, 48,137, 86,241,208, + 5,164,100,173, 4,151,145,175, 85,205,230, 76,106, 34, 46,230,100,152, 28,118, 38, 84,205, 0,213,198, 43, 93, 54,223, 74, 32, + 76,149,113,114,102,104,231, 46,102,183, 69, 69, 60, 67,169,171,129, 35,152,184,131,117,136,212, 42,196,133,203, 81, 74,182, 61, +147, 50,169, 16,138,163, 73,182,188,117,169,145,174, 10, 91, 40, 0,167,147,193, 2,173, 52,109, 98,197,140,229, 67, 34, 99, 97, +129,161, 77,157,232, 81,210,215,247,221,239,255, 12, 31,188,255, 51,236,118, 59,132,101,193,241,120,192,230,236, 28,135,221, 13, + 66, 8,104,115,118,249, 60, 97, 90, 22,188,249,230,219, 56, 94,189,192,124, 60, 32,240,146,222, 63, 6, 9, 99, 22, 65,223,182, +152,166, 17, 1,192,152,106,135,166,235,176,113, 14,215, 79,159, 64, 64,104,206,238, 64,136, 48,238,111,208,128,112,214,117,216, +110,207,177,233, 55,232,189, 67,227, 26, 56, 23, 89, 14, 33,143,219,211, 14, 20, 0,154,190, 71,223,181, 88,166, 17,187,171, 75, +112,152,226, 14,158, 98, 62, 3,165,174,222, 65, 48, 29,143,104,136,208,247,155,168,160, 71,185, 28,200,123,156,157,109,209,182, + 29,154,182, 41,105,115,227,128,225,176,199,112, 56,226, 47,255,250, 91, 24,231,229,244, 76, 34,203,146, 41,190,233,178, 97,151, +210, 80,243,202,169, 78,174,176, 12, 76, 71, 95,235, 46,164,164, 78, 82, 1,125, 41,190,152,138,182,128,200, 14,194, 45,179,162, +116, 91, 10,151,201, 73, 99, 57, 59, 67,138,146,222, 72,114,138,184, 54, 15,237,180,129, 74,151,138,153, 58,101,173, 65, 12,145, +177,122,215, 50,137,117,229, 27, 73,143, 42,233, 26, 47,239,233, 3,135, 18,173,154,206,173,188, 54, 18,102,240,194,186,170, 84, +245,186,148, 73,197,237, 78,159,172,179, 10,177,159, 38,186, 21,195, 44,107,122, 94, 14,178, 89,141, 50,244,231, 69, 98,250,163, +122, 82,162,209,199,249,116,160, 50, 86,207, 14, 4,170, 80,234, 41,112, 69,162,126,130,171,177, 57,233, 72,255,228, 78,203,250, +164, 60, 94,207, 83,105,102, 93,111, 75,186, 35,197, 52, 95, 78,231,244, 42,140, 40,129,238, 98,199, 97,102,240, 88,143,106,205, + 95,182, 99, 72,157, 69, 76,245,130,178,219, 9,184,229,128,151,117, 54,139,238,230,245, 80,229,248, 96, 16,151,106,141,147, 93, +224,116,183,158,146,125,236,131, 76, 64, 8,130,253, 16,115,119,243, 38,229, 85, 7, 60,236, 60, 46,175,119, 56,142, 17,152,113, + 28, 6,204, 33,224,247,254,240,223,226,249,147, 71,248,194,151,127, 27,255,240,245,191, 68,219, 54, 24,198, 25,227,112, 68,183, +233,177, 44, 1,111, 60,184, 15, 2,225,226,236, 60,141,217,163,128,227, 56, 78,232,187, 46,121,157, 9,195, 50,163,111, 27, 85, +163, 70, 58,157, 55,194, 21, 75,222,147, 19, 57, 86,113,247,137, 33, 57,161,130,138, 16,234,108,123,210, 81,112, 57, 72, 68, 87, + 27, 48, 15, 80,217,157,155,180, 2, 3, 9,145, 42, 43, 60,238,110,114, 71,207,102,212, 91,214, 36,106,129,225,210,149, 41, 58, +133,172, 79, 36,137, 47,197, 6, 24,149, 16, 33,155,169, 12, 42, 66, 76,189,208, 83,198,122,222, 61,234, 40,172,194,126,186, 26, +152,170, 47, 52, 85, 54,150,252,189,228,100,167, 92, 68,158, 52,229,108, 18,226,136, 53,230,189,120,221,227,115,105,115,172, 75, + 10, 27,107, 17, 39,171,247, 71,199,246, 96, 48, 37,129,106, 74,137, 98, 42,251,243,172,158,205, 5, 85, 62, 66,242,158, 61,127, +141, 63,127,255, 67,252,240,251,223,199,213,213, 75,128, 8, 75,152,209, 52,109,244,165, 79, 3,186,205, 89, 28,111, 46, 51,230, +101,193,195,251, 15,113,188,190,196, 52, 28, 32, 18, 16,183, 82,113,231,237,155, 22, 78, 68,147, 13,145, 46,228,123, 15, 94, 5, +141, 49, 88,165,191,123, 55, 78,116, 14, 59,108,157,195,214, 57, 56, 48,102, 14, 88,230, 17, 28, 22, 48, 57, 80,219, 70, 43,154, +243, 49,147, 65, 98,146, 34, 59, 66,211,122, 56, 94,146,200, 40, 62,169,115, 16,204, 75,236,204,183,109,139,109,215,163,107,218, + 84, 56, 50,230,241, 24,129, 44, 93,143,195,188, 96, 14, 1,129, 3,134, 97,192,213,203, 43, 12,199, 61,134,195, 1,243, 52, 96, +154, 38, 76,211,136,105, 28,176,223, 95, 99,191,223,227,219,127,247, 15,177,115,188,141,122,156,215, 47,170, 69, 17,179,124, 97, +179, 43,173, 79, 68,130, 96, 61,209,173,218, 34, 49,115,126,179, 58,203, 10,235, 12, 2,163,204, 96, 55,190,120, 89,173,201,178, +144,151,188, 91, 37, 29, 20,153, 90, 70, 13,171, 67,136,139,160,139,145,119,234,146,118,231,102, 13,154,254,191,110,162,148, 10, + 96,220,123, 84,254, 60,251,103, 84, 49,168,129, 13, 25, 45,218,236,178,229,140,153,177,240,130,133, 23, 29,155,215, 20, 58, 87, + 93,164, 54, 67, 33,239,145,163,177,160,168,225,237,250,144,185,228, 33,219,156,139, 83,229,107,153, 56,147,100, 28, 58, 85,142, + 8,170,224,246,233, 66, 79, 98,190,180,127,176, 67,189,244,245,177, 2,134,200,124, 38,150,194, 42, 82,235, 54, 56, 79,220,114, +144, 77,234,146, 88,127, 30, 89,148, 83,158, 55, 78,162,185, 70, 76,176, 64, 29,228,158, 43, 77,135, 42, 63, 37, 67,240,197, 98, + 31,202,161,196, 82, 98, 9, 21,148,146, 98,236,140,213,206,192,100,204,152,223, 0,103, 42,240,140,225,108, 71,156, 97, 13,119, +200,251,123, 74,182, 10,114, 25,115, 36, 74, 74,186,115,231, 2,104, 26,204,204, 81,185, 11,224, 66, 24,109,223, 34, 4,198,217, + 50, 97, 63, 12,184,216,196,196,168,121, 89,240, 15,223,252,155,184, 35,223,239,128,126, 11, 55, 12, 8, 28,240,246,123,191,137, +182,235,113,125,253, 35, 60,125,121,165,255,125, 16,134, 35,194,211,171,107,108,186, 14,135,113,192,166,111,209,181, 61,134,155, + 29,188,243,104,189,128, 41,142,238, 95,127,237,129,126, 10,134,143, 83,162, 83, 13,199,194, 38,220, 73,206, 97, 38,195, 46, 95, +119,240,148,247,220, 43, 46,201, 42, 99, 85,227, 5,141, 86,148,205,115, 91, 71, 74,167, 36,190,138,111, 92,246,233, 48, 97, 58, +153, 44, 37, 32, 56, 70,228,110,155,128,137,188,185,203,208, 59,202,187,127, 74,121,240, 72,136, 71, 94, 73,203, 45,141, 45,195, +144,210,231, 46, 78,177,121,233,243,114,154,138, 37, 84, 91,145,180,235, 49,104, 79, 29,119, 26,181, 56,153, 67, 2,171,144, 8, + 73,214, 32,210,194,169,236,239,213,159,110,194,116,212,118, 35,171,235,163,202,156, 55,211, 6, 18, 5, 40,145,208,137,151, 63, + 23, 77, 21,229, 46, 85, 67,159, 62,125,134,239,124,231,239,113,121,249, 2, 77,211, 98,158, 71,117,130, 28,246, 55,104, 55, 91, + 44,243,132,227, 97,135, 16, 22,220,191,184,131, 48,236,177,204, 83, 58,128,227, 15,127,102, 70,215,246,152,231, 49,122,209, 5, +224, 16,119,183, 15,239,220,195,112,184,129,107, 59,200, 50, 99,188,190,194,182,237, 33, 68,152,194, 18, 47,238,110, 19,247,237, + 68,144, 16,253,233,203, 60, 33,132, 25,194,130,182,245, 24,153,209,251, 6,115, 16, 28, 23, 78, 59,250, 8,115,106, 40, 22, 15, + 89,180,187, 44, 11, 28, 17,186,182,129, 75,158,244,101,158,225,198, 17,139, 0,247,239,222,211, 56,202,105,153,177,204, 35, 70, + 8,218,174,199, 52,207,104, 27, 96, 89, 22,213, 14,121,127,131,143, 63,121,140,151,151,215,120,248,240,190,126,142,186, 66,215, +236,136,204,101,119,102,221, 71,154,109, 47,176,172,112, 3,124,164,245, 88,173,198,208,105,114,155,185,134,243,197,226, 50, 97, +178,132, 31, 40, 1, 79,183,141,102,151,141,213,182,217,194,143, 96,172, 81,180,226, 58, 87,241,197,122, 89,179,218, 64, 53,105, +147, 36,230, 77, 16, 43,122, 90,181, 29, 46, 59, 85, 5,118, 7,151,237,117, 75,154,196,184,100, 1, 19,182, 14,158, 56,182,206, + 99,243, 92, 92,151,247, 39,107, 95,204,121,151, 10,249,194, 67,119, 74,180, 67,230,160,152,152, 47,169, 33, 4,213,148,179,184, + 77, 82, 38,125,162, 87,194, 17,136,163, 16,147,217,213,170,120,100,184, 85,178, 14,170,174, 33,138,195,243,212, 89, 9,114, 84, +138, 40, 72, 89, 93, 32,195,217,108, 1,196,198,125,148, 97, 56,186,206, 54,201,146, 38,125, 82,139, 46, 73, 68,185,234, 56,170, + 86,126,178, 2,122,166,165,190, 55,163,119, 75,116,179,207,174,161,141, 17, 78, 3, 20,100,253,123,139, 17, 59,201,169, 3, 87, +107, 65, 46,161, 20,100,252,197,209,107,201,241,161,171, 70,216,230,235,112, 62, 93,172, 13,102,153,209,119, 45,218,198,193, 59, + 70, 35,140,205, 50,227,147,103, 47,176,233, 91,108,208,225, 56, 28, 49, 78, 51,174,175,175,240,232,195, 15,240,250,155,111,129, + 14, 7,188,120,242, 8, 55, 55, 55,154,204, 22, 64,232, 8, 24,199, 25,119, 47,206,177, 73,106,205,182,109,227,129,156,190,207, +155,113, 0,200,195, 55, 14, 93,219,225,221,183,223, 48, 87, 49,157, 70,112,100,223,119,190, 36,115,196, 41, 21, 55,101, 85,127, +138,156, 64, 47,106, 22, 62, 86,123,185, 34, 82, 33, 34,235,107, 44, 42,123,123,239, 16,213,197, 31,145, 82,185,212,210,200, 46, +141,207, 56,166, 77,185,168,243,116,204,241, 98,183, 17,186,249,185,179,153,238,217,130,151,138,198, 18, 98,114,139,160, 72, 25, +220, 98,118,148,168,242,166,244,215,201,105,114, 89,241, 40,151,106, 57, 42,172,147, 31,223, 38,110, 73,253,147, 34, 65, 29,117, + 43,197, 76,170,142, 0, 43,194,179, 86,124,161, 91,129, 59,100,113,182,146, 95,220, 60, 58,228,234,215,137,161,110,177,217,161, +139, 8,118,251, 3,190,246, 95,191,137,203,203,231,104,219, 22,211, 56,160,105,123,112, 8,216,223,220,192, 55, 29,198,253, 62, + 10,149,152,113,247,236, 2, 60, 79, 8,201, 34,150,167, 98,222, 55,232, 29, 97,152, 39, 4,137,113,168, 11, 51,238,108,183,232, +154, 13,130, 48, 66,218,147,195, 55, 32, 71, 24, 57,141, 0,251, 62,102, 93,239,175, 99,167,149, 62,134, 44,134,243, 4, 76, 4, + 12, 75,220,177, 78,129,163,104,174,141,130, 82, 9,140,206,185,184, 18, 35,194, 34, 64,238,165,195,178,192, 57,151,236,163, 80, +117, 52,152,113,156, 70,128, 28,218,182, 69,219,245, 96, 14,152,231, 73, 21,112,145,142,231,128,100,117, 62, 30, 15,232,250, 13, +254,230,111,255, 14,127,244, 63,254, 33,124,138, 51, 85, 7,134,152, 81,172, 20, 1, 42,173,164, 22,170,171,116,102,236,125,171, + 77,162,136, 67,149, 31,110,235, 69, 33,221,141, 87,231, 0,172, 72, 50,254,163,104,219,162, 18,155,106,255, 8,200, 9, 15, 71, +236,251, 65, 21, 92,164, 74,182,132, 57, 83, 89, 80,135,118,193, 20, 25,153, 67, 65, 46,106, 66,156, 84, 80,168,236,210, 89, 66, +136,239,102, 74,135, 99, 37,141,218, 85,149,171,214,125,249,146, 86,235, 88, 53,242,134,218,132, 11,250, 54,129, 92,112,155, 64, + 41, 51, 0,156,213,205, 37, 91, 96,254,217,165,117,173, 73,111,204,224,159,124,177, 91,238,132,136, 36,182, 72,129,150,101, 85, +187,181,109,235,133,206,102,255,141, 98,183,206, 36, 79, 54,212, 57, 49,110, 32,107,247, 62,165,107,139, 54,207, 58,117,141,171, + 16, 27, 57, 40,213,253, 96, 97,244,213,125, 43, 5,105, 40, 22,194, 97,113,164,100, 69,118,162, 35, 95,219,185, 20,140,222,106, +252, 72,118, 20, 91,123,109, 21,153,101,118, 2, 42,188, 17,168, 63, 62,219,224, 68,199,168,140,183,223,125, 7, 77,191, 65,215, +198,195,170,109, 61,218,198,163,111, 60,182,109,131, 77,215,224,129, 44, 56, 28, 7,176, 48,166,100,247,121,244,203,159,197,184, + 66,223, 0,105,143,215,119, 93, 36, 35, 5, 70,235, 41,141,219, 91, 44,203,130,190,137,190,221,179,190, 71,219, 54, 56, 78, 19, +250,182,197,156,186, 16,231, 28,154,182,195,197,217, 54, 41, 40, 81, 41,107,227,223,187, 50,189, 48,170,248,188,111, 34,151,125, +218, 38, 26,215,236, 0, 53,183,153,196,112,162, 44, 51,106,101,129,195,105,214,183,172, 4,148, 21,151, 88,253,149,150, 94, 37, +134,247, 92, 84,166, 72,241, 34,196,121,146, 99,132,147, 34,122,224, 84,135,146, 72,253,252, 73,182, 61, 81, 21,162, 69,149, 15, + 29,234, 16,168, 45, 72,171,102,127,173, 82,203,153,233,121,127, 38,213, 19, 91,251,230,141,211,128,115,199,198,246,162, 69, 17, +191,208, 45,127,150, 17, 55, 10,137, 90,142,138,224,208, 8,242,184, 20, 89,101,181,206,234, 32,201, 59, 71, 18,235,147, 22,252, +249,127,249, 58, 94,188,120, 6,239, 61,230,105,132,247, 13,142,135, 29,246,187,107,144,111, 48,143,199, 56,110,230, 5,103, 93, +143,160, 23,122,136, 0, 12, 18,244, 93,135,113,158,177,159,102, 52,109,139,192,130,109,223,227,222,102,131,166,237, 48,143, 35, +198,195, 62,170,176,125,135,237,197, 67, 56,231,112,241,202,107, 88,200, 97,154,166, 56, 10, 36,160, 73, 74,121, 79, 62,118,110, + 4, 28, 67,236, 4, 27,231,113,222,123,108,218, 6,227, 18,176, 59, 76, 0, 39,101,183, 58,161, 4,141, 3, 90,239,193,228, 98, +176, 75, 88,208,122,135,205,102, 3,118, 14, 97,153,113,152,103, 32,137,149,198,113,196, 97,191,195, 52,142,241,251, 10,177, 16, +200,156,237,248,249, 6,132,101,198,241,176,199, 97,127,192,251,191,248,176, 62, 48, 45,140, 70,202,238,146,236,121,148,247,205, +185,163,225, 18, 85,115,234,127,172,167, 90,100,206, 86,213,120,104,222,192, 74,116,169, 6,141,244,107, 44,254, 53,235,151, 84, +157,142, 74, 48,162,251,113, 41, 38, 59,169,208, 69, 84, 92, 45, 66, 6, 58,179,118, 30,213,250,165,162,183, 53,255,220,164, 35, + 10, 75,100,181, 39,118,185, 6,198,176,237, 78, 81,206,247,204,243, 80, 61,151, 84,231,143,242,221, 97,166,106,142,170,117, 6, +103, 77,128,218, 70, 69,207, 14,139,168, 85, 33,109,190,135,132, 79,168,110,121,156,238, 93,122, 30, 93,218,137,167,164,207,252, +249, 59, 87, 4,184,164,168,216, 84,220,166, 11, 63, 47, 62, 69,106, 8,155, 88,253,151,249, 12,215,221, 59, 86,255, 63, 51,242, +213,194,109,254,108,151, 83,212,148,144, 99,196, 26,214, 63, 92, 42,166, 90,189, 92,115,124,205,222,221,160, 5,217, 66,245, 69, + 84, 64, 37, 85, 70,182,156, 30,126,145,177, 87, 30, 48,174, 49,133,156, 69, 8,186, 3, 90,169,186, 33,166,234, 1,222,126,251, +117, 52,253, 22,206, 55,184,115,118,134,179,174, 73,254,242,168,186,245, 77,131,179,109,135,123, 33,224,242,102,135, 97,156,227, + 1, 34,140,179,205, 6,207,158,124, 10, 2,112,115, 60,226, 48, 12,137, 38,183,164, 11,193, 97,219,247, 0, 57, 76, 75,136,120, +216,148, 31,124,115, 28, 32, 18,241,153, 65,128,166,105,209,180,157, 78,150, 41, 33,222,234,248,195, 20,216, 97,198,240,122,209, +186, 21, 71,186,190,126, 87,147, 17, 90,253, 92, 76,193, 39,116, 26, 61,105,197, 36, 73,216,161,120, 87,195,116,135, 72, 77,137, + 75, 36,225,124,161, 49, 83,164, 14,102, 24,114,229,163,143,251,226,138,181,105, 29, 12,100, 56,247,122, 17, 22,223, 48,137,172, +227,203, 77,213,169, 78,109,211,153,203,234,243,170, 52, 70, 38,184,198, 25,204,236, 74,145, 47,165,155, 22, 51, 20, 41,122,146, + 58, 24,137,168, 38,226,173, 98, 4, 19,144, 39,175,197,164, 40,201,177,130,208,153, 28,131,248,238, 80, 5, 68,201, 35,122, 72, +220, 63,254,231, 63,249, 43, 92,190,120,138,174,235,176,204, 51,124,211, 98,127,243, 18,243, 52,198, 78,117, 60, 34, 44, 51, 56, + 44,216, 52, 45, 68, 34, 18, 54,132,136,226,108,218, 22, 65, 4,215,199, 1,190,105,240,234, 43, 15,240,214, 59,159,195,253,205, + 6, 30, 20,163,132,143, 7, 56, 2,218,166,197,230,252, 1,182,247, 95, 65, 8, 35, 38, 1,174, 46,159, 65,150, 25, 20, 22,244, + 77,135,243,243,123,216,158,223, 67,231, 60,218,134,112,224, 0, 22, 66,215,120,156,117, 30,142,128,121, 98,200, 28, 98, 74, 98, + 42, 84, 85,159, 66,208,226,201, 3,104,211,106,106, 10,140,113, 26,225, 16, 53, 43,141,115,104,210,103,190,113, 20,125,241,233, +144,142,104,209, 88, 80,119,109, 27, 61,193,249,176, 15, 65,217,247, 63,252,201,251, 74, 43,139,122, 29, 41,127, 9, 25, 10, 92, +221,181, 49, 75,201,204,214,206,177,214, 32,213, 97, 63,114,114,176, 23,247, 66,236,246, 51, 95, 60,190, 43, 92, 46, 4, 65,241, + 64, 59, 67,106,172,186, 72,134,149, 74, 21,241, 26, 27,162,167, 9,131, 49, 34,228, 24,192,101, 58,206,234,130,225, 19, 65, 51, + 86,150,226,114, 55, 36, 94, 59,115, 36,225, 57, 50, 94,119, 49, 22, 91,125, 9,244,215,177,220, 2,196, 90,229, 32,184,212, 28, + 57,251, 22, 26,238, 73, 57, 83,216, 72,148,196,196, 76,139,102, 18, 8,193,176, 81,146,109,218,140,227,243, 46,189, 48, 85,130, +201,163, 72,119, 18, 25, 37,191, 94,232,190,182, 75,174,191, 87, 41,246,180,250, 2,207, 90,134,178, 7,146,180, 66, 97, 29,207, +179, 41, 6,202,239, 25, 5,147,235, 8, 41,195, 92,149,202,148,111,252,194, 26, 48, 47,167,145,151, 70, 12,194,154,202, 83,132, + 5, 82, 29,200,164,223, 36, 89,160,131,148,224, 18,210,221, 72,250,106,152, 34,132,131, 11, 81,139, 88, 13,238,122, 0, 72, 46, + 52,148,202, 19, 63,144, 63,252,131,223,135,219,156,193, 35,165, 26,145, 67,239, 61, 26,239,208,182, 13,124,219, 98,187,237,241, +128, 3,110, 14, 7, 76,243, 2, 1, 97,119, 56,194, 57,194,111,124,229,183, 99,188,106,219,226,122,127, 72, 42, 94,209, 14,124, + 14, 11,156, 35, 12,211,140,155, 97,196,179,235, 27, 28,231, 5,125,215,198,128,151, 20,207,122,239,222, 29,189,192,197,137, 58, + 4, 50,109, 45,138, 67,228, 20,144, 96, 46, 48,151,213,216, 14,149, 32,171,198, 57,175, 4, 34, 85,215,110,196, 93, 68, 39,150, + 14,231,164,138,218,189, 5,155, 86,180, 99, 6, 6, 3, 77, 18,202, 23,123,210, 67,228, 42, 61,147, 9,237, 97,151, 71,217,118, + 4,149, 75, 80, 99,185,203, 2, 52,253, 57, 19,157,242,229,181,115,226, 50,170,207,158,206,202,206, 95,166, 1, 98, 61,145, 10, + 48,130,225, 34,148, 26, 51,171,133, 43, 1,242, 58,195, 92, 57,237, 53,113,207,242,244, 75, 12,104,205,124,215,175,137,185,116, +127,149,143, 56, 57, 14,178, 85, 41,137,233,254,243,159,254, 85,228,224,139, 96,216,239,176, 61, 63,199, 97,119, 29,199,230,243, +168,227,189, 37, 4, 92,244, 61, 66,178,251, 44, 75, 28, 73,187,198,225,102, 24,112,118,182,197, 91,111,188,130,251, 15, 94,197, +120,152,240,232,163,143,176,159, 38, 72,152,209, 80,212, 47, 52,155, 59,184,247,214,123,184,255,230,155,184,186,126,142,227, 97, + 7,199, 1, 88,102,108,218, 22,103,222, 3,203,132,105, 58, 96, 28,174, 48,201,130, 33, 8, 90,223,160,107, 29, 90,239, 48, 46, + 64,219,157,161,233,182, 16,231, 13, 5,145,147, 16, 50,126,110,222, 57, 93,193,229,206, 95, 0,132,133, 17,166, 41,158, 67,190, +129, 39,194, 44,145, 80, 23,210,193, 26, 36,126,191, 97, 89,176, 76, 19,132,227, 40,120, 89, 22, 61, 80, 67,190,216,199, 17,159, + 62,126,150, 14,108, 41,171, 30, 5,104,149, 81,120, 1,152, 72, 53, 60,140, 48,165,250,189,163, 91,115, 95, 88, 51,189, 53, 92, + 40,239,199, 87, 98, 79, 50, 65, 86,172,248, 83, 87,179, 10,168, 48, 14, 42,113,166, 5,173,176, 29,154,146,253,165, 57, 26, 68, + 29, 26, 81,144, 12,176,233, 48,117, 77,165,177,160,108,212,244, 92, 28, 72,249, 51, 15, 1,141,143, 49,177,164,207,170,168, 0, + 47,149, 17,122,167,216,130, 32,158,215,168, 4,100,249,247,119, 41, 98,182,236,217, 93,129,240, 72,177,156,102,197,120, 97,162, +144,117,158,150, 56, 39, 49, 36, 58,150,242, 87,197,225, 79, 23,127,178,228, 89,251, 97,113,241,148,115,196,121,127,114,246,194, +174,116,164, 88,149,173, 71,191, 16,250, 80,222, 1,172,248, 35,171, 81, 61,219,127, 38, 12,255, 7,255,253,255,240,191, 86, 7, + 17,149, 46, 32,143, 77,148,154, 99, 46,230,148, 13,149, 22,245,140,146, 87,203,133,174, 99,246,230, 57, 83,187, 36, 35,145, 86, + 56, 88, 65, 2,106,143, 17,105, 85, 84, 46,152,156,221,107,236, 38,102,167, 76,213, 69, 81, 34, 21,243, 7,210,245, 27, 12, 87, + 47,209,128,225, 8,216,186,184,191,236, 26,143, 69, 4, 77,194,200, 98,156,112,195,130,105,142,208,152, 16, 24,199,155,235, 20, +255, 23,127,251,174,241,232,210,168,114,156,102,244, 93,135, 97,154,113,113,118,134,253, 48, 33,136,224,124,179,137,123, 66, 16, +124,211,226,252,252, 14,190,250, 91, 95,196,102,211,199,164, 31, 67, 63,203,136, 69, 29, 57, 57,167, 23, 90,180,190,230, 17,124, + 18,126,145, 1, 40,100,104,154,118,165, 53, 11,190,208,143, 92,241,206,234, 5,238, 42,253, 65,137, 57,205,129, 46, 40,127,191, + 26,201,231,110, 62,139,134,138, 13, 36,177,250, 83,113,226,114,150,120,190,140,205, 14, 95, 86,184, 54,235,129,181,130, 25,107, +231,201,149, 49,197,228,136,149, 29,169,142,172,165,180,123,183,211,138,156, 38,149,179,168,173,118, 64,173,109, 89, 0,229,240, + 25,226, 54,152,192, 34, 84, 65, 68,250,190,172,196,142, 48, 97, 60,148, 24,216,164, 57,109, 98, 38, 20,201, 30,117, 75, 88, 12, +165,125, 38,129,240,209, 71,159,226, 47,254,242, 27,120,246,228, 19,188,120,250, 68,245, 35,211, 56,168, 16, 46, 11,213,230,101, +193,189,237, 6,227, 18,224, 17, 15,169,166,139, 43, 34, 1,225,225,221, 11,244,103,119,177,219, 29,113,220,221, 96,152, 70,128, + 99, 23, 29,213,200, 45,250,187,247, 49, 47, 19, 14, 47, 62,197,245,229, 51,116,109, 11, 10, 75, 4,202,164,104,226,217, 55, 96, + 48,182,125,131,227,184, 96, 1,161,111, 26,116, 13,225, 56,205,232,218, 45, 54,109, 11, 98, 70,211,118,170,134,143,103, 75,122, + 30,157,143, 7, 55, 74,247,235, 41, 22, 4,217,119,221,166,159,251,229,113,196,200, 1,158, 28, 46,206,206,209,247,125,180,190, + 37, 10,157, 13,218, 40, 0, 34, 87, 2, 79,136,208,180, 45,174,119, 71,252,250,175,189,107,154, 26, 3, 48,114,182,184,165, 82, + 88,167,159,177,179,106,212,181,242,157,232,116, 24,233,116, 30, 87,240,184,222, 85,252,127,123, 25,228,131,223, 59,111,132, 29, +165,130, 39,177, 98, 59,172,132,115,229, 12,132,161, 68,102,192, 24,169, 16,217, 50, 50,196, 32,141,141, 10,202,196,102,219,212, + 71,123,111,112, 96,248,198,195,147, 47,188, 18, 41,150,183,188,207, 86, 43,168, 90,151,169,154,178,170, 55,155, 67, 34,214, 37, +158,126,101,113, 19, 59,168, 48, 5, 77,185,207,200,149,136, 91,164,179, 20,213,132,148, 74,240,149,161,198,169,162, 32, 93,248, +228,140,151,102,165, 89,202,172, 7,205, 68, 23, 3,232, 90,217,133, 51, 96, 41, 95,196,178,182,105,175,120,244,113,109,101, 86, + 54,186,234, 43,227,251,204,226,111, 84,240, 36,197,227,103,197, 9,229, 48, 53, 95, 32, 11,196,231,195,155,205,195,207, 5,143, +111,144,163, 85, 7, 95, 61, 88,117,100,107,125,177, 83, 17,240,145,217, 0,165,189, 57, 73,206,179, 37, 99,224, 79, 13,123, 14, + 58, 73,222,205, 74, 20, 69,130,135, 15,238,227,121,202,198,118, 18,133, 27, 77,227,163, 15,183,241, 8,233, 75,190, 56, 19,244, +195,128, 71, 75, 20,165,197,248, 70,160,239, 58,132,176,160,239, 58,108, 54, 27, 92, 94, 93,193,251, 6,211, 60,225,250,229, 53, + 30,222,189,131,109,215, 1,216,227, 48,205,184,179,221, 96, 78,179,246,198, 55,232, 55, 91, 60,124,112,207,120, 50,171,192,180, +250,129,169, 4, 47,241, 27, 19, 41, 12,232,248,107, 92, 10,143, 40,241,134, 49,240, 37,167, 74,145, 81,200, 83,165,204,177,249, +234, 21,231,154,204,108,192,225, 22,216, 74,197, 91, 65, 9, 21,141, 5,157,115, 57, 61,172,196,131,114, 94,233, 80, 81,115,154, +135,162,138,240,101,243, 51,101,115, 9, 59,179, 67,211, 17,100,222, 99,155,231, 71,117, 5,249,171, 99, 54,187, 67,214, 23, 39, +239,165,156,249,236,236,203, 72, 84, 68, 70,122, 72,172,172, 10,146, 39, 8,102,170, 65,249,185, 43,153, 13, 39,134,101,213,130, + 16, 78,160, 63, 5,217,204, 37, 59,153,234,181,215,167,143,159,227,235, 95,255, 22,246, 55, 87,152,199, 1,112, 14,119,238,221, +199,225,176,199, 60, 69,214,185,181,172, 30,199, 17,247,207,207, 49,204, 51,136, 3,154,174,197,110, 26,177, 28,102,204, 33,224, +238,249, 22,135, 49,128,111,158, 96,225, 0,225,116, 81,145,195,152,167, 39,203, 0, 63, 79, 58,238,111,200,129,231, 9,103,119, + 30, 98, 26,118,216, 79, 19, 54,173,195,157,158,112,121,240,216, 45, 13,200, 51, 46, 26,194, 24, 24,187,113,198,118,179,141,151, + 23,199,145,184, 44, 19,154,182,131,235,163, 34, 63, 36,251, 27,133, 37, 70,222,146, 75, 81,159,177,231,244,136,176,154,145, 25, + 65, 24, 35, 3,158,128, 59,109, 27, 15,203,241,136,208, 52,104,219, 14,219, 59,119, 1,231,112,216,199,104,216,101,137,170,124, +181,125, 54, 13, 56, 4, 76,211,132,113, 24,112, 60, 30,177,219,237,113,247,206, 69, 69, 50, 20,145, 24, 12,148,198,250,249,113, +209,243, 78,202,197, 38,148, 19,245,168, 36,239, 73,241, 60, 11,234,221, 13,131, 77, 3, 85,112,197,249,221,208, 8, 82, 51,114, +175, 28, 21, 86, 24,167, 78, 15, 27,196, 98,112,177, 86, 44,171, 29,122,217,161,151, 9, 91,205, 77,180, 35,107, 74,177, 46, 26, +255,201,209, 34,202,136, 97, 46,129, 3,154,166,137,105,107,201,249,148,221, 3, 57,212,132, 53, 87, 61, 93,100, 40, 43, 46,187, +238,146, 10, 35, 46,122, 97,102, 46,175, 3, 3,206,171, 22, 37,152,119,209,144,239,181, 49,201,162,198,181,174,160, 46,176, 57, +158, 85,137,186,151, 3,174,242,254, 62,168, 74,190, 64,113,178,133, 47,218,234,120,197,164,119,128,178, 89,105,109,137, 56,225, + 75,192, 0,198,178, 80,146,243,255, 54, 12,121,251,107, 45,186,176,209,168, 70,243, 47,117,116,152, 47,117,103,189,186,214, 40, +111,216,186,213,227, 81,234,220, 42, 66,215,238, 54,243,201,200,180, 74, 89,171,111,141,106,103,108, 96, 55, 98,195, 74,242, 1, + 77,164,105, 98, 82, 81,184,168, 98,162,239,111,118,250,117, 58,135,168,132,117, 14,222,124,127, 46, 1, 91, 22,191,193, 23,198, + 25,143,164,193, 60, 47, 56, 30, 99,178,213,166,235, 48, 45, 1, 56, 30,113, 24, 39,108,123,194,118,179,209,238,224,233,213, 53, + 56,237,209,135, 57, 96, 14,140,182,237,208,118, 29, 54,219,109,133, 65, 36,114, 85,230, 86, 29, 36, 64, 0,130,138, 66,228,132, +144,145,178,213,205, 68, 34,255, 80,156, 73,213, 3, 25,245,182, 62, 48, 46,185,108,168, 86,135,147,185,166, 75,150,103,113, 52, + 0,183, 57,111, 83,193,151,179,137, 83,209,144, 47,114,103, 20,249, 84, 10,128,162,182, 53, 86,188, 4,123,208,184, 66,125,200, +115,129, 80,252,230,241, 48, 36, 19, 61,103,205, 0,183, 12,199,205, 56,143,178,130,184, 82,177, 75, 69,125,202, 84, 49,192, 68, + 43,117, 0, 0, 32, 0, 73, 68, 65, 84, 82, 68, 45,153, 52,180, 58, 92,214,161, 80,164,136, 76, 52,196,109, 48, 50, 85,249,150, +113,155, 93,124,229, 8, 93,178,234,100, 67,100,252,214,119,126,128, 95,253,234, 3,236,174, 95, 98, 30,199,216, 29, 15, 19,142, +251,155,106,223, 63,142, 35,186,190,199,126,119,133,187,219, 11,204,209, 88, 11, 34,193,203,155, 29,166,176,224,206,217, 57,206, +156, 67, 24,135,200,219, 38, 96, 14, 28, 9, 93, 16,108,186,216, 29,231, 60, 5, 74, 43, 36, 1,192,222, 3, 68,184,217,189,192, +121,223,224, 98,219, 96, 63, 17,194,228,225, 27, 66,135, 25,210,182,184, 62, 30, 65, 0, 90, 34,240, 60,226, 48, 14,112,190,193, +102,123,134,134, 36,194,100, 28, 1,222,195, 81, 15, 94, 60,166,121, 4, 88,224, 93,201,149,166,212,213, 70, 37,125, 12,132,105, + 28,225,254,182,195, 18, 4, 1,130,144,152,246,243,178, 96, 24, 7, 52,253, 6,112, 49,234,152, 37, 82,236, 60, 0,113,177, 40, + 32,102, 56, 14,152,166, 1,243, 52,226,167, 63,255, 21,126,247,159,127, 69, 35,110,137, 13,158,148,147,195,193, 4,191,104, 31, +155, 99,137,129,168,125,160,148,193,183, 42,234,170, 20,191,148,135,174, 69,183,137,179,214,211, 50,243,220, 51, 46,214, 54, 63, + 85,111, 36,122,129,174,137,104, 5, 78,105,150, 61,230,108, 46,227,247,100,213,162, 26,178,147,237,108,229,191,141, 93, 60,231, +201, 96,214, 47, 4,134,111, 92,137, 27, 78, 89, 17,217,209,146, 51, 36,200,138,177,141,248,148,236, 74, 46, 21,238,193,228,144, +103, 38,186,102,210, 75,116,214, 72,154,230, 57, 17,112,202, 43, 95,107,133, 74, 31, 41,167, 75, 17, 41, 98, 88, 85,214,235, 69, + 77,112,228, 43,231, 79,158, 34,144, 17, 36, 58,231,226, 58, 71,114,168, 78,178, 26,178, 65,151,175,148,235, 82,209, 86,197,220, +231,172, 20,193,138, 60,192, 92,236,140,234, 0,176,110, 51,160,177,163,134,210,249,136,102, 82, 51,135, 2, 71,209, 51, 47, 95, +246,117, 8,131,109, 77,116,160, 99,207, 89, 46, 5,129,216, 29,178, 13, 62, 88,177,157,236,239, 95, 58,118, 54, 42, 77,210,221, +135,147,188,155,113, 37, 46,148,163,223, 89,210, 15, 64, 68,176,191,222,193,167, 14,213,147, 3,131,177, 8,161,115, 4,242, 0, +147,131, 16, 33,136, 71,239, 28,150,174,193,239,189,251,155,248,252,191,248,125,252,241,127,252,223, 33,194,216,244, 93, 2,113, + 52,216,164, 36,183,121, 24, 98, 87, 51,207,104,156,195,113,158,241,234,221, 59,152, 57,238,144,157,115,232,250, 13,190,248,222, +187,182, 57,211,177,172,203,104, 65,147, 11, 85, 63, 6, 89,209,238, 42,133,152, 22, 97,137, 57,112,170,238, 46, 23, 94,177,159, +185, 21,227,178, 72,181,116, 61,146, 59,125, 87, 14, 38, 50, 35,109, 54,117,133,157, 24,217,175,157, 56, 39, 28,185, 98,193, 99, + 90,185, 35,140, 8, 73,202, 56, 91,173,118,217,143,235, 92,196,194,166,125, 90,238,238, 57,249,210,245,106, 22,170,199,143,121, +114, 81, 9,252,160, 30, 83, 79, 84, 58,135, 84,152, 88,102, 0, 37, 32, 7,165, 44,101,162,181,184, 51,249,128,189,171,114,216, + 79, 28, 77,153,115,189, 50,213,229, 73,147,172, 10,108,151,139, 36,162,106,116,247,254, 47, 63,198,135,191,250, 0, 55, 87,151, +152,166, 17,146, 66, 49,178, 27,195, 37,111,247,113, 56,194, 55, 13,134,227, 1,119,182, 23,152, 69,224,195,132,113, 26,177,112, + 28,227, 62,232,207, 99, 87,159, 4, 88,206, 55,154,112, 5, 34,252,243,175,126, 25,125,219, 32, 44, 11,126,249,241,167, 56, 30, +142, 88, 56,164,116, 67,143, 70, 98,142, 1, 46,238, 99,129, 67,215,159,227,108,220,131,120,192, 60, 7,236,198, 9, 30, 51,238, +111,123,156,111,207,192, 16, 76,105,234, 21,194,130,221, 97,192,196,192, 22,128,155,167, 56,114,247, 30,174,235,193,132,184, 7, + 23,192, 59, 82,245, 57,167,207,200, 17, 97,145, 56,154, 27,230, 72,155,227,180, 0,140, 25,221, 81,224,180, 76, 19,154,182,197, +102,179,213,221,169,115, 62, 30,144, 33, 9,209, 88,176,204, 11,166,105,194,199,143, 30,227,119,254,217,151,225, 77,176,135, 13, + 73, 21,147, 52, 72,150, 86,166, 69, 95,140, 74,214,179,206, 20,155, 98,245,231, 73, 82,196,233,103,145,247,193,165, 81, 33, 21, + 70,185,180, 55, 70, 53, 70,135, 33,125,196,119,173,236,128,217,168,226,139,208, 74,170, 6,201,126, 77, 82,172,110, 22, 70, 37, + 38,116,134, 68, 51,203,137, 24, 34, 46,249,211, 69,217,227,200, 43, 67,142, 90,161,204,114, 40,174, 17, 19,227, 78, 92,209,151, +108,162,154,194,148, 2, 39,127,187,139,151,123, 28, 3,166,115, 40, 19, 50, 83,248,169, 13, 25, 75, 23, 44,173, 96,238, 98,108, +132,229, 5,175, 3,149, 11,220, 44,234, 42,188,243,201, 46, 77, 70,227, 83, 2, 98,226, 90,202,155, 93,119, 60,115,157,147, 85, +186, 26, 27, 75,222,122,228, 89, 52, 68, 76, 53, 55,148,140,107, 66, 93, 72,134, 25,159, 87,132, 57, 77,178,193,138, 4,151,105, +107, 98,208,175,217,134, 68, 43,168, 65, 21,203,153, 68,111, 2,210,234, 12,130, 83,240, 6, 12, 55, 60,125,160,164,237,252,202, + 87,109,163, 61,197,118, 49,100,196,118,133, 56, 39,148,247, 61,241, 98,231,116, 41,101,236, 97,222,229, 12,199, 67, 74,208, 17, +120, 8,230,244,133,118,141, 67, 88, 24,147, 56,144, 99,108,186, 54,210,130, 2,240,202,107,175,225,243,239,188,139, 78, 24,187, + 16,240,241,179,231,120,253,193,125, 12,227,136,190,239,193, 44,120,124,243, 18,239,190,250, 42, 0,193,163,151, 55, 8, 34, 17, + 13,155, 94, 72,239, 27,244,253, 6,175, 60,188, 95,162, 25,242,133,236,110, 91,215,202, 41, 35, 92,119,124, 37,190, 49, 63,220, + 36, 5, 82, 97, 91,250, 74, 66,102, 0, 12,170,218, 92, 13,209,201,116,250,121, 97, 38,168, 35, 27, 37,119, 48, 85, 26, 85, 29, + 65, 9,170,220,188,105,236,110, 14, 9, 6,114, 84,252, 90,205,110,193, 25,113, 87, 84, 68,114,148, 94,218, 19,167,183,156,194, + 62,212,170, 67, 92, 44,111, 25, 78,195,150, 33,205, 41, 90,145, 78,220, 24, 44,133,245, 25,145,183,164, 49,177,234,243,173, 58, +108, 42, 21,247,202, 15, 92,234, 10,210, 40, 93, 49,140,110,202, 47,175,138, 15, 21,154,167, 44,236, 31,255,248,103,184,185,185, +198, 52, 77, 88,150, 0,146, 0, 78,194, 36,145, 8, 55,202,201,137,228, 90,116, 68, 24,231, 9, 14,140,221, 56, 97, 10, 11, 94, +185,123, 15,135,221, 13,134, 49,122,207,137, 8,173,111, 18,187, 26,216,158,109,240,191,252, 79,255, 14,243, 50,227, 79,254,226, +175,177, 76,179,230,172,119,222, 65,252, 6, 23,247, 94,193,249,221,251,216,108,123, 92,191,188,196,116,184, 6, 79, 87,104, 28, +112,113,126,129,205,166, 71,215,117, 56, 63,219,226,252,236, 12,119,206,207,209,118, 29,188,111, 48, 14, 71,140,243,140,221,225, +136, 71,143,159,224,249,229, 75,192, 53,112, 28,192,243, 2,161,152,248,230, 0,132,101,142,248,216, 68, 98, 4,128, 37, 29,246, + 44, 64,200,185,216, 4, 44,169,115, 89,230, 25, 2,192,251, 6, 93,215, 65, 66,192, 50, 28,225,219,174,132,249, 52,190, 20,119, +204, 16, 9, 88,230, 9,243, 52, 99,158,103,184,190,139,227, 90,179,255,214,227,201, 25, 58,150, 29,173, 39, 70,131, 19,210, 11, +213,166, 36,210,202,109, 18,210,197, 83, 74,202,248,107,243,152, 94, 71,188,142,170,137,150,158, 23, 5,245,102,136,132,230,141, + 52,255, 14, 70, 60, 87,197,197,210,122, 5,202, 41,254,217,128,152,170,108,137, 50,159,136,226,100,214,115,163,201,251,100,152, +196,194,188, 26, 83,199,147, 84,250,157, 92,220, 87, 23,157,148,247,179, 10,108,202, 2,237,156,206, 38, 4,231, 56, 1,185, 98, +231,174,209,225,170,159, 32,213, 95, 59, 49,159,143,142, 39,235, 36,198, 28, 18, 83, 24,238, 73,224, 75,165,217, 21, 69,189,198, +200, 88, 65,164,230, 5, 46,121, 19,242,255, 51,246,102, 49,147, 37,217,125,223,255, 68,196,189, 55, 51,191,173,170,186,186,122, +159,153,158,141, 51,228,112, 56, 36, 77, 82,180,185,136, 20, 53, 92,134,148,105,136,162, 68, 83,134, 8, 25, 22,228, 23,235,197, + 50,252,174, 87, 3,178, 97, 64, 15,134, 1, 91, 54, 8,217,178,108, 3, 38, 96,195,162, 65,147,162, 52, 20,101, 15,105,115,155, +133,156,233,233,158, 94,171,107,249,214,204,188,247, 70,156,227,135,216, 78,220,252, 26,240, 67,205, 84,119, 87,229,151,153,247, +222,136, 56,231,252,255,191,127,224,198, 10, 88,195,202,180,213, 16,141,243,161,236,234,213,234, 31,187, 43,121,205, 47,226, 56, + 86, 2,234,220,205,139,127,206,213, 86, 76, 22,177, 45,120,239,233,100, 96,108,125, 97, 82, 92,222, 40,208,136, 24,194,120, 63, +100,160, 8,169, 55, 77,109,112, 22,213,249,141,226, 20, 52, 45,200, 6,120,112,155,233, 30,104,124,158, 77,138, 28,234, 33,129, + 23,148, 47, 0,240,201,146, 99, 96, 96,133, 17,136, 64,150, 96, 28,197,137,157, 0,134, 5,166,179,120,254,219, 62,139,175,127, +229,247,113,118,239, 62,166,253, 22,207,110, 58,224,114,198,233,157, 59,120,246,249,151,241,229,175,126, 25,230,102,139, 59,199, + 71,248,240,131, 7,120,120,113,137,144,110,170, 77,223,163,239, 58, 60,221,238,225,156,131,117, 14,174, 27,234, 97,132, 76, 83, +209,229,121,221,129,186,101, 81,241,137,174,206,117,148, 39, 81,107,249, 58, 72,114, 51, 53,108, 65,106, 11,156, 68, 1, 41, 84, +116,168,126,254,117,235, 74,100,225,157, 93,192, 44,164,137,154, 32, 44,185, 9,121, 86, 92,178,223,179,112, 47, 19, 57, 75,181, + 94, 41,105, 69, 39,161,231,235,165, 74,146, 66,158,203,249,234,229,154,243, 50, 33, 37, 61, 0, 12,176,132, 74, 8, 75, 21,121, +185,111,115,251, 62, 45, 66, 69,148,169, 32, 10, 84,232, 99,212,160, 38,245, 93, 44, 45,162,187, 30, 52,106,135,173,220,251,154, +189,191, 20, 5,230,143,241,165,255,231, 79,112,115,125, 9, 63, 79, 41,254,215, 67, 56, 64, 56, 83,185, 98, 85, 59,207, 62,126, +167,243, 24, 17,177,211, 8, 31, 2, 86,235, 53,250,253, 30, 55,215, 87,240, 92,127,150, 35,130,103, 70, 16,193, 39, 94,125, 5, + 63,254,195,255, 6,126,237,159,254, 6,158, 60,121, 18, 71, 11, 68, 24, 67,236, 70, 16, 17, 48,143,120,250,240, 91,120,244,238, +235, 56, 59, 57,194,199, 63,252, 10, 78, 94,124, 5, 67,223, 99,189, 90, 97,179,217,224,232,248, 4,235,245, 10,125, 63,192, 57, + 91,220, 11,100, 29,198,113,196,148, 18,226,166,105,198,245,205, 46, 86, 59, 44,112,253, 58, 6,201,248, 0,107, 93,180, 30,205, + 35,140,173,156,127, 6, 67,199,243, 76, 41, 58, 57, 32, 66,154,108,170,248, 69, 4,211, 52,167, 24, 78, 66, 24,247, 48,214,162, +183,209,249, 18, 18,229,142,147,173,111,158, 38,248,121,194, 27,223,122, 7,159,248,248,135,171, 3, 69,170, 78,165,182,166,234, +120, 49,143, 78, 41, 85,105, 76, 90,252, 72, 85, 17,175,179,149,210,198,145, 29, 52,197, 62,153, 54,231, 58,179, 53,165, 67,154, + 31, 68,105,194,175,164,128, 96,170, 88,127, 73,120, 92,136, 82,245, 56, 53,219, 64, 69, 5, 23, 47,136,148, 82,149,118,213, 36, + 66, 85, 9, 15,170, 16, 22, 73,142,151,156, 62,168, 11,190, 18,146,147,158, 91,163,109,178,104, 5,100, 57, 57, 51,166,100,107, +164,148,168, 76, 7,170, 93, 78, 50, 49,199, 94, 12, 40,132,194,101,175,197, 70,205,168, 47,159,180,224,156, 81,112, 94,180,176, +207, 9, 75,113, 24,229,249,118,182,163, 69,141, 19, 33,248,248,243, 10, 55,128,121,193,151,168,135,116, 13,148, 44,162, 57, 53, +251,207,164,189,194,155, 74, 95,240, 50, 79, 93, 33,191,212,201,203,192,233, 31, 90, 78, 37,138,238, 85,198,245,140, 82,129, 84, + 37,116,158, 9, 82,115,179, 66, 14,150,182, 67, 90, 26,164,153, 75,166, 9, 47, 88,181,167, 22,196, 88,117,162,164, 6,128, 67, +210, 38, 95,197,174, 80,190, 24, 84, 91, 39,169,138,117,185, 66,229, 88,169,147, 33, 56, 2, 56,196,155,191,235, 29,104,142, 11, +220,211, 71,239,161,179, 29,238,220,127, 22,219,203, 75,116, 93,135,123,199,107, 92,239,110,240,229, 63,250, 3,152,190,135, 49, + 6,151,187, 61,222,122,114,129,211,163, 53,134,174,199,126, 63,161, 3,225, 98,187,139, 65, 11,198,162,239, 7, 60,115,247,172, +197, 53,146,214, 48, 84,157, 0, 26, 43,160,134,210, 36, 37, 44, 71, 21,124, 21, 73,152, 3,144, 92,117,108,228,160, 11, 46,162, + 25, 67, 21,224, 16,231,103, 9,242,152,198, 42,149,235,172,165, 12,149, 54, 79, 9,135,136,102, 84, 0,149,202, 84, 91,223, 70, +106,134, 0, 14,238,151, 36,188, 81, 21,188, 44,134,133,149,173, 82,134, 47, 37, 34, 50,207,249,164,248, 64,219,214, 57, 20, 44, + 36, 47, 56, 7, 36,176, 76,184,106,219, 33,170,205, 73,205,162,216,132,116,136,226,130, 47,139, 32,145, 3,252, 47,160,211,175, +168, 22, 89, 80, 49,150, 34,109,206,187,234,151, 62,122,244, 4, 31,123,238, 14, 94, 15,123,188,183,223,149,205,136,184, 34, 51, + 67,202, 68,176, 68,128, 4,236,166, 17,179, 15, 56,219,172, 49,237,182,240,233,189, 5, 97,220, 57, 61,193,180,221, 97,102,198, + 28, 24, 63,254, 67,223,135,147,147, 83,252,215,255,232,127,140, 29, 18, 67,240, 33,138,180, 28,226, 28,219, 88,139,209,207,240, +129,241,137, 15,191,132,111,255,228,199,112,124,124,130,213,208, 99, 53,244, 24,134, 21, 86,235, 13,134,245, 26,206,185, 88,157, + 39,154, 87, 72,139,173, 64,240,171,255,232,127,192,135, 94,121, 25, 63,252,131,223,143,207, 60,125,138,247, 31, 63,197,147,243, +115, 60,121,122,129,235,212, 98, 29,183, 55, 32, 14,169, 51, 83, 55,212,108,103,138,159, 55,222,179,157, 53, 41, 61, 12, 49, 98, + 57, 48,200, 68, 46,132,181, 54,218,249, 68,208, 65, 48,141,187,168,186, 79,238,157, 98,247,243, 51,230,121,194,159,126,227,117, +188,250,234,203,112, 73,105,221, 32,173,203,161, 58,217,176,114,155, 62,117,144, 72, 98, 8,138,100,130,162, 22,177,169,195,114, +161, 49,102,113, 26,116,244, 43, 43, 77,141, 44,237, 22,139,110,222, 34, 4, 9,139,206, 23,181,112, 34, 61, 82, 16,105, 7,239, +148, 7,229, 32,245,220, 29,210,110,129, 74, 84,203,194,208,204, 20, 48,121,142,126,240, 55,165,169, 42,169, 1, 69, 81,177, 4, + 70, 45, 13,165, 13, 61, 44,160, 81, 73,185,158, 94,219,164, 53,132,179, 59, 72, 20,107,197, 72, 75, 21, 85,221,202,178,117, 27, +237,152,145, 3, 18, 96,229, 64,212,194, 69,202,188, 60,109,182, 33,142, 6, 75, 58,158,138, 39,215, 39,250,246,240,114,144,252, + 80,191,107,110, 98,123, 22,126,123,141, 71,151,210, 45,201,174, 34, 36,219,103,107,229, 97,110,102, 55,133, 71, 93,132,111,162, +216, 32,234, 0, 64, 13, 48, 89, 1, 74,104, 33,146,107,137,117, 68,162,120,216, 10, 70,210, 84,232,212,204,162,176,248,223,170, +118,166,226, 91,103,147,179,159, 1, 50, 21,119,152, 91,173, 62,189,215,206, 18, 70, 99, 64, 44,232, 12, 97, 15,130,181,132, 57, + 88, 48, 3,211,245, 19, 56,103,112,247,222,125,188,254,103, 95,131,235, 12,122,244, 88,129,240,178,235,112,206, 4,235, 44,110, +118, 35,238, 30,109, 48, 50, 99,187,221,161,239, 58, 88, 99, 98,170, 20,197, 25, 95,215, 15,248,200,135, 94, 44,135,167,242,157, +202, 97,200, 64,182,135, 1,122, 67,225,242,240, 68, 15,166, 41,236,241, 18, 8,145,172, 25,208, 27,114,222, 52,149,213, 38, 91, + 73, 12, 81, 17,255,100,125, 49,193,214, 36,180,116,152,171,190,235,252, 48,196,242,145, 18,115,189, 9, 74, 40,254,122,147, 90, +235,181,138, 86,126,184,122, 3, 27, 29,137,181,236, 2, 52,238,238, 34,138,169,234, 50,110,238, 13,134,142,138,151,170, 30,102, +253,125,162,164,130,213,243,160,170,108,148,255,157,132,154,247, 82,233,120, 69, 40,162, 16,142, 82, 21,176, 10,121, 27, 23,200, + 10, 77, 42,215, 12, 28,171,252,226, 77,149, 69,228,109,230, 45,196, 31,254,222,251,143,225,120,194, 27,239, 94,224,122,187,133, + 51, 20,239, 47, 22,120, 14,105,150, 71,176,138,228,184,155, 98,212,240, 73,231, 48,237,247,152,211,131,191,247, 30,159,252,240, +203,120,248,240, 49,230, 16, 48,134,128,159,251,137, 31,193, 31,126,249, 79,241,238,195,247,225, 57, 10,206,186,116,157, 58, 99, +208,173,214,128, 8,198,113, 15, 14, 1, 63,242,253,223,133, 79,188,250, 17,108,142,142,177,217,108, 48,116, 29, 58,103,225, 92, +135,110,232,225,250, 1,214,245, 17, 62, 66, 73, 68, 20, 60,254,193,127,249, 15,241, 61,159,251, 78,252, 59,191,244,139,112,206, +130,189,199,209,230, 8,247,238, 62,131,235,235, 75, 60,124,255, 49,222,120,251, 93, 92,141,113, 49,243,151, 35,108,186,142,158, +185,116,224,242, 66,105,147, 35, 36,143,186,120,145,182,231,231, 57,182, 37,187, 30, 86, 42,116, 38,152, 0,235,108, 73, 14, 11, +222,195,219, 25,251,253, 14,253,118,139,243,243, 11,220,191,119, 47, 29,119,235, 72,137,210,117, 53, 37, 67,179, 42,206,145, 52, + 31, 4, 73,153, 7, 2, 35,166, 58, 86,242,146,154,146,202,140,169, 22, 47, 81, 21, 89,244, 58,155, 67, 27,233, 1, 14,154,138, +170,252,150,150,222,129, 66,147,154, 30, 40,213, 66, 66,239, 91,164, 55, 96, 53,194, 83,234,248,220,122, 46,164, 75,170,135,118, + 81,227, 58, 90, 90, 63, 41,138, 8, 13,169, 88,110,181, 41,232,113, 3, 43,177,155, 14, 28, 99,149, 76, 41, 7,208, 45,133,148, + 21,106,241,182, 77,121,153, 4,102, 73,193, 91,201,170,241, 66,154, 70, 19, 38, 48, 70, 82,107,159,203,161, 18,217,186, 93,108, +151,181,131,172,181, 73,205,251,100, 89, 4, 96, 45, 59,152,117, 76,199,105,148,156,225,109,198, 80,202,195, 96, 21,130,166, 85, +242,241, 31,221,146, 76,204,139, 96,138, 66, 50,187,109,163, 21,110, 16,149,203, 54,121, 54, 84, 45,181,211, 5, 34, 98,106,160, +192, 97,227,178, 77, 35, 82, 62,162,131,217,107, 45, 76, 19,135,184,144, 26, 19,203, 55, 41, 15, 88,226, 76,133, 69,209,146,136, + 64, 33,142, 23, 88, 16,219,132,204,112,214,148,147,156,120,198,233,157,123,184,190,120, 2,103, 45, 68, 12,172,143,190,246,158, + 25,179, 15, 48,206,224, 38,169, 88,215,125,143,163,213, 10, 83, 96, 28, 13, 3,246, 44,232,186, 30,171,213, 6,155,205,208, 8, +192,106, 59,189, 25, 63, 43,107,219, 18,180,151,103,244,181, 13, 85,196, 48, 11,169, 73, 1,164,228, 25, 15, 42,177, 74,255, 16, +202,226, 66,141,164, 84, 74, 88,168,177, 92,172,226,219, 57,189, 17, 58, 96, 11,144, 66,160, 18, 85,139, 12, 9,221,202, 58,170, +151,151, 75,162, 95,124,186, 22,239, 41,163,235,146,248,175, 10, 49,147,205, 70,171,221,203, 8, 40,246, 42, 88,205, 1,132,165, +166, 90,101, 22, 6,113,201, 52, 32, 5,121, 47,175, 37,106,250, 73, 69, 86, 88,208,199,210, 36,122,168,147,125, 99, 81, 82,162, + 23,245, 64,230,201,170,182,103,114,153,165, 71, 97,215,151,126,239, 15,113,249,244, 9,246,187, 45,166, 57,206,125,125,240,113, +131, 74,177,183,206,246,133, 8,191,155, 70, 88, 50, 56,114,132,125,136,157, 39,145,104, 43,251,197,159,254, 49,252,254, 31,126, + 57, 50, 24,152,241,179,127,241,207,227,183,190,248,175,176,221,143, 81,248, 67, 4, 75, 84, 54,246,110,181, 70,152, 70,120, 14, +232,186, 14, 95,248, 11, 63,140, 15,189,244, 34,214,155, 13, 86,253,128,213,106, 64,215, 15,112, 54,134, 21, 89,231,208,117, 3, +224, 28, 36, 68,178,216,118,183,197,127,245,171,255, 29,254,246,175,252,114,204, 69,176, 54,162, 90,157,139, 35, 0, 67, 88,175, + 87,216, 28, 29,227,248,228, 4,223,120,253, 13, 60, 49, 64,223,247,184,122,242, 24,243, 60, 33,176,160, 75, 21,146, 71,134, 4, + 9, 6,107,192, 0,124,234, 86, 68,165,120, 28,141,176, 8,224, 3, 68, 70,184,174,139,233,112, 57,127, 60,135, 83,169,106,125, +158, 39,120, 63,227,203, 95,125, 13,255,250, 15,156,193, 16,197, 34,129, 76,169, 12,151,147,197,102,239, 76, 98, 46,134,202, 28, + 87,150, 50, 74,135, 8,147,252,246,186, 51,153,187, 45, 54, 69,174,234,140, 1,210,197,141,104, 17, 40, 45,170,226,229,252,188, + 98,111,219,137, 38,171,244,183, 42,206,171,149, 51,107, 28, 90,108, 61,231,141, 23, 53,220, 38,219,204,178,114,157,113,139,216, +181,104,238,164,118,223,178, 54,133, 52, 43,157, 64,198,168, 89,244,130,214,216, 96,179, 15,117, 71, 58,201,141, 10,149,178,230, + 86,148,212,187,252, 76, 82,118,230,228,231,186,221,115,138,173, 55, 59,168, 82,137,158, 15, 51,206,162,201,142, 16, 44, 59, 31, +109, 40,100, 80,244, 58, 86,137,127,229, 14, 72,135,135,156, 94,201,210, 6, 79,149, 70, 74,190,130, 44,109, 30, 20,242,166, 46, + 11, 33,155,232,152, 76,213, 74, 84, 32, 8, 42,179, 65, 41,254, 95, 82, 40,195,146, 9,124,139,174,157, 72, 18,109,174, 86, 50, +180,240,200,235,147,221, 18,104,214, 10,239,168,240,226,227, 7,230, 70,226, 79, 28,237, 25,229,148,199, 82, 80,162,164,223, 55, +153,168, 27, 8, 1,206, 70,229,226,148, 63,135, 35,156,222,125, 6,251,155,203, 56,175, 76, 41, 81,100, 9, 52,199, 56,201,141, +235,224,230,128,145, 5,251,192,184,218,143,113,209,242, 1,253,176,194,233,217, 93,124,238,179,159, 42, 94,107,105, 30,210,154, +174,165,195, 61,244,120, 93, 68,146,255, 78,138,250,159, 84, 53,202,233, 53, 50,166,178,196,165,232, 8,211, 20, 10,131,230,193, +136, 51,109, 40,125, 66,180,242, 72,114, 19,164,198,126,253, 15,200,214,245,144, 43,110, 67, 13,174, 53,127, 54,147, 79,175,109, +202,233, 45,170,112,237,227,171,200, 75,125,127, 29, 90,232,110,209, 91,152, 58,227,166,172,255,208, 9, 44,138,241, 92,215, 69, +174,214, 55,137,180, 66, 42, 57, 5,117,246, 64,197,179, 46,213,121, 33, 85,112, 71,214, 52, 85,118,115,231,179, 82, 36, 51,213, +153,127, 22,231, 41,219, 90,211,122, 79,149,188, 33,194,175,255,198, 23,113,113,254, 4,187,253, 14,243, 60, 99,154, 39,124,228, +193, 61, 60,189,184,196,251,201,205, 33,130,196, 68,183,216,122,143,149,181,160,224,177, 77, 80, 12, 22, 96,102,198,223,249, 27, +191,136,175,191,254, 45, 60,122,252, 20, 99, 8,248,228, 71, 63,130,223,252,237,223,193,222,251, 40,152, 75,247,147, 79, 54, 42, + 99, 44,230,113,143,192,140,251,247,238,226, 39,126,232, 7,240,226,115,207, 98,189,222,160, 31, 6, 12,125,143,190,143, 1, 42, +174,235, 65,194, 48,206,193,186, 14, 4,130,135,197,126,154,240,235,255,231,111,225,223,255,155,127, 3, 93,223,131,200, 98,156, +246, 56,127,122, 1,231, 12,120, 26, 33, 32,244,174, 3,109,214,216,221,244,248,182,143,126, 4,231,151, 87,120,235,157,119,177, +191,122, 10, 4, 3, 17, 95, 58,138, 83,136,173,198,117,103, 49, 37, 37,112, 87, 84,242, 53,190, 20,198,166,152, 90, 6,121, 15, +114, 93,244,199, 39, 29,130,179, 46, 9,179,226, 63,135,224, 49, 77, 35, 30, 63,126, 10,239,227, 33,134, 68,177, 58, 10,128,132, + 14,133,172, 70,101, 33,152,172, 57,227,120,120, 72, 55,117,224, 80,158,209,216, 5, 72,221,135,164,113,176,201, 38,120,152, 91, +144,215,202,218, 59, 16, 85,131, 54,182,227, 3,130, 68, 43,132, 21,197,124,167,197,128, 52,247,163, 66, 10,150, 41,121, 66,105, +206,159,131,139,114,240, 12,101,141, 10,213, 81,224,225, 70, 28, 63, 79, 1, 81, 49,169,117, 78,199,147, 82,237, 88,201, 33,169, + 81,154,198, 52,169,161,243, 7, 36, 31, 38,102,124,158, 75,214,113, 34,181,176, 53, 65, 89,199, 72, 47,122,186, 32,146,252,122, +166, 2,112, 82, 44,170, 70,228,234,108,246, 8,186, 49,233, 64,193,241,126, 80, 56,218, 42, 6, 84,107,155, 72, 19,187,156,219, +250,121,239, 2,161, 53, 64, 55,169,115,146, 54,117, 13, 62, 41,214,182,101,254, 53, 90, 31,221, 2, 88, 80,126,132,105,133, 0, +203, 80, 11,109, 79, 43,190, 91, 98, 21, 55,169,210,182,136, 22,234,204, 67, 85,120, 41,108, 52, 85,169,156, 4,165,216, 67,178, +215,114,220,207, 9, 74, 19, 63,199, 4,128,156,137,221,100,207,240,194,113,142, 38,234, 41, 37,131, 97, 88, 97,119,115, 5, 15, + 66, 72,138,101,147, 46,152, 33,130, 21, 65, 7,138, 1, 47, 49,109, 5,206,117, 88, 31,157,226,195,175,190,138,207,124,250,227, +133,210, 86,129, 86,117,220,193,185,157,167, 80,225,186, 93,140,229, 44, 40, 79,202,245,172, 54, 93, 23, 35, 13,191, 71,245,243, + 99,123,218,136, 89, 60, 44,170,193,152, 91,196,156,219,234,164,148,239,218, 53,153, 53, 10, 10, 18,148, 55,178,102,147, 87, 75, + 8,181, 93,153, 91,159, 86,137,215, 34,228,185,169,180, 11, 84, 99, 56, 69, 89, 95,170,112,146,204, 65, 24, 77, 78,247,211, 17, +171, 54,145,250, 88,205,244,137,114, 43,149, 26, 81, 93,190,119,144, 68,125,249,117,114,122, 94, 21,214,201, 1, 57, 76, 20, 12, +164,160, 97, 27,144,135,134,221,168, 77,157,171,192,232,143,190,252, 13,156, 63,125,132,253, 46, 38,171,117, 4,252,220,143,253, + 32, 94,123,235, 29,236,247,123, 88,235, 96, 82,198,186, 49, 6,147,247, 88, 27,131, 48, 79, 24, 83, 21,207, 2,244,157,197,223, +254,171,191,128,253,184,199,111,255,238,239, 99, 10, 1, 71, 71, 71,120,243,205,183, 48,134, 16,171,243, 84,249, 6, 65, 10, 85, +137,159,110, 10,140,143,125,232, 69,252,216, 15,126, 63,158,189,255, 12,214,171,180,153, 15,171, 56, 55,239, 98,158,129, 37, 2, +140,131, 75, 66, 52, 78,115,231,175,124,245,107,248,249,159,254,201,216, 1, 19,198,126,158,209, 89,139,251,247,159, 1, 56, 96, +158,102,236,246,123,236,198, 17, 36,130,231,158,185,135,113,246, 56, 61, 61, 65,223, 57, 56, 8,222,124,243, 93,248,155,109, 57, + 28,186,180, 72,239, 2, 99,227, 44,118, 41, 69, 46,150,232,105,166,154, 68,190,185, 21,159,103,180,228, 28,200, 24, 4, 31,146, + 93, 44, 5,117, 36, 23, 65,172,214, 61,174,174,174,241,204,189,187, 21,218, 98,180, 70, 35,197, 61,211, 45,206,148,188,113, 41, +239,179,144,148,128,145,216, 45,200,163,132,124,192,139,162,185, 22,211, 93,219,251, 37, 26, 36, 71, 21,107,104,147,198,169, 8, +212,251, 83, 37,156, 74, 2, 36,125,152, 92, 8,147, 5,104, 68,122,121, 6, 28,114,235,185,180,198,169,140, 7, 91,139, 22,183, + 29, 70,181, 16,113,154,185, 49, 39, 22, 5, 36, 17, 29, 19, 61,145, 80, 44, 91,124, 75,168, 9,229,140,134,236, 43, 47, 12, 7, + 44, 51,201,210,123,207,213,191,168,141,143,138,152,184, 20,161,233,143,150, 81,162,180,217,116,249,243, 90,107, 35, 82,185,216, +124,147, 15,189, 10,237, 85,232,143, 84,181, 19, 37, 64, 24, 81, 19, 98, 86, 42,252, 76, 4, 85,225,100,121, 51, 23,104,235,243, + 18, 65,176, 96,115,100, 75, 91, 99, 87, 78, 45,192,154,166, 86, 43,105, 78, 51,160,218,210,105, 51,191,219, 88,202,165,240, 8, + 11,118,184,180,226,175,131,230, 59, 62,224,132,134,246, 22,164,197, 33,141, 90,146,118,252,114,211, 28, 86, 8,215, 87,215, 37, + 9,201,144, 0,214,130, 38, 15, 79,113, 94,187,234, 45,172, 0,222,196, 22, 36, 57, 2,193,162, 27,122,204,227,174,182,132, 67, +154,187, 88, 7, 33,130, 19,224, 58,204, 48, 38, 42, 42, 45, 69,216, 69, 63, 12,120,245, 67, 47,197, 27, 54,183,221,200, 64,210, +134,110,210,194, 23,255,191, 42, 87, 35, 53,175, 58, 14,160,218, 86, 84, 34, 62,147,208,134, 9,208, 48, 42,100, 66,154, 18, 90, +160,162,125,153,242,152, 66,106,254,188,154,241,171, 4,198,220,254, 72, 39,108,211,210,207,154, 3,109,251,157,171, 78,124,250, +169,105,113, 48,121,163,230, 54,159, 92,210,236,209, 96,129, 72, 36,149,150, 69, 75, 60,125,180,168, 24, 44, 12,151, 75, 83,160, +148, 60, 24, 78, 66,185, 74,250, 98, 37, 10,226,131,150, 66, 83,213,235,170,128,210,146,217,132, 71, 84, 53,174,198,104,230,238, + 67,150,232,233, 69,151,149,142, 68, 88, 20,119, 33,206,139,246,227,132,215, 94,123, 29,219,155,235, 24,144, 17, 2,158, 57, 94, +161,115, 14,157,235,176,222, 28,227, 67, 71,103,120,244,240, 33,246,251, 29, 56,197, 0,123, 31, 98,203, 61, 37,233,173,134, 30, +191,242, 11, 63, 7,103, 13,254,183,223,252, 29,248,224,113,188,217, 32,204, 19, 38,102,244,105, 1, 9, 58,181, 79, 24,176, 14, +227,236,241, 61,159,249, 36,126,240,123, 62,135,123,119,238, 96, 88,175,209, 91, 27,171,243, 46,254,178, 93, 95,114,134,156,237, +224,220, 0, 99, 45,188,247,248,147,175,253, 9, 62,245,241,143, 97,216, 28, 1,193,199,107,192,115,140,226, 76,121, 8,214, 18, + 86,195,128,190,115,165, 53,233, 66, 64, 55, 77,144, 7, 15,192,204,216,207, 30,227, 91,239,128,103,143, 57, 80, 73,202, 51, 68, +216,133, 0,103, 44, 30,220, 57,195,245,126,135,203,237,174,156, 85,131,231, 56,114,202,153,215,204, 8, 28,213,243,198, 38, 2, +154,117,241,238, 73, 45,248,224,163,179,224,155,111,188,131,187,119,239,148, 12, 10,202,112,165, 84, 85,106, 49,100, 93, 63,107, +151, 17,233,128,156,201,106,156, 53, 75, 66,201,206,153, 70, 8, 28, 17,177,133, 15,161,215, 80,157, 15,112, 27,168, 75,217,173, +203,154, 75,162,114, 4, 90,112, 84,173,211,129, 67,117,109,181, 77, 69,239,124, 6,192,132,130,176,102,134,106,187, 75, 35,224, +170,143, 31,181,179,255, 58,197,175,124,115,225,136,126, 69, 28,123, 86,191,187,180,148, 53,169, 85,178,168,194, 2, 77,177, 83, + 17,208,249,187,136,115,121, 69,223,215, 7,152, 60,166,205,135,246,188, 14,114,197,143,231,152,104, 14,201,127,159, 52, 14, 57, +200,133,146,112, 41,254, 57, 3, 15, 95, 84,251,149, 42, 67,117,195, 38, 82, 98, 89, 46, 10,249,186, 95, 86,253, 84,196,131,151, + 21,162,238,175,180, 72, 78,189,197, 25,230,154,158,232, 66, 97,157,173, 63,185,141,176, 4,209,100,234,151,136,169,243, 31,105, +211,192, 14,155,239,210,136,146, 76, 51, 59,150, 38,136,128,110,173,205,177, 80, 83,234,128,220,246,204, 73,202, 10,148,125,200, +126, 28,163,109, 38,189,204, 20, 4,189, 73,201,106,214, 36,207,174,193, 20, 4, 94,128,142, 25,226, 6, 76,227, 30,227, 52,194, + 90, 11, 27,226, 60,140, 12,129, 83, 68,228,110,156, 96,156, 1,205,113,131,203,161, 3,206, 57, 12,171,190, 10,249, 18, 84,193, +176, 73,118, 8, 78, 27,116, 77,227, 41,240,131,228,139,102, 81,179,232,140,226,205,224,149,124,214,207,175,151,169, 76,138, 29, +145,191,212,168,102, 54,173, 10, 22, 18,149,244, 74,164, 17, 11, 94, 86,186,246,220,222,151,218, 73,161, 67, 91, 91,163,158,208, + 22,198,202,182, 83,215,215, 20,169,110, 20,142,169,196, 41,237,177, 61,224, 20,162,204,181, 69,131, 63,110, 9, 20,210, 99,197, +114,120,224,140,112,165, 2,210, 80,176, 79, 37,226, 84,179,241, 70, 69,164,176,159, 37, 14, 54, 5,174,137,168,121,150, 70, 27, +211, 7,110,232, 57,240,134, 20, 92, 34, 11, 64,200, 16,126,251,139, 95,194,213,213, 5,166,105,194,217,224,240,232,122,194, 56, +205,184,186,185, 41,233,110, 60,141,152,198,177, 44,219, 14,192, 54,112,170,208, 5,103, 71,107,252,219, 63,255, 51,120,253,205, +183,240,207,127,247,247, 32, 44,145,106, 24,102,204, 44,112,162,102,136, 84,223, 11,136, 16,130,199,231,127,228, 7,240,185,239, +248,118, 28,173,227, 97,162, 79, 8, 86,235,108,252,127,107, 74, 44,166,201,122,111, 17, 4, 31,240,207,190,248, 59,248,220,103, + 63,131,245,102, 5,230, 0,182, 6, 60,206, 69,235, 96,156, 3,207, 19,136, 44,172, 77,174, 21, 50,169,245, 27,223,207, 41, 0, +121,240,108,225,107,191,253,230, 59, 73, 63, 96, 96, 65,120,233,254, 51,184,115,122,134,247,207, 47,112,179,223, 97, 63, 77, 81, +164, 26,162, 70,194, 80,194, 74, 83, 92, 96,243, 92, 24, 89, 36, 10,138,160,148,204,234, 8, 41, 97,204,123,188,255,248,105,129, +195,100,238, 5,197,234,166,118,102,160, 18,253,178,194,131,212, 40,186, 68, 18,231, 0, 24,171,196, 80,241,154,197,128,146,116, +136,228, 60, 6, 66,193,132, 86,166,199, 66, 25,157,186,158,172, 35,173, 69, 52,193,164, 32, 99,137,234,103,150,130, 54, 93,236, +143,136, 4,183,200,222,143,207, 75, 37,186,197, 13,189,172, 35,165, 45,143,133,229,169,134,113,201, 66, 44, 87, 14,184, 34,240, + 62,164,234,183,198, 58,103, 28,110,224,208,230,139,103,120,203, 2,188,211, 28,190, 69, 61,119,170, 8,101,209,235,194, 34, 75, + 62,139, 28,137,138,152, 86,146,128,142, 81,231,252, 25, 68, 84,177,172, 42, 15, 37, 65,177,106, 87,132, 53, 41,191, 20,189, 58, + 23, 94,179, 56, 98,128, 13,218, 13, 61,161,178, 13, 87,232, 82, 17, 88,231, 98,143, 4, 11, 93, 45,144,137,114, 7, 10,201,162, + 24,174,243, 6, 82,201, 52, 48, 56,240,242, 53,246, 28,186, 77,200,198,202, 41, 68, 74,228, 68,234, 96,169,163, 71,107,180, 36, + 14,106,120, 58,100,162,147, 52, 24,198,124,130,172, 66,149, 88, 41,250,253, 14,112, 93,244,167,123, 65, 39, 2,233, 12,100,244, +240, 36, 56,238, 13, 16, 0, 31,106,181,123,124,247, 30,118, 55, 55,224, 20,203,104,141,193, 92,136,190,241,251,234, 58,135, 57, +196, 47, 58, 6,178,164, 8, 73,231, 82,168, 4,151, 74, 89,131, 7, 42,114, 84,154,217,152,104,182,248,114,190, 36,146,236, 50, +202,247,104, 20,106, 50, 43,203, 23, 76, 31,209,225, 20, 77,200,132,180,219, 26,213, 10, 62,222,232, 92,196,111, 69,197,174,125, + 90,165,122,169,135,131,246, 65, 78,244, 41,106, 79,236,164,213,248, 25,113, 89, 90,107,104,126,142,102,226,151,197, 66,244,129, +162,106, 91,235, 97,167,113, 64,150, 10,192, 36, 59, 35, 23, 56,205,225,145,179,144, 96,154,142, 16,169, 3,149,148, 67,130,158, +153,228,177, 9, 55,147,191,124,208, 34,181,161, 39,181,175,228,246,191, 18,168,166,147,232, 91,111, 63,196,110,123,141,105,220, +227,185,163, 1, 36,140,158,128,105,158,113,113,121, 5, 14, 30,231, 23,231, 56,191,188, 41, 45,118,103, 18, 19,157, 67,100, 84, + 19,208, 91,139,127,252, 63,253,175,145,230,230, 3,108,223,131,194,140, 49,100, 66, 87,253, 92,162, 14, 23, 62, 4,252,245,159, +255,105,188,250,202, 43, 24, 86, 3,156,117,113, 3, 71, 13, 17, 42, 17,178,226,211, 63,123, 4,182,184,124,242, 20,255,252,119, +255, 47,124,225,243,159,143,152,233,224,147, 96, 48, 36,109, 72,138,116,242, 51, 96, 44,136, 67,220,208,173, 45,102,165,144, 15, + 84,195,128,179,179, 51,144, 49,216,238,118,120,250,244, 2, 39, 67,135,227,227, 99,156,158,156, 96,246, 30, 87,187, 29,220,218, +225,238,230, 20,182,183,216,237, 39, 92,109,119,240, 9,123, 11, 35, 48,233, 25, 20,163,232,137,200,148,186,180, 97, 35, 69,107, + 50,195,135,232,161, 15, 33,110, 98,217, 85, 99,178,125, 77, 7,108,168, 3, 17, 52,152, 37, 7, 28,113, 58, 84,147,173, 7,128, +124,184, 53,162,196,111, 82,199,153,156, 9,115,169, 19,150,239, 23,147,251,110, 82,181,179,229,182,145, 66, 4, 45,241,202,122, +157, 20, 52,166,225, 50,110, 78,155, 51, 39, 34, 97, 28, 13, 10, 56,100, 12,169,169,209,158,134,170, 61, 52,139, 96,243,123,103, +129,205,216,110, 99,128,140,230, 37,106,214,179,224, 3, 24,136,227, 24,170,129, 54,165,237,174,168,105, 57,166,180, 8,223,168, +182,185,165,153,191,183,254,123, 83, 4,168,138,172,169, 10, 65,214,108, 11,212, 3,165, 41, 65, 50, 89,227,144, 70,122,204,165, + 11, 42, 98,235, 56,177, 8, 99,147,131, 40,139, 33, 77, 29, 13,234, 57,126, 85,231, 47,192,118,105, 12, 84, 1, 84, 81,148, 81, +217, 34, 80,161, 51,181, 61, 83, 14, 78,183,169,223,235, 60, 36,230, 38, 91,211, 2, 59,138, 95, 87,241,123, 11, 31,158, 53, 64, +131,154, 74,176,145,230,233,246, 76, 78,225,210, 4, 46, 44, 47, 14, 62, 64, 93,213, 46,218, 31,248,135, 73,123, 19, 1,241, 51, +224,167, 56, 99, 73, 49,142,206, 25, 12,189,133,176,135, 99,137,173,248, 76,166,179,132, 7,207,127, 8, 87,231, 79, 48,172, 86, +152,246, 91,120, 33,116,198,198,214, 38,153,120,115,100, 1, 4,170,205,131, 40, 86,234,229,166, 51, 82,103, 35, 98, 80, 67,234, +116, 11,152, 74,164, 97,252,110,121,209,130,170,109, 64, 46,150,140, 84,129,194, 64, 12,199, 22, 97, 22,177,209,162, 10,197, 45, +113,161, 68,202,158, 82,187,208, 44, 53, 66, 55,107,228, 76, 73, 24, 59, 36,165,149,195, 84, 86,185,107,174, 44,113,177,219, 25, +253,190, 10,224,133, 26,114, 84,153,231, 45,141,163,202, 42,163, 59,123,229, 52,108,168, 33,176,233, 35, 96, 30,187,232, 32, 14, +232, 32,152,230,240,184,184, 95, 21,249, 40,120,174,127, 0, 0, 32, 0, 73, 68, 65, 84, 10, 84, 81, 24,121,177,169,172,105, 46, + 48,154,226,202, 32,101,239,201,113,138, 82, 83, 13, 57, 43,141, 21, 27, 0, 16,124,237,207,190,137,105, 28,177,182, 17,146,244, +209, 23,159,197,195,243, 75, 8, 11,254,224,107,175,225,201,213, 77, 2,117,164, 57,113,130,152,140,115, 84,155,119, 68, 56, 29, +122, 76,187, 61, 66, 78,127,114, 29, 16,102, 76, 62, 64, 66, 2,182,112, 69,153,102,148,242,243, 15,158,193, 47,253,155, 95,192, +233,241, 6,214,186,216,161,178, 22, 96,198,159,190,254, 6,222,125, 20,211,217, 78, 78,142,113,247,236, 12, 71,235, 13,200, 24, +188,241,246,219,120,250,244, 2, 63,245, 19, 63,134,159,252,241, 31,137,194,182,146,239, 32, 17,105,235, 3, 32, 28,219,226,206, + 1,222, 87,125,100, 18, 2, 85, 91,151,133, 75,106,245,179,227, 35,124,232,229,151, 49,205, 51,238,221,185,131,103,238,221, 69, +215,117,184,190,190,193,126, 28,113,117,117,141,119, 31,190,143,103,238,221,193,106,181,198,107,111,188,137, 55,223,123, 31,222, +215,132, 45, 73, 86, 51, 73,155, 86,102,146,199,140,108,155, 4, 96, 57,174, 57, 64,132, 49, 77, 19,156,139,218, 26,147, 49,197, +141,102,130, 84, 54,120,126,238, 90, 1,108, 38,128, 17,161, 85,161,231,106, 75,229, 33,232,233,166, 64,231,127,167,142, 23, 27, +192,196, 32, 21,201,130,100,142, 36,184, 40, 18,173,179,124,253, 98,101,164, 42,245, 88, 93,128, 40, 84, 59, 9,214,216,194,155, +207, 9,142,185,131, 17,249,251,166,218, 69,243, 65,150, 57, 10, 36, 51, 75, 63,169,176,167,174,143,177,186,166, 82, 18,115,218, +154,117,182,182,239, 11,242,244,182,214,187,178,128,229,124,143,220, 17,166,150,161,174, 69,170, 66,164,233, 29,181,123,144,218, +252,121,148, 92, 70,108, 89,164, 86,240,232, 21,168, 83,152, 2, 92, 50,203, 35, 44,140, 72, 21,158,212,140, 29, 72,151, 75,233, + 0, 72, 90,104,151, 50, 55,248,150,161,179, 73,206, 13,157,136, 23, 95,150, 75,213,206,130, 91, 55, 68,119,200,105,107, 51,108, +139,135,175,196, 61, 74,170, 16,169, 33, 96,137,105, 48, 11, 13,253,168,156, 50, 22,102,124,160, 37,236, 52,251, 56, 29, 56,232, +110,165,195, 31,150,133,213,198,212,206,223, 41,157,196,227, 5,169, 68, 50, 1,102,198,198, 1,243, 28, 57,241,227,204, 32,178, +133,161,251,226, 71, 62,129,135,239,190,141, 87, 62,245, 93,248,202,151,190,136,253,236,177,233, 92, 12,144, 49,241, 38, 15,233, +117,243,169, 54, 11, 58, 92,215, 23,188,169,158,133,152, 2,154,161, 34, 70,202,236,118,164, 42,210,168,132,176,156, 87, 94,185, +201,185, 57,193, 42, 86,149, 11,162, 55,187,206,155, 33,147, 82,188,215, 8, 68, 5, 17, 34, 45,226, 93,176,253, 40,139,231,164, +108,154,101, 94, 95,238, 99, 69,114, 67,245,110,231,128,150,122, 42,174, 25,212, 68,141,196, 78,197,158,162,182,249, 85, 43, 75, + 67, 49, 14,206,115,229,200, 77,138,152,167,230,110,130,170,230,213,152,131, 91, 15,139,149, 86, 71,210,222,110, 80,159,155, 37, + 2, 89,184, 1,205,228, 57,153,168, 54,129, 36, 79,122, 61,152,213, 96, 55, 46,176,145, 90,173, 17,118,187, 61,152, 3,238, 31, +175,176, 73, 65, 33,100, 44,166,105,196,110, 63, 70, 59, 88,106, 83, 90,235,162,205, 43, 4, 4, 97,172,157,195,138,128,221, 60, +167, 12,107, 1,217, 14, 78, 60,118,179,143,204,251,244, 36, 75,105, 1, 19,118,227,140,127,239,151,255, 50, 94,126,225,133, 72, +102,179, 14, 95,251,198,107,120,247,225, 35,124,228,229,151,240,241,143,124, 24,159,254,196,199,240,153, 79,127,170, 58, 71,210, +104,167,119, 29, 94,122,225,133, 20,133,155,238,131,224, 17,160, 42,185,226,189,103,136,115,145, 64, 41,177, 10,106, 36,160, 93, + 23, 43, 37,102, 24, 8, 92, 23,133,109, 15,238, 59,220,187,123,183,172, 7, 87, 87, 87,112,206, 98,109,214,232,250, 1,167,167, +167,184,184,186,196,123, 15, 31,225,197, 7,207,226,104,189,198, 87,191,249,173, 20,151, 44, 69,125, 77,186,202, 67,237,132,149, + 72,233, 20, 36, 18,188,199,205,205, 22,155,205, 58,165,119, 81,201, 31,168, 52,178,186,171,112, 14,103, 74,144, 7, 73, 68,206, +120,141, 34,225, 46,115, 10,164,104,232, 43, 89, 81, 22,158,234, 44,198,172,135,103, 66, 52,192, 43, 20,119, 46,181,147,141,151, + 85, 48,140,174,146,242, 1, 66,179,200, 42, 77, 52,109,218,201,197, 17, 56, 20,209,107,246,241, 83,178,155, 53, 35,212,116,255, +146, 68, 0, 18, 49,195, 6, 15,155,186, 89,118,154,176,221, 28,129,225, 98, 59, 59, 9, 21,173,117,202,105, 85, 83, 25, 15, 54, +116, 72,187, 31, 73,186, 6,217,137,194, 45,252, 73,227,171,244, 65,137,148, 17, 60,207,219, 51, 23,160,174,129,201, 42,153,162, +152,141,165, 70,140, 86, 62, 53,115,188,206, 90,168,167,100, 64,121,109, 51,141,206,167, 2,188, 40, 23,141, 38,219,173,227,106, + 77, 82,231,253,132,136,191,229, 20,208, 83,109,180,250,224, 39, 69,156,206, 42,248,212,233, 45,189,196,245,229,100, 45, 13,210, +160, 26, 92,177,208,201, 29,170,240,228, 80, 23,167, 55,105,136,106,253, 72,142, 12,149, 91, 29, 9,104,129, 90,139,253,252, 22, +195,156, 2,164,180, 36, 47, 6, 82,235, 75, 36,122, 93,167, 84,105,135, 32,232, 59,130,243,132, 89, 0, 15, 0, 28, 32, 54,194, + 99,158,255,208,171,248,227,223,251, 93,252,232, 79,253, 60,190,242,165,127, 17,147,172,122,130,177, 0, 79, 1,157, 49,152, 80, + 1, 55, 69,151, 96, 12,250,174, 43, 98, 30,205,208,215,243,103,110,176, 8, 25, 78, 16,111,156,114, 66, 85, 39, 89,144,170, 4, + 73, 42,104, 65,161, 19,161, 0, 28,249,135,144,161, 34,202, 91, 36,176, 22,166, 62, 21,108,105, 58,244,160,206,241,242, 67, 84, + 83,250,164, 84, 96,164,230,126,133, 73, 95,240,179, 26,149, 68,202,222,163, 97, 15,210,114,236,137, 14,108, 61,116,251,193, 52, + 29,112, 42,227,153,212,232, 65,167, 32,105,160, 15, 85, 89,205, 7, 72, 51,213,127, 49,138,199,172,190,247,100,120, 7, 96, 11, + 23,189,161,200, 29,224, 49,164,153,217,171, 40, 14,117, 54,173,119,134,136,160,183, 22, 96,143,103,239,158, 98, 14, 1,103, 43, +135,119,199,189,138,118,172,239,201, 16, 33, 48, 99,112, 14, 27,241,216, 6,134, 79,255,221, 13, 3, 16, 2,110,198, 25,148, 2, + 82,202, 48, 32, 48, 78,142, 54,248,107, 63,255, 51,120,249,197, 23, 96,140,193,195, 71,143,241,245,111,188,134,239,251,220,103, +241,201,143,190,138,207,126,219, 39,163, 32,206, 57, 56,219,197,254, 77, 94, 31,200,128,200,194, 88,151, 84,217, 86, 29,198, 19, + 87, 32,147,210, 82,219,115,183,221,166,120,211,148, 60, 69, 58,216, 38,145,225, 20, 82,215, 80, 74,112,179, 22,142,227,135,242, +193, 99, 88,173,208,175, 6,204,147,135, 15, 33, 42,230, 79,142,241,252,253,103,240,149, 63,251, 6,206, 47, 47,209, 59, 7,151, +240,157,227, 56, 71, 59,155, 40,129,151,122,198,108,111, 83, 37,137, 50, 91,191,190,217,226,193,179,119,227, 38,156,170,252,156, + 63, 96, 74,151,172, 58,119, 36,163, 10,211, 51, 80, 35,131,171, 23, 90,202, 51, 92,159,131, 86,221,172,132,167,164,233,138,245, + 80,173, 53,248, 90, 53, 77,201,157,211, 28,203,149, 22,138, 53,205,147,170,165, 44,103,142,151, 13, 61, 85,137,129,171, 50, 63, +195,103, 50,229,172,128, 80,210,134,110,252, 12,195, 33, 86,236,233,187,216, 92, 5, 92,158,158, 69,150, 66,226,247,103,136, 76, + 51,186,106,102,214,154,186, 6, 37,131,171,154,158,184,230,113, 99,183, 42,169,156, 36, 77, 71,225, 54,230, 61,212,250, 41,101, + 68, 23,157, 81,198,152,178,174,112,238, 14,162,102,152,115, 98,180,100,176,144,104,229,253,210, 17,100,242,136, 89,109,130,202, + 3,175,199,214,209, 85,149, 63,131,169,215, 82, 42,163, 94,212, 33, 45,127,135, 69,161, 36,128,203, 45,201,106,223, 74, 23,220, +152,136,191, 83, 54, 29, 42,173,242, 42, 84,208,185,235,208,202,105,125,194, 90,114,117,168,110,188, 26, 26,212,244, 44,151,131, +206, 3,177,133,162,239,104,165, 7, 85,123,146,118, 24, 73,105, 53,197,197, 98,154, 25,163,247, 32, 17, 12, 54,181,108,173,193, +236, 35,109,202, 51, 48,216, 14,129,129,103, 30,188,128, 39, 15,223,129, 51,190,156,182,129,168, 80, 37,142,209,180, 76, 9, 87, + 73,245,103, 27, 99,176, 26,250, 6, 29, 72,198, 36, 15,235, 66,250, 87,112, 66, 92, 32, 6, 38,137, 52,234, 6,154, 62, 91, 97, +253,166,224, 7, 82, 80, 31,210,168, 68,211, 88,170,146, 28,162,196, 44,214,176,148,148,141, 44,237, 17,137,139, 88,209,148, 42, +161,128, 94,170,215, 35, 38,195,105,214,181, 10,250, 17,146, 40, 10,204,222,218,204, 18, 40, 50,119, 69,114, 50, 82,213,244,154, +190,245, 1, 25,126, 5,136, 83,230,131,185,106,106,179,165,179,162, 60, 82,160,204,162, 47, 47, 31,176,161,223,190,197,235,249, +132, 52,100,175,250,210, 44, 25, 28, 66,139,191,209, 78,179, 68,221, 23, 53,142,184,230, 20, 88,103,112, 52,116,192,236,225,140, +193,126,156,112,186,234,241,206,211,184,217,239,167, 9,207,221, 57,198,236, 3, 46,118, 35, 32,136,252,132,113, 15, 15,194,156, +172, 54,198, 58, 76,211,132,103,238,156,226,187, 94,254, 56, 86,195,128,221,126,143,111,189,253, 46,254,220,231,190, 19, 47, 60, +255, 92,217, 88,191,249,250, 27, 32,107,241,233, 79,124, 28, 31,121,241, 5,116,174,195, 28, 66,172,164,140, 65,215, 13,241,250, + 7,109, 27,138, 31,202,207,115,140, 30, 38,130,181, 3,216,207,176,221, 0, 34, 3,239,103,188,255,248, 49, 68, 24,199, 71,107, +156, 30, 29,213, 47,194,218,154,124,165, 20,215, 92, 80,172,146, 50,208, 85,150, 57, 7, 56,234,112,116, 20, 23,213,169,139, 29, + 9,187,219, 99,183,189,193,213,205, 22,179,247, 56, 90,175,113,247,236, 12, 15, 31, 63, 1,179, 96,232, 28,174,111,246, 69,217, +156, 15,173,121, 29, 11, 97,134, 49, 93, 17, 6, 51, 7,108,119,251,194, 62,136,113,217, 74,180, 42,153,211,160,138, 18, 67, 21, + 64,147,114,192,243, 40, 73,219, 37, 9, 45, 9, 78,234,100,247,150, 14,164, 52,200,227,166,130, 71,182,136,113, 13, 31,202,236, +169, 50, 70, 95,160,151,163,103, 42, 42,242,115,202, 31,153, 68, 90,172, 34,176, 44, 86,179, 57,189, 51,223,247, 28,215, 73, 9, + 33, 30,238,132, 65,193,195,112,172,218,193,161, 0, 84, 72, 60, 78, 46, 24,231,167,103,105, 67,207, 35, 61, 41,110, 4, 93,165, + 87,171, 51,165,207, 83,245, 82,185,235,153, 61,220,180, 72,100, 36, 21,154, 30,175,171, 81, 46, 2, 86, 17,180, 42, 33, 82, 69, +199, 82, 82,185,107, 87, 11,169, 89, 95, 57,184,177, 36, 95,126, 77,255,172,168, 85,180,132, 58,249,128, 5,133,212,156, 93, 20, + 43, 68, 89,200,137, 40,206,248,169, 2,123, 34,167, 32, 37, 95,230, 16, 31,170,189, 29, 87,160, 39, 89,215,111, 76,181, 4, 44, +185,195,105,195,226, 44, 34, 91,116,193,141,105, 83,193,165, 1,111, 44,145, 8, 56,244,230, 30, 24,215,106,112,193, 65,125,166, +226, 12, 15, 84,253,170,197, 11,174,252,100, 14,140,121,246,152, 38,143,113, 26, 49, 78, 19,198, 45,112,186,114, 16, 27,191,196, + 73,128,221,236,177,187, 25,113,239,254, 25, 0,194,159,252,193,151, 34,209,235, 95,254, 75,204, 28, 55,107,171,231,191,170,231, + 18,149,213,213,211,120,122,114, 84,231,110,168, 65, 36, 92,236,108,121,182,147, 90, 45, 7,179,186, 42, 20,169, 39, 89,157,185, +107,148, 45, 43, 71, 65,230, 16,137, 80,125,166, 20,125,179,172,232, 84,156,108, 41,165,122, 87,194,146,114, 24,202,218,130, 18, +167, 38,229, 65, 19,169, 93, 6, 18, 81,161, 9, 89,224, 24, 57,208,108,162,159,183, 4,205,192, 68, 54,129,242,173, 55, 84,165, +194, 85,214,247, 96,237,204, 44, 91,234,101,159,230,204,253,175, 15,134, 73, 93,135,188,176,234,180,185, 66,181,210,179,244,131, +188,229,138,145, 33, 77, 55,100,224,208,225,155, 14,135, 70,101, 62,169,112, 22,249, 32, 55,135, 14,209, 81,202,218,245,106, 5, + 43, 19,172, 51,105,230,203, 88,119, 14,175,222, 59, 1,145,224,244,238,203,120,116,126,137, 55, 30, 62, 6,132,240,217, 79,189, +138,175,254,217, 55, 1, 34,108,231, 25,100, 93,244,128, 7,143,231,238,157,225,123,191,243, 59,112,247,244, 4,255,236,119,255, +111,252,194,207,124, 30,125,215, 97,221,103,250,155,131,177, 14, 38, 97, 94, 77,226,188,147,177,112, 67, 28, 33, 5,207,152,198, + 61,250,190,143,234,111, 6,158,158, 95,193, 58,131,227,163, 13, 32,132,253,110, 15,235, 28, 86,201, 50,196,251, 29,152,128,221, +126,196,233,209,186,140, 87, 50,213, 81, 74,138, 87,250,189,159,227,197, 55, 38,229,190,155, 98, 1,202,191, 39, 9,181, 50, 54, + 22,243, 52,198, 77, 63,193, 99,186,174,195,157,179, 51,188, 48, 77,184,190,121, 29,243, 60,227,187, 63,243,105,188,243,238,123, +248,198,183,222,198, 48,116,152,102, 95,141, 13,169,154, 42, 64, 22, 83,227,126,153, 25,126,158, 43,232,133, 9,100,106, 78, 58, +180, 8, 50, 11,218,178, 58, 62,207, 95, 51,238, 85, 14,141, 26, 57,252,170,186, 82, 85,142,182,168,146, 40, 35,100,115, 37,199, + 74, 28,154,113,197, 76,101,140,150,109,149,109, 45, 84, 71,114,198,198,231,145, 57, 10, 3,137,226,230, 14,202,103,120,106,115, +220, 77,230, 61, 48, 16, 82, 42,224, 60,131,189,135,225,144, 60, 46,249, 59, 10,201,174,197, 73,243, 17,159,221,179,235, 27,220, +220, 57,171, 7, 11,105,243,201, 69, 85,236, 69,159, 36,173, 6,161, 96, 96,203,252,251,208,223, 87,219,233, 21,111, 45,234, 24, + 33,168, 5, 79,137, 67, 79,153, 23,198,152,146,139, 94, 54,216,244,251,188, 20,113, 70,118, 75, 20,204, 37, 88,123, 75, 64, 85, +209,118,149, 72, 89,187,107,104, 62,175, 52, 29, 5, 29,232,164, 71, 4, 49, 74, 56,212,112, 31,109, 13,207, 46, 35, 2,220, 50, +227, 55, 35, 56, 41,183,131, 4, 42,111,157,203,208, 64,163, 78,179,181,237,160,113,217, 58, 43, 22,237,119, 69, 52, 19,173,170, +110,115,170, 9,183, 65, 12,104,193,131,199, 1,119,180,182,255,170, 72,201,123,143,253,236, 49, 79, 30, 38,196, 69,234,102,154, +192,222,161,163, 56,191,155, 16,163,244, 38, 97, 60,122,248, 20,110,232,240, 79,254,139,191, 15,103, 13,188, 68,138,149, 8, 99, +156,162,224,193, 19,193,165,155, 56,146,197,146,128, 33,241,222,143, 54,171, 98,103, 41, 89,245,101, 46,146,145,168,113, 55, 34, +163, 9,103,137,124,167,245, 8,188,184,117,114,126,124,153,201, 40, 49, 72,193, 37,114, 57,105,114, 9, 45,168,105, 83, 37,230, + 51,189,191,146, 85, 79,154, 73, 78, 48, 57,142,145,178,184, 71,143, 75, 22, 41, 79, 41,217, 44,139,249,226, 26,200,137,118, 87, +129, 38,217,199, 94,226, 81,155,135, 97, 1,223,148, 54, 25, 89,148,110,163, 40,245,115,194,170,246,220, 18, 32, 65, 34, 27, 64, +113,119,179, 70,160, 62,134, 92,221, 19,139, 48,134, 18,251,188,196,192,178, 38,113, 82, 59, 10, 80,170,218,219,230,255, 57, 95, +168,177,233,213,246, 7, 0,194,122, 53, 96, 77, 43, 92,157, 63, 5,164,135, 77,194,206,211,117,220,100,239, 28,111, 48,206, 51, +230, 0, 60,115,118, 2, 2, 33, 36,116, 44,250, 21,194,126,139, 32,192,122,213,227,135,190,239,123, 65,194,152,198, 17,127,245, +103,127, 10,155,163, 99, 12,206, 68, 1,156, 49,176,157, 75, 52,184,184,193,229,185, 31,140, 75, 27, 0, 96, 49, 1,100, 49,207, + 51,122,215,193,117, 22,247,238,156, 86, 33,149, 8,134, 97,192,126,220, 99,191,149,136,100, 77, 97, 27, 34,128,117, 29,188,159, + 83,171,215, 68,108,109,224,106, 0,228, 44, 58, 12, 81, 45, 79, 20,157,243,197,230, 23,138,160,170,246,243, 57,146, 27, 67,192, +126,154, 74,171,126, 12, 1,155,205, 6,207, 62,115, 15,125,223,225,242,242, 10,247,238,222,193,187,143,158,224,122,187,175,153, + 0, 10, 46, 66,134,203,162, 94, 14,210, 82,195, 91, 50,107,208,164,141,189,132,166,106, 4,106,130, 23, 81,178, 19,130,170,189, +138, 52, 67,114, 49,166, 33,214,248,207, 69,195,146, 22,181,140, 18,194, 73,122,206,114,164,169,136,182,108, 73,237,228,229,172, +249, 16, 74,122, 93, 16, 65,152,125, 51,138, 35, 74,157, 68, 68,198,129,238,198, 48, 51, 36, 4,240, 60, 35,204, 51,194, 52, 33, + 76, 19,192, 30, 14,177,227, 98, 10,176,138,227,181, 74,164, 62, 97, 6,118, 91,244,125,143,121,179,174,150,212, 98, 89,171,129, + 37,220, 16,184, 84,161, 46, 75,253, 23, 85,251,110,137, 31, 81, 81,208, 41, 92,135, 77,236, 22,138,214,116, 72, 61,132,103, 17, +111,241,161,103, 6, 65,238, 34,144,169,243,116, 82, 35, 52,150, 36,114,190, 37,139, 36,109,250, 92, 52, 83,173,186, 95,219,245, +116,224, 84,177, 71, 82,142,119,102, 69,179, 19, 53,214,100, 53,134, 37, 37,163, 20,168,129, 64, 43, 98,147, 4,250,206,233, 57, +241, 13,153, 70, 12,220,182, 13,209,154,226, 69,202,243,215,164, 82, 74,211,217,168, 16,123,180,194,185, 18, 25,152, 79,158,203, + 95,170,122,211,179, 81,149,178,215,192, 27, 0,193,126,187,131,120,143,144, 54,116, 99, 8, 39,235, 30,119, 55, 3, 54,157,131, +233, 28, 38, 31,176,219,238,241,177,239,253, 2, 46,175,119,184,124,124,137,207,253,249, 47,224,226,226, 6, 87, 23, 55,120,248, +228, 2, 79,159, 94,227,201,249, 13,110,118, 99, 2,193,152,106,219,160,106, 9,178, 38, 2, 58,202, 30,144,184,206,209,147,153, + 54,111,225,242, 32,182,100, 49, 36, 85,180,138,231,203,104,193,164,142,103,229,251,172,246,142, 28, 0, 16,197, 87,249, 6, 90, + 2, 29,242,159, 1,243, 45,144, 7,212,135, 44, 47,185,172,210,211, 88,135, 17,164, 86, 20,215,138, 56,155, 87,139,125,171,104, +197,234, 98,134,102,150,175,225, 26,162, 68,117, 75, 92,164, 38, 75,137,178,118,168,185, 28,233, 27, 76,119, 54,232,192,207, 89, +248,244, 36,202,102,201,139, 60,104,129, 52,169,108,234,115,139, 98,187,171, 36,235, 15,128, 43, 52, 39,146, 74,197, 85,153,209, +186,221, 42,192,170,115,184,127,178,129, 51,113,145,177,214, 70,132, 49,168, 88,216,190,242,250, 59, 32, 97,220, 61, 61,198, 55, +223,124, 39, 94,127, 55, 96,220,111, 99,216, 11, 4,127,237,103,127, 18, 95,251,198,107,120,229,165, 23,240,109, 31,255, 40,206, +238,156, 97,179,234,209,247, 61,250,213, 10,253, 16,201,112,113,131,143,158, 92, 71, 38,110,246,153,156,229,103, 88,107,209,117, + 14,155,205, 17,108,231, 34, 52,166,235, 98,149,108, 29,140,181,176,214, 96,157, 40,115,211, 56,226,122,187,197,245,205, 14,119, + 78,239, 68, 59, 87,178,179,133,212,186,149,196, 96,103,239,147,215, 31,105,156, 67, 57, 43, 37, 89,171, 66, 75,224,202, 57,211, +121,166,111, 12, 58,107,112,180,138, 0,155,213,208, 23,103,192,253,103,238, 97,179, 30,240,244,226, 18,207,221,191,135, 15,191, +248, 92,220,184,185, 85,233,198, 52, 69,163, 92, 39, 40,243,102,214,185,215,136,213,167,142, 48, 46, 51, 97,117, 44, 43,129, 73, +101, 65,227,218,175,164,234,118, 41, 25, 20, 69, 50,186, 8,128, 80,104,149,220, 1,163, 52, 14,173, 27, 6, 41,141, 0,218,123, + 83,170, 93, 45, 31,106, 57, 48,252, 52, 71,168, 76,211,233,231, 82,132, 64,146,202, 91, 66,193,236,250,121,198, 60, 77,152,119, + 59,236,111,174,177,223,222, 96,191,221, 98,119,115,131,113,183,197, 56,142,152,253,140, 16, 98,248, 78, 8, 81,204, 25,188, 71, +152,246,232,174, 46, 82,135, 47, 23,137,234,122,230,234,149,185, 25,161, 29,240, 74, 74, 96, 76,222, 27,234,239, 77, 22,105,154, +132,196, 54, 41,203,141, 84,144, 9, 81, 35,196,203, 30,124,163,208,177,249, 87,142, 82, 37,165,109,160,130,151, 78,107, 95,186, + 81, 73, 89,104, 68, 41,102, 26, 69, 63, 51, 56,112, 33, 45,102,210,160,166,124,200,162,235,208,252,106, 0, 92,245, 96, 67, 18, +169,164,145,193, 82,112,133,104,227, 33, 57, 69,217, 53,190, 99,237,241, 83,105,110, 74,181,220,250,242, 90,159, 63, 26,112,192, +225,169, 75, 74, 91, 84,233, 51, 75, 74, 86, 78, 70,167,214,163,167, 2, 97, 84, 3,173,158,172,148, 0,121,127,117,137,222, 0, +182,119,160,142, 64,236,113,103,211,227,120,232, 96, 72,240,242,119,127, 1,127,240,219,255, 4,215,219, 61, 62,252,234, 39,241, +254,215, 94,193,131,143,126, 22,255,239, 23,127, 3, 63,254, 87,126, 9,255,244, 31,255, 42, 40, 8,182,222, 99,158, 3,246,163, +199,241,153,133,192, 37, 56,127,222,140, 83, 32,134,115,105,142,155, 34, 9, 81,177,176,146,170, 87, 18, 83,116, 0,139,193, 5, +218, 90, 66, 74,117, 71,141, 1,189, 85,239,138,250,134,140,180,135, 27,226,116,211, 19, 43,181, 56, 41,135,131,220, 34, 68,147, + 3,172,175, 40,225, 89,238, 38,200,130, 1, 84,242,158,243,231, 84,200,198, 42,164,163, 38,144, 34,139, 65,154, 10, 87,106, 24, +131, 22,210, 9,168,145, 97, 72,251,196,171,189, 62,177,146, 69, 5,177,136, 74,116,210,237, 50,212,107,213,228, 97,180,110,186, +148, 4,168,186, 77,229, 15, 45,186, 71,244,129,210,250, 70, 89, 67,234, 30, 70,153,155, 17,238, 88,193, 73,223,161,179, 14,150, + 8,189,179,152,156,131, 15, 30,228,129,135,143,159, 96,156, 38, 4, 16,118,227,132,155,155, 45,102, 16,246,227, 22,115, 96,156, +172, 6, 60,119,255, 46, 78, 78,142,241,151, 62,255, 23, 48, 56, 7,103, 13, 58,107, 99, 21,109, 13, 40,189,182,201,153, 1, 9, + 78, 68,157,171, 66,157, 84, 13,231,207,231,250, 1,126, 26,203, 92, 53,222, 74, 22, 68, 38, 65, 90,226, 12, 62,134,188,108,208, + 13, 67, 92,252,192,176,112,152,167, 9, 28,124, 28, 15,100, 37,188, 8, 40,132,196,130,161,218, 81,201, 11, 47, 25,117,105,171, +134, 71, 66,106,241,134,184,225, 88,103,203,236,117,154, 3,134,213, 26, 6,192,189,179, 51,172, 86, 43, 92, 92, 94,225,201,197, + 21,122,103,177,103, 95, 67, 86, 82, 23,201, 90,151,218,208,106,211, 1,154,131,167, 20,169,177, 52,182,169, 74,110, 85,157,185, +218,138, 42, 0,152, 24,155,156,186,115,101, 13,227,210,145,184,197,203,179, 64, 16,183,145,162, 80, 66, 81, 44,194, 61,242,189, +198, 69,236, 22,181, 82, 33, 57, 39,234,166,149,198, 34, 16, 32,117, 35, 77,234, 56, 80,242,103, 11, 11,194, 60, 99,220,237,224, +119, 91,204,187, 29,252, 60, 1,204,209, 1, 50, 25,240,208,131,251, 30, 93, 17, 17,114,185,190,128,129,236,247, 24,158, 60,193, +254,238,157, 5,143, 3, 21, 35,155, 70,143,237,140, 93, 74, 84,114,113,164, 44,218,242,173, 93,186,218,116, 13, 73,234, 24, 82, + 57,108, 21,193, 31, 98, 23,175, 81,148,235,182,125, 22,237,178, 52, 95,121,238,146,198,179, 26, 45, 2,168,171,187,137,165, 13, +183,201, 21,122,254, 85,253,120,138,241, 97,110,113,120, 45,192,222, 5, 61,150, 81,181,249,135, 9, 43,245,251,114, 65,167,150, +168,165,131, 65, 42, 62,182,102,225,150,155, 34, 9,185,116,164,104,253, 17,124,160, 51,206, 95, 88,243,239,100, 97, 75,206,173, + 93, 35, 7, 0,208,250,222, 20, 48,231,128, 97, 19,255,236,118, 63, 98,156, 61,216, 7,172,108,252,217,215,251, 25,193,207,112, +150,240,199,191,243, 63,163, 31,122,156,117, 29, 94,255, 87,255, 61, 30, 60,184,139,163, 1, 56,233, 8,191,255,235,255, 11,238, +159, 30, 97,211, 59,140,227,140,237, 20, 49,156,110,183,199,126,118, 17,121,105, 34,234, 16,185,205, 76, 53,216,128, 80,231,102, +140, 36, 78, 75,237,149,242,112,103,239,114, 82,110, 50,171, 54,187,154,235,228,239, 81,164, 37,253,212, 89,187,170, 26, 84, 54, +123,157,122, 41,129, 93,194, 87, 74, 30,153, 35, 5,199,168,195, 16,149, 76, 97,180, 4, 39, 21,158, 34, 13,237, 38, 55,131,162, + 1, 50,174, 95,138,138,103, 20,212, 85, 39, 73,165,185, 22, 41, 84,107,182,204, 52, 60,118,133,119, 44,126,122,109, 77, 82,147, +129, 40,144, 51,197,195,171,103, 64, 37, 38, 81,116, 68, 45, 26,218, 19, 41, 20, 40,212,225,177, 10, 27,227,207,176,116, 64,112, +106,192,156, 31, 36,185, 43,207,128,112, 51,199, 15, 33,192, 72, 64, 8,140,222, 70,234, 22,216,192, 25, 74, 63, 75,240,135,175, +189, 3,102, 65,215, 37, 48,164, 53, 24,247, 51,156,181,248,177,239,255,110,188,243,238, 67,252,149,159,251,105,184,161,135, 51, +177,202,183, 38,181,220,157, 75, 42, 95, 91, 14,158, 81,201,174,242, 30, 50, 96, 37,137,155, 0, 96, 88,109, 16,230, 57,186, 67, +114,104, 74,110,231, 6, 15,200, 12, 50, 4, 67, 54, 70,116,122,143, 49,120,184, 97,149,196,116, 83,105,141,138,228, 92,234,196, +225, 79,213, 56, 41, 84, 41,140, 41, 85,108,134, 85, 21,118, 3,135, 82,221,251, 16, 9,116,113,147,143,118, 52, 63, 79, 56, 59, +222, 96, 53, 12, 8,214, 70,103, 64,223,163,115, 22,199, 71, 27, 56, 55, 97,187,159,202,194,109, 77, 20,138,137, 2, 69, 17,197, +239,171,204, 62, 83,252,138,161, 68,210,204,224, 26, 99,212,158,203, 11,136, 87,212,115, 24, 83,147,247,162,142, 46, 65,153, 80, + 57,238,162, 3,178,114, 71,146,177, 0, 62, 73,235, 38,106,132, 95, 58, 3,163, 30, 82, 67,182,171,113,188,183, 24,145,146, 71, + 41,167, 65, 50,237, 46,117, 69,140,137,216,108,226,248, 61, 91, 14,209, 29,192, 1,126, 26,177,189,185, 1,239,247,152,167, 17, + 33,132,232,242,233, 92,217,184,188,115,112, 69, 84,198,165, 26, 15,204,176, 87,151,176,199,199,152,157, 83,207, 44, 39, 24, 76, +234, 98,240, 98, 12, 43, 58,173, 83,217,134,160, 82,191,165,110,182, 17, 11,108, 84,122,165, 74,108, 52,117,198,157, 43,116,101, + 6,168, 21,145,161, 34,168,132, 81,107, 29, 80, 66,193,234,232, 88,121,225,211,124, 59, 19, 0,185,217,208,165,116, 61,218,180, + 80,131, 54,194,118, 97, 5,147,195, 1,180,192, 36,139,113, 61,252, 48, 73,252,222,111,245,161,233,243, 64,106,189, 83,179,121, +212,185,122,179,225, 67,110, 29,160, 23,186,209, 7, 72,141,155,108,118, 28,174,143,153,189, 45, 10,208, 65,137,186, 35,202, 71, + 47, 7,114, 59, 46, 85,157,239, 44,156,181,240,126,134, 15,140,113, 63,129, 16, 48, 19,224, 76, 36, 32, 13,171, 14,195,170, 7, +194,140,121,126,138,243,224, 97, 87, 27,216,224,193,134,113,186,234, 33,129,113,126,185,197,246,106,135,155,113, 70,152, 25,247, + 78, 54,224, 4,237,201,202,114,107, 77, 18,202,216,226,111, 20, 99, 10, 11,218,228, 48,136, 36,114, 49,148,211,154,148, 46,160, +225,252, 82,225,131,231,238, 69, 99, 42, 16,101, 78,204,243,114,169,244,190,104,129, 72, 36, 58, 42, 17,236,113,195,229,116, 20, +203, 89,207, 74, 69,207,249,160, 84,110,222,108,211,201,254,226,132,170,204,249,234, 36,101, 35, 38, 48,162,248,221, 32, 59,233, + 72,114,200, 65, 43,148, 43,235,225, 98, 22,157, 21,255, 77,123, 74,205,220,178,139, 66,207,187, 72, 85,220, 82,240,154,162,112, +158, 84,200,115, 21, 26, 3, 5, 17, 33, 37,120, 81,109, 86,212, 25,165, 20,101,174, 30, 91, 45,176,179,116,152,106,144,219,129, +164, 5, 38,121,142,155,254,212, 87,254,244, 53,220,241,113,195, 49,226,225,236, 0, 70,136, 73,130,194,120,114,179, 67, 96, 15, + 33,224,222,233, 49, 30,157, 95, 97,156, 38,136, 48,126,238,199,127, 20,255,251,111,254, 11,252,157,127,247,151,209, 15, 3,140, +115,232, 19,134,212, 90,155, 20,234, 49,149,208, 36,113, 13,153, 72, 90,203,209,182,148,161, 58,101,148, 38,176,198, 69, 81, 90, +185, 23, 57,241,181, 99,251, 92,146,176,142,147,234,222,218, 14,182,239, 49, 12, 27,132,224, 49,222, 92,131, 83,101, 45, 62, 20, +171,171,132,172,183, 56,140,203,228, 50,126, 9,106,254, 29, 98,251,182, 36,135,133, 72,166,203,255, 45,112, 9,237, 89, 13, 67, +238,173,195, 57,135,213,106,192,253,123,119, 49,116, 61, 94,123,235, 29, 24,227,211,134,155, 54,164,212,121, 16, 91,221, 61,171, +161, 87, 58, 32, 46, 99,201,220,121,106,196,166, 73,124,102,148, 90,220,100,200, 16,199,141, 61,111, 38,249, 53,162, 38, 41,179, + 34, 76,169,234, 53,140,168, 50,214,181,207,188,222,105, 85,129,111,212, 51, 19,231,211, 33,132,164, 85,144, 4,212,137, 46, 19, + 99, 80,198,111, 4,137, 42,107,102, 88, 0, 86,226, 1,137,216,195,132,232, 65, 55,193,131,102,143, 35, 18, 92,142,123,236,182, +219, 72,217, 76,154, 42,239, 67, 92, 91,189, 71,239, 44,186,212,169, 20,174,250, 32,239, 3,108, 8, 88, 93, 92,128,238,221, 43, + 27,158,118, 44,197, 67, 80, 29,241, 74,201, 62, 95,234, 12,164,153, 55,139,202,178,104,187, 95,148, 18,206, 4,100, 35,197, 47, + 11, 0,141, 53,170,141, 93,233,156, 36,212, 16, 44, 83,116, 79,210,226,212,238, 77,252, 46,185,240, 9,168,116,154,165, 92, 3, + 82,163, 5, 46,226, 65, 81,107,138,110, 78, 73,189,143,136,234,168,111, 9,202,214,107, 78,118, 77, 81, 92,199, 93,205,176,160, + 69, 16,192,161,171,162,100, 98,103,155, 80,230,190, 55, 4,174,202, 93,167, 37, 12,134,128,219, 0,178,185,101,101,104,217,179, + 87,191,167,234,149,206,255,138, 85,128, 12, 45,248, 35, 7, 36, 59, 16,206, 54, 71,224,213, 57,176,114,232, 12,224,167, 17, 52, +143, 48, 18,176,221,123,140,222, 99, 29, 28, 16, 4,179, 48,126,240, 47,253,117,252,206,111,254, 31,184,124,247,155, 8,126,132, + 79, 74,234,161,239, 48,108, 86,184, 11,194,205,110,130, 23,193,110,156,209, 13,125,105, 31,147, 49, 88,173,215,141,239, 50, 29, +247,178, 60,187, 68, 50, 54,214, 59,149,143, 43,106, 92, 17,131, 72, 76, 11, 50,205,202,126,245, 29,229, 36, 48, 74,150, 26, 73, + 27, 45,140, 84, 97, 30,167,147,104,170,220, 13,155,194,181, 46, 75,133,212,188,114,189,132,136,106,107, 51,155, 2,129,160, 69, + 27, 76,251,176, 99,123,138,219,156, 99, 50, 81,152, 4,197,134, 78,240, 29, 81,224,250, 70, 67,183,104,253,148,214,214,129,147, + 34, 30, 94,106, 11, 52,205,189, 20,188,161, 17, 28, 50, 55, 3, 59, 86,228, 45, 81,135, 43,157,103, 32,170, 37, 88,147,175,148, + 10, 94,169, 87,231,121,198,229,213, 22, 79,207, 47,113,113,121,141,237,118,143,221,110,135,113,220,194,207, 19, 66,240,144, 60, +239, 52,177, 21,184,221, 94,227, 39,191,253, 21,240, 76,176, 26, 53,155, 78,249,175, 61,190,138, 85,101,106,157,251, 4,161,249, +215,190,227,147,248,181, 95,255, 45,252,173, 95,250,183,176, 90,173, 99,182,121, 66,149,154,188,113,154,252, 43, 86,224,100, 13, +196,184, 4,193,145, 50,163,206,148,187,162,176, 78,222, 93, 9,177, 29, 27, 55,244,180, 81,100, 53,114,240,177,114, 48, 0,147, +193, 60,238, 19,236,195,196,116,195, 84,209,115,250, 59,162,176,177,162, 43,187, 76,233, 19,129, 88,151, 14, 61,136, 66, 45, 1, +152,125,137,251, 12,115, 72, 1, 45,113,131, 15,193,199, 77, 94, 4,150, 0,132,144, 26, 80,132,206,117,216,237,246,176,214,224, +244,120,131,113, 14, 96, 68,158, 39,167, 25,181, 73,215,128, 76, 12,101, 58, 62,222,160,105, 93,161,174,131,154,235, 13, 21, 33, + 74, 10, 0,195, 9,118, 66,101, 99,151, 98, 65,163,180,225, 20, 24,141,242,139, 87,166,121, 94, 11,120,225, 96,175, 80,146, 34, + 74,205, 7,253,116, 96,141,135, 20, 41, 54, 44, 66,172,182, 13, 81,202,152,175, 7, 94, 8,195,230, 13, 63,228, 3, 48,131, 56, + 0,193,131, 66, 0,241, 12,225, 25,247, 54, 3,190,254,248, 73,189,255,133, 97,157,197, 52, 25,204,157,195,208,119,232,156,139, +221, 0,105, 19,210,140,103,240,205, 53, 86, 39, 39,128,181,106, 19,172, 97, 52,203,182,188,134, 36, 85,129, 91,213,233,228, 32, +152, 24,170,105, 10,152, 39,239, 83, 4, 13,165, 18, 88, 75,202, 66,170, 84,171,208, 77,179, 28,174,147, 90,227, 37, 84, 75, 17, + 52,243, 51, 95,174, 27, 53, 73,164,162, 26,156,101,166,206,172,242,226,165,166, 90, 74, 37,207, 69,200,145,118, 20,201, 65,167, +176,232,167,178,186,138,227,174,232,114, 43, 88, 7, 80,177, 82,225,105,203, 1,145,105,224, 30,162, 82,172, 32, 10, 38,163,213, +199,185, 82, 38,220,138,248, 40, 96,147, 92,249,208, 34, 53, 72,104,209,162,165,154,193, 46, 82, 35,245, 14,166,244,130, 54, 30, + 22, 56,127,255, 49,142, 57,192,116, 22,182,115, 48, 70,112,247,184,199,204,140,241,209, 37,142,187, 14,199,199, 43,236, 67,180, + 13,124,235,181, 63,197,147,119,223,130,247, 19,198,201, 67,152, 49,207, 1, 97, 37,176,235, 1,155,227, 13,186,190,195, 59,231, + 91,236,124, 0,108,128,113,174, 88, 16,134,174, 83,177,128, 20, 17,174,168,128,146, 40,184, 86, 85,225,173, 35, 11, 41, 59, 24, + 25,105,132,107,249,164, 74,172,133, 92,181, 82, 71, 66, 99,178, 80, 82,160, 75,189, 30, 82,103, 20,185, 26,226,236,173,206, 97, + 15,121,214, 70, 7, 56,192,114,210, 21, 53,154,209,149,124,113, 51, 64, 97, 96,147,111, 52,182,198,210,193,193,232,141,126, 41, + 9, 79,183, 43, 47, 15,106, 74,101,138, 54,182, 84,138,150, 79,147,168,180, 24, 15,106,126,143,162, 94,133,106,169, 17,161, 16, +222,106,136, 67,189,191, 69,205,220,243, 40,107,158, 38,236,119, 35,110,174,111,112,113,121,133,235,171,107, 92, 95, 93, 65,252, + 8,146,104,161,180, 68,152, 60, 99,246,113,227,217,143, 35,230, 16, 48,205, 30, 34, 2,159, 54, 31, 16,129,131,135,165,151,211, +108, 51, 91,192,226, 38,119,126,179,195,236,231, 34,236,185,184,217, 3, 0,214, 67,143, 63,254,234, 55,240,249, 31,250,126, 60, +120,240, 0,142, 24,126,119, 9,244, 43,160,235, 65, 68, 41, 18, 85,141,189,172, 1, 92, 95, 92, 47,113, 14,234,227,102, 27,124, + 25, 35, 69,113,149, 7, 89,115, 72,248, 67, 37, 13, 2,177, 93,207, 0,194,184, 7,165,214,188, 0,240,126,142,173, 95, 31, 91, +220,217,146, 22,237,106,146,170,198,204,105, 72, 8,222,188, 54,132, 0,241,190,180,214, 69,193, 74,188,143,207,102, 72,200,219, + 56, 47,142,222,234, 26, 16, 18,255, 30,135, 0,151, 4,125,155,245, 26,195,205,136,209,179,130, 6, 37,193, 85,138,215, 52,100, +113,180, 94, 23,229,179,136,130,131, 44,245,143,233,222,176, 9,215, 91,121,226, 41, 35,128,146,149, 83, 85,249, 92,170,210,236, +193, 87,243,219, 50, 41,147, 10, 63,186, 45, 55,156, 43,171,162,232,146,146,133, 55, 35,132, 33,137, 87, 23, 34, 99,159, 56,106, + 24,202, 24, 37, 61, 35, 54, 71, 74,167,120, 87,147,132,140,148, 60,251,134, 25, 61, 4, 27, 2,158,187,115,138,215,223,123, 20, +159,155,212, 1,232, 58,135,185,235, 48,205,115, 76, 18,180,174,140, 38,106, 54,133, 7,247, 3,236,118, 11,115,114,162,198, 95, + 74, 25, 37, 10,182,165, 52, 13,101,244, 32,173, 94, 32,127,143, 6,212, 36, 77,230, 52,189, 60, 10, 73, 81, 7, 49,226, 86,109, + 55,194,166, 58, 96,138,126, 43,179, 91,148,107,161,100,162, 84,179,107, 9,174,206,224, 54, 13, 82,210,150,189,116,223, 50, 43, +107, 27,234,158, 70,170,192,105,228,114,234, 11,170, 49, 63, 92,125,244,170,216,102, 80,116, 34,136,198,234, 73,203, 84, 47, 74, +205,172, 44, 94,144,219, 52,213, 45,103, 18, 55,158,115, 94,134,123,220,142, 5,171,115, 84, 58,216,158,151,132, 46, 58, 96,126, +181,200, 90, 13,183,105, 66,106,252, 84, 30,120,176,224,164, 39,140,204,120,114,113,131,253, 60, 3, 32,220,236, 13,246,251,152, +198,246,173, 47,127, 9, 71,142, 32, 39,107, 76, 62,194, 52,246,147,199,229,232,193, 55,123, 28, 29,111,224,250, 14,199,155, 30, +187,209,195,123, 6, 17,195, 25, 11, 67, 6, 71,199,235,210, 22, 74, 99, 93,176,137, 9,109,217,187,173, 65, 20,114, 11,247,190, +204,108,160,194, 67,116, 38,123,201,244, 38, 5, 85, 16,160, 48,225,147,253, 70, 76,153,153,115, 43, 37,140, 55, 69,206, 19, 78, + 27,123,246,144,235, 13,157,154,188,101, 41,241,169, 34,203,141,252,182,223, 83, 33,186,197,215, 79,173, 72, 36, 22, 50, 41,100, +236,129,119,173,190,190,166, 76,105,160,145, 72, 75,180, 47, 66,170, 5, 6,180,102, 14, 44,102,231,250, 1,228, 22, 5, 27,231, +170,132,155,155, 29,118,187, 29, 46,207,207,177,189,190,193,180,191,193,184,219, 97,187,219, 22,213,178,164, 13,100,242, 51,230, + 57, 10,145,230,121, 46, 66, 37, 24,139,113,154, 49,207, 51,166, 57,110,114,158,115,120, 4,151,247,203, 92, 95,143,210, 2,157, +171,169, 55, 30, 61,109, 4,167,227, 60, 39,123,216,140,143,190,242, 2,190,231,187,190, 51,169,228, 3,152,128,153, 3,174,159, + 62,130,247, 30, 6,130,245,241, 41,142,207,238,162,239,122,116, 38,161, 90, 65,144,224,251,226,105, 64, 0, 0, 32, 0, 73, 68, + 65, 84,163, 32,142, 34,222, 53,182,165,227,166,203,222,195,118,189, 82, 88,115,177,105,129, 40,182,211,133, 65,198,162,239, 87, + 48,100, 48,209, 8, 63, 79,152,120,159, 54, 93,174,247, 74,206, 13,151,236,178,145, 58, 10, 33,163,132,178, 57, 12,166,250,219, + 37,248,164,209,142,173,127, 9,190,216,162, 56,196, 95,146, 66,109,152, 25,158, 76, 68,190,206, 62, 89,234, 66,218,156, 9,125, +215, 97, 10, 83, 92,112,173,105, 36, 70,214, 70, 52,237, 48,116, 5,253, 90,168,129,101,241, 70, 25, 43, 21,192,145,169, 41,138, + 13,173, 85, 42,180, 40,219,230,160, 54,131, 66,184, 32, 29,230,132,130,128,174, 46, 38,213,144, 45,163, 49, 73,247,173,148, 14, + 95, 60, 36,166,214,122,234, 88, 88, 97, 88,174,213,119, 17,178, 17, 42, 7,128, 72, 81, 25, 37,254,217, 84,177,231,103,168,115, + 22,119,214, 61,158,172,123, 60,124,242,180,164,185,217,201, 96,236, 28,134,174, 67,223,197,106,221, 89, 91,149,219,233,208,135, +121, 70, 55,142, 88,109,142,210,216, 71,150,244,112, 53,222,146,134, 89, 82,108,179,217, 17,148,212,235, 84,194,111,170,160,208, +228,207,149,243,234, 75,124,170,202,232,144,184, 46, 35, 41,200, 27, 45, 76,233,240,181,185,241,213,141, 3,165, 72,143,219,123, +169,206, 25,141,221,171, 69,223,162,145,117, 83, 10,188,146, 68, 44, 92,174,123,164, 70,123,205,235, 64,197,113, 38,107,158,163, +228, 87, 54,217,255,216, 16,179, 22, 98, 93, 45,108,203,120,189,124,244, 41, 61, 34, 86, 23,225,131, 97, 58,237,190, 78, 8, 89, +109,185, 80,249, 29,120, 0,245,182,174,124,237,180, 0,212,232, 19,109,110,103,173,251, 30,188, 31,225, 82,123,122,183,245,184, +190,188,198,118, 28, 97,141,193,209,209,128,121,102,120, 17, 76,227,132,112, 37,248,143,254,254,127,139,255,228,239,254, 77, 56, + 71, 8,214,224,120,189,194,229,195, 11,248, 57, 96,183, 27, 49,172,250, 68, 16, 51,240, 16,176, 15, 56, 89,119, 96, 19, 85,198, + 69,144,150,192, 40,104, 54, 74,169,164,177,198, 14, 8,149,161, 44,133,237,156,127, 78,211,162, 95,122,165, 18, 96, 38,231,155, + 75,185, 97, 82,187,220,160,156, 45,139,218, 32, 89, 50, 36,101,179,231,248, 86, 13,177,104, 24,233,133,190,148,218,115,106,187, +215,172,118,110, 78,158, 84,224, 69, 57,143, 56,102,168,167, 22,151,170,216, 69,249,199,151, 41, 63,117,110,222, 38,179, 85, 16, + 85,154, 37,114, 76, 87,170,109,115, 89,136, 65, 85, 80,134,206, 66,151,200, 26,152, 71,143,247, 31, 62,194,163,247,222, 3,252, +132,155,155, 43,176,159, 18,132,197, 99,242, 17,212,209,185,120, 8, 36, 34,140,211, 12, 99,162, 32,139, 0, 88,107,162,160, 40, +179, 0, 4,152, 67, 92,252,166,105,130, 15, 17,109,202, 57,222, 82,181,248, 61, 51,156, 49,152, 75, 4,101,108, 87,111,167, 25, +239, 95,239,224,172,197, 28, 98,101,113,119,211, 97, 63, 78,112,206,226, 47,254,232, 15,195, 56, 23, 91,227, 94, 32,102,192,213, +197, 99, 92, 60,125,138,237,110,143,187,119,238,224,102,191,199, 91,111,191,133,211,211, 51,220,189,255, 0,155,147, 51,244, 93, + 7, 67,177, 69, 30, 35, 81,251, 58, 7, 12, 1,174, 95,149,193, 31,243,156, 4,114, 14,214,118,240, 97,134, 88, 65,231,214,232, +251, 85,108,207, 11, 99,181, 58,194,100, 44,246,187,235, 18, 77, 43,136, 9,131,165, 37, 74, 10, 68, 34, 28, 23,124, 21, 20, 34, +217, 31,206,161,116, 5, 96,108,220,144,210,123,139,172,238,108,125,243, 8,105,227, 70, 18,208, 89, 17,248,192,152,231, 25,193, +199, 67, 84, 72,163, 40,231, 28, 32, 99,150,116, 66,115, 64,172,139, 89,241,198,216, 10, 32,162,148,140,144,211,215,164, 85,105, +103, 81,161,104, 97, 72,230, 40, 72, 22,131,154,131, 81,146, 65,108,185, 26,209,247,183,168,184,229, 42,122,109,245, 67,202,243, + 34, 21,164, 18, 66,188,111, 76, 94, 38, 67, 72,248,214,204,104, 15,160,224, 11, 96, 38,139,141,137, 90,148,105,142, 60,205,214, + 45,230,172, 14,143,162,205,231,207,142,241,248,233, 57, 46,118,219, 50,122,232,156, 67,215,247, 88,245, 93, 68,244,166, 54,124, +222, 96, 77, 55,192, 6,198,228, 61, 58,239, 35,231,191, 86, 41,135,145,206, 5, 50,147,186,125,146,181, 20, 42, 64, 75,119,154, + 83, 23,209, 38,123, 98, 30,129,100, 6, 1,104, 1,216,146,196,172, 16,237,245, 95, 22,157,218, 51,159, 3,188, 42,174,183,229, + 16, 72,233,114, 75,171, 47, 94,172, 63,181, 27,216, 8,140,147,190,130,155,224, 19,197, 16, 1, 55,124, 23, 29,125, 43, 16,184, + 34,168, 72, 80,144,165, 62,183,206,214, 51, 31,216,150,155,153, 82,123, 84, 68, 51,138, 91, 60,103,109,197,127, 16,185, 91,117, + 4, 4, 13, 42, 19,141,210, 79,207,145, 88, 1,104, 4, 68, 56,192,202, 53,168,146,180, 80, 71,117,174, 20,203,129, 53,132,205, +102, 5, 22,193,241,241, 10,211, 52, 99,232, 45,142, 79, 78,225, 5,240,129,241, 15,255,179,191, 7,102,198, 56,199, 42,102,154, + 2,214,155, 21,230,155, 61,194,236,177, 7,208,187, 24, 73,121, 51,122,244,214,180,136,216,204,244, 33, 46, 98,177, 34,228, 42, +167,127,190,197,174, 38,153,221,144,218,208, 84,236, 28,249,228, 88, 22,140,132, 96,101,125, 24,144, 42,155, 97,164,205,211,196, +247, 16,171,242,154,204,149,119,156, 34, 64,228, 52,211, 41,121,223,139,100, 29,169,162,148, 66,156,163, 37,194,181,158, 46,169, +180,144,114,224, 77,138,143, 44,109,237, 44,196,108,243,134, 15, 0,195,139,217,146, 22, 4,161, 38,150,215,145,128,104,214,186, + 52,135, 2,157, 52,104,136,176,219,207,120,244,238,187,120,231,173,183, 17,194,132,203,139,115,136, 4, 4, 31,162,250,215,217, +130,211,132, 4,204, 1, 88, 15, 29, 66, 0,246,251, 17,206, 86, 47, 39,135, 25,134, 12,118,163, 47,213,227, 52,207,176,174,139, +109,224, 16,210, 44, 61,192,123, 15,159, 18, 17,125,138,185,100,209,254, 84, 52,128,148,119,159,156, 23,142,128,103,198,247,124, +219,199,240,245, 55,223, 67, 96,198, 23,126,226,135,176, 62,218,196,247,154,186, 64,126,218, 98, 61, 12,112, 15, 30,224,120,220, +227,225,251,143,240,222,251,143,113,122,188,129,159,246,216,222, 92,225,238,179, 47,224,206,157,123, 88,173,215, 48, 20, 21,191, +156, 81,160, 17, 63, 6,144,133, 72, 72,243,243,180, 49, 69, 52, 76,154, 81,118,232,251, 85,228,194, 59,131,121, 26, 49,251, 41, +225,101, 45, 56,248, 52,230, 73,213, 69, 74,194,201,152, 85,136, 41,172,240,172,216, 46,209,155, 10,185, 26, 21,212, 62,250,218, +153,193,169,147, 0,201,237,102,174, 88,104, 0,211, 52,163,239, 28,188,143, 29,186,248, 75,181, 64,245, 8, 81,101, 12, 88,235, + 18,153,238,100, 57,193, 78, 53, 12,169,245, 45,137,227,236,109,153, 10,121,163,145,170,239, 72,182, 86, 61,170,202,250,144,188, +177,215, 72, 97, 81,194,208, 84, 53,146, 82,172, 20, 14, 44,151,103, 57,166,210,133,226,106, 16,142,163, 11,147,175, 95,170,188, +193, 28, 71, 26, 69,178,100,106, 16, 15,171, 1,166,186, 46,145, 1, 20,210, 33, 75,208, 27,194,203,247,239,224,241,197, 5,118, +251, 41,197,169, 90,244, 62, 96, 14, 1,189,117,232,187,152,242,103,140,129,177, 14, 67,191, 2, 91, 3,207,177,155,208,119,110, +161, 45, 64,219,169,105, 92, 81, 82,236,117,148,236,132, 21, 5,157, 14,164, 38,253, 44, 83, 61,233,241,223, 81,113, 90,228,206, + 1,167, 32, 21,206, 7,198,178,158,153,202,252,201, 22,187, 69, 61, 80, 56,240, 16, 16,155,228,234,145, 74, 26, 72,135, 33,205, +162,168, 29,139,122,175, 69,254, 77, 20, 30,183,235,123, 93,253, 98, 23,220, 64, 16, 14, 4,228,180,200,176,112, 81,245, 27, 51, +100,151,229,159, 52,117,111, 58, 33, 10,167, 20,153,122, 74, 42,254,244,180, 43,112,163, 45,110, 69,248,135,116,184,197,230, 79, +248,255,145,189, 74, 7, 9, 68, 80, 73, 59,173,254,189,114,203, 39, 63, 3,179,135, 97,194,202, 16,134,213,144,102,103,192,197, +205, 22,251,253, 12, 97, 70,215, 57,172,215, 3,134,147, 83,244,171, 53,152, 5,211, 52,195, 90,134, 79,207,215,170,239, 98,117, +230, 25,187, 48, 99,232, 58,108,134, 14,222, 11, 70, 22,108,200, 96,232,251,218, 10,202, 10,106,174,246,112, 74,202,243, 40, 24, + 74, 40,198,132,139, 53, 70,107,249, 77, 73,245, 42,115,106,169,177, 60,185,162,201, 27,102, 77,156,170,251,112,214,198,113,193, + 27,234,110, 10, 87,229,103,230, 83,231, 88, 74, 34, 29, 85,223,182,127, 22,224,141,133,244,161,116, 14,218,168,201,116, 99, 7, +181,153,155, 28,193,155, 58, 9, 58,209,173,209, 73,202,237,193, 62,121,251, 47,236,252,195, 89,103,158,101,102,229,177, 15, 1, +231,143,159,226,205, 55,223, 2,249, 61, 30, 63,126,140,222, 1,219,253, 4, 75,128,133,193,197,213, 21,250,126,192,110,191,197, +201,122,136,155, 92,194,126, 30,245, 14,115,240,152,166, 17,100,128,217,123, 12,125, 95,158, 52,239, 61, 66,152, 17,130,199,236, +227,133,155,230,136, 64,245,222,167, 57,121,106,107,138,196, 13, 29,132,144, 18,162,124, 8, 81,165,238, 28,156,139,182,179,155, +121,194,235,239, 63,133, 1, 48, 7,198,179,167, 39,248,250,235,111,131,137,240,137, 15,191,136,151,158,127, 14,214,185, 84,249, +207,240,115, 0, 66,156,239,205,129,177, 31, 61,214,235, 13, 94,121,177,199, 52,142,120,231,225, 35,248, 16,240,220,197, 57,246, + 47,190,130,251, 15,158,199, 48,172,224,172, 45,115, 71, 6,129, 56, 96,246, 99, 28,223,164,185,165, 24, 37,166, 67,164, 39, 90, +215,163,235,215, 8,243, 12, 65,156,109,207,126, 46, 45,111,206,176,163, 12, 0,225, 56,191, 7, 87, 38,133, 44, 70, 45,133,192, + 21, 66,218,135,162, 80, 78,210,123,144, 84,145,150, 88, 79,174, 57,216, 44,130,121,142,218, 3, 31, 66, 12,124,241, 30,211,236, + 49,251,144,146,201, 66,179, 94, 80,142,197,164,248,221,191,242,210,115, 77, 14,182,246, 46,231, 57,104, 80,155,132,190, 69, 73, + 9, 70, 65,117,126, 94, 34, 60, 36, 81,206,168, 82,203, 74,133, 87,196,151,109,240,143,166, 25,234, 58, 45, 87,178,236, 57,218, +251,178,114,154, 3,144, 66, 86,114,170, 31, 56, 68,119, 67, 86,113,231,209, 16, 49, 36,227,160, 51,191, 66,171,172, 19, 76,198, +123, 15, 63, 71,149, 59, 51, 99,176, 22, 47, 61,115, 7,127,248,141,111,197,138,216, 58, 76, 65,224, 25,232,123, 65, 31, 24,150, + 8,221,106,133,222, 18, 86, 93,151,226, 88,171,230, 33,111, 78,204,213,202, 35, 44, 77,186, 95,246,176,115, 26,157,196,131,101, +170, 80, 51, 99,223, 80,105,197,231, 46, 10, 17, 69,203,177, 10, 88,145,138, 58,201,204,182, 34,232,102,133,107,166,133,103,190, +182,224, 57,101, 79,164,202,190, 36,231,153,186, 6, 73, 13,138,201, 81,210,185, 91, 64,198, 64, 66, 75, 26,173, 14,158,236, 89, +175,158,121, 73, 34, 78, 42,123, 43, 85, 49, 94,131,169, 20,184,188, 24,178,201,145,128,241,212,140, 66,185,169,155,101,161, 36, +165,102, 85,108,221,167,236, 97, 21, 10, 18,173, 46, 42,122, 19, 7,198,241,102,163,111,243, 97,111, 83,191, 47,219, 33,139, 41, +187,246, 23,222,114, 16, 16, 1,206,211, 73, 82,246, 35, 70, 18,248,217, 65,172,195,126, 59,226,250,250, 6,219,253, 88, 64, 22, +144,152, 27,126,117,125,131,199,239,189, 7,215, 57,116, 46, 42,112, 77,246, 54,154,184,161,175, 7,135,237,205, 8, 54,140,174, +119,216,250, 0,155, 22, 57,151, 64, 24, 80, 74,106, 83,196,123, 84,178,157, 75,138, 73,237,197,199,141,189,216, 6, 85, 30,183, +198, 7,228,107,163,162, 4, 69,251, 48,179,231, 61,101, 45,139,212, 74, 66,183,255, 72,205,120, 26,218,154,180,169, 56, 85,204, + 39, 85, 81, 94,205,161, 85, 72,170,102,218, 53,122, 85, 74, 75, 50,243, 6,168, 88,105, 12,216,160,201, 85, 39,232,160, 12,106, + 19,247, 68,117,133, 22,211,117, 81, 26,142,122,202,143, 7,163,253,110,143,135,239,190,135,247, 31, 62,196,241, 42, 10,198,166, +235,115, 92, 92, 94,160,119, 61,174,111,182, 32, 16, 38, 63,198, 86,163,159, 48,178, 71,239, 98, 32, 73, 22,105,173, 87, 27,140, +227, 12, 31, 2,134,190,199,126,191,135,112,192,245, 52,161,239, 99,100,104,144, 56, 99,246,222,195,251, 0, 24, 11,107, 93,108, +251, 34,182,130,103,239,147,232, 43, 47,243, 92,211,252, 36,110,170,228, 28,142,142,142,176, 94,173,112, 49, 62,194,197,126, 42, + 42,246,253,110, 15,227, 6,192, 16, 62,244,226,243,112,233,121,243,179,199,110,191,199,184, 31, 49,123,159, 24,248, 1,236,167, + 20,102,228,177, 31,103, 88,235,208,247, 61,200, 58, 92,157, 63,194,246,230, 2,119,159,121, 14,167,167,119,176, 90,111,208, 91, + 11,146,100, 37, 11, 33,229,136, 39, 46,123,170, 68,172,237,225,134, 78,109,194,209,194,201, 28, 48, 77,123,248,121, 6, 75,101, +129, 51,106,204,170, 32, 41,234, 75, 53, 24, 55,202,108,219,204, 62,246, 42,206, 78,121, 3,193, 39,145, 89,136,109,230, 36,232, +147,228,115,103,213,177,153,189, 71,103,163,205,110,154,230,194,241,102, 70,169,220, 9, 82, 4,129,241,254, 51,232,186, 14,206, +245,120,238,217,123,229,153,164,156, 91,176,172, 36,179,109,181, 1,149,139, 90,116, 15,117, 66,153, 71,110,140, 41, 44, 6, 20, +148,113,235, 56,225,166, 69,155, 81,200, 92,240,162,245,251, 9, 37,144,133, 82, 69, 45,243, 28,149,235,194,209,101,145, 54,119, + 42,227,206,248,247,114,180,106,233,176,230,136, 85,225,242,153, 56,196,215, 8,126, 78,135, 53,143, 57, 29,216, 54,157,195,253, +179, 99,124,235,253,243, 88, 60,144,129, 24, 15, 47,192,108, 3,142,214,107,116,214,161,223, 28,193,173, 86,112, 67, 31, 69,197, +166, 6,153,176,218, 17,152,149, 16,179,140,201,116, 90, 28, 85, 58, 39,183,238,142,210, 81, 72,182,204,130, 35,207,216, 92,221, +193, 83, 64, 24,225,234,149,207,163, 60, 22,211,206,195,179,246,133, 53, 15, 36,174,227, 68,209,209,164,137,166,113,175,143, 7, +140,120,224,176,176,150,147,115,133, 27,232,151, 33,179,200, 82, 49, 77,150, 99,137,110,205,137,127,156, 11,109, 82,194, 59,129, + 43, 89,217, 74,160,198,186,228, 98,213,230, 76, 49,112, 76,148, 16, 12, 25, 82,161, 96, 30,137, 49, 94, 4, 11,122,162,144, 75, +212,220,174, 85,167, 37, 81,254, 84,146, 5, 36,254,192,129, 47,139,136, 86,170,158, 96,189, 59, 41,193, 9, 68,176,238, 7,128, +167, 24,234,226, 61,206, 47,111, 32, 28,112,116,247, 62,246,239,190, 3, 88,160,235,122, 32, 48,238,125,236,219,241, 43,255,193, +127,140,235,235, 75,252,167,255,225,223,138,167, 74, 23, 49,178,235,245,128,174,235,112,185,189,198, 48,244,216, 12, 61,246, 62, + 96,109, 98,123,196, 36, 79,108, 77,239, 41, 38, 87,245,249,100, 1, 78,169, 86,168,226,167, 38, 29,151,152, 67,118, 14, 69,116, +208, 22,139,114, 71,177,162,244, 49,178,211,187,170,238,165, 52, 56, 68,164,182,182, 53,158, 85,235,156,243, 44, 73, 43,242, 83, +133,159,191,251,202, 93,206,234,242, 66,195, 81, 41,101,210, 86,243,156, 70, 19, 9,192, 96,154,192, 6, 42,153,247, 36,183, 29, + 12, 53,145,170,109, 51, 81, 10,203,121,248,222, 99, 92, 62,125, 2,139,128,243,243,115, 24, 8,252,184,199,205,108, 34, 3, 28, +130, 59, 39,199,120,252,228, 9,246,211,140,245,208, 99,158, 99,199,230,244,244, 24,215,215, 55, 37,229,122,246, 30, 16,198,110, +183, 67,191, 58,130, 21,198,126,183,131,129, 96, 78,115,201,113, 26,147,109, 48, 45,162, 18,253,210, 66,136,145,189,160,136,204, + 76,243, 78, 1, 48,107,197,191, 73,170,239, 84, 93, 12,195, 10,189, 53,216,237, 71,188,119,113, 25,171,120, 17,172,173,197,204, +140,239,251,244, 71,241,149,111,190,133, 23, 31,220,135,117, 93,234, 8,120, 92, 95, 95,227,252,252, 2, 79,159, 60,193,118,187, + 5, 0,172,134, 30, 71,235, 21,134,213,128,213, 58,226, 97,137,128,139,171, 27, 60,121, 58,131, 67,192,213,229, 53,158,127,225, + 37, 28,159,158,225,120,189,130,235, 7, 88,219, 85, 80,143,250,206,251,126, 40,155,200,209,241, 29,128, 5,243, 60, 97,183,191, +193, 52,141,165, 77,155,197, 76,156, 90,164,146, 24,239,100, 76, 93, 68, 85,186, 33,140, 77,226, 45, 83,109, 59, 65, 83,184, 80, + 90,176,101,161, 77, 62,246,104,177, 75,196, 75,137,223,249,110,156,138,152,140, 83,231,159,243,129, 43, 68,173,130, 77, 27, 5, +153,248,251,174, 95, 97, 24,134, 40,242, 82,155,139, 49,185, 50,203, 85,122, 80,104, 89, 81, 13, 68, 42,145,167,185,178,203,173, +223,194,227,160,106,187,204, 84,185,124,223, 51,161,193,113,138,182, 92,233, 96,145,252,108, 39,159,120,116, 69, 82, 9,162, 9, +243, 4,147, 54,115,195, 81, 40, 71, 28,162,109,173, 60,171,185,165,206,149, 92, 87,230,209, 40,185, 22,144,252,154, 89,232, 57, + 97,154,226,175, 16, 2,142,134, 30,125,223, 97, 76,118, 56, 10, 28, 55, 46,215,161, 59, 62,198,250,248, 8,195,209, 17, 86, 71, + 27,216,174,135,117,182,117, 81,165, 53, 38, 22,221,188,176,239,182, 27,122, 73,108, 99,181,113,155, 90,220,229,251, 36,114, 29, +164,133,102, 45,214,208,252,217, 89,185, 42,242,193,136, 62, 40,231,189,158, 58,226, 33,132,114, 34, 15, 53, 97,100,100,234,198, +110,200, 64,136, 75, 81,200, 92,115, 83,140, 49, 77, 91,189,228,170,104,188,122,113, 37,104,116,172,148,110, 64,222,143, 29, 41, +239, 37, 55,150,103, 83,197, 11, 42,180, 64, 24,117,142,145,127,136,161,114, 51, 20, 4,167,100, 74, 14, 14, 19, 93, 22,115,243, +204,131, 35,189,176, 21,102,160,106,229, 42,112, 41, 84,130, 92,139, 72,164,106, 3, 80,135,129,190,235,176,234, 9,132, 62,249, + 86,165,204,219,174,207, 31, 99,179,234,112,118,122, 92, 60,195,188,189,192, 63,248,123,127, 23,126,142,213,215,245,126, 6, 25, +193,213,110, 68,240, 1,103,103, 39, 24,214, 61,196,199,118,206, 44,192, 20, 56, 37,184,153, 2,156, 17,106,231, 39,135,204, 81, +186,229, 43,170, 27,249,173, 50,132, 37,156, 69,101,242, 26,212, 27, 32,135, 21,148, 86,103, 82, 71,178,202, 4, 23, 85,181,211, +146,106,133,172,165, 88,124,255,185, 13,196,113, 14, 87,247, 91, 86, 20, 75, 81,199, 45,170, 7,137,210,121, 20,128, 13, 36,121, +213,133, 13,140,225,226,189, 39,196,182,124, 40,247, 94,211, 6, 88, 84,234,181,189,117,179, 29,241,240,237,119,241,232,201, 57, +194,254, 58,138,210,198, 29, 12, 1,125,239,208, 25,131,253,110,135, 93,250,182, 28, 9, 46, 46,247,232,173,193, 54,120,132,137, +177, 29, 39,116,150,112,126,126,145, 62, 76,102,174, 39,123,212, 60, 99, 27,174, 32, 32, 76,227,190,108,248,134,128, 32,136,132, + 55,196,135,118,246, 30,206,186, 50,115, 13, 44,232,156,131,112,192,148,230,191,157, 53,152, 83,176, 73, 1,133, 36,170,156,136, +192,179, 32, 8,240,123, 95,253, 38,152, 25, 43,235, 48,135,128,239,254,206, 79, 97,154,103,188,248,236, 93,156,157,156,192, 57, +155, 22,137,216,106,190,190,217,226,225,163, 39,120,231,225, 35,140,179, 71, 16,193, 81,239,176, 90,173,112,239,236, 4,247,239, +158,225,248,120,131,174,235, 48,165, 48, 20, 63, 77,248,214, 27,223,196, 48, 12,184,255,236,125,220,125,230, 1, 78,142, 79,163, +242, 29, 20,171,245, 84, 17,133,100,193,203, 36,186,235,155,167,152,167, 41,217,215,166, 66, 87,100,174,185, 7,140,232,143, 15, + 28,202, 12,189,120,188,165,110,116,217, 98, 7,205,126,207, 60,248,212,205, 8, 25,203,156, 3, 89,210,166,158, 84, 32,241,251, + 14, 1,215, 55, 55,232,250, 30,157,181, 8, 2, 4,142,225, 78,211, 28,197,138, 70, 5, 83, 1, 17,239,220, 15, 43,124,236, 35, + 47, 41, 39, 13, 45, 73,218,101,179, 40,121,217, 74,240, 74, 13,176,186,230, 97, 64,141,171, 76, 17, 30, 74,113,130,228, 82,156, +160, 2, 7, 84, 17,212,152, 9, 83,107, 56,110,232,169, 35, 99,226,189, 21,188,199, 60, 77,137,197, 49,195, 8,195,130,225,114, + 94,120,122, 93, 35, 92,103,195, 33, 65,132, 18,201, 47, 95, 87,201, 65, 46, 28, 53, 38, 33,181,223,167,121,194,126, 76,191,166, + 9, 28, 24,103,155, 21, 30, 94,239, 83,183, 42,173, 19,206,161, 95,175,113,124,231, 12,253,176, 66,183, 90, 97, 88,175, 83,110, +128,169, 48, 22,237,205,134,206,236,137,237,108, 99,109, 97,117,132, 20,237,154, 91,215,180,172,208, 37,129,101,116, 50, 90, 51, +220, 65,209,110,112, 8, 85,143,145,235, 36,170,164, 57, 81,215,186,208,228,184,218,166, 69, 65,173,178, 87, 29, 84, 91,233, 48, + 4,147,233,126,105,180, 99,138, 85, 52, 84,107,176,193,130,245,110,202,225, 38,161, 70,146,248, 88,103,177,235, 54,124,124, 24, +156, 78,174,170, 21, 95,220,221,205, 2,173, 75, 57, 53,134, 20,179, 58,181,171,152, 3,140,106,179,151,133,255, 86, 63, 27, 45, + 90,233,217, 91,205,138,145,172,200, 14, 75, 0,247, 98, 78,159,103, 77, 89,100, 70, 77,178, 75, 52,247,191,255,198, 27,120,114, +181,197, 6, 30,155, 85, 23, 5, 18,166, 75, 52, 42,139,142, 4, 87, 55,219, 40, 52, 32,224,249,231, 95,194,143,252,204, 95,198, +245,249, 99,252,218,127,243,159, 99,146, 45,246,115,192,236, 25,163, 4,220,108,247, 56,123,230, 12, 79,159, 94, 69, 59, 17,128, +217,115,228,106, 91,135,174,235, 21, 82, 55,239, 71,166,108,186, 37, 75,183, 17, 60,232,209,129,105,231,115,205,130,161,174, 87, +115, 56,168,216,213, 70, 89,156, 78,250, 21,181,153,219, 62,164,102,241, 10, 48,195, 84,160, 50,133, 96,151,171,139, 18,156, 66, +165,197,105,242,226,141,232,135, 47, 1, 41,162,168, 79,148, 88,239, 89, 85,207, 41, 63, 61,165,186,102, 38, 54, 21,123, 91,136, +194, 66, 20,181, 95, 62, 69,168, 60, 2,194,236, 25, 15,223,127,138, 39,143, 30, 99,218,221, 96,158,246,113,129, 75,190,238, 92, + 93,207,243,132,105, 4, 64, 22,206, 0,211,236, 17,242, 98,234,103,236,167, 9, 97, 26,177,101,151, 54,156,168,226,157,189,143, +150,177,144,146,198, 72, 64, 93,135,235,155, 27,108,142,142,224,172, 73, 51, 65,198,232, 25,171,161,135,159,125, 17,203,116, 93, + 31, 55,242,174, 3,200,194, 88,193,126, 55,197,153,174,106, 3,134,192, 25, 26, 93,132,168,227, 52,195,186, 9,126,246,120,239, +241, 99,236, 83,174,122,224,128,239,250,246, 79, 96,112, 29,254,232, 27,111,226, 11, 63,250,231,226,236,189, 31, 34, 92, 36,253, +190,239,123, 28, 31,173,113,247,236, 4,219,221, 14,215,251, 9,204,140,171,235, 45,182,151, 55,120,231,157,247,113,255,153, 51, +188,248,194,115,184,123,122, 12,207, 1, 83,170, 90,124, 8,144,247, 31,197, 69,124,220,225,248,238,125,244,235,147,184,176,178, + 32,120, 15, 16, 99, 24, 54, 88,173, 79,112,254,244, 33,118,219, 43, 56,219, 71,208, 12, 39,213,186, 72, 12, 93,201,135,193, 76, + 26,236,186, 68,174, 75, 11,119,190,191,184, 18, 32, 37,169,254, 57,205,225, 57, 39,141,101,175, 47,115,209,245,100,112, 76, 36, +202,133, 82,145,173,134, 1,227, 52,225,226,242, 26,253,208, 71,145, 22, 71,252,110, 8,105,134, 75,166,116, 14, 12, 25,116, 93, + 15,231, 58,124,232,229,231, 43,221,234, 22,129, 47, 11,151, 42,253, 54, 49, 48,137,166, 38,202,193, 18,152,129, 82, 57, 69, 89, + 12,167,103, 36,109, 38, 36,139,110,164,148,249, 82,177, 55,165,107, 5, 8,172,117, 73,152, 25,224,167, 41, 86,212,227, 20,121, + 1, 28,224, 72,224, 8,209,114,139,100, 85, 99,142,233,119,169,131,198,222, 71,223,127, 34,229, 9, 85,126, 59, 7,159, 44,131, +161, 88, 50,199,105,198,110,154,176,223, 79, 24,125, 20, 67,174, 87, 3,246,115, 40, 99, 16, 16,129,172,195,122,115,132,213,122, +133, 97, 88,161,235,187,232, 60,200,173,246, 92, 20, 72, 77,154,203, 72, 85, 32,145, 16, 11, 97, 48,190,114,169,110,213,214,144, +131, 82,200, 82,219, 54,151,170, 72,103,170, 62,115,225, 26, 63, 91,102,248,121,252,167,162, 80, 69, 17,174, 26,202,167,202,222, + 8,196,165,211,168,173,138,148, 90,233, 77, 36,108,227,246, 17, 21,173, 90,123, 40,208, 2,100, 37, 70,151,165,204,172,152,206, +226, 90,235,154,141, 36,219,132,204,130,199,174, 62, 40, 53,177,171, 85,177,222,108,222,134, 98,220,229, 1, 59,238,131, 60,109, +202,220,207,213,130, 86,246,133, 76, 25, 19, 52,156, 93,237, 82, 47,143,213,114,192,110, 0,107, 12,198,125,164,120,109,131,199, +115, 71, 43,220,191,119,252,255,241,245, 38,191,150,101,215,153,223,183,155,211,221,230, 53,209,103, 48,251,100, 39, 82, 37, 22, + 37,168, 74,150, 74, 70, 9, 80, 73, 85,240,192,246,180, 70,254, 15,236,145,167,158,248,111,240,208,240,196,128, 1,195, 3, 27, + 5, 91, 54, 92, 85,164, 85, 5,149, 26,170, 72, 49,217, 38,201,100, 54,204,140,200,140, 23,175,187,247,158,102, 55,203,131,181, +246, 62,251,220, 8,138, 64, 34, 82,161,140, 23,239,221,123,238,222,171,249,190,223,135,207,174,247, 8, 46, 96, 24, 29,162,115, +168,180, 66, 93,105, 84, 77,133,203,207, 62, 65,219,117,248, 63,254,167,255, 5,227,232,208,181, 53, 76, 77,184, 30, 38,248, 24, +225, 38,143,175,127,243,247,240, 31,254,252, 91,216,247, 83, 46,170,173,164,105,173, 86,237,242,131, 78,203, 78,251,120,188,162, +212, 82, 85, 89,134, 54,148, 65,180,116,244,231,168,228,189, 38,113,200, 2,205, 75,185,224,153,145,139,170,232,206,177,196, 44, +102,200,202, 76,198,202, 62,216, 4, 58,200,107,246,152, 71,133, 58, 9, 93, 18, 22, 17, 71,148, 36, 96,161,218, 87, 50,137, 33, +157, 92, 23, 90,214, 64,197,218, 32,101,174, 71,100, 46,114, 8, 17, 55, 55, 7, 92, 93,239,176,223,221, 98, 26, 14,152,220, 4, + 80, 68,240, 14, 20,217,226, 68, 20,209, 84, 21, 42, 99, 68, 50, 24,113,232, 7,128, 28, 66, 82,204, 19, 80,105, 62, 32,186,166, +134, 51, 6,222,141,232,170, 10, 74, 43, 12,147, 71,144,220,109, 79, 26,135,190,135, 2,176, 89,181,188, 47,119, 83,193,143,214, +232, 26,238,160,147,250,214,128,149,241,105,111, 74,196, 54,187, 40,135, 20, 73,135,239,124,170,214,185,123, 11,114,184, 28,134, +158,119,244, 20,241,227, 15,126,149,119,160,186,174,241,189,159,254, 18, 77,221,224,119,127,243, 43,184,119,231, 28,149,224, 96, +181,214,104,180,197, 58, 68,156,157,109, 49, 13,123, 28,246, 7,124,126,117,141, 87,207,206, 80,213, 13, 2, 20,156, 28,200,183, + 55, 3,126,122,243, 62,238,222, 59,197,195,135, 15, 80, 55, 21,124,140,240, 97,146,112, 34,194, 56, 12, 56,155, 38,220,185,247, + 0, 88,159,115, 23,163, 53,154,110,139,166,233, 48, 76, 3, 92,240,176, 85,187, 20,173, 5, 63,167,169, 41,205, 80, 27,154, 89, +241, 52, 63, 49,128, 8,224,178,248, 41,141, 92, 5, 89, 76,208, 25,112,146,127, 77, 65, 37,224,241,188, 11, 62,115,204,211, 33, + 13, 0,171,174,131, 82, 6,251,113, 66, 24, 70, 64,241, 62,221,201,229,149, 44, 90, 90,105, 24,107,208,180, 29, 54,235, 53,140, +209, 11, 41, 15, 33, 53, 54,148,191,246, 66, 8,251,178,222,133, 94, 60, 0,179,205, 84,146,129,242, 52, 79,168,112,137, 58,161, +168,116,120,136,191, 67, 97, 46, 2, 18,193,142, 8, 90, 25,254, 60, 5,143,224,153,168,231,189,131, 27, 7,140, 67,207, 30,117, + 68,182,152,105,166, 20,230, 11, 61,206,137,121, 36, 46, 2,159, 58,246, 50, 50, 84, 58,245, 40,108, 5,231, 28,166,201,161,119, + 30,253,228, 56, 6,216, 71,104, 93,193, 86, 42, 59,112,108,205,235, 30, 91, 85, 92, 8, 91, 86,195,163, 72,232, 76,207, 67, 90, +214,101,171, 93,242,181,167, 84,183,212, 17,103, 16, 90, 9,152,154, 67,107,210,133,174, 18,104, 39,242, 84, 34,221, 24, 94,235, +226,231,154,139,196,108,217, 45,181,231,165,250,255,104, 92,179,176,110,211,220,144,106, 53, 67,183,102,231, 70,201, 0,152, 59, +117,165, 69,167,145,146,226,244,139, 46,159,101,218,202,203,127, 51,105,150, 44,189,100, 79,169, 36,212, 35,230,124,207, 57, 86, +114, 14,184, 40,242,163, 19, 59,122,241, 77,207, 0, 6,168, 95,159, 68,121,188, 40,162,133,209, 30,203,224,146, 18, 80,128,165, + 5,101,174, 15,104,166,132,139,136, 0, 80,112, 19,227, 43, 27,173,241,249,245, 30,181,213, 56, 28, 70,182,127,120, 30, 5,218, +186, 70, 87,107,172,214, 29, 12, 52,254,135,255,238,191, 65,140, 10,135,195, 1,186,174,176, 62, 61,193,221, 19,143,139,203, 61, + 78, 31, 60,194, 15,254,242,207,121,220,170, 21, 66,138,170, 20,184,193,122,181, 90,254,204,234,216, 34, 61,239,214,168, 4,228, + 20, 3,182,164,228, 95,200,108,104,134,214,164,128, 18, 77, 47,176,124,103, 95,235,226,117, 43,152,212,180, 0,183,205,229,145, + 66,225,159, 76,202,245,185, 35, 74,120, 66,254, 51, 50,250,202, 25,230,115, 76, 46,202,143, 69,193,242, 86,229,123,172,211,123, +157,178,168,129,168,213,236,196, 32, 64, 41,139, 97, 2,110,174,174,224,220,136,195,126, 7, 55,246,240, 33,112, 98,148,115,176, + 98, 95,177,149, 69,240,132, 16, 8,198, 24,140,206,131,130,227, 3, 49,120, 14, 63,177, 6,149,226, 67,109,136, 4,163, 12, 40, +242,104, 58, 70, 15,165, 45, 38,231,114, 48,200,232, 3,186,218,194, 57,143,147,205, 26,227, 56, 97,116, 14,109,211, 96, 63,244, + 92,153, 11,239, 92, 73,220, 99,140, 17, 70, 25, 24,107,160, 13, 79, 4,106, 99, 64,164,217,238, 38,175, 37, 43,181,231,127, 87, + 74,195, 7,225,130, 3,184,185,221, 99,187, 90, 97,242, 1, 63,254,240, 83, 84, 90,227,149,251,119,176, 90,117,232,186, 14,103, + 39, 39,120,251,141,215,242, 33,105,148,146,110,141, 80, 91,139,182,174,217, 75, 94, 89,124,243,157, 55,112,186,217, 98, 36, 3, +210, 6, 30,192,228, 2,118,251, 29, 62,248,213,175,240,241, 47, 63,197,163,235, 29,222,121,237, 49, 54,155,149,168,247, 7, 12, +227,136,219,219, 29, 46,111,119,216,247, 3, 94,121, 28,209,181, 29,108,221, 33,128,125,217, 93,211,193,187, 9,251,221, 21,170, +170,193,126,127, 11,159, 60,180, 82,172,196,100, 19,178, 54, 63, 67, 64,200,225, 71, 68,122,246, 99, 75, 22,121, 12,142, 47,126, +165,179,149,142,114,194, 85,224, 14, 47, 93,174, 90,129, 60,131,120, 98,140,112,211,148, 49,175, 58, 70,216,202,162,142,132,195, + 48,102, 5,119,136, 73, 67,194,148, 67,101, 52,172,229, 24,218,223,252,141,183,231,184,224,100,101,211,243, 78,150, 34, 73, 34, +156,250,181, 39,219,108,215, 60,154,194,229,144,164, 50,112,115, 46,176,103,176, 38, 45,162, 60,203, 28, 13,146, 88,229, 36,168, +210, 34,148, 99,251,154, 67,244, 30, 97,154, 56, 38,117,156,224,198, 1,214, 26, 56,231, 97,181, 98, 86, 7,241, 88, 29,210,129, + 83, 8,249,239, 74,227,251, 20, 60, 82, 10,202,130, 15,217, 77, 48,249,128,209, 7,244,206, 99,116, 1, 83,100, 71, 75,187, 90, + 99,156, 38,180,109,139,205,122, 37,194, 67,182, 9, 26, 99,242,164, 3,165,184, 85, 58,226, 28, 11, 45, 29, 62,251,192,227, 75, + 22,146, 69,215, 42,159, 87, 45, 63,151, 34, 53,107, 6, 98, 20,136, 78,204, 1, 60, 78,213,139,253,120, 41,146, 59,190, 99,136, +232, 69, 19, 86, 44, 89, 34, 88,172, 92,160, 68,228,171,102,246,123, 90, 81,151,226, 93,150, 46,148,148, 86,205,103,123, 44,180, + 25, 37, 68, 43, 21,148,116, 36,108, 46,189,241, 60,141, 81,197,201,174,102,183, 84,250,173,217, 8,152, 81,137,177,224, 17,179, + 88,106,198,240,149, 9,105,116,148, 82,245,247,119,235,152, 5, 48,197,158,156, 74,158,123, 82,129,235, 66, 42, 89,250,243, 85, + 74, 52,210, 71,129, 50, 4,116, 45,234,190, 70,229, 6,236, 66,192, 39, 55, 61,198, 97,128,139, 10, 15,183, 13,206,206,206,208, +104, 3,173, 34, 2, 17,182,167, 39, 88, 93,183,124, 88,245,138, 25,209,215,183,216,108, 87,232,247, 35,139,151,110, 7,120,101, + 96,181, 70, 21,211,158, 76,195, 26,139,237,186, 43,246, 42,101, 48,236,113,213, 94,188, 58,105,167, 88, 92,240, 12,174, 88,218, +253,162, 42, 56, 13,106,217, 12, 80,230,239, 83,190,236, 19,234, 85, 21, 30,238,121, 51, 33,154,124,162,204,151, 86,208,185, 19, +167, 56,163, 15, 51,219, 95,138, 46, 93,140, 2,151,132, 58,121,136,244,172,220, 85,165,146,190,192, 12,102, 98, 86,154,248,164, + 29,169, 55,140,228,245,183,216,239,118,216,237,110, 49,185, 41,179,198,149, 98, 37,122,101,184, 42,119,142, 69, 79,171,174,133, +137,188,215,173, 13, 64, 30, 24, 38,135,170,170,177,173,106,120, 55, 34,164, 0, 21, 55,194,118, 29,198,145,197, 78, 85,213, 32, + 4, 7, 21, 12,250, 97,132, 81, 60, 74,140,129,109,142,131,139,185, 91, 11,129,215, 77,214, 24, 76, 62,176, 5, 69, 70,199,198, + 24,104,163, 36, 84,132,197, 64, 33, 18,180, 34,140,163,131, 11,236, 49,119, 62,202,126, 48,194, 26,141,144, 19,188,248, 3,244, +244,249, 21,238,223, 57,199,211,231,151,121,255,119,247,252, 20,253,228,112,178, 94,225,209,189,187,104,235, 26,182,178, 66, 13, +227,162,194,104, 3,219,174,160,234, 3, 86,219, 83,220,153, 70, 60,123,118,137, 87, 30,220,197, 73,189,198,100,106, 40, 83,195, + 3,176,207,159,225,231, 31,125, 12,173, 20, 46,174,118,232,251,247,241,250,227, 7,184,127,231, 76,198,186,130, 17, 62,236,241, +171, 79, 62, 65, 8, 1, 15, 31, 60,194,230,204, 64,245, 59, 84,166, 2, 72,161,105,215,240,206, 97,191,191,206, 69,117, 44, 32, + 33, 49, 82,190,100,211,161, 21,131,232,122, 5,201,198, 89,218, 97,166,156, 37, 78, 95,217, 65,137,104,107,214, 22, 82,161, 30, + 6, 42,107, 16,130, 66,180, 54,107, 18, 72, 18,232, 82, 65, 59, 78, 14, 62,120,161,218, 69,233,172,184, 83,111,218, 22,198, 84, +184,123,231, 84, 62,187,201, 82,165,115, 88, 72, 44,197, 89, 11,157,204,203,182,140,234,104,132,175, 22,154,152, 99,234,220, 98, + 27, 90,186, 58,138,195, 34, 74,209,147,254, 91, 14, 77,145,181,131,243,136,206,129,164,232,141, 98, 43, 12, 0,220, 48, 66, 3, + 48,197,165,142, 24,152, 6, 88,116,234, 41, 24, 39,120,143,113,114, 82, 16,207, 66, 69,239, 3, 2, 69,248,192, 62,243, 41, 68, +140, 33,178,141,141, 20,200, 70,212, 74,177,142,161,174,176, 90,175, 80, 55, 53,140,181,185,163, 6,138,244,195, 2,123, 29,105, +142,245,230,184, 95,185,111, 82,204, 40, 10, 55,239, 12, 1, 96, 7, 66,122, 25, 3,229,105,146, 6, 96, 64,208,130,186, 85, 52, +223, 95,123, 91,101, 75, 93,204,151,250, 81,177,128,121,167,175,142,223, 35,122, 73,226,104,222,185,163, 88, 37, 74,196,118,162, +130, 22,246, 94,157, 98, 83,161,139, 24,231, 98, 82,155,214, 44, 74, 1, 20,114,225, 67, 11, 74, 93, 34,145,243,239,217,249, 15, + 28,245,244,170, 16, 78, 9, 32, 37,143,202, 85,145,127, 93,102,192,198,242,110,154,247,105,115,247,249, 34,224,117, 89,189, 22, +106,108,141,163, 78,189,240, 47, 34,153,174,145, 19,152, 64,106,145, 31,172,202,233,131, 82,232,162, 7, 25, 66, 99, 42,180,171, + 14,113, 26,112, 99, 13,222,188,127,138,237,186,195,211,207, 46,177, 7, 67, 64,140,213, 56,252,242,103,120,253,157,175,192,251, + 17,195,207,222,195,211,139, 91, 86,216,172, 91,212,171, 6, 87,159,127,134,117, 91,115,151,238,121,151, 18,133,241,104,140, 65, + 93,215, 98, 81, 89,226,115, 94, 32,193,149,173,114, 17,129,163, 74, 86,106, 10,207, 66, 17,234,146, 34,250,104,233,203,159,161, + 54,200,121,193,139, 61,123, 30,217,207, 31, 38, 42,136,124, 73,228, 24,197,188,147, 31,141,228, 91, 47, 88,142,121,102, 64, 49, + 11, 56,210,129, 77,121, 36, 63,219,114, 80,164, 14,207,196,173, 57, 66,149, 15,104, 78, 19,251,224,231, 63, 65, 99, 13,218,182, +130,159, 60, 90, 75, 24,199,136, 72,220,101,213, 85,133,166,174,178,101,203,202,142,127, 24, 70,177, 41,113,231,213,118,107, 64, + 29,242,129,164,108,131,181,149, 61,120,242, 75, 67,161, 54, 10,164, 45,195, 97, 40, 64,107, 11,144,131,143, 74,162, 74, 53,200, + 71,104,163,176, 31, 38,168,192,108,241,195, 56,194,202,136,223,249,128,186,174,133, 71,206,187, 78,147, 71,239,252, 62, 79,206, +201, 37, 31, 81, 87, 21, 70,199,202,108,166,162,233, 68, 73, 5,160,240,254, 39, 79,241,230, 23, 30,225,233,229, 21,140, 82,216, +172,120, 31,220,214, 53,238,156,158,160,107,107, 38,158,201,101,174,100,118, 98,219, 21, 44,245,232,214, 91,156,140, 3, 84,152, +208,212, 29, 62,191, 62,224,213,251, 45,123,236,109,131, 74,235, 60,101, 88,215, 22,181, 86,184,117, 17,239,254,242, 19,188,126, +187,195,100, 56,134, 71, 0, 0, 32, 0, 73, 68, 65, 84,235,143, 31,162,105,106, 12,211,128, 72, 64, 3,133,155,155, 27, 84,214, + 32, 6,135,166,237, 48,142,131,216,240,248,217, 10,130, 96,205, 17,168,105, 12,143, 20, 25, 43,153, 5,162, 8, 78,163,229,153, + 93, 93,200, 63,213, 60,165,155, 51,185,231, 3,113,142,176, 76,170,121, 45,157, 94, 88,240, 11, 22,232, 78,241,189,251, 72,208, +166,130,138, 46, 95, 0, 85, 85,161,237, 86,248,218,151,223,204,137,131, 42,177, 26, 20,167,176,165, 49,170, 49,229,196,235,239, + 73,159, 60, 18,182,170,163, 4,203,172,180,166, 37, 37,115, 46,148,151,199, 67, 42,106,116,169,156, 79, 23,174,103,101, 58, 5, +207,191,230,125,180,133, 23,199, 79, 25,116,163, 33, 69,148,143,179,232, 47,117,251,226, 58,240, 17,232,251,145, 29, 27,129, 93, + 27, 33,196,108, 7,244,196,110, 12, 31, 1, 71,128,151,201, 71, 8, 1,155,147, 19, 52, 77,131,182,109,208, 52, 13,195, 96,114, +162, 98,204,119, 75,137,158,166, 72, 12, 56, 75, 35,116,196,226,242, 79, 67,196, 57,164,132, 4, 27,108,228,123, 79,103,191,150, + 17,184,213, 90, 46,117,206,133, 71,140, 48, 49,192, 34, 96,167, 77, 30,187, 39, 93, 76, 78,179, 43,210, 9,203,209,121,121,121, +207,193, 45,179, 14,173, 76,119, 76,129, 61, 80, 18, 99, 91,172, 64,179,132, 56,167,245,189,152,137, 18,213,114,194, 51,199, 14, +167,215, 46,206, 95,143,102,162,140,205,106,191,163,222,154, 95, 80, 45,138, 62, 42,130, 84,230, 17,124,146,193, 43, 85,238,103, +245,156,244, 86,166,204,188,112,159,151, 80, 22,181,176,109,100,124,104,169, 1,167,151,120,220,211,223, 75, 73,216,199,180,180, +133,162, 27, 96,219,133,115, 24,125,192, 20, 60, 30,158, 87,152,170, 22,231,247,206, 64,209,227,226, 57,199, 86, 70,239,177,178, + 6, 94, 18,155,126,241,131,191,195,253,215, 94,195, 59,191,241, 13,252,236, 91,223,134, 85, 10, 67, 63,194, 24,205,170, 89,171, + 97, 8,112,177, 36,190,241, 95,106,196, 10,147, 83,211, 8, 47,174, 33,202,187, 60,217,193, 98,178,190, 29,149,239, 49,185, 2, +232,136,193, 66, 47,192, 98, 11,106, 69,110,229,249,192,156,173, 97,165,216,110, 14, 53,160, 25,252,146,112, 12, 81, 30, 60, 53, +239, 19, 75,232, 79, 82,202,166, 79, 43,233,249,231, 32, 93,252,183, 58, 85,150, 2, 46,146,244, 35, 20, 86,142, 57, 42, 87,227, +203, 95,255, 50,254,223,127,243, 23,120,124,106,209, 53, 13,186,213, 6,141, 5,116,181,194, 52,244,232, 71, 57,180, 18, 81, 44, +175, 7, 88,157,157,232, 81,253, 52,193, 26,131,160, 52,234, 90,193, 59, 47,158,219,128,186,174, 48, 57, 66,101, 43,120, 16, 40, + 50,168,100,213, 54,216,199, 30,214,116,136,193, 99,242, 14,209,113,197,122, 24, 6,230,185, 7, 22, 69, 26,205,163,196, 16, 3, +180,210, 24,167,137,131, 81, 36, 33,175,159, 28,148, 49,168,170,134, 61,211,149,193,213,205, 14, 74, 43, 17,107,197,188,178, 74, +171,150, 4, 34,250,248,242, 6, 63,126,255, 67,252,248,163, 39, 92,184, 24,141,253, 48,225,241,195, 83,116,109,139,186,170,161, + 5, 2,166,137, 59, 21, 83, 55,208,182, 66, 67, 60, 29,136,110, 18, 95,247, 53,118,187, 27,252,252, 87, 79,240,218, 67,143,237, +221, 26,147,169,228, 57, 37, 24, 16, 26,107, 49,132,136,222, 69,252,242,217, 13,246,131,199,171, 15,207,177,221,172,160,148,198, +228, 3,118,187, 61, 42,171,177,223,239,177, 94,173,113,178,221,161,109, 59,168,186,131,210,172,250,167,224, 65,178, 82,240,129, + 59, 62,165, 52, 7,157, 68, 30,169, 7,154,167, 56,105,132, 76, 98, 65,138, 8, 25, 40,162,140,145, 48,148,152, 39, 68,101,222, + 64, 6,131, 40,133, 40,140,140, 88, 66, 66,242,232,152,181, 22,233, 53,231, 29,125,204,246, 71, 45, 54, 54,107,107,188,246,234, +195,217,122, 89,136,158,146,141, 78,155,130,155,112,212,170,224, 5, 87, 10, 45, 20,243,179, 0, 57, 85,190, 5,104,131,146,208, +119,137,216, 86,114,164,206,182, 46,157,187,217,212, 73, 70,207,250,143,242,215, 68, 75, 76, 87,130,115, 14,211, 56,242,152, 61, +145, 54, 19,132, 70, 94, 43,190,248,124,126,125, 3, 20, 38,101,113, 24,123, 4, 9,228,201,151, 58,177, 43, 35, 66, 33,128,241, +212,164, 52, 52, 49, 74, 89,137,120,175,105, 91, 84, 21, 35,119, 75,189, 14, 10, 7, 78,210, 70,164,253, 50,164,168, 72, 34, 67, + 18, 7, 15, 31, 44,179,120,143, 66,132, 38, 17,252, 5,159,127, 54,210,134, 69,167,134, 11, 87, 22, 6,122, 46, 90, 2,119,222, + 15,122,194,175, 68, 7,146,180, 9, 20,139,236, 8, 41, 0, 67, 40,246,225,197,202, 84,169, 89,231, 52,219,112,231, 20,191,212, +224,168, 4,107, 82,234, 72,228,166,160, 72,231,233, 55,137,101, 60, 19,239, 10, 94, 72,206,147, 47,156, 23, 73,244,188,224,201, +147,130,229, 11,180,240,144,167,184, 15,185,172,149, 46,119, 10,115, 14,116,140,180,232,228, 74, 30,113,170,220,115,151, 39, 97, + 38,127,255, 12,158, 22,151, 93,132,240,232, 95, 82, 5,171,130,197,152,247, 86,210, 21, 39, 42, 80,190,254, 53,240,236, 87,159, +195,141, 35,172,102,229,103,208, 6,171,166,134,155, 38,220,222,236, 48,184,192, 35,155, 64, 8, 42,160, 61,127,140, 71,111,190, +141,159,252,135,111,163,122,250, 9,126,255,159,255,231,248,223,255,245,191,197,132, 32,213,186,140, 20,229, 67,239, 67,196, 4, +133,149, 49, 8, 82, 37,205,209,126,197,212,224,104, 53,145, 63,192,169, 48,162, 35,250,158, 90,150,110, 42,206,213,129, 18, 33, + 89, 60, 66, 25,206,151,109, 10, 86,157, 3, 96,230, 39, 66, 47,162, 84, 19,142,116, 57, 57, 80,133,109,158,138,226,227,152,177, + 95,136,219,146, 53, 73,198,149, 37,237, 79,101,102,180, 28,229, 81,177,234, 93,198,254,154,176,176, 44,126,247,251, 63,131,115, + 35,126,240,254,103,240,222,227,149, 59, 91,108,183,107,156,111, 79, 16, 67,196,166,171, 48, 78, 30,189,139,168,173,193,237,126, + 15,107,216,122, 70, 20,242,168,207, 90, 11,239, 29,154,186,134,115, 99, 86,161, 54,214, 98,242, 30, 77,165, 16, 13, 63,185,206, + 1,125,112, 8, 20, 80,213,236, 87,175,173,201,185,222, 33, 4, 84, 13, 19,211, 2, 17,200, 7, 24, 99, 16,130, 23, 91,158, 64, + 72,160, 48,142, 19,160,192,137,108,206, 3, 48, 0, 69, 12,227, 4, 99, 52,134,201,205,220,234,244, 26,145, 90, 4, 20, 2, 10, +127,243,179, 15, 81, 9, 13,107, 28, 39, 40,165,112,186, 89,195, 86, 22,198, 86,204,212, 78, 73, 84, 0, 16, 61, 12,106,212,117, +205, 93,200,246, 4,193,141,136, 99,143, 87, 30, 62,132, 11,132,157,155, 48, 61,249, 20,119,238,221,195,166,169,208,117, 29,252, +225, 22, 10,132,214, 40, 28,180,130,167,136,103,183,123,144,119,120,120,239, 12,103,103, 39,104, 26,158,140, 60,123,126,131,105, + 26,113,255,222, 93, 64, 41,220,220,222,226,228,228, 28,117,183, 2, 76,149,133,106, 65,192, 59, 62, 70, 84,117,195,170, 99,205, +184,221,152,114,179,245, 60,102,133,209, 32,239, 69, 24,133,124,121,229, 21,143, 49,208, 49,240,250, 68,161, 88,225,240,225, 78, +137, 54, 71,133,213, 77,118,180, 62,178,144,146,113,177,148,173,115,105,204,107,173, 69,215,173,241,149, 47,190, 49, 39,126,229, +221,127,114,248,204, 0,154, 18,228,153, 21, 40, 47, 21,204,169, 69,114,100,210,173,164,213,102,137,230, 94, 50,182,168,116,112, +206,182,174,244,154,128,197,113, 9,236,227,157,151, 78,125, 18, 80,146, 36,222, 73,242, 93, 98,193, 79,206, 97, 26,165,208, 43, + 8,101,144, 36,188, 20,241,171, 73, 8,128,182,134, 55, 53,156,174, 48,248, 41,227,118, 99,224,105, 71, 76,133, 85,242,182,139, +240,149,117, 11,220, 57, 55, 77,141,166,105,102,235, 51,205,220,116, 42, 96, 48,252,103,229, 8,138, 66,135,204,103, 76,142, 95, +156, 47,244, 24,184, 32,241, 76,110, 84,222,137, 93, 57, 2,198, 64, 27,131, 96,152, 12, 40, 41, 69,108,205,147,192, 31, 77,132, + 74, 87,232,139, 75, 61, 79,135,114,151, 46, 10,121,201,155, 79,216,235,185,207, 84,197,249,169,138, 48,153,148, 91, 80,100, 74, +104, 93,176, 68,104, 17, 43, 61, 55,168,148,249,253,106,177,142,153,233,126,116, 20, 40, 3,154, 45,117, 68,128, 77,214,164, 37, + 47, 93, 46,153,244, 0,103,102,119,250, 38, 84, 62,236, 33, 82,252, 36,252, 74,187, 48, 86,243, 38,206,174, 46,124,227,244, 82, + 76,108,249,123, 60, 35, 72,120, 62,129, 94,168,217, 34, 64, 71, 46,237, 23,132, 10,197, 15,173, 0,184,177,135,169,106, 32, 76, +176, 74,225,242,106,135, 87,238,157,225,118,183,199, 52,186,140, 29, 92,173, 26,156,223,189,139,103,159, 63,197,119,191,253, 30, + 30,126,225, 13, 28,110, 47,176, 62, 57,135, 81, 10,167,175, 60,134, 26, 15, 64,116,156,196, 53,121,168,198, 10,189,137, 96,172, +194, 40,193, 40, 41,221,170,244,151, 30,225, 81,230,203,242, 5, 56, 79, 41, 36, 64, 65, 56,154,125,252,138,232, 69, 46, 62, 29, +165,151, 22, 10,120, 69,169,147,197,162,112, 99,152, 6,228,223,145, 45,133, 9,174,177,176,231,208, 75,160,214, 5, 52, 80,209, +172, 95, 37, 73,177, 80, 71,181, 73,186,204,185,114,230,200,206,121, 42, 51, 79, 23,234,138, 15, 90, 91,241,222,235,201,229, 13, + 62,185,184, 2,197,143,241,224,252, 4,167,167, 39, 88,183, 29,148, 98,236,100,119,247, 28,251,253,129, 59,232,186,129,115, 14, +109, 83, 99,114, 14,214, 86,240,145, 0,109, 1,104,140,227,129,149,206, 98,189,154,124,128, 77,155, 3,173,177,105,106,244,195, +192,251, 89, 31, 96, 20, 1,158, 59,110, 69, 10, 30, 60, 62,103,196, 50,167,178, 69,240, 72,211, 59, 14,168,224, 67,202,192,104, +133,186,226, 12,128,131,172, 6, 38,231,143, 12,207,242, 10,201,123,161, 18,176, 68,139,144, 79,180, 38, 55,163,199, 23,187, 22, + 77, 93,139, 56,142,167, 67, 58, 91, 24, 8,202, 59,152,202, 3,166, 66, 93, 91,128, 86, 8,238, 4,222, 57,168,190,135,113, 14, +163, 34, 12,163,199, 79,127,254,115, 60,190,123,134,223,122,237, 1,254,246,167, 7, 12, 62, 96, 93, 89, 52,134, 5,123, 86, 43, +172,107,139,195,126,143, 97,116, 56, 63,219,162,109,107,180, 2,173,233,251, 30,215, 55,183, 88,117, 29,158, 95, 95, 97,229, 38, + 1,138, 88, 40, 99, 17,156,195, 52, 77,136, 74,195, 52, 45,148,182, 32, 9,141,241, 18,141,170, 52,119,118,100,140,156, 72, 53, + 98,112,243,250, 78,126, 46,173,140,164,143,114,215,206,128, 26, 63, 11,137, 84,193,219, 70, 26,237,243,123,234, 3, 67, 83, 92, +129, 54,141, 66,179,211,154, 39, 8, 77,183, 66,221,118,120,227,181, 87,138, 84,137, 34, 33,145, 88,212,104,140, 46,236, 83,130, + 74, 79,236, 5,245,107,198,239,153,158,167,150, 44, 46,164,189,101, 49, 35,141,200,152, 40, 18,159, 62,219, 7, 85, 78,118,155, + 21,222, 92, 24, 37,108,107,112, 60,118,103, 45,129, 88,219,130,228,203,167,113,185,231,200, 95,182, 93,138,106, 94, 28, 5, 9, +180,162, 69, 72,186,218,108, 96,155, 6,109,183, 69,255,217,231,240,227,132,201,123,246,250,203,106,133,114, 76, 29,223, 9, 38, +111, 64, 3, 63,115,210, 0, 38, 1,241,220,161, 98,177, 95, 95,224,193,169, 72,161,203,103,191, 52,151, 9,146, 19,188,176,235, +153,152, 71,110, 2,188,103,110,190,164,206,193, 90,192, 24, 40,209, 79,168,148, 17,144,116, 25,228,241, 72,143,120, 15, 70, 96, + 50, 36, 99,255,153,219, 62,127,143,233,178, 85,249,109, 68,158,196, 38,103, 88, 41,240,158, 45,102, 90, 82,224, 84,196,114,253, +152,175,231,152, 87,165, 57, 13, 51,119,252,122, 73, 81,165,108,125,152,211, 37,213, 28,161, 5, 82,176, 51,183, 91,191,120, 88, +167,215,155, 37,189, 11,128,138,202, 34,182,121,185,159,147,189,228,197,209,154,237, 57, 74,158,231, 56,227,234,126,173,176,100, +105,155, 91, 18,148,242,214,160, 12, 23, 41, 34,242,162,194,139,217,101, 81, 1,206, 97,101, 8, 55, 33,194, 35,162,174, 43,248, +224, 49, 13, 35, 98,224, 93,217,163,135,119, 80, 27, 13,219, 54, 88,173, 59, 92, 31, 70,108,206,239,224,243,171,103,248,171, 63, +255,183,232,106,139,139,207,158,224,241,118,141,182,174,112, 59, 56,172, 5,251,106,148,226,128, 24,197,107,247,153,148,164,231, + 42, 76,205,254,239,153,158,171,178,253, 43,145,213, 52, 20,254, 94,242,125,222,203,188, 88, 30,169,133,135,242,197,125, 92, 73, + 75,226,148, 61, 30,135,231,177,119,212,115,229,249, 50, 3, 69, 65, 46,202, 30,116,210,153,244,200, 9, 92,162,198, 79, 66, 28, +210,108,121,203,234,118,204,151,184, 76, 42, 98, 17,247, 72, 96,245,251, 59,111,189,138, 87, 31, 63,192, 95,125,231,251, 24,250, + 61,134,225,192, 33, 40, 8,120,242,252, 10, 79, 46,158, 67,105,131,123,103, 39,152, 86,107,172,187, 14,155,174,195,224, 35, 52, + 8,117,213, 98,156, 60,180,102, 95, 58,127,101,139,209, 57,116,155,187,232,119, 28, 23,169,181,133, 86, 1, 46,120,137, 23,231, + 61,121, 93, 85, 50, 46, 87,240,206, 65,215,141,224, 49, 19, 36, 69,195,251, 8,163, 5,248, 65, 17,163,128,139,200, 59, 24, 91, +243, 62,221, 32, 79,174,120,215,206,254,244, 88,182,117, 89,226, 80,208,252,138, 44,131,244, 33,104,106,139,173, 40,137, 53, 84, + 86,243,130, 2, 20, 25, 40,217,207,171,224, 96,109,205,235, 26,163,209, 52, 13,186,110,141, 32,128, 13, 99, 44,234,138, 96,155, + 6, 23,187, 9,219,147,115,252,193, 63,104,240,193,167, 79,240,228,226, 10, 86, 43, 52,150,117, 4,251, 64,120,222,143,176,106, +196,174, 31,112,247,108,139,245,122,133,166,174, 64,116,192, 48,140,172,182,175, 27,108,183,107, 52, 85, 5, 83,213,168, 87, 39, +146,153, 48,161,233, 86,128, 50, 8,226, 66,240,130,121,173,140,129,173,235, 76,181, 34,137, 81,205,196, 15, 17,234, 41,101,144, + 60, 45,164,197,222,228, 61, 72, 25,144,138, 32,242, 11,101, 49, 37, 2,157, 96,125,125,240,217, 58,232,132, 32,167,101,146,163, +181,134,149, 93,250,215,191,242, 86, 78,248, 34,104, 32, 70,104,104, 68, 86, 65, 22, 29, 89,204, 83,203, 89, 18, 67,153,141,255, +107,199,239, 89, 0, 43, 82,160,156,212, 53, 23,205, 90,178, 0, 52, 69,144, 54, 24,180,149, 29,190,153, 47, 72,173,179, 51,133, + 4, 11,236,189,135, 27, 71, 4,177, 89, 38, 32,141,247, 30,193, 7, 56,239,249,191,115, 65, 94, 11,121,253,162,203,221,124,114, + 45, 41, 16,182, 39,167,104, 78,207,176,222,110,209,110, 79,240,228,217, 37, 76,187, 66,116,220,208, 68,197,255,164,112, 25,173, +151, 19, 63,254,190,184,144,186,124,126,137, 71,143, 30, 8,248,106,118, 48,132,120, 68,181, 92, 16,213,150,145,205, 16,129,108, + 12,129,173,171,158, 5,129,138, 34,224,157, 92,238,204,185, 79, 13, 76,172, 2,162, 49,160, 96, 65,214,194,104,197,227,121, 17, +178, 69, 21,161,131,199,185, 82,184, 16,248, 83, 38,165, 70,201, 28,144, 95,151,194,247, 35, 76,121,193, 5, 41,173,221,185,101, +227,108, 87, 62, 47,197, 33, 3,154, 93, 5, 60, 94, 79, 54, 58,169, 14, 73,201, 35, 70,197,184,189, 8, 91, 45,243,230, 23,244, + 79,192,102,235,153,162,101, 80,202,113,136,134, 82, 69, 12, 40,114,170, 14, 45,146,180, 40,179,171,115, 56, 66, 1,110,208,152, +115,187,203, 19,107, 73,140,155,187, 63, 85, 16,153,102,213,168,202, 81,134,203, 17, 53,207,179, 82,226, 89,249,115,140,195, 8, + 13,194, 89, 87,227,208, 15, 80, 90, 99, 58,140,184,255,214,151,241,228,167, 63,194,253,123, 91,172, 54, 29, 40, 68,236,251, 93, +142,148,253,194,219, 95,198,147,159,253, 8, 77,219,225,124,213, 96,220,143,248,253,127,241, 95,224,175,255,221,159, 97,127, 17, +176,158, 28,234,186, 98,223,171,188, 76,218,104,216,166, 41,172,100, 36, 44,121,158, 86,228,215,240, 37, 65, 55, 42,135,162,226, + 40,137, 44, 5,169,205, 54, 49, 42,162,233,242,120,234, 72,133, 27,169, 40,196, 50, 64,134,138,130, 88, 65,235, 88,192,126,104, +150,218,209, 17,123, 64,189,172,247,152,149,188,165,144,133, 52,150, 31,129,200, 7,163, 78, 9,112,201,182, 86, 66, 71, 40, 50, +164, 36,146,116,242, 64,211, 84,248,195,223,255, 29,104,165,240,157,239,254, 16, 23, 23,207, 48,244,123,184,105,228,172,236, 16, +240,244,217, 37, 62,195, 5,180,177,184,127,126,138, 59,219, 19, 52,171, 53,182,155, 53, 86, 93,196, 56, 77,152,166, 17, 90, 25, +132, 8,212, 13,239,201,235,166, 5, 65, 99,232,119,153,185, 77,114, 89, 87, 21,143,246, 83, 80, 78,148,209, 58,137, 8,210,104, +141,209, 57,104, 99, 49, 8, 81,206,170,249, 53, 54, 18,120,196, 86, 35,126, 79,125, 8, 2,178,241, 37,123,168,176, 42,241,135, + 88, 11,129,170,204,149, 78,156,240,117,215, 96,189, 94,113, 17,169, 69,221, 43, 99,123, 21, 35,116, 85, 67,219,138,187,184,232, + 97,180,134,142, 30, 22, 17,117,101,208,212, 21,188,115,128,226,110,171,169,107,120, 31,240,193,167,159,162,169, 42,188,245,234, + 23,112,186,221,224, 71, 31,124,130,157,243,160, 17,232,125,192, 73,219, 96,187,106,113,232,123, 60,121,118,133,237, 97,228, 11, +188,174,160,192,192, 29, 59, 76,184,189,189,197,122,181,194,250,244, 28,245, 20,120, 30,100, 43,172,235, 70, 40,114, 49,143,126, +155,166,129,182, 53,160, 44, 16, 38, 46, 76,160,196,150, 37,234,110, 37, 34,183, 66, 57, 66, 2,175, 33,217,181, 39,133,124, 2, +149,164,238, 60,138,168, 45,200,197,230, 67,128, 19,224, 16, 41, 61,207, 38,149,146,104, 80,139,135,247,239,200,251,108,114, 55, + 4, 45,223, 19, 1,214,178, 2,158,101,214,105,218,165,101,146, 32, 43,173, 20,204,244, 18, 88, 13, 21, 12,108,149,146,198,168, +248, 7, 4,237, 61, 95,236, 18,143,186, 82, 22,211,106, 13, 8,116,136,147,199,116,161, 6,103,186,218, 56,142,178, 47,247, 34, + 8,151, 48, 29,129,196, 36, 88, 76, 42, 94, 3,233,236,229,247,222,101, 45,141, 6, 23,123,213,106,133,122,179,197,250,228, 20, + 85,215,161,106, 59, 76,193, 67, 89, 38,114,146, 78,170,238,121,215,156,227,147,229,125, 10,129,189,242,135, 67,207,190,119, 69, +136, 62,194,249, 32, 62,120,225,211,103,255,248,124, 45, 24,205, 62,118,163, 53, 42,107,217,126, 71, 17,209, 57,248,105,130,155, +198,188, 71, 87,129, 83,232, 40,122, 32, 68, 24,195, 25, 29, 49, 6, 4,107,249,215, 24, 50,116,103,102,119,104,132,224,112, 90, + 25,124, 46,197, 85, 12,106, 46, 12, 23, 93,125,178, 33,234, 25, 18,148,184,252,170,100, 24,148, 93, 27,119,179,145, 56,149, 82, + 17,165,220,151,217,115, 47,235,142,164,255, 35,137,217,230, 97,169,102,150, 60, 21,123,244, 88,112, 3, 22, 22, 57,185, 43, 21, +193,106,165, 16,138,241,231, 75,154, 93,169, 46, 37,207, 21, 71, 65,105, 52, 7,161, 45,188, 82,242,162,169,114,204,252, 82,235, +199,145,144, 68,198, 24, 49, 18, 72,199,101,123, 72,197, 95, 70,229, 15,162,178,160,111, 65, 25,204,149,120,141,232,118, 8, 20, + 48, 58,143,211,179, 13,238, 63,124, 21, 95,251,189, 63,194,255,250,131,239,161, 93,181,217,254,208, 84, 6, 83, 47,249,214,162, +246,188,255,240, 21,169,144,129,223,254,131, 63,194, 95,255,249,159,229, 23, 24, 57, 24, 33, 98,138,220,185, 85, 85, 93,188, 68, +154,147,216, 98, 9, 97, 65,230, 66,191,120, 79,150,156,116,181, 88,113, 35,211,224,244,114,119,147,216,234,185,162,156, 19,244, + 84,233,111, 20, 75, 98,218, 27, 41,201, 88, 79,254,219,185,139, 40,202,180,151,196,160,190,232,187,159,137,113,124, 88, 97, 65, +217, 42,247,247, 51,220, 65,229, 44,226,236,222, 16, 52,168,138,144,128, 33,157, 97, 20,223,252,198,111,192,104, 5,135, 21,254, +253,191,251, 54, 46,158, 61, 1,105, 30,197,165,241,226,211,103,207,241,244,217,115, 84,117,141, 7,119,206,177, 89,175,177, 89, +175,229,242,138,104, 42,133, 41, 68, 24, 91,207,121,211,166,230, 40, 79,226,110,218,128,177,172,156, 11,109, 16, 2,219, 20,125, +218, 17, 66,193,104,142,151,116,228, 97, 37,119, 60, 68,207,162, 53,163,243,165, 20, 66,132, 54, 22, 33, 38,214,120, 40,198,174, +101, 14,178,112,171, 23,185,241, 75,238,127, 36,224,108,187, 70, 43,104, 77, 37, 43, 46,164,188,107, 74,112,142,132, 88, 13,208, +240,176, 20, 80, 81, 68,173,129,216, 54,249, 48,240,129,227,132, 35, 69,156,157,157, 33,134,128,171,195,132,166,233,240,213, 55, +190,128,207,174,118, 24,160,240,246,102,139, 70, 43, 92, 95, 95,227, 48, 78, 80,136,184,222, 29,112,232, 7,116,109,131,182,173, +112,189, 59,192,104,133,243, 45, 11,234,160,175,225,218, 21,148,109,112,231,228, 14,108,211, 65,105,131,105,154, 48,140, 3, 42, +163,115, 10, 33,162,207,129,227,108, 25, 51, 34,182, 2,188,104, 70,120, 15, 42,170,122,109, 5,233, 73,115,160,139,140,150, 99, + 18,224,201, 97, 28,130,135, 23,129, 92,186,216,121, 11, 99,243,243,174,181, 65, 93,183,104,187, 86,166, 24,102, 17,210,146,132, +104, 90,203,152, 90,146,204, 84, 90, 33, 73,250, 95,148,207, 37,228,255, 46,197, 17,153, 62,145, 68, 80, 34, 78, 83,242,126, 41, +130,100,157, 75,167, 30, 3, 84, 8, 2, 76, 25,161,252,132,105,115, 10, 85, 85, 50, 69,224,208, 45, 34, 6,151, 68, 2,250, 97, +196,212,247,121, 85, 25, 83, 17, 57,205,124,118, 39,222,124,126,214,249, 53, 49,182,130,182, 54,115,227,161, 13, 54,167,167,104, +215, 27, 52, 93, 7,219,180,232,214, 43, 60,122,252, 8,239,191, 63, 64, 91, 3,114,172,129,208, 57,110,116, 38,166,233, 84,188, +203,133,221,239,247, 88,111,182,216,239, 15,104, 26, 22,139, 78, 19, 7,193,140, 3,171,234,125, 8,115,202,154,226, 28,116,173, + 53,154,186, 66, 93,215,168,173, 65,101, 53, 32, 93,186,159, 28,166,113, 64,244,204,124, 32,207, 2, 87,190,228, 3,124,144, 40, + 83, 5, 88, 91, 33, 84,172,227, 8,218,192, 26, 46,216,180,156,133, 14, 64,173,109, 26, 10,205, 10,245,210,195,158,243, 42, 84, +134,217, 36,132,122, 2, 45,189, 16,249,157,137,191,130,123,149,152,204,196, 97, 40,237,131,201, 85, 84,102, 96, 65, 66,214,178, +141,184, 80,232,167,239, 41,143,255, 23,250, 40,205,152,216, 12, 72,120, 9,147, 61, 7,198, 43,254, 6, 41,169,241,138, 21,145, + 42, 70,186,121, 29, 44, 15,151,210,162, 90, 76,123,224,194,130,165,104,110,218,105, 89,206,202, 1,165, 23,115, 95,254,218, 12, +246, 88,173,214,217,115,104,140, 65, 63,244, 92, 17, 81, 40,210,195,248,143,186,113, 15, 63, 12,152,250, 1,163,243, 88, 87, 6, +207,222,127, 15,255,231, 47,222,207,157,230, 56, 76,208, 96, 91,200,254, 48,128, 98,196,197,231, 79, 97,172,197,147,143, 63,192, + 97,114,184,119,122,142,191,253,139,111, 99, 12,236,119,124,243,107,191,133, 95,253,242, 39, 60,234,138, 17, 83,136,176,182,128, + 82,168, 57, 96,101, 30,219,205,194, 53,165, 94,202, 8,122, 49,164, 86, 45, 21,253,179, 58,190,188, 8,230, 63, 89,164, 23, 46, +148,150, 72,113,128, 57,239,254,248, 98,199, 34, 6,146, 72,101,109, 3, 22, 0, 32,181,200, 90,198, 11, 52,188,163, 65,132,176, + 12,142, 12,242,133,117,167, 96, 51, 73, 39,198, 31,130, 40,204, 2,254, 47,246, 97,133,167, 79, 63,199,217,157,251, 88,173, 86, +120,231,205, 87,241,221,239,255, 16,253, 97,135,105, 24,224,220,148, 69, 65, 79, 47, 46,241,228,217, 5,106,107,113,255,116,139, +237,102,141,122,123,134, 70, 25, 16,121, 76, 8,194,100, 15, 0, 12,130,182, 44,130,164, 32, 19,142,164,208,230,170, 90, 39, 16, +144, 98,229, 59,148,102,145, 92,140,176,182, 65,244, 6, 49,112, 23,170,181,129, 74,208, 14,239,225, 35,112,232, 7,217,195,207, +124, 0, 22,131,206, 98, 21, 74,127, 71,145,200,151,188,179, 4,224,206,201,150,191,182,214,208,194,121,167, 24, 0, 35, 86,171, +192,227,107,138,150, 47, 6,165, 80, 85, 21, 98, 8,104,196,250, 21,173, 1, 53, 21,251,152,189,199,193, 7,132, 20, 72,161,128, +253,228, 64, 81,225,181,199,175,160,218,156, 98, 24, 70,244, 55,151,208,220, 1,192, 84, 13,188,245, 24,199, 9, 55,187, 3,134, +193,160,235, 26,172, 87, 45, 28, 89,116,218, 34,146,134,139,192,249,233, 25,186,237, 41,140,109,224, 34, 97, 24, 71, 68,239,161, +109,195,223,171,102,180, 48, 36,206, 57,101,174, 83, 82, 85, 43, 45,221,184, 70, 52, 85, 86, 93,199,140, 44,245,121,196,158,225, + 40, 33,100, 26, 89, 76,246, 43, 41,200, 66,140, 18,171,202,182, 37, 72,180,173,177, 21,222,121,243, 11,185, 16, 77, 62,116,164, + 40,220, 20, 84, 69,188,102, 75,171,170,168, 82, 4,121,161, 30, 87, 69, 46, 83, 41,143,147,245,164,166, 8, 29, 3, 16, 34,239, +122,197, 59,173,229, 60, 85,224,181, 67, 66,184, 18, 17, 84, 8,168,174, 2,204,230, 4,113,187,153, 87, 93,196, 29,173, 54,188, +218, 56,244, 35, 20, 5, 88,201, 22,112,110,194, 56, 78, 24,198, 17,147,115,178,250, 65,158, 96, 68,137,247,109,186, 21,226,225, + 0, 34,133,211,243, 51,108, 78, 54, 88,109,214,140, 26,238, 90, 24, 99,209,182, 44,118, 59,236,109,110, 40,148, 68, 37,115,108, +185,206, 52,180, 57, 99, 62,192, 77, 35,246,187, 29, 46, 47,175,177, 90,175,208,247, 35,198,113, 64, 63, 12,152, 70, 39,144, 35, +166,224, 65, 38,189, 9,202, 82, 87, 21,186,166,194,102,189,198,201,170,229,236,133, 16,224,198,129,227,115,199,129, 57, 16, 20, +179,192,143,164, 24, 74, 88, 88, 99, 28,154,202,194, 87, 22, 77, 85, 33, 24, 30,195, 43, 2,140, 73,238,157, 9,167,186,198,149, +143,249, 62,202,106,248, 69, 22,121, 10,180, 70,102,136,144,162, 69, 84, 56,149, 43,181,140,155,157,111,235,236, 47, 47,136,113, +249,223,149, 90,236,201, 25,198, 52,219, 57, 75, 16, 16, 98,129, 98,207,151, 48,191, 31,118, 78, 11, 34,241, 17,210,139,198, 12, + 17, 3,100,159,114, 1,208,103, 37,166,202,177,118, 42,169,253,142, 71,243, 5,180, 36,143, 46,138, 20,184,185, 40, 40,131, 67, +196, 9, 45,100,180,202, 90,188,253,198, 91,184,186,248, 12, 31,127,244, 33,140, 40,105, 73, 3,103,231,119,121,124,171, 42, 68, + 25, 73, 37,207,236,212,247,216,239,123,192, 59, 84,181, 97, 21,115,219, 96,124,242, 12,154, 8,215, 23,151,156, 56, 69,132,113, + 26,113, 56, 12,120,227,203, 95,195,251,255,241,175,209,110, 58,252,228,123,127,137,224, 3, 84,244,248,206,191,249, 87,232, 71, +135, 70, 1, 79,127,254, 19, 76,217,126, 67,217,130, 97,180, 46,188,242,133,119, 31,133, 66, 63,111, 54,116, 57, 92, 92, 84,124, +217,223, 95,100, 42,167,175,165,147,200,102,161,160, 59, 18, 35, 82,118, 55, 30,221,178, 42,139,114,248, 53,227, 88, 86,149,226, + 89, 41,230,103,129, 10,175,255, 66, 43, 71,106,129,187, 93, 86, 35,106,193, 80,200, 29,187, 42,120, 28,145, 80,184, 31,231,241, +123,177, 81,201,147, 12,197,233, 76,143, 31,189,137, 31,190,251, 46,126,251, 55,223, 2, 41, 3,133,128,127,250, 79,254, 49,172, + 53,120,118,113,133,191,253,238,187, 24,243,120,158,217,222,253, 48,226,163,113,128,254,252, 25,186,238,115,156,109,183,120,252, +240, 62,206,183, 27,244,211,132,113,162, 89, 20,154, 3, 29,180, 40,159, 83,184, 10,255,211,212, 53,250, 97, 90,196,213, 54, 85, +197, 88, 90,136,126, 68, 78,245, 72, 0,121, 22,172, 57, 31, 5, 93, 59, 79,152,102,145, 85,145,228,135, 66,141, 42, 83,166,210, +181,176, 89,175,160,141,206,185,204, 57,145,175,240, 43, 51,191,155, 99, 85, 33,202,120,171, 20,243, 20,172, 6,213,149, 96,151, + 21,140,173, 96,109,133,195, 48,224, 48, 12,112,126, 20,187, 25,240,236,249,115, 84,187, 61,170,182,131,246, 1,154, 20,218,154, +187,186, 78, 85,104,235, 10,206,249, 98, 23, 42,175, 89,100, 59,209,230,244, 12,171,205, 41, 11,230, 34, 97,114, 19,198,113, 64, +165,249,117, 13,110,196, 68, 97, 86,242,104, 43, 9,110, 60, 30,143,133, 85, 43, 66,101,127,116, 12, 78,172, 85,188,147, 13,206, +193,231,139, 62,100, 34, 89,250,135,228,247,185,131,231,213, 70, 20,125,144,150,209,187, 54, 6, 15,238,157, 23,231, 89,178,216, + 69,113, 80, 24,105, 82,230, 2, 56,231,161,231,245,122,217,141,151,241, 14,185, 58, 19,170, 89,128, 14, 30,202,123, 25,149, 71, +232,151,168,104, 18,203, 62,143,128, 67,128,186, 37, 40,239,129,243,179,124, 94,135,192,108, 4,219, 52,232,157,231, 51,206,176, +178,221,123,158,140, 76,211, 4, 55,121,132,192,211,162, 20,151,202, 96, 32,254, 25, 55,167,167,208, 74, 97,123,122,130,237,201, + 9, 86,171, 21, 54,155, 13, 86,171, 21,250,126, 96,145, 97, 8,176,182,202,180,201,132, 65,213, 74, 38, 47, 2, 91, 73, 46, 85, +138, 81,198,239, 59, 60,127,126,137, 97, 28,209,247, 61,134, 97,196, 48,140, 12, 1,146,213, 64,140,133, 26, 95,176,203, 77,101, +177,110, 42,196, 97,128,118, 39,104, 42, 37, 95,211,195, 77, 78,236,146, 12,162, 82,130, 39, 14,110, 2,165,137,152,124,134,156, +183,104, 67, 5, 10,132,170,226, 49,188, 82,128, 9,252, 57, 10, 4,172,187, 10, 23,113,153,200, 86,242, 2,230,148,203, 34,177, +146,202, 51,182,216,175,171, 57, 18,155,138,108,122,202, 96, 17,202, 89, 42,139, 40,222,244,153,143,133,166,166,152, 24,196, 66, +188,151, 98,101, 73, 46,254, 84, 84, 81, 36,216, 57, 84,132,150,105, 93,115, 96,112,129,195,211,197, 37, 81, 8, 3, 10,190,119, +177, 49, 18,182,183,140, 23, 82,120,188, 8,221, 40,123,178,165,123,207, 49,112,243,100, 32,117,142, 68,192,221, 59,119, 16, 39, +143,159,254,221,119, 48,122,143,155,203,231, 8, 49,160,170, 44,130, 15,120,254,217,167,208,202, 96,117,114,202, 32,144,105, 68, +213,112, 26, 16, 85, 22,253, 52,130,166, 9,111, 63,120,128,195,161,135, 85, 10,191,243,207,255, 43,252,205,255,245, 63, 98,191, +239,197,195, 74, 64,240,248,167,255,229,191,196,207,222,253, 30,154,174,193,201,249, 25,126,249,233, 83,108,181, 2,188,131, 61, +233,112,241,236, 10,107,165, 96, 12, 97,119,112,104,172,129,138, 1, 46, 40,212,162,234,117,206, 9,128, 38,197,166,242, 56, 72, +139,173, 97, 12,243, 8,133, 57, 58, 58,155, 99,150,138, 17,202,157,245,140,155, 76, 25,220,180, 80,141, 19,212, 18,111,152,186, +234,133, 55,130, 22, 59, 19,138,243, 5, 14, 9,236,209, 58, 37,185,169, 69,215, 72, 71,204,219,210,162, 94, 42,248, 23, 25,232, +121,208,194,187,117, 30,215, 29,173, 29, 82, 8, 79, 14, 76, 80, 89, 16,169,229,226,242,246, 12,255,254,255,251,215,120,231,237, +183,240,193,147, 29,238,108, 43,108, 55, 77, 78, 72, 59, 61,221,226,143,254,211,223, 3, 0,252,236, 23, 31,224,131, 15,127,133, +113,216, 99, 28,216, 95, 27,137,176,219,239,112, 56,236,241,236,249, 5, 30,223,191,139,245,246, 12,171,166, 69, 32,177,232,128, + 16,157, 67,211,174, 48, 14,123,137,128, 4, 72, 25, 70,200, 2,168, 43,195,169,105,222,229, 66, 39,196, 0,239,216,159, 30, 69, +116,148,236, 48, 65,194, 67, 48, 75, 92,178,194,184,100, 51,168,100, 23,149, 29, 45, 45, 21, 19,176, 90,163, 22,182,123, 89, 80, + 71,163,231, 41,142, 98,246, 55, 11, 22, 53,119,130,162,243,168,234, 70, 82, 19, 21,148,118,236,155,143, 10,119,238, 24,220, 30, +246,120,246,252, 41,246,251, 3, 14,135, 61, 7,218,104,141,253,110, 7,123,115,139,149,173, 64,154,208, 52, 13,234,186,130, 53, + 58,199, 91, 50, 90,213,114, 10, 98,219,162, 91,175,177, 61, 59,199,230,228, 14,172,172,161,134,105,192,112,216, 35,120, 15, 83, + 91, 76, 46,194, 71, 7,160,103,165,181,214,208,198,178,149, 77, 27, 4, 63,101,189, 78, 74,120, 99,216, 73, 16, 8,138, 8,166, + 10, 24, 74,140, 1, 44,145, 12,121,197,176,240, 82,139, 67, 33, 89, 61, 33,222,116, 91,213,232,218,118,134,217,164,221,185,216, +178,120, 28, 95, 82,222,162, 8, 94, 85,206, 52,207, 23,125,201,238, 76, 53,119, 68, 22, 51,105,226, 75,153,252, 4,229,125,134, +165,144,116,186,148,131,176,228,236,148,206, 51, 33,113, 83, 7, 79,109, 3,212,141,184,107, 52,214,155, 53,170,231, 21,162,210, + 24,199, 9, 94,115,183, 20,188,199, 52, 58,140, 19,139, 4, 39,231, 49, 77, 35,175,171, 10, 81, 97,240, 30,221,122,131,166,105, +112,114,122,130,245,102,131,205,102,131,110,181, 66, 85,213,184,186,186,193,225,112,128,159, 38,166, 23,106,157,181, 63, 57,156, + 36,113,203,213, 50, 72, 42, 70,130, 27, 29,158, 61,253, 12, 39,231,103,184,185,185,193, 56,242,212,192, 57,135, 16,253,226, 18, + 77,103, 36, 8,152, 6, 2,185, 26, 58,122,232, 24,176, 89,183, 72, 88,191, 52,145, 11,222,203,138, 81, 38, 85, 82, 8, 82, 97, + 81,179,198,194, 55, 53,124, 19,208,120,139,202, 88, 88, 99,196,161,165, 96,106,192,218, 9,154, 52,227,141,105,110,208, 72,209, + 60, 42,213,148, 81,198,243,142, 29, 57,222, 58, 19, 89,211,214, 56, 79,167,139, 11,189,184,240, 75,213,113,246, 13,197, 25,194, +180,220,112, 82, 49,161,161, 34,179, 67,101,251, 48, 73, 49,104, 75, 74, 78,201, 6, 95, 72,157,148, 90, 80, 14,103, 27, 14,229, +131, 71, 23,182,173,153,212, 69, 69, 30,123, 38,160, 20,121,225,133,102,142,150,138,171, 25,127,162,112,231,206, 61,140,135, 3, +158,125,242, 33,194,184,135,170, 90,104, 77, 60,210,235,123, 24,163,224, 2,161,173, 53,110, 46, 62, 23, 31,240,132,187,247, 31, + 97,127,117,129,182,171,241,246,215,190,142, 16, 2,206,238, 63,196,212, 31,128,195, 45, 92,127, 9, 43,162,172, 90, 17, 6,205, + 35,182,191,250,191,255, 21,226,180,195,189, 7, 15,177, 31, 14,232, 15, 3,182,198,160, 50, 10,207,119,123, 12,227,132,187, 93, + 3,163, 57,187,122, 63,121,180, 90, 99,239, 28, 98,220,225, 39, 63,250, 1,126,248,131,119,209,117, 43,124,245, 75,111,227,206, +186,195,186,173,113,178, 89,161, 91,117,176,166, 66,244, 30,251,126,196,165,167, 12, 47, 64, 44, 37,135, 5, 36, 38,249, 57, 75, + 42,157, 8, 42, 23, 87,120, 60, 82,254,151, 22,137, 66,135,203, 95, 39, 37, 68,241,193,169,245, 28,246, 18,101, 50,144, 8,134, + 41, 53, 73, 45,214, 6,101, 26,145, 96, 14, 75,160,196, 98, 7, 63,139, 56, 18,106,115, 65,112,200,140,121, 14,243,201,207, 90, + 76,176,145,136,254,234, 9,246,183, 87,120,239,246, 26,143, 31,221,195,102,181, 94,168, 66,243,244,136,128,119,222,122, 3, 95, +122,231, 45,236,118, 59,124,247,251, 63,194,238,246, 26, 99,127,128,247, 14, 33, 6, 12,211,132, 95,124,252, 9, 86,221,115,188, +246,224, 46,200,116, 48,166,202, 14,129,224, 6, 17,155,113,140,167,214, 90,196, 68,200,185,215,198, 48,134, 52, 18,239, 94,107, +213, 96,156, 70, 56,231, 57, 90,149,192, 41, 96,154,196, 86, 20, 22, 44,223,184,196, 1,204, 23, 66,138, 92, 4, 45,216,207,149, + 53,236,183,149, 73, 66,218, 27, 35, 6, 68, 5,196,168,178,119, 55, 36,107,146,173,160,172, 21,251, 30,161,174,171,156,214,103, +155, 53,234,230, 4,187,253, 14,187,225, 6,167, 39,103,176,198,160,174, 44,250,234,128,195,225, 0, 34, 66,191,223,227,209,201, + 6,126, 23,128,166, 69,109, 45,154,218,114,194,150, 92,200,182,146,221,103,219,161,237, 86,104, 79,206, 80, 53, 29,180, 49,240, + 62, 96,232,123, 12,125,207, 7,162,119, 80,193, 1, 97,196,228, 88, 36,213,212, 53,136, 2,218,182,227,253,187,169,100,244, 62, + 7,195, 68,225,181, 71, 41,192,162, 92, 70, 41,149, 45,209, 55, 35, 65, 46,250, 48,115,202,165, 16,200,133,143, 36,144, 25, 99, + 80, 85, 53,190,252,206,235,185, 35,182,150,247,232, 94,198,193, 74,165, 36, 49,149,115,174, 19,155,127,214,138,146, 76, 94, 72, + 46,120,190,242,210, 24, 63,166, 48,145,200,235, 24,229, 29,162,155,102, 79,156, 54,162,122, 22,235,105,138, 67,205,197, 11,123, +171,161, 20, 84, 8,192,211, 39,160, 71,143, 65,198,192, 90,254,220,221,187,127, 15, 31,127,252, 41,174, 47,175, 48,129,129, 44, +105,175,238, 3,219, 54,157,155, 68,127, 66,179,123, 84,244, 32,206, 57, 52,109,139,147,211, 83,180, 93,135,213,122,133,213,170, +131,214, 12, 84,234, 15, 28,136, 85, 53, 53,235, 11, 82,158,189,154,101, 90,153, 23, 41, 19, 17, 72,206,187,155, 70, 28,246, 10, +117, 83,225,226,226, 2, 10,188,246, 8,126,202,107,132,152,240,192, 90,243, 84, 66, 65,252,229,252, 66,187,224, 49,140, 19,172, +102,214,133,151,231,193, 77,147, 92,236,113, 46,130,100,213, 64,210,189, 27, 99, 48,140, 53,186,182,193,186,109,209, 86, 21, 42, +153,190,104, 91,193, 40, 3, 61,177, 99,100,138,179,250,112,167, 29,235, 0, 0, 32, 0, 73, 68, 65, 84, 61,255,100, 20,217,193, + 19,197,190, 38,151,117, 44,180, 94,145,138, 0, 43, 61, 35,185, 35,100,215, 95,104,105,230, 27,185,152,220,203, 58, 50,129,190, +146,160,110,182,198, 45,139,198,116,142,230,245, 56,197, 92, 16,218,236, 5,132,202, 1, 1,234, 24, 27, 43, 31, 6,149, 78,227, +108, 89,154, 49,177, 40,236, 12, 74,128, 43, 9, 46,129, 72, 34,240, 50, 57,159, 91,145, 98, 91, 79, 18, 2, 40, 20, 21,202, 28, +154, 0,165,113,239,236, 28,239,190,255, 30,130,119,184,217,247,136,113,199, 95, 23,196, 57,215, 20,208,173, 59,220,238,123, 33, + 41, 25, 68,239,240,236,233, 39, 88,173, 90,108,182, 27,238, 18,172,194,238,217,167,168,186, 22,102,213,225,163,143,254, 14,223, +187,184,193, 63,122,229, 46, 70, 31, 56,252, 65, 27,172, 90,128, 78, 31,192,108,182,184,125,126,129, 78,107, 88,173,224,180,194, + 71,159, 93,226,142,181,168,107,139,131, 4, 26,120, 34,222,113, 70, 96,160,136,199,103, 91,156,174, 87, 80, 32,248,221, 37,168, +209,168,170, 22,117,211,160,105, 90,216,202, 34,122, 3,101, 13,212,190,199,213,224, 65,198,130,180, 46,248,195,200,124,100, 42, +130, 1, 80,188, 70,170, 36,245, 21,225, 17, 47,104,111,139, 8,192, 57, 66,119,238,165, 21,104,182,232,164, 98, 77,171,229,181, + 92,204,206, 85, 1,179,161, 98,233, 63, 83,231,212,146, 99, 67, 69,181, 43,249,218, 90, 99, 81,104,100, 71, 64, 73,162, 43,108, +137, 93, 99,240,219,191,245,101, 24,163,185,243,165, 37,247,155,150, 94, 59,132, 16,177,234, 90,252, 39,191,251, 77, 64, 1,127, +247,238,143,241,217,103,159,193,141, 61,119, 43,222,227, 48, 76,248,201,135,159,226,108,205,225, 40,166,238,160,155, 22,211, 36, +212, 45, 21,178, 79, 56,229, 62, 39, 72, 70, 16,240,204,228,184,122, 79,121,232, 74, 27, 78, 57,243, 5,168, 40, 19,159,104,145, +114,140, 36,100, 4, 10, 16, 13, 31,112, 25, 31, 41, 5,117, 87, 87, 34,138, 42, 5, 60, 17,177, 72,128,138,242, 44, 90,107,249, +121, 18,225, 80,202,238, 38,104, 84,182,130, 82,150, 93, 0,228,161, 13,176,106, 91, 0, 3,160, 54,168,141, 70,107, 13,218,186, +194,161,169, 81, 89,131,247, 47,174,113,182,221,162,109, 27,180,117,133,182,107, 81, 25,158, 26, 88,163, 81, 53, 77,246,121, 87, +221, 6,166,106, 0, 83,113, 18,154, 27, 48,244, 7, 12,195, 97,246, 20, 7,190,100,167,105, 68,116, 19, 83,240,100,138,177, 90, +175, 97,171,138,131,105,148,129, 54, 21,251,162,165,128, 74,177,170, 49,178,104, 40,196, 56, 23,119, 50,166,119, 73,237, 61, 57, + 76,222,195, 5, 22,203, 69,105,182, 32,123, 95, 91,113,224,205,253,123,231,139,174, 60,237,225, 43, 97, 36, 36, 69,114,202,131, +228,207,136,150, 76, 6, 90,224,172,243,249,166,226,162,251,103,165,183, 7,220, 52,219,175, 34,207,238, 51,128, 38,145, 61, 41, + 10, 68,133,178,239,124,230,143, 43, 96,242, 48,207, 47, 96, 31, 60,204, 9,150, 77, 83,227,213,215, 30,227,201,147,167, 8,147, +227,189, 61,133, 60,114,247,206, 45, 47,244,226,136,167, 24,225,198, 30,113,189,198,237,237, 1, 15, 30, 62,224,115,202, 90,132, +192,226, 65,182,119, 90,184, 97,156,167,171, 49, 34,106,128,162,112, 72,180,140,143,149, 20,196, 5, 12,104, 28, 14,184,248,220, +115, 94, 98, 12,252,172, 58, 55, 23,185, 57,196, 71,132,118, 98,131,157, 38,194,104,148,232, 14, 8,168,108, 94, 27,184,105,196, +152, 60,247,162,228,143,178,159,247,206,203, 94,156, 59,255,202, 78, 24, 38, 14,157, 89, 55, 44,190,179,182,130,129,129,181, 17, +202, 7, 68, 29,230,221,119,230,110,164, 44, 18,238,188,117,230,183,199,133,248, 87,189, 16, 43,158, 26,219,152,227,204, 83,120, + 90, 86,185,235,227, 22,110,153,242,171,142, 46,116, 42,125, 82,170,240, 24, 23,150, 59, 66,202, 83,199,188, 31, 93,140,224, 23, + 41, 33,122,222, 49,164,111, 22,115, 71, 78, 11, 8,154,202, 12,114, 85,164, 26,233, 28,175, 71,243, 24,159,230,108,224, 88,244, +145,105,243,251,230,235,111,226,227,143, 62,196, 52,236, 81,215, 22,171,174,134,243, 30, 90,105,236,251, 30, 86,107,206, 49,119, + 19,172, 6,250, 72,240, 3,255,187,177, 26, 85,197, 0,130,224, 39,104, 16,124,244, 56,220,176,197,237,238,157,187,248,239,255, +219,255, 26,218, 88,236,111,111,240,217,211,207,112,245,252, 57,198,221, 13, 98,187,193, 7,239,253, 4, 83, 63, 96,211, 84, 56, + 57,223,226,175,126,249, 4, 39, 80,104,106, 5, 99, 52, 62,185,222,225,224, 61, 86, 90, 99, 55, 49, 98,118,242, 17, 99,191,199, +197, 56,160,169, 42,172,238,157,163,171,173, 84,136, 22, 26, 17,228, 38, 80, 96,117,125, 93, 91,172,125,192,181,115,208,214,160, +192, 8,228,226, 38,141,162, 73,209, 2, 17,180, 64,198,190, 36, 25, 80, 45,131,157,139, 93,223,210, 65,155,133,141, 80, 71,137, +125,148,139, 53, 90, 68, 65, 34,115,156,179, 56, 68, 29, 57, 25,142,240,254,249,123,202,154,145,121, 42, 49, 91,244,102, 13, 71, +254, 78, 75,122,141, 28,238,180,192,212, 98,185, 7, 83, 51,188, 33, 11, 84, 34,225, 31,124,237, 43,208,191,249, 85,188,255,193, +199,248,197,251,191,196, 56, 28, 48,141, 3, 66,136,184, 62, 12,184,222, 31,240,232,124, 11, 84, 29,116,213,202,216,159, 0, 21, +242,170, 40,241, 23,162, 15,130, 65, 77,163, 50, 13, 99, 8, 33,200,216, 54,242,238,113,114, 14,129,244,204, 45, 79,226,184,130, + 90, 5,149,124,171,200,225, 41,243, 48,140,242, 39,189,173,171,124, 88,240,193,165, 16, 37,198,149, 36,223, 92, 19, 65, 43,203, +130,176, 4, 44, 73,122, 8,109,128,200, 44,122,173, 52,172,214, 76, 23,235,175, 81, 27, 13,212, 21,172, 86,152, 68, 16, 87, 85, + 22,117, 93,163,109, 26,156,108,214, 0, 20,234,202,162,105,152, 86, 87, 89, 3,107, 13,170,170, 66,221,180,168,218, 14,117,179, +130, 93,109,160, 76,197, 60,240,129,119,177,227,192,227,247,169,239,225,166, 17,126,154,248,146, 13, 78,138,152, 91,129,192, 40, + 92,223,238,225, 99,196,232, 2,186,182,131,130,240,242,101, 18, 99,173,129, 49, 22,218,104, 6,253, 24, 3,173,173, 8,238, 88, +240,231,156, 23,149,181,195, 48, 77,152, 38, 15, 31,168, 96, 48, 8,235,189,174,113,178, 93, 35,132,144,157, 31, 73, 96,167,115, + 6, 60,191, 39,186, 60,153, 82, 80,211,145, 90, 57, 9, 96, 51,183,161,136, 2, 37, 17,167, 5,231,178,109, 13, 20, 1,121,159, + 72,242,220,115, 74,162,116,231,209, 75,148,106, 72, 33, 46,252,233,173,234, 61,116,223, 67,111,214,121,143,219,118, 45, 54,219, + 45,158, 95, 76,152,188, 99, 91,151,116,235, 73, 95, 4, 53,119,120, 51, 51,131,215, 73,251,219, 27,220,116, 29,148,210, 60,213, +145,213,146,209,204,100, 32,168, 60,245, 72,220,125, 21, 0,173,196,106, 39,156,125,228,240, 23,126,246,156,155,178, 21,180,109, + 90,236,246, 59, 80,224, 61, 56,167, 19, 38,211,134, 92,148, 90,195, 40,142,161,245,142, 48, 72, 0,205, 52, 14, 44, 2, 21,248, +147,115, 44,216,156,166,137,189,235, 33, 46,108,140, 49,136, 19, 65, 3,214, 84, 28, 17,235, 3,122, 31,177,110, 27,116,202, 8, + 78, 25, 60, 1,201,136, 88,153, 54,166,169,187, 88,211,146,210,157,146, 32,146,104,233, 66,202,217, 61,105, 12, 95,178, 93,100, + 31, 19,231, 84,212,180,114, 64, 1,229, 73, 43,199,168,142,226,179,139,198, 37, 63,171, 52,115, 14,202,230,218, 30, 47,248, 89, +128,161,151,144,145, 52, 98, 80, 98,142, 87, 10, 42, 38,225,192, 76, 55,211,249,146, 47, 96,174,105,254, 47,190,105,157,201, 2, + 42,103,233,166,238,127,129, 74, 21,191,251,205,213, 21,227, 13,125,128, 49, 28, 9,216, 90,238,134, 78, 54,107,244,253, 1,221, +170,101, 1, 81,136, 88,175, 26,140,195,136,126, 56,160, 49, 22, 55, 55, 55,176,214, 48, 30, 86,108, 28,235,213, 10,239,127,248, + 43,252,201,159,254, 41, 78, 54, 27, 24,107,113,239,206, 57,222,124,235,173, 66,156, 16, 65,241, 79,224,166, 9,187,253, 1, 87, + 87,151, 88,191,251, 67,252,252, 71,239,161,213,132,104, 13, 14,163,135, 33,134,215,168, 24, 49, 6, 25,255,249, 0,109, 57, 54, +244,238,217, 41,182,235, 21,106, 94, 18, 33, 58,222,156, 7, 33,145, 77,129, 16,253,132,241,106,135,238,254,189,163, 0,102, 85, + 80,251, 18, 52,241, 56, 7, 70, 21,180,190, 37, 29,159,202, 8,200,194, 98, 67,133,185, 92, 45, 24,244, 51, 91, 48, 9,212, 23, + 93,112, 25,171,187,236, 81,150, 56, 91,168,133,127,114, 97,182, 47, 41,116,122,105,233, 44, 84,115,179,167,151,212,177,123, 46, +199, 95,150,207,230, 66, 31,152,173, 38, 75, 12,103,140,132,215, 95,123,140, 55,223,120, 21,239,253,236,125,124,244,209, 71, 24, +135, 1,211, 52,194,121,135,143,158, 93,161,173,118,216,110,182,168,186, 13,180,177, 92,136,106,202,132, 41, 40, 6,151,104,231, +160,140, 69, 20,161,157, 11, 1, 33,178, 69,200,143, 60,226,103, 26,227, 28,145, 73,229,150, 92, 97, 17,194, 83,134,238,148,226, +210,244,222, 84,149,157,127,254, 20, 66,129,136,168, 44, 66,240,176,186,202,123, 96,101, 45, 72,115,200, 76, 66, 78, 34, 89,194, +188,131, 50, 21,140, 82, 8, 83,143,198, 86,104,107, 3, 87, 71,236,251, 61, 99,117,171, 10,245, 52,161,182, 61,186,218, 98,154, + 26, 86,251,107, 3,173, 1, 91, 89, 84,214,242,197, 95, 85,168,154, 14,245,106,133,170,219,194, 54, 45,160, 43,168,105,194, 64, + 96, 33,212, 52,160,223,237,112,123,203,137,123,125, 47,161, 59, 50,190, 87,154,113,186,117,101,243,180, 78,107, 11,231, 82,196, + 42,227, 75,131, 76, 61, 42,201,226,102,219, 33, 95,232, 81,146,243, 20, 56, 46, 55,101,121,135, 16, 49,137,170, 89, 51, 33, 37, +103, 51, 88, 91,225, 75,111,191,158,173,108,136,132,128,229, 42,135, 10,242, 97, 46, 50,203,152, 68, 36, 42,163,122,225,179, 16, +197, 22,151, 46,161,232, 3,200, 57, 40, 63,193, 64,177,219, 38,248, 57, 75, 92,235, 89,121, 17,217,147,205,251, 97,122, 97,197, + 16,199, 17,166, 63,160,105, 91, 22,152, 2,104,154, 26,119,239,158,227,246,118, 7, 47,177,196,209, 77,136,137,188,167,144, 49, +174,243,244, 12, 57,187, 96, 26, 7, 92, 93, 94,226,147, 79,158,224, 43, 95,249, 34, 98, 12, 60,237,112,147,232, 12,248,245,240, + 18,111, 75, 49, 34,128, 24,234, 66,233, 49,243,226, 92, 98, 36,112,154, 16,240,154,165, 66,191,187, 6,121,158, 68, 25,165, 48, +121, 87, 76, 20, 35, 95,176,134,157, 5,158,120,109,225, 53,224,173,198, 52, 42, 68, 97,187, 71,129,238, 76,211,132, 65,138,199, +144, 94, 43,226,181, 75, 66,121,147, 82, 48,218,163,138,132,137, 20, 28, 12, 84,187, 2,193, 34, 70,133, 70, 22,145,201,115, 79, + 89,157,172,243,186, 70, 41,157,149,231,138, 94, 18,137, 93,164,108, 82,142,175, 70,129, 96, 79, 66, 56,245, 66,119,175,142, 0, +162,148,153, 37, 75,160, 82, 14,122, 73, 52, 57, 97,103, 28, 11,219, 45, 94,104,233,139,152,185, 76,136,155,199,235,121, 76,170, +102, 22,109,218,195,146, 94, 66,100, 18,234, 81, 65, 67, 39, 1, 75,222,161,170,252, 96,209, 66,248, 59,143, 35,141,225, 81,203, +231,159,124, 8,182, 41, 6,152,170, 66,211, 53,104,149,198,205,205, 13,154,182,197,208, 31,224,124, 64,211, 52, 44,230, 83, 26, +219,147, 83, 40, 40,132, 0, 4, 23, 96, 26, 3, 47, 35,181,219,219,107,252,103,255,226, 79,112,114,114,194,161, 28,194, 9,214, + 64,222,103,242,142, 59,128,218, 22,219,245, 26, 15,239,222,193, 23,223,124, 11,211, 63, 27,112,187,219,225,221,159,190,135, 95, +252, 63,223,130,118, 17,125, 8,176, 74, 97, 12,129, 15,153, 16, 16,181,194,171, 15,238, 97, 91, 87,168, 41,192, 6, 7,141,128, + 72, 42,131, 72, 28, 41,140, 49,226, 48, 49, 56, 97,247,252, 10,171,211,211, 23, 18,158,242, 27, 95, 86,117,233,223,213,139,129, + 18,234,133, 70,121,225, 94,151,226,235,216,170,246,178,175,160,230,221,185, 92,176,233, 92,196, 34, 8,104, 41,234,202,135,221, + 81,196,100, 57, 49, 72,113,150, 37, 34,115,129,165, 85,115,149, 26, 23,137,128,180,160, 79, 45, 52, 5,105,170, 17, 83, 2, 6, +229,189, 84, 90, 10, 40, 82,160, 16,241,206, 91,111,224,237,183, 94,199,119,254,246,251,184,189,189,193, 97,191, 3,136, 48, 58, + 15,119,249, 28,219,105, 68,221,109, 81, 53, 13,180,151,215,187, 82,153,208,165, 52, 11,134,160, 13,162,159,248, 89,141,132,209, + 77,208,218,240, 37, 19,227,130,254,164, 68,252,149, 70,115,105, 50, 22, 41,135,123, 46,114,231,103, 48, 19,171,180, 75,143, 68, +242,193, 39,246,118, 52, 44,244, 3, 44,180, 92, 2, 80, 90,168, 72,233,121,102,127,183, 53,149, 48, 25, 26,206, 46,112, 14, 93, +211, 34,146,135, 13, 1,193,104, 56, 5,212, 90,193,133, 36, 76, 19, 81,165, 21,124,175,209,220,169,215,141,140,223, 55,168,186, + 14,186,106,120,196, 43,107, 1,231, 38,140,135, 61,110,111,111,241,252,226, 18,215,187, 61, 38, 23,178, 16, 72,139,192, 74, 43, +133, 94, 79, 34,188,210,128,246, 80,189, 92, 16,145, 15,114,163, 89, 93, 61, 74, 87,104,180,198,160,131,116,233, 12,248,201, 99, + 92,185,252,242, 51,108, 44,180,177, 34,198,226,220,116,173, 45, 54,235, 85, 46, 82,131,216, 0, 83,151,158, 82, 17, 83,216,145, + 22, 79,184, 86, 84,112, 27, 88, 40,151,248,220, 57,255, 32,210, 34,158, 53, 4,198,185, 70,239, 1, 31,184, 25,144, 78,139, 39, + 47,108,241, 75, 3, 95, 18,190,122,246,232, 71,228,103, 37, 40, 5,114, 14,149,115, 48,110,130,105, 26,222,223, 67,161,105, 89, + 60,106,170, 26, 67,127, 96,171, 24, 5, 89,169,105,152,108,169, 42,132,180,146,101,225,189, 67,127,216,225,131, 95,126,128,166, +105,240,232,209,125,140,195,128,195,158,167, 90, 90,216,237, 33,107, 68,248,245,137, 17,240,193, 35, 82, 16, 91, 27,219, 45, 99, +240, 50,242, 7, 98,100,145,158, 10,142, 47, 44,207,211, 44, 77, 97, 17, 35,107,192, 52, 64,210, 10,129, 2, 60, 44,188, 1,220, +164,129, 24, 68, 40,138,156,197, 48,142, 35, 95,234,211,140, 0, 38,217,229,231, 34, 40, 65,134,104,130, 83, 6, 78,245, 24, 3, +225,244,252, 20,103,117,195,147, 9,109, 88,189, 95,218,129,213, 28,137,154,220, 2,165,243,171, 52,247, 18,230,233,101, 42,112, +180, 34, 68,197,252,147, 40, 72,238, 24, 5, 68,147, 63,231, 69,192,110,161, 91,227,233,126, 44,206, 67, 22, 82,231,139, 62, 77, + 86,169,196, 19,211,124,169, 43, 85,140, 68,101, 71,163,210,156,230,200, 11,125,156,145, 62, 75,248,233, 40, 76,117,110,151, 72, + 81, 33, 24, 41, 21, 66,106, 25,116,112, 20,127,112,186, 61,193,216,239, 49, 12, 61,180, 6,154,174, 67,116, 14,159, 95, 92,226, +238,221, 59,128, 82,216, 31, 14, 88,181, 29,148,102, 74,150, 2,161,170, 42, 32,114,110,181,209, 10, 85,101, 16, 35,243,189,181, + 6,110,250, 9,175,190,250, 26,108, 85,195, 8,153,203, 8,214, 86, 19,242,168, 82, 25,195, 31, 42, 17, 23,197,232, 65,211,136, + 85, 83,227, 31,126,245,171,248,210, 27,111,224,135, 63,253, 41,254,231, 63,251, 22, 90,203,251,184,211,117,203, 64,143,205, 10, +171,202,162, 82, 64, 77,132, 74,108, 26,253,110,135,201, 9, 20, 35, 18,250, 16,177, 31, 38,236, 70,143,195,112,141, 55,207, 78, +103, 27, 97, 57,108, 47, 82,231, 40,171,167,227,114,208,174,168,136,241,155, 35, 77,179, 42, 11, 75,135,194,162, 85,135, 62,118, +199,103,160, 79, 2, 47, 44, 44,108,101, 52,228, 75,160,115, 10, 47,102,210, 44, 26,250, 34, 79,249,216,135,175, 22,223,130, 32, +128, 41,206, 19, 0, 90,162, 84, 81, 80,250, 18,203, 32,230, 81, 69, 92,228,182,147, 90, 70, 92,255,238,239,124, 3,207, 46, 46, +241,238, 15,127, 12,189, 55, 24,250, 61,188,119,184,222,239,177,246, 14,181,219,162, 93,173,248,194, 21, 38, 2,137,178,186, 28, +201,123,231,114,142, 56,101,132,178, 80,187,138,142, 59,185, 31, 74, 85,107,194,108,102,154,160,136, 23,185, 81,224,175,149,132, + 61,233, 80,141, 70,129,140, 42, 64, 43,129,181, 36, 6, 51,144, 71,196,134,138, 34,148,169,242,251, 21, 61,211,219,234,186,133, +115, 35,206,239, 62,194, 56, 13,240, 97,100, 30,190, 86,168, 52, 16,234, 42, 35, 72,115,116,173, 2,180,225, 75,221, 84, 21,108, + 93,163,110, 91,212, 77,141,170,102, 74,156, 11,132,216, 15,240,126,194,212,239,177,187,189,197,245,213, 53,174,111,247, 24, 28, +127, 78,115, 65, 73, 49, 31, 88,105, 10,196, 59, 80, 22,156,113,150,183, 47,193,199,220,225, 27,158, 28, 40, 99,230,241,118,228, +176, 22, 42, 45,152,152,139, 6, 10,129, 19,187,140, 65, 93, 55,120,244,224,142, 28,210,101,164,170,153, 11, 49, 73, 5,139,242, +158, 69,138,208, 81, 35,106,198,199,166,221, 23,199, 82,207, 25, 25, 73, 23,163,148,158,113,221, 10,152,124,132,159, 88, 40,200, + 81,160, 62,115,215,253,228,216,246,168,103,123,108, 26,235, 83,152,247,183,129, 0, 84, 53, 42, 40,184, 16, 81, 75, 48, 9, 17, + 49,250, 85, 28, 65,211, 52, 10,107, 33,102, 32,141,146,168,207,100,203,138, 41,171, 60, 21,192,145,224,198, 1, 55, 87,151,248, +232,195,143,176,221,174,176,219,237,176,219,237, 48,140, 99,222, 35,207,246, 44,110,200,156,115,136, 1, 34, 60,172, 96,196,106, +231,189, 3, 72,137,107,193, 33,134, 9, 39,155, 13, 84,116,128,209,176,134,209,199,201, 26,169,149, 66,208,115, 81, 31, 2, 23, +127,209,107,140,122, 2, 69,147, 73,153, 36,152, 89, 39,249, 2,147, 92,234, 65,116, 88,201, 57, 65,146, 28, 7, 5,184,201, 33, +104,131,168, 52,130,210,152,158, 95, 99,244, 17,231,119,207,113, 94,215,168,203,168, 92, 53, 59,127, 50, 70, 55,217, 85, 21,165, +214,136, 5,114,106, 30,137, 39,245,122,226, 26,100, 17,101,186,208, 21,101,221, 16, 95,131,122,225, 38, 75, 49,215,101, 64, 86, +118,163, 21, 66,232,228,190,152, 33,108,115,184,183,157,183,216, 84,224, 95,185, 82,202, 72,144,252, 13,204, 49,167,185,179,143, +179,159, 14, 69,199,159,148,212,153,246, 86, 88,120,114, 76,157,136,166, 20, 81,177,203, 85, 9,190,135,186,110,112,243,252, 25, +136, 8,187,195, 8,231, 38, 52, 77, 13,107, 13,174,174,111,176,106, 27, 52, 33, 64, 33,162,174, 13,156, 15, 18,218,193, 49,172, +150, 8,251,219, 29,154,174,133,166,136,174,235,240,252,234, 6,127,250,199,127,140,186,174, 97,148,112,219, 5,183,169, 37,131, + 91,103,229,126,204, 7, 65,156,122,249,112, 33,211,188,140, 86,120,253,149, 71,248,151,127,252, 79,240,191,125,235, 47,228,193, +228, 55,123, 85, 87, 48, 32, 24,138,168,180, 66, 91, 55, 24,135, 1,171,174, 67,189, 82,216,141, 19,110, 47,175, 48,141, 35,246, +251, 1,183,253,132,137,184,251,163,128, 34,251,137, 22, 64, 3, 0, 56, 18,189, 23, 19,142,146,193,187,176,141,191,228,234,165, +133, 0, 78,149,158,120, 69, 5,103,126, 30, 21,107, 85,148, 95,121,106,115, 60, 15, 56,226,206, 28,193,112,143, 47,249, 99,100, +170, 42,199,239, 25,210, 80, 48, 17,212,146, 48, 88, 90, 42,169, 68, 29, 23, 42,214,244, 36, 83,226,209,163,200,154, 39,194,157, + 59,167,248,195,223,255, 71,248,222,247,127,132,139,139,207,177,223,221,192,185, 9,251,193,193,249, 43,132, 24,208,180, 29, 67, + 95, 68, 77,171,141,101,232, 80,152, 47, 60,128,237, 51,147,236,122,147,226,122, 78,107, 42,214, 92, 84, 68, 85, 45,180, 1,152, +131,232,163, 18,178, 30,242, 40, 49,202,228,130, 47,109,131,160, 21,167,196, 25,126,142,163,247,112, 32, 89,163,133, 76, 31, 84, +228,229,146, 33, 16, 2,110,175,159, 97,181, 57,199,201,233,125,216,166, 65,244, 14,171,118,141,253,176,131, 86, 22, 86, 1, 65, +107, 17, 75,201, 40,211, 75, 8,136, 36,171, 25,107, 97,235, 22,117,187, 70, 85,183,168,170, 6,202, 90, 76,126, 64, 12, 1,211, + 48,160,223,239,112,123,115,131,219,219, 61, 38, 31,152,255, 94, 78,122, 36, 12, 68,107,141,198, 86,168,171,154, 71,196,218, 72, +169, 89, 35, 70,159,173,130,147,140, 85, 17, 34, 92, 96, 69, 50,200,207,177,205, 80, 57,143, 62,163,145,147,242, 74,166, 0,214, +214,168,234, 26, 95,122,231,245,124,222, 49,247,127,110, 84, 98, 78, 14, 76, 1,224, 9, 97, 92, 92,236,177,140, 78,149,174, 53, +144,100,152,235,204, 81, 39, 89,201, 13,110,130, 27, 71,246,170,199, 8, 4, 39,120, 83,238,198,167,196, 85,207, 4,206,188,156, +207,140,112,104,131,166,181,136,198,178, 72,178,216,179, 5, 31, 16,124,204,158,111,109,140, 56, 37, 34, 76, 42,152, 84, 65,224, + 36,148, 52, 12, 6, 18, 33,224,176,223,225,234,249,115,252,252,189, 95,160,174, 13,110,174,175,113,216,237,120,157, 19, 41,231, +115,132,192, 44, 16,133,200,142, 15,112,193, 7, 47, 33, 50,162,106,247,110,148, 75, 93,195, 7,254, 94,180, 16,249,234,202,230, + 41,131,181,134,245, 19,169, 24,150,247,198, 5, 15,140,201,190, 73,121,167,159, 98, 81, 39,201,138,247, 46, 89,245, 56,209, 47, +138,130, 92,169, 20, 19, 30, 1,231, 56, 12, 72, 27,144, 50,184,188,217,193, 19,224, 3,225,222,189, 59,140,253, 78,247,149, 82, + 5,247,189, 56,221, 82,120, 79, 33, 82,158,133,221, 52,127,172,179, 17, 60, 1,216, 40, 79,189,245, 18, 96, 50,247,103,180,212, +167, 81, 97, 5, 79, 7,165,154,149,118,243,255,175,248,159,205, 0,139,148,204,166, 41,219,203,230, 48,120, 53, 7,182,148,125, + 32, 41, 40, 29, 23, 54, 27,238,236,116,222, 19,106,121, 97,210,225, 82,122,169, 51,172, 95,166, 3, 75,213,183, 66, 63,140, 0, + 52, 86, 93, 7, 66,196, 56, 12,188, 95, 51, 6,209,123,244, 0,239,215, 82, 2,146,120,105,251,254, 32,150,136, 10,155,205,138, +109, 25,206, 97,114, 30,159, 95, 94,226,254,221,251,104,170, 78, 82,174, 68,213,175,117, 14,109,200, 57,203, 90,243,223, 53,141, +128,177,240, 61, 91,157,198,113, 20,133, 39,171,113,219,182,197,215, 31,158,227, 63,126,114, 1, 66,196,166,173,185,146,148,228, + 36, 10, 17, 6,132, 74,222,195,186,235, 64,198,192,133,128,207,158,121,196,201, 99,232, 7,196,122,133,163,129,245,146, 47, 71, +115, 48,203, 12, 47, 80,121, 79, 72, 71,249,168, 5,187,101,177,123, 81,185, 51, 95, 50,127,231, 24,214, 34, 52, 71,169,163, 14, +127,182,241,228, 57,252,209, 13, 94,134,204,189, 76, 52,135,151,176,237,211,197,246,194, 54,128, 80, 84,201, 84, 4,225,208, 17, + 97,151,178,139, 99,161,136, 47,240, 7, 58, 65, 30, 22,105,132,115, 56,199, 63,252,173,223,192,167, 79,238,226, 71, 63,254, 41, + 14,251, 27,140,227,128,201, 71,132,219,107,120, 55, 97,189,222,200, 37, 68, 34,124,114,104,219, 53,134,225, 0,163, 52, 38, 63, + 29,189, 23, 51,227,185, 4, 0,137, 59,169,136,182, 61, 10,129,160, 36,112,155, 63,236, 49, 43,132, 69,157, 45,225, 24,209, 24, + 22,204, 69, 78, 34, 35,163, 97,149,130, 82, 33,103, 58,104,109,216, 35, 35,227, 82, 35,107,131, 16, 28, 90,187, 69,148,189,183, +155, 14, 48, 10,188,147, 55, 6, 38,176,149,199, 77, 19, 95,170,146, 62,151,108,175,218, 24, 84,117, 45,130,185,154, 93, 29,138, +247,168,227,176, 71,191,191,197,205,213, 21,174,175,111, 49, 76, 62,147, 14,141, 82, 80, 70, 21,197, 49, 95, 22, 62, 56,180, 86, +163,210, 53, 72, 17,118,211, 36, 68, 62,134,137, 24,173, 80, 91, 30,147, 50, 36, 71,240,189,194,231, 86, 90,208,212,242,250, 37, +186,153,150,113, 48, 71, 34, 27, 52, 77,131,205,122, 45, 73,138,179,205,114, 65, 88,160,101,144, 20,164, 27, 87, 9, 95, 29, 53, +103, 20,164, 56,228,168, 36, 92,134,132, 91,174,114, 65,157,194, 85,134,126,196,225,208,195, 16,193,128,131, 72,162,155, 56,255, + 60,134, 44,254, 10,145, 16,228,130, 76,107, 19,200, 88,187,238, 26,232,166,129,170,106, 40, 91, 1, 90,207, 99,244, 20,121,234, + 60,166,105,200,211,130,164, 47,224,207,129,158, 87, 81, 69,147, 86,178,206, 99, 28,112,115,125, 9,107, 13, 86, 93,141,195,238, + 22,214, 24, 76,142, 69,123, 9,122,226, 61, 63, 23, 28,104, 21, 97,172,102,165, 61,121,113,111, 0,110, 26,178, 37, 49,198,136, +221,126,135,237,170,133, 38,105,166, 4,102, 19, 5,235,218, 72,144,146, 22, 20,114, 8, 60, 41, 34,173,224,195, 12,159, 9, 9, + 52, 20, 11,123, 91,226,180,167, 21, 74, 42,158, 85, 58, 27, 52,188,247,208, 38, 64, 25,199, 57, 15, 74, 97,183,223,231, 21,192, +221,187,231,104,219,118,249,217, 45, 14,190,197, 25, 72,201,139, 94,196, 83,211,236, 76, 74,147,198,168,136,179, 63,178, 78,105, +182, 72,242,136,254,197, 53,169, 78, 25,236,105,143,175,230,117, 78, 18,150,243,217, 32,156,251,226, 36,183, 10, 52, 79, 94, 73, + 45,246,153,186, 20, 97,149, 11,222,153, 85, 95,116,145, 84,196,134, 46,139, 24,100,223,189,140, 92,165,178, 69,212, 89,156,135, + 18, 64, 35,255,107,234, 26, 79,251, 3,180, 6, 58,107, 48,129,208,247, 3, 78,183,107,198, 93,198,136,195, 52,202,200,140, 64, +202, 32,236,111, 17, 66,192,174,239,209, 8, 55,152,192, 15,201,228, 38,124,241,139, 95,134,115, 35,118,251,107, 84,214,178, 21, + 39, 83,238, 12,127,192, 5,205, 23,101,103, 25,228, 20, 78,161, 30, 36, 62, 86, 63, 77, 25,194,177, 94,175, 81,171,231, 32, 73, + 81, 26,199, 17,187, 67,143, 90, 27,212,134, 57,198,155,182,193, 56, 57,168, 16,209, 53, 45,250,113, 68,165, 19,138, 20,115,236, +223,203, 82,232, 22, 23,187,154,211,127,202, 29,208, 11,227,115,181, 16,184, 81, 22, 47,204, 74, 94, 42,160, 65, 89, 81, 46, 29, +252,156,186, 68,139,162, 65, 21,251,235,244,190,229, 0,146, 44,148,155,181, 38, 73,112,148,127, 45,133, 98,139,116, 38, 58, 18, +195,169, 34,156,134,230,224,151, 50,230,135,168,184, 65,243,248,128, 71,225,130,156, 85,148,126, 71, 23,177,154,179, 72, 79, 73, +240, 13, 69,194,195,135,247,112,126,118,138,191,248,203,191,129, 54, 22,253, 97,135, 16, 3,250,126, 15,138, 1,221,230, 84,118, +171, 17,198,218,172,236, 13, 2,122,201,135,186, 8,217,230,240,133,114, 34, 85, 12,218, 99, 25,200,163,139,226, 69,205, 23, 63, + 20,119, 97, 98,181,138, 90, 33,134,200,163, 68,112,183,162,211, 69, 73, 51,172,133,146,136, 43,122,232, 40, 2, 63,197,254,117, +238,156, 28,118,215,159,195,185, 17, 33,114,142,121, 37, 36, 58,168, 36,238,114,208,109,155,233,108,229, 56,210,212, 13, 42,107, + 80, 55, 29,108, 85, 65,155,138,245, 45,211,128,177, 63, 96,119,117,137,235,203, 75,244,253,144, 9, 88,181,104, 88,210,227,230, + 67,192, 73, 83,227,206,118, 3, 85,213, 48,117, 13, 40,131,139,155, 91,196, 67, 15,138, 81,132,111,252, 60,156,214, 6,103,173, +197,147, 62, 48, 15, 28,132, 16, 21,162, 48,215,117,178, 92, 38,231,180,116,233, 68,220, 61, 87, 85,141,186,110,241,205,111,124, + 85, 70,229, 49, 39,193, 49,153,152,145,181,208, 71,218,142, 4,202, 74,157, 57,210,197, 62,243, 30,210,222, 61,179, 74,210,186, + 67,246,252, 62, 4,220,236, 14,208, 20,152,127, 31, 2,130, 27,224,199, 73, 86, 28, 4, 31, 3,156,231,226, 77, 85, 53,170,170, +134,138, 1,182,174,208,182, 29,170,205, 6,118,181,134,169,107,152,202, 10,168, 37,105,152,248,219, 54, 2, 40, 10,222, 99,206, +242, 42, 88, 18,105, 18,185, 16,154, 74, 42, 25, 69, 80, 32, 12,253, 30,183, 55, 53,134,131,193,238,246, 26, 48, 21, 39,236, 57, + 70, 33, 83,240,153, 73, 78,198, 0,218,130,160, 48, 77, 19,175, 51,161, 57,213,208, 77,124,161,203, 69,231,166, 9, 83, 93,115, +142, 79, 8,168,234, 26,186,105,224,157, 80, 16, 65, 8,251, 61,108, 85,243,159,141, 74, 58,115,169,157, 34, 79, 35,242,132, 44, +219, 27, 69, 99, 34, 55,103,244,178, 62, 77, 52, 63,205,182,187, 64, 17, 62, 56,104,207, 46,144,116, 81,246,253,128,231,151,215, + 80,218,224,206,185, 66, 93, 87,115,188,117, 17,124,206, 29,188,206,107,182, 52, 89,206,207, 68,185,221, 46,220, 96,156,192, 41, +141,175,172,219,160, 34, 34, 56,231, 32, 43,220,101, 66,199,193,103, 52, 83, 40,115,195,149,180, 56,170,104,188, 0, 45, 21,115, + 36, 73,105,163,148, 5,139,162, 3, 12, 49, 43, 62,203,165,186,122, 33,204, 99,198, 5,166,192,151,212, 25, 82,150,242,171, 66, + 93, 31,231,240, 10,169,126,147, 0,131,226,194,243,196, 41, 80, 33, 48, 33,142, 8,149,181, 88,119, 13,220,228,228,197,212,216, +239, 15,232,218, 26,164, 52, 14,253,158,119,109, 74,193, 77,204, 65, 30,135,136,186,110, 81, 91,141,235,219, 61,222,126,231, 43, +232,251, 30, 90, 1,161,170,152,186, 84,215,204,181,214, 10, 70, 25, 25,193, 27, 24, 93,193, 42,141,145,246,136,129,171, 96, 82, + 10, 1,242,112, 58, 38, 90,177, 26,148,240,198,186,198,165,116,239, 14,192,245,237, 30, 20,152,115,101,181,134,193, 9,218,166, +193, 56, 28, 48, 70,133,174, 93,193, 90,139,105, 28,208,214, 53,130,173,242,238,248, 69, 25, 88, 41, 90,123, 73, 2,148, 18, 12, + 45,209, 81,183, 79, 47, 10, 52, 11, 97, 91,105, 65,164,210, 82,166,139,209,183, 56, 19,248,128,140,115, 92,107,169,237, 32, 42, +144,167,177,176,202,169, 35,139, 36, 95, 88,188,159, 45, 46,227,151, 16,240, 21, 21,163, 44, 73, 75, 75,110,139,133, 88,112,129, +103, 46, 71,244, 10,170,240,253, 83,218,125,190, 56, 44, 40,138, 41, 66, 85, 89,252,225, 31,252, 99,252,245,119,190,139, 16, 60, +198,225,128, 16, 3, 14,195, 1, 49,122, 52,221, 86,178,184, 45,172, 37, 68, 55,177,136, 76,105,193, 66, 70,225, 40, 8, 99,188, +228, 51, 39,210,216,188,241,205,255, 79,202,194, 24,153,116, 73,135, 70, 10,172,100,150,221,185, 87,204,103, 8, 1, 8, 80,208, + 42,192, 68,133, 32, 29, 74, 12, 17,128, 3,172,112,235, 53, 79,162,148,248,138,199,126,207,170,236,168,161,224,217, 57, 98,106, + 88,219,160,106, 86,240,126,224,131,207,104, 68,211,206, 59,102,165, 16,157, 19, 39, 64,224, 75,178, 93,193, 88, 35,163,255, 9, +126, 26, 49, 30,246, 56,220,222,224,250,234, 10,187,253, 1, 62, 68,241,180,243,206, 53,215,114, 33,226, 27,111,124, 1, 94, 3, +104, 90,232,186,133,173,107, 80, 36,236,199,137, 85,234, 10, 88, 89,141,222, 19,238,117, 21,222, 58, 95, 67, 41,141,107, 63, 98, +240,162,140, 87, 92, 72,199,114,151,147,197,136,210, 33, 25, 22, 27,118,221, 26,143, 31, 63, 96,106,162,120,191,181,209, 25, 0, + 68, 73,171,146,169,113,146, 52,153,124,199, 18,156,195,161, 58, 60,138,231,195,185, 68, 4,179,167, 58,102,176, 10,101,202,160, +243, 1, 49,120, 12, 49, 64, 83, 96,204,237, 56,228,238, 51, 68, 86,249, 7, 2,180, 15,248,255,233,122,147,159, 75,211,244,204, +235,122,134,119, 58,211,247,125, 17,145, 89, 89,153,206,161,178, 50, 43,171,168,178,221,133,113,155,150,105,172,182,144, 89, 55, + 98,193,158, 37, 18, 82,175, 88, 52, 11, 47, 80,139, 5, 43,224, 47, 64, 72,172, 88,128,196, 6, 36,212,136, 70,173,166, 69,117, + 75, 46, 87,217, 93,131,115,136,200,200, 24,190,225, 12,239,121,135,103, 98,113,223,207,240,158, 72, 91, 46, 85,102,101, 68,228, +249,206, 57,239,243,220,195,117,253,174, 78,215, 64,144,184, 89,111,176,190,190, 70,183, 89,163,106, 91, 52,171, 14, 85, 93, 23, +138,121,206,156, 16,228, 89, 31,199, 10,103,215, 39,173, 64, 72,176, 24,193,112, 27,113,193,180,224,139,221, 57,142,171,117,192, +225, 1,215, 55, 55, 28,134, 70, 98, 52,239, 44,167, 30,114,126,186, 82,208,154, 94,135,225,252,244,224, 3,172,153, 16,188, 77, +197, 74, 92,201, 26,235, 48, 12, 3,208, 16,109, 83, 25, 3, 93,213,233,123,161,164, 66,219, 54, 25,171, 28,237, 91,206,231,200, +214,200,242,119, 46,193,107, 2,103,188,123,214, 66,208, 4, 46,127,110,146,181, 19,224, 98,199, 73,250,206, 10, 41, 33,172,132, + 82, 26,243,108,112,119,255,128,224, 29, 30, 61,186, 78, 9,156,184, 60, 37, 5,138,125,123, 40,240,233, 72, 1,102,196,117, 89, +178, 66,188,240,144, 65, 48, 3,164,100,139, 20,103,100,188,139,189, 95, 16, 57,227,159,155,196,151, 66,164, 14,189,140, 91, 23, + 66, 48, 38, 54, 44,237, 53, 0, 87, 10, 33,119,227,162,128,213,135,194,118, 37, 22, 81,171,124,168, 75, 81, 36,182,138,148,180, + 37,211, 38,161, 52,221, 39, 29, 44,141, 34, 24,206, 31,173, 27,215,215,143,240,242,235,207,161, 84,133,110,215,192,219, 9,227, +249, 12,227, 61,141,173, 32, 97,188,192, 56,156, 96,172,131,146,138, 61,194, 22, 90, 73,244,167, 30,186,154, 80, 55, 13, 86,109, +141,227,233,136,251,251, 10,211,184, 66,211,212,104,234, 6,154,173, 57, 58, 10,230,180,166,189, 41,169, 53, 16, 60, 48,143, 19, +219,150, 40,206,115,154, 13,198,121,194, 56, 77, 56, 15, 3,121, 65,165, 68, 45, 72, 56, 18,227, 20,125, 32,177, 94, 83, 49, 94, + 83, 86,148, 30,228, 13, 94,189, 60,208, 3, 1,129,102,213,225,250,189,119,243,243, 37,197, 98,122, 18, 43,113,136,112, 17,145, + 23,191, 52,252,129,197,112,158,146, 96,228, 51, 70, 54,143,121,228, 27,156,255,188, 7,162,223, 35,132, 76,157,165, 7,217, 24, +165,200,251,195, 82,121, 31, 68,142,175,136, 58, 11,218, 35,135, 36, 40,185, 20, 2,148, 92,243, 98, 17, 85,164,250, 33,117,179, +209,228,225, 23,149,137,184, 76, 54, 78,138,208,212, 94,197,176,148,168,181, 15,133, 77,110,177, 83, 8,233,159, 1, 1,191,254, +237,231,152,198,129,187, 83,201,120, 80,135, 97,156, 16,188, 71,187,222, 81,166,116, 0,180,210, 64, 5,204,198,164,174, 64, 1, + 48, 98, 78, 94,229,148,208,197,202,214,148,186, 39,114, 68,132, 72,182, 2,158, 42, 20,196, 62, 99, 29,145,233,188,135,117, 1, +150, 12, 57,176, 0,148,170, 41, 89, 78, 48,108, 70, 8,232, 64, 22, 45, 85,224, 75,131,167,142, 73,105,197,194, 49,218, 47, 34, + 4,234,226,149, 4,220,132, 0, 75,100, 53, 89,196, 80, 70,209,146,166,105, 22, 42, 77,151,176,214,168,116, 13, 40, 13,199,158, +225,105, 28,112,220,239,113,120,120,128, 49,244,103, 73, 41, 81, 55, 53,180,214,240, 33,224,186,235,240,221,221,142, 98,105,219, + 6,162,105, 89,196, 86, 65, 0, 88,111, 54,144,175, 94, 33,120,139, 86, 73,108,107, 2, 64, 61,221, 15,152,130,196,209,120, 40, + 17, 80, 43, 42,102,173,231, 3,174,232,102,232,208,102, 97,157, 84,104,218, 14,117,211,224,179, 79, 62,202,239,114,182, 89,164, +169,213, 98, 24, 90, 94,232,204,106,144,124,232, 66, 8, 78,210,242, 60,218,207,205,137, 23, 62,233,138, 2, 2, 89,172, 28, 1, +174,140, 49, 24,206, 3,132,119,169,251,117,198,192,217,152, 54,199, 79,168, 15,192, 56,224,250,241, 91,144,109,139,213,213, 14, +237,106,133,110,181, 66,211,182, 76, 92, 43, 34, 56,131,224,231,212, 83,167, 41, 37,117,201,206, 39, 56,140, 16, 28, 19,203,175, + 47,226, 84,147, 85, 50, 68,155,157,192, 28, 6, 28,246,200, 1, 57,204,170, 15,222,195, 11, 1, 45,169, 67,167,127, 15, 69,190, + 10,165, 24,238, 52, 39,245, 54,233, 13, 25, 10, 37, 8, 15, 75,141, 28,137, 35, 87, 74,163,173,107, 24,235,160,149,194,122,181, +194,237,253,253, 66, 20,235,203,144,158,152,202, 23, 66,148,206,164, 33,177, 47,178, 48, 68,153, 34, 25, 66,202,124,247,176,112, + 86, 38,170, 32,138, 84,191,161,167,160, 32, 0,184,185,190, 70,211, 16, 34, 89, 22, 17,201, 72,107,100,159, 86,213, 65, 98,145, +147, 33, 22,147, 79, 70, 64,251, 98, 13, 90,176, 15,168,213, 46, 20,101,209,175, 31, 87,226, 16,139,236, 12, 41, 68, 10, 96, 18, + 8,133, 11,154,243,212,113, 97, 67,138,250, 12,225,121,132, 42, 50,250, 53, 9,174,131, 88, 8, 5,104,172,224, 33,164,128,119, +108,202,144, 17,253, 26, 43, 15, 44, 1, 55, 92,237,208, 30,190,176,201, 9,242, 81,122, 79,151,225, 52,158,208, 52, 13,156,165, + 80, 2,178,213,212,168, 17,224,165, 66, 5, 10,237, 48,179,193,100, 45,177,138, 79, 3, 78,231, 51, 20, 2, 54,109, 13,105,200, + 63,124, 60,245,248,205,111,126,131,243,241,128,237,102,131, 85,215,161,237, 58, 52, 85,133,186,109,233,226,213,228,193, 85, 90, + 83,150,175, 82,216,172,111,240,112,251,154, 42,109, 14, 54, 24,198, 17,231, 97,196,158,253,183,211, 60, 83, 70,245, 52, 97,144, + 18,168, 3, 66, 69, 15,220,253,177, 71, 87, 87, 20, 12, 1,129,182, 33,133,124, 37,129,227,221, 1,208, 26, 74,215,216,221, 92, +177,216,226,111,223, 65,199,177,108,202,239, 21,161,208, 59, 4,188,121,205, 97, 89, 49,150, 98,248,111,206,133,171, 34, 0, 0, + 32, 0, 73, 68, 65, 84,115,179, 5,176, 78,130,198, 74, 4,137,145,124,153,231,206, 57,238,121, 82, 88, 65,172, 94,131,120, 99, +196,190, 4,233, 32, 39,245, 21,227,114,148, 29,120,137, 81, 44,214, 54, 8, 40,186,251, 76, 91,202,135,241,197,110, 95, 20, 69, +140,184,132,228,228,162, 52, 86,205, 49,177,208, 26, 7,173,107,124,239,123, 31,163,109, 53,174,190,251, 99,252, 31,255,235,255, +128,225,116,128,247, 30,231,145,246,132,235,237, 53,164,212,112,142, 84,211,202,147,175,154, 53,150,124,152,100, 68,164,144, 34, + 43,163, 11,207,135,247, 92,195,197,140,110,246, 48,231,196, 27,193,124,115,142,115,133,128, 13, 30, 22, 10, 74,144,202,152,254, + 61,154, 5, 76, 30,128,133, 66, 40,195,237, 1,165,232, 32, 9, 30,158,243,203, 69,240, 80, 85, 77,220,117,111, 17,180,134,150, + 85,202, 19,143, 35,204, 72,174,115, 34,131, 52,164,174,160,171, 6, 90, 41, 26, 27,155, 9,102, 28, 48, 12, 3,250,254,132,121, +158,233, 25,170, 42,232, 74,163,235, 58,232,138,172,127,195, 52,227, 87,175,239, 80,105,133,182,170,209, 53, 26, 87,155, 14,187, +237, 22,168, 90, 96,187,194,203,117,135,219,251, 41,199,100,122,192,137, 0,195, 98,189,171,117, 11, 59, 79, 0, 92, 26, 39, 11, + 25,191,171, 76,124, 11, 2, 82, 41, 52, 77,139,110,189,197, 31,255,209, 79, 19, 27, 62, 79,189,200,122, 36, 66, 88,136, 61, 23, +161, 66,197, 84,203,179,208, 41, 94,138, 75,213, 60, 27,225,162,115,136, 31,214,216,137, 75, 69,221,226,108, 45,230,113,228, 75, + 55,243,236, 61, 23, 39,160,142, 11,114,158,112,238,143, 88,237,118,232,152,201,174,249,156, 2,251,223, 19,247,155, 99,102, 71, + 99,161, 56,229,108,232,123, 90,197, 20,207,170,146,153,152,224, 3,185, 6,136,254,150,191, 99,129,243,200,113, 14,168,155, 22, +253,249, 12,201, 32,153,168,109,169,155, 54, 1,105,162, 72,216,154, 9,214,204,176,108, 93, 83, 82, 20,107, 63,240,159,239, 48, +207, 51,130,167,159,161,170, 27, 90, 25,240,187, 92,107,114, 54,152,216,141,179, 56, 52,218, 20,163,141, 51,112,113, 34, 22,145, + 88, 57,225, 51, 78, 88,242,196, 80, 36,159,184,115, 22,202, 41,136,208, 16, 71,192,210, 20, 66,105,141, 48, 2,183,119, 15, 16, + 66,224,250,122,135,166,174, 89, 56, 41,242,145,197,226,215, 28, 68,201,209,187, 23, 90,166, 56, 33,204,164,205, 80,248,225,243, +251, 34, 66,132,181,149, 80,173,144, 1, 99,133,157, 60,196, 9,148,112,153,199, 81, 56,129,116, 57, 94, 23, 69, 66, 84, 73,151, + 43,197, 35, 16, 23, 68, 51, 68,101,116, 86, 74,135, 34,246, 51,217,167, 82,172,156, 72,251,181,244, 81,248,101,102,123, 0,240, +225,239,124,128,215, 47,158,227,116, 60,192, 76, 35,156,157, 81,215, 21,166,153, 19,154,172,133,172, 21, 20,128,154, 51,166,107, +235,112, 60,143,132,174,212, 84,129,125,125,183,135, 20, 2,179, 7,238, 30,246,208, 8,120,245,242, 21,174,182, 27,108, 55, 27, +108,214, 43,172, 58, 98,178,119, 45,161, 92,235,186, 70, 83,215, 52, 90,146, 18,175,194,139,196, 38,134, 32, 18, 87,127, 62,227, +112, 60,226, 97,255,128,135,195, 9,195, 72,121,197,214,122, 92,153, 9,179,148, 84, 81,106, 13,239, 3,110,143, 61,180,174,232, + 82,119,244,243,207,179,229,104, 83,197, 35,186,178,137, 14,223, 58,146, 94, 36,178,137,204, 92, 14, 23,163,246, 50,202, 54,148, +128,161,242,243, 14,249,162, 91, 64,107,120, 55, 73,123, 65,145,130, 11, 68,204,236,246, 98, 25,211, 27, 10,223,166,160,192,139, + 60,201,201, 35,246, 80, 68, 24,102, 64, 77,193,161,142, 34,192,194, 73, 17, 15,130, 24, 56, 20,202, 17,215, 34,150,151, 10,194, +144, 68,104,133, 56,141,167, 81,226,141, 84,131, 76,205, 35,238, 66, 96, 79,177,131, 82, 26,175,238, 30, 48,140, 3,118,183, 35, +174, 30,191,131,243,241, 33,129, 68,134,105,134,115,119,216,108,175, 32,117, 13,231,124, 58,104,103, 99,217,203, 44, 22,170,246, +176,152, 28, 96,161,224, 15, 40,131,218,232, 0,147, 5, 99,127, 50, 22,150, 15,127, 37, 36, 44,136,119,160,164,128,116, 62, 77, + 50, 0,203,194, 88,153, 34, 40,193,150,175,168,128,246, 60, 73,137, 81,153,206, 76,144, 65, 67, 86, 21, 2, 60,105, 2,216,222, + 10, 14,140,137,153,217,152, 29,125,215,116, 5, 85,213,201, 63, 79,107,168, 25,147, 49, 24,134, 51, 6, 22, 31,181, 93,139,170, +170,208,182, 53,186,182, 75,239,209,141,144,208, 85, 3,231, 61,147,194, 60,246,103,131,135,243, 45, 42, 93,161,171, 53,254,224, +227,247, 48,205, 79,240,226,118,143,231,247,123,156, 70, 7, 72, 96,221,213,120,114,181, 65, 48, 19,142,115,192,110,189,194,195, +233,140, 70, 87, 8,130,148,204,105, 93,197,108,250,245,118,135,159,254,238,103, 4, 54, 9, 62, 71,135, 46,138, 84, 62, 48,211, + 24, 30, 20,194, 82, 22,135,137, 5, 46,210,243, 32,101, 57, 97, 18, 9,116, 68, 90, 90,159,132,142,214, 24,100,185, 58,125,166, +102,158,147, 69, 43,174, 3, 80,216,170,180,115,152,231, 17,253,254, 30,207,158, 86,164,249,120,252,152,184, 8,124,177,128,247, +245,214,146, 24,109,178, 22, 58,120, 10, 45, 17, 72,222,102, 15, 15, 56,201, 94,125,145,232,135,145, 45,239, 56, 60, 38,199,207, + 2,214, 9,248,161, 71, 8, 68,249, 35,250,158,132,224,180,192, 72, 87, 19, 66,210, 88,219, 26,132,224, 10,118, 58,219,191, 20, + 39,138, 5, 73,194, 70,155,173,127,199,227, 17,206, 89,116, 77, 3, 55,121,200,186,198,102,221, 97, 28,199, 4,185,137,233,100, +139,115, 80,208,212,201, 39,129, 28,137, 35, 29,123,188,203,145, 53,251, 3,146,150, 37,234,171,105,149, 68,113,195,209,113, 1, + 0,211, 52,226,246,238, 62, 93,236,117, 93,167, 70,196,123, 87,190,132, 66,151,196,236,126,228,238, 29, 11,118,103, 78,105, 76, +223,175,216, 44,135,156, 33,144, 81, 99, 64, 33,155, 74,223, 27,201,180, 61, 18,140,250,136,141, 79,171, 8,189, 8, 14, 73, 62, + 37,153,186,162, 28,242,130,197,133, 34,176,180,224, 8, 31,255,155, 47,111, 41,222,200, 4,143, 64,134,224, 75, 43,213,114, 47, + 31, 15,194,182,174,240,252,233,231, 88, 85, 21,100,165,161, 59,194,110, 70,225,135, 84, 18,222, 80,120, 69,211, 84,144, 51,160, + 37,129, 16,134,217,162,107, 60, 32, 60, 14,189,196,195,169,199,105,152,224,188,195,110,189,198,179, 87,247,184,127, 56, 66, 10, +218,219,175,186, 22,187,245, 26,235,245,138,198, 91, 93,135,174,237,208,212, 21,234,138,254, 83,213, 85,186, 54,231,137, 50,130, +247,251, 61, 94,191,190,199,126,127,192,121,140, 1, 21, 1,253,236,176,171, 45,198,160, 97,166,153,190,196,135, 19, 49,148,157, + 67, 59, 78,228,109,118, 30,231,201,208,235,173,243, 62, 88,248,204, 5, 94,188,209, 98,137,124, 69, 9,119, 97,187,217, 27, 96, + 22, 22, 37,134, 5, 56,150, 99,116,249,162,149,165, 58, 62, 78,153,100,254,231, 75,157, 94, 44, 12, 18, 79,176,248,114,115,130, + 85, 49, 2,240,101,108,172,231,106,180, 4, 28,151,202,239, 16,114, 4,176, 16, 69,174,181,207,193, 5, 62,171, 69,195,197, 98, + 63, 11,248,196, 5,241, 41, 31,210,223,170, 86, 40, 68,128, 79,191,121,141, 87,175,239, 48,141, 3, 62,253,201, 31, 98, 60,159, +177, 89,183,248,103,255,244, 87,184,122,235, 61, 60,188,124, 74,223,101,231, 49,206, 19,220,195, 29, 86,219, 43,232,154,166, 47, +100, 1, 11, 32,243, 86, 60,212, 98, 50, 97, 9,222,225,148,175, 68, 61, 95, 60,133, 69, 38, 2,117, 59, 46, 4, 82, 22, 91, 3, + 37, 9, 30, 99,133,132,178,110,153,213, 32, 52, 2, 28, 96, 12, 7,126,144,110, 36,196, 40, 81, 0, 66,208,154, 74,105,133, 96, +153, 32,233,226, 26, 68, 33, 76, 46,165,166, 9, 7, 8,165, 19, 25,178,226,241,185,168, 52, 84,160, 24, 81,231, 44,156, 11,152, +231, 9,243, 52, 97, 56, 29, 49, 79, 19,234, 74, 67, 87, 84, 32,183,109,131,182,235, 80, 85, 21, 77, 5,120,210, 98,189,135, 84, + 2,227, 52,195, 24, 67, 47,193, 57,244,199, 49,229,101,175,186, 21,126,255,241, 35,212,149,134, 19, 18,134,213,221, 93,179,197, +105, 48,248,171,175,190, 70, 83, 83,145, 49, 25,139, 0,151, 70,240, 74,107,172, 86, 27,188,245,228, 49,118,219, 77, 18, 31, 73, +166,210,229, 56,232,194, 24, 20, 21,198, 66, 20, 84,110,222,129,202,204,226, 78,221, 62,127,223,168,230,207,107,198, 20,220,197, +112, 46,227,124, 18, 84, 66,208, 14,152,224, 62,158, 47,188,165, 15, 89,184,140, 60,157,198, 51,142,247,119, 48,243,132,215, 47, + 94,226,157,247,222,195,245,163, 27,238,174, 29,172, 33, 27, 89,165, 21,161, 83,233,141,228,221,127,182,197, 57, 88, 46,186,179, +101, 52, 2,149, 66,145, 22,226, 41, 77,135,126, 62, 94, 5, 82,151, 78,239,105, 85,213, 52,121,144,130, 35,176, 13,224, 45, 41, +157,120,245,225, 24, 21,171, 84,200,151,188,240,112, 46, 19,214,194,204,254,127, 94,125,198, 28,244,154, 49,196,179, 49, 5, 93, + 50, 39,131, 42,173, 0, 23, 25, 3,188,230,243,101,145, 95, 72,110, 24,250,239,131, 76,201,114,209, 17, 97,237, 12, 9, 7, 93, +213,116,222,121, 7,231,232, 12, 25,199, 9,183,119,247,144, 82,226,250,250,138, 38,173,222,165,190,235,114, 42,154,117, 75, 33, + 79, 7, 18, 51, 62, 44, 2,207,232,242, 95, 34, 53,169,254,139,193, 87, 98,145, 96, 42,147,182, 54,139,217,133, 20, 16, 78,240, +217,146,153,254, 58,177,106,147,118, 47, 7,179, 80, 94,111, 40, 98, 57, 47,253,206,116,224,203, 32,105, 82,200,123, 61,234, 58, + 69,225,120,138,221,144, 79, 85,175, 72,249,235,165,208,137,126,221,135,191,243, 59,120,241,205, 51, 84, 74,224,120, 58, 98,213, + 86,128,231,232,201,237,154, 14,183,121,130,117,132, 49, 12,158, 94,187,174, 43,104,235,177, 81, 26,234,250, 10,199,211, 9,143, +175, 28,246,167, 1,214, 57,212,138,196, 60, 77, 93, 65, 84, 29,134,243, 17,131, 25,113,232, 71,188,124,125,143,221,245, 13,194, + 52, 96,181,234,208,117, 29,214,235, 53,186,174,193,118,187,197,106,181,130, 86, 84, 21, 78,227,132,211,233,132,195,126,143,251, +251, 7,156,250, 1,179,243,233, 24,159,189,199,241, 60, 97,123,221,226, 48, 76, 48,206, 39, 69,235,121,228,127,191, 32, 97,143, +241,128, 80, 45,174,223,126,178, 36,250, 71,171,140,184,200, 74, 23, 5, 82, 53, 77, 56,194,183,201,226,104,189, 1,207,201, 79, + 33,127,225, 2,197, 60, 70,217, 88,120, 51,142, 32,175, 72, 68, 86,209,211,248, 56, 69,247, 1, 5,151,125,105, 89, 15, 75, 40, +140, 88, 24,234,249,207, 88, 10, 2,211,238,150,171,121,113, 17, 57,136,130,129, 85, 6, 24,228,157,126,206,112,247, 34,188, 25, +178, 16,190,101,213, 80,252,159,132,192,111,190,252, 26,175,239,238,112, 62,247,216,236,174,241,236,203, 95,195, 78, 35,254,229, +231,191, 66,183,222,192, 59,143,237,227,119,113,120,253,140,186, 47,231, 49,249, 25,238,225, 22,219,221, 13,100,221, 50, 55,187, +198, 56, 77,105, 26, 21,149,191, 41,134, 62, 20,197, 85,132,255,134, 69,165,146, 63,118,100,124,115, 34,166,121, 79, 0, 13,239, + 97,226,136, 87,133,156,168,192, 23, 87, 21, 11, 37, 6,180, 68, 40,136,148, 10, 94, 51,106, 51,198,130, 70,170,162, 20, 9, 86, +162,117, 5, 85,209, 26, 74, 85, 53, 93,254,146, 68,164,177, 3, 38,240,206, 4, 59,140, 48,227,128,241,244,128,105, 28,128, 16, +208,198,201, 87,211, 80, 44,107,211, 16,156, 36,198,197, 10,192, 59,186,216,219,149,199, 48, 78, 24,134,145,166,113,132,148,132, + 15, 1,119,199, 19, 94,239,143,228,129, 6,229,177, 91,107,113,158, 38,250, 57,165, 68, 93,105, 46, 14,124, 18, 87, 73, 41,209, +182, 29,154,182,195,143,127,244, 73,186,136,227,104, 60, 68,234, 91,236,214, 11,171,228, 18,246, 80, 48,185,121, 85, 18,117, 68, + 82,150, 26,142,192,249,234,113,108,202, 20, 49, 38,189,197,139,221,115,122, 88,132, 12,185, 34, 35, 59,150,118,212,141,113,194, +156,165,220,241,121, 26, 1, 33,112,120,152,177,191,191,195,251, 31,127,130,171,155, 43,120,231,210,254,220, 89,139, 74, 9, 12, +227, 12, 59, 77,252,239,240,208, 82,164,194,193,186, 12,145, 73, 66,186, 4,238, 9, 28, 88,194, 13,152,115,240, 32,167,145, 82, +154,186, 96, 33,153, 69,239, 33, 36, 97,138,157, 53, 8,158,198,193,154,209,184,224,206, 51, 22,231, 49, 43, 60, 78, 24, 84,136, + 1, 86, 1,199,158, 34,127,107,165, 97,157,199,170,166, 53,168, 20,180, 92, 65, 40,194,170, 10, 33,108, 96,235, 49, 92,200,231, + 83,202,126,160, 53,178,231, 85,112, 44,235,149,170,120,178, 96,224, 45,160, 80,113, 20,171, 76,233,122, 14,196,228, 31,199, 9, +119,247,123, 72,169,176,101,123, 52,245, 91, 50,135, 48, 69, 78,134,207,114, 40,148,201,166, 1,188,178, 9,217,141, 19,179,209, +188,191,212, 60,167, 70,200,243,152,159,126, 63,171,228, 99,105,192, 43,242,236, 40, 75,172, 36,168,127,239,223,255,211, 63, 79, +237,129,100,225,136,200,157, 95, 26, 57,201, 56,138,141, 85, 66, 22,193, 21,243,131,111, 77,172, 17,225,130,123,186,128, 79, 20, +249,233,252,151,199,227,128,159,253,236,103,120,247,131,239,225,254,225, 30,179,177,100, 29,226,137,193, 56, 78,240, 34, 71, 44, + 66, 80, 55, 97,172,163,138, 93, 41,136,224, 16,156,193, 91,239,188,143,119,223,121, 27,247,251, 61,132,119,104,180, 34,120,199, + 60,113, 26, 16,125, 49, 86,219,107,124,244,217,143,241,244,233, 51, 88,235,240,233,223,249, 67,252,229,207,255, 18,170,219,224, +245, 55,207, 48,156, 7,140,227,132,211,241,132,251,135, 7,220,221,223,225,225,126,143,211,121,192,236, 28,108, 2, 1,137, 36, +140,128,247, 88,173,215,216,247, 3,172, 15, 24,141,197, 56, 27,156,199, 25,167,113, 66, 63, 91, 88,169, 81,119,107,188,251,209, +251, 5,241, 44,103,239, 38,190,123, 89,193, 7,177,136, 62,141,227,236, 52,184,241, 33, 89,209,114, 9,149, 19,221, 66, 54,252, + 20,157,120,120,179,163, 21, 50,125,140,209, 42, 68, 85,239,155,144,249, 80,114,226,133, 76, 25,191,254, 34,102, 58,158,230,105, +175,142,176, 72, 91, 43,247,252,113,143, 30,173, 97, 73,179,159,190, 71, 57, 53, 75, 20,123,252,197,106, 32,105,157,194, 2,107, +187,220, 83, 72, 60,127,121,135, 23, 47, 95,226,116, 58,192, 26,131,243,233,136,135,187,215,232,251, 3, 89,214,108,236, 72, 13, +170,166,131,153,198,244,158, 89, 23,224,236,140, 77, 91, 1,170,130,210, 26,214, 89, 88,107, 96,166,129,194, 41,202,213,135, 88, + 70,226,138, 98,255, 33, 82, 83, 18,210,251,175,148,132,210, 21,174, 55,107,254,126,211,190, 80,240, 24, 85,132, 98,108,155, 18, +225,150, 72,221,192,176,142, 44,122,114, 9, 87, 60,243,127,198,105,196,241,120,192,241,212, 99,224,206, 89,134, 60,227, 33,232, + 14,129,103,116,221, 65,215, 45,156, 35,225,211, 52, 27,156,207, 39, 28, 30, 30,240,240,112, 15,107, 45,234,182, 69,187, 90,161, +169, 27,202, 98,111, 26, 84,138,130, 84,234,186,130,210,244, 94,169,186,134, 82,116,176,234,138,244, 44, 4, 99,177,152,102,147, +216,232, 62,120,204,102,198, 56, 17,204,132, 99, 40, 80,119, 45,170,186, 78,185,225, 30, 72,123,244,245,102,135,191,255,247,254, + 32, 45,246, 68,220,135,103,129,124, 33,156,204,121,224,169,158, 78,191,168, 64, 31,243,231, 19,189,208,161, 76, 76, 20,185,139, + 47, 25,240,117, 85,227,112,236,113, 60,208,168,217,152,153, 58,106,195,113,178,133, 40, 44, 17,224, 4, 21, 13,164, 48,103,251, + 26, 71, 1,247,167, 19,250,253, 61, 32, 8,125, 59,142,103,120,231,112,127,119,143,121, 26, 96,172,193, 56,141,112,102,134, 53, + 36,112,163, 2,196, 39,232, 82,188, 80, 67, 18,158,249, 20, 66, 82,166, 42,198,247, 65, 10,250, 30, 70, 79,188,140, 74,114, 75, + 54, 55, 33,136, 37, 32, 68,164,248,201, 5, 2,246,242, 59,153,182,198, 76,104,140,223, 81,203, 74,247, 74,211,100,211,199, 4, +182, 52, 29, 41,244, 52, 97,249, 44,199, 95,147,244, 52, 34,159,155, 82,209,132, 65, 74, 69,116, 80, 79,107, 50, 37, 40,109, 80, + 73,133, 74,179,205, 58,126,222, 74,193, 57,143,105,154,200, 2,221,212,105, 31,158,250,157,130,175, 33,210, 68,174, 32,122, 22, + 13,108,178, 89, 70, 13,145, 40, 18,215, 68,158, 94,251,200,143, 23,249,190,204, 14,101, 81, 36,183,133,197,251, 24, 66,128, 46, +233, 32,162, 80, 16, 7,254, 2,251,180, 11,151, 69,186, 76,174,148,144,126,117,225,203,227,206, 34, 17,149,226, 89, 22, 71,239, + 49,187, 61, 18,174,138, 11,104,183,189, 70,176, 22,181,174,240,179,255,239,103,168, 20,237, 56,165,160,224,128,237,134,198,226, +222, 7, 76,209,223, 57, 58,218,241, 4, 64, 86, 21,170,186, 1,160,208,180, 45,166,243, 30,206, 88,252,232,195,247,113,245,232, + 9,116,211,224,183,191,253, 45, 94,126,253, 44,189,241, 77,221, 64, 4,129, 47,126,253,107, 40, 17,240,103,255,240, 63,193,255, +246, 63,255, 79, 8, 66,225,237,247, 62,194,207,254,249,223,224,233,139, 59,108,155, 26,117,173,249, 32,163,156, 98,231,163,112, + 99,185, 67,117, 1, 48, 62,160,118, 14,117, 93,193,204, 22,115, 16,112,193,162, 10, 2, 77, 83,161,150, 53,174,175,111,240,193, +247, 62,202,106,237, 80, 40, 29, 11,186, 80, 22, 44, 20, 21, 81, 40, 35,250, 8,233,138,240,109, 36,183,176, 88,111, 36,208,139, +136, 34, 12, 42, 29,147, 95, 82,138,252,224, 70,190,181, 4, 91, 40, 2, 84, 16,139,184,192, 50, 83,133,196,145,158, 67, 38,178, +243,129,254, 63,231, 11,196,105,132,143, 25, 2, 5,244, 39,132,162, 27, 47, 38, 12,209, 40,145,166, 8,233, 23, 47, 3,104,162, + 60, 47,105, 86, 5, 22,186,127, 92,152, 8, 78,231, 1,207,191,121,137,190, 63,230, 0, 10,142, 87,116,204, 75, 15,240,124, 30, +210, 95,235,102,133,233,124, 76,132,152,105,158,113,251,240,128,171,237, 21,100,187, 33,145, 18, 87,255,214,249,236,247, 15,101, + 49, 38,222,224,251, 39, 33,163,200, 85, 63, 81, 10,105, 68,109,173, 69,168, 43,234, 40, 66,160,174, 43,249,180,233, 64, 83, 62, + 64,123,162,206, 57,173, 97,173,165, 66, 55,106, 48,162,208,134, 85,217,228,141,182,232,207,103,188,186,189,199,235,135, 3,222, +186,190,194,239,254,224,251,104,155, 26,117,224,238,223,121, 72, 45,160,116,141,170,110,137,248, 5,192,250, 64, 49,152,156,155, + 62,143, 35,234,186,129,174, 73,159, 82, 87, 21, 5,192, 40,137, 74, 83, 22,187,212,228,135,183,206, 65,121, 64, 74,226,122, 43, + 22,170,106, 65,104,220, 97, 28, 49, 78, 6,179, 49,176,134, 50,181,103, 99,211,142,255,234,122,135,170,110,208, 15, 35, 78,227, + 76,231,142, 82,208,138,236,107,127,231,119,127, 72,118, 59, 44, 29, 58, 2,223,234, 12, 93,102, 15, 4,177, 96, 26,196, 36,201, +224,105,253,151,226,165, 19,129, 50,206,101, 56,234, 86,209,164, 51, 10,233, 62,254,248, 67,124,253,236, 27,166,198, 21,117,105, + 49,238, 18, 23,196,196,168,204,166,236,112, 66,181,106,237,160,181,198,233,116,194,139,167, 95, 98,189,187,130,119, 6,206,209, +212, 82, 11,138,234,157,149,128, 9,100, 29,181,222,241,132, 34,164,231, 70,192, 39,225,154, 76,200,216,184, 16,226,124,142,152, + 60,167, 36,132,172,232,181,243,168,222, 5,192,219,153,118,204,222, 67,104,149,126,118, 41, 99,174, 60,232, 98,142,109,108, 92, + 61, 48,243, 35, 90, 48,117, 16, 24,166,153,237,143, 22,222, 85,204,124,144,217, 97,197, 66,190,146,101,225,217,151, 15, 14,201, +122, 3,192, 21, 68, 42,140,170,170, 6, 64,118,103,192,211,186, 54, 18, 5,157,131,172, 8,169, 91,105, 1, 25, 40, 84, 38, 71, +253, 58,188,186,189,131, 82, 18,219,237,122,113,246,138,148,193, 33,151,126,243,146, 29, 18, 39, 65, 9,195,206,107,196, 98,253, +115, 41, 34, 14,220, 24,166,153, 4, 3,107,226, 68,167, 76,111,163,144, 39,250,159,245,155, 33, 30,209, 63,151, 53, 68, 36,221, + 71,142, 28,196, 69, 39, 84,236, 99,147, 80, 9,161, 64,115,139,162,194,112,124,160,184, 52, 54, 77, 99,250, 0, 74, 5, 26,123, +172, 26,129,177,174,112,236,123,120, 71,157, 64, 83, 41,244,195,128,205,170, 67,219,212,232,135, 25,243, 68,106,203,117, 87, 99, +187,219,209,248,167,210,168,149,194, 56,156, 1,231,208, 40, 9, 81, 43,216,241,136,105, 56,225,147,239,125,132,235,221, 6, 63, +255,197, 47,177,170, 52,249, 77,101,128, 51, 61,254,243,127,252, 95,225,191,251, 39,255, 24,206, 11, 52,149,194, 47,126,246, 47, + 48,187,128,113, 38,101,228, 97,127, 74, 35,187,212,157, 10,153, 74,127, 1,145,246,167,212, 93, 0, 58,120, 76,117, 75,151,145, + 82,184,186,186,193,238,230, 49, 62,253,254,135, 20,192,144,152,191,133,133,193, 23, 19, 89, 81,174,212,233,178,186,148,197, 19, + 83, 88,166,200, 64,132,197,148,234,194,151,125,113,237,251,204,120,143,136,213, 32,233,146,247,146,126, 18, 25, 51,147, 67,182, +204, 93,218,203, 19, 40, 65, 32,249,195,125, 18,194,101,254,121, 8, 75, 0, 76, 82,164,135, 98,156, 31, 66,129, 59, 14,139,208, +131,242,175, 3,190,165,241, 78,253,111,121, 28,243,248,171,176, 47, 65, 8,152,201,226,183,159, 63,195,241,184,231, 8, 71,155, +246,148,161,240, 23,151,246,154,224, 29,204, 60, 97, 24, 39,172,186, 22, 50, 4,184, 64, 17,161,199,254,136,173,212, 16, 74,163, +169, 27,244,170, 2,236,132, 16,149,192,139,215, 20,138,149, 90, 88,124, 62, 33, 82,209, 82,156, 39, 69, 13, 95,239, 86,172,176, + 87, 8,146, 19,255, 60, 57, 79,172,247,240,198,195, 9,139, 41,128, 92, 35,156,135, 45,132, 45, 36,175,220,157, 57,143, 97,154, +208,159, 7,244,227, 8,165, 20, 54, 93,139,235,117,135,143, 62,252, 16, 79, 30, 63, 70,219,180, 16, 74,166, 47,148,170, 42,202, + 33,215, 21, 76, 8, 8,170,130,199, 8,203,225, 26,243, 60, 83, 81, 45, 37,170,186, 74, 78, 18,169,152,211, 30,255, 35,104,127, + 89,129, 66,158,132, 18, 16, 66, 67, 34, 64, 5, 5,209,214, 80, 74,160,109, 42,204,134, 82,239,134, 97,132,210, 10, 45,103,159, + 11, 77, 0, 22,154, 18,156,105, 55, 13, 65,201, 94, 60, 89,249,197, 95,255, 6,159,126,252, 17,158, 60,185, 38, 1, 96,202, 29, + 40,204,181,172,136, 22, 33, 92,160, 63, 67,161, 88,142,110,144, 2,121,237,243,163,228,185,112, 77, 26, 36, 33,146,154, 93,200, + 44,170,251,236, 71,159,226, 47,255,226, 23,112,145,163, 32, 36,132, 96, 13,128, 44,124,208, 40, 80,165,158,244, 10, 49,238, 69, +112,218, 90, 8, 1,135,253, 29, 32, 36,166,105,132,157,206,212,252,212, 29,180, 8,232,234, 10,118,162,189,235,236, 57, 61, 82, + 21, 25,220,188,238,146,188,167,214, 12,218,138, 73,110,158,153,248, 66, 40, 8,169, 19, 75, 65, 74, 65, 62,113, 30,185, 67,248, + 36,188,163, 49,123, 44,230, 37,154, 90, 2,134, 18,102,125,145,129,128,216, 13,243, 62,207, 2, 16, 9, 4, 36,184,152,246,168, +107,205, 83, 34,230, 75,112,132,172,224,181,135,140,252, 4, 70, 35,251, 40,154,229, 39,140,108,107, 21, 93,232, 66,192, 90, 3, +239,109, 18,155,121, 47, 18,116,199,123, 7, 21, 28, 42, 89,161, 82, 10,198, 1,198, 59, 10, 20,210, 26,195,121,192,235,219,123, +212,117,133,150,207,109,186,107,201,127, 30, 16, 33,101, 33,225,129, 33, 98, 78, 7, 23,243,145, 17, 80, 76,190, 67, 2,232,196, +200, 90,151,210,230,150,194,225,229,122, 60, 20,224,157,156,155,193, 62,245, 75, 24, 89, 68, 14,199,197,188, 8,114, 25, 2, 82, +200,174, 66, 58, 95, 89,205, 39, 99,117, 20,210, 7, 43, 99, 40, 72,145,163,157, 16,180, 49,180, 66, 0, 33, 72,188,124,245, 10, +127,245,203, 95, 96,215, 86, 8, 1, 88, 85, 10,119,227,128,182,169, 96, 45, 85,243,149, 82, 56,158, 71,140,195, 64, 57,201, 80, +176,178,193,233, 76, 81,145, 56,247,144,109,155, 32, 51,231,113,196,186,107, 8,108, 97, 29,220,124,198,223,124,254, 5,164, 82, +152,230, 25,168, 52,124,240,216,236,174,241,223,254,147,255, 18, 87, 55,143,113,184,189, 67, 37,105,127, 55, 91,143,154,243,155, +109, 20,115,161, 24,213, 21, 98, 50, 89,118,146, 74, 49,191, 56, 32, 40, 44,160,253, 85,221,160,226,140,236, 40, 72, 75, 22,137, + 4,160,201, 93, 69, 10, 80, 16,209,249, 24, 22, 32, 21,196, 14, 25, 69,130,207,133,175, 45, 1, 98,144,129, 40,165, 50, 94, 22, + 72, 26,233, 3,188, 20, 68, 23,149, 5, 17, 46,209,217,196, 27,177,168, 84,151,248,148,190, 86, 18,100,163, 72, 38,189,178, 32, + 22,200,227,232,183, 85, 82, 36, 63,119,132,199, 4, 92,138, 2, 11,174, 68, 34, 59,133,165,181, 45, 46, 25, 34, 55, 33,254,212, + 50, 43,225,157,243,248,205,231,207,240,112,255, 26,243, 52, 21,169, 82, 46, 33, 51,243,101,158, 39, 7,214,242,126, 19, 1,231, + 97,196,122,213,194, 27,178,240, 56, 15,156, 78, 71,172, 86, 43, 40, 37, 81, 55,100,187,138,155,139,203,242,106,225,109, 45,109, + 35,241,242, 69,206, 78, 62,143, 52, 74,165, 36, 42,254,252, 35, 66,150, 97, 46,129,203,101, 41, 5, 38,222,235,139, 34,217,205, +123,143,217, 24,178,129, 58,135,182,105,176,217,172,113,117,181, 35, 85,183, 49,184,222,172,241,248,209, 35,108,182, 59, 38,150, +121, 38,209, 41, 72,201,220,251, 16,224,133,130,115, 51,191, 31, 51,230,113,164, 61,110,160, 68,186,184,151,149, 81,240, 88,164, +214,197,241,173, 16, 20,162, 36, 60,127, 27, 36, 77,219,148, 20,208, 74,194, 40,137,170, 34,223,117, 83,215,232,186, 22, 54,208, + 30,154, 10,137,153, 45,165, 54,243,210,189,135,214, 32, 26,160,243,248,249, 47, 70, 60,122,252, 54, 62,124,255, 59,120,124,115, +197,176, 16,145,223,155,203, 49,232, 66,128, 41,146,112, 52,230, 17, 8,173, 82,223, 46, 32, 23,128,151,248, 13,116,222, 49, 4, + 8,208, 66,147, 87, 28, 1, 79, 30,223,224,157,119,223,197,231,191, 29, 1,113,102, 31,189, 44, 38,252, 52,185,146, 82,112,108, +171,132,115, 22, 2,142, 62, 3, 73, 5, 94, 85,105, 84, 90,225,116, 26,112,247,250, 27,172, 54,215,112, 30, 48,102, 66,203,126, +250, 90, 75,172,219, 6,194, 59, 32, 16,145, 48,234, 45,226,231, 17, 53, 1,193,123,104,173,114, 35,192,238, 9, 1, 73, 23,122, + 18,164, 9,246,116,211, 68, 11,130,197,209,130,115,198,161,147, 80, 90, 41,250,179,107, 77,206,105, 7, 15, 23, 56,212, 43,230, + 25,240,179,233,227,232,194, 58, 46, 26, 60,163,104, 93, 10,161,137,119,155,103, 7, 78, 4, 59, 5,159,233,114, 57,186,153,156, + 15, 74,215,168, 52,101,195,219,121, 74,176, 34, 31, 36,113, 38,100,200, 49,178,206,161,210,158,117, 1,146, 39, 3, 30,179, 7, + 85, 37, 90,224,120,234,241,226,213, 29,222,127,239, 59,252,249,208,207,239, 69,153,173,158, 11,116, 25,136,193, 18,100,110, 78, + 60, 60,130, 37,186, 29,253,187, 93,202, 54,136,151, 57,202,224,170, 16, 46, 89,161, 75, 66,231,197, 5,174,203, 52,175,210, 46, + 36, 69,190,172,163,191, 86,198,132, 31,246,127, 94,170,219, 75,194, 87, 26, 51,200, 44, 12, 10, 2,204, 91,166,189, 80,224,224, +149,217, 81,100,164,112, 22, 47, 94,124,131, 77, 87, 83,114,145, 53,112,222,163,107,106,188,125,181,198, 56,141,168,234, 6, 46, + 0,211, 52,193,122,160,173, 4, 28, 52, 94,191,122,137,102,181,195,174, 3,234,138,174,138,166,174,224,204,156,118,250,167, 83, +143,237,122,141,215,175, 94,225,223,253,183,127, 15,109, 93, 99,154, 72,225,248,229,211,103,216,223,221,162,106, 90,252,167,255, +217, 63,194,127,253, 95,252, 35,212,237, 99,204,134,210,221, 42, 33, 80,213, 26,222, 4, 88,227,225, 24,166,179,220,127, 21, 41, + 82, 90, 65, 85, 42,133, 52,132, 88,228, 4, 79, 42,225,164, 90, 14, 57,237, 9,172,122,228, 74, 46,192, 67, 48,151,124, 17,138, + 34,120,148,141,165,125, 16,184,136, 13,140,190, 74,136,165,127, 18, 98,193,181, 73,254,199,216,168,196,124,104, 31, 56, 53,138, + 19,129,184, 32, 72, 8,216,111,117,135, 81,113,225,249,160, 18,113,100, 86,236,185, 99,104, 76,230, 42, 23,116,171, 32,150,227, + 80, 17,190,117,152,148, 71, 92, 81,120,242, 6, 41,159, 15,238,242,114,151,169, 16,179, 54,224,171,167,207,113,127,247, 10,195, +112, 78, 35, 56,239, 56, 20,194,187, 69,135,142,130,141,109,205, 12, 51, 79,176,206, 66, 74,133,205,122,135,190, 63,192, 49,176, +199,121,143,253,254, 1,109,183, 70,215,117,232,143,251, 55,127,150,130,161,159, 39, 22, 60, 95, 8,197,235,142, 81,164, 66, 96, +156,105, 12,237,156, 47,118,194,108, 23,138, 91,154,120,240, 6,208,212,129,247,165,198, 90, 76,204, 21,175,235, 10,187,171, 45, + 86,221, 26,117, 83, 69,120, 40,156,161,209,182,148,180,247,214,117, 77, 42,113,103, 33,188,135, 20,116,169,243, 50,130,200, 94, +206,194, 90,199, 59,226, 9,134,167, 29, 80, 26, 42,228,206, 50, 85,132,206, 37,213,120,224, 11, 77,202,204, 58,136,239,189, 86, + 10,161, 98,246,121,226,141,179, 71,192, 5,120, 67,226,177,211,241,136,113, 24, 83,242, 27,189, 85, 21,197,127, 74,162, 53, 10, + 1,188,124,241, 12,231,243, 25,111,191,245, 24, 31,127,248, 93,182,214,133,108,209,205,108,215, 12,253, 72, 43, 42,145, 58, 34, + 37, 99,176, 75,126,158, 67, 88,234, 57, 98,224, 8, 0, 82,105,243, 52, 69, 73, 26, 35,255,224,211,143, 48,140, 35,190,252,124, +134,152, 45,132,244, 60,201,146,156, 69, 17, 67,166, 36,124,112, 8,142,243, 0, 4, 21, 58, 78, 25,210, 85, 0,168, 42,141,115, +223, 19,120, 75, 85, 16, 1, 56,159,137,237, 33,225, 81,105,137,174,173, 41,103,126,206,249, 1,177, 67, 39,188, 54, 23, 88, 44, +114,163,239, 23,237,160,165, 18,116, 1,178,234, 59, 4, 79, 1, 45,156, 3, 47, 11, 97, 88,158,184, 33, 57,168, 40, 97, 80,194, +179,248, 85,120, 70, 62, 7,192, 7, 87,184, 8, 36, 36, 60,172, 7, 20,200,130, 9, 3,158, 52,201,100,133, 14,156,125,144,194, +204,128, 34,111, 33, 67,120,164,164, 53,145,214, 21,173,169,236, 76,225, 92, 34,135, 57,121, 30, 91, 91, 71,123,252,138, 51, 76, +130,247, 80,193, 1,138,147, 22, 13, 61, 67,244, 61, 4,246,251, 61,214,171, 22, 79, 30,223,112,148, 56,159,177,126, 97, 78, 79, +218,132, 0, 66,239,250,224, 19, 3,159,126, 22,159,166,129,233, 18, 47, 96, 57,233,127, 95, 64,116, 80,230, 94, 23, 43,200,156, +147,170,203,147, 82,198, 11,230, 98,187, 14, 78,138, 41,125,234, 73, 72, 39,138,142, 47,142, 10,185,107,114, 33,164,131, 21,145, + 64, 38, 0, 23, 36,164, 4,140,245, 24,141, 32, 14,114,176,176,193,161, 82, 26,187, 71,143,240,205,243,175, 49,155, 57,141, 99, + 70, 99,225,132,196,237,253,129,148,156,222,162,174, 27, 12, 99,143,227,249,132,205,246, 26,222, 76,112,168,113, 26, 12,246,253, +132,235,109, 7, 55, 77,104,155,138,243,217, 9,214,113,253,248, 9, 62,253,228, 19, 74, 22,242, 20,128,240,211,223,251, 9,250, +190,199,195,233,140,255,241,191,255,111,240,147, 63,252, 35,252,252,151,191,128,132, 64, 45, 4,110, 30, 63,193,185,223, 35, 76, + 1,109,173, 48,204, 14, 22,129,130, 9,216,198, 17, 7, 32,148, 51, 77, 22,184, 97,154,168,171,143,149, 21,143,210,250,211, 1, +207,190,185,199,187,223,185,225,129,200,146,196,150,157, 1,133,152, 10, 23,161, 2,151, 98,140,210,174,118,193,115, 79,251,120, + 17, 46,246,224,220,243,133,192,107, 4, 14,184, 72, 22, 57,145,122,198,180,199, 42, 66,245,130, 8,184,248,158,165, 81, 55,124, +254, 94,128, 85,248,225, 2, 87, 27,109, 94,161,240,222, 47, 73, 56,165, 13,236,226, 66,140,197,136, 36, 69,127, 20,160, 68,191, +112, 12, 11,114,214,227, 52,206,152, 39, 67, 22, 33, 51, 99, 24,206,248,250,155,231,232,207, 61,137, 45,121, 42,226, 57, 49, 43, + 93,232, 40, 47,117,130, 86, 88, 67,197,166,128,192,122,181,134,117, 22,149,174, 0,231, 82,246,178,117, 22,231,126,143,110,189, + 35,160,133,115,139, 7, 62,177,247,223,240, 30, 44,209,189, 66,100, 70,181,245, 30,227, 52, 81,196,166,243, 16,113,172,237, 51, + 18, 83,200,156,209,238, 3,237, 61,173, 15, 8, 74, 99,187,222,160,107, 91,180, 13, 97, 57,171,170,166, 93, 41,143,137,173, 0, +204, 52, 99,127,234,113, 58,158,208,174, 55,168,153,170,168,170, 26,186,109,201,222, 38, 20, 21, 13,134,176,176,243, 52, 98, 26, + 39, 12,231, 51,250,243,128,113,154, 81, 53, 13, 42,165,224,107,205,158,123,206, 83,176, 22, 80,148,194, 38, 32,224,224,161,130, + 98, 33, 22, 49, 39,156,162,160, 22,197,228, 44, 37,178,195,152, 18,207, 12,166, 97,192,233,112,196,249,124,102,154,156, 72,123, +118,201,148, 48,103,103, 40, 93,193, 90,194,151, 78,227, 25,175,111, 5,102,227,240,163, 31,124, 0,165, 37,196,223,178,190, 73, +222, 12,254,220, 61, 19,201,178,131, 36,176,141, 45, 36,241, 83, 96, 54,185, 15,217, 81, 64,211,155, 56,158, 22, 73, 26,250,251, +191,251, 67, 28, 15, 39, 58,224, 79, 7,192,228,203, 85,198,164,200, 20,219, 27,120,205,226, 88, 31, 33,161,148,164,160, 30,126, +205, 67,127,130,110, 58,194,161, 6, 98,106, 72,149, 27,168, 74, 43, 56,175, 96, 12, 51, 31,124, 88,172,185,226,101,162,164, 76, +185,238,144,154, 40,117,206, 37, 37,182,139,160,163, 88,176, 73, 89,240, 50,232,125,210, 17,193,203, 69, 8, 2, 21, 11, 33,228, +162,151, 46,101,153,210, 13, 3,235, 21, 16,120,157, 20, 64,162, 71, 41,104,207, 46,242, 42,202,133,176, 16,206,130,187,114, 26, +163,211,104, 62, 93,232,220, 28, 70, 74,155, 44,236,211, 81,131,226,147,198, 65,194, 57, 15,131, 25, 90, 9, 84, 85,197,218, 9, +129,195,192,161, 59,150,158,205, 23, 47, 95,227,122,183,133,210,138,133,174, 49, 84, 37, 25, 26, 17,124,128, 9, 84, 76,164, 78, +188,108, 20, 82, 54, 68,153, 72,137,194,129,224,243,206,156,215, 19,101,200, 16, 7, 7, 46, 92,206, 52, 25, 42, 5, 85, 81, 89, +189, 64,216,196, 52,153,188, 51,201,200,196, 11, 32, 77, 42, 10,144,246, 69, 40,186, 40, 74,158, 17,144,193,193,134, 6,214,142, + 80,193, 64, 6,250,226,159,199, 51,156,179,120,249,106, 79,177,124, 10, 80, 74, 99, 98, 21,236,105,166,157, 71,211,172,209,247, + 22,118,154,176, 89,239,112, 60,191, 36, 15,248, 76,150,145,225,220,227,250,209, 91,216, 31, 79,112,206,226, 48, 58,116,181,130, + 12, 1,183,183,175,241, 15,255,163,255, 24,187,237,142,173, 53,244,122,173, 49,116, 64,205, 51, 62,249,240,125,244,125,143,247, +222,190,198,231, 95, 60,197, 55,207,190, 6,236, 4, 99,201, 26,162,149, 66,183,107,112, 26,103,234,126, 66,156,110, 72, 40, 45, +161, 43, 13, 33, 36,198,113,132,115, 30,171,171, 43,140,195,148,166, 32,206, 58,152,105,194,221,221, 61,158, 60,218,209,222, 9, + 89, 4, 38,138,185,117,194,175,198,207,160,200, 87, 11, 37,214, 55, 45,249,253, 69,202, 91, 88, 32, 84, 47,199, 56,249,129, 18, + 81, 31,156, 10,135, 16,242,133,227, 19,183, 61,175, 1,104, 47, 39, 22, 17,147, 9,190, 81, 10, 33, 11,214,116, 88,208, 20, 74, +192, 81, 72,123, 54,113, 9, 45, 22,101,161,195, 63,167,140, 32,144, 34, 25,137, 15,208,105, 52, 41, 95,217,199,189, 31, 31, 72, +227, 60,195, 59,143,135,227,137,166, 61,102, 78,135, 77,224,128,138, 88, 69,167, 86,128, 59,132,192,149,182,179,134,200, 77, 90, + 99,181, 90,195, 57, 3, 0,168,171,154, 64, 44,236, 69, 54,214, 66, 12, 61, 54,155, 43,156, 14,247,139,105, 67, 94,101, 45, 97, + 39, 33,100,111,115,114, 59, 72,153, 10,170,211,121,196,245,149, 77, 36, 49, 41, 40,168, 37,101, 47,120, 14, 94,145,180,246,146, + 2,104, 35,107, 65,107, 84,149,134, 82, 26, 90, 41, 40, 30,115, 7, 73,207, 70, 64,128,174,107,220,190,126,141, 47,191,254, 26, +155,171, 43,168,245,138,186,246,110, 5, 85,183, 41, 81,209, 57, 11,103, 38,216,121,130,153, 39,140,227,128,190,239,113, 56, 28, +233,208, 5, 96,218, 6,181,243, 8,186, 66,144,146,215, 4,158,198,149,222, 48, 63, 95,193, 5,151,186, 12,239,124, 98,240, 71, + 7, 73, 96,209, 31,141,249, 7, 12,231, 17,167, 83,143,227,169,135,241,153,127,157,194, 46, 60, 81, 2,154,166,131, 20, 36,146, +146,156,156, 54,207, 19, 14,135, 61, 94,188,188,195,123,223,125, 43, 27,114, 46, 82,182,178, 91, 36,227, 76,105,212,158,117, 70, + 8,129,125,224, 5, 72,201,243,122,140, 21,224,137,181,144,210,212,232, 3,182,222,225,239,254,225,239,227,255,253,151,255, 26, + 66, 72,156,142, 15,240, 12,198,223,152, 0, 0, 32, 0, 73, 68, 65, 84,214,242,168, 89, 20,157, 90, 46, 55, 18,247,220, 57, 40, + 99, 33, 85, 38, 22, 26, 99, 48,206, 6, 90, 87,168,148,128,153, 29,154,154, 66, 86, 92, 76,121, 91,232,151, 88,113, 30, 66,177, +202,138,130, 83, 65,115,200, 66,189, 78,163,112,131,192,177,174,113, 26, 68,216, 82,153, 46, 93, 81,100,222, 75, 33, 40,223,156, +117, 6,170, 16, 44, 6, 0,149, 2, 12,159, 51, 46,248,130, 30,137, 98,236, 44,179,142,128, 53, 91,190,176,220,162,136, 50,245, +158,138, 58,173,235, 20, 25,108,236,156,109, 99, 81,180, 93,224,151, 51, 95, 94,240, 68,203, 0, 65, 98,158,185, 57,211, 20, 63, +108, 93,192,105,178,105, 50, 96,173,192, 87,207,190,198, 71, 31,190,191, 76,101,244, 14, 54, 77,245, 92,254, 94, 68,220,117, 8, +140,232,205,129, 45,101,167,158, 45,222,197,239, 73,194,185, 28,242, 20,202, 30, 40, 42,252, 89, 88,173, 47, 13,104, 41,205, 51, +191,157,116, 33, 72, 86,189, 23,200,184, 68,194, 90, 52,132,162, 64,115,135,196, 47,207,174, 55,129,113, 14,240,230,136,166,214, + 4,216,247, 62,121, 44,155,182,193,225,222, 64, 6, 79, 7,115, 48,236,181,149, 88, 85, 18,231,179,199,233,120, 68,219,214, 16, +170,198, 60,157,241,228,209, 99, 60, 60,220,161, 91,109, 49, 79, 35,116, 85,163,239, 79,168,116, 69,227,178,224,112, 56,246,168, + 21,176,186,122,140,235,235, 27,116, 93,155, 30, 60, 33, 36,188,227,192, 12,107,225, 12,141, 57,191,243,157,239,224, 7,223,255, + 62,198,243, 25,125,223,227,203,167, 79,241,244,155,111,240,242,245, 61,130, 15,216,116, 13,186,182,193,225,116,230, 93, 17, 29, +120,198, 24, 76, 19, 93, 22,154,201, 91,225, 60,166,107,216,199, 93,205, 60,225,243,175,190,193, 15, 63,121, 63, 85,104,226, 50, +194,116, 25, 39,198,117, 96,120, 67,238,246,166,124, 49,179,247,243,184, 58,188, 25,112, 94,254, 59,139,204,241, 80, 88,230, 66, + 81,112, 32,237,236,249,129, 19,165,169,162,208, 91, 68, 24, 77, 26,247,251,172, 63,192, 27,184,226,236, 25,190,248, 25, 68, 17, + 50, 19,167, 5, 66,132,100,177,155,140,197,254, 52,225,124,158, 32,165, 64,173,107,200,224, 32,131,129,150,196, 71, 63,207, 20, +152, 97,173,133, 49, 6,231,105,194,195,195, 30,243, 60,144,186,149, 83,186,200,222,227, 88,140, 19,237, 62, 25,141,232,157, 39, +149,177,247,104,154, 14,171,245,150, 58,128,144, 85,248, 93,219,146, 66,157, 95,253, 52, 77,104, 59,149,131,146,194, 18, 52, 35, +163,125, 69, 92, 14, 41, 66, 26,187,163,184, 52,134,105,198, 60,219,148, 28, 24, 1, 43, 34, 2, 84, 56, 88, 38, 10,116,164, 82, + 41,185, 75, 85, 21,164,174,168, 8,136,135,176, 80, 16,149, 34,145,144,215,208,117,131,245,122,131, 23, 95, 63,199,205,245, 53, + 62,248,224, 3, 82,171, 43, 77,251, 37, 85,193, 51,255,192,177,199,218, 76, 19,134,211, 9,135,253, 1, 46, 4, 84, 85,141,105, +158, 81, 13, 35, 42,165, 40,106, 53, 0, 66, 73, 56, 47,144, 2,181,217,186, 20,147,175, 2,219,191, 92, 32, 93,128, 51, 52,241, +152,199, 9,211, 52,162, 31, 71,244,253,136, 99,127,198,177, 31,200,243,157,103, 77,104,218, 21,132,160,103,174,174, 91,206,244, +166, 73,134,247, 30,243, 52, 64,235, 10, 82, 8, 60,125,254, 18,235,117,139,235,171, 77,186, 68, 83, 19, 2,118,146, 64,164,125, +185,228,194, 10, 34, 36, 5,118,132,114,249,144, 5, 94, 30, 62, 57, 72,210, 8, 94, 41,142,134,141,147, 41, 15,120, 26, 43,255, +225,191,243,251,248, 87,255,250,231,144, 82,226,120,120,224, 61, 46,237,192,203, 40,193, 8, 50,241, 12,164,153, 1, 72, 71, 62, +126,231, 60,103, 82, 24, 24,235, 96,148, 64,163, 21, 12,211, 53, 99, 70, 59, 65,110,144,196,159,180,154, 89,102, 32, 43, 69,238, + 4, 33, 21,139,182,232,210,113,206, 32, 56,114, 29, 40,185,124, 74, 35,153, 48,117,211, 28,163, 26, 47,103,201,162,190,152,254, + 29,255,158, 50,207,169,160, 13, 62,147,239,202, 98, 95,150, 65, 81, 33, 34,142, 11, 55, 12, 36,133,183,240,231,161,171, 26, 74, +105,126,222,185,160,143,207,155, 64,161, 97, 98,177,157,164,169,145,103,145, 54,180,132, 12, 26,179, 48,104, 44,219, 44, 21,176, +235,106,156, 89,207, 34,156,133, 21, 18,167,254,204, 28,123,153,112,193,129,221, 49,139, 93,120,153,105, 17, 50, 90, 88, 36,140, + 52,175, 95,211, 62,212, 47,156,100, 57,122,181,152,227,137,229,164, 37,198,159, 11, 4,134,207,188,177,179,148,121,217, 47, 22, +250,252,220,173, 95,116,125, 11,245,110,162,197, 73, 62,204,233, 8,179, 94, 96, 26, 45,132,159,209,214,154, 14, 18, 33,208,143, + 19, 86,155, 14, 24, 5,250,211, 9, 15,135, 19,182,235, 22, 64,192,245,102,141, 97,162,142,119, 50, 6, 99,204, 30,118, 22, 79, + 30, 85,120,245, 48,160,110, 28,106,173, 97,167, 1, 85, 93,193,121,143, 90, 81,183, 60, 79,103,116,155, 45,165, 33,185, 25,127, +246,167,255, 0,109,219, 82,254,179,162,234,145, 34, 79, 91,218,163, 58, 11,111,105,175, 26,189,188,214, 24, 4,231,240,209, 7, +239, 99, 28, 6,140,243,140,227,233,132,127,243,219,207,241,151,191,250, 13,218,186,194,200, 76,120,239, 3,148,180, 41,254,241, +100, 61,110,216,182, 65, 93, 23, 56,101,200, 16, 84, 98,158,113,123,127,196,205,213,186, 96,169, 23, 23,153, 40, 59,106,177,184, +224,196,197,218,185, 20,143,229,236,117,252,237,225, 37, 89,186,251, 6, 72, 70,148,177, 61, 33, 7,165,100, 28, 33,237,255, 66, + 40,180, 23,133, 87, 44, 1, 85, 72, 22,146,217, 51, 16,139, 2, 33,239,217, 3, 39, 78, 33,217,236,202, 80,160,120,233, 77,179, +197,225, 52, 97,156,136, 62, 86, 85, 26, 34,144,195, 33, 56, 11, 97,251,228,125, 31, 38, 11, 1, 15, 59,143,148,124,101, 45,102, + 51,227,112, 56, 36,111, 45,188, 79,217,219, 62, 74,154,131, 39,145, 16, 31,210,129,133, 68, 49,204, 66, 74,133,110,189,165, 81, +177,157,179,184,144, 15,171,237,102,139,233,118, 76,252,134,113, 28,208,180, 43, 76,211, 88,192,101, 10,167, 64, 40, 55, 40,133, +229,141, 33, 36, 34,159,144, 24,103,131,105,142, 81,157, 9, 23, 69,221,146,146, 41,123, 62, 93,236, 74,241,222,154,146,218, 28, + 4,130,117, 8,186, 2,132,166, 17,190, 53, 4, 74,169, 27, 40,231, 81,117, 43, 84,211,132,167, 95,126,133,171,171, 29,154,134, + 52, 46, 66,106, 4, 85,241, 72,214,192, 49,247,123,158,103,244,167, 19,198,105,198,106,181, 70, 0,112,232,207,144,106,100, 63, + 58,231,139,123,130,215, 32,120, 64, 42,222,169,139,148,207, 29,189,232,206,121,216, 64, 58,128,121,166,233,202,121,152,208,159, +122, 28,206, 3,142,231, 1,147,229,139, 9, 2, 74,105, 70,208, 42,238,156, 9, 97,170,171, 26,206,186,116,241,106,161,248, 96, +165,105,203,151,207, 94,224,106,187, 65,214,117,134,204, 85,242,121, 12, 42,101,198, 92,135,197,133,206, 23, 60,219, 14,125, 73, + 68, 12, 76, 74, 99,208, 78, 81,205,101,178,166, 32, 85,247, 79,127,250, 19,252,226,151,191,194,211,175,128,227,254,158,167, 48, +158,115,185,179,184, 54, 78, 58,232,114,182,132, 4, 6,136, 51, 96, 28,140,117, 8,214,161,210,138, 44, 90, 2,176,134, 38, 25, +214,186,148, 32,231,125,160, 2,213,131, 61,225,129, 19,210, 36,103, 32, 81, 70,183,227,177,187,181, 6,222,218,180, 70, 80, 74, + 34, 39,148,208,101,163,162,134, 70, 0, 80, 98, 65,117,244, 33,115, 55, 74,116,180,224, 63,203,133, 0, 29, 4,179, 62,138,240, +169, 8, 11, 10,217, 81, 21, 82,212,105,193, 85,231,207, 91,233, 10, 82, 42, 88,107, 96, 45, 33,121, 11,105,110, 42,218, 2,135, +218,144, 50, 94, 3,160,132,185,224, 5, 36,116, 98,181, 76,179,161, 17,124, 8,232,154, 10,187,182,198,125, 63, 82,190,137, 48, +112, 86,226,111,190,120,138, 15,222,123, 59, 19,242,130, 91,224,213, 17,150, 33, 27,241, 50,143, 98,190, 32, 46,230,170, 9,202, +229, 83, 3,157,146,217,252, 34,116, 58, 23,146, 33,134, 71,208,119, 76,127,107,234,101, 9,146,137,158, 78,145, 65, 34, 11, 63, +112, 17,163,158, 41,115, 5,163,155,223,200,217,122, 88, 99, 33,188, 69,215,104, 34, 30, 89,139,217, 88, 32, 56,104,181, 70,215, + 54,232, 86, 29, 32, 4,142,253,128, 90, 2, 47,111,111,209,181, 45, 36, 2,214, 93, 7,169,107, 76, 67,143,217, 24,188,120,249, + 26,117,183, 70, 63,156,161,132, 64,219,173,104,183, 84,213, 48,194, 98,154, 71, 82,191, 31, 14,144, 90,225,238, 97,192,147, 39, +111, 99,183,189,161,241, 95, 32,198,183,144,146,208,149,206, 33,132,138,118, 89,188,211,240,206,209, 30, 48, 16, 78,209,172, 87, +152,167, 25, 55, 87, 87,120,114,115,131, 31,126,255,123,248,167,255,252, 95,224, 87, 95, 61, 79,160, 20,120, 1,131, 60, 5, 80, +188,219, 34,131, 38,237, 7, 17, 2,197, 24, 78, 35, 94,221, 62,224,241,205,150, 49,177,229,222,117,249, 70,139,111,179,212,138, +156, 76, 36,226, 5, 20,138,205,123,250, 13, 62, 37,182,133, 98,164, 29,125,165,192, 5,180, 46,218, 16, 99,215, 81, 2, 35,130, +128, 16, 30,222, 75, 8,153,133, 80,254, 50, 45, 13,146, 73, 78,254, 50,243,245, 13,106, 90, 26, 31,165,128, 22,122,237,214, 58, +236,143, 35, 78,253, 72,107,143,118, 69,232,208, 70, 16, 64,200, 77, 8,158, 20,179,129, 9, 77,150,211,164,198,113, 32,171,142, +146,152,231, 30,198, 90,156,207, 3,166,105,128, 53, 6,194,145,125, 45, 64, 66, 10, 10, 56,145,224,221, 23, 88,196,226,243,107, +139,175,115,179,187,198,122,179,131,157,198,197,195, 21,138,103,165,109, 59,156,135, 62,119,218,222,101,152, 73,177, 10, 17, 11, + 64,214,146, 64, 19, 71,239, 82, 72, 56,111, 9,233,233, 2,134,113, 36,223,182,181, 8, 85,149, 14, 71, 18, 41,210,119, 89,198, + 76,119, 22,105,122,235, 16,132, 3,132,133,148, 21, 52, 12,117,250, 90, 3,186,134,240, 22,194,121,218, 69, 54, 13,234,213, 26, +167,251, 91, 60,127,246, 53, 86,155, 45,170,245, 22, 74, 86, 8,144,240, 66,193, 11,199,197,169,197, 52,142, 56, 30,123,248, 0, +168,186, 38, 84,236, 52, 67,106,133,102,172, 83,151, 91,235, 10, 96,212,166,151, 68,182,147,162, 24,115, 35,234, 17, 28,140,115, + 28,211, 57,226,212,247,212,157,159, 7, 28,251, 9, 99, 76,140,243, 1,117, 93,163, 91,109,104, 69,200, 60,116, 33, 5,140,157, +211,229,155,156, 29,130, 70,170, 74, 74, 24, 51, 99,191, 63,194, 88, 78,145, 19, 50,225, 74, 3, 11, 59,211,223, 3,185,187, 18, +153,226, 21,173,134, 66, 82,119,234, 93,198,211, 38, 0, 84, 72, 25,135,144,108,159,138,203,200, 8, 36,144, 82,226,199, 63,250, + 1,234,170,194, 95,255,114, 68,127, 52,140, 85, 45,151, 97, 52,237,176,206, 35,192, 38,165,117, 76,141,156, 45, 53, 59,150,215, + 47, 94, 73, 84, 58,119,144, 54, 18,224, 68, 94, 57,198, 11,222, 58,151,108,120,113,175,236, 5, 9,210, 34, 45, 46,166,164, 65, +210,133,175, 8, 98,146, 5,176,233,168,145,201, 1, 20,223,211, 37,112, 38, 36,161, 26, 56,146, 58, 56, 7, 40, 9,199,226,225, +176, 28, 30,164,208,170,136, 78,205,252, 11, 82,239, 72,169,248, 66,151,169, 89, 10,137,127, 34, 22, 74,164,192,126,114, 33, 21, +105, 93, 64,168,216, 56, 13, 81, 69,186,223, 48, 17,253, 83,243,180,235,122,213, 96,127,158,184, 91,247,176,194,192,204, 26,102, + 54,144,204,249, 15,222, 23, 13, 48,159,133, 60, 13, 72,118,180,144,167,162,178, 56,195, 75,226,165, 44,114, 33,210,164,174,136, +221, 46,183,152, 82,200, 44,183, 21,128,250,251,127,242, 31,252,185, 64, 78,226, 42,243, 90, 99, 16, 75,206, 92, 71,130,199, 44, +236, 31, 2, 5,207,236, 82,242,195, 7,209, 48, 2,206,162,213,146,246,112,198,114, 8,193,140,171,171, 43, 8,120, 28,143, 7, +204,214, 97,127,127, 7,103, 13,102,107,240,104,183,161, 47,156,119,120, 56,244,168,181, 66,211,212,240,206, 97,154,231,228, 79, + 21, 2, 56,115,146,144,170,169, 66,119, 60, 6,157,166, 17, 85,221,226,167, 63,254, 12, 79,158, 60,130, 51, 19, 42, 85, 97,181, +222,177,168,198,167, 4, 31,153, 56,196, 34,141, 45, 35, 76, 65,241,136, 83, 87, 68,173,147, 0,180,214,120,180,219, 33,152, 9, +207,111,239,201,110, 19, 69, 75,252,158,109, 54,107, 28,251,115, 97, 77, 3,103, 8,215, 9, 4,210,143, 22,215,187, 85, 18,200, + 37,213,122, 92,115,132, 12, 33, 89,100, 70, 23,108, 56, 47, 46, 56, 3, 73,200, 24, 10,238,184, 72, 99,156, 80, 8,240,194,226, +239, 4,222,192,187, 33, 7,242,200, 69, 40,140, 44, 34, 75,151,124,249,165,189,236,130, 24, 23, 68,234, 86,210, 61,198, 26,135, +195,105,196,171,135, 1,183,247, 39,244,253, 68,201,100, 82, 66, 33,192,142,103, 56,107, 32,188, 69,112, 6,214,140,233,161, 68, + 32, 69,180, 49, 51,172,153, 81, 73,240, 24,211, 97,156, 12,198,113,164, 61, 44, 23,146, 8,142, 11,142,216,133,147, 72, 46,122, +120, 69, 84,167,179, 72, 72, 50,218,119,181,217, 65, 73, 73,209,172, 92,248, 17,108,131,148,220, 73, 97,207,227,229, 88, 52, 41, +142, 57, 93,236,203,211,131,202, 66,191, 66,141, 45, 5, 65, 84,164,228,139,144,215, 2, 74, 73,108, 86, 29,186,186, 70, 93,211, +254, 80,113,151, 42,121,199, 43, 10,246,190,153, 38, 24,239,136,124, 23,242,250, 68, 50,254, 85,213, 13,100,213, 16, 60,132, 85, +243,129,211,230,134,254, 68, 36,184,166, 5,148,130,144, 21,102, 86,186, 79,195,128,211,241,128,151,223, 60,199,151, 95, 62, 77, +187,196,135,253, 1,195, 76,192,155, 8, 6,137,107, 12,159,144,168,180,115, 44, 99, 52,173,243, 48,198,194, 88,131,201, 88,140, +227,132,243,249,140, 19,143,219,143,195,136,209, 90,248, 0,180,221, 10,109,219, 49, 33, 76, 50, 38,213,103, 93,138,160,252,244, +248,223, 74,107, 52,140,169, 61, 28,143,152,102, 2,228,188,251,206,219,156,158, 88, 70,223,138,164, 3,145,201,147,238,211,212, + 40,141,149, 89,196, 24, 16,146,248, 75, 42,181, 40, 0, 66,129, 27,139, 49,167, 17, 86,146,113,166,244,108, 94, 95,239,240,240, +112,196, 56, 14,176,142, 18, 41, 61, 22,190, 83, 22,227,121,120,231, 97,189,195, 56, 77,152,102,131,217, 80,216, 79,236, 24, 69, +161,129,178,188,126,136,147, 68, 95,236,209,125, 18,149,146,159, 91, 74, 74,220, 35,242, 32,185, 26,146,176, 45,189, 7,249, 88, +200,163,119,110, 98, 80, 76,150,178,249, 42,163,170, 56,153,179,204, 74, 47,189,255,226,146,119,145, 70,231, 5,185,175, 8, 9, + 83, 82, 17,183,157,177,175,142, 11,245, 40,222,147, 23,248,108,178,218,105,104, 69, 69, 64,116,136,160,136, 15, 47,117, 13,154, + 25,244, 74, 73,172,218, 6,227,108, 49,218, 60,238,151, 82, 98, 54, 14,171, 70,167,179, 35,151,237,158,149,100, 34,179, 91, 66, + 40,240,110, 49, 85,238, 98, 55, 94,216, 92, 47, 83, 43,211, 87,167, 48,153,199, 30, 60,158, 39,186, 60, 96,114, 37,181,196, 99, +132, 34,120,133,118,168, 28, 65, 83, 18, 20, 67,161,164, 20,249, 69, 82,245,163, 32,189, 37,118,187,240, 56, 77,212,101, 76,204, + 38,150,138, 94, 76,219, 52,120, 56,156,240,199,127,252,199,248,127,254,217,255,141,113,180, 24,102,218, 79, 59,239, 81, 85, 21, +102,235, 16,230, 25,231,113,162,241,145,165, 29,134, 99,166,178,215,192,232,122,212,186, 34,229, 39, 2,174,118, 59, 60, 28,246, +120,239,221,191,139,105, 28,161,133,128,115, 22,227,216,163,237, 86, 88,111,174, 16,130, 43,198,198, 30, 81, 17,147,188,207, 92, +133, 7,103, 89,152,196,111,176, 82,104,234, 10,191,243,221,119, 48,143, 35,190,184, 63,226,238,216, 67,241,110,197, 7,137,227, +233, 68, 7, 50,143,168,100,200,194, 19, 41, 37,230,105,196, 97,239,209, 63,218, 97,221,213,184, 8, 27, 47, 93,224,111,180,187, + 73,193, 30,150, 10,138, 56, 81,241,229, 14,157, 15, 18,207,151,254,114,119, 45, 46, 24,116, 69,167, 46,222, 12, 46,200,104, 86, +191,248,210,189, 49,118, 66, 46, 48, 68,153,227,206, 59, 75, 9,160, 31, 45, 78,103,155, 94, 87,240,150, 20,215,108, 27, 12,188, +207,115, 60, 18, 15,110,198,232, 61,218,138,108, 73, 21, 2,230,121,128,224,145,173,103,187, 14,237,124,249, 33,243,150, 58,220, +105,194,108,102,212, 74, 20,184, 73,166, 49, 33,164, 84, 43,197, 83,143,244, 48,113,197, 45, 21, 61,132,214,146, 63, 91, 43,201, + 15, 56, 93,170,193, 57,238,252, 5,195, 95,108, 94, 89,149, 4, 64, 33, 22, 94,104, 33, 69,105, 60,161,183, 72,138,116, 73,163, + 56,200,198,137, 16,163,198, 90, 56,239, 82,210, 97,144,153,162, 23, 73,100,198, 57,204,150, 80,174, 1, 52,162,175,234, 26, 74, +173, 16,116, 3, 72,149, 19,216, 20,241,201,181,153, 9,118, 82,215, 24, 78, 35,190,248,226, 11, 56, 8,220, 12, 19,218,237, 21, +160, 42,114,112, 28, 15,120,253,242, 5,158,126,245, 12,183,247,123,200,186,130, 59,246,232,135, 17, 77,215, 98,182, 22,167, 97, +132,245, 30,205,108, 48,114,231, 83,197,120, 99, 41,146,208, 44,118,137,214,154, 52,118, 31,198, 17, 39, 30,183, 31,135, 9,227, +108,225, 5,160,235, 6,186,170,147, 8,151,196,119, 25, 15, 92,158,105, 85, 85, 67, 72, 26,175, 30, 14, 15, 64, 8,168,234, 6, +235,205, 46,165,140,149,151, 69, 2,156, 0, 80, 42,219,168,226,247,216, 95,140,223,227,136, 62,218,221, 2,119,107, 17, 14, 3, +142, 71, 22,151,187,249, 82,242,202,196, 66, 33, 4,222,249,238, 59, 56, 29, 15,240,206,192, 26,208, 58,144, 61,238,190, 32, 55, + 83,179, 68,144,157,201, 24,190,208, 9,121, 26, 56,193, 79, 8,197,150, 51,201, 88, 83,177, 80,155, 43, 30, 65,107, 65, 9,101, + 82, 72,138, 58, 69,192,108, 45, 16,253,223,252,220, 9, 22,190, 57,246,231, 71, 75,156,226,171, 51,138,215,162, 62, 38, 33,139, +147,131, 4,105, 66,128, 66,132, 27, 79, 23,153,130,116,100, 58,235, 50, 31,163, 20,212, 34, 95,232,186,162, 52, 57, 59,243,107, +247, 41, 57, 45,175, 43,153, 79,193,171, 26,165, 43,250, 89, 25, 80,196,213, 9, 69,228, 58, 15,105, 35,125, 79, 96, 28,103,180, +117,205, 14,153,128,155, 77,139,195,121, 78,235, 24,107, 13,230, 89,165,181, 87,250,238, 21, 34, 63,222,157, 20, 16, 86,145,245, + 68,101, 38, 69,160,245,236,162,211, 89,206,192, 19,193,114, 41,156,202,246, 87, 4,124,203,165, 94,164,113,165,110,189,216, 76, + 8, 22,128,200, 11, 74, 89, 98,110,251,184, 51, 16, 28, 47, 26, 48,156,238,161,149,132,150, 36,126,163,204,234, 9, 82, 73,212, +117,155,178,134,199,105,198,213,110,139,215,175,111,209,214, 36,120,154,166, 9, 93, 83,195, 6, 82,149,107,173,112, 30, 38,184, + 48,144,247, 83, 73,138,123,180, 22,155,182, 73,233, 64,136, 64, 14, 99,112, 30,206,240,214,225,124, 58,161,214, 26,222, 26,116, +109, 7,107, 29,102,231, 48,142, 35, 89,124,234, 26,149, 82,104, 87, 27,136,224, 49,143,103,216,105,226, 73, 1,167, 33, 89, 75, + 95, 26, 22, 8, 57, 75,144, 9,165, 43,192,123,188,115,181,193,167, 31,127,136,191,250,245,231, 56,158, 7, 72, 8, 28, 79, 39, + 56, 31, 32,165,231,202,158,193, 11,206,194, 57, 10, 68,240, 83,192, 23, 95, 61,199,143, 63,251,240, 34,100, 85, 20, 89,234, 75, +245,180,143, 20,172,226,179, 14, 11, 16,204,101, 46,187,200,169,100,223, 26,236, 26,107,203, 98,132, 94,248, 48,211, 67,139,191, +157,175,153,247,241,178, 16,135,197,111, 47,253,201,214, 1,253,224,177,231,228, 58,165,168,235,173,170,138, 41, 85,220, 57, 59, +139,217, 59,212, 82,160,214, 2, 62, 56,204,198,208,143,106, 70,140, 86, 98,189,234,210, 14,173,107,106, 56, 79, 2, 44,231, 44, + 93, 44,231, 1, 74, 73,156,250,158,232,131,118, 70, 37, 5,249,129, 61,229, 91, 59,235, 96, 66,238,162,232,249,230,253,180,148, + 80,220, 73, 72, 93,195, 9, 38,202,121,151, 47,124,238,208,165,100,175,173,181,144, 74,163,214, 53,108,109, 49,205,115,122,112, + 21,251,128,133, 88,114, 7,162,205, 77,198,195, 72, 4,134,146,228, 93,101,252,103,198, 57,244,195,132,217, 24, 58,240, 67,145, + 19, 16, 28,130,210,180, 3,229,192,163,104,131,115,206, 83,158,121, 32,229,126,109,102, 56,173,224, 0, 26,191,243, 84, 64,234, + 6,170,110,128,218,192, 87, 13,190,124,254, 2,251, 83,143,183,223,189,199,230,234, 26, 74, 85, 52,190,190,191,199,211,175,190, +194, 23, 95, 61,167, 28,131, 97,130, 0, 80, 55, 53,137,216, 2,224,252,132,113,158,105,231, 42, 21,130, 84,201,102,183,105,106, +220,172, 27,172,219,134, 99,137,163,238, 33,238,209, 71,156,206, 35, 78,227,132,201, 58,184, 16,160,116,133,182,237, 10, 81, 39, +119,138,188,166, 16,146,214, 93, 49, 62,179, 63, 29,168, 64, 98,126,122,221,116,168,185,195,167,208,153,166, 32,195,229, 11, 90, + 74,153,166, 10,177,224,202,103,157, 76,235, 38,193, 83,134, 40, 16,206, 76,134, 34,178, 58, 42,244,227,216, 62,145,197,179, 85, + 52, 78, 3,222,255,157,119,112,255,176,135, 49, 51,134,211, 1, 22,128,115,185, 91,134, 15,133, 18,158,186,111, 99,168,112, 84, +130,118,178, 49, 52,201,123, 1, 40, 13,173,114, 5,111,249, 53,198, 29,125,165, 43, 80,235, 35, 83,164,168, 51,236,240,136, 29, +111,156, 50, 48, 79,192,249, 28,102, 67,211,221,104, 99,203, 90,157,200,161,136,153, 36,209, 91, 83,202,182,147, 6, 72,128, 25, + 15,220, 73,243,225,229, 66, 72,204, 6,138,156,144, 92,120,171,244,121,134, 64,202,255,132,170, 45,176,208, 41,139, 92,114,215, + 94, 92,232,164, 73,177,169, 96,137,206, 29,231, 60,172,200,107,148, 97, 54,104,103,186,216,173,117, 88,183, 13,154, 74, 99,118, + 81,208,232, 97,140,132,177, 30, 77, 93, 21, 24,107,145,168,154,113, 71, 45,196, 50, 2, 59, 44, 24,223,165,235, 44,135, 61, 69, + 45, 19,164,132,140,147,155, 76, 26, 33, 93, 10, 51, 12,226, 12, 64,151,234,232,178, 91, 7,219,219,124, 33,146, 18,241,127, 47, +198, 84,178,240,200,133, 11,226,205, 60, 91,244,199, 19, 42, 37,208,213, 84, 12, 40,165, 17, 88, 25,222,182, 53,116,173, 19,151, +122,189,162,188,229, 97, 80,248,193, 39, 31,227,229,139,231,120,216,239, 49,112,178,217,112,238,177,221,108,160,130,197,205,102, +133, 97, 28, 97,157,165, 93,150, 38,155,206, 48,205,168,180,134,225,131,115,182, 30, 16, 51,186,174,197,126,191, 71,240, 30,211, +106,133,177, 27, 41, 94,117,154, 82,126,122, 85,105,104, 77, 93, 72,219,174,208, 53, 91,204,144, 60,198, 15,152,199,137,243,145, + 41, 88, 34,170, 77,189,247,112, 28, 11, 59,246,103,232,166,193, 79,126,240, 49,180,174,240, 23,255,230,215,120, 56,244, 52, 10, +132,162,253,102, 8,148, 61, 45, 36,164,210,176,134,190,217,131, 16,248,205, 23, 47,241,253, 15,190,131, 66,228, 94,120,103, 73, + 56,140,203,152,200,128,101,194, 91, 88,170,168,151,224, 19,153,196, 45,197, 86, 55,239,103, 80, 98, 22, 69,234, 68,132, 92, 86, +143,111,162, 94,240, 45, 96, 21,130,129, 88, 7, 28,123,131,113,206,132,168,121,162, 29,249, 52,156,120, 52,235, 49, 13, 39,104, +165, 96,205, 76,133, 99,112,208, 44,250,241, 94, 99,178, 14,179,153,209,112,252,231,170, 33,240,198,163,235, 45,228, 64,128,137, +196, 11,224,136,206,113,154,160,217,247,108,230, 17,149,146,140,252, 45,190,239, 82, 64, 5,137, 32,217, 19,204, 15, 22, 93, 14, +116, 24, 41,169, 97,188,131,212,100, 91,179,102, 78,161, 30,222,199, 44,247, 44, 88,145,140,132,109,154,150,198,253, 96,155, 89, + 16, 11,145,224,165,243, 32,235,106,100, 26,239,225, 98,191, 38,165,196,121, 28,169, 91,143, 30,226,228,249, 97, 63, 56, 3, 79, + 28, 35,108,199,105,198, 48,144,198,160,174, 42, 12,231, 51,206,167, 35, 54, 93,135,213,106,133,182,107, 81,183, 43,136,170,134, +106, 26,172,171,183,224,160,209, 15, 35,102,161,240,171, 47,158,225,171,231, 47,209,118, 29, 32, 5,230,201,224,112, 60,225, 56, + 76,132, 20,214, 10, 85, 18,116,145,174, 4,186,134,149, 21,117, 80,222, 82,193, 81,124, 39, 79,195,128,111,238,129,109,219,224, +201,213, 6, 77, 69, 5,174,153,103, 12,227,132,126,156,112,158, 12,102,254, 25,235,182, 67,221,182,169,217,144,197, 28, 56,120, + 15, 23, 92,218,225, 74,102,134, 87, 21, 37,114, 73,165,104,228,170,232,210,127,252,232, 6,191,247,147, 31, 20,133, 42, 39,172, + 49,114, 55,118,180,146,149,217,203,236, 4,207,131, 60, 22, 41, 65, 16,164,133, 83,202, 34,192, 36,126,182, 62, 68, 94, 60,169, +224, 61, 95, 94, 73, 67, 83,118,162, 33,224,223,250,209,247,113, 58, 30, 17, 66,192,249, 68,129, 66, 54,102,157,167,213,133,231, + 44,116,250,140,227,125, 32, 35,193, 18,180,254,169, 52,171,194, 37, 31, 30, 2, 68,107, 3,125,103,181,214,240,160,231, 3, 66, + 32, 88, 75, 78,160,100,227, 19,233,122, 73, 86, 54, 6,182,200,144,215, 19, 50,173,123,202,201,134, 88,232,175, 36, 51,220,165, +144,233,130, 79,171, 93,126, 61, 10, 62,197,118, 7,231,115,226, 98,188,236,164,132,210,138, 61,232,244,204,123,110, 2,242,249, +148,213,246, 81,159,147, 84,253,160, 16, 26,235, 44,202, 96,221,184,187,247,209, 39,239, 92,138,130,157, 38, 3,219, 57,122, 63, +107,137,109, 87,225,245,225,156, 8,149,214, 90, 28, 78, 3,222,122, 84, 21, 32, 35,207, 23,110, 72,124, 2,148, 54, 60,153, 4, + 23,185,115,191, 80,179,199, 6,144,252,232,161,160,252, 21,186, 35,228,130, 50, 54,227,234, 79,254,244,207,254,156,118, 34,114, +177,215,136,123, 93, 25, 82, 76, 87, 6,162, 68, 36, 42, 99, 42,197, 34, 13, 43,127,160,118,114,176,102, 70, 83, 43, 82, 98, 90, + 7,107, 38,156, 78, 61,186,174, 69,211, 52,164, 82, 30, 6,130, 67,204,180,171,123,252,232, 17,246,247,247,216,238,182,216,109, + 58, 56, 75,164,171, 90, 19,116, 97,211,181,216,178,157,172, 82, 10, 74, 9, 56,235,152,210, 6, 76,206,161,214, 21,169, 64,131, + 39, 15,174, 39,165,179, 49,148, 62,101,102, 26,243, 89, 78,222,178,142,132, 63,209,135, 60, 79, 3,134,254, 64, 29,181,181,232, +218, 45, 14,251, 59,204,150, 70, 93,253,233, 72,225, 18,214,225,212,247,184,127,120,192,253,221, 61,134,113, 66,144,196,200,110, +154, 26, 31,188,247, 93,124,246,189, 15, 48,142, 35, 14,231, 33,117,104, 66, 18, 66, 52,118,195,113,204,229,188,199,102,187, 65, + 93,233, 69,167, 28,177, 6,209,134, 17,237,129,201,146,246,230, 74,155, 6,177,145,107,141,188, 74,200,114,136,203,161,123,217, +129,231,125, 77,178,127,240, 40, 15,178,220,189,139, 69, 48, 69,156, 32, 12,147,199,253,254,140, 87,183, 7,188,186,219,195, 11, +133,190, 63,177, 26,188, 39,145,224, 56,192, 89, 3, 51,159,161, 56, 22,215, 26,210, 94,104, 9,104, 25,224,152,155,174,149,128, +115,134,236, 26, 8,232,106, 13, 19,128,201, 82, 50,151,243, 30,198, 56,172,154, 10,195, 56, 66,202,128,102,213,225,116, 56, 64, + 74,137,211,254,128,121,158,201, 61,225, 44,218, 74,167, 93, 95, 74,199, 2, 0,161, 8,197, 89,236,179,148, 84,168,170, 6, 66, +210, 1, 72, 94, 97, 3,137,156,203,172,152,103, 78,128,146,232,209,245, 88,177,136,107,158,103, 38, 50,138,197, 24, 46, 71,222, +137,148, 2, 22,127,191, 82, 44,230, 73,158, 87,207,255, 14,122, 94,187,166,198,170,107,211, 94, 93, 10,153,153,209, 25,114,128, + 16, 2, 94,221,222,225,249,179,231,100, 73, 19, 18,175,111,111,241,242,171,175, 48,158,142,152,207, 61,236,112,134, 55,172, 77, +144, 26,147,153,113, 30,135, 68,137, 51,206,225,208,159,113,127, 60, 97,127,236,209, 79, 51, 76, 16, 52,190,103, 45,128,172, 59, +168,118, 3,168,138, 1, 53, 52,141,138,201, 95,145, 30, 39,165,226,117, 5, 5,222, 56, 72,156,102,139,251,126, 64,127, 30,112, + 26,232, 66, 31, 38, 3,227, 61,164,210,104,186, 21,237,205, 11,172,166,139, 4, 64,111,211,206, 27, 34, 91,205,242, 56, 94,162, +105, 90,116,235, 45,126,242,227, 31,225,247,127,247,135,120,235,201,205, 27,101,105,220,201,167, 75,182,152, 98, 74, 89,172,189, +226, 5,224, 67,225,173, 14, 75,189, 4, 3,108, 34,160, 70,138,172,101, 41,195,148, 11,253, 24, 19,245,168, 59,219,237,182,184, +187,219,243,136,151, 58,117,103, 29, 92,240,176,124, 78,184, 66,152, 37,132,128,226, 17,187,146,185, 72,128, 0, 52,159,155,165, +135, 28,124,209, 73,214, 29, 36,246,128, 53,169, 48, 42,114, 28,211,229, 27,149,225,222,231,109, 95,130,163, 68,145,157,207, 54, + 87, 95,228, 61,196,159, 89,177,103,127,153, 54, 89, 88,206, 74,119,149, 40,216, 13, 60,110, 87,170, 74,239, 75, 68,241,198,203, +188, 8,111,100,130, 36,143,220, 85,197,137,107,140,129, 46,210, 30, 47,215, 0, 73,167, 20,137,141, 82,162,109, 27, 52,117,157, + 86, 24, 15,253,152, 68,112, 84,172, 8, 92,239, 86, 75,139, 89,249,105,151, 63,155,100, 64, 13, 79, 46,211, 81, 16, 53,108, 69, + 66, 96,116,201,100,141,196, 50, 72,230, 82, 5, 37,132,128,150, 82, 94,176, 99,227,155, 25,138,125,170, 79,149, 82,224,213,191, +243, 30,144,161,200,189, 46,163,192, 3,230,201,162,239, 79,208, 34, 16, 12,129, 71, 68,195,100,160, 42,141,186,105,240,226,235, + 47,177,123,235,187,168,155, 6,227, 56, 96,187, 94, 99, 54,116,217,234,186,193,139,103, 95,192,135,128,171,221,150,172, 5,124, +169,244,211,132,186,170,209, 74,137, 90, 81,240, 74, 93,213,184, 59, 28, 49, 27,131, 70, 75, 24,142,100,149, 66, 98,127,238,209, +194,227,139,241, 25,214,171, 22,219,245, 26,187,237, 6,187,237, 22,219,221, 22,235,245, 26,235,142, 50,212,219,174, 67, 83,215, +168,181,166, 29,254, 60, 3,222,163,239, 79, 24,199,145, 70,230, 16, 56,245, 61,134,121,134,113, 1,167,227,145,254, 57,143, 57, + 49,142,152,134, 17,117, 69,228, 46, 89,215,248,233, 79,126,132, 79, 15, 71,252, 95, 63,251, 11, 8,102, 34,211, 56, 63, 79, 62, + 66, 32,218,220,151, 79, 95,224, 39, 63,252,104, 65, 77, 18,165,152,141, 23,230, 33, 62, 89, 34,147,106,100, 12,151, 64, 86,127, + 74,137,148,185,187, 80,185, 92,236,112, 23, 95,236, 11, 31,123, 73, 63, 75,194,187,100,169, 0, 78,131,197, 48, 57,198, 85,106, +156,251, 19, 29, 98,206, 65, 43,141,161, 39,122, 86,176, 4, 45, 17, 28, 3, 25,225, 41,176,164, 98,111,180,130,181, 51, 52,191, +206, 85,219,194, 91, 7,203, 86, 29, 4,178, 1,173, 87, 29,206,195,136,174,238, 18,201,171,174, 42,120,118, 94, 12,147,193, 52, +223, 99, 50, 22,128,192, 48,207, 16,193,163,130,135,170,170, 66,145, 27,125,163,252, 30,169, 40,113,241,172,110,102,213,116, 85, + 67, 4, 73,211, 26,222,115, 74, 14, 58, 81, 41,160,196,243,106, 74,100, 6,191, 16, 88,175,183,152, 38, 66,107,198,241, 34,233, +208,194, 27,154,196,144,166, 95,113,244,158,101, 62,178, 56, 1,214,235, 14, 62,144,237,198, 90,203, 22, 38,177,136,236, 85, 82, + 64,233, 6, 74, 74,236,186, 21,134, 85,135,213,170,195,187,239,127,192,191,214,227,235,175,190,196,223,124,254, 21,174, 86, 13, +118,219, 45,118,215, 55,216,220, 60, 66,181,189, 38,219, 19,168, 64,109,187, 22, 1,164, 8, 54,214,194, 5, 64, 86, 13,148,170, + 25,119,233, 32, 21, 69, 90,210,100, 43,163,110,105,143,236, 51,173,143,189,195, 21, 11,243, 32, 21, 60, 4, 81,248, 56,209, 43, +149,159,145, 99,193, 78, 6,164,195, 54, 35,102,227, 95,139,216, 49,202, 0, 41, 21,154,182, 67,183,222,226,211, 79, 62,198, 7, +239,189,147,252,228,201, 87,206,251,238,232, 71,247,161, 20,102, 81,231, 46,101, 60, 80,139,241, 41, 19,217,188, 15, 11,128,149, +144,226,130,233,127,153, 1,158,173,162,165,213, 41, 62,134,222,211, 57,235,248, 82,253,238,187,239,224,235,231,160,245, 97,152, +224,226,218, 46,198,231, 70,129, 87,212,162,164,187,140,248, 17, 46,193,106, 72,176,168, 20, 95,122, 78,176,142, 73,165,247,204, +145, 9,254, 34,215, 35, 64, 92, 56, 90, 22,235, 61,207, 63,143, 8,128,141,121,243, 33, 9,234,104, 29,149,243, 38, 18,192,135, +185,255, 94, 98,249,250,163,187, 0,130, 2,166, 80,100, 2,128,120, 12, 74, 87,212,120, 57,206, 64, 96,140,239,114, 96, 40,146, +232,151,118,232,154, 69,113,156,192, 88,252, 44,244,251,121, 62,153,162,184,233,189, 51,142,206, 78,195,129, 94,107,103, 33,172, +128,150, 84, 56,185, 34, 69,207, 89, 91,232, 6, 66, 1,195,228, 40,234,162,114, 40, 89, 46,151,126,114,177, 88,178,163,204,180, +206,215,183, 20, 23,144, 50,177,112, 19,169, 63,249,211,255,240,207,203, 92,243,112, 33,173, 15, 69,238,107, 40, 82,218, 66, 81, +211,248,111, 97, 45,238, 15, 61,188,153,208, 84, 18,109, 93, 99,156,102,246,165, 7,108, 55,107,252,252,151,191,192,191,250,197, + 95,227,179, 79, 62,133,117, 22,198, 88,116,109,131,201, 24, 84,186,194,122,213,161, 63,220,163, 82,212,229, 59,231,240,157, 39, +215,105,100,236, 13,217, 22, 72, 29, 44, 17,156,199, 91,111,191,141,205,246, 26,253,233, 8,165, 20,102, 67,106,207,105,158,160, +154, 22,163,113, 48,227,132,227,177,199,195,225,128,211,233,132,161,239, 49,141, 35,241,216,217, 38, 68,234,223,156, 59, 29, 51, +163,199,225, 12,235, 60,134, 97,192,241,120,196,121, 24,112,234,123,188,126,253, 26,119,119,247, 56,157, 78, 9,136, 33,148, 34, +254,187, 34, 65, 80,165, 53,116,165,112,213,214,120,126,247,192, 17,148,117,178, 44, 9,144, 31, 52, 89,158,100,141,237,186,205, + 76,125,228, 14, 46, 94,178, 62,117,151, 34, 91,163, 68, 72,157,121, 73,122, 75, 21,177,200, 16,154, 28, 72, 83, 8,233,138, 86, + 94, 20,246,186,228,123,150, 18, 62, 8, 28,207, 51, 30, 78, 6,199,126,198,237,221, 30,135,227, 9,243, 52, 97, 28,206, 24,135, + 51,135, 50, 88,162,120, 77, 35,164, 32,235,136,153, 39,194, 93,206, 35,164,164,125,159,119, 51,197, 32,122,218,238,181,117, 5, + 17, 2, 92, 16, 8,198,192,121,139,117,219,192, 5,154,202,204,179, 65, 93,213, 24,199, 9,235,174, 3,164, 68,215, 52, 16, 18, +152,167, 25,211, 60,165,100,191,186,110,112, 56,245,152,250, 35, 11,179,104, 87, 39,101, 12,132, 40,196,144, 41, 51,158,172, 63, +138,185,160, 82, 74,104, 85,167,236,113,207,157, 34,225, 60,201, 31,171,100, 20,203,132,229, 45, 45, 4,231, 29, 4,204,102, 78, + 93,100, 42,208,184, 27,128, 40, 59, 4, 14,163,224, 29,119,180,202,196,109,154,148, 18,111, 63,190,161,142, 23, 30,109,211,162, +169, 43,254,140,178,130, 94, 41, 77,184,214,170, 66, 35,128, 48,205,184,187,187, 67,183,219,162,110,168,195,223, 93, 95, 97,243, +232, 17,246,231, 1,199,251, 7,184,105,196, 60,156, 49,205,180,218,154, 83,230,186,199,217, 10,204, 66,195, 75, 69, 29, 58, 31, + 86, 74,201,148,170, 21,175, 3, 34,206,145,214,193,154, 9,158, 15, 84,203,126,103, 17, 99, 99, 67,150,253, 68, 53,124,198,105, + 94,174, 5,113, 17, 31, 43, 82,241, 35, 37,137,189,170,170,198,122,187,195,213,205, 91,248,123,127,244, 7,248,225,103,223,199, +110,179, 65, 97,178, 37, 54,184,200,170,235, 50,228, 36, 79, 26,145, 38, 34,212,161,134, 5,219, 60,250,215, 75,251,154, 44,162, + 11, 83,159,196,191, 46, 8,113, 17,146, 16,138, 62,120, 17,102,128,217, 24,188,122,253,128, 87,183,183,152,102, 3,169, 20,250, +254, 72,103, 17, 79, 98, 34, 18, 53,157,210, 50, 98,114,217,177, 35, 99,188,110,158, 52,168, 84, 20, 41, 72,169, 23, 19,134,232, +175, 46,223,167, 36,224, 92,164,140, 21,192, 43,145,197,208,137, 91, 30,153,234,177, 96, 73,130,185, 34,183, 62, 93,239,133, 42, +157,215,136,101,202, 91,186,252,132, 34,199,145, 38,187,177,115, 38, 57, 82, 82, 6,121, 26, 76,101, 8, 78, 82,185, 43,149, 47, +244, 80,138,119, 25,230, 85,186,183,248,217,145,172, 1,209, 85,149, 16,198,109, 83,147, 16, 81, 80,211, 96,109, 88, 20,150,155, +245,138, 61,252,101,115,196, 98,215,248,108,150,118, 49, 20, 46,160, 18, 37, 18,178,131, 38, 97,137,197, 82, 0,186, 84,199, 47, +229, 77,122,193,159, 15, 89, 20, 81,130, 71,124,196,113, 94,144,145,131,231, 69,189, 15, 9,237, 24,187,188,105, 24,208,104,129, +182,166, 24, 84,165, 20, 42,169,160,116,139,255,229,127,255, 63, 49,155, 25,155,245, 26,175, 94,191,194,122,179, 65, 83, 55, 56, +246, 61,118,219,109,206,183,149, 18,206, 59, 40, 37,113,115,189,131,170,106,172, 58,170,240, 15, 71,207,123, 50,129,113, 2,180, + 86,176,231, 35,180,214,248,236, 7,159,225,254,112,196,253,221, 29,110, 5, 30,173,250, 0, 0, 32, 0, 73, 68, 65, 84,247,123, + 42, 2,198,145,194, 69,248, 13,180,179,197, 56, 31,240,176, 63,162,123,249, 10,187,205, 26,215,215, 87,184,190,190,198,110,183, +195,213,110,135, 77,215, 81,167, 45,233,210,117, 51,141,193,134,105,194,254,176,199,121, 32,139,212,203,151, 47,113, 56,156, 48, + 91,218,253,121,235, 48,141, 35,198,186, 66,165, 43,178, 69, 84, 26, 74, 72,172,214, 43,172,226, 33,136, 0,233, 61,140,159, 24, +128, 67,192,135,113, 28,240,205,139, 23,120,251,201, 21,137, 92, 22,126,115,145,190, 44, 34,249, 67,115, 32,134, 8, 36,214, 74, +141, 78,170,226,243,131, 21, 21,222,203, 54, 49,243,155,115, 94, 57, 61,172,198,121,236,207, 22, 82,181,100, 23, 99, 90,211, 60, + 79,112,214,160,169, 91, 16,110,155,190,124,206, 26, 12,134,224, 46, 82,107,130,166, 12,228, 0,112,102, 38,229,178, 55,232,167, + 51,228,106, 5,231, 3, 84,240, 88,213, 26,149,148,148,138, 20, 2, 42, 17, 96,121,136,105, 45, 77, 69,102, 99,208,116,148,138, +182, 94,173, 1, 1, 84, 85,131,190,239,161,224, 49, 50,197,236, 60,140, 88, 55, 13,132,148,120, 61,244,232,218, 6, 54, 8, 40, + 4, 24, 55, 39,181,181, 72, 41,100, 5,244, 37, 18,175,248,161,162,100, 50, 5,193,162, 52,199,193, 16,177, 59,147, 82, 37, 54, +120, 28,181, 34, 81, 78, 29, 52,128,245,122,131,113, 60, 83, 33, 38, 37, 84, 82,246, 22,153,200,177,235, 96,145,156, 20,114, 81, + 32, 68,161, 80,165, 21,154,166,133,247, 30,227, 52, 98,158,105,165, 68,246, 75, 69, 93,102,252,189,206, 66, 9, 34,221, 93,173, + 59, 28, 15,123,188,126,254, 28,186,170, 32,229, 26,109,211, 65, 74,133, 71,239,188,131,251,170,198,171,151,255, 63, 93,111,246, + 99,201,117,165,251,125,107, 15, 17,113,134, 28,170,138, 67,145, 18, 53,180,122,144,219,246,237, 6,218, 54,112, 1, 3, 54, 12, + 24,126, 50,252,167,250,193, 79,247,197,126,243,128,107,224, 14,125,123,146, 68, 81,108, 82, 36,107,204,204, 51, 69,196, 30,253, +176,214, 30, 78,177, 45, 64, 80,145,170,170,204, 60,231,196,222,107,248,190,223,247, 6,199, 72,240,151,136, 57, 19,124,100,193, + 98,206,169,250,178, 89, 76,103,235,207, 23,188,151, 53,138,171,105, 89,189, 55,185,140,178, 21, 81,205,199,174,118, 40,106, 67, +222,194,199,174, 29, 52,125,232,206,104, 93,185,210,170,174,163,148,140,101,183,251, 61,118,251, 59,252,205, 95,255,231,184,185, +217, 9,107,162, 51, 86, 21, 43, 37,174,187,195,242,126, 50,213, 88,113, 8, 21,116, 85,183,151,157,178, 18, 49, 21,199,141,246, +217,214, 36,221, 62,201,159, 45,214,173,244,163, 3,183,156,172,148,203, 51,219,167,242, 9,103, 33, 68, 28, 14, 7,156,207, 23, +158,128, 16, 91, 96,139, 91,168,208,199, 74,167,166,229,236,229, 96, 31,170, 66, 72, 22, 86,241,247, 25, 99, 89,221, 48,148, 43, + 37, 22,188,113,136, 84,224,175, 97, 56,145, 45,132,200,177,190,233, 74,156, 35, 89,245,101,103, 95,162,102,219, 37,207,224, 45, +117, 21,197,172, 74, 76,172, 36, 11,150, 2, 90,149,117, 94,151,131,192,212,180, 54,245, 80,153, 96,138,192, 82,196,109,172, 66, +151, 59,136,218, 52,132,131,199,218,152,177, 92,232,168, 29,122,172, 69, 80, 15,191,105,141,172,170,194, 58, 8,183, 68,107, 83, +215,178, 23,202, 88,221, 22,214,112, 4,173, 81, 10, 25, 65, 16,175,220,144,156,231, 5,131,221, 95,143,243,169, 41,251,219,120, +191, 57,107,168, 59, 43,174,218,237, 62,202,182, 20, 71, 53, 70, 35,255,136, 37, 86,197,117, 68, 12,159, 33, 78, 44,104,203,246, + 98, 72,207, 84, 89,189,200, 73,108, 2,168, 7, 79,139,164,164,122, 97,146,216, 25,172, 97,209,131, 86, 10,171,119, 80,148, 96, +135, 1,255,235,191,249,223,101,143,157,240,201, 71,207,240,226,163,143, 25, 48,113, 57, 3, 25,216,110, 88, 44, 23,252, 10,163, + 9,219,105,135,148, 57,122,209,104,133, 32, 2, 10, 99, 24,127,184,186,136,156, 34,134,193, 2, 52,240,161, 50, 31,177,179,132, +151,127,241, 23,120,122,122,194,251,199, 7,204,199, 3,150,121,150,248, 71, 9,231, 72, 25,107, 72, 88,194,138,167,203,138,247, + 79, 39, 76,223,254, 17,119,247,119,120,118,127,143,251,187, 59,108, 55, 27,140,227, 40, 59,110,254, 51,167,227,145, 31,186,203, + 5, 15, 15,143,120,122, 58,212, 4,172, 40,209,164,110,117,152, 47,140,165, 52,214,192,104, 22, 4, 58,231,240,108, 63,225,245, +197, 35,122, 15, 61,136, 29,164, 88,159,132, 80,118, 58, 30,240,183,127,255, 91,252,250,207,126,133,105, 50,173,194, 45, 85,101, +110,190,116,174, 82,169, 62,232,137,154,130,146,115,210, 91, 64, 12,169,206, 7,170,168,134,236,148,245,138, 15, 25,139, 75, 88, + 86,143,224, 60, 95,166,222, 49,173, 74,246,110, 0,193, 12, 27, 56,233,136,151,249, 2,163, 53,188, 99, 68,111, 74, 25,222,243, +207,145,214,153,225, 18, 57,241, 5, 31, 29,214,224,160, 8,216, 14, 22, 57, 71,108,164,248,241,222, 35,100,135,144, 56,216,103, + 28, 12, 98, 96,148,165,210, 6, 27,197,184, 96,141,140,152, 3, 38,210, 56, 62,157,241,252,217, 45,226,122,193,227,249,130, 20, + 35,166,205,196,222,228, 97,192,249,124,230,116, 63,137, 95,228,245,128,230,241,244, 48,176,213, 75, 70,110,101, 21,149, 98,100, +171,148,148,175,144, 41, 74,136,145, 45,100,114,144,147, 92, 82, 90,107,132,130,139, 44, 15,172, 28, 92, 41,177,117,113,179,217, + 97,187,217,225,116, 62, 66, 27, 11, 50,109,172, 86, 96, 25,232,186, 71, 18,133, 47, 1, 28,176,145,139, 54, 66,225,254,246,182, +190,135, 46,102,204,203,138,113, 28,185,163,209, 60, 51,206, 41,212,201, 10,139,197,248,215, 27,107,241,234,225, 1,203,199, 31, + 97,183,219,227,237,195, 35,190,127,245, 26,135,211,204,147,149,113,135, 39,159, 0, 63, 87, 93, 70,193,213,150, 67, 52, 70,143, +176, 6,185,196, 99,205,117, 78, 31,248,163,169,235, 38,140, 82,176,198, 32,136,138, 59, 86,139,151,134, 46,215,110, 37,102, 81, +149,241,124,216,241,168, 26, 85, 90, 40, 98, 6,155,205, 14, 55,119,207,240,223,252,205,191,194,205,205,174,162, 93,203, 40, 53, + 95,169, 71,178,192, 62,168,249,196,235,255,223,186,174, 62,215,190,236, 21, 83, 70,181, 19, 41,177,195,181,177,123,187,221,146, + 92,206,117,231, 42,174,146,156,186,113, 54,117, 76,112,180,245, 91, 74, 9,214,104, 28,143, 39, 78,187,203, 17,148, 88, 24,124, + 57,159, 42,170, 22,148,161,229,181,110,184,107,153,174, 81, 11, 51,178,138, 4,205, 74, 0,233, 26,164,147, 41, 65, 81, 2, 83, +242, 25, 38,163, 53, 71,196,106,177,174, 21,209, 91,249,158, 99,138,252,122,232, 12, 31,217, 54,151, 11, 21,183,144,227,114,251, +252,103, 17,210,165,220,166, 18, 33,242,157, 0, 9,175,169,235,189,220,210,222, 42,196, 70,181, 80, 25, 23, 28, 82, 10,117, 60, + 93,113,238,164, 58, 56, 15,143,186,181, 86,124,161,107,133, 36,207, 45, 85, 76,117, 79, 61,165, 22, 97, 44, 46, 7,102,199, 91, +104,109,228,231,229,215,195, 5, 14, 21,219,200, 52,138,117, 36, 93,222, 20, 50,188, 15, 53, 80,169,153,236,203,123,219,166, 10, + 72,226, 41,163,124,141,247,166, 62,150, 92,137,116,170,239,206, 69,128, 74, 29,105, 51,117, 89, 9,130,208, 54,185,132,114,128, +170,176, 1,181, 83, 43,213,173, 84,124, 37,153,168, 41, 36, 4,235, 87,184,200,169,250,188, 83,230, 15,142,214,154,119,209, 57, +227,255,254,119,127, 43, 59, 8,254, 33, 95,126,246, 25,206,231, 51, 0,130, 53,140,119, 93,215, 21,195, 48, 86,124, 95, 20, 66, +152,115, 14,227, 56, 96,178, 10,167,115,100,225, 82, 8,128, 38,100,107,160, 60,143,246, 72, 17,130,143, 0, 41,204,135,247,176, + 68,152, 20, 48,222,220, 64,191,120,129,219,103,207, 57,204,194, 88,156, 47, 39,252,230,239,254, 78, 64, 27, 25, 30,132,213, 5, +188,255,225, 45, 94,189,121,143,251,253, 22,207,238,239,176,223,239, 57,202,144,120,164, 60, 11, 11,254,116, 62,227,114,186,192, + 5,134,248,199,106, 35,227,106,123, 93, 87,152,121,230, 11, 70,232, 89,199,211,153, 43, 97, 82, 76, 53, 3, 96,172,229, 88, 64, +197,202, 76,182,204, 56,156, 78, 79,248,242,235,111,241,249,203, 79,241,252,126,123, 29, 4,210,143,121,149,146, 41, 75,110,208, + 26,137,189,189,202,175,167, 70,183, 42, 12,235,101,141, 32, 61,225,112, 60, 54,155,162,240,235,249, 96, 48,240,209,129, 72, 99, + 89, 47,149,167, 28, 79, 71,220,220,222, 99, 93, 3,144, 34,134,253, 29, 82,206, 88,215, 25,110, 93, 1, 0,155,205,158, 47,122, + 99,129,232, 17, 29,139,222,180, 2, 6, 81, 33,243,104, 35,194, 45, 92, 77,147,214,152, 44, 59, 25,144, 18,118,155, 9,218, 24, + 81,205,203,207,166,216,158,114, 88, 22, 40, 67,248,246,245,107,172, 51,143,139,111,182, 91, 92, 46, 11,175,124,230, 11,230,121, +198,164, 9, 48,150,227, 23,137, 47, 20, 35,221,245, 48,109,170,218, 62, 11,218,179, 8,178, 32,151,182, 17, 5,117,202,108, 33, + 43, 83, 21, 37,159,123,170,151, 89, 20,203, 90,172,197, 83,150,130, 56,229,132,205,102,139,144,248,153, 48,195,192, 93,107,125, +248, 91, 72, 6,132,205,205, 99,123, 84,222, 60, 36,150,116,156,182, 88, 61, 95,166, 33, 19, 14,243,130,172, 20,235, 85,140,174, + 74,102,239, 89, 60, 26, 98,194,188, 58, 44,171,195, 18, 13, 48,221,224,159,190,250, 22,233,203,127, 6,122, 37,190, 42,177, 75, +221, 76,174,168,173, 99,188,206,153,151, 75, 42,229,235,209, 96, 47, 22, 43, 63,154,149,157,102,146,162, 48,229,107, 52, 17,170, +205, 42,137,165,178,223,223, 82, 27,201, 82, 91, 77, 40,165, 48, 14, 19,110,238,158,225, 87,191,250, 37,126,253,103,191,148,194, +162,133, 18, 55,170, 24, 90, 58, 18,181, 53,100,150,116, 46,234,216,229,232, 46,154, 98,238,164, 78,217,221, 51,223, 41,247,250, + 20,121,190,114,139, 99,213,130,232, 77, 29,150, 57,151, 51,242,202,165,146,107,192, 71, 97,249,179, 86,130,133,161,186,142,213, + 9, 65,138, 31,254,236,100,144,204,124,116,101,175,243, 63,199,148, 97,197, 85,164,192, 98, 79, 34, 45, 20,179,162,141,225,117, + 23,233, 6, 78, 74,242,191, 33, 38,228,172, 42,173, 18,200,208,137,106,183,171, 84,170,162,177,156,218,247, 95, 47,233, 30,152, + 82,113,177, 37,229, 49,129, 34, 42, 38, 88, 93, 53,147,141,192,166,181, 97,120,146,231, 51,167,104,121,138,109,185, 35, 11, 84, + 53,184,146,145, 57,137, 15, 61, 20,239, 58,202,215,161,238,227, 80,210, 29,175,201,116,236, 16,240,149,203, 78, 90, 35,196,132, +197,121,248,216, 96, 82,197,174, 91,238,212,162, 21,225, 34, 79,181,128,172,156,229,220, 85,245, 51,147,145, 68, 47, 32,223,191, + 82, 93, 65, 75,221,231,144,186, 56,237,242,223,246,123,107,196,117,197,186, 39,152,194, 17, 71,134,216, 7,168,237,250,115,225, +143, 83,231,142, 34,224,106,228,148,160,116,190,178,102,248, 16,129,228, 48,140, 86,242,169, 19, 52, 41,188,121,120,172,163,185, + 24, 35,246,187,189, 28, 16, 28, 54,112,153,103,140,214,226,235,175,191,194, 79, 62,123,137,113,179,193, 55,223,125,143, 95,253, +242,231,184, 60,189,199,160, 21,188,243, 24,140, 70, 34,130, 37, 13,231, 51,220,202,135, 50, 25, 11, 74, 9, 17, 1,211, 96,164, + 99, 73,248,248,217, 13, 78,231, 25,218,104,204, 79,111, 49, 78, 27,104,165,240,238,205, 59,152, 97,192,254,230, 22,231,195, 35, + 11,142, 50, 16, 98,198,147,247,184,132, 19, 94, 61,157,240,108, 55, 97, 55, 13,156, 38, 23, 3,251,154,189,135, 11, 81, 96, 12, +221, 94,137,138,184,135,253,163,110, 93,177, 88, 83, 8,173, 56, 30,143, 88,214, 21, 80,147,116,102,162, 96, 37,226, 17,106,150, +113,149,188,198,199,167, 7,124, 19, 35,150,245, 35,252,228,229,179,186,251,174, 19, 19,100,137, 77,149,195, 42,169, 86, 21,118, + 98, 37, 31, 18,230,149, 97, 56,222, 59, 1, 77, 56, 40,100, 44,243, 3,214,117, 17,184, 11,143,234, 66,136, 98,215, 72,216,108, +118, 88,215,153, 11,173,156, 1,173, 49, 88,194,233,240, 0, 31, 2,166,205, 14,143,143,111, 97,148,194, 44, 93,123,244, 43, 78, +193,139, 69,109,173,186,140,232, 29,180, 53, 18, 24,196,135,252,146, 88,232,181,153, 6, 12, 86, 99, 51,141, 24,140, 97,145, 34, +145, 16,224, 50,204, 96,225,115,192,168, 13,140, 53,120, 56, 60, 33, 58,135,219, 91,182, 57,206,115,230,159, 35, 38, 92,102,246, + 59, 95, 46, 23,182,247,248,200,221, 89,134, 4, 9,161,230, 67, 27,195,190,107, 62,136, 45, 31,222, 82,172,242,237, 92,158,145, +212, 4, 63, 29,189,167, 4,241, 24, 98,142,117,161,199,149, 8, 73,238,198, 3,148,144,169,202,235, 16, 59, 10, 20, 9,158,148, + 58,250, 92, 19, 61,118,104,102, 99,112,154, 93, 23,209,155, 49,123,135,183,199,165,142,188,219,165,155,174,240,156,212, 41,146, +123, 27, 43,201, 33,145,197,231, 94,198,224, 33,166, 54,186,206,168, 52,179, 70,147,164,106, 33,204,245, 50,197,149,111,158,187, + 38, 45,233,117,241, 10,108,213, 2,131,114,253,188, 83,110,223,211,191,204, 66, 96, 87,192,118,123,131,219,251,231,248, 31,254, +187,127,205,233, 95, 41, 95, 9, 63, 27,165,172, 83,240, 82,141, 33,170, 25, 6, 36, 98,218,246,245,114,195, 36,215,248,225,214, +133,151, 14,173,183, 36,230,222,149, 46, 41,127,156, 59, 79,245,162,227,207, 91, 39, 25,239,100,221,249,122, 11,134,148, 18,134, + 97,192,114, 57,193,167,136,113,212,128, 34,124,246,252, 14, 95,125,255,154,215,135, 49, 97, 99,181, 40,221,249,243,161,169,134, +155,215,247,133,228,245, 82, 69,123,132,146,165, 30, 1, 5, 40,101,186, 46, 31, 53, 56,164, 8,225,116, 21, 18,102, 40,205,197, +110, 2, 65,103,134,213,248, 24,185,136, 16,157, 65,136, 77,141,223,219, 48,137, 8,186, 36,195,161, 89,188, 84,135,153, 69, 42, +204, 7, 22,196, 1, 64, 10,174, 2, 98, 10, 47,160, 16,236,114, 23, 97,193,166, 32,195,103,203, 21, 88,166, 88,178,169,173, 58, +164,131, 86,181, 97,215,194,203,176, 50,137,138, 87,174,130, 98, 33,244,129,133,192, 45, 70, 54,247, 6, 32,153,110,160, 78,252, + 42,171,163, 7, 77,169,220,246,232,170, 11,151, 41, 57,166,189,115,184, 91,191, 85,228,109,129, 84,149, 63, 65,185, 22,147,164, + 24,165,107,202, 3,152,170,112, 35,225, 3,194,200,213, 18,191, 48,170,235,231, 82,212,195,189,224,106, 89, 28,159,253, 18,228, + 48,141, 35,126,247,213,215,181,210,103, 95,167,174, 60,113, 78,110, 91, 96,140,198,227,211, 19, 62,126,241, 28, 95,253,225, 15, +120,253,230, 45, 98,240,248,135,223,124,137,237,104,241,124, 63,113, 21,166,100,236, 0,206, 30, 30, 70, 43, 66,164, 8,109, 13, +110,140,150,145,173, 66, 36,192, 42, 96, 51,106,144, 2,140, 29, 57, 69, 45, 6,220,236,183,248,236,229,199,184,156,207,184,187, +217, 0,164,241,199,111,191,225,253, 75, 17,190, 32,227,225,178,226,245,105, 65,202, 9, 35, 17, 38,211,248,198, 17, 60,202,139, +200, 72, 84, 14,204, 22, 3,234, 3,227, 46, 67, 76,240,206, 99,190, 92,216, 9, 48,136,215,213,112,225,147,101, 12,155, 50,143, +154, 97, 24, 59,184, 44, 23, 24, 59,224,187,239,190,131,243, 1,127,246,139,151,117, 4,151,209,217, 32,228,221,243, 57, 97,117, + 25,206, 69, 40,109,225,165,179, 30,172, 69,240,161, 93, 22,158,133,106,222, 47, 32,197,135,228,233,124, 96,132,111,228, 73,135, + 95, 28,140,182, 56, 30, 30, 48,109,118,184,156,143,210,225, 68,144,182,204,137,246, 14,171, 82, 8,206,225, 18, 28,166,113,132, +115, 43,198, 97,224, 74, 25, 9,154, 52, 66,244,114,145, 75, 10, 92,202,200,137,224,157,231,142,189,136,215, 36, 71,155, 58, 37, +234, 96,249,224,113, 33, 84, 75,215,114,185, 96,171, 21, 22, 5, 44,231, 51, 82,206,216,109, 71,204,235, 10,138,185, 6,196,120, +239,224, 49, 98,178,132,203,234,175, 16,159, 70, 70,242, 0,152, 60, 86, 68, 91,137,119,210, 37,229,172,144,199, 82, 74, 87, 32, +100, 18,117, 20,131, 49, 10,122, 55,243,148,161,118, 16, 16,241,211,138, 73,111, 57,106,180, 83,128,247, 49,144,189,165, 39, 41, + 35, 2,159, 98,217,202, 87,166,195,156,175,127,221,239,175,211,149, 15,190,227,100,203,216,153,114,139, 95,226, 9, 94,232,188, +243,130, 14, 77, 93, 66, 88,119,201, 93,225, 60,235,212, 14,117, 63, 93,200, 92, 90, 56,235, 74,166,109,174,168,131,129,171, 93, +104,233,120,116, 23,144, 82,156, 3,229,115,174,138,239, 88, 1,198, 88,220,222, 62,195,167, 47, 63,195,127,251,175,255,166, 78, + 88,122,241, 97,238, 66, 60,174,175, 92, 92, 89,128,218,132, 65,254, 84,231,253,189,146, 38, 75,247, 77,164,218,217, 72, 29, 6, + 22,173, 64,172, 2, 74,148, 51, 10, 87,182,165,156,175,180,215, 87, 59,105,116,214,186,105, 26,241, 4,198, 28,171, 76,140, 1, +206, 6,155,193,226, 60, 47,162, 93, 80, 48,164, 96, 12,137,175,185,124,118,155, 5,175,228,203, 23,235,101, 22, 36,178, 66,230, +243,185,172, 31,228,125, 83, 96,245,125, 25,229, 23, 7,134, 86,252,124,166,146,140, 87,136,135,129,139, 30,157, 18, 39,156,133, + 32, 23,251, 53, 78,188,237,151, 85,247,217,165,182,111, 38,130,214,128,210,182,130,136,130, 64,101,170, 13, 56,179, 40, 91,137, + 77, 49, 21, 97, 42, 21,176,140,105,164,184, 20,240, 35,242, 59,201,228, 50, 55,170,163, 34, 30,213,107,163,197, 38, 25,164,184, +238, 0, 96, 89,112,203,213, 54,221, 69,210,254, 11,154, 36,170,106,247,252, 65,136,244, 7,129, 41,212,220,226,160,174,192,255, +192,161,148,127, 76, 30,235,180, 79,234, 10,113, 76, 4,190,212,137,186,113,215,143,150,246,197,162,158,155,220, 94, 58, 67, 18, + 81, 80, 75,110,227,111,150,129, 44, 12,154,152,166, 9, 74, 41,252,230,235,111, 25, 18, 35,149,227,102, 51, 74,229,206, 54, 46, + 99, 12,156,243,248,225,135,239,216,178,180,191,133,126,247,128,197,179,192,109, 89, 86, 24, 69,216, 13, 30, 94, 20,193,209, 7, +104, 99, 97,245, 0,163,128,172,152, 16, 22, 66,132,210, 60, 81,176,214,212, 46,222,106,194,152, 51,212, 56, 96,118, 1, 63,255, +229,159, 96,180,204,178, 94,150, 21,243, 60,227,227,251, 27,204,235,130,121, 94,176,174, 43, 14, 79, 7, 44,206, 33, 58,143, 16, +128, 99, 76,120,183,178, 40,105, 99, 53, 76, 61, 84, 27,253,173, 52,121, 49,201,212, 98, 89,129,101,197,234, 28, 98, 72,240,162, +138, 13,129, 59,216, 97,156, 56,128, 34, 37,196,228,161,212,202,145,160, 54, 35,103, 11,239, 86, 40,173,241,234,213,119,152,231, + 25,127,241,171, 47, 36, 97, 9,136, 73, 97,153, 47,216,223,222, 66, 17,241,158, 51, 6, 22, 76, 37,135,236, 87, 88, 99,240,244, +240, 14,214, 90,248,156,106,232, 3, 43,238, 57,185,172,200, 31,125,136,176,227,132,243,229, 2, 2,231, 79,231,156, 49, 95, 78, +136,193, 67, 27,195,213,118,152,161,205,192,169,120,193, 99, 94,102,220,222,222,195,175, 23,164, 24, 48, 47, 81, 98, 46,117,183, + 43, 22,177,142, 28,222,171,227,238,216, 42,141,105,156,176,177, 26,183, 55,183,152,215, 21,119,119,207,241,250,205, 27, 28, 47, + 11,238,111,118,120,255,248,136,195,249,132, 95,252,244,167, 56,207, 23, 24,165,240,116, 60, 0, 49,194, 14, 35,239,181, 67,196, +225,112,130,182,236, 85,215, 34,196, 25,117, 81,131, 91, 88, 3,164, 44, 12,108,177,219, 41,173, 1,101,177,204,172, 48, 46,190, +107,136,159, 58, 19,147,166,234, 30, 75, 14,180,146,134, 86, 46,184,152,178,104, 61, 82,189, 52,148,232, 78,202,234,166,122,183, + 5,144, 18, 59,107, 82,111,213, 2, 82,243, 14,199,112,149,183, 92, 44, 85,229, 32, 70,199,225, 14,194,201, 47,185,216,220,213, + 69,217,239, 11,113,174, 99,137,167,170, 50,111,223, 79,211,109,168,166, 16,175, 73,100,169,170,117,127, 84,236,131,167, 21, 37, + 92, 38,167,140, 53,186,238,146, 45, 25,209, 16,184,143,130, 53, 28, 72, 19, 11, 39,162,254,156,170,122,219,155,144, 74, 97,156, + 54,248,228,211,151,248,244,227, 23,248,253, 31,190,193, 96, 7,172,114,126, 40,217,219, 91,107, 56, 29, 78, 55, 34,159,234,192, +215,232, 56,224,253, 72,254,199, 62, 79,105, 32, 11, 37,173, 67,249, 82, 45,227,168, 37,116, 9, 30,182,168,206,175, 59,241, 92, +209,202, 92, 60,182,215, 36,167,235,240, 17,231, 89,169,205,169, 98,220,249, 91,226, 21,222,103,207,239,240,219,111,217, 35, 61, +175, 14,163,157,174, 28, 49, 80,169,158,227, 74, 43, 22, 76,146,174, 59, 89,230,117,112, 5,160,101,207,206,227, 97,158, 10,149, +228,191,178,118,209,146,131, 81,215, 32,166,209,215,116,230,253, 56,167,198,165,166,244,246,190, 78,157,250, 2,139,241,205,114, +153,130,174, 82, 33,181, 98, 16, 23, 41,233,150,187,216,212,214,245, 87,186,180, 76, 88,120, 31,174,100,157,170, 32,147,212, 20, + 27, 81,187, 47,192,106,119,222,113,227,141,145, 66,155,249, 21,233, 42, 77,174, 21, 4,101,210,228, 67,132, 53,166,138, 8,233, +106,130,196,175,183,234,196,160, 53, 71,133,154, 8,185,184, 89,250, 30,253, 71, 23, 58, 21,157, 90, 49, 37, 53, 92,123,157,167, +231, 70,205,235, 9,125,166, 88, 18, 84,247, 5, 82,157, 48,229, 15,106,141,114,124, 41,168,156,144,148, 98,229,123,142, 29,207, + 26, 88,151,149, 45, 0,195,128,121, 89, 48, 89, 43, 85,132, 2,233, 12,149, 21,126,254,179,159, 99, 93, 22,108,119, 91,156, 78, + 30, 70, 27,108, 54, 19, 62,123,249, 57,230,213, 97, 5,224,220, 10,173, 53,230,117, 69,202, 9,175, 31, 18,238,118, 27,108, 55, + 27, 44,206, 75,133, 24,144,117, 68,212, 10,214, 14,146, 85, 46, 85,101,206, 88,125,194, 52,104,140,211,200,130, 7,239, 48,104, + 13, 51,106,252,244,139,159,129, 50,123, 57,163, 40,186,189, 99,208,205,186, 58,172,235,140,101, 93,177, 44, 11,220,178, 98,241, + 14,222,121, 92,150, 21, 79,167, 51,158, 46, 51, 92, 74,152,221,130, 81, 20,242, 60, 30,146,117, 70, 74, 18, 92,147,170,175, 84, +105, 38,163, 13,145,133, 76,164, 20,211,232, 68,241,159,137,125,193, 41, 70, 25,137, 71,228, 19, 56, 84, 99, 24,241,254,221, 43, +252,219,167, 71,252,171, 63,255, 19, 28, 47,174, 86,181,201,205, 88,150, 11,119,189, 68, 56, 94, 14,216,232, 8,239, 35, 46, 33, + 96,180,134, 47,252,172,145,194, 10, 23,121,183, 22, 83, 68,202, 10, 33,122,193,214, 70,132,153, 57,234,243, 60,195, 88, 46, 42, + 82, 78,176, 90, 33,196,150,244,118, 62,241, 58, 37,132, 0, 59, 76,240,110,198,229,124, 98, 97,150, 80,215, 84,240,128,214, 53, + 73, 13,178, 91, 50, 10,176, 90,215, 8,209,209,106, 28, 47, 51, 39,176,109,183, 56, 60, 61, 49, 13,142, 50,110,246,123, 60, 61, +188,199,221,118, 39,150,195,136,115, 88,112,184, 44, 60, 91,154, 23,236,183, 91,209, 42, 16, 82,140,162,201, 0,236,200, 69,157, + 79,132,209, 14, 8,110,129,177,166, 93,130, 57, 66,197, 92,227,118,181,101, 2,154,214,108, 41, 43,197,170, 66, 63,185,107, 15, +105, 21, 2,101,192,104, 37,234,119,201, 39, 87,132, 32, 42, 99, 45,123, 58, 18,120,200,102,195,130,174,224, 22, 81, 95,183,110, +139, 68, 8, 69, 36, 89,217,194,254,134,168,116,139, 23, 62,197,212,173, 2, 8,171, 76, 50,234,255, 47, 33, 30, 5,155,154, 36, +169, 43,119,157, 62, 73,220,169,146, 17,107, 47, 38,202,104,180,181, 10,191,202,215, 23, 96, 57,144,181, 54,242, 53, 25,229,155, +113,157,230, 88,116,228,170,116,240, 18, 52,226,131, 7,228, 48, 78, 50,242, 84, 74, 33, 33, 86,135, 77,137, 53,245,137, 83,228, + 94,189,122,133, 87,175, 95,203,174,157,153,251, 90, 21, 16,144,146, 16, 23,141,113, 28, 25,208,179,221,224,230,102,135,221,118, +131,113,180,205,134,148,233,218,210, 89,219,160,238, 44, 44, 65, 45,170,199, 53,231,102, 72,169, 19,146, 84, 65, 37, 53,143, 65, +118,156,101,159, 95, 11,127,116, 65, 65,212,225, 34,101,218, 55, 47, 11,150,101,133, 82, 84,179,208, 67,240, 32, 16,172, 53,248, +248,126,135, 87, 2,166,185, 44, 14,187,137, 99,164, 51,184,160,139, 49, 66,203,234,168,128, 90,114, 17,120,166,116,117,137,104, +173, 56,240, 37,112,161, 91,178,217,189,104, 54, 82,206, 80,150, 29, 76, 49,103, 14, 37,146,113,175, 74,157, 5, 51, 43, 36,233, +232, 81, 29, 5,173,225,227,103, 68, 93,193,108,218, 4, 73, 65,105, 11,107,173,240,236, 93,183, 58,234, 56,241,101,204,156, 59, + 49,153, 86,173, 67,143,158,163,118,203,123,210, 45,162,235,222, 89, 92, 36, 90, 10, 1,146,231, 50, 9,215,132,186, 73, 76,134, +170,147, 28,166,253,178, 19,168, 4, 16,149, 41, 67, 41,170, 10, 1, 82, 27,211,220,242,221, 5, 15, 42, 2,202,171,132,237,171, +203,191,238, 20,114, 99,194, 36,180,181, 15,149, 63, 95, 45,199,244, 65, 52, 58, 96, 72,246,226,185,236, 9,122,127,122,191, 47, + 74,185, 51,245, 39, 94,236,151, 15,119,237,232, 75,112, 0,170, 80, 36,167,136,255,235,223,255, 45, 64,138,233, 69, 18, 7,121, +127,123, 7, 59, 12,120,120,120,143,219,155, 27,120,183,192,175, 17,251,155, 61, 30, 31, 31, 49,140, 35,158,125,244, 9,222,124, +255, 93, 7,170, 80, 8, 49,193, 45,172,168,214,118,196,186,206,200,195,136,249,112, 96,116, 96, 78,200,164,160,149,198, 52,142, + 80, 57,130,200,194,104,128,180, 97, 91,146, 2,126,250,147, 95,224,230,246, 14,154,248, 64,135, 28, 72, 41, 38,246, 82, 75,230, +121, 8, 17,193, 57, 4, 65,125,134, 16, 69, 81,237,176,172, 43, 94,189,125,135,255,244,187,223, 99, 17,184,142, 34,130, 17,104, + 69, 78,172,210,174, 35, 63, 99, 17,205, 0,138,171,164,173, 36,153,104, 20, 97,150, 88, 90,150,153,163,250, 36, 69,200,131,249, +243,227, 56, 49, 61, 45, 94,240, 31,127,243, 59,252,197,207,127,134, 20, 46,176,102,128, 74, 14,214, 90,100, 1,163,104,176, 45, +198, 88,203,163,241, 11,143,149, 24, 11,169,129, 28, 17,200,224,114,153,161,144, 16, 69, 4, 20, 98, 70,138, 11,231, 93,231, 8, +183, 6,113, 10, 4, 16, 89,104,120,184,149,185,253,202, 12,128, 95, 97, 69,212,118, 56, 29,112,123,255, 12, 97,157,187, 36, 48, + 45, 7,104,179,109,113,171, 38,187,125,165, 96, 40, 99, 48,132,155, 79, 94,224,124, 58,227,253,241,137,109,144, 68,120,253,248, + 8,163, 53, 30, 78, 23, 40,173,241,195,251, 7,196, 24,113, 60,115, 58, 95, 72, 92, 61, 43,245, 84,167, 70, 57,103,140,150,167, + 55,251,201, 66,155, 1, 20, 28, 92,140, 32, 33,107,241,131,167, 59, 26,111,102,241, 37,120,114,162, 72, 55, 27, 96,202, 24,182, +183, 56, 47,223,179, 72,175, 2, 50, 84, 61,164,203, 65, 74, 74,186, 89,213, 82,240,250,157,241,110,119,139,253,237, 0,165, 53, + 46,151, 19,150,101,150,231,152,119,210,177,184, 17, 20,175,103,120, 84,159,234, 37, 25, 83,148,213, 78,172,210, 91,163,217,238, + 3, 48, 16,131,100,132, 90,196, 98, 33,116, 30,228,124,237,251, 46,188,249, 30,114,209, 60,201,162,213,232, 68,129,229,231,213, +226, 3, 46,255,241,222,183,248, 72, 38,202,212, 85, 20,251,252,181, 76, 11, 50, 92,240, 53, 4, 71,139, 45,142, 47, 69,212,215, +178, 37,248,101,201,191, 38,124,250,249, 47, 96,135,145,211,241,228,213, 45, 99,102,173, 13, 35, 50,181,173,118,167,101, 89,112, + 20, 85,119, 33,127, 89, 99,177,221, 50, 29,108,179,153, 48,109, 38,104,165, 48, 12,124,169, 24,201, 34,168,249,221,210,173,246, +145,165,125,128, 81,150,247,162,240, 3, 10,236,252,195,223,251, 33,231, 41, 21,134, 68,207,138, 23, 17,241,229, 60,179,158,164, +116,182,162, 83,178,134, 11,167,219,221, 22,143,167, 51,150,213, 99, 94, 61,172, 82, 72, 70,193,104,110,154,216, 43,205,175,127, + 22,193, 87, 34, 22,218, 53,158,133,136, 26,115,141, 0,226,172,128, 16, 16, 66,170,159, 25,136, 90,221,106, 17,230,137,168, 80, +151,162, 82, 16,203,168, 99,106,254, 89, 67,160,142, 91, 80,112,169, 92,168,182,108,151, 12, 69, 70, 16,174,140,125,141,114,161, + 55,122,129,172,125,160,234, 10,170, 8, 80,149,230, 21, 26,129, 47,244, 20, 99, 11,152, 98,245,217, 7,250, 13,118,149, 24, 99, + 36, 14,155, 21,235, 73,222, 63,212,181, 66,157, 79,203,132,170,189,111, 33,114,218, 97,133,121,149,100,190, 92,166, 13, 90, 66, +138,114, 21, 41,215, 66,176, 76,197, 20, 65,101,125,245,239,139,174,166,165,222,112,243,144, 68,151, 83,211,250,114,139,225,206, +153, 58, 39, 5,106,112, 77,141, 27,107,220,234, 46,140,179, 23, 58,168,134,174, 77,189,118, 85,144,119,169, 27,227,167,196, 54, +128,193, 90,120, 15, 60,205, 1,195,184, 97,200,140,115,136,126,197,110,183,131, 95,103,236,182, 91, 56,183,226,102,191,199,155, +183,239, 16, 18, 63,208,239,222,190,197,110,191, 71,136, 17,227, 56,178, 82,156,120, 92,124, 10,252,224,196,101,133, 34,197, 93, +181,243, 24,134, 12, 69,153,133, 79,137,171,202, 97,208,152,151, 5,119,183, 55, 60,234,181, 22, 46,120,252,228,179,151, 24, 44, +243,128,149, 84,139, 53, 63, 29, 55,200, 49, 34,250, 21, 17,132, 36, 35,237,156,185, 0,112,206,113,226,151,243,184,191,185,193, +237,102,194,223,253,238,247,120,245,116, 98,219, 20,128, 1,188,103,215, 50,114, 11,118,100,206,251,186,240,235,152, 98, 75, 75, +206,133,233,156,228, 0, 39,134,117,100,142,118, 45, 89,220,164, 8,214,142,220,209,231,140,175,254,248, 61,126,254,249, 75,104, +197, 24,210, 28, 29,160, 12,220,186,176,152,112,216,224,178,176,205, 43,197, 0, 23,185, 51, 50,102, 0, 0,204,203,133,125,151, + 74,236,100,222, 65, 41,230,170,187,101, 22,126, 53,213, 11,207,173, 11,130, 36, 85,197,156,145,227,202,217,221, 68, 56,157,158, +176,191,123,134,199,247,239,176, 25, 7, 30,177, 3,136,224,176,135,242, 73, 85, 41, 99,118, 43,211,226,172, 70, 86,132, 81,141, +120,247,116,196,112, 89,112,186, 92,224, 3,107, 0,222, 61, 60,226,178, 58,188,121,255, 8, 34, 96,176,156,240, 53, 14, 3,246, +219,109, 29,241,150,163,195,197,128, 16,184, 67, 94, 86, 7,191, 46, 32, 34,248,156,184, 19,200, 30,160, 1, 8, 14,154, 52,204, +184,133,247, 43, 98, 74,178,123, 52,213, 9,145,145, 43, 86, 82, 41,194,254,230, 5, 94,191,123, 5, 13,238, 2,137,248,162, 34, + 1,203,100,185,224,139, 46,149,169, 89,130, 7, 5, 19,215, 62,253,217,159,226, 87,191,254, 43,124,253,251,127, 68,142, 17,135, +195, 3, 63, 43, 70, 66,125, 74,180, 45,181,207, 69,207,248,103, 1, 95, 27, 33,151,221, 95,185, 36,123,156,100, 25,209,131,174, +115,253, 42,229,170, 67,158, 50, 36, 68, 60,177, 98, 99,165,254, 12,233, 32, 41,236,228, 80,146,104,197, 32,153,186, 30,164,182, + 35, 86,132,122,145,243,133,145,224, 66,148,213,133,170,249,221,101,239, 90, 84,209,229,139, 38,234,108,113, 74, 97,123,115, 15, + 45,133, 80, 29,197, 42,141, 24,115, 5,158, 80, 7,177,209, 68,236,191, 86,154,139,118,197, 23,117, 10, 60,129, 3,169, 86,112, + 10,146,215,104,141, 97,176, 24,172,197, 56,141,221,255, 26, 12,195, 0,107,116, 75,205, 43,232,110,249,158, 73, 20,241,169, 19, + 98, 85,241,112,239, 86, 41,239, 95,234,160, 93, 41, 85,255,118, 8, 65,252,233, 76, 41, 51, 36,226,196,148, 16, 37,195,222,104, +133,143,238,110,241,237,171,183,200, 57,227,180,172,216,142, 22, 49, 41,232,168, 48, 14,131,136,244,216, 78, 9, 81,184,147,116, +168, 5, 87,220, 59, 1, 82, 98, 77,146, 11,178, 6, 73,237, 53, 13, 41,179,107, 3, 84, 11, 60, 30,203, 43, 80, 23,247, 90,138, + 28, 77, 4,167, 88,224, 90, 20,235, 37, 19,128,100,202, 87, 71,248, 70,226, 94, 99, 96,238,188, 32, 92,123,221,199,191, 20, 34, + 94, 38, 52, 4,133, 40, 66,219, 92,248, 28,229,106,170,141,108, 75, 82, 44,227,246,148,120, 58,219,231,152, 87,130,100,241,178, +103,213,222,191, 18,193,144, 50,162,128,127, 74,248,149,214,188, 14, 86,134, 95,219,171,140, 57,209,167, 20,251, 99, 3,250,116, + 51,240,122,153,231,106, 83, 79,226, 78, 66,167,245,160, 78,253,142, 30, 18, 87,158,213, 18,174, 83, 21,156,169, 64, 31, 80,255, + 34,244, 98,128,174, 42,104, 26, 0, 25, 95,201,155, 75,242,197,198,209, 34,172, 30, 33, 69,188,125,255, 30,151, 35,167, 14, 21, + 18, 87,148, 74,108, 24, 6, 16, 1,203,204,251,219,209,104, 44,222,215,124,227,113, 28,241,211, 47,126,138, 63,252,225,107, 40, + 69,204,134,183, 28,163,248,209,253, 61, 82, 88, 16, 51, 71, 15,238,119, 27, 56, 31,177,174, 14,187, 45, 48,142, 76,167,123,247, +120,128, 85, 92,145,221,223,221,113,245,171, 52,127,240, 99, 4, 52,131, 52,202, 72,144,233,249, 50,122, 10, 19, 82, 78,114, 17, +103,228,152, 16,188,195, 96, 12,140, 34, 56,249, 59,206,251, 29, 62,187,191, 69,112, 14,143,142,253,234, 62,183, 28,244,164, 8, + 8, 30, 90,172, 74, 40,158, 78, 81, 40, 27, 99,176,134,165, 22, 80,193,175,108, 3, 75,177,210,170,188,247, 80,202, 97, 48, 22, +198, 24,248,224,145,130,195, 63,126,249, 21,254,234,207,127,129,135,199, 71,108, 54, 19,172, 85, 88, 66,146, 92,236, 21,155,113, +226, 21,136, 86,192,234,132, 43, 0,134,192, 24,141,152, 19, 46,167,115, 77, 72, 35, 75, 8, 98, 33, 9,222,179,239, 60,103,132, +101, 70,140, 30,118, 24,225,221, 2,109, 44, 98,138,172,248, 6, 48, 78, 27, 60,189,127,131,205,118,207, 58, 9,241, 94, 91,201, +168,103, 50, 31,175, 25,140,102, 97,212,193,241,133,252, 72,151,202,166, 54,154, 39, 44, 70, 41, 60,191,191,197,167,118,148,140, +231,124,133,193, 76,162, 50, 46,249,246,107, 8, 48, 94,193, 26, 96,245, 30,195, 48,193,166,128,211, 18,112,187, 27,144,192, 64, +137,228, 22, 64,113, 34,149,146,241, 36, 17, 91, 95, 20, 1, 89,105,164, 28, 57, 97, 45,133, 42,102, 58, 29,223,193, 24, 3,104, +194, 40,150, 25,206,235,230,157,162,209,138,181, 12,154,233,134,154, 84, 21,195,105,109,241, 95,253,247,255, 11,220,122,193,111, +254,254,223,227,179,207,191,192,215,127,248, 13,214,117,198,167,159,255, 28,199,167,247, 64, 78,184, 92,206,149,134,213, 35, 81, +203, 84, 44, 83,147,227, 37,168,122,104,148,125, 27,186,145,110,198,181, 18, 28, 29,139,160,221,214,125,174,119, 63,201,235, 72, + 95,185,112, 39,132, 64,150,128,213,187,254,143,180,179, 86,208,180, 74, 72,124, 25, 25,171, 15,181,184,208, 74, 87, 65, 47,211, + 32,181,248,248,155, 93,174, 48,208,249,123, 84, 69, 14,142,205,118,143,243,249, 88, 47, 36,146,152, 80, 72,214, 60, 50,187, 41, +216,159,223,198,158, 25,145,109,100, 34,198, 99, 97,107,172,118,197,242, 90,123, 57,108,231,165,144,252,248,253, 29,236, 0,165, +185,195,183,214,182, 75,127,100,167,134, 54,186, 50, 16,202,152, 56,161,243, 47,231,134,120,174, 46,252, 12,225, 25, 52, 59, 84, +225, 27,172,235,138,167,227, 73,208,163, 30, 86,163,178,238,147,207,117, 13, 51, 13, 6,207,111,183,120,243,112,132,143, 9,171, + 7,108,182,200, 70,193,100,137, 33,202,177,134,204,196, 74, 89,227,119, 77, 43, 18,193, 25,234,164, 40,202, 20, 53, 22,184,137, + 76, 17,188,247,140, 70, 53, 70, 38, 74,186, 22,102, 74,166, 67,157,167,161,173,172,100, 21, 86, 88,241, 41,147,136,137, 69,116, + 36, 54,187, 16, 56, 90, 57,117, 19,142,148, 62, 20, 34,230,214,181,139, 61, 24,160,235, 11, 93, 22,101, 53,179, 66,181, 60, 18, +173, 76,141,105,141,177, 64,108, 82, 39, 84,149,220,134,186,177, 38,177,186,209, 7, 57, 25,185,174, 68,202, 32, 70, 19, 33,203, +231,165,172, 93,115,111, 15,207, 29,177, 80, 92, 46,185,195, 63,151,125,255,149,199,191,236,236, 43, 42,186,155,156,119,187,173, +220, 58,109, 94,245,100,192,212, 25,190, 84,132,197,246, 64,169, 64,101, 62, 84,103, 18, 58, 11,167, 28, 54,101,244,196,223,248, +104, 6,248,229, 12,163, 13, 12,162,140, 24,211,149, 85, 70, 43,133,101, 94,240,240,244,136, 47,126,250, 5,190,252,221,111, 48, +142,155, 58,194,218,237,246,248,246,155,111, 48,142, 3, 62,121,249, 18,143,111, 95, 35,102,141,243,188, 98, 26, 44, 94, 63, 60, +225,229,243, 91, 28,207,103,196, 4, 44, 11,123,116, 9, 96,181,121,136, 24,198, 17,119,251, 13,166,113, 64,240, 14,167,211, 17, +251,237, 6,251,253, 45,130, 91,225,172,174,226, 14,196, 12,178, 3,195, 25,202, 74,193, 90,164,232,101, 68,152, 68,128,198, 10, +109, 99, 45, 82, 6,172,181,149,171, 60, 17,112, 99, 53,244, 52,225,233,120,225,106,142,154, 42,153,243,126, 91, 78,118, 28,221, +121, 20, 0, 0, 32, 0, 73, 68, 65, 84, 97, 2,135, 16, 96,180,230, 40,205,148, 48, 12, 35, 31,114, 49, 32,228, 12, 34,230,107, + 47, 0,110,119,219,154, 67,157, 64, 88,151, 25,255,225,159,190,196,175,127,249, 83,120,239,176,204, 71, 56, 31, 17,136, 48,109, +182, 88,150, 51,180, 34,172,235, 42,163,207, 0,172,171,236, 75,139, 42, 29,152, 47, 39,104,109, 48,207,103, 57,104, 88,100,200, +214, 60, 14,250, 80,218, 96,157, 47, 0, 8,126,229,247, 52,146, 71,244,236, 75, 31,134, 13,214,117, 65,118, 75,173,242,189, 92, +200,178,212,101,101,170, 34, 24,163,176, 29, 71, 76,211,196, 22, 25, 73, 81, 82,154,131, 86,204, 96, 96, 4, 82,226, 3,175, 20, +140, 33,108,199, 9, 65, 70,207, 49, 43, 88,107,176,174, 14, 91,163,112, 9,156, 70, 54,104,133, 85, 70,137,211, 48, 32,102, 96, + 48,252, 51, 45,164,225,115,128, 78,132,203,124,168,147, 39,228, 12,239,146,140,215, 53, 66,116, 60, 49, 17,225,220, 50, 31,249, + 82,130,146,110,213,192, 14, 60,250, 11,209,195,135, 82,236, 74,215, 47, 74,243, 97,220,226, 23,127,249, 95, 3,209,227,171,223, +254, 61, 62,255,252, 11,124,247,199, 63,192, 59,143, 63,253,245, 95,227,240,248, 14, 63,255,249,175,240,207,255,252, 37,239, 43, +235,248,176,219, 39, 94, 41,166, 5,133, 89,216,254, 68,141,197,223, 25,204,175,163, 66, 59,139,150,236,237, 83,205,119,104, 23, + 60,195, 81,174, 71,122,197,147,235,188,111, 33, 83,212, 1,168,228,107,112,231,198,170,127, 31,162,128, 72, 88,217,100, 69,231, +193, 16, 16,192,104,158, 6, 5,121, 30, 26,133,174,233, 22,122,150,194,179,231, 31,195,185,133,207, 38,105,143,130, 36, 39, 34, +122, 57,240, 68, 79, 81,116, 14,133, 8, 39,187, 94, 2, 31,188, 68,169, 30,148,141, 5,159,121,149, 16, 81,221, 9,188,146, 24, +106,183, 31,148,135,211, 26, 23, 69, 32,101,170,175,123, 18, 12,239, 52, 14, 24, 71, 11,107,117,131,228,116, 68,177,154, 65, 90, + 70,239,185,165,189,101, 89,111,198,148,113, 62, 95, 48, 95,230, 26,174,146,229,251,140,221,110,191,236,249,183,155, 9,227,233, +130,217, 7,172,158, 19,223, 72, 19,230,213, 99,208,168, 5, 98,206,226, 91, 55, 66, 86, 85, 45, 20,136,136,217,121, 70,107, 24, +165, 16, 17, 49,144, 98,161,177,176,249,139, 6, 35,102,158, 60,162,123,207,203, 74,245, 58,187, 49,131, 96, 96,117,155, 34,165, +220,222,231,148, 89,173, 30, 51,113,218, 97, 10,200, 41, 86,184, 89, 11,114,233,186,122,233,152, 11, 76, 41, 20,254,187, 92,232, + 21,161, 44, 99,111,116,177,188,101,188,159, 69,255, 83, 10,141,246, 76,168,122,161, 87,132,112,105,100, 85,211,207,160, 23,186, +149, 75, 93,166, 99,163, 53,176, 98, 89,165, 46,144,173,191, 59,171,141, 79, 53, 75, 95,238,156, 47,213, 62, 41,138, 55, 77,189, +230,163, 83,182, 41,234,138, 1, 41, 26, 40,115,212,110,206, 48, 21, 57,154,249,165,201,221, 30,228,106,148, 33,197, 64,238,162, +222,250,240, 15, 82,141,129, 28, 51,119,159,236,239,107,160,135, 78,159,143,101, 93, 17,115,194,243,251,123, 28, 15, 7,124,254, +249, 79,112, 58,159,241,248,250, 45, 70,137, 87,188,127,246, 12,209, 59,124,243,205, 55,184,127,118, 15,157, 19,242, 49, 85,166, +248,219,167, 19, 70,163, 56, 86,114,117,216,140, 6,171, 11,208, 74, 97,204, 28,187, 58,142, 35,156,115, 32, 0, 55,155, 1, 79, +199, 19,126,242,217, 79,177,174, 75, 3, 80,132,128, 56, 88, 88,201, 69,231,240, 24,146,253,144,146, 49, 15,160,192,136, 64,181, +240,235,165,228,131,146, 42,186, 16,208, 57, 35, 44, 43,158,221,108,241,238,120,169,149, 99,181,104,149,167, 92, 48,177, 73,138, +138,154,177, 77,140,161, 76,242,247, 71, 25,161,217, 97, 4,114,194,225,116,196, 48,140,184,191,185,129,209, 26, 11, 41, 44,203, +140,239, 94,191,197,198, 50, 39, 95, 17, 23, 57, 57, 7, 30,147,122, 22, 91, 45,203, 42, 62, 74,131,203,124, 70,130, 70, 78,129, +199, 71, 49, 32, 56,199, 43, 0, 17,102, 37,137,118, 44,213,107, 92, 56,101,174, 28,206,165,111, 44, 93,150,243, 71,246,178,102, + 96,183,217, 2, 41, 66, 41,205, 41, 98,214, 98,148,162,139, 81,139,185,218, 82, 70,197, 85, 40,231,156,139, 99, 33, 71,132,144, + 68,112,166,152,131,175, 20, 86,199, 66, 71,154,184,152, 58, 28,142, 48,214,226,116,186, 64, 33,227,102, 51, 97,245, 12,178, 25, +134, 1,137, 44,182,211,196,185,218,210, 85,251, 8, 28, 87,143,152, 86,254,204,103, 84,181,184,214, 10,251,237, 22, 91,165, 65, + 72,188,206,209, 3, 92, 98,155, 38,233,194,131, 39, 65,178, 18, 84, 22, 11, 19, 17,146, 68, 59,150,157,233,199, 95,252, 41, 62, +249,248, 37,254,223,255,231,255,128, 85,192, 31,190,252, 7,196,156,241,236,197, 75, 32, 5,188,252,244, 51,188,122,245,157, 84, +232, 81,188,170,213,240,212, 17,165,122, 64, 71,139,175, 42, 33, 61, 84, 32, 82,170,137,108,128,198,142,238, 21,223, 87, 97, 16, +117,103,153, 59, 97, 81,167,205,238,198,160,170,252, 89, 25,209, 91,165, 49, 88,177, 31, 5, 22,200,213,168,102, 2,180,230, 73, +149,151,207, 11, 17,115,247,163,119, 18,179,137, 42, 50,227, 85, 66,110,140,116, 97, 56,220,222, 61,135,182, 3, 79, 39, 82, 98, +241, 97,104,194,169,242, 99,232,210,140, 72,231, 25,130,231,148,198, 68, 80, 70, 35, 69, 94,167, 52, 27, 21,143, 77,179,172, 11, +229,182, 99,167, 66, 82,200, 68, 88, 83,134,210, 36, 54, 74, 57,176,165, 24, 47,132,200, 40,142,158, 39, 98,214,254, 56,114, 39, +191,221, 78,108,197, 84,212,241,192,203, 33, 44,184,234, 4,204,243, 82, 87, 47, 41, 38, 28, 79, 39,129,159,176,235, 33,146, 66, + 68,170, 23,137,214, 74,190, 38,255,204,207,110,118, 88,222, 61,129,180,170,121,224, 49, 49,148,107, 48, 74, 20,236,162, 54,175, + 26,135,102,119, 99,147,135,194,150, 20, 82, 72, 24, 20, 97,208, 26,131, 97,228,112,206,153,249,255, 66, 14, 85, 31, 36,139,149, + 80,163, 84,149,229, 60,150, 15, 84,183,210,205,235, 45,133, 94,130, 22,113,175, 7, 74, 92,173, 82,160,174,200,170, 81,223,185, + 7,222,176, 8, 77, 43, 37, 52,203, 40, 80,151, 78,200,157, 75, 88, 27, 73, 46, 3,239,236,179, 64,204,120,122,214,207,173, 21, +148,106,172,244, 10, 96,162, 30,199,219,249,206,202,231, 53, 95, 27,230, 6,195,110,139, 97, 48,149,231,208,243, 94, 74,180,111, +161,127,170, 92,138,187, 22, 38, 85, 92, 84, 84,214,118,157,181,173, 88,229,170,117,174,144, 21, 37,194, 55, 75,190,123, 76, 9, +166,224, 96, 81, 87, 64,185,138, 84, 62,140,229,164,235,184,236,102,241,233,114,182,145,129,243,229,130, 65,177, 64,230,213,187, +247, 87, 21, 87,169,200,207,231, 19,180,182, 8, 41,224,249,199,159,224,116, 60,226,229,167,159,226,124, 62,195,199, 92,199, 70, +203,186,226,238,102,143,249,116,130, 15, 14,199,243,140,237,200, 17,120, 75,140,208,138,115,208, 99,140, 88, 29, 43,205,125,136, +240,145, 11, 11, 64, 65,143, 22,163, 81, 32,109,224,206,103,164, 20,113, 57,159,171, 69, 97, 24, 7,120, 63,194, 14, 28, 38,227, + 36,242, 82, 73,220, 95,161, 5,229,200, 86,132, 24, 69,213,158,129,117, 89,112,185, 92,164,115,160,234, 79,245,171,195,222, 26, + 92,132, 23,206,227, 71, 85, 88,147, 8, 98, 73, 42,158,199, 50, 70, 85,138, 69, 78, 10,128,119,107, 21,204,173,203, 5,118,152, +176, 96,193,205,118,131,199,227, 9,251,205,132,176,206, 80, 74,225,241,233, 8,251,236, 22,131,213,140,110, 93,206, 80,224,206, +217,133, 12,173, 9,231,203,140,148, 18,156, 23,165,113,249,218,242, 36,104,226, 61,169,210, 13, 75, 91, 20,224,133, 39,205,196, + 37,230,139, 71, 17,103, 89,107,171, 82, 56,202,254,104, 59, 14, 34, 50,226, 3,113,144, 4,175, 65, 19,156, 95, 97,181, 18, 81, + 23,139,101, 40, 39,140,195, 84, 89,236,132,140,253,198,226,178,240,195,120, 58,173,184,187,187,129, 53,252,193,118,235, 10, 23, + 2,150,203,140,140, 25,187,221,150, 99,111, 9, 80, 70,195,173, 11,180, 68, 88, 62, 61, 62, 96, 24, 55,120, 58,159, 17, 51, 7, + 10,109, 4, 98,193,106,222, 92,199, 93, 73, 20,190,196, 32,119,100,240,186, 71,155, 17,201,157,197,162, 86, 32, 25, 53,246, 2, + 74,177, 51,160,165,100, 1, 80, 19,126,242,197,159,224,251, 63,126,133,249,244,136, 89, 28, 16, 47,127,254,103,216, 76, 91,156, + 78, 7,252,238,219,127,192,180,217,193, 26,141, 21,116, 21,167, 88,187,238,122, 17, 83, 29, 14,182,234,190, 37, 65, 21,243, 87, + 46,222,221, 58, 66, 85,173,125,239,141, 91,181,210,199, 21,156,165,159, 9, 52,124,173,208,215, 20,107,101,202,119, 18, 98, 16, +181,123, 81,239, 83, 85,109,199, 34,240,147,239, 35,228,216,165,172,253, 11, 30,251,202, 76,226,127,247,226,227,207,248, 34, 78, + 76,228, 82,213, 62,213,210,209,202, 33,216, 3,127,178,136, 7,203,197,227,157, 32,124, 99,179,228,130,148,116,121, 16, 30, 64, +100,113, 98,100, 54,129, 86, 37,182,153,199,251,218,104,168,208,212,246, 81, 49,243, 97, 93, 23,217, 83, 43, 33, 31,122, 92,136, +216, 90,105,184,160,157, 70,203, 93,188, 49, 85,132, 87,184,249,239, 31,158,112,190,156, 89,237,157, 18, 30, 30,222, 35, 70, 86, +171,167, 24, 16,164, 16, 40, 64,164,152, 74, 0, 77,130, 82,156, 23,191,223,110,176, 6,110, 18,156,103,235,111,204,204,121,135, + 92,198, 90,243,179,110,149,170, 54, 53, 34,130,209,138, 59,204, 65, 97,171, 53, 12, 1, 86,115,215,105,140,174, 34,189,217, 57, + 92, 92,192, 90,180, 87, 5,126, 82, 2,138,228,235,151, 73,149, 49, 6,148, 51, 38,177, 36,198,106,245,213,194,236, 96,116,184, +234,206, 64, 74,212,184, 3, 31, 4, 73, 18,105,144, 50,156,242, 86, 98,119,235,158,186,227, 61, 80,123, 30,141,182,252, 94,201, +184,189, 23, 99,214,191,185, 20,193,164,174,247,220,249,195,130,184,129, 97, 82, 85,166,183,175, 91,116, 54,197,105,194, 52,190, +150, 90,199,221,109,170,211,168,212,255, 93, 41,212,206,190, 20,244, 81,206, 64,234, 92, 23, 68,169,165,253,137,115,170,159, 32, +100, 1, 67,153,171, 0,238, 2,144, 64,170,108,220,171,196,161,126,158, 80,195, 39,218, 53, 95,237, 61, 82,181,198, 16,240,205, + 15,175,234,136,161, 7, 92,188,122,253, 6,159,125,250, 41,136, 8,175, 95,253, 0,183,174,120,247,246, 13,163, 17,237,132,121, +225,240,148, 97, 28, 49,141, 35,110, 83,196,251,119,239,176,223,237, 49,207, 11,139,136, 60,103,105,175,206,215,186, 98, 94, 61, +175, 18,214, 0,173, 61, 92, 72,176,154,224, 92,144, 14, 68,225,241,241, 17,110,101, 94,246, 48, 77,216,108, 54, 24,134,145,253, +173,118,132, 86, 4, 51,142,188,131, 81, 26,144, 44,246,178,219,114, 33, 96, 94, 22,172, 62,224,233,112,192,225,120,196,229,178, +180,221, 18, 1,161,172, 47,186, 68,157,218, 96, 21, 31,169,188, 94,170,179,213,164,204, 88,200, 40, 74,245, 16,121,123,106, 44, + 23, 50, 33, 68,188, 63, 28, 49,142, 35, 22, 71,216,111, 38,156, 93,192,236, 60,230,213,129, 48, 0,164,176,217, 63,227,157,246, +198, 2, 98, 87, 25, 54, 26,195, 48,177,178, 86,105,172,203, 12,109,121, 71, 94, 86, 1, 89,246,223,195,184,193, 50,159,229,123, + 68,245,142,242, 97,200, 59,104,107, 52, 64,236, 72, 80, 57,177,223, 93, 25, 88, 99,112,120,122,192, 48,140, 80,138,176, 29, 6, +132,196,159, 15, 31, 2,198,193,242,110, 93,254,110, 77, 92,105,206,203, 2, 82, 44,244,113,193,243,148, 65,194, 24,166,113,128, + 19, 76, 99,138, 17,122, 24,120,100,153, 51,182,219, 13, 66, 8,172,147, 32,194,233,114,134, 66,198,110,127,135,243, 60,195, 90, +139,217,173,172,216, 86,132,232, 87, 62,156,193,123, 65, 51,108,176, 92,142, 48,118,228, 20, 38, 81, 60, 23, 71,192, 48,110,113, +190, 28,248,123, 85,170,121,130,175,128, 18, 28,201, 24,147,170, 99,213,187,103, 47, 96,172,198,195,195, 59,158,132, 37,198, 27, +243,154,137,240,195,119, 95,227,197,199, 47,241,209, 71,159,224,183,255,248,183, 53,101, 77, 21, 5,125,119,249, 85,123, 80, 79, +151,234,242, 31,114,238, 16,167,104,110,131, 22,255,136, 46,202,247,199,160,182,162, 90,207,215,254,174,122,120, 89,107, 97, 37, +224, 34,165, 40, 28,252,116,229, 33, 46, 73, 97,213,211, 47,207,125,200, 45,145, 14,185, 71, 96, 72,151,129,166, 0,206, 57,225, +230,238, 57, 54,219,157,164,161,165,230,117, 22,111,175,214, 34,106, 45, 88,213, 10, 91,105, 34, 61,173, 10,179, 63,212,144,170, + 88, 68,109, 68,200,138,174,108,186, 9, 2,141, 81, 90,236,103,132, 20, 51,146, 6, 40, 71, 32,136, 16,201,106,201, 50, 96,124, +111, 18,203,157,182, 26,218,235,122,233,151, 75,222,173, 43, 46,103, 22, 85, 26,107, 49, 12, 28,233, 60, 14, 6, 57, 71, 28, 79, + 71, 60, 61, 29, 5,122,146,176, 92,206,197,104, 8, 72,146, 93,209, 34,149, 25,138,146,100, 56, 37, 78,140,219,221, 22, 15,167, + 75,245,183, 67,115,151,157,114,134, 41,100, 67,186,198,241,148,169,131,181, 3, 70, 77,184,217,108, 96,192,129, 71,131, 49,146, + 34,201, 36,204,152,120,173,117, 90, 22, 60,205, 51, 46, 62, 34,200, 58,181, 36,194,149,220,248, 34, 8, 83,146,108,166, 44,167, + 58,106,217,119,103,112, 51, 64, 72, 44,160,181, 90,138, 20,158, 0, 70,121, 55,106,224,116, 89,201,200, 36, 38,137,168, 56,119, +145,173,117,215, 68,252, 94, 40,161,195, 17,192, 64,175,206,198, 87, 61, 31,153, 47,113,202,101, 15,223, 68,106, 80,249,131,179, + 27,215, 16,157,148,171,120,174, 36,191, 23,216, 18,174, 70,237,168, 86,230,194,162,232,161, 81,232, 10, 54, 66,249, 25,115,135, +215, 37,201,139, 23,207,122, 65, 25, 67,216,247, 49,116,155,254,118, 71, 27,116, 23, 77,181,177,200, 69,147,241, 97,214,115,171, + 24,114, 23, 89,135, 14, 72, 95,188,180, 49,113, 82,217,241, 50, 95,157, 31,229,114,127,245,250, 13, 62,255,244, 19, 88, 59,192, +175, 51,182,219, 13, 14,135, 35, 94,188,120,129,199,195, 17, 55,187, 45,158,142, 39, 14, 10, 89, 87,188,127,255, 14,206, 57,108, +242, 0, 13, 32, 0, 24, 7,139,105,154, 96, 53, 33, 64,193,175, 11,166,193,224,178,122,164, 12,140, 32,196, 16,113,184, 44,216, +141, 6,239,143, 23, 12, 57,227,187, 63,126,135,237,134,179,165, 55,219, 45,166,105,194, 36,121,234,195, 48, 98, 24, 71, 24,239, + 96,237, 8, 45, 30,123,196, 8,196,136, 24, 28, 46,243,140,203,188,224,116, 58,225,237,187,119,120,122, 58, 96,150,209,118, 44, +203,138,114,208,117,112,143, 50,173, 80,212, 52, 9, 74, 18,193, 74,110,116, 77, 28, 34,212,140,236, 32, 0, 18,173, 53,236, 56, + 33,197, 8,231,248,103,220, 77, 35,214,195, 17,218, 24,156,231,165, 59,212, 84, 69, 50, 34, 51,183, 88, 41,141,227,233,192,226, + 20,127,226,209, 99,206, 88,151, 11,239,177, 13,199, 12, 82,138,112, 11,139,182,188, 91,171,247,149, 36,144,198,104, 5, 37,118, + 55, 99,172,164,154, 69, 9,106, 0,206,167, 39,236,183, 91,168, 28,101, 68,141,234, 65,214, 4,204,203,204, 30,117,207, 40,218, +193, 76,204, 5,247, 1,218, 26,104,193,212,134,192,187, 68, 99, 12, 92,136,152,180,173,151,137,150, 72,221,155,155, 29,158,142, + 39,108,167, 9,218,104,172,206,215, 41, 82,140, 30,131, 81,152, 93,198,118, 26,240,120, 60,192,106,219,137,202,196,242,229, 29, + 79, 32, 50, 91,198,148,176, 55,141, 50,152,131,135, 59, 63,225,197,199, 63,193, 31, 95,125, 47, 32, 25,211, 75,119, 68,147,209, + 30,250,226, 82,218,237,247,248,230,235,175,113, 58, 62,177,133, 46,103,124,252,147, 95, 96,191,191,197,111,254,241, 63, 98,154, + 38,252,250, 47,255, 26,127,248,242,159,228,117,166, 38,140,169, 23,181,170,153, 11, 77, 44, 67, 53,148,168,145,227,114,167,121, +201, 87,249,236, 87, 23,124,238,163, 53,187,125,122, 73,249,171, 78, 22, 86,132,219, 34,246, 76, 9,115, 88, 58,123,157, 18, 47, +116,190,178,245,229,171, 62,168,169,225, 83, 23,109,122,117,189, 84,113, 89,194,238,230, 30,219,221,109,237, 58, 74, 19,160, 72, + 85, 91,145, 22, 31,120,193,241, 42,106, 59, 95, 37, 47, 26, 73,172,110,204, 65,104,151,234, 90, 21,196,234,195, 58,226,143,129, + 19, 31,145,203,234, 43, 1, 58, 23, 25, 72,221, 99, 43,109, 42,225, 44,248, 22,179, 27, 17, 17, 83,224,168, 91,173,144, 36,246, + 54,139,147, 71, 41,133,168, 13, 86,231,112, 62,203, 24, 89,243,127, 31,222,191, 7, 41, 35,254,106,246,146, 47,203,204, 93,189, +162, 90, 64, 87, 40, 76, 74,213, 26,104,180, 70, 22, 27, 21, 55, 46, 2,148,138, 9,131,209,112, 33,194, 78, 76,245, 75, 57, 99, +180,230,234, 51,171,133,249,190, 25, 7,220,108, 38, 76,198,192,128,247,195,163,181, 98,253,226,224,172,197, 57,220, 58,135,237, +233,130,135,243, 5,135,117,197,188,186, 42,106,131,172,225, 10,147,131,121,255,156,178,166,141, 17,235, 95, 18, 55, 73,233,240, + 51, 0,141, 36, 2,175, 18, 64,132, 16,234,219, 21, 37,196, 8, 2,111, 42, 43, 74,245, 47,164,200,241,133,206,225, 89,172,221, + 42,221,124,115,121, 48,150,181,123, 94,174,226,100, 85,109,222,187,152,203, 46,157, 61,183, 78, 25,169, 66,125, 84,157,188,100, +153, 36, 65, 68,135,108,145,206,117, 18,139,150, 71,144, 27, 85, 81, 9,236,170,177, 35, 74,238, 75,170,241,217, 16, 18,222, 85, +210, 92, 17, 88,150,114, 79,160,102,166,167, 34,166,130,168,140, 9, 89,229,142,170,131,138,108,164,234,117,101,224,255, 85, 60, + 34,181, 63,159, 84, 70, 10,190,143, 2,175,176, 21,133,140,227,229, 12, 59, 12,112,222, 99,216,236,112,120,122,194,139,231,207, + 16, 99,130, 38, 96,218,108,161,181,193,187,135, 71,108,119, 59, 12,199, 39, 16,177, 2, 62,198,136, 16,131,116, 77, 51, 54,214, +192,110,118,120,251,150, 97, 53,155,145,201,104, 89, 51, 40,225,112, 89,240,252,217,103,248,250,219,111, 97, 1,156, 14, 71, 88, +171, 49, 90,131,237,110,135,221,126,135,221,126,143,237,110,135,237,118,139, 73, 58,248,146, 57,173, 69,125,156,114,130, 95, 86, +156, 79, 71,156, 79, 39,188,123,255, 14,111,222,190,195,249, 50, 51, 57, 78, 78,153,162, 26,101,241,146, 0, 53, 4, 76, 66,170, +216,149, 80, 31,210,222, 75, 73, 29,201, 72,107, 93,131, 61,172, 16,247,120,194, 48,241,190, 58,105,188, 61,156,160,140,169,214, +150,197,121,188,184,221, 74, 48, 12, 79, 46, 50, 17,252, 42,138,245,152,224,252, 69,188,218, 22,126,185,200,174,145,199,204, 57, + 6, 12,155, 29,130, 91,196,166, 97,106,199, 51,136, 0,140,199,209, 22, 57,204, 8,129, 59, 25,173, 13, 8, 9,151, 53, 96, 59, + 88,156,206, 23,220, 77,172, 54,205,193,177,184, 72, 84, 89, 86,236, 67,155,113,144, 49, 19, 97,191,219,241,229,237,189,232, 51, + 52,140, 36, 37, 89,163,235,235, 81,246,200,243,194, 5,204,101, 89,112,179,219, 33,132,136,211,133,255,157,115,158,107,166, 20, +225, 97,161, 40,224,120, 62,194,142, 27,228,228,133,210, 88, 94,223, 4, 91,188,195,200, 76,139, 66,230,128, 29,217,159,127,250, +217,175,112,185, 60, 9, 98, 83,215, 98,172,116,137, 73,242,215,107,138,161,224,101, 31,222,191, 3,153, 19,134,113,130,217,108, +241,209,103, 95, 0, 41,227,219,111,126, 15, 99, 44,166, 97,139,127,254,250, 43,188,121,243,125, 99,159, 11,158, 54,137, 85, 38, +198, 80, 87, 98,218,244,235,155,212,226, 48,187, 43,139,174,151, 99, 29, 4,165, 76,138,114, 45, 18,218, 30,178,169,112,141,140, +103, 99, 98, 97,167,207,249,106,229,166,181,145, 92,106,217, 65,119, 74,224, 30, 85, 75, 93, 83,208, 2, 84,164, 32, 80, 13,183, +154, 82,194,246,230, 22,155,237, 94,194,158, 98,221,197, 42, 34,118, 17,228, 12,163,153,193,175, 20, 97,245,190, 59,208,181, 20, + 96,186,203, 98, 87,136,146, 15, 94,178,236, 11, 96,167, 98,198,229,123, 97, 59, 82,150,231, 48,136,248, 75, 35, 71,209, 7, 40, + 43, 29,169,145,241,114, 99, 33,212, 53, 75,183, 54,163,108,170,128,216,201,179,173,181, 66,134,111,207,181, 60, 83, 72, 25,222, +121,144,226,243, 12, 49,176, 10,220,175, 8, 41,192, 40, 98,110,132,140,155, 51,184,208,175,148, 50,165,249, 96, 15,252,123, 89, +232,198,221,125, 33, 11,198, 18, 5, 44,239,175,238,156, 1, 74, 68,193,163, 29, 48,216, 1,251,205,132, 81, 2,149, 6, 99,120, +205, 34, 35, 94, 31,121, 4, 63,141, 35, 51, 67, 14,192, 42, 81,187, 69,167,224,124,128,143,169,193,198,141,129, 29,140, 20, 67, + 25, 33,121,153,180,104,121,253, 89,206,168,160,219,199, 85,183,215,151, 74,238,130,192,113,114,138, 44,204,147,103, 55,198, 80, + 39,198, 60, 25,177,178,130,137,149, 14, 71, 53, 78,166,233, 48, 42, 24,152,114,109,160,174,241,192,141, 22,152,175, 50,203,133, + 30,168, 4,186,132, 70,150, 36, 36, 68, 31, 43,175,129,167, 15, 93,232,153,168,225,169,155,168, 85, 69,124,241,139, 95, 53,191, +232,130, 90,169,107,160, 43, 1,137,243, 70,202, 84,167,252,153,156, 97,218, 54,191,140,128,115, 29, 3,244,190, 83, 84, 44, 93, + 25,171,169,250,114, 21,147, 62,196, 22, 80, 10,157,105, 26,126,220, 29, 16,167,226, 24, 24, 60, 29, 14,216, 10, 70,214, 45, 51, + 72,189, 64, 88, 87, 12, 70,227,225,253, 91,124,244,209,199,184,187,189,193, 56,109,240,252,207,255, 2, 95,253,254,183, 24,110, +119,248,238,213, 27,217,153, 40, 22,192,236, 54,112,206,225,211,151,159,227,225,253,107, 56,199,106,242,152, 9, 55,183,119, 56, + 60, 61,226,155,239,190,151, 14, 63, 67,223, 61,195,195,227,123,252, 79,255,227,255,140,255,243,223,252,111,120,247,238, 1,131, +209,216,108, 55,124,193,239,118,216,238,119,216,108,119,152, 54, 27, 12,210,101,113,110,116,192,178, 44, 56, 28,143,120,243,250, + 13, 14,135, 19,214, 16, 17, 65,245, 34,175, 43, 76,202,200, 33, 55, 86, 62,218,165, 93,137, 78, 84, 70, 46,205,248, 18, 18,143, +115,188,140, 14,145, 18,214,224,235,206, 38,165, 8, 74,188, 43, 42, 19,146, 82, 9,186,148,112,190, 92,160, 69,200,147, 73,195, +201,222,157,181,138, 12, 73, 9, 76, 54,225,138,118,113, 80,154, 3, 84,236, 48,192, 45, 23,126,199,229, 0,113, 41,137,232, 41, +215,206, 61,184,165,138, 70,172, 28, 82, 90, 25,220,237, 13,142,151, 21,251,137,109, 63, 69, 5,110,140,130, 38,130,213,141, 42, +118,154, 23,140,198, 96,201, 17, 86, 8,123,171,247, 48, 74,195, 14, 3,172,225,143,231,227,211, 1,251,221, 22, 49, 6,216,129, +115,165,207,243,130,232, 3,134,205, 6, 16,126, 60,145, 8,143, 66,192,198, 90,184, 4, 12, 22,200,106,195,254,124,173,176, 4, + 73,165,146, 16,143, 28,131,116, 45, 35, 78,243,185,165, 64,229,132, 28,249,112,126,124,248, 30, 49, 9,118, 85,108, 55, 41,101, +232,148, 5, 22, 67, 53, 24, 36, 22,223,111, 76,240,235, 5, 42,120,232,205, 30,183,207, 62,194,251, 55,175,176, 44,236, 65,214, + 90,131,236,132,199,135,119,112,243,153, 63, 23,154, 42, 98, 84, 41,141, 16, 28,119,195,170, 33, 95, 33,194, 24, 45,182, 62,213, + 65,163,122,181,123, 33,131,149, 46, 62,117,144,234, 22, 55,201,240, 16, 43,106,244, 44,118, 83,159, 98, 29,109, 22, 94,182, 17, +152, 78,148,215, 43, 21,112, 82,206, 87,251,247,126,103,153,107, 64, 75,195,241,169, 14,126,179,221,223, 96,152, 54,226, 44,137, +242, 26,242,215, 53, 74,215, 14,121,178, 67,253, 94,188, 15, 66,198, 3,172,100, 48, 12, 66, 8,140, 49,241, 5, 42,222,249, 82, + 4, 2,153,243,175,229, 34,190, 10,229,145,162, 72, 33, 3, 57,242,238, 63,200,235, 27,121, 23,106,141, 22,214, 0,167, 79, 22, +226, 96, 95,188,151,233,138,207, 94,124,252, 9, 33, 7,238,182,147,174,207, 52, 8, 80, 65,198,218, 33,192, 7, 87, 5,116,148, + 2, 20, 18,144, 2, 66, 10, 80,214, 86, 67, 87, 33,101,150,159,177,106,113,196,219,173, 20,199, 93, 39,207,157,188,147,224,145, +197, 49, 77,178,172, 35,248, 57,105, 44,116, 35,255,108,148,194, 52,142,216, 12, 3, 70,163, 97,149,230,137,156,228, 24,152,200, + 59,246, 65, 58,240, 16, 35, 11,148,125, 96, 98, 36, 18, 79,214, 68,240, 7,120, 88,101, 36,234, 21,194,226, 72,141, 83,160, 13, +178, 15,165,218,227, 12, 15,109, 17, 3,251,240,165, 3, 68, 10,252, 30,164, 28,235,221,170, 84,217, 93,179,243, 65,105,110, 0, +136, 20,211,225,228,115, 73, 61, 31,160,112,223,175, 2,120,202,104,191,165,166, 16,229,171, 12,129, 86, 38, 55,126, 75,213,161, +105,177,112, 18, 65, 83,135, 11,239, 98,107,209, 11,224,196, 41,150, 83,172, 29,122,155, 98,118, 60,247, 26, 37, 91, 38,186, 45, +104, 77, 56,135,204,138,145,115, 1, 89,203, 62, 61, 87, 57,183,220,215,229, 98, 33, 57,136, 59, 5, 98,141, 86,197, 85,130,209, +213,124,190, 88, 1, 50,163, 12,159,221,108,113, 56,159, 27,118,175, 74,239, 91, 37,246, 31,254,211,223,227,175,254,139,255, 12, +199,239,191,195,237,243, 23,248,234,171,223,227,254,217,115, 76,227,136,103,207, 70,204,203,130,253,110, 11,231, 28, 14,139,199, +175,255,242,191,196,229,240,128,243,233,132,243,188, 96,245, 17, 90, 1,135,195, 1, 32, 30,255, 25, 51,112,146,155,101, 66,209, +124, 62,193, 24,139, 23, 47, 94, 84, 48, 69,112,172,190, 85,198, 98, 73, 18, 80,224, 60,176, 6,216,199, 3, 54, 90, 99, 55, 24, + 12,155, 9,211, 52, 97,156,166, 58, 26, 69,206, 88,150, 21,167,211, 9,135,227, 9,139,247,213, 70, 19,168,236,150,168,249,125, + 73, 73, 86, 48, 71, 48,146,248,117,139, 32,164, 64, 66, 82,110,185,196, 70,196, 39,170,203,117, 46,249,200,138, 8, 26,169, 38, + 23, 25,109, 26,202, 82,170,215,139, 3,172, 78, 98,205, 81,226, 66,200, 80,138, 69,114,229,205, 12,158,119,235,118,152,176,172, + 51,148,160,118,215,249, 12,101, 71,238,138,141, 69,188,156, 0,109,144,114,104,251,127, 36,144, 98, 97, 80,150,228, 49, 78, 50, +226, 3,122, 9, 10,163,229,195,245,102,187, 5, 64, 24, 6, 78, 67, 83, 90, 33,134,136, 73,198,129, 38, 51,168, 34, 4,177, 10, +198, 8,171, 20, 92, 8,149,220,118, 60,157,249, 32,200, 9, 15, 79, 7,172, 94, 14,178, 49, 35, 81,170,238,129, 40, 31,110, 82, + 26, 58, 19,230,101,198, 96, 71,246, 34, 59,119,149,149,205, 54, 39,170, 15,204, 96, 71,246,189, 6, 15,173, 13,124,112, 72, 57, +227,211,143,127,134,239,191,255,170, 10,141,216,174,212,117,127,162, 76, 85, 42,201,197,206,223, 67,240, 14,201,123,108,136,240, +195, 55, 95, 34,172, 51,251,190,149, 2, 13, 27,156,206, 71,172,151, 35, 6,173, 36,134, 82,213,177,122, 81, 68,215, 66,162, 4, +167, 84,129, 18, 33, 38, 92,177, 36, 26,251, 32, 95, 69,160, 10,172,176,250,191, 89,189,142,154,116, 85,194, 86,202, 63, 43, 41, +188, 99,106,118, 87, 34, 85, 17,151, 94, 4,146,245, 34, 47, 14, 26,186, 90,180,161, 90, 95,186, 67, 42, 3,184,189,125,134,105, +183,151, 17,123, 18,198, 55,119,219,253, 56,211, 16,129,140,134, 49, 34,142, 10, 28,175, 28, 51, 79,243, 42,119, 95,224, 40,101, + 26, 80,242,196, 11,147, 92,107, 45, 43,175, 98,101,147,230, 35, 21,165,244,117, 92,108, 9,114,210,162, 40, 47,207,125,121,111, +178, 40,241,139,207,153,227, 85, 11, 34, 85, 46, 3,173,153, 51,145,149,136,104, 1,146, 11,212,203, 78,254,124, 57,241, 51, 88, +109,136, 17, 38,115,215,237, 67,225,131,215,152, 16,153,142, 20,146, 24,137, 80,149,191, 23, 83,244, 33,162,180,247,129, 5,195, +140, 42,102, 54, 71,148, 11,149,247,224,186, 46,139,147, 8, 86,171,200, 83,105, 64, 43,228, 10, 8,210, 80, 8,208,153,195,149, +238,182, 91,184, 91,143,211,188, 96, 9, 44, 8, 84,158, 45,105,193, 11,129, 50, 19,131,187, 98,108,175,177, 32,137, 11,168, 39, + 75,170, 29, 4, 54,163, 52, 71,191, 90, 99, 17,235, 93, 28, 91,110,125,209,110, 9,227,127, 17,161,171, 22, 23, 82, 12, 45, 66, + 25, 18,125,172,184, 66,230, 95, 35,127,176, 42,190,214,149,212, 69, 82,238, 44,219, 31, 76,161,203,243,196,223, 51,175, 19,203, +197,174,192,231, 14,149,208,210,226,187, 47,211, 52,234,156, 37, 10, 18,198,130,235,128,165,146,244, 41,247,109,121,132,170, 13, + 78, 46, 97, 85, 56,251,133, 9,145, 19,114,140,200,117,167, 94,227, 5, 83,219, 35,100,170, 6,254,171,150,191,131,201, 55, 53, +110,169,107, 84, 83,235,166,140,127,248,237,151, 87,240,128, 92,101,249,185, 34, 45,181, 54,176,195,128, 28, 2,238,239,239,241, +199,111,190, 1,140,197,159,252,242,231,172,104, 95, 87,236,111,110, 96,150, 21,255,252,245,215,208, 72,194, 57,102, 60,163, 22, + 2, 90, 1,148, 12,118,128, 25, 25, 37, 91, 96, 0, 33, 38,188,121,243,154,141,249,214, 96, 26, 71, 60,255,232, 83,252,237,191, +251,183,248,228, 39, 63,131,214, 26,222, 59,188,123,253, 26,206,175,112, 62,224,193, 69,228,211,130, 73, 1, 91,173,152, 23, 47, + 73, 62,206, 71,248, 24,133,102,197, 85,154,151,125, 71, 4, 71,234, 33,101,248, 84,236, 35,185, 90, 17,174,240,145,221,232, 46, +165,212,197, 96, 2, 65,126,159,209, 13, 39, 88,201,125,245, 13,103,175,166, 18, 68, 38, 41, 13,149, 18,103,254,138, 47, 30, 86, +213, 52, 57,146, 14, 35,138, 26,211, 90,246,191, 59,191, 86, 11,197,122, 57, 65,141, 27,248,117,134,177, 19,206,167, 35,110,110, +159, 97,157, 79, 8, 41, 99,210,134,215, 16, 17, 48, 36,160,160,204,194,176, 97,224,109,206,118,183, 3, 69, 15, 31, 34,246,155, + 17,243,178, 98,187,153, 48, 89,131, 20,184,224, 90,211, 10,100,224, 36,220,129,105,179,197,121,158, 37,183,216,113, 78, 48, 50, + 46,107,192,110, 26,112, 88, 29,148,136, 77,172, 53,112, 62, 98,179,153,176, 58, 7, 61,141,240, 33,192,249,128,197,121,220,109, + 70, 12, 90,193, 69,224,238,246, 6,203,194, 46, 2,206, 18, 16,180,171, 36,172,141,102, 15,231, 23,152,114,236,144, 70, 66,132, + 15, 14, 25,128, 53, 3,140, 29,224,188,131, 81,165,112,109, 7, 69, 46, 59, 62,105, 37, 89, 5,207, 23,134, 34,238,246,151,249, + 36,236,110,222, 9, 7, 31,145, 37,215, 96, 59, 90, 17, 24,201,158,184,236,127,101, 21, 19, 99,106,121,235,130,103,101,223,120, +108,123,245, 78, 9,143,206,231, 90, 96, 22,138,218,211,217,232,102,185, 97,112,113,149, 4, 42, 99,240,150, 39,159,114,198, 42, +194,197, 43,145, 15, 82, 23,228,148,127,156,146,170,122,187,125,194,237,253, 11, 76,219,125,169, 64,248, 60,137, 44,124,178, 70, +215,140,112,107,141,116,123,188, 39, 37,185,248, 93, 8,240,194,183, 55,186,192, 68, 24, 22,131, 20,234,202, 41,198, 70,185, 43, + 7,110,202,220, 41,199,196,133,152,210, 12, 94, 42,156,252, 38, 54,226, 21, 75,190, 10,217, 96,173,133, 21, 78, 58,201,206,148, +192, 19, 40, 66, 66,140,165, 24, 40,100,202,166,112,143, 50,153,225,125,188,170, 93,247,124, 62, 49,238,183,122,172, 19, 12, 37, + 9, 12,241, 2, 87,146,206,150,168,218,253,248,124,141, 53, 6, 55,165,140, 80, 35,122,149,144, 12,121, 69, 19,100,162,148,115, + 3,186,104, 81,247,247,194,175, 16, 56, 42, 58, 12,137, 47, 66,169,201, 98,230,198,137, 99, 85, 11,209, 78, 99,191,221,226,217, +110,139,195,204,148, 73,165, 8,227, 56, 9, 66,149,213,234, 92,132, 17, 11,238,100,154, 81, 26, 16,200, 10, 44,134, 36,118, 74, + 89,103, 25, 13,157,129,236, 75,146, 97,187,136,179,156,153,204,246,183, 18,198,100, 90,186,154,124,222, 9, 5,247,160,164, 89, +189, 6,216, 20,107, 49, 41, 89, 69,101,234,226,132,243,255,111,176, 79,139, 25, 46,113,167,242,122,138,239,159,196,218,217, 79, + 3,122,114, 31,114,234, 62, 87,168,171,236,230,205,191,246,164,231,110,236,207,176, 26,197,105,208,164,106, 97, 84,139,105,185, +143, 19, 1,166, 8,100,138,206,254, 71, 65,113, 29,121, 62,119, 75,123, 92,141,230,219,222, 34, 83,198, 48, 12,200, 4,252,240, +238,125,135,175, 42, 56,196,212, 88,183, 32,252,246,203,223,227,243, 79, 63,198,188, 44, 8,222,227,139, 47,126,130,183, 15, 39, +252,240,234, 13, 62,122,254, 12,222,123, 28,143, 39, 56,183,226,249,139,143,240,254,205,247,216,110,119, 32,165,177, 11, 91, 9, +144, 89, 16,101,188,179, 46, 51,140, 86,136,226, 33, 45, 9, 60,101, 28,147, 98,192,233,228,161,213, 5, 79,143,252, 54,155, 98, + 79,210, 6,217,185, 43, 40,192, 37, 18, 78, 62, 34,102, 95,247, 40,150,128,231,187, 9, 58,120,132,152,225, 18, 33,228,140, 84, +130, 14, 4, 21, 91, 5,136,124,140,212, 78,157, 72, 65, 33,117,161, 6,237, 13, 45,226, 38,173,168, 38,120,149,176,143, 98, 25, + 73,208,136,209,193, 88, 91,161, 54, 74, 41,184,249,130, 97,154,170, 40, 13, 34,180, 41, 7, 80, 76, 17,118,220, 32,198,192,251, +183, 24, 5,237,155,171,250, 61, 2, 64,240, 32, 40, 56,183,192,218, 17,235,229, 4,109, 13,146, 91, 17,201,178, 24,133, 12,180, +116,200,138, 20,144, 3,230,213, 99, 51,104,168, 28,112,246, 17,207,119, 35,114,226, 29,154, 15,124,192,164,156,177, 44, 14,171, +247,184,217,239, 48, 70, 38,215, 93,230,153,169,112,146,154, 54,207, 11, 62,250,232, 5, 98, 60, 98, 89,153,126,231,156, 67, 72, + 73,236, 71,124,225, 77,195,128,195,233, 12,163, 21,230,197, 85,198, 55,217, 45, 84, 94,176, 58, 62,180, 41,103,152, 2,135,144, + 7, 33, 5,143, 8, 5,107, 39, 94,101, 40, 45, 27,170, 86,100,101, 9,124, 40, 40,217, 34,206,162,106,165, 34,153,190, 16,114, +226,247, 77, 19, 33,138,211,130,192,227,226, 50,225, 40,128,167,148,100, 98, 85,118,111, 50,114, 46,130,160,162,250,174,214, 82, +121,132,130,164,118,149, 81, 33,100, 55,138,210,209,151, 63, 39, 56,207,162, 10,207,200, 53, 24, 38, 95,237,245, 10, 21,171,101, + 63,243, 37,168, 68,187,146,170,109,142,208, 67, 47,210, 7, 14, 0, 18, 79, 90,249, 37,255, 34, 33, 97,127,115,199, 2, 56,112, + 66,157, 82,141,227,205,150, 70, 96,180,188,171, 31, 44,187,102,148,150,142, 82,188,227,101,188,206,171, 27,131,113, 28,161,181, +149,194,214,201, 78, 92,210,235,132, 55,223,200, 41,169,250,133, 21, 41, 94, 37,116,185,243,195, 96,225, 99,172, 35,250,166, 16, +167,234,192, 80,117,165,145,171, 24,210,202,168,191,124,173,156, 24,110, 3, 72,161,219,251,143, 35,147, 1, 67, 10,181, 25,242, +206,241, 46, 93, 94,219,173, 16, 99,180,192,153,138,117, 74,107, 5,157,116,157,118, 52, 69,117,148,117, 66, 66, 74, 60,209, 42, + 69, 59, 7, 90,145,116,235, 10, 86,183,144, 43,165,196,231,140, 70, 37,115, 62, 96, 94, 87,104, 99,144,136, 96, 97,196, 47, 13, + 40, 89, 67, 4,207,152,111,102,191, 3,251,221, 22,187,195, 17,143, 2,250, 74,164,235, 62,159,114, 20,111,184,146,188,137, 92, + 93, 8, 21,141, 74,138, 27, 16, 2, 84, 74,208, 57,203,228, 49, 3, 8, 40,241,240,138,168,114, 31, 32,153, 34,198, 88,104,189, +136,136, 56, 94,161,118,155,134,171,203,175,151, 78, 87,245,200, 89,124,112,143, 81,135, 69, 46,147, 46,153,166,150,215,173,137, +211,155,173,212,200,153,163,144, 17,156,135,182,186,174, 15,138,128,173, 38,253, 81,113,151,245,105,170, 34, 80, 87, 84,127,134, + 26, 5,156,113,165,202, 47, 35,132, 74,148,168,163,123, 98,104,125, 74, 48,140,203,149,202,131,250, 49, 95, 91,216, 23, 91, 12, +165,198,151,189,142,130,235,200, 56,224, 29,151,145, 67,228,202,215, 78,109,132,152,101,124,121, 56, 95,176, 63,157,113,127,123, +203, 22,182,205, 14,239,191,250,103,220,223,221,227,253,227, 19,126,246,211,207,241,253,247,223, 99,220,236,160,173,197,179, 23, + 31, 97,176, 3,222,189,254, 35, 82, 76,152,125,146, 17, 13,199,109,110, 55, 19,179,204,197,182,149, 50, 42,142,146, 10, 92, 83, + 94,216,148,178, 28,224,124,208,172, 62,226,102, 51, 98, 93,157, 0,101, 74,166,112,174,193,244, 94,242,163,222, 5,194, 60, 23, + 8, 11,255, 62,149, 51, 34, 20,166,205, 6, 58, 72,231,128, 92, 15, 92,234,114,184,155, 61, 74, 93,113,129, 21, 21,159,186,170, + 74,223, 44, 29,123,148,221, 76,202, 25,163,209, 72, 50, 66,215,162, 64,215,214, 50,152, 39, 39,172,242,245,140, 29, 68, 72,145, +161,141,129, 95,103,142, 41,141, 65, 84,162,128, 53, 22, 33,242,207, 57,109,247,112,243, 25, 81,114,173, 65,192, 52,140, 56, 93, +206,184,189,185,193,188, 44,184,204, 23, 86,249,202,222, 19, 57, 84, 30, 56,100,188,185, 27, 52, 66, 6,118,131,129, 2, 48,140, + 3, 23, 23,138, 15,194,209, 26, 60,157, 0,219,254, 44, 0, 0, 32, 0, 73, 68, 65, 84,206,156,208, 54, 88,220,222,220, 64,157, +103,236,110,182, 88,102,182, 11,158, 78, 71, 4, 9,251,240,129, 49,191,175,223,190,227,181,139, 86, 56, 10, 35,123, 94,121, 98, + 16, 82,134, 22, 63,243,124, 62, 96,220,236,225,151, 11, 86,231, 49, 78, 27,204,231, 51,180, 70, 77, 96,227, 41, 79, 64,136,190, +182,149, 41, 71, 14,232, 80,108, 31, 52, 0,158, 30, 95, 33,229, 4, 67,154, 47, 94,209, 75, 80, 93,149, 48, 68,136,148,226, 61, +188,226, 20,195, 92, 98, 74, 69,168,149,147, 92,254,221,222, 44, 85, 44,102,170,151,106, 74,205,254,169, 74, 71, 44,255,203,123, +234,114, 24,137, 31,215, 88, 94,167, 4, 39,187,243, 62,181, 41, 95, 7,184,228,230,213,102,113, 81, 99,179, 3,101,228,158,132, +110,149,174,182,121, 85, 79,147,210,135, 1,209,210, 26,113,196, 99, 57, 47,166,205, 22,187,219,123,233, 38,163,140, 26,115,139, +232, 36,192, 71,126,255, 9, 25,211,192, 41, 93,236,249,229,231,195, 24, 13,231, 19,156,243,146,230,165, 27, 94,122,185,112, 23, + 89,158, 11,185,204,180,136, 82,181, 92,210,181, 51, 18, 95,118,121,111, 33,227,100, 2, 95,208, 73, 68,101,197,142, 70,196, 35, +110, 45,107,157,226,253, 7,177,245, 75,137,157,202,139,189, 51,196, 8,107,153,111,177,134, 88, 35,134, 99, 2,160,115,103,251, + 2,140, 2,188,155, 17, 98,172, 77,196,126,216,201, 36,202,178,197, 43, 37,113, 82, 16,116,226,244,199, 16,228,243,137,230,102, +200, 37,130, 51, 37,104,165, 69, 47,146,234,100, 47,196, 84,255,174,162, 84, 87, 53,226, 87, 46,245,192,151, 58,105,133,144, 51, +236, 96,101, 84, 47, 29, 98,206,136,129, 49,220, 41, 69,206,104, 39,194,237,118,131,211,225, 8, 50, 26, 67, 2, 54,155, 9,206, + 7,196,245, 34, 19, 1,213,162,121,139,115, 35,101,144, 92,124, 62,164,154,236, 86, 10,110,254, 30,121,133, 85, 24,243, 41,179, +215, 93,139, 93,173,128,127, 98,232,128, 71,185, 93,236, 41, 43, 73,204,108,219,226,182, 68,111,221,124,203, 49, 47,171, 43,170, +187, 42, 42, 69,181, 36,236, 21,243, 99,209,165, 68, 97, 11, 20,246,128,146, 21,176,150,137, 37,170, 79, 61,182,244, 63,185, 67, +115,191,211,239, 98,214,171,188,170,122, 88,164, 24,168,159,133, 92, 97, 83,170, 49,151,249,110,149,194,206,148, 11,165, 66, 38, +240, 65,248,251, 85,102,171,232, 26, 83,251, 29, 21,131,216, 25,176,135,193, 98, 71, 93,133,241, 35, 83,108,219,193,167, 24,241, +240,116,196,199,207,159, 99, 62,159, 96,141,197,221,221, 61, 54,155, 13, 78,231, 19,150,101,197,139,231, 47,240,234,221, 59, 0, +192, 71,207,238,241,135,175,190, 68,112, 43,238,110,111,240,201,142,224,226, 6,203, 60,227,238,102,135,211,249,130, 36,148, 52, + 3,224,178,250,166, 78,141, 12, 87, 41,170,198, 44, 31,148,114, 24, 12,198,224,102,191,195,179,219, 27,196, 20,113,185, 44, 56, + 93,102,184, 28, 43, 92,135, 18,119, 63,206, 57,244,105,121, 73, 58,241, 44, 86, 7,165, 50,200, 42, 57, 24, 60, 87,248,146, 54, +148, 58, 46,124, 57,127,217,218,150,234,138,162, 38,221,137, 66, 53,203, 33, 82,132, 92, 40, 8, 83,146, 76,100, 98, 75, 77,206, + 76,197,163,228,121,126,150, 99,205, 69, 46, 65, 48, 33,114,165,184,172, 11,198,113,132,247, 14,218,110, 16,253,130,224,207,200, + 68,176,150,131,114,180, 34,204,235, 10, 99,216,215, 30,188,231,196, 38,197, 85,183,210, 22, 17, 4, 3, 94, 55,164, 53,214, 75, +226,229,102, 18,124,162, 65,146, 32,148, 65, 19,134,113,196,225,112,196, 48, 16,116,206,152,166, 17, 86,139,157, 4, 36, 29,187, +194,102,218,224,253,211, 19,140,102,251,212,195,211, 19,172,101,123,140, 15, 1,214,176, 40,111, 48,138, 89, 5, 68, 24,149, 66, + 8, 17,219,253,158,137,116, 49, 98,119,115,139,199,167, 71, 12,166,113,161,167,105,199, 59,201, 36,163, 84,133,170,190, 46,249, +222,153,120, 15,106,204, 80,199,100, 41,103, 88,194, 85,245,207,233,119, 90, 62, 31, 90, 98,116,249,194,247, 34,190, 42,162,157, + 16, 89,116,216, 86, 94,252,144,150,162,173, 60, 67,124,184,245,105, 13,237, 51,211,128, 28,210,165, 43, 18,144, 74,174, 99,246, + 98, 25,138, 41,139, 48,167, 77,130,148,184, 80, 74,183, 26,139, 44, 55,149,130,183, 75,182,202,215,144,232, 90, 20,252,232, 63, +109, 34, 96,140,197,205,221,243,166, 60,151,239,161, 48,199, 73, 78,212, 20, 66,101, 7, 24,177, 87,169, 24,144, 18, 97, 51,141, +146,162,229,101,136,168,161,173, 68, 62,135, 85,188,239, 25, 41, 82,133, 55, 21, 37,114, 9,186, 1, 50,143, 43, 37,122,139, 45, + 92,237, 61,179, 70,215, 81,191,210,242,204,130,129, 46,137,171,132,106, 97, 83,242, 12, 26, 37, 5,131, 4,163, 68,153, 56,148, + 49,190, 22,182,120,146,181, 73, 12, 17, 33,129, 29,224, 49,114, 19, 17, 35,148,102,209, 33,167, 63,138,163, 33,120,140,219, 9, +227, 56,114,145, 23, 73,128, 63,133, 22, 23,107,164,111,204, 36,121,247,185,122,151,235, 94, 88, 17, 40,181,130, 38, 36, 6,200, +132, 16,129, 17,114, 22, 93,219, 11, 83,202, 88,156,231, 92, 4, 41, 40,180,228, 97,144,164,172,165,200,107, 71,183, 44,188,190, + 72, 9, 70,107, 88, 89,165, 42,226, 8,101, 46,214, 36,222, 84,107, 97, 4, 72,167,173, 24,179,173,165,177,137, 57, 35, 5,118, + 91,105,207,231,118,195, 4, 19,136,146,128,115, 80,145,175,144,212,195,152,120,228, 78, 87,147,114,193,196, 42,142,120,174, 11, +118,228,234,117,167,162,123,168, 12,157, 84, 47,113, 94, 19, 36,212, 13,124,110, 66,228,178, 53, 74, 37, 81, 49,177,110,161, 80, + 60,181,208, 84,147,160,113,115, 74,157, 71, 94, 6, 7, 37, 1,224,195,196, 63, 69,232, 31, 45,254, 53, 71,203, 86,160, 84,254, +144,243,150,175,117, 45,242,186,153,154,200, 68,248,241, 3,140, 54,242,224,106, 48,117,151,247,135,250,251, 92, 99,129,181, 82, + 28,137, 90,197, 2,169, 2, 6, 72, 1, 57,166, 43,170,213,188,174, 56,158,207,248,228,147, 79,240, 79,255,248, 15, 48,214,224, + 50, 3,203,188,224,135, 55,111,112,179,221,226,114, 58,227,238,246, 30,239, 30, 30,241,236,238, 22,199,227, 1, 57,115,144,193, + 15,111, 56,108,227,249,253, 45,140,230,100,183, 67, 10,252, 48,169, 80, 49,124, 33,202, 1,171, 50, 44,177,253,131,247,214,220, + 17,236,167, 17, 95,124,254,146,187,246,101,133,243, 30,171,115,112,222, 99,158, 23, 60,157,103, 92, 86,135, 97, 26, 48,159,151, + 42,108, 98, 36, 33,191, 35,251,205, 14, 65, 34, 71, 75,146, 84,240, 78, 62, 86,170, 94,222, 68,157,207,175,218,216, 84, 83, 47, +139, 15,149, 36,119,154,186,220,222,162, 71,168,226,189,178,155,145,135, 56, 6, 95, 15,173,146,120,230, 67,224,160, 17, 73, 4, + 99,101,188,149, 76, 98, 3, 77, 25, 89,196,112, 90, 41,248, 16,184,251,245, 78,186,195,146, 73,200,135,112, 42,233,114,209, 67, +105,139,213,123,220,109, 6, 92, 60,225,197,118,192,251,243,204, 10,242, 12,172,206,195, 90, 43, 2, 70,233,128,164,195,222, 76, + 3,199, 71, 26, 30,129,166, 12,134,200,164,140,119, 79, 7, 4, 31,144,146, 97,181,126,193, 92,150,241,121, 12, 32,133, 10,215, +200, 57, 99, 51, 50,220,227,116, 58, 33,103,194,118,183,199,188, 58,102,192, 23,241, 89, 6, 39,117,169, 38,142,138, 41,202,238, + 54, 85, 33, 74, 25,103, 59,183,212,125,117,146,220,236, 50, 58, 55,196,214, 46, 2, 48, 24, 3,159, 25, 57, 26, 35,131,145,202, +184, 54,150,139,134, 32, 74,104,238,218,147,112,219,181,230, 74, 59, 22,184, 8,250,241, 95,211,179,148,180,187, 44, 92,235,154, + 26, 86,214, 72,229,130,136,237,107,215, 96,152, 46, 76, 40,215,196,183, 46,212,163,246, 32,109,199,220,187,218,169,187,212,251, +157, 97,155, 42, 40,220,220, 63,131, 30, 70, 97,112,167,234, 57, 71, 77,113,228,152, 94,173, 21, 2, 88,193,142,156,177,174, 43, +110,246, 59, 40,176,141,106, 89, 86, 25,179, 14,204,254, 79, 9,209, 59,104, 81,187, 19,154, 85, 40, 75,215,162, 42,103,163, 77, + 60,180,156,184, 53, 85,140,152, 93, 65,226,242, 41, 73, 93,214, 10, 2, 90, 27, 17, 55, 69,172,222, 9, 73, 81,215, 3, 55,201, +247,174, 74,247,206, 87, 71, 43,152, 20,193,175,190,114, 6, 74,232, 80,142,157,152,145, 0, 23, 50,148,182, 72,171, 19,151, 17, +225,116,153,241,209,179,251, 26, 13, 42, 88, 66,100, 17, 84,229,148, 96,181,105, 1, 33, 50,237,236,233,128,101,242,163,138,248, + 67,154, 57, 31, 51,102, 23, 48,141, 17, 67, 8,136,105, 64, 17,153, 23, 86,134,143, 17, 36,116,192,152, 51,116, 52,242,249,146, +203, 50,178, 88,209,133,136,236,189,172,166, 2, 70,165,112,242, 14, 74,107,108,236, 0, 90, 86,144,181,213, 7,159,138,206, 67, +208,208, 44,161, 43,133, 48, 95,165, 62, 70,152,168,174, 1, 73, 96,241,156,206, 26,164, 44,131,167, 4,155,173,212,208,197,143, +182, 72,225,130, 0,230, 13, 85, 17,121,150,140,131,214,101, 23,113, 12, 21, 91,118,161, 41,202, 56,190,178, 21,169,205,162, 83, + 73,214,236, 52,226,171,231,241,127,145,158,105, 98,215, 80,239, 57,191,106,201, 83, 29, 16, 92, 89,211, 84,226,200,240, 26,217, +218,157,245, 64,211, 81, 81,199,178,104,217, 46, 4,146,181, 37, 17,193,244,152,200,126, 52, 87,243,132,235,162, 33, 73, 8,193, +255,199,214,187,252,204,118,165,231,125,207,186,238, 75,213,119, 57, 36,155,108,170,213, 45, 89,105,201, 86, 4, 36,182, 0,195, +179,252, 11,153,100,152, 12, 50,201, 63,145, 81,198, 25, 4,200, 72, 6, 18,195,115, 79, 50, 74, 0, 15, 50, 14,144, 32,114, 44, + 7,146, 98,165, 37,183,196,110,178,121,120, 46,223, 87, 85,123,239,117,205,224,125,223,181, 86, 29,167, 1,129, 34,121,120,206, + 87, 85,187,214,122, 47,207,243,123,234,125,103, 94,123,150,171,236,230, 75,173,248,225,251,183,237,255,151, 68, 45,129, 86,208, + 10,170,220, 65,238,127,253,155,183, 56,173, 43, 52, 10,126,246,179,223,197, 95,252,219,191,194,211,211, 19, 82, 8,240,207, 30, +191,253, 91, 95,227,251,119, 63, 96, 93, 79, 56, 63, 61, 33, 70,130,160,196, 24,112, 62, 45, 48,198, 34,196,132,215, 27,117,147, +203, 60, 3, 12,104,209,198,160, 50, 52, 37, 51,252, 95, 66, 70,180, 82,112,134,236, 86, 95,126,245, 21,126,246,179,223,161,232, +192, 24, 16, 99, 68,140, 17,251,182, 99, 15, 7,182,235,134, 35, 4,202,240,142, 25,223,189,123,143,203,118,112,230, 52,171,142, +173,135, 30, 8, 78,205, 62,194,145,124,221,127, 73, 15, 73, 26, 4, 70, 10, 34,232,161, 78, 56, 75, 4,232, 40,138,224,106, 81, +243,254, 30,149, 18,193, 82, 10,240,122,110, 66, 28, 99, 52, 18, 51,182, 19,219,102,168, 42,142,152,252,140,192, 89,230, 33, 70, + 56,103, 73,209, 92, 11,239,149,137,121, 94, 43,233, 12, 52, 39, 95,213, 92,218,248, 88,246,200, 70, 43,236,225,192,201, 91,188, +108, 1, 79,139,195,119, 47, 87,124,249,176,224,117, 11, 4,178,240, 30, 21,192,186,174,164,140,223, 15, 28, 57, 99,157, 60,140, + 34, 95,112,174, 25,183, 35,192, 92,175,205,122,131, 66,113,157, 97, 59,168,147,147, 24, 88,107, 17, 34, 90, 24,136,124,150,185, + 82, 39, 69,157,183,195,228,200, 54,103,148,106,251,248,105,242,204,161,206,208,213,182,231,179,121,151,107,129, 82,212, 97, 16, +222,170,224,118,123,105, 5,133, 17, 58, 89,169, 80,186, 0,204,162, 38, 4, 48,237, 47,139,214,116,241, 72,242, 85,171,223,136, +225, 96,248, 64, 41,140,220, 84, 50,246, 70, 31, 93,171, 38,122, 67,103,181,139,200,135,165,169,142,189,196, 45, 40, 35,151,166, +152,183,198,192,232,202,192,143,114,151,216, 38,163, 70, 74,101,172, 3, 99,190,242,185, 87,113,111,164, 25,248, 29,186, 43,234, +164,131, 80,156,210,183,156, 30,155,118,166,240,206, 81,228,187,109,207,205, 81,188, 52, 49, 99, 94, 38,207, 29, 83,138, 4,163, +138, 9,218, 16,252, 36,231,132,215,235, 21, 41, 83, 82,152, 98, 30, 57,223,176,109, 10, 37, 24,212, 58, 52, 96, 85,245,194,199, + 90, 34, 8, 70, 78, 15,148, 78, 42,115, 90, 92,140, 52,249, 17, 61, 3, 29,238,244,221, 82, 3,100,222,218, 14,191, 33,109, 64, + 38, 53, 61,239,220,229,115,115,198, 52, 71,134, 81, 64, 76,145, 63, 23,162,203,125,184,109,180, 42, 67,207, 23,223, 66,194,236, + 73,249, 77, 5,189,230, 76,109,210, 60,100, 77, 69, 7,152, 5, 79, 13,153,106,147,191, 60,104, 7, 36,248,163,193,102, 20, 93, + 64, 71,200,240, 46, 33,198, 8,197,154, 28,197,130,200,148, 9,248,164, 84, 34, 21,181,120,241,229,242, 97,191,124, 46,210, 37, +179,197, 16,228,149, 39,177, 91, 38,110,252,178, 16,215, 93,194,116,106,234,128, 51,182, 30, 88, 67, 81,168, 57, 69,164, 66,239, +159,188,150,190, 10, 55,112,142, 52, 30, 33,202, 20,150,214,150,211,180, 64, 27, 10,190, 33,189, 72, 1,138, 38,198,202,192,168, +175,101, 8, 62,210,125,204, 77,191,160,176, 0,145, 46,248,202,145,171,253, 66, 45, 45,175, 35,229,210, 45,167,124,223, 29, 44, +206, 61,175,180, 50,208, 10,136,172,235,128,156,219,232, 9,138, 74,163,173,177,251,151,170,182, 76,128,170,208,194,153, 74,237, + 88,216,182, 38,168,186,175, 77,208, 57,240, 70,107,102, 54,176,250,189,112, 74,144,234, 57,124,119,226,129,222,140,243,206, 66, +125,178,179,107,254,187,190, 91,255,213,219,119, 3, 52,170, 54,160, 70,101,161,143,226,136, 83, 73,165,223, 67,192,182,111,248, +252,203,175,240,246,237, 15,248,234,205, 35, 94,247, 3,199,190,147,128,163, 86,108,215, 43, 78,167, 19, 62,188,188, 98,118, 30, +175, 31, 63,240,174,178,162,234,202,168, 80,242,166,222, 54, 74, 10,115,198, 32,230,204,182, 22, 13, 88, 52, 66,147,116, 79, 90, +107, 56,239,241,211,159,124,141, 47, 62,255,188,209,145, 10,231,115,199,112,180,128,133, 24, 34,182,219,134,152, 19,126,250,227, + 47,113,185, 94,241,237,219,119, 56, 82,194, 37,100, 78, 4,226,157, 72, 41,136,145, 50,223, 43,227, 23, 35,139,149,104, 44, 40, +171, 13, 81, 78, 43,158,136,136, 31,179,171, 33, 75, 21,111, 65,183,186,169, 22,111,152, 90, 22,120,105,248,205,222, 61,228, 54, +254,164, 48,151,131,177,176,181, 20, 24, 77,130, 29,221, 14, 0,193,127, 26, 78,144, 11,196, 80, 70, 65,226, 81, 23, 21,103, 36, + 58, 74,165, 98,245, 14,206,210,193,106,173,197,151,143, 22, 11, 99,118,173,247,184,238, 1,111, 30,207,172,226, 4,188,247,120, + 90, 23,236,220,129,121,235,105,127,109, 72,200,118,217, 14, 60,157, 60,180, 82, 88, 28, 93,188,222, 89, 98,234,167,140, 61, 68, +108, 33,144,210, 86,174,158, 90,201,161,192, 25,231, 0, 77,102,140,170,136, 41, 97, 93, 22, 28, 44,130, 84, 13,166,128,198,248, + 46,185,171,109,105, 35, 70, 7, 78,140,177,131, 59,140,161,103,166, 20,238,236,152, 44, 5,178,151, 81,250, 83,109,218, 82, 99, + 12, 12,239,110,115,173, 77,232, 85, 6, 37,187, 98,166, 58,161, 41,107, 43,232,229, 0,108, 59,119, 40,168, 82, 81, 84,229, 12, +103,221,254,189,112,173, 59,219,109, 20,164,171, 1,121, 91, 7,176, 5, 90, 28,106, 45, 5, 5,133,158,157, 42,185,117,146,208, +216,225, 53,141, 8, 57,112,228,141,210, 56, 61, 62,194, 56,127,167,116, 47,165, 52,149,182,209, 36, 78,115,134, 46, 41, 81,102, + 79, 19,225,130, 61,127,198,211,180, 50,139,157,248, 1, 41, 6,196,120, 32,178,107, 65,181,241,189,106,163,205, 49,143,125,204, +141, 23, 1,155,116,240, 66,102,108,111,140,136, 97,115, 70,101, 58, 89, 87, 91,179,203,161, 84, 16,245, 55,179,246,196, 54,107, +160, 99, 70, 70,225,239,130,140,193, 69, 27,209, 9,138, 21,161,228,246, 93, 52,170,226,186, 31,216,110, 87,154, 22, 13,137,116, + 24,168,121,214, 90, 32,203,121,154, 97,140,130,171,150,200,147, 41,195,185,218, 88, 4,138, 5,128, 85, 66,185,196, 98,201,103, + 92, 65, 97,252, 49,173, 35,173, 85,228,189, 87, 26, 19,187, 87,172,155, 90,113,152,107,133,202, 5, 85,101, 24, 9,226, 98,157, + 71,201,185, 61,203,165,208,153, 27, 35,197, 74,167,156,185,232, 39,188,119,142, 7,120,148, 54,192,122,106, 67,200, 74,126,253, + 94, 50,116,233,172,116,173,229,254,161, 41, 34, 37,216,229, 54,249,180,206,195, 53,108,118,108, 12,127,200,232,188,144,189, 20, +114, 73, 43,197, 2,109,221,136,167, 85, 38,143,237,251,198,109,116,101,204,115,213, 80,186, 48, 78,150, 39,189, 41,195, 24, 73, + 68,212, 13,219,189,237,129,152, 34, 90, 67,219,138, 49, 56,101, 44,210, 43,243, 34,148, 82,125,161,143, 49,128, 73, 82,226, 10, + 7,223, 0,122,200,102, 17,248, 80,235, 3,121,162, 8,165, 80,184,129, 83, 74,195,118, 47, 41,122,158,113, 27, 23,208, 28,163, +193,237,121,142, 95,107,253,247, 54,106, 66,139, 82,108, 67,249,254,221,251, 33,162,174, 98,242, 14,233, 72,173, 66, 16,152, 64, +151,228, 3,191,248,229, 55,248,163,191,255,115,188,188,252,128,159,254,228,107,216, 41,224, 55,251, 13, 47, 47,175, 56, 77, 22, +147,211,248,245,175,127,141,211,233,132, 56,121,192, 88,220, 46, 23, 30, 93, 22,188,251,248,202,126,245,130,121,158,184, 99, 40, +109,167,110,184,139,157,173,131,225,177,118, 41, 21,243, 52,195,121,135,223,253,233,207,112, 58,157,185,202,162, 92,237,154,137, + 85,156,211, 65,127, 13, 7,194,105,197, 30, 34,246,125,195,236, 29,106,206,248,187, 95,127, 7,143, 10, 93, 2,110,177, 96, 89, + 79, 80,214,226,114,121,105, 35, 78,180, 61,150,190, 83, 96,182, 80,132,210, 8,179,204,119, 30,146,177,238, 81, 63, 29, 73, 42, +176, 19,206,106,215, 76,173,171,114, 97,241, 46, 83,136,128, 68,201, 50,180,143,103, 98,157,216, 98, 70, 92, 48,197, 61, 10, 33, + 55,226,147, 24,132,126, 88,106, 82, 9, 47,243,132,148, 18,113,194, 25,167, 73,170, 86, 10, 80, 73,185, 32,239, 59,217,245, 56, + 74, 21, 41,163, 24,131,194, 7,131,181, 6, 47,175, 87,154, 28,228,132, 15,215, 91,155, 76, 4, 93,153,137, 95,176,135, 68,164, +173, 70,106,162,103,242,121,157, 90,184, 70, 81,132, 9,222, 88,232, 20, 99, 24,226, 14,105,132,103, 21, 49, 21, 84,166, 46,167, +136,192,180,130, 58, 11,173,241,252,230, 43,188,190,126,192,117, 15,140,223,212, 60,181,200,188,202, 32, 20,174,105,221, 54,119, +198,232, 57, 8, 90,137, 53,180, 7,168, 80, 33,157, 91, 81,129,130, 86,140,148, 1,213, 92, 80, 90,154, 96, 5, 79,113,164, 66, +231,195, 41,115,145, 42, 19,148, 82, 43, 9, 12, 75, 29, 22,112,156,176, 37,235, 27,158,158, 33,151, 54,110, 84,131, 26,183, 54, +170, 91,167, 93,181,231,144, 87, 63,222,121, 76,235,153,166, 67, 60,130,148, 81,171,226, 11, 83,196, 86, 90,107, 98,254,243,152, +119,157, 39, 42, 12, 45,101, 21,156,214, 21, 74,105,236,251, 13,199,113,176,163, 3,120,185,110, 36,234, 99, 37,127,206,165,177, +183,197,197, 32, 10,115, 98,194, 15,179, 68,165,238,160, 53,125, 84,193,197, 73, 46,173,112, 46, 37, 33,243,174, 60,149,194, 34, + 56, 22,162,242,158,217, 72,209,205, 19, 74, 2, 18, 81,145, 72,107, 46,211,105,115,138,137,242,185, 19, 35,107,169, 72, 10,120, +121,125,193,237,122, 65,201, 52, 57, 74,172,141, 81, 74,227,178,237,120, 56,159, 73, 31,131,210, 46, 51,203,194,189, 82,106, 43, + 46,180, 42, 80, 50,234, 85, 10,186,240,103, 37,231, 46, 11,230,192,221,252,228, 28, 66, 74,184,110,224,152, 99,131,117,242,220, +196, 21,120,239, 88,184,215,227,185,179, 42, 45, 54,185,150,202,197,148, 8, 0, 11, 98,166, 93,125,201, 5, 25, 9, 73, 13,126, + 40,121,243,135, 8, 88,165, 36, 97, 12, 48, 26,240,206, 81, 22,133,209,173, 99, 45, 69, 44,110,186,113,239,181, 34, 45, 78,230, + 34, 57,198, 3, 33,236,180,106,108,204,133,218,150,215, 52,194, 46,189, 72,173,138, 38,107, 77,212, 41, 38,112,125,103,235, 68, +243,209, 23,168, 34,152, 88,201, 81,207,195,180, 1, 48,149,206,141,235,126, 96,219, 3, 5, 87, 89, 98, 2,140,214,209,166,201, + 43, 3,220,102, 72, 82, 84,195,193, 90, 89, 22,171,197,173,165,134, 92, 6,177,208, 50, 54, 87, 15, 86, 82, 89, 67,148,146, 96, +171,194,112, 73,247,110, 97,132,241,148,161, 67,187,227, 81,202,238, 74,228,253, 85,181, 42, 86, 65,224,254,117, 80,215,162,219, + 25,248,144, 18, 33, 6, 9,204, 52,190,253,238, 55,112,186, 34,164, 12, 93, 51,190,252,242, 71,248,155,191,253, 6, 63,249, 7, +127,128, 55,159,125,134, 63,253, 87,255, 26,203,186, 34,131, 82,136,222,190,251,128,211,186,192, 57,139,151,203, 21,147,179,216, + 66,194,251,151, 11,231, 36, 27, 78, 43,170,200,133,108, 18,203,228, 97,156,198,195, 50,195, 77, 30,251, 30,241,229,231,159, 81, +228, 43, 42,148, 33, 2,147, 49,142, 31, 98,139, 18, 13, 82,140, 8,168, 48, 80,176,222, 3,149, 85,185,188, 13,207, 49,181, 78, +238,229,195,206,251,163,202, 59, 61,203,138,242, 1,229, 57,196,235, 81,178,210, 32, 64,108,227, 51,213,190, 32,114,137,107, 53, +142,135, 84,179,188,167, 24,225,188,130, 42,166,117,126,163,250,218, 25,199,190, 88, 86, 60,151,124,231, 76,248, 36, 80, 23, 26, + 5, 69,235, 38,206, 1, 84,187, 40,114,225, 0, 12, 69, 40,202, 16, 34, 38, 71,239,179,229, 4, 45,165, 21,246, 24,240, 52,121, +124,254,249,103,120,185,220, 80,106,193,219,119, 31,240,163, 55, 15,216, 67, 64, 10, 1,207,167,103,188,253, 72,214, 53,227,200, +210,162,141,133,225, 93,219,245, 8,152, 11,217,161,212,176,226,105, 33, 65, 44, 32,155, 39, 71,112,143,162, 97,144,232,176, 80, +160, 48,152,148, 80, 83,230,253,181, 99,120,143,106, 59, 81, 25, 21, 43,214, 60,136,175, 25,149, 92, 3,138, 95,187,102,219, 8, + 44,117,184,198, 57, 56,235,233, 89,102, 81,206,164, 20, 66, 10,208,160, 72,219,156,106,235, 34, 4, 27,217,237, 49,181,137,130, +232,224,207, 84,141,151,130, 52,160, 87, 85, 11,114, 40,220,241,208,123,159,154, 63,183, 54, 17,164,136,197,208, 44, 60, 84, 28, +228,210,247,232, 90,128, 50, 3, 67,190, 42,213, 38, 15,141,171, 46,133,190,234,217, 16,214,104,248,121,129,243,115, 83, 29,107, +238,158,141,166, 78, 82,170, 84, 93, 1,163, 12,172, 38, 11, 84,138, 9, 38,165, 46,244,179,142, 17,200, 7,127,159,142,150,210, + 23, 66,106, 34, 68,205,193, 65, 70, 49, 54,179, 10,212,139,196,130,164, 68,150,177,124,189, 19, 2, 10, 84, 37,164,220, 18,238, +100, 77, 65, 56,220,136, 88, 42, 21,102,220,141,122,239,112,219, 14, 56,107, 17, 83,129,213, 64,136, 10, 33, 23, 76,214, 32, 23, +133,253, 8, 88,151,153,186,225,146, 97,103,143, 16, 2, 9, 48,141,102, 56,150, 2,106, 70,136, 68,138,219, 98, 70, 56, 40,110, +213, 90,139,135,211, 9,239, 95, 95, 25, 94,100,240,225,122,224,241,225, 1,198, 88, 20, 36,148, 42, 25,244, 12,218,209,160,115, + 76, 89, 32,101,122,246,121, 20,111,140,230, 66, 69,183, 73,129, 20,121,212, 32,104,212,148,113,196,140, 61, 36, 56,155, 91,226, + 96, 1,224,141, 25,236,181,250, 46, 75, 64,180, 17,133,207,237,130,202, 62,120,234,208,201,250,168,144, 65,162, 98,195, 29, 37, +198,203,150, 47,117,173, 85,203,192,112, 66,187,171,154, 3, 89,185,243, 44, 64, 77,145,237,119,134,138,156, 92, 17,143,131,149, +241,190, 61,227, 34,244, 83,236,167, 31,215, 14,131, 46,123,176,103,143,161, 70,212, 73,169, 65,165, 86,229,247,106,147, 45,197, +220,143,218,128, 67, 77,129, 94, 53,246, 16,113,221, 14,242,216, 91, 15, 56,203,172,151,193,174,220, 26,238,122, 31, 19,123,175, + 51, 29, 69,242, 20, 69, 91,129,162, 58,224, 73, 51, 29, 73, 13,186, 55, 93, 53,170, 66,119,120,169,150, 91,219, 93,240,125,220, +223,187,242, 50,208,148,234, 93, 80,131, 36,208,244,177, 91,142,113,176,112,177, 93, 65, 15,106, 66,185, 52,184, 74,146,145, 13, + 0,124,255,238, 3,230,245, 12,109, 12,166,211, 3, 62,126,248,128, 63,250,195,127,128,199,199, 71,252,249,159,255, 57,158,159, + 31, 17,182, 43,188,179,120,251,238, 29,148,162,140,237,183,239, 63,160, 2, 56, 98,230,135,140, 42,206,152, 74, 87,229, 26,131, +211, 60, 13,251, 73,250, 48,231,217,225,203, 47,127,132,227,216,177, 31, 52,238,203,137, 46,104,233,152,180,236, 5,161,200, 66, + 86,104, 12,154, 83,194,113, 28,108,145, 1, 85,173,210,101,213,218, 66, 4,140,238,153,202, 93,121, 10, 22, 88, 25, 64, 27,178, + 71,213,126,105,139, 24, 66,176,189, 98, 47, 86, 90,181,224,151,230,246,101, 65, 79,145, 64, 10,222,195,202, 1,102,140, 37, 94, +190,177, 44,170, 82,109, 34, 64, 64, 13, 58, 20, 69,188, 37,148,180,194, 94,127, 97, 94, 75, 49, 33,175,175, 14,236,113,205, 29, +153,128, 25,196, 54,243,122,189,226, 87,191,249, 30, 0,240,254,229,138, 55,143,103,196,152,154, 21,232,253,199, 23,204,204,153, +174, 85,225,195,229,138,143,151, 43,142, 20,113, 57, 2,230,121,106, 94,124, 84,178, 11,201,207,152, 10,117,200, 70,107,204,222, +227,182,237,136,199,141,188,177,133, 4, 80,185,144, 7, 89, 0, 18, 84, 28, 8,227,156, 44,109, 50, 86, 78,114, 24, 73,103,170, + 13, 66, 12,112,150, 66, 46,192,207,130, 4,224, 56,235, 80, 75,130, 18, 92, 46,175,124, 38, 86,241, 58,195,130, 76, 33, 52,142, +174, 16, 37,133, 9,125,111, 34,167, 14, 54, 97,236,224, 35,150,128, 19, 17, 18, 85,174,234,107,201,236, 39,207, 77,213, 12,142, +188, 53,252,220,228, 82, 59, 17, 82,119, 5,122, 17,226,149,170, 40,255, 63,192, 13,122,140, 88,108, 36, 43, 3,163,177,156, 30, +225,253,220,242,182,107, 91,217, 81,225,101, 53,101,121,123, 75, 1, 39, 98, 89,204,185,176,155,192, 1,218, 34,131,118,210,168, + 9,181, 36,130, 3,233,158, 82, 23, 75, 97,142,119, 38, 78,248,208,241,129,253,193, 21,170, 9, 96, 19, 79, 11, 68, 96, 42,246, + 59, 25,157, 82, 56, 10, 61,231, 33, 80,250,223,109,219,144, 74,134,202, 36, 88,139,199, 1,239, 12,110, 71,196,100,105, 69, 21, +195,142,146, 51,110,251,129,146, 2, 82,140,248,120,185,193, 25,131,112, 4,188, 92,174, 48,156, 75,241,241,245,130, 90, 43,142, + 16,177, 31, 7,142,112,144,245,150, 83, 29,183,237, 74, 25, 11, 21,248,234,139, 47,176, 78, 19,145, 34,173,131,245, 19, 66,213, +168,156,176, 86, 75,225,179, 64,181, 66,142, 80,173,174,209,227,104, 18, 98, 88, 87, 96,216,210,103,154, 67, 70,137,125, 13,132, + 96,246,142, 10,160,192, 72,215,170,168, 65,145, 44, 3,111, 45, 44,251,208, 59, 61,178, 83, 23,199, 24,237,204, 23,186,196,236, +130, 63, 11,161,221,149,114, 63,117,170, 67,113, 10,225,216,131, 58, 91,163, 53,172,163,168,236,156,107,223,147, 11, 4, 45, 39, +212, 18, 25,229, 91,218, 5, 40, 52,188,145,112,170, 10, 59, 30, 10,218, 93,165, 70, 64, 82, 11,219,234,107,229, 70, 98, 20, 28, +156,252, 17, 77,140, 9,158, 94,150, 54,177,144, 53, 78, 76, 25,151,125,199,182, 29, 56,142, 3,114, 90,151, 81, 72,174,250,208, +236,158, 82, 55,200,211,196, 6, 55,174,201,228, 71,226, 9,157,208,249,104,226,168,219,142, 31,114,134, 3,176,181, 73, 97, 74, +251,225,239,243,227,250,159, 38, 21,189,106, 60,226,254, 11, 75, 79,132,199,175,126,120,215, 70,112,210,255,125,254,252,136,203, +183,111,161,172, 65,225,177, 6, 1,249, 21, 18,192, 59, 97, 34, 47,253,205,175,190,197,207, 80,177,204, 11,172,159,240,171,111, +254, 14,223, 64,225,195,203, 11,190,158,103,220,182, 13,219,245,130,175,191,250, 49,158,255,254, 51,254,230,175,254, 18,219,182, + 35,230,136,203,117,135, 51, 10,181,234, 86, 13,210,131, 6, 68, 22,231,144, 56,142, 34, 84, 95,174, 55,172,203,130,201, 26,188, +124,252,128,201,123, 76,243, 2,239, 44,188,139,237, 50, 47, 41, 33,199,192, 99, 75, 18,245,164, 82,177,241,135, 41, 98, 45, 53, +208,146,180,116,192,170, 7, 72,168, 97,119, 78,211, 80, 9,182,200, 29,236, 49,148,110,210,209,169, 97, 50, 34,140, 0,107, 45, +119, 41, 25, 19,239, 77, 67, 46,208,186,246,189,186, 82,109, 63,111,180,109,213,251, 8, 47, 24,147,185,164,211,211,138, 68,116, + 34,148, 73,220,133, 9,227,188,109,161, 4,197,168,168,160,209, 90, 35, 38,226,101,103, 30, 13,159,215, 5,147,247,248,225,195, + 11, 82, 41,120,247,114,161, 74,182, 84, 28, 71, 36, 71,129,181,205, 25, 80,132,101, 80,129,217, 90,196,152,112,154, 28, 98,202, + 44, 66,161, 55, 35, 55, 15,114,133, 53,116, 89, 79,222, 67,105,141,237,118, 35,193, 17, 72, 52,150, 88,137,174, 77,199,153,210, +232,154,133, 81,232, 7, 79, 44,153,105, 97, 6,235,249, 9,111,127,248,182,249,148, 81, 42, 66, 45,152, 45, 21, 94, 33, 28,176, +126,110,187, 45,111, 13, 98, 74, 48,214, 66,167,132,204,187,126, 26,145,131,225, 32,108, 75, 42, 93, 8,153,219, 23,141,198,124, +168,104, 96,160,177,211, 25,230, 51,180,207, 76,137,127, 63, 61, 76,188, 4, 92, 84,219,174,182,125, 23, 43,165,138,117, 63,110, +143, 43,109,176, 47, 53, 68,185,242,159,105,140,193,178, 44,128,182,221,226, 83,105,114,162, 5, 85,170,137,255,175, 80, 27, 12, +232,225,241,220, 70,163,198, 26, 56,231,113,185,110, 72,145,227,147,181,134,213, 84,180,169, 22, 55,201, 98,202, 84, 48, 57, 71, + 96, 26,177,101,138,202,152,211,201,210,113,112,129,101, 73, 36,201, 98,201, 24,201,105,145,249,121,206, 85, 70,198, 9,123, 72, + 88,188,197,118, 36,156,103,139,215, 91,192,227,105,198,245, 72, 88,103, 79,188,138,201, 33,196,128,253,136, 56,207, 30, 33, 87, +226, 49, 88,131, 61, 38, 56, 69, 89, 16, 71,169, 88, 44,137,244, 46,151, 27,188,161,207,229,122, 4, 10,199,169,192, 37, 68,120, +163,240,114,219,120, 23, 77, 52, 71,103, 12, 38,111, 97,140,133,159,102, 56, 71, 58,148, 61, 74,248,140,186, 67,148,106,254,238, +217, 22,136, 66,235, 45, 69,227, 11, 24, 13,100, 46, 2,154, 18,190,246, 96,242,156, 51,252, 50, 33, 36,254,142,105, 3,205,127, +182, 1,211,235, 88,231,129, 70,255,148,243, 93, 67,229,220,110,164,194, 23,106,230,248,227,202,130,194,102,227,226,253,119,225, +221,187,106,162,179, 46, 30, 43,181,112,192,140,130,174,108,127,227, 8,214,194,218,162,152, 34,117,242,138,238,136, 59, 20,113, +115, 0,220,143,247,235, 48,106, 86,227,115, 62, 56,188,106,233,209,169,252, 70,210,141, 89, 6,222,122, 37, 96, 16,117,241,165, + 53, 79,133,113,123,149, 57, 31,185, 84,220,246, 8,111, 15, 88,231, 48,159,106, 79, 82,227,203, 88, 86,133,247, 98,243, 33,177, +176, 18,184, 13,172,218, 87,162,232,107,197, 89,109,217,220, 85,201, 12,142,213,210,195,152, 95, 85, 5,171, 84, 33,127,106,187, + 4, 10,127,225, 63, 77,141,169,189,122,151,176,146,134,216,171,119, 93,196,235,229,134, 33,191, 30,181, 86,204, 12,140, 40, 60, + 90,195,200,174,101,197,119,209,252, 1,161,226,155, 95,127,143,217, 19, 69,108,158, 60, 74, 78,164,142, 55, 22,179, 51,176,206, +226, 79,255,245,191,194,215, 95,253, 24, 63,249,250,107,252,221, 47,255,154,236, 71, 57, 35, 6,234,204,102, 71,249,198, 25,180, + 19,115,154,118, 74,226, 27, 14, 41,227,171,207, 30, 81,114,193, 15,223,191,197,190,109, 88,215, 21,203,178, 99,158,103,120,142, + 31,212,108,109, 74, 33, 0,204, 16,223,246, 29,219,190,227,195,135, 23,220,246,157,252,167,106, 56, 16, 7, 63,177,101, 79,167, +110,151, 9,239, 43,121,196, 37,157,180,224, 35, 49,120,213,101,202,160,161, 33,171,146,204,129, 30,149,253,237, 78,107,196,156, +250,239, 63,232, 36, 10,143,148, 51,143,234,172,238,184, 70,153, 86,210,196,132,118,171,140,142,110,233,104, 2,175, 48, 90,119, +245,190, 33, 15,182, 36, 65, 41, 5,196,148, 49, 47, 14, 49, 38, 44,203, 4,203,145,181, 91,136, 52, 61, 41, 7,142, 24,241,163, +231, 39,236, 97,199, 22, 34,140,211,220,225, 68, 74,126, 74,192, 30, 35,150,201, 99,114, 6,219, 78,233, 80,214,104,220,142, 64, +106,219,148, 91,199, 64, 9, 84,156, 65,175, 20,121,238,133, 15, 94, 42,140,120,129,121, 28,172, 26, 85,138,222,203,204, 93,174, +224, 91,101, 47,173, 53, 97, 68,231,121,197,135,119,223,113, 72,132,236,180, 20, 78,203, 76,151,136,210, 28,205,203,169,106,149, + 58, 81,239, 44, 82, 56, 48,123,139, 92, 40, 86,179, 42,133, 34, 62,117, 14,180, 49,176, 45,156, 36,151,218,255,140,218, 71,119, + 85,152,227,165, 48, 38, 82, 49,141, 75,241, 10, 97,132,172,160, 77, 79,138, 56, 86,134,110,191,160,231, 59,116, 27,208, 56,251, +171,172,102,239,133,168,209, 26,147,159,136,143,103, 29, 19, 19, 89,108, 84, 50, 52,104,175, 56,115,150,116, 46,153,186, 61,231, +176,178,184, 48,165,130,231,211, 3,142, 72,218,137,112, 92,169,243, 82, 10, 78, 43,236,219,214, 20,207, 90, 91,164,170,160,236, + 4, 93, 35,128,138,144, 43, 20, 10,182,148,219,229,150,148,134,202, 1,161,144,154,254, 8, 1,149,225, 75, 65, 91,120,171, 16, + 34, 61, 59,175,219,129,217, 25,220,246,131,146, 25, 61, 61,215,139, 5,182, 88,241,124,154,177,199,136, 89,211, 81,169, 75,134, +170,116,129, 60,159, 39, 98, 58,196,136,211,228, 1,165, 16,142, 13,126, 93,145, 75,129, 43, 17,214, 44, 56, 66,130,169, 25,235, +180,226,229,118,224,121,241,120,185,109,136,176,200,199, 14,227, 44,139,186, 72,202,246,229,231,111, 48, 79, 14,206, 26,172,211, + 4, 59,209, 58, 67, 27,141,203,145,240,188,122,154, 32, 40, 78,154, 43,125, 82,103,172,129,149,142,185,212, 33,214,185, 54,101, +184,240,233,179,234,240, 52,210, 90, 84, 56,246,235, 67,105, 76,156, 72,105,137,125,203,142,132,122,215,215,213, 82,161, 12, 11, +165, 83,109, 54,204,194, 13,109, 46, 5,208,166,165,112, 86, 94, 67, 81, 39, 95, 26,211, 66, 13,164, 70,113,157, 0,164,205,200, + 42, 53, 5,127,206,149, 62,207, 22, 84, 67,147, 7,173,249,210, 86, 68,199, 44,220,141,183,100, 93,213,253, 26,205,108, 60,104, + 74,100, 63,174, 26, 66,121,104, 59, 11,229, 29,140,247, 59, 64,147, 26, 90, 23,243,157,167, 10,235,237,244,128, 89, 38, 49,238, +117, 15,176,238,192, 57, 4,152,101,161,247,130,243, 8,218,189,171, 56,140,101,128,216,180,197,119, 81,253,226, 87,146,209,221, +140,229, 45,159, 69, 53, 29, 86,189,183,158,202, 4, 75, 46,240, 90, 49, 92,210,140, 29, 28, 47,118,137,107,172,221, 8, 79, 23, +119,225, 15, 25,205,250, 48,207, 83, 19,101,137,159,215,123,199,221, 12,141, 60,107,227, 33,211,135,158,249, 3,148, 57, 97,173, + 25, 71, 82,152,188,103, 62,188,131,137, 17, 87,142,108,253,171,191,250,127,145, 82,193, 47,191,249, 6,127,251,205,175,218,184, +247,113,246,120,158,167,230,103, 6,123,248, 68, 1,110,161,145, 77,133, 50, 6, 70, 43,252,223,191,248, 59,252,211, 63,249,167, +248,239,254,155,255, 26,167,243, 9,231,135, 7, 78,105, 59, 99,158, 23,204,147,231,221,106, 65, 14, 17,202,104,236,183, 13,215, +109,195,251,247, 31,240,238,195, 7,236, 49,183, 7, 93,250, 72, 34,209, 17, 3,185, 12, 84, 47, 73,231,209, 74,118,180,106,232, +124,234,176,111,186, 79, 9,234,251,150,145, 37,204,239, 47, 91,170,246, 16,238, 46,242, 42, 33, 23,124,249, 23,142,203, 76,146, +254, 54, 40, 41, 32,251,255,198,254, 23, 49, 16, 93,156,198,232,118, 32,149, 82, 16, 7,155,199,236, 72,236,243,122,221,240,197, +211, 3, 85,222,138, 58,147,199,117,225,232, 76,138, 90, 13, 41, 98, 63, 34, 78,203,132, 82, 50,231, 46,159,145, 82, 66, 58, 2, +188, 49, 56, 34,229,197, 75,183,153, 21, 29, 14,130,221,140,108, 21,234,143, 60,112, 90,166,246,207, 66,140,176, 28, 71, 91,107, +197, 17,201, 42,132,193,129,173, 21,241,175,139,132,109, 72,241,165, 74,227, 69,111,251,141, 25,240, 29, 59,170, 0,130,166, 56, + 11,173,137, 96, 87,106,133,117, 11, 97, 56,115,228,192, 6,133, 24, 73, 76, 69,192,156, 8, 47,116, 45,222, 3, 75, 64,135, 28, +112,226,139,111,105,137,106,180,153,245, 73,141,102,231,130,192,132,170,136,222, 24,140, 34,227, 69,201,209,238, 25,206,232, 69, +139, 22,102,127, 39,147,169, 65, 36,167,248, 51, 83,154, 44, 72,206,186,102,123,166,181, 69,110,207,168,211,180,139,181,236,157, + 50, 90,147, 69,204,121,104,237,224,108,193,135,143, 31,225,173,193,117,219, 88, 64,167,224, 29,217, 80,193,171, 49,173, 12, 66, + 34,161, 80, 42,133, 70,242, 85,195,148,128, 35,102, 82,201,103,114, 30,164,180,147,127,149, 31,210, 10, 0, 0, 32, 0, 73, 68, + 65, 84,187,100,236, 0, 38,107,176,237, 59, 38,103,145, 34,225,140,105,215,236,224, 84, 65, 74,192,121,246,136, 49,194,121,143, +151,235, 13,211,121,197,137,191, 47,179,115,152, 39,135,215,203, 13,167,117, 70,229, 80, 33,109, 44, 82,140,120, 62, 45, 36,228, +188,238,120, 58,175,136,185, 32,196,136,167,211,140, 92,129, 20, 54, 60, 63,156, 41,181, 16, 25, 86, 89,156,188,195, 15,175, 55, +172,206,226,221,245,218,198,209,206, 90,204,206, 81,102,185, 49,248,241,103, 79,120, 23, 0,235, 92,155, 42,228, 10,122,125,181, + 12,163, 89, 22,186,114, 90,163, 76,147,169, 24, 76,173, 8,211, 28, 24, 69,186,139, 2,209,207, 17, 15, 32,224,180,204,208,198, +146,248,204,123,248,105,130, 99, 40, 76, 23,218,149,230,130,170,181,182, 73, 98,169, 29,230, 83,185,137, 17,207,128, 54,150, 41, +154,188,167, 79,137,214,119, 74,144,221,170, 65,125,122, 8, 17,159, 77, 60,254, 79, 49, 96, 59, 54,134,242,128, 38,126,165,175, + 23,219,137,197, 52,183, 34,221,184,174, 32,193,123, 97,109, 87,103,118, 87, 62, 51, 85,237,214,205,182, 82, 82, 60, 77,173,162, +116,231, 98,160,244,219,189,138,130,121, 92,135, 53,138, 93,109, 13,198, 30, 19,220, 30,112,221,118, 60,174, 75, 71, 4, 15,235, + 2, 85, 63, 69,173,247,243, 94, 98,185,101,253, 47, 1, 75,212, 8, 83, 3,172,180,106, 97, 49,237,252,191,211, 69, 1,150, 82, +194, 36,244, 93,212,196,138,163, 6,201, 10,160,238,193, 86,141,123,219,246,238,124, 8, 20, 30,245,124,254,217, 19,229,107,139, +161,159,127,216,117,242,184,134, 76, 63, 28,143,131,132, 3, 45,121,227, 26, 68,229,209,138, 30,204, 35,105, 28, 49, 32,199, 13, +251,113, 96,223,247,187,188,102,137,172,252,217,211,153, 15,137, 60,228,241,178, 56, 68, 84,178,170,194,104,234, 34,254,179,255, +252,191,194,229,242,138,255,231, 47,254, 28,255,236,127,252,103,120,123,221,241,254,182,227,252,254, 3,150,121,194,249,241, 17, + 15,143, 79, 56,157, 78,112,222,209,232,137, 69, 82,151,235, 5, 47, 47, 87,188,253,225, 29,174, 91,160, 46, 75,198,230, 21, 61, +120, 65,117, 50, 87, 29,246,169, 35, 77, 78, 84,188,134, 49,127,119, 27, 15, 40,124, 26,124,213,212,201, 2,243,104, 35,227,114, +167, 4,110,252,128,150, 5, 79, 69, 78,228,206,116, 92, 21, 64, 49, 16, 72, 41,164, 34,182, 20,122,152,168, 75,160, 75,214, 26, +141, 90,128,204,236, 98,241,221, 30, 49,193, 57,131,213,211, 36, 68, 70,175,235, 50,225,118, 28,152,189, 71,204,137,189,176, 21, +231,117,193,182,111,152,167, 9,251, 65, 35, 78,137, 19, 77, 92,228, 29,252,165,158,188,197, 30, 83, 91, 13, 88,125, 31, 93, 43, +187,245,135,117,198,118, 4,196, 16, 73, 24, 23,248,231, 8, 17,147, 51, 60,210, 67, 27, 83, 11,112,195, 90, 10,243,209,140,127, +117,206,145, 23, 55, 23,196, 18,176,174, 79,216,143, 31,136,106,199,187,218, 82, 51,226,177,195,157,206,188, 99,231, 80,143, 68, + 23, 78,137, 17, 90, 89, 88, 21, 49, 79, 14,241, 40, 48,172, 44, 78,137, 50,234, 69, 61, 76,252,125,141,217,211,184,183, 98, 24, +131,183,103,160,119,213, 77,179,144, 41,228, 36,151, 65,140,202,107, 3,136,141, 81,201, 78, 82,194, 74,200,173, 32,250, 23,169, +241, 75,243,241,150,102,169, 90,150,149, 14,114, 77,177,150,149, 71,142,214, 57,134,160,144,112,212, 59,178, 33, 82, 32, 11,189, +135,211,188,208,158,151,131,146,114,205,152,189, 7,180,198,156, 61,106,205, 28, 79,155, 57,222, 23, 40,138,118,239,215, 35, 81, +151,150,104,213,229, 13,133,215,156,103,143, 84, 56,201,139,215, 44, 71, 56,160,181,197,108,136,176,118,158, 39, 92,247, 3,167, +153,158,171,105,158,112,132,128,101,242, 72, 41, 34,102,131,211, 66, 59,236, 55,231, 21,218,104, 88,109, 48, 77, 52,129,216, 67, +196, 52, 81,103,174,141,129, 6, 17, 40,189, 51,109,173,116,158, 61, 82, 78,212, 61, 42, 74, 9, 67,206,120, 88,102,172,243,132, +247,215, 29, 95, 60, 63, 34,166,136,237,168,248,226,188,210,148,230,122,107,252,239,175, 62,251, 12,147, 39,210,226, 50,123, 40, +173,240,195,118, 33,221, 13, 79,209, 46, 91,192,105,246,200, 37, 33,243,101,147,217, 62, 44,246,202,146, 51, 52, 79, 39, 50,147, + 46,149, 50,100,173, 42, 26, 58, 43, 82, 92,215,222, 83,118,165,189,106, 5,128,117,174, 89, 70, 43,135, 61,213, 90,128, 82,155, +102,170,100, 98,181, 23, 89,123,105,158, 62, 85, 64, 25,139,196, 43,192,194, 57, 26,134,159, 15, 81,179,151,220, 5,152, 45,131, +189,170, 6,220, 34,189, 67, 66, 56, 2, 82,228,149,210,224,238,168, 82,176, 14,187,239, 34, 29, 48,120,218,172,121, 47, 32,150, + 25,213, 5,121, 21,133, 70,218,172,128,215, 85, 13,212, 84,137, 9,238,246, 49,136, 95,157,125,234, 90, 20,245,247,169,230,141, +168, 42,216,216, 35, 38, 92,182, 13, 15,249,113,252, 6,247, 96,211, 58,240, 95,152,224, 40, 64, 25, 45,150,201, 86,188,117, 38, + 4, 77, 42,116, 43,224,169, 63, 54,205,165,161,153,222,167,181,129, 21,164,162,236,253, 1,121, 8,208,240, 55, 69, 13,162,129, +118, 64,244,101,126,109, 93,124,109,187, 20,109, 44, 83,213,232,141,248,246,251,183,248,234,203, 47,240,139,111,126,211, 42, 12, +249,144, 69,224, 81, 89, 80, 86,147,228,236, 82,117,104,172,163, 23,236, 22,248,133, 70, 88,198, 90,250,231, 74,195,234,130, 21, + 7, 42, 20,156,169,109, 7, 44, 2,183,204,187, 45,217, 42,124,246,197,151,248,135,127,252,143, 81, 43,240,217,163,199,255,240, + 39,127, 66, 44,112, 5,132, 82,177, 95, 54,124,255,122,195,242,221,247,120, 60,173, 88, 78,167,246,166, 42,165,176,237, 59, 94, + 95,175,184,222, 54,196, 74,157, 69, 22, 85,130,238,156, 99,213,231, 66,173,115,175,181,171, 65, 85,237,226, 57, 25, 83,141,204, + 2,121,111, 69, 41,143, 90,239, 30, 42,241, 45,210, 1,164,137,221, 95,251, 94,214,114,113,145, 89,180, 24,115,102,241,148,226, + 72,214,220, 5,111, 32,113, 85,206, 93, 43, 81,106,133, 98, 33,140,145,128, 12,213, 69,114,154, 5,142, 34, 56,148,241,102,169, + 6, 33, 18,237,205, 26,162,218, 57,107,240,186,109,208,218,224,181,100,172,222,226,114,219,105,199,204,127,214, 17, 35, 61, 59, + 74,225, 26, 19,172,162, 17, 42,106,223,233, 11,226, 22,237,231, 6,243,169,121, 50,227,232,153, 48, 77, 1, 12,114, 21, 12,220, +110,180, 52,188,138, 16, 99, 3, 61, 80,130, 27,216,207, 76, 7, 95, 8,148, 45, 63,207, 19, 65,141,166,137,136, 95,154,172,126, +214,204, 80,218,162, 64, 83,247,174, 42, 98, 41,112,222,195,164, 0, 99,200,218, 69,147, 7,250,112, 73,123, 64,135,136, 4,211, +212, 65,116,104, 56, 86, 85,190,176, 49,215, 65,143, 97, 90,250, 87, 25,220, 37,130, 99, 46, 50,238, 99,213,174, 80,178,212, 39, +216,231, 58, 64,109,154,128,135,191, 47,218, 24,130,165, 24, 75, 59, 79, 69,226, 63,165,250, 68, 45,197, 64,240, 16, 99, 9, 39, +106, 12,139, 48, 53,180, 50, 56,157, 86, 28,251,134,219,245, 21,235,186, 96,158, 61, 94,175, 27, 61, 19,202,114, 58, 32, 77, 99, +156,181,152,252, 68, 43,168, 18, 96,107, 66, 42, 25,159,159, 23, 92,182, 3,231,217, 67,107,131, 55,143, 39,188,125,255, 1, 15, +231, 21, 49, 70,156,150, 5, 53, 39, 34,153,105,141, 35, 85,124,241,120,194,245,136,248,252,249, 1, 31, 94,111, 56, 77, 30,123, + 8,248,236,249,169,225,160, 83,164,255,102,154,124,227,188, 91, 80,164,242,228,108, 91,179, 36,134,161, 56,107,113,196,222, 9, + 63,156, 86,132,148,225, 45,189,247,126,158,144,115,193, 30, 19,158, 79, 51,165,251, 57, 15,173,118, 84, 20,188,125,221, 26,207, + 67,105, 42,128, 28, 63, 67,214,104,156,102,143, 55,179,193, 1,210,167, 40,208, 57,116, 82, 26, 25, 6, 25, 25,170, 20,164, 66, +151,139,124, 70,198,218, 86,239,147, 71,220, 52,168,137,102,237, 14,165,187, 73,206,108,109, 43,172,197,235, 54,189,212,138,196, +191, 90,162,217,134, 14, 83, 46,245,156, 50,160, 57,102,186, 84,168,196, 72, 89,110, 28, 98,224,194,220, 80, 16, 76, 75,249, 51, +150, 71,229, 12,134,105,142, 21,141, 10,141,156,169,136, 67,230,213,132,136,216,208,155, 71,250,145, 74,115,121,168, 97, 85, 38, + 23,164,110,145,162,159,108,171,185,241, 84,124,177,107,233,184, 71,140,106, 37,174,126,139, 21, 20,180,172, 64,154,134, 81,126, +155,102,214,193,144, 54, 8, 69, 83, 38,142, 70,179,159,181,177,191,106,171,229,170, 70, 42, 28,189, 23,154, 53, 34, 18, 64,166, + 4, 83,141,123, 13, 80, 5, 37,141, 26, 94,113,105, 99,155,187,131,238, 92,206, 83,239,106,103, 81, 75,143,249,178, 67,165,223, + 8,115,244, 34,202,157,136,142,127, 77, 1,148,202,248,195,159,255, 61,252,233,159,253, 27,196, 72,148,161,183, 31, 62,226,241, +241,177,139,193, 84,109,170,206, 82, 50,140,241,124,152,101, 82,113,231, 2,104,139, 90, 18,127, 86,180, 75, 51,206,163,216,218, +222, 20,234,242,193,193, 23, 26,206,160,161, 50, 45, 23, 10, 95,124,253,219,248,240,155, 95, 35,101, 42, 88,190,250,241, 79,240, +211,159,253, 46,126,253,171,191,195, 63,252, 71,127,140,117,158,144,114,129,211, 10, 86, 1,123, 37,161,198,199,152,241,238,221, + 11,212,187, 23,156,140,134,103, 11, 87,226,120,211, 80,137, 30, 84, 0,234,212, 89,165,216,212,254,181,131, 81,148,238,149,225, + 56,250, 38,232, 75, 31,207, 75,113,166, 6,240,140,102, 26,156, 30,186, 83, 35,122, 4,213,133, 84,210,165, 41,190, 32,146, 6, + 20,179,238, 69, 88, 83, 25,172,211,252,147, 3, 81, 48,243,133, 89,134, 47,134,120,173,115, 45,132, 33, 29, 28, 18, 50,250, 19, +232,132,140,227,143,152, 48, 59,139,143,151, 27,188, 53,152,188,195, 17, 2,188,115,168, 74,195, 26,133,237,160,172,114, 36,234, + 12, 73, 81, 90,145, 10, 37,117, 25, 5,132,148,219,207,104,141,198, 30,115, 75, 24,202,181, 14,244, 46,219,160, 50,214,106,132, +144, 88, 11, 64, 7,114,229,157,191,200, 75,156,181,208, 70, 97,191,221, 26,157, 79, 10, 46, 45,130, 31, 30, 57, 78,126, 65, 41, + 87,118, 1,208,151, 48,134, 29,126, 93,144, 99,198,142,128,101,177, 4,231,137, 9,211,178, 16, 23, 59, 70,102,131, 43, 44,147, +167,209,227,141,216,223,109, 21,100, 8, 40, 67,193, 20,181,143, 82,209,179,205, 1,153, 94,141,249,232,156, 65, 62, 36,138,145, + 40, 72, 48,186,242,175, 74, 19, 76, 10,252, 73,252,210,141,237,206,234,104,153, 90, 76,158,186, 91, 41, 98, 41,225,203, 64, 91, +234,228,228,125,151,168, 84,241,171, 91,231,145, 18,197,228,150,156, 8, 26, 19, 3, 78,235,130,243,105,109,216,227,219, 22, 97, +103,135, 20, 50, 98,136, 80, 74, 97,101,173,204,118, 4, 76,134,132, 29, 79,235, 12, 40,133,199,211, 2,231, 39,242,184, 3,120, + 56,145,136,117,153,102,236,251, 6, 24, 15,203,235, 1, 99, 2,166,105,166, 49,173, 50,120, 88, 39,148, 82,241,252,248,128,201, +123,196, 68,138,119,205, 23, 15, 61,243, 20,144, 82, 75,101,159, 57,237, 60,215,101,197,245,122, 33,199, 3, 23,207,206,218,198, + 89, 55, 80,168,204,172,207, 57, 99, 93,102, 14, 26, 50,176, 90, 97,223,119, 60,174, 51, 50,128,191,253,225, 35, 61,223, 74,225, +249,180,144, 45, 47, 39,160, 26,254, 43,240, 48, 83,142,193, 50,205,188, 34, 49,136, 89,224, 49, 26,145,185, 17,161, 18,156,197, +242,231, 67,233, 94, 52, 37,169,182, 55, 2,122,252,108, 21, 69, 47, 75,243, 21, 98,196, 92, 11, 19, 38,115,187,128,181, 54, 80, +102,128,243,176, 35,134, 8,141,212,153,155, 10,158, 90,154,214, 9,151, 90, 80, 20, 5, 99,249,229,140,196,251,112,210, 75,229, +158,113, 78,194,150,134,137,142,113, 39, 4,112,206, 13,220, 83,219,153,216,169,105,149, 3,174,132,165, 65,113,182, 24,114,214, + 11,255,122,225,189, 15,235,171, 65,176, 61,102,138,246,196, 52,158,134, 22,197, 59,245,218,211,213,138,106, 4,197,170,250, 20, + 64, 13,171, 49, 42, 39, 74,107,106, 69,131,148,115,134,182,102, 8, 57,173,237,181, 55,212,171,104,213, 36, 20, 74, 10,149, 90, +251,101,222,209,240,212,192, 88, 2,108, 73, 81,231,156,135,226,105,106,201, 25,185, 36,194,196,202, 40,151, 68,112,188, 83,175, + 84,101, 20, 54,238,183,117,124, 29, 86,243,194, 37,144,241,135,146,124, 90,224,244,248,136,117, 93,113, 28, 59, 50,119,154,223, +124,251, 29, 71, 70,162, 69, 42,118,240, 74, 65, 98, 79,176,196,235, 37, 17,131,112,101, 45, 44,121,140,208, 9, 5, 76,134,140, +253,164,164, 52, 45,129,138, 68,130, 26,143,235,138,221, 89, 20,147,145, 50,240,147,159,253, 46,230,105,198,223,254,205, 47,240, +215,191,248,183,172, 38, 37,177, 30,241, 43, 10,119, 98,157,179,254, 62, 22,212,144,219, 4,252,249,249, 25,251,235, 11,229,126, +215,218,115,209,107,101, 6,111,151, 91, 54,130,209,184, 35,191, 11,188,225,157,212, 64, 18,211, 80, 72, 53,195,192, 32,183,148, +174,238, 89, 46,165, 80,212, 95,209, 48,134, 95,247, 56,194, 23,177,149,136, 90,184,203, 32,113, 21, 95, 21,181, 54,229,244,221, +222, 30,184, 3, 12,169, 97, 31, 43,171,170, 81, 49,159, 11,237,173, 79,243,132, 35, 70, 24,165,240,178,237,236, 3, 46,184,110, + 7, 82, 46, 56,175, 10,208, 6, 70,129, 59,247, 29,150, 21,192,215,237,160, 85, 1,128,203,182,243,136, 92,181,144, 19,161,255, +149, 49, 65,144,255, 58, 25,221,196,133,228, 74, 40, 28,118,131, 6,225,137, 53,183,231,198, 26,138,130,212, 28,114, 67, 99, 61, + 98, 82,151,220,125,193,214,159,176,111,215,214,185, 89,165,219,100, 34,196,132,117, 61, 33,198,140, 28,105, 47,255,252,244, 6, +183,235, 5,161, 84, 60,174, 43,226,126, 67, 44, 26,181, 36, 24,198,241,230, 82,161,106,193,118, 36, 88,230,158, 91,205, 1, 50, + 60, 50,180, 28,132, 2, 6,226, 24, 30,171, 10, 19, 60,198, 30, 38,116, 39,123,225,226, 87, 86, 99,170, 3, 78, 71,237, 83,163, + 25,130, 59, 1,203,170,116,163, 53,182,125,231,110,139,248,230,203, 76,164,177,154, 41,117, 80, 43,133,144, 51, 60, 91,172,150, +229,132,201, 79,120,121,253,200,124, 10, 71,202,243,201,163,150,140,201, 79,184, 92,111,188, 59, 87,152,189,109,175,115,246, 30, +206, 19,124,134,194, 80,136,136,232, 12,117, 45, 4,103,153,225, 24,173,250,241,229, 5,206, 26, 76,211,140,152, 18,230,105,110, +103,200, 17,104, 87,156, 11, 5, 26,197, 40,182, 69,154, 4, 30, 33,192, 89,141,253,200, 72, 57, 97,241, 19, 66, 32,182,251, 60, + 79,208, 86, 53,230,118, 5,112,236, 27,102, 79, 90, 17, 40, 13, 63, 77,168, 57, 99, 89, 87,164, 24, 97,157, 69,136, 36,160,164, +105, 84,194,105, 89,136, 89, 63,123,104, 40, 92,142, 3,151,253,224,223,147, 14,236,137, 83,225,196,121,146, 82,230, 80, 27,141, +124, 92,145, 52, 37, 8, 22,165,112, 48,135,157,138, 10,158, 8, 50, 35,221, 14, 88, 97, 99, 20,211, 1,105,124, 47,110, 31,137, + 44,197, 40,208,229,152,213, 35, 4,156,214, 21, 49, 6,236,251, 78,201,119,222, 55, 75,161, 42, 36,207,173,154,247,215, 80,172, +180,231,201, 32,175, 53, 75, 37, 43,166,214,180,226,154,153, 89, 95,161, 7,125, 20,113,238,101, 79,188,239, 59,114,206,136, 28, +155,122,196,132,117,114,173, 32,117,198,176,171,172, 23,186, 48,181, 43,104,106,109,177,212, 66,170,147, 11,189,123,135,244,253, +206, 82,186,230,238, 23,101, 93,221, 24,193,170, 58, 26, 22,221, 42, 6,173,201, 38,167,199,220, 3,180, 38, 10, 69,245,169, 42, +223,167, 33,101, 44,214,245,188,148,150,221, 49,240, 73,196, 17,197,127,165, 63,132, 41,144, 76,252, 19, 2,171,102, 97,116,183, +197,113,126,122,166, 96,164, 90,114,211, 80,233,202,251,147, 50,140,220, 43, 87,252, 5, 5,170,160,253,181, 14,194,183,210, 70, +241,165, 51,224, 57,192,163,242,190,252, 15,127,255,247, 49,207, 75, 3,205,239,199,209, 46, 57,185, 45, 36,140,163,121, 43,249, + 3,147,236,242, 50,112,171,197,199, 92, 7, 33,135, 82, 10,154,225, 23, 90,107,172,222,176,103,153,124,197,203,100,112,121,251, + 43, 44,142,144,136,222, 24,124,249,213,143,241,250,242, 17,255,229,127,241,159,226,247,126,254, 31, 96, 50, 6, 15,243,132,197, + 25, 14, 43, 97,203, 12, 39, 72,201, 59,169,249,242,248,131,159,255, 62,172, 49,116, 24, 13, 23,161,225,195, 71, 53,206,175, 30, + 20, 78,117, 72, 82,234,227, 82, 61, 80,220,104, 36,213,127,141,248,140,123,114,151,238,224, 2,238, 86,129, 30,226,208, 50, 98, +198,117, 8, 48, 60,248, 3, 74,147, 61,166, 24,118, 56,133,237, 54, 90,245, 64, 8,163, 21, 83,177, 84, 35,207,201,175,175,165, +103, 82,107,165,112,217,246,198,111,214, 12, 71, 1, 20,230,201,225,205,211,185,173, 1,106,173,148,196,102, 45,127,201, 15, 44, +179,103,174, 64,102,191, 43,253, 90,201,176,142,185,116,234, 93,237,206, 89, 98,160, 83,215, 18,142, 3, 49,101,134,223,116,228, +102,173, 21,147,103, 97,144,179, 0,143,143,115,206,156,222,212,169,134, 80,236,241,182, 6, 95,255,228,231,152,215, 7, 82,167, +199, 64, 35,105,109,176,172, 11,172,113,109, 85,146, 51,113,243, 67, 12,168, 90,225,179,199,167,246,126,205,211,140,156, 18, 82, + 5, 17,216,172,109, 2, 55,203, 84,168,156, 51, 79,149,216,101,145, 18, 93,246,204,149,151, 12,113,103,109, 27, 1,214,129, 32, + 39, 29,181, 26, 56,223,149,159,185, 86, 36,170, 10,163,113, 31, 62,162, 20, 38,239,240,252,244,140,121,154,120,228,110,218,175, + 95,167,137, 94, 27, 83,205,188,179,240, 70,227,228, 61, 30,206,103,172,203, 10,141,138,151,151,119, 48, 76,141, 52, 90, 99,154, + 28,182,219,149,216,244,222, 54,231,135,181, 22,222,251, 70, 9,115,158,198,135,222, 57, 34,254,241,247, 90,210,189,206,231, 19, + 81, 10,217,146,104,180,134,247, 83,215,131,112,113,123,221,246, 54,250, 21,152, 85, 8,129, 11,187,202, 19, 5, 77, 10,117, 13, + 44,126,226,125,188,198,227,249,132,146, 8,139,236,157,225,132, 66,215,158,241,105,154, 91,206,129,115, 14,183,219,198, 41,126, + 5,243,228,185,243,210,221, 30,202,240, 29,109,168, 0,123,127,221, 91,119, 56,123, 7,103,108, 67,252,170, 62,174,131, 82, 26, +159,175, 14,251,177,163,166, 64,118, 63,118, 55, 80,116, 42,193, 94, 66,174, 56, 82,105, 90, 10,185, 96,132, 56,103,153,143, 32, + 23,136,136, 86, 81,187, 82, 58,215,194, 41,147, 10,151,235, 13,251,182, 97,219,136,228, 23, 35, 57, 66,178, 0,141,198,202,158, + 71, 90, 5, 4,202, 18,127,186, 60,175,185, 16, 37, 17,218,180,169, 29,253,183,182, 9,116, 99, 56, 56,236,136, 92, 42, 41,103, +142,185, 70, 15,215,226,128, 45,107,204,144, 75,192,130, 82,190,103,114, 78,125, 53, 89, 74,187,176, 85, 55,123, 53, 33,156, 22, +228,177,234, 43, 45,225, 46,180,202,191,157, 39, 61, 81, 81,171, 78,158, 27, 93, 77,205,251,175, 59,191, 68,125,226, 18,203,156, +235,160,181, 97, 40,141,129, 50,166,103,167,243,132, 87,241,180, 75,248, 17,178, 14, 50,140,204,150,245,181,172,218,148,210,212, +153, 87,130,141,133, 99, 67, 60,118,196, 16, 90,198,138, 45,172,192,165,204,216,210, 3, 31,164, 83,167, 91,189, 3,103,154,226, +110,200,131, 22, 97, 79,169,119, 49,174,110,158,240,199,255,209, 31,225,127,251, 63,254,207, 86, 16,228,184, 67, 79,107, 59, 68, +197, 94, 85,101,156,196, 74, 88,169,194,156, 53,119, 72, 72,104,133, 82,248,162,225, 11,221,106, 82, 43, 26,163,113,242, 6, 69, +209, 62, 89, 88,209, 78, 3,201, 88,160, 38, 36, 85, 49, 47, 39,252,249,191,249,191, 48,185,140,127,254,223,255,183, 76,107,170, + 48,208, 72, 85, 65,171,196,151,185,168, 32,196, 51,174,241,251,191,247,115, 92,175, 87,124,120,121,105,187, 93,217,105,180,213, +132,236,242,115, 25,198,156,154,119,229,195, 30,154,105,124,122, 16,166, 53,200,128, 88, 25,196, 98,196,190,206,134,237,228,110, + 94, 72,104, 85,151, 97,172, 63, 42, 60, 7, 61,132,214,208, 92,132,201,142,186, 14, 35, 95,197, 69,202,145, 50,131, 61,128,144, + 82,227,216,139,114, 95,254,151,185,130,180,138,226, 82,141,210, 80, 70, 97,103,145,218,188,204,188,251, 37,170, 91, 44, 21,179, + 35,112,198,245,122,133, 2,237,159,107, 46, 40, 49, 49,167, 62, 99,241, 14, 71, 72, 56,228,207,230, 7, 76, 43,210, 46,140,175, + 11, 10, 28,236,195, 29, 58,123, 55,173,161,216, 66, 12, 25,244, 98,219,172,185,192, 26, 11,216,190,151,163, 61, 93,146, 40, 2, + 98, 25,248,149, 18,197,180,134,243, 19,189, 7, 74, 99,223, 54, 22,147, 49,129,144, 53, 36, 45,126, 83, 3, 85, 43, 24,235,249, +114,155, 32,179,128, 45, 39, 24,171,177, 40,219,213,204,124,241, 90, 46, 64,246, 44,211,147,202, 93,186, 6, 20, 29,114, 33,134, +230, 3,183, 90, 53, 45, 64, 41,133, 64,119,150,201,107,122, 24,185, 55, 70,186,226,113, 16,125,134,167,211, 9, 79, 79,207,184, + 94,175,184, 94,175,252, 94,138, 42,218,161, 86,214,101,176, 54,196, 89,139,196,107, 24, 85, 9, 28, 18, 67, 97,112, 16, 89,143, + 46,215, 11,214,117,193,195,233,132,219,182,225, 56, 2, 82, 74,176,142, 70,232,251,190,179,142,134,166, 1,196,195,143,141, 22, +152, 83,134, 49,142,119,132,156, 39,192,169,123,206, 57,164,152, 72,223,144, 82,179, 85,174,179,135, 53, 20,254, 50, 51,199, 98, +158, 60, 35,120,235,157,187,196, 57, 15,148,138,201,121,234,176, 67,196, 60,207,216,142, 29,128,131,214, 10,215,219, 13,147,159, +136, 52, 23, 3, 79, 24, 60,182,237, 70,174, 0, 75,100, 70,202,126, 39, 84,176,227,253,182,117, 14,241, 56, 26, 84,168,217,183, + 42,240,230,124,194, 60,121, 76,222, 67,115,152, 9, 77, 20,169,131, 63,207, 14, 31,183, 3,251,158,224,166,153,221, 20,129,206, + 59,161,185, 49,124,201, 28, 17,179, 55,112,134,144,202,242,249,202,228,243, 62,229, 11,247, 10,122,129,239,164,136, 35, 40,188, +190, 94, 90, 1,237,167,137,153, 17,159,242, 28,136, 30, 71, 69, 54, 3,190, 18,193,146, 34,127, 79,157,157, 73,107,225, 87, 4, +110,248,200,174,201, 89, 27, 41,176, 16, 48, 35,115,151, 30,115,103,198, 39, 46, 72,149, 53, 45, 50,182, 21,222, 74,119,192,153, +132,103, 85,105,150,244,253,200,106, 88,101, 10,142, 91, 11,174,118,248,251,123,126,102,103, 51,168,187, 12,133,210,157, 65, 13, + 6, 87, 59,250, 22, 34,100, 31,109,221, 44, 2,231, 96, 46,185,196,235,167, 26, 24, 53,100,192, 43,116, 32,218,253, 79, 37,196, + 18,210, 27,233,158, 72, 35, 43,157,246,121,243,198,205,142,204,247, 49,240, 65,118,114,138, 27,241,130,126,185,143, 65, 45, 93, + 51,215,133, 24,117, 72, 75, 58,159,206,248,131,223,253, 41,254,226, 23,255,142, 45, 52,172, 28,158, 23, 6, 38, 24,174,250, 10, +119, 14,190, 65, 79,100,215,172,148, 68,129,146,114,182,237,160, 91,185,158, 27, 52,161, 84,138,192,180,173,211, 5, 28,143, 46, +156,161, 44,238,227,118,197,159,253,213, 95,224,127,254, 23,255, 28, 78,170, 45, 85, 97, 81,145, 83, 79,102,210,236, 45,150,221, +209,195,249, 1,191,121,251, 61, 94, 47,151,174, 13,224, 93,174, 98, 47,169, 16,139, 26,221, 11, 93,164, 37,227, 36, 40,117, 7, +111, 17, 81, 22, 6,165,178, 28, 6,178,143, 23,210, 92, 95,104,215, 6,105,145, 15, 88,141,200,221,246,153, 42,190, 44, 11, 52, + 87,135,226, 87, 47, 35,211,155,197,102,169,244,113,176,252,143,114,130, 89,107, 81,238, 89, 14,122,208,100,200,115, 97,141, 70, +204,153, 71,160,132,181,124,247,241,149, 20,187,182, 96,219, 35,182,152, 16, 83,196,196, 41, 99, 3, 62, 1, 47,183,131, 73,119, + 21, 99,244,240,167,151,185,236,200, 87,223,211,166,214,153, 58,227,194, 95,148, 61, 70,246,211,243,197, 43,116, 42, 20, 26,161, + 30, 20,110,163,234, 24, 95, 9,168, 82,241,139,191,252,223, 89, 37,174, 16,142, 3,243, 68,145,162,235,233, 12,176, 40,198, 58, + 79, 68,183, 20, 48, 79, 19,188,241,216,119,202,169,175,197, 52,203,162,213,150, 59,122,186, 28, 99, 9, 76,167,226, 12,106, 65, +247,230, 12,203,130,159, 42,193, 49, 74, 67, 49, 56, 8,181, 79, 83,148,214,176,202,208, 5,103, 12, 28,119, 54, 2, 2, 82,138, +224, 59, 96, 43, 80,225, 93,221, 52, 57,124,245,213,215, 8, 49, 99,187, 93,113,185,188,146,203, 65,137,112,149, 46,134,217,147, + 5,140,130, 72, 56,227,188, 20,164,156,112, 58,173, 80, 90, 99,114, 14, 31, 63,126, 68,201, 9,165, 56, 44,203, 66,206, 21, 78, +225,218,143,131, 58,102, 91,176,109, 7,230,217,183, 29,107, 46,192,236, 52, 46,151,215, 94,116,240,119,193, 90,219,244, 0,225, + 8,124,193,101,134,237, 36,138,234,141, 17,206,106, 78, 87,203,112,252,243, 58, 78,119,203, 76,247, 35, 63, 61, 77, 26, 28, 95, +194,228,120,240, 56,118,178, 44, 62,156, 86,188,127, 33, 92,235, 58,211,103,250,244,248,132,109,223,201,194,153,232,207, 20,117, +186, 92,160,198,116,235,164,155, 72, 76,185,158, 86,188,123,251, 14,111, 47, 27, 79,197,152,120,232, 44,102, 79, 23,166,227,162, + 76, 60,212, 70, 43, 56, 99,240,197,121,198, 95,127,251, 22, 75,206,168,126, 2, 42,173, 48,174, 77,201, 92, 17, 51,173,187,140, + 81, 48,186,163,112,229,188,145,203, 68, 15,107,181,142,251,149,117, 86,198,118, 28,120,115,158,241,238,221, 59, 34,231,165,132, +121, 89,224,189,231,148, 63,209,240,208, 20, 34,230, 76,113,212, 7, 69, 82, 31, 49, 34, 38,250,103,170, 84, 84, 38, 63, 26, 99, +161,116, 70,202, 27,114, 12, 76,105,100,226,159,166, 85,103,206, 84, 32, 36, 57, 35,152,195,111,132,195,128,174,237,105, 0, 48, +246,150,167, 68,244, 65, 17,187, 85, 93, 7,234,154,172,119,235,221, 52, 68,201,101,221,226,178,199, 11,189, 12,123,199, 30, 16, + 84, 27, 43, 68,148,239,141,209, 55, 48, 71,198, 51, 29, 67, 28,112,159,154, 22,137,116, 22,193,174, 86, 45,127,160,111, 7, 76, +107,248, 42,167, 23,138,219, 76,166,103,165,228, 54,185,178,178,230, 16,123,160,104,161,148,130, 45,157,137, 57,248,155,122, 84, + 20,221, 51,165,119,227,162,246, 31, 85,240,204,167,237, 81,172,130,146, 85,120,185,237,248, 15,127,254,123,248,238,251,183,248, +225, 99, 70,201,116, 8,149,148,200, 63, 46,138, 70,165,218,158,202, 48, 59,156,196,113,138, 3, 97, 60,125,185,157, 67, 57,246, +182,219,168, 6, 77,213,172,181, 70,174,138,113,146,132, 95, 37, 53, 96,133,206,192, 97,105,212,241,246,219,111,240,203,191,252, + 51, 92,175, 47, 88, 38,199, 59,113,186,244, 62,230,140,217, 91,246, 66,223,143, 87,174,183,219,221, 58, 96,156,121, 75,101, 62, + 22,139,181, 81,188, 36,249, 73,223, 95,162, 74, 19,167,183,118,235, 91,203,234,110,112, 4,116,230,248,176,199,238,127,148,124, + 14, 5, 80,230,254,103, 27,195, 45,100, 36,165, 85,103,100, 11,176,130,181, 37, 57, 23,194,154, 14, 23,169, 82, 12,128,209, 61, +248, 64,196,115,117, 8,240, 32,193, 14,133,173,136, 64,103,143,100,233, 42,165, 66,231,130, 84,129,160, 18,142,152,240,230,188, +226,215,239, 62,192, 58,139,235, 17, 16,184,168, 75, 57, 99,114, 22,123, 32,154, 95, 30,222,211, 49, 31, 92,236,128,147, 55, 93, +228,199, 96,160, 61, 68,156,151, 25,183,125,167, 92,121,153,162,176, 72, 80,113,222, 61, 29, 64, 14, 41, 39,164, 74,251, 98,203, +239,179,115, 51,114,222, 17, 34,141,181, 38,127,194,105, 93,136, 50,182,111, 45, 73, 43,112,130,148, 49, 22,251,177,225, 96, 88, + 75,136, 1, 70, 25, 44,235, 9,251,177, 81, 20,110,162,125,110, 74, 17,129,253,188, 34,150, 36,191,184,172,183, 50, 21, 37, 60, +210,117,206, 2,156,253,109,180,130,230,189,116,230, 80, 25, 26,121,211, 65,188,239, 59,187, 67, 12,114,166,231,204,178, 93,212, + 88,139,135,243, 3,214,211, 25,175,175, 23,220,182, 43, 66, 32, 21,123,169, 5, 86, 49,102, 84,129, 11, 59, 78,224,210, 10,126, + 89,154, 80,231,136,148,140, 53,113,138,157,117, 14,206, 45, 56,142,128,197, 57,132, 99,135,177, 22,251,113, 80, 74, 27, 19,245, +140,181,184,222, 54, 58,144,152, 60,119, 28, 59, 63,135, 36, 4, 51,154,132,148,130, 57,165,159, 61, 17,192, 7,149,118,191,138, +210,223, 98,162, 46, 61,132, 72,150,216,156, 96,180, 65,202,169, 93, 18,165,210, 84,207, 50, 39, 67,162,143,173, 53,212,229,175, + 11,187, 69, 88,225,207,197,174,177,150,246,240,206, 33,132,136, 16, 54,120,231,144, 98,196, 52,121,132,152, 48,123, 79, 59,125, + 67, 89, 22,165,208, 57,245,242,122, 1,180,193,198,172, 5,160,226,179,243,137, 4,147,252,185, 78,142,227,125,121,226, 85, 42, +177, 60, 78, 0, 62, 59, 47,248,238,253, 11, 78,167, 19, 44,175, 72,156,170, 8, 50,114,175, 21,123,204, 48,134, 80,188,159, 6, +108,137,142,132,231, 90,159, 28, 8,164,205,201, 57,227,245,114,129,250,226, 25, 47, 47,175,168, 32,224,203,194,197,171,227,137, +154, 22,182, 2, 95,202, 33, 70,220,246,141,136,127, 71, 64, 8,129, 86, 94,218,242, 30,154,138, 47, 74,180, 12, 72, 49,240,116, +181,182,216,214,202,248,223,200,127,111, 52,250,218,143, 67,162,106, 81,237, 98,110, 25, 22, 60,137, 43, 37, 83,122, 98, 29,213, + 53,154,197,113,178,233, 28, 47, 97,133, 49, 8, 79,245,251,155,118,247,159,138,116,196, 79, 94, 89,128, 39,151,189, 30, 54, 17, +218,240, 4, 76,114, 17,106,135,142,181, 6,161,140, 35, 0,154, 16, 12,197, 86,155,188,118, 70, 43,106,166,238,219, 24,221,236, +178, 93,180, 40, 72,246, 78,211,236, 30,120,213,244, 7, 22, 67, 58,215,248,202,104,212,200,227,129,182, 99, 71, 35,241,212, 79, +172,109, 52, 98, 24, 99, 97,168,122, 50, 86,227,186, 5,252, 39,255,228, 31,227,127,250,151,255, 43,239, 16, 52, 82,220,225,205, +153, 14, 27,137,145,100, 4,171,102,161,156,236,114, 41,135, 58,147, 95, 28, 10,176,142, 62,220, 20,104,207,202, 1, 14,172, 23, +161,131, 89, 3,202, 40, 76,214, 80,124,157, 86, 56, 98,133,174, 5,151,247,111, 17,183, 11, 12,123,151,169,203,167, 75,194, 91, +202, 86, 14, 60, 10,202,131,120, 45,167,212, 70, 49, 29,163,169,239,166, 22,119, 99,159, 54,169,233,170, 56,233, 72, 20, 20, 63, +208,170,117,235,194,203,167,177,177, 60,133,212,227,231, 82,134,193,122,223,161, 75,192, 71,174, 5,182,109,147,208, 20,155,146, +184, 70,156,116,234,220, 36,183,189,193, 88,248,242, 55, 26, 67, 56, 8,191,254, 92,105,111,204,209,175,141,107, 95, 42,171,242, +123,102,114,204,157,154,151, 88, 81,123,219, 15,172,243,132,237,136,152,188, 39,187,135, 82,248,254,133, 24,217, 37, 49,183,160, + 20,178,193,113, 70, 49,170, 28,118, 61, 62,118, 36,161, 9,114,205, 27, 74,200, 18,216,134,115,100, 25, 2, 43,119,181,209, 20, +139, 90, 73,163, 81, 43,249, 95,115,142,220,101, 49, 38, 55, 23, 84,107, 17, 19,131,107,160,144, 50, 9,169,188,247, 88,214, 25, +126,154, 27,123, 90,188,252,168, 21,167,101,109, 41,133,154, 59,113,242, 53, 83,130,148, 53, 14,183, 16,144, 57,114, 49,132,132, +201, 83, 1, 91,107, 65,140,253, 11, 90, 43, 29,141, 70,107,242,188,243,222,114,178, 20, 35, 41, 68, 68,173, 21,156, 35,253,134, +181, 6,206,208, 52, 43, 38,162,176,105,173, 97, 29, 93, 54,206, 57,104,235, 49,207, 11, 30, 30,158,112,187, 93,177,221, 46,228, +247,118,132,125,245,108, 37, 44, 60,209,146,103,120,246,158,243,187,169, 24, 74,137, 66, 35,166,105,194,237,118,107,235,152, 90, + 43,230,201, 99, 93, 87, 56,235,240,114,121,165,215, 48, 77,120,189, 94, 49,123,199,118, 68, 2,242, 24,100, 90, 21, 20, 18,178, +161, 22,222, 69,107, 94, 9, 21,148, 28,121,228, 78,151,246, 60, 45, 48, 90,227,182,239,216,142,116, 39, 8, 83,195,228, 76,138, +167,201,249,142,137,205, 25,110,154, 96,148,194, 30, 2,188,167, 68, 63,197,241,172,137,245, 18,126,242,136, 33, 16, 84, 37,147, +144,173,148, 66,194, 63, 41,244,141,134,142,149,167, 13,100,249,116,214, 34,134, 3, 17, 10, 31, 95, 95,248, 50,232,174,147,135, +117,134,247,142,158,151,121,226, 11,147,223,228,196,223,121,246,234,127,254,244,136,239,223,191,224,122,189, 97,246, 22,102, 51, + 56,175, 51,106, 0, 66, 42, 13,141,122,196, 4,111,109,227, 11,224,206,181,132, 33, 52,232, 46,218,163,157, 85,219, 30,104,242, +163, 20,222,189,251,128,112,144,104,110,154,167,214,173,107, 22,223,201,107,141, 41, 97,219,119, 92,111, 55,108,219,142, 35, 68, + 84, 69, 60,255,148, 19, 82, 4,178,186, 33, 14, 25, 28,170,168, 78,151,227, 21,139, 40,196,133,216, 38,246, 99,177,225, 25, 13, + 24,152, 65, 15,192,201,130,172,151,200, 37,243, 74, 81, 53,129,220, 72,170,215, 13, 33,221, 5,165, 50,141, 4, 83, 9, 75, 29, +128, 94,172,134,175,195,200,190,214, 30,145,170, 27,196,171,131, 98, 42, 42, 39,175,117,144,171,188,203,198,176, 85,210,154,190, + 58, 17,187, 96,227,207,115, 54,186,234,211, 86,113, 33,212, 38,164,251,247, 87, 43,162,148,151,105,157, 88,173, 75,161,251,205, + 22,140,163,247,206, 9, 86,226,239,171,227,131, 80,217,186, 62,250,213, 75,167,244, 72,199, 94,208,168, 92,181, 2, 47, 71,196, +100,129,175, 63,127,131, 95,126,251, 93, 19,114,164, 24,200,162, 86,228,141,112,204,147,230,145, 34, 11,169, 90,200, 61,139, 82, + 38, 59,145,208, 9, 22, 85, 27, 40, 21,251, 56,133, 11, 20,175, 72, 65,235, 53, 80, 42,237,125,117, 46, 72, 89,227,118,125,165, +106,145, 69, 42,210, 21, 71, 62, 44,171, 49,247,114, 97,244,144,122,110,119,219,104, 69, 13,123,114, 12,177,170,106, 32, 2, 73, + 39, 50, 22,109, 21,133,189,226,157, 2, 35,251,151, 50,136, 90, 84,173,119, 16,154, 42,137,121,146, 97, 47,105,120,133,245, 15, + 93,115,207, 25,236,252,185, 48, 54,149,248, 10,165,239,147,106, 79, 34,106, 1, 9,170, 55,252, 70,141,186,123,122,216,197,214, + 84,100,239, 95,250, 62,191,176,208,209, 24,221,120,226,219, 30, 48, 57,139,235,126,176,154, 26, 61, 27,155,149,249,146,226,231, + 12, 89,121, 74, 23,169,182, 96, 29,133,218, 3,142,248,113,180, 90,241,254, 79, 44, 62,244,251,236, 49,145, 48, 47, 85, 36,168, + 22,113,170,106, 69,213,185,229,133, 31,199, 14,109, 12,137,163, 64,246,160,146, 51,172,177, 80,218, 34,229, 3,167,135, 71,212, +156,113,236, 27, 41,159, 13,237,184,115, 41,240,222,226,118,187,192,184, 25, 78,233,102, 51,185,109, 23,120,235,112,221, 34,182, +237,198, 64, 37,133, 80, 20, 30, 30,206,208,149, 14, 37,249,194,203,161, 39,133,237,108, 53,227, 49,233,192, 44,133,198,217,181, + 72, 70, 52,229,210, 27,142,107,205, 28,142,163,215, 21,151,235, 13,139,119,180, 16, 83,100, 83,115,126, 6, 20,240,241,253, 59, +108,183, 87,178,125,241,154,101,178,174, 9,240,104, 36,156, 97,148, 97,113, 89,196,227,249,220,121,221, 57, 97,153, 87, 86,162, +203, 94,156,246,135,167,211,137, 51, 22, 98,251,142,239,199,193, 35, 87,210, 85,152,117,229,125, 56,112, 28, 71,251,174,132, 68, +130, 41,199,246,210, 99,223,155, 19, 6, 74, 97,114,228,255,190,110, 59, 91,238, 42, 22,101,184,216, 16,125, 14, 81,204,106, 45, + 52, 42, 71,229, 78, 59, 96,241, 51, 61,103,131,238,135,184, 22,150,210, 1,181, 6,144, 16, 99,160, 49,126,136,124, 38,209,238, +123,219,119, 34, 9, 26,131,125,167,110,118,219, 3, 57, 24,184, 35,252,240,114, 1, 80,177,206, 51,254,250,187,119, 77, 99,244, + 48,121,172,243, 76, 35,118,235, 90, 33, 65, 78, 6, 42,114,197,221,115, 62, 81,166,252,215,159, 63,225,111,190,125, 75, 32,161, +122,195,105,118,120,152, 29, 62,108, 17, 57,211,119, 50,102, 82,178, 43,118,235,160,210,101, 86, 89,176,247,105,151,174,134,229, +122,195,155,198, 8,235, 61,126,248,225, 29, 66,140, 88,118, 90,145, 56,231,217,109,161,219,238, 88,242,211,247, 16, 41,127,227, +136, 72, 12,198, 41, 37, 33,133,138,172,129,176,109,119, 35,118, 42,144,104,116, 76,250,230,204, 86,182,210, 98,156,165,225, 33, +151,142,225,163,166,180, 38, 70, 38, 5,165,130,186,116, 22,162,169,134,233, 84,157,249,166, 6, 77,129,234,142, 33,193, 44,203, + 39,166, 89, 72,170,135, 53, 72,101,162, 92, 45,170,131, 99,196, 2,223, 88, 17,159, 68,252,222,161,229,105, 58, 84,235,152,162, +169, 97,116, 69,102, 58,164, 6,139, 43,181,254,196,222,108,218,138,132,179, 79,219,106, 5,124, 86,246,128, 37,134,156,213,238, +106, 40,136,161,214,207, 0, 0, 32, 0, 73, 68, 65, 84,124,223,218, 59, 72,123, 11,148,161,174,188,178, 32,161, 42,116, 92,101, + 3,243,143,222,253,122,215,177, 11,120,190,200,155,162, 53,140,113,248, 39,255,232, 63,198, 47,255,151,127,201,234, 67,160,164, + 0,205, 92,105,169,178, 53,147,131,156,243,180,191,227,174,200,242, 67,111,141,164, 9, 45, 92, 97, 7,232, 76,118, 21, 61, 92, + 70, 34,152, 74,150,194, 14,182, 88, 24,121,170,145,227, 65, 23, 65, 81, 20, 4,146, 42, 20, 7,109,180, 12, 12,133, 6, 40, 41, +178,147,209,186,217,187, 70,244,171,196,241,181,201,197,224, 39, 22,227,185,196, 93,210, 69, 43, 99,118,180,238, 72, 30,104, 53, +240, 1,186,162,178,220,109,128,234, 40,162,144,255, 30,132,246,149, 44, 95,114,183,162,137,196, 70,101,230,157, 30,226,206, 38, + 87,121, 20, 92,216,114,216,121,226, 82,225, 74,212,166, 20, 89, 89,162, 45,135,181,130,225,113,175,116,222,128,198,118,132,230, +118,240,214, 65,213,130,172,104,253, 98, 45, 41, 61,247, 35,226,224,188,100,217,175,150, 78, 69,186, 43, 62,186, 90,214, 52,214, +193,228,201,202,100,180,194,190, 71, 78,212, 51, 40,153,163, 56,115,134, 86, 21, 37,115,106, 93, 73,164, 82,182,204,203,206,137, +211,220, 20,230,229,140, 15, 31,127, 24,248,246, 76, 50, 99, 27, 85,136,113, 16, 59, 25,196, 20,176,204, 79,152,167, 25, 37, 71, +204,126,110,221,187,113, 30,251,237, 10,171, 21, 38,173,128,146,104,130, 80, 65, 30,254, 35, 16,100,103,176,158,121,231, 72, 92, + 24,115, 59,160, 82,138,116, 64, 56,241,211,163,177,223,157,181, 56, 2,165, 5, 46,211,196,130, 83,139,135,135, 39,132, 16, 8, +242,147, 50, 82,220,121,231, 30,225,140,197,196,248, 92,239,136, 37, 96,180,129,179,134, 46, 92, 99,112, 94, 23, 78, 56,180,184, +221, 56,253,142,237,129, 90,107,138,183,133,194,204, 44,116,193, 63, 87, 33,220,241,103, 53, 77, 30, 57, 37, 88, 75,163,115,101, +116, 19, 9,202,119,105, 93, 23,228, 92, 41,196,131,247,134,133,167, 62, 94,107, 92,110, 55, 94, 13, 84, 76,126,193,126,236,112, +214, 49,149,143,214, 5,198,104,232, 66, 35,120,239, 61, 43,171, 85, 3, 47,101, 70,161, 42, 67,107, 4,239, 61, 91, 11, 11, 59, + 0, 82, 39,171, 25, 13,231, 28,174,183,141,154, 16, 0, 37,101, 76,222, 98,219,143,193, 33,163,153,174,103,145, 14, 26, 75,151, + 34,193, 60, 21,159, 61,158, 40,184,133, 93, 62,178, 18,145,116, 57,205, 1, 52,148, 44, 72, 63,199,103, 79, 15,120,189,237,120, +127,217, 80, 74,193,235,182,227,179,179,193,143,158,206,248,246,221, 75,123,254,183,152, 96, 21,224, 13,159, 47,188, 6, 48, 90, + 53, 92,240, 61,144,178,222,193, 41,223,189, 92,240,163,231, 71, 40,235,240,225,245,134,237, 8,152, 55,215,115, 47,152,205, 81, +249,247,206,165, 32,166, 76, 66,214, 24,105,199,171, 65, 98,190,170,104,202, 89, 50, 66, 76,124, 17,167,230,134, 18, 38, 64,183, +145,130,211, 4,199,100,192,130, 82, 58, 92, 70,206,219, 84, 50, 82, 76, 44,214,203, 44, 74, 30,112,220,124, 46,200, 29, 32, 77, +213,232, 10, 82, 44,144,107,212,244, 74, 23, 44, 69,155,234,182,210,107,233,154,184, 79, 68, 68, 85,109, 69,218, 38,161,163,113, + 84,117,248,141, 82, 64, 56, 40,237,211, 24,211,222, 71, 88,246,148, 14,141,116, 23, 83,102, 40,158,156, 43, 38, 71, 10,222,187, +178,179,160, 59,165, 36,133, 14,131, 30,133,207, 68, 25,173, 67,245,241,239,168,148, 20, 13,156, 44,245,203, 72, 12,175,232,244, +185,161,225,175,170, 52, 11,129, 40,229,141,117, 88,157,185, 31,242,171, 94,161, 40,208,195,232,157,231, 81, 42,117,130,222, 10, +227,152, 46,139,153, 99, 2,101,215,163, 17,161,138,102,143,186,110,252, 91, 81,202, 35, 21,148, 74,132,174, 84,129,201,106,148, + 28,219, 27,111,152, 41,128, 70, 81, 99,158,113,233,177,120, 2, 54,185, 87, 45,214,182,159, 83,170,183,143, 34, 78,175,195,229, +174,196,247, 57, 68,178,202,133, 75, 54, 47,213,169, 71, 77, 44, 87, 63, 97,195,210,159, 85, 74,238,136,220,218,133, 25,253,129, +234,157,118, 11, 3,169,146,164,213, 31,244, 59,249,132,234,137, 71, 40,181,233, 24,154,160,100, 20,100,148,190, 39,210,198,180, +252,226, 6,177, 41, 84,145, 42,206,240, 70, 37,244,172, 20, 32,185, 84,216,133,226, 72, 13, 7, 33,228, 82, 8, 21,171, 0,111, + 41,135, 90,241,184,173,126, 2,235, 25,127,118,173,129,231,243,138,196, 93,170, 60, 55, 33,208,239,233, 39,135,235, 30, 49, 89, + 71,207,182, 70,163, 28, 86,254, 12,100, 60, 6, 85, 96,181, 65, 74,180, 35,158,231, 51, 82,162,136,204,156, 34,204,228,145, 99, +230,196, 55, 34,198,169,170,216, 70, 23,177,172, 39,228,148,177,151, 27,220,178,242,174,254,192, 52,207, 56, 94, 62, 96, 89, 22, +236,151,143, 8, 71,192, 52,123,236,123, 64, 72,145,186, 28,246,212,103,198,114, 90,231,241,217,155,103,234, 92, 93, 65, 74,140, +147,229, 98, 58, 70,250, 89,173,209, 92,180, 36, 0, 6,167,101,109, 97, 47,211, 52, 3,160,137, 87, 74,137, 58,195,154,224,140, + 66, 76,180,115,181,150, 96, 43,203, 52, 97, 59, 2, 91,185, 10,114,138,128, 82,120, 88, 23,196,148,176,240, 20, 35,151, 12,175, + 29, 67,138, 42,246,227,192,228, 39, 60, 61,145,133, 79, 27,141, 35, 37, 28, 71,104,142,143,156, 51, 30,206, 39, 42,251,156, 67, +140, 7,129,132,246, 64, 92,111,177,247, 25,131, 99, 63,160,140,134, 53, 22,243, 52,195, 77,212, 49,123, 71, 2, 52, 85,105,253, + 96, 56,206, 85,138,253,196,103,133,209, 26,219,193,128, 25, 0, 49, 4, 4, 40, 44,243, 66, 97, 79, 41,192,106,242,148, 23, 0, +111,158,159, 89,212,165,216, 62,166, 16,183, 29,213, 82, 71,119, 28, 1,147,247,112,206,225,253,203, 43, 38,103,217,213, 37,129, + 32,228,162,200,137, 46,175,125, 63,224,141,198,219,215,107, 59, 47,181, 82,148, 59, 80, 43, 1,124, 4,135, 92, 43,142,253,128, + 51,166,173,215,102,182,252,237,251,129,211,186,224, 71,207, 15,184,108, 59, 66, 46,120,189,238, 88,172,193, 87, 79, 15,120, 88, + 39,188, 92,119, 46,146, 25,129, 10, 26, 89,107,214, 35,149,113, 50,120,239,137,193, 88, 23,191, 92, 54,124,254,120,194,249,124, +194,109,219,113,221, 14, 28, 33, 18, 45,144, 81,184, 50,130, 23,203,109,202,133, 11, 72,114,185, 84,232,214,144,108, 71, 64, 44, +138, 52, 35,188,194, 16,251,108,102,173, 3,233,146,232,243, 34,152, 10, 29,154, 66,148, 35,117,124,207,122,168,133, 66,172,100, +167, 63,134, 99,169,162, 72, 74, 36,118, 53,168,102, 81,213, 74,221,165, 26,106,254,191,118,166,203,229, 95,209,115, 22,164,239, +209,146,185,208,115, 49,250, 89,212,215,203, 85, 13,231,188, 82, 77, 7,181,172, 11,150,101,230,215, 83, 56,154,155,180, 60, 74, +139,208,155, 5,172, 37,163,148,140, 1,178,218,104,152, 77, 76, 55,168,235,139, 20,255,186, 83, 50,107, 15,195,232,157,250,200, +117, 31, 85,146,117, 0,206,244, 70,175,244,253,205,232,136, 71,183, 79, 21, 69,180,172,194, 95,130, 91,200,112, 22, 28, 68,208, + 69,121,205,176,175, 20,172, 6, 87,221, 96,251,137,107,120, 82,201, 11,246,222, 13,221, 89, 69,184, 70, 30,191, 2,179,213,136, +220,149,201,238, 35,229,138, 35,101,164,170, 26, 35, 55,197, 72, 89,197, 80,176, 0, 98, 11, 38, 82,125,148, 62,198,160,138,138, +114,132,176,104, 61,208,244,186, 44,187,223,229,186,227, 1, 69,232,198,202,198,102,141,108,251,156,218, 10,151, 49, 23,120,204, +178,134, 26, 71,248,125,199,100,196,175, 94, 42, 10,114, 47, 48, 84,147, 68,210,120, 86, 48,170, 45, 33, 14, 60,185, 80,232,162, +253,202,124,246,204,239,111,105,216,201, 90, 43,140, 60, 60,131,112,198, 48, 32,166, 61, 92, 2,189,224, 84, 38,169,182, 69,128, + 38,212,192,148, 11,246,156,225,216,163,233,157, 69,202, 25, 49,101, 22,200,213, 1,147,219,193, 55,117,208, 12,104,109,144, 74, +225,142, 54, 82,218, 91,243, 52, 43,228, 64,246,184, 90, 85, 11,142,208,156, 39,175, 42,179,199, 21,225,117,181, 97, 11,162, 34, +181,105, 25, 70, 90, 20,128, 99, 48, 47, 11,246,237, 70,191, 71, 58, 0,109,144, 98,128,182, 26, 37, 69, 36,109, 80, 97,160, 66, + 64,214, 25,202, 24,168,170,225,252,140,154,105,130, 16,114, 70,188, 94, 41,152,196, 18,176,227,224, 12,117,249, 28,190,120,243, +204, 9, 85,134, 16,180,229, 32, 81, 20,136,119,110,153,156, 87,249, 32, 76,185, 98,157, 28,156,115,176,110,130,113, 14,215,235, + 43, 52, 20, 62,190,146,178, 93,163, 96, 15, 7, 21,206,198,194, 79, 30, 86, 43,196,148,200,179, 12, 58, 76,173, 54,216,227,129, +167,135, 7, 94,121,144, 32,240,227,203, 43, 78,235,138,148, 8,119,235,189,195,237,186,193, 56, 79,228,181,137,118,212,215,203, + 5,235,233,220, 14,242,245,116, 38, 40, 80, 46,200, 57,114,151, 68,239,171, 68,210, 90, 67, 99, 71,203, 26, 2, 99, 45,220, 68, +107,154,144, 42,172, 73,200, 49,182,247,240, 97, 89,219,158, 93, 56,216, 37,209,193, 25, 83,130,174, 21, 33, 23, 40,163, 48,251, + 9,251,190, 97,158,103,234,108, 67,192, 58,123,164, 92, 49,205, 11, 82,140,132,237, 5,176,237,219,240, 29,167,117, 1, 53, 19, +164, 89, 88,230, 9, 57,229,187, 32, 33, 73, 0, 12, 41,115, 35,163,113, 57, 98,123,110, 63,123, 88, 73, 73,110, 12, 23, 4, 26, + 33,144,163, 32,196, 72,186,149,162,154,104, 46, 69,226,202,215,226,240,120, 62,225,171, 55, 1,127,251,246, 61,246, 24,241,241, +186,225,225,182,225,139,231, 51, 98, 76,216, 66,106,197, 96, 42,104,147, 45, 65,171,226,142,162,134, 59,214,185,156,153,123,140, +184,222,118,120,231,113, 58,173,184,109, 59,142, 24,233,245, 4,213, 34,155,181,181,168, 12,103,162, 98,151, 86,108, 74, 99, 40, +216, 11,174,251, 1,165, 45,191, 70,201, 85,207, 45,231, 64, 46, 57,203, 83, 79, 35, 83,176,218, 18,194,144, 51,218,212,148,214, + 81,153,115,219,115,203,107,151, 52,179, 58,230, 72, 75, 60,173,196,175,136,237,172,212, 33,119,163,235,158,138, 68, 14,179,176, + 87, 4,207, 96, 8, 91,213,221,197, 85,170,248,210, 63,213, 80,213, 54,113,237,205,170,194,186,158,112, 58,211,170,233, 56, 14, +148, 35,240, 61,161, 9,201, 59, 82,228, 50,175, 69,235,160,111, 27, 68,118, 99,152,143,208, 32, 33,222,123,109,208, 22,254, 85, + 58,245,118,105, 99,224,242,242, 27, 49, 94,206,195, 31, 52,254, 55,205,198, 38,100, 28,177,165,176,255, 14,252,207,142, 92,241, +225,227, 11, 38,239,120,124,162, 89,120, 19,224,167,133,241,140,232,249,186,124,145, 86, 22,130, 57,103, 49, 77, 19,163, 26, 9, +245, 89,106,197,107, 78, 80, 44,174,177,168, 8, 44,240,210, 74,195, 48,103, 87, 62, 65,175,169, 58, 74, 49,180, 67, 59,243,221, + 23, 57,141, 76,178,225, 91,222,117,189, 23,189,137,226, 91, 15,151,126, 29, 50,190,165,216,128,162, 87,216, 71,240, 69,150,233, +252,183,149, 65, 14, 50,142,231, 85, 71,173, 61, 0, 64,141,113,246,221, 3, 57,250,209, 91, 53,203,126, 74,240,133, 44,197, 68, + 29,198,247,244,122, 89, 56, 36, 15,202, 39, 95,120, 81,235,138,231, 90,108, 36, 98,139, 27,247, 52, 36, 66, 43,109,250, 32, 94, +206,116,159, 45, 71, 95,206, 90, 90,246,114,140,212, 89, 59,163,154, 40,206, 90, 67, 85,125, 83,133, 82, 82, 23,173, 3,238,189, +182, 50, 22,147,231, 32,231,210, 2,103, 14,182, 32, 41, 69, 28,116, 83, 41, 20,230,118, 4, 40,101,187,224,177, 82,161,131, 82, + 6,172,171,124,225,108,243,148,230, 82, 48,207, 11,182,253,134,117, 89, 96,157,131,113,116,129, 29,183, 11,230,133,178,226,133, + 43, 30, 82,194,228, 93,139, 20, 62, 66,128, 49, 6,225,184,194, 58,143,117, 90, 80,114,132,158, 12, 66, 60,200,178,149,232,217, +159,253,132,223,249,173, 31,195,106, 80,140,108, 36,221, 71, 41,100,203,202,137,156, 33, 98,169, 49,214,192, 24,143,170,105,196, +185, 44,167,198,252, 87,165, 34, 85, 96,153, 23,172,147,195,245,118,131, 51, 14, 65, 81,116, 46,237,249, 20,170,233,107, 36,231, +168,163,156,230,137, 82,255,246, 3,206, 89, 92,174, 87, 76,147, 67, 96,187,152, 49,116,249, 44,235, 66,157,167,161, 85,192, 17, + 2,188,247,128,162, 9,204, 52, 77,252,221,245, 80, 41, 1,149, 20,209,114,161, 4,182, 68, 25,173,113,217, 55, 44,243,204, 23, +159, 97,255,186, 2, 74,192,182, 71,118, 24, 24, 44,214, 34, 4,162, 15, 26, 40, 4, 46, 84,140, 53,216,247,192, 52, 74, 26, 27, + 31,129,249,228, 41,225,114,189,226,179, 55, 79, 40,215, 13, 49,102,248,217,227,122,189, 17,244,167, 20, 28,137, 70,241,219,182, +193, 79, 19,175, 44, 72,232,116,219,118,156,215,181, 29,186,114, 78, 89,203, 78,158, 66,233,103, 70, 1,183, 35, 48, 74,154,192, + 49,167,121,106, 28,129,170, 0,205,133, 75, 8,169,113, 9, 4, 52,162,249,217, 71,169, 72, 37, 99,153, 39,188,121, 58,227,229, +186,225,135,235,134,203, 17,240,246,253, 7,252,236,116,194,103,143, 39,252,230,195,165, 69, 17, 39,254, 34,219,210, 33, 56,194, +170,184, 35, 69,182,200, 93, 90,255,149,156,241,241,122,195,155, 71, 98,225, 75, 0, 87,138,137,187, 65, 71,176,166, 68,151, 57, +184,136,162, 11, 93,183, 37,182, 82,192,198,138,120,165, 51,142, 16,105,130,151, 11,195, 98, 10, 7, 14,245, 9,168,213,252, 12, + 86, 98, 44, 72,188,172,160,167,133, 88,151,216,202,152, 82,110,218, 37, 1,112,181,203,186,221,235,157,218, 86, 91, 8, 82,231, +156,244,208, 43,234,114,197,191, 46,151,114,225,233,248,221, 62, 93,118,222, 18,105,203, 4, 85,137,157,174, 18,246, 90,187,188, +222, 88, 11,109, 44, 28, 23,230,214, 78,205,218, 70,110,142,122, 55, 66,175,220, 76,136, 64, 60,165,216,132,179,181,220,139,176, +123,227,166,238,199, 47,160,103,204,202, 94, 75, 60,232,170,229, 46,143,227,219, 33,137,237, 46,204,133,225,244,178, 27, 19,193, + 23, 43,201,229, 66, 71, 41,120,217, 46, 56,213,140,243,186, 98,219,143,150,119, 91, 90,229, 69, 85, 16,101,143,103,174,126,116, + 59,224, 29, 19,181,156, 53,240,204, 99,174,181,210, 1,109, 28,113,195,179,100, 66,163,101,234,130,163,245, 10,168,211,212,214, + 32,199, 58,236, 34,200, 74, 4,173, 80, 50,143,100,181,193,145, 98, 79,203,105,234,117,213,124,137,205,166,102, 12,125,200,160, +125,189,236,138, 68, 33,222, 85, 8, 76, 44, 26,216,238, 50, 2,110,217,234,106,128,211,180,137,129,110,151,114, 67,126, 14, 74, +248, 94, 37, 48,101,140,237, 32,125, 91, 94,248,247,167,234,253,238, 57,168,149, 56,212,252, 90, 10, 11,220,228,210,206,237,115, + 46, 13, 52, 36,140,247,218,168,102,104, 57,239,170,177,226,213, 29,210,183, 86, 18,171,169,182,104,168, 72,169, 34,231,230, 16, + 69, 72,169, 81, 13,203,144, 82, 84, 24,176,208,213,165,253,149, 91,205,145,184,124, 0, 72, 96, 70, 77, 25,243,228, 26,251, 93, + 4,155, 80, 52,133, 80, 85, 60,220, 20, 3,108,170,226, 80, 28,213,132,127,178,203,215, 74,225,245,242,138,167,135, 71,194,179, +214, 2, 99, 61,226,118,133,210, 6,235,178, 32,166,120,183,143, 85,198,181,181,148, 41,133, 15,120,141,203,237, 21,198, 59,196, +237,192,237, 22,144,114,228, 41,128,198,143,222, 60,225,119,126,251,183, 97,173, 33,180,114,162,226,140,198,238,244,236, 89,107, +225,180, 67, 17,197, 56, 63, 21, 79, 15, 15,252, 76, 22,156,230, 25,219,182,227,241,241, 1,219,182, 97,187, 5,252,230,237, 11, +214,245, 4,235, 44, 22, 40, 18,251, 89, 18,177,201,202,194, 26,242, 69,248,101,198,113,236,184,222,232,146,245,206,225,182,109, + 64, 5,206,167, 83,123,214,172,181,184,220, 54,254,247, 59,172, 37,239,247,227,227, 35,194, 17,240,245,215,191,133, 15, 31, 63, +192, 26,139,125,223,224,140,129,183,182,173,201, 98, 12, 20, 18,130,138, 61, 4, 44,243, 66,147,139, 2,226, 1, 24,131,253,118, +193,245,182,193, 89,218,191,159, 61, 89,201,188,115, 40,153,188,249,211, 60,147, 61,235,122,107,128, 40,153, 58,158, 88, 52,248, +120, 94, 17, 83,198,235,235, 13,214,106, 88,235, 96,141,167,117, 30,175,251, 80, 11, 98,136, 56,159, 78,136, 49,162,148,130,117, +165, 85, 95, 74,137,154,136,156,219, 56,218, 58,139, 99, 39,200,204,182, 29,152,173,129,113, 22,255,238,251,247,116, 49, 87, 96, +157,124,163,217,105,246, 95, 11, 52,197, 48,172, 7,181,239,185, 19,199,189,230, 66, 64,173, 92, 20, 30, 79, 39,124,241,188,227, +101,219,145,114,198, 15, 47, 87, 60,189,188,224,124, 58,227,121,157,241,253,203, 85,238, 6,148, 10, 36,209, 50,141,156,140, 70, +163, 44,119,241,140,165, 80, 88,210,235,117,199,228, 92, 19, 5, 46,218, 34,121, 22,110,230,212,192, 64,154,149,230,180,182,233, + 2, 91,107, 53,142, 35, 96,143, 9, 59, 23, 67,145, 45,155,178, 15, 46,108,219,115, 66, 72,108,234,127,230,113,176, 72, 84,134, +197, 2,226, 74,124,153, 83,241, 84,218,238, 92,244,230,106, 72,196,236, 46, 8,161, 40,222, 95,244, 90,245, 83,164, 43,227,217, + 33, 62, 26,215,203,125,138,102,225, 59, 77,146, 29,155, 99,172,141,196, 27, 98,164, 89,149,193,171, 70,173, 45,148,225,245,107, + 76,228,219,103,113,103, 5,189,110,165, 21,252, 52, 99, 89, 79, 60,161,162, 38, 37,236, 27,194,177,163,196,120,151,248,134,113, + 93, 32, 99,250, 22, 88,213, 2, 93,208,108, 17, 69,140,239,204,113, 31,123, 46,249,178,180, 14,190, 54,242, 59,249,250, 68, 68, +214,212,241,247, 29,251,116, 58,227,139,231, 71,252,240,225, 35,121,104, 5,198,207,100, 50, 73,234,242,214, 10,202, 6,222, 57, + 22,193, 41,222, 71,249,246, 37, 41,185,224,205,143,126,140,252,225, 45,145,141, 44, 37, 68, 41, 40, 24, 30,207,150, 92, 16, 33, +227, 38,234,164,115,161, 4, 28,199, 31,140,231, 88, 69,137,198, 43,168,237,242, 30,131, 52,234, 32, 78, 19,197,127,201, 29,215, + 88,198,127, 47, 42,114,213,147,137,234,144,137,221, 0, 58,181,222, 49,159,234,157, 40,172, 67,125,198,224, 29, 12, 19,144, 86, +104,240,191,147, 44,117,213,124,139,224,253,118,175,218, 75,219,247,145, 8, 73, 38, 34,106, 72, 54, 27,193, 66, 98,187,211,194, + 97,102,156, 35, 56, 67, 91,114,207,121,212,193,158,107, 6,230,160, 67,114,114, 41,200,133,192, 27,226,146,208,172,200,111,137, + 69, 3,148,167,212,202,249,195, 13,219,115,183,233, 81,138,163, 36, 1, 44,206, 98, 15, 7,142,156,145,120, 26, 48, 77, 19,125, +217,120,146,162,249, 32, 19, 65,166, 6, 48, 59,223,138, 55,249,253,141,155,113,121,253, 1, 80,138,210,214,120, 82,180,111, 55, + 76,147,103,149,246,130, 24, 34,246,109,231, 47, 61,113, 22,172,167, 4,177, 82, 11, 22, 63,193, 77, 14, 97,167,241,238,236,103, +154, 76,249, 25, 74, 39,220, 14,224,241,252,136,243, 60,193,123,202,237,126,189, 94, 8, 29, 91,233,192,164,176, 35, 13,239, 29, +148,254,255,216,122,147, 93, 89,178, 43, 77,239, 95,187, 51, 51,119, 63,205,237, 35, 72, 38, 65,177, 88,100, 33, 85, 18, 4,168, + 25,213, 72,208,176, 94, 66,143, 32, 64, 83, 77,234, 1, 4, 77, 53, 21,160, 55,208, 43,104, 36, 65, 80,170, 50,179,152,100,102, +101,178, 9, 70, 4, 35,110,115, 26,119, 51,219,221,210, 96,173,189,205,252, 70, 38, 64,220,200,136,123,207, 61,199,221,109,239, +213,252,255,247,143,184,156,159,213,131, 12, 28, 14, 71,128, 43,238,238, 95, 34,198, 5, 37, 70,124,252,244, 81,198,202, 57,195, + 57,143,155,147,145, 75, 80,213,178,151,121, 6,106,134, 53,226,219,182, 62,224,238,238, 70, 34, 47, 75, 65,140, 17,222, 7,212, +221, 84,106, 28, 7, 16,145, 40,195,149,166,182,198,132,224, 4, 80, 50, 77, 35,214, 24,251,196, 98, 8, 1,143, 15, 15, 56,140, +242, 90, 12, 10,125,201, 37,139,154, 59,203,197,156,180, 86, 30,198, 17, 4,194,211,188,226,246,120,196, 48, 12,120,122,124,192, +101,158, 49,141, 3, 8,140,224,196,169,114,119,119,139,135,135, 71, 4, 47,170,255,156, 43,150, 40,200,223, 90, 89, 0, 57, 12, +161,196,233,110,186,234, 94,247, 48, 77,162,120, 15, 3,166,105,194, 56, 14, 10, 34,146, 78,219,107,129, 82,138,100,193,139,192, +171,246,152,210,172, 23, 65, 5, 43, 55,190, 98, 93, 19,124,112, 18,236,162,224, 34, 86, 66,227,237, 20, 36,154, 86, 59,221, 22, + 14,211, 0, 68,117,103,105,181,155,184, 69, 87, 88, 6, 46, 88, 80, 34,188,186,191,197,101, 89,241,199,247,159, 16, 43,227,207, +239, 63,193, 58,135, 41, 88, 12,206, 96, 73,109,170, 4,100,189,136,154, 62,170,117,155, 93,103, 68,123,135,141,124,175, 75,202, +120,186,204, 56, 76,147,172, 60,201, 2, 49, 34,165,139,226, 88,171,128,187, 90,132,243,110,122,102,213, 74,185,198,132, 53,101, +172, 49, 99,240, 2,136,233, 13, 77,173, 27,238, 90,215,162,182,157, 93,117,195,139,215, 93,243, 32,147, 47, 17,219,166,156,186, + 75,228, 58,154,101, 39,138,107,152,100,218,112,176,134, 76,239,194,183,142,158,118, 90,174,205,185,176,133,167,176,168,226,105, +139,138,105,119, 91,139,134,222,159,141,237, 78,100,146, 17,189,211, 46,125, 58,156,224,148, 99,144, 22,209, 31, 48, 3,110, 24, + 16,140,221,196,113, 10, 78, 27,198, 9,195, 56, 41, 74, 22,112,195,132, 97, 60, 32,197, 5,113, 89, 16,151,139,104, 93,118,176, + 25,218,237, 19,218, 63, 27, 34,184,158,205,162, 97,243,218,179,105,245, 71,221, 96,223, 35,236, 52,145,172,241,112,183,246,169, +246,232, 86, 96,131,229,115,213, 48, 3, 16,230, 92,240,246,213, 75,252,230,247, 95,129,106,237, 35,234,166,252, 6,128,209,123, + 17, 11,169,237,195, 16, 84, 97, 76, 24,135, 1,206,201, 97,236,173, 69, 86,113, 95, 73, 89, 70, 61, 94, 82,113,188, 37, 20,171, + 8, 74, 13, 67, 8,222,194,146,140,149, 88, 71,114,213,180,157,157,130, 5,170, 60,188, 40, 69, 84,247,100,228, 53, 52,251,142, + 24, 29,165,187,237,207,181,238,170,165,143,223,155, 2,188, 39,206,239,246,242, 77,105,189, 11,183,214, 67,148,251, 14,168, 33, + 38,121,103, 51,216,119,216, 68,155,160,174, 77, 18, 88,133,110, 76,181,243,245,249, 42,153, 27, 27, 88,104,231, 85,223,136,118, +172, 23,165,120,211,249,202, 35,190,255, 89,183, 93, 98, 43,198,128, 61,163,152,118,234,122,218,118, 71,250,179,230,178, 89, 73, +184,104,152,133, 90,185,246,150, 35,244, 28, 98,186,174,164,119, 2,191,230,220,156,151, 5, 75,206, 66,104, 83,214,114,227, 60, + 71,205, 44, 23,128, 67,233, 7, 43, 41, 17, 44,198, 85, 10, 15, 99,144, 75, 66,122,254,132,183, 95,254, 2,223,255,249, 15,152, +151, 8, 75,132,239,191,255, 22, 47,238, 95, 74,167,110, 9,235,124,129,243,126, 83,247, 26,131, 26, 25,148, 51,194,120,196,224, +109,207,140, 31,172, 69, 25, 39, 84, 29,143,113, 92,241,242,254, 14,191,124,245,115, 60, 60, 61,225,249,233, 25,167,211, 45, 30, + 30, 62,225,208,246,214,101,227,165, 27, 34,164, 84, 68,249,109, 37,124,165, 84, 25,135, 54,224,140, 49, 2, 39,185,189,189, 67, +201, 81, 4, 84, 85, 24,219,198, 57, 9,181, 89, 87, 56, 48,194, 56, 34, 43,224,102, 26, 6, 24, 99,197,255,206,140, 81, 59, 95, +175, 93, 91, 78,185, 63,231,167,227, 17,143,207,231, 62, 57,104, 89, 8, 15,143, 79, 8,222,195,120,139,121, 89,112, 58,157,186, +186,123, 84, 58, 91, 76, 9, 41, 70, 56, 39, 93, 28, 88, 80,165, 33,120,157, 66, 4,156, 70,194, 16, 28,150,229, 44, 89,231, 94, + 92, 18, 49,171,179, 33,174, 98,229,243, 86,223,183, 4, 31,134,190, 10, 28, 66,128,119, 78,194, 99, 88,215, 33, 49,194, 57,139, +105, 28, 17,115,193,241,120, 82, 79,184, 20,208, 41,101, 25, 53,151,130,218, 44,180, 93, 68,200,136,113,213,132, 56, 82,148,106, + 81, 12,175, 92, 76,162, 3, 40,168, 21,248,246,211, 83,159,108, 58, 35,197, 84, 11,139,106, 83, 39, 50,178,230,104,251,101,102, + 82,248, 79,139, 58,181, 8,206, 10, 77, 81, 63,242, 55,199, 35, 94,223,175,248,238,225, 9, 49, 87, 60,156,103,248,247,159,240, +238,213, 61, 78,131, 67, 42, 69,119,234,202, 91,103,153, 58, 58,115,189, 67,222, 84, 67,109,116,200,162,157, 2,176,100,134,205, + 12, 80, 1, 33,163, 20, 25,181,183,157, 51,233,186,135,179, 18,235,172,252,185,118,161, 71, 85,196,151, 82,144,116,191,142, 93, +124,234, 78,177,132, 77,246,195,106, 51,148,253, 57,118,147, 58,174,172,180,186,172, 2,210,109,202,217, 41,108,157,160,167, 93, +121, 19,200,113, 19,203,237,130,179,176, 27,201,119, 75,155,124,159,198,110,103,115, 67,118,111,218, 29,213, 68,237,132,119,141, +213,177, 21, 42,186, 87,183, 70,112,200,227, 1, 55,119,119, 72, 41, 34, 43, 36,104, 60, 28,196, 58,235, 36,170,184,205, 12,184, +227, 91, 5,180, 85, 91,108,171, 2,132,134,233, 0,230,138,220,178, 17, 64, 59,210,234,245,255,218,121,236, 88,131,225, 9,226, +115, 38,222,114,110, 90, 60, 97,221,107,225,152,119,138,131, 13,115,199,251, 11,164,123,232, 54, 70, 60,161,226,178,204,248,242, +197,139, 78,152,234,222, 82,222, 46,161,152, 69, 40, 66, 42, 12, 75, 5, 24, 88,242,137, 27,228,196, 88,139, 82, 25,211, 48, 96, +125,255,103, 12,206,202, 15,172,209,144,213, 72,224,192, 37, 17,130, 55,176, 69,166, 9, 48, 6,169,206, 32,174,178,119, 84,134, +238,154,100,143, 85,170,140,116,171,102,138, 19,137,234,242,230,120,196,186,196,238,165, 38,218, 51,121,183,143,107, 19, 63,244, + 11,189,119,234,181,211,172,164,227,213, 61,110, 41, 87, 52,191,125,113,131,125, 48,203, 78,129,183,239,168,141,142,243, 12, 81, +135,198, 92,129,131,246,239, 1,227,250,107, 93, 37, 13,113,127,168,122,116,123,221,208,199,109,226,149,149,169,222, 86, 18,172, + 59,231, 62, 73,232, 12,249,109,248,144,219, 24, 77, 69,125, 85,243,205,187,253, 70,213,159,133,247,251, 62,234, 15,215, 30, 95, +188,231, 40, 64,215, 36,198, 26, 60,158, 47,184,153, 38,164,231,103,177,153,105,144, 2,145, 21, 74, 97,169,128,142,247, 26,164, +194,104,177, 85, 88,108,147, 13, 57,155, 99,196,233,230, 37,214,117, 6,192,152,166,131,124, 94,115,194,186, 46, 56, 12, 35,230, +121,134,117, 1,165,200,197,100,173, 65,101,215,249,216,211, 65, 66,106,130, 31, 48, 47,171, 10, 9, 9, 41, 39,196,148,101, 20, + 29,132, 95, 30,172,193,241, 48,226,195,167, 15,168,165,224,249,124, 70,112, 94, 20, 39,181,194, 56,175,225, 27,140,156, 86, 24, +235,176,174, 11,194, 48, 72,220,168,147, 24, 81, 3, 35, 89,246, 37, 11,251, 33, 70, 85,225,158, 0,178, 56, 63, 61,138,205,205, + 89, 21, 88, 26,140,147, 68,194,198, 20,225,172,195, 52,201,133, 94,139,238,105, 75,145,221,108,173,152,166, 9,231,243, 5,131, + 23, 60,171, 49,178, 83, 46, 73,148,245, 41,103,156, 47, 11, 14,135, 17,113, 93,225,125,192, 52, 77,253, 61,245,206,137,149, 77, +167,111, 41,101, 28, 14, 7, 21, 43,201,110,242,112, 16,160, 77, 74,130, 43,197, 26,145,171, 96,159, 75,206,162,206,215,239, 61, +169,165,208,232, 57,113,156, 14,168, 37,227, 50, 11,236, 72, 58, 71,209, 0,120, 43,168,221,219,219, 83, 31,167,143,227,136,117, + 94,240,124,126, 22, 4,176,242,228, 27,231, 28,204,178, 67,134,136, 9, 83,202,112,206,202,248, 95,155, 12, 99, 12,144, 99,247, + 34, 47,185,200, 84,128, 24,247,199, 9,222,203,133, 94,185,226, 56, 14,253, 66, 21,244,174,134, 63, 17,245,100,190, 22,198,194, +234,244, 41,170,244, 79,185, 96, 24, 60, 94,223,157,240,213,247, 15, 40,165,224,211,243, 51,166, 65,108,143, 71, 71,248,180,228, + 45,123, 98,151, 67,222, 30,226, 61,136,133,247, 34, 90,146, 14,121, 89, 22,228, 36,214,224,160,197, 77,247, 79,211,166, 23, 34, + 42,253,145,140, 57,107, 39, 93,176,166,132,162,197,122,179,234,109,201,147,188,195,183,210,182,218,101,160,160,162, 20,238, 69, + 0,235,249, 37,106,119,189,240,235, 46, 8,156,118, 13,210,110,180,190,183,176, 49,225,138,215, 65, 59,113,210,222, 77, 35, 17, +175,212,125,242,188, 27,233,243,150,156, 46,180, 81, 99,251,204,116,143, 65,103, 85,177, 91,231,225, 92,232,247,212,243,211, 35, +226, 50, 35,103,129, 92,249, 97, 20,223,191,247,125, 50, 90,138,208, 8,141,114, 40,202, 42, 25, 8,235, 60,119, 23,142,184,109, +154, 45,110,148,103,179,110,218, 54, 98,200,120,191, 23, 94, 14,142, 89,187,161,158,200,166, 69, 77, 39,205, 93, 51,244,120, 23, +177, 65,204,251,254, 17,180,191,234,118, 2,171, 61, 19,189, 42,152,190,143,160, 65,226, 31,118, 70, 95,112,211, 47,136, 65,199, + 90,164, 31,148,201, 12, 58, 58,149, 55,245,124, 62,227, 24,130, 84,105, 44, 74,119,231,164, 67,183, 58, 81, 88, 75, 70, 42, 12, +148,162,232, 76,249,123,159,230, 5,206, 0, 41, 21, 68,197,143,178, 49, 96, 67, 56,167, 36, 65, 3, 85,146,153, 82,204,189,218, +222,196,106,102,151,131,190,145,135,250, 8,188,141,221,219,174,189, 20, 24, 75, 48,140, 46,228,106, 29, 55,181, 93,205,190, 20, +109,169, 67,212, 95,237,157,237,173, 93,222, 69,197,109,185,251,202, 27,126,144,120,131,224,112,197, 46,235,232, 42,125, 80, 67, +142, 54,235,155,221,149,244,117,143, 11, 6,186, 88,174,219,213,246, 99,176,158, 66, 71,221, 27,223,119, 90,187, 66,144,118,224, +143,150,140, 84,119,147,136, 86, 61,246, 24, 68,162,107, 74, 94, 31,159,201, 37,157, 98, 66,104, 1, 49, 90, 52,132,113,132,247, + 30,181,200,225, 22,188,195,154, 46,170, 55,168, 58,134,115, 48,181, 34,115,148,145,112, 18, 49,150,113, 22,119, 47,191,196,167, +143,127, 86,113, 83, 65, 78, 5, 37,103,172,201, 97,116,226,111, 31,135, 1,214,184,109,101, 65, 44, 15, 33, 24,243,124, 17, 65, + 40, 87, 48,228,225,181,214,160, 84,194, 56, 4,124,122,122,196,171,215,175, 81, 65, 24,198,131, 84,233, 90,156,197,148, 0,235, + 97,213,161,144, 75, 86,118, 56,129, 96, 59, 28,197, 26, 11,174, 73,179, 10, 2,150, 44, 12,123,230, 36, 62, 85, 34, 28,142, 55, + 48,214,137,141,204, 27, 44,115,132,213, 34,161, 26, 66, 94, 86, 28,142, 7, 4,231,165, 64,210, 29,126, 86, 69,122,106, 25,226, + 0,158,159,159,251, 97, 89,149,169, 94,139,160, 62, 91,134,116, 24,188,188,247, 85,124,237,207,207,207,112, 26, 33,233,172,196, +151,206,151,139,178,220, 45, 64,114,209, 87,237, 8,159,158, 46,186, 30,171,200, 49, 98, 26,100,124,185, 46,171,132,160, 24, 35, +175,143,254,158, 48, 4, 60, 95,102,120,239, 49,175,177,167,241,173, 57,245, 17, 55, 17,193,122, 47,208, 23, 34, 4,239,113,115, + 58,194, 89,135,135,101, 70,173, 5,211, 56, 34,101,121,230,187,216, 85,133,191,203,178,118, 72,140, 37,234, 4, 62,163, 17,207, + 85,159,155,175, 63,126,218,152, 14,154, 65, 32, 26,155,218,241,176,165, 86,120,227,144,107,133,179, 26,160,212,120, 12, 92, 81, + 89,196,189,165, 20,128,208, 69,150,178,126,112,184, 59, 30,240,116, 94,240, 52, 11, 10,249,227,211, 25,119, 58,153, 10,196,152, +115,217, 58,191, 90, 84,183,211, 84,222, 29, 20,173,121, 32, 77, 31, 5,165,202,137, 38, 41, 37, 66,114, 89,207,221, 45, 69,211, + 20,241,214,199, 40,147, 13, 99,128, 84,170,156,159, 89,173,106,157,114, 41,203, 72, 82,152,139,184,155, 54,137,107,115, 63, 20, + 29,101,231,230, 91,215,179, 70,214,116,181, 23, 7,251, 73, 67, 35, 93,210,174, 80,160,109,254,160, 5, 59,122,131,213,217, 37, + 45,237,172, 17,229,118,112,173, 22,119,138,207, 70,218,181,213, 61, 13, 65,222, 64, 48,237,207,144,133,179, 30,206, 75, 64, 15, + 84,216, 87,107,198,229,249,177, 79, 70,139,186, 5,106,221, 10,230,154, 37,174,217,251, 0,203,122, 46,237,109,204,204,200, 49, +162,168, 38,195,122,175, 26, 8,101,200, 52,126, 71,203,104,215,207,164,177, 22,142,169,202,216,157, 72, 31, 90, 13,110,233, 41, + 54,155,178,187,121,192, 25, 27,180,190, 39,108, 84,116,147,126,219,197,179,142,241,183,238, 29,248, 56, 47,176,206, 3, 49,118, +171, 65, 73,114,216, 52,164, 41, 67,188,163, 57, 23,120, 43, 93,222,168,123,117,171,213, 44, 17,225,230,230, 6,223,198,136,163, +151,135,215,123,143,224, 36, 24,193, 66, 63,116,133,113,137,194,245,246, 57, 35,233,138,225, 50,175,112, 4, 92,114,221,246, 50, +214, 98,102,137, 54,180, 0,150, 92, 17,166,208,223,108, 34,193,207,114, 81,145, 73,163, 14,211, 6,237,225,158,159, 46,213, 29, +107, 28, 94,187, 60,183,212, 54,244,200,198, 22, 26,210,133,101,202, 1,239,150, 58,200,122,128, 43,127, 6,161, 65,247,202,243, +206, 87,222,212,240, 45, 57,142,177, 49,163,205, 14, 27, 91,181, 99,181, 90,153,150,190,203,218, 4,127, 87, 86,178,157,207,126, +123,152,208, 21,242, 78, 1, 62,180,201, 88, 58,142,145,186,214,226,218,251, 95,155, 85,142,119,196,190, 61,131,185,131, 29, 72, +253,246,237,181,150, 34,240, 18,179,230, 17,203, 3,126,163, 59,212,154, 11,150,152, 58, 5,171,150, 2,107,209,179,160, 91,119, +152,178, 92,216,204, 12,228, 44,159, 77, 48,230,203, 67,159,214,140,227,132,154, 34, 6, 69,191, 30,166,131,112,173,157, 76,120, + 14,199, 35,150,117,193,253,205, 17,203, 60, 43, 66, 18,168,121, 65, 76, 2,215,185, 44, 51,134, 48, 96, 94, 22, 4, 43,192,153, +187,219, 91,217, 87,134,128, 17, 2,171,144,162, 85, 39, 88, 37,139, 64,135, 4,125,106,244,178,168,165,192, 26,214,231,195,163, +114,193, 48,140,112,206, 98, 89,165,115,180,214,138, 35,192, 9,157, 45,167,164,162, 82,233, 28, 39, 47,123,242,117, 89, 84,212, + 89, 80,117, 79,223,232, 95,167,195, 1, 37,103, 60, 45, 11,188,181, 61,108,201, 89,177,226, 17,145,142, 95, 51,140, 49, 56, 78, + 83,143, 80,126,124,122, 64,240, 1, 57, 75, 81,235,221,208,195, 40,130,142,252,107, 21,161,230, 60,207,224, 16,144,114,134, 37, +233,204,155,149,108, 93, 18,172,119,152,215, 21,150, 8,177, 48, 78,135, 17, 40,178,238,243,106,133, 52,109,162, 72, 4,103, 93, + 95, 77, 4, 47,194,194,113, 28,229,130,223, 9,156,140,115,240, 93,168,169,187,205, 48, 0, 4, 44,243,210, 69,113,146,221, 30, + 20,146,162,133,133, 62, 43,222, 7, 92, 46,179,100, 0,232, 36,239,197,113,234, 97, 40,109,108,157,139,140, 97,207,203, 42,185, +243,206,116,253, 14, 17, 75,177,207,140,154,228, 53,130,106, 97, 26, 89,143, 0,140,193,227,197,205, 1,231, 53,138,243,231, 50, +163,148,130,119, 47,110, 49, 57,194,243,146,251,227, 85,101,185,127,213,209, 98,183,115,190,130,140,233,234, 21,202, 34,104,248, +234,102, 39,110, 66,180,108,118,176, 41, 34, 25,143,103, 25,143, 55,160, 73,229,109,148,221, 0, 88, 64,131,195,232, 62,191, 42, +121, 84, 11,243,170, 17,206,202, 11, 83,125, 68,237,218, 4,236,186,102,218,163, 59, 62,223,145,239,119, 13,252,195, 17, 53,136, + 96, 84, 60, 47,185, 0, 91,232,215,166,115, 50, 59,245, 14,119,156,235, 62,112,202, 90, 3,231, 2,156,243,186, 3,215, 4,210, +154, 97, 97, 49, 14, 1,147,142,205, 5,119,172, 34,224,146, 81, 85,225,110,131,239, 13, 97,206, 17, 37, 37, 9,169,105, 22, 96, +239,182, 21, 36,179,134, 65, 65,201,153,186,195, 47,159, 97,253,117,133, 99,154,114,178, 95,198,237, 66,223,165,205, 64,187,169, +206, 60,231,107, 62, 17, 51,247, 64,151,189,237, 11,187,228,210, 38,206, 90,117,140,102,246,254,196,166,176,175,117,215, 93,106, +186, 77,231,174, 87, 21,100, 9, 35,188,214,138,101,153,241,241,188, 34, 43,103,120, 85, 54,187,245, 14,214, 59, 12, 67,192, 52, + 10, 2,115,244, 22,255,205,127,251,111,145, 75,237, 59,189, 38,254, 66,101, 88,146, 81,118, 44,162, 60,245,214,192, 56,131,117, +137,240,154, 2, 86, 84,174,221,133, 25, 10,220,231,238,209,222, 87, 90,170,254, 54,248,140,170,191, 79, 77,218,128, 2,212, 84, +246,106, 17,163,238, 57,221,216,228,216, 33, 19,175,208, 0,122,192, 96,231,237,174,154, 10,212, 69,126, 42, 22, 43,187,228,179, + 6,252, 73,250, 16, 65, 5,100,188, 11,229,217,218,251,186,161, 8,177,197,153,214, 30, 86,128,206,226,222,246, 87,188, 93,214, + 59,117, 27,245, 56, 79,245,175,235,235,105,212, 7,106,173, 48, 9,172,118,143,198, 88,117, 70, 8,189,173, 93, 28,133, 69, 63, +193,144, 49,255,168,161, 38, 48, 6,107, 86, 80,139,234, 35, 24, 27,174,114, 15,206,108,213,175,248,211, 69, 25, 77,100,177,174, + 23, 17, 92,133, 65,138, 78,239, 80,136,112,115,119, 47,168,209, 42, 75, 0, 0, 32, 0, 73, 68, 65, 84, 17,175,100,241,240,240, +136,203,124,193,249,124,134,177, 3,158, 46, 51,158, 47, 51, 46,107,132, 15, 99,159, 54,213, 90, 17,188,100,120, 51,137,242,155, + 0,140,211, 40,132, 58, 24,185, 76,245,247, 5,231, 36, 30,214, 88, 77, 22,179,253,243, 16,115,134,243,114,233, 57,231, 0, 46, +125,108,156, 82,198,178, 44,136,107,196,101,158,177,172, 51,210,186,226,252,252, 44,209,141, 10,171, 25,199, 17,227, 24,224,188, +197,116, 56, 0, 68, 56,158,110,112, 58,158,244, 89,103, 76,135, 35, 82, 46,162,108,183,130,171,141, 41,245,241,113,163,128,149, + 82,113,127,115,196,221,233,216,253,216,203,178,160, 86,198,178, 44,152,231, 89,125,215,194,208, 23, 42,151,224, 93,157, 37,172, +113, 69,169,140,243, 60,235, 56,218, 96, 89, 87,164, 82,240,240,244, 4,231, 37,129, 77, 68,201,202,245, 39,241,140,203, 88,210, +245,142,210, 40,140,102, 89, 23,140,227, 40, 35,127,178, 87,108,140,152, 68,208, 39,138,124, 73,149,203, 69,108,136,226,243,247, +122,112, 10,124,134,213, 82,213,158,173,198,112, 72,169,160,178,236,236, 47, 41, 95,173,206, 14,218,153, 55,149,123, 43,198, 59, +131,163, 79, 36,229, 89, 74, 81, 96, 63, 57,165,158,212, 23,147, 68,214,122,239,250,244, 36,120,135,195, 24,112, 24, 2, 80,229, +123,185, 44, 43,158,230, 69,156, 61,205, 62,168, 2,176, 92,234, 6,133,218,173,219,218, 62,183,177, 85,122,206,132, 54,110,172, + 58,134, 37,102,172,185, 96,205,178,202, 88,163,172,143,214,152,177,164,164, 23,250,214, 48,108, 74,224,107,125,213,142,134,213, + 69,112,185, 72, 49,221,186,245,246,239, 83, 46,154,211,126,189,230,109,157, 52,204,118, 65,247,160,150,171,162,133,174,210, 49, + 9, 45, 21,205,244,166,225,115, 2, 27,239,156, 71,251,175,209,197,119,166,225, 89, 13, 92, 24, 16,194,164,137,143,220, 1,242, +141, 99,111, 12,225,197,253,237, 46, 11, 93, 26,137, 97, 24,149,187,178,233,175, 4,198,147,192,165, 72,147,160, 69,189,181,130, +231,109, 8,104,174, 69,166,217, 70,116, 38,198, 90,144,177, 59,204,108,211, 16, 72, 81,230,234, 46, 63,157,175, 8,182,219,184, +147,119,153,196, 18, 82,176,203,193,172,251, 63,181,191,182,106,127,147,121,203,154, 7, 81, 85,187,205, 69,236,108,188, 17,154, +218, 24,186,189, 89, 85, 5, 18,174,103,250,202, 62,178,249, 14,255,195,191,255,107,156,130, 71,174,140, 65,147,146,114, 76, 88, + 85,149, 25,188, 69, 45,132,224, 45,198, 48,226,253,119,223,194,112, 85,196,163,238, 94,137, 85,241,236,177,228,132,193,136,160, +206, 25,131, 88, 24,181, 36, 56, 39,162, 33,222, 93,194,219, 90,250, 58, 57, 76, 62, 20, 22, 21,185, 95,198, 29,196,207,219,150, +105,195,178,154, 94, 58,183,202,172,118,202, 28,182,204,244, 62,123,178,154, 30,196, 87, 1, 69,125, 76,213,139,164, 93,186,209, + 62,207,173,193, 12, 26, 97,206,108, 10, 89, 40,218,147,121,195, 34,182,138,246, 10, 35, 76,219,215, 51, 68,224, 31, 66,242, 59, + 48,168,125, 93,163,232, 80,179, 87,107,234, 11,230,157,217,148,173, 87,255,253,186,203,104,170,117,235, 28,156, 17,170,152,177, +140,129, 12,242,154,100,164,135,166,191,200,136,172,228, 42,146, 67,162, 5,188,144,146,156, 74, 78, 61, 28, 70,148,178,178,199, +108, 12,229, 82, 11, 62, 62, 62, 96,244, 1, 54,101, 4,239,240,252,244, 40, 15,153,113, 8,222, 97, 24,101, 47,156,210,138,224, + 3, 66,112, 72,149,240,225,195,123,132, 97,192,186, 68, 88, 67,154,203,109,176, 92,158, 96,157,199,121, 89, 80, 74,193, 50, 47, + 50,246,175,132,233,112,236, 79,223,116,112, 82,189,167,168,221,145,224, 87,125, 24, 97,173,168,139,165,163, 41, 32,178, 72, 36, + 98,191,224, 3, 10, 24, 53, 37,161,178,133,128, 3,110,228, 48, 89,132,183,238,125, 64,174, 85, 5, 91, 21, 7,213, 13, 16, 17, +206,151, 51, 74,173,152, 23, 25,107,251, 33,136,133,205, 26,228, 12,217,155, 79, 3,200, 90, 81,177,135,160,225, 40, 14,133,185, + 71,149, 78,227,136,101, 93,225,212,167, 59,142, 3,214,117,237, 2, 62,103, 8, 41, 37, 45, 4,165, 32, 43,165,202, 69,204,226, + 97, 15,222,109, 78, 11, 54,136, 57,227,116,152, 64, 96, 60, 95, 86, 28, 15,163,118, 72,165,179, 33, 82,202, 8, 77,127, 99, 4, + 34,212,146,216,162, 90,214,230,121,150,130, 47,199,206, 97, 87, 63,144,242,238, 69, 77,239,188, 85,149,191, 83, 39, 6,119,238, + 68,102,198, 64,194, 87,184, 68,161,246,129, 8, 55,163,239,159, 83,210, 36,191, 22,183, 25,163, 92,242,205,183,222, 44, 91,214, + 24,164,164, 23, 36, 53, 36,182, 52, 53,107, 44, 59,252, 53, 35, 56,143,105, 24,240,188, 72,183, 94,152,241, 60, 71,140, 97, 64, +176, 14, 75,138, 72, 41,202,103, 84,184,218, 59,191,214, 63, 19,218,166,194,232,186,235,130,197,181, 36, 35,243, 54, 93,108, 62, +232,174, 57,171,212,243,221,175,108, 41,117, 63,213,219,190, 86,243,247,183,221,121,101, 6,171,138,190,173,245,234, 30, 56, 69, +215, 26,247, 54,246,110, 28,118,179, 63,123,245,242,222, 38,160,212, 21,239, 77, 44,219,239,169,207,129, 98,109, 29,177,183,200, +181,169,172, 32,235, 64,100, 97,201,194, 89,167,155, 13, 17, 57, 91,141,226, 45, 37,171,240, 87, 4,169, 47, 94,222,233,180, 75, +167, 99, 68,114, 81,183, 8,228, 82,174,240,174,114,185, 11, 11,223,122,117, 1,104,161,101,149,236,215,214,180,155,192, 41,119, +225,220,102, 33,150,149,172,107,153,180, 59,202,137,250, 4,183, 23,128,118,185,177,210,241, 53,216,252,134, 24,229, 29,167,188, + 15,236,123, 91,191,137, 54,152, 25,239,222,190,194,135, 15, 31, 59, 55, 26, 68, 40, 41,194,248,161,219,148,156, 33, 61, 56, 10, +170,145, 10,221, 26, 69,129, 26, 17, 37, 29,157,193,201,123, 81,190, 90,131, 88,212, 91, 57,175, 32,107,145, 87,131, 88, 43, 28, +128,156, 86,233,208, 65,120,243,163,191,192,167,239,255,172, 9, 87, 27,164,229,224, 29,150, 82,251, 62, 69,196, 60, 19, 46,231, +229,202,198,209,186,217, 14, 57,145, 0,110,177,112, 25,131, 82,114, 87, 92,122,231,187,117,161,191, 62,170, 11,216, 91,199,106, + 23,215,215, 43, 79,118,247,168,183,206,183,150, 93,162, 9,126,144,203,219, 29, 9, 93, 56, 39,104,196,210, 18,221,104,103, 33, +107, 73, 68,180,131, 8,241, 54,202,170,123,111,251,238, 33,107,126,245, 22, 72, 67,251,241, 85, 35,237, 25,211,227, 3, 91,161, +182, 61, 48,180, 19,238, 24,181, 12,225,106,239,222,186, 37, 1,128, 56,188,124,113,143, 31,253,232, 75,188,125,243, 74, 30, 46, + 48,254,240,251, 63,226,195,183, 95, 99,185, 60,137,114,122, 12,202,120,151,247,194,238,114,236, 91, 17, 82, 42,195, 40, 35,188, +106,161,216,236, 51, 68, 21,198, 6,188,255,243,239, 55,138,158,245, 8,227,132,117,185, 96, 48, 2, 69, 73, 41,129,144, 49,140, +199,158, 78,152,185,130,203, 5, 75, 20,207, 58, 57,217, 47, 91,239,145,107, 85,101,176,216,204, 82, 41, 88,150, 5,239,223,191, +215, 20, 55,181,172, 1, 66, 66, 3,131,184, 34,171, 53,142,245,160, 44, 76, 8,196,178,211,180, 50, 1, 40, 44, 17,195,153,133, +105,239, 64, 88,215, 85,212,219,168, 40,105, 21, 97, 89, 92, 53,235,222,203,190,148, 89,149,225, 65, 10,103, 67, 72, 49,137,181, +203, 58, 4,157, 78,249, 65, 34,143, 47,203,170,147, 3,171, 93,177, 69, 86,241,216,101, 94, 49, 29,100, 93, 22,188, 3, 87,163, +252, 0,137, 39,205, 37, 99, 89, 91, 65, 87,101, 76,105, 61,214,117,149,181, 88, 24,145,138,216,220,114,206,168, 92, 69,113,174, + 41,125,139,230, 6, 92,249,185, 21, 49,235,157, 36, 55, 30,166,161,103,130,159, 78, 55, 2, 46, 34, 96, 26, 7, 44,243, 69,173, +177, 14,214, 90,204,243,140,152, 50,140,147,169, 66, 67, 30, 7,239, 84,168, 39, 32,162, 90,170,162,115,185,175,139, 60, 20, 48, + 99, 61,136, 11,190,127, 94,148,115,175,238,157,224, 59, 27,193,247,137,147,233,103, 97, 97, 70,208, 68, 67, 18,254, 54, 18, 23, + 56, 69,135, 54, 63,118,243,198, 39, 85,219, 55,209,173,115, 14,131,247, 24,131,195,188, 38, 88,235, 81, 97,113, 89, 11,114, 94, +197,215,220,196,171,220,166, 7,116, 21, 7,221,206,178,189, 34, 74,242,187, 55,235, 45,209, 54,248,102, 70,207,123,104,169, 89, +155, 3,103, 7, 14,175,123,105,189, 6, 95,237,245,213,216, 83, 34,165, 27,145, 98, 73,166, 10, 27,118,123, 95, 39,232, 57,213, +162, 75,185,145,212,112,165,102,167, 70,187,220,159, 53,251,125, 3,181, 2, 96, 31,235,141,190, 90,148, 70,178,246, 44,122,128, + 64,214,193,153, 0,134,236,211,155, 85,213,234,196, 16,204,200, 53,117,212,249,198,245,183,253,245,225,182,123,236, 35,242,186, +101,121,144, 8,115, 99,140, 40, 89,242, 32,132,224,103,181,169,170, 61,168,138, 52,147, 35,231,188,173, 11,245,127, 37,215, 78, +154,147, 64,151,150,168,214,106, 54, 49,162,139,200,129,175,247,228, 91, 54,215,118,216,243,126,124,222,189,234,181,163, 83,107, +179, 78, 48,174,216,186, 50, 98,176, 58, 98, 86, 63,174,222, 85,165, 20, 88,114, 40, 57,129,130,236,204,138, 10, 43, 64,128,169, + 5, 48, 18,147, 26, 6, 47, 5, 0,196,159,103,117, 44,156, 43,203, 8, 73, 3, 15,156, 53,248,243, 31,126, 15, 59, 12,152, 31, +222,139, 10, 86,115,194,141,105,130, 8, 35,251,114, 38, 60,171, 2,247,221,187,119,248,201,143,222,225,175,255,246,183,200, 89, +170, 96,217,157, 81,223, 61, 55, 44,172,112,223, 69,172, 87,213,150,150,203,117,198,186,213,195,184,234, 56,133,119,121,242,189, + 64,218,147,227,118, 15, 65,119, 20,104, 39,223, 50,123, 27,205,172,173, 48,228,165, 54, 50, 14,106, 10,219,206, 38,222,222, 15, +194,246,207,253,129,194,142, 79,111,204, 38,102,100, 6, 25, 25,163,218, 6,131, 97,116,128,132,161, 29,225, 9,162,194,108, 69, +207, 62, 54,144,204,166,212,236, 19, 12,221,131, 26,221,219,190,124,241, 2, 95,126,241, 14, 47, 95,220,246,175,179,175,217,115, + 22,209,225,225,120,196,183, 69,163, 60,117,130,100, 33,101,124,169, 5,177,100, 21, 98,161,239,249, 13, 17, 92, 24, 96, 72,194, + 72,184,137, 36,107, 5,233,120,250,246,254, 45,158,159,190, 23,194,157, 41,240,167,123,152,241,136,229,249, 1,143,143, 15,184, +189,185,209, 49, 32, 16, 83, 22, 87,128, 17,130,157,119,164,121,224, 50, 53, 25,188,131, 45,140,241,197, 11,196,148,241,252,244, + 0,148,132,148, 50,158,158,159,133,162,198, 6, 31,222,127,144,139, 84,159,247, 24, 87,181,224,105, 40, 6,244,242, 46,181,195, + 61,184, 50,134, 48,160, 84,233, 80,101,244,188, 74, 48, 74,149, 17,170,183, 14,185, 68, 12,170,218,119, 78, 98, 29,159,207, 23, +156,142, 39, 41, 30, 52,174,181, 20,161,152, 73, 40,139,236,165, 47, 10, 61,105,221,179, 49, 6, 33, 4,148,148,112, 58,157,144, +162, 8, 13, 83, 76,240, 26, 91,204,234, 40,184, 61,221,244,113, 97, 24, 6, 17, 12, 41,215,251,195,249, 1,183,167, 19,150,101, + 65,169,162, 40, 95, 83,130, 85, 64, 80,173, 21, 33,120,156,207,103, 77,239, 51,168, 68,155, 98,152, 12, 78,199, 35, 62, 61, 60, +200,196, 33,139, 10, 59,232,110,222,107,116,232,249,114,198,241,112, 16, 24,138, 33, 92,150, 69, 4,117, 94, 38, 11,173,120,246, +206,105, 17,197, 87,137,131,163,179, 40, 89,214,104, 82,228, 25, 84,178,240, 37,129,156,195, 57, 21,213, 59, 24,140,222,118, 28, +114, 91, 27,201,136,182,246,162,222,146,193,162,186,132, 13,248,100,117,196, 47, 26,129,148, 50,140, 78, 99,154,248,115, 67, 82, +179,102, 96, 12, 40,176, 48,214,129,107,197,195,243, 19, 12,218,186,110, 67, 87,151, 22,206,212,129, 44, 77, 16, 86,122, 18, 39, +183,213, 42, 53, 42, 36, 93,133,115, 48,237,130, 96, 42, 64, 70,197,178,188, 15, 89,234,243,191,174,181,225,221,247, 76, 42,187, +111,118, 45,230, 10, 46,232,154, 28, 13, 93,211, 8, 11,234, 63, 3,117,141, 18,131,216,116,214,122,239,178,251,153,131,206,218, +239,251,245, 54,102,103,192,192,160,170,198,107, 47,210,238, 46, 46,162,158,226,102,173,133,117, 3,170, 9,200, 41, 41,231, 94, +108,166,212, 99, 78,203,149,208,153, 84,239,181,229,208, 19, 0, 17,174, 89,181,216, 66,243, 16, 88,249, 38,181,233, 92, 0, 56, +231,175, 92, 10,198, 24,212,220,154, 14, 93,117,229,172, 57,242,122, 87,235,200, 95, 28,108,220, 39, 12,142,105, 55, 45,215, 55, + 68, 46, 98,189,152,155, 96,106,119, 49, 75, 33, 88, 91, 67,216, 61,159,251, 55,145, 53, 57,172,171,150,121, 7, 88,169,140,151, + 47,239, 36,202, 82,193,255, 45,139, 58,169, 80, 75,186,106,133,136, 4,177,248, 24,211,136,115,162,212, 31,130,140, 38, 92,139, +222, 84, 15,187, 81, 97,198,188, 38, 84, 67,240,204,184,121,251, 37,254,251,255,241,223,225,127,254,159,254, 7, 44,113, 69,204, + 69, 47,103,217,167, 23, 8, 86,243,156, 50,230, 84,177, 86,198, 77,112,120,120,120,194,143,223,189,197, 95,254,171,127,129,243, +121,198,239,255,240,149, 88,147,226,170,100, 47,234,123, 48,230, 54, 78,225,141, 59,204,123,213, 60,245,157,110, 35,244,245, 96, +211,157,205, 67, 46,207,114,157,198,208, 84, 36, 61,187,119,179,127,201, 4, 99,251,144,237,247,246,172,254,107, 83,141,164,107, +237,162, 94, 43,201,120,127, 75, 18, 16,203, 83, 45,187,209,153, 94,244,141,146,100, 28,233,238, 19,255,236,200,220,104, 34, 17, + 51,195, 91,191,219,249, 24,205, 33,150,221,184,181, 22,199,195, 1,111,222,188,194,219, 55,175,113, 60, 76,157, 55,223,187,121, +230,174, 18,109,235, 13,238,251, 59,131,249, 50, 75, 32, 14, 1,131,238, 67,107, 43, 64, 44,193,177,133,163,128,121, 94,174,242, +236,157, 27,117, 39,255,116,229,125,183, 74, 38,116,110,216, 86, 13,110,192,253,235, 47,165,240,121, 83,112,186,125,209,199,228, + 95,255,238, 55,120,250,254,107, 84,102, 12,131,151, 46,154, 9,117, 93, 49,140, 22,140,140,186, 2,167,105,194,243,249,130,164, + 40,219,112,115, 47,211, 28,150, 93, 26, 52, 17, 75,210,159, 74,207, 40,224, 74, 18, 99,170, 15,136,128,104,156,236,179,189,239, +232,132, 85, 47,137,117, 89,186,213,138,187, 11, 67, 44, 99,226, 37,206,114,105, 70, 25,255, 61, 95,206, 56,140, 35,130, 49,136, +203,170,227,112, 93,143, 45, 51,136, 12, 46,139, 88,196, 10, 42, 50, 11,243,189,234,222, 51,158, 47, 32, 50, 56, 76, 18, 43, 90, +149,239,237,188,199,203,219,131,124,158, 84,200, 86, 83,198,195,227, 39,193,154, 50,227,230, 40,216,213,166, 80,103, 34, 12,222, +227,249, 50,139,189,110, 28,112,190, 92, 58,190,118, 93,163, 70,209,202, 97, 54, 28, 68,116, 40, 62,112,121,205,188,247, 40,149, +113,152, 6, 88, 99,145,115,196, 56, 4,204,203,162,144,156, 91,153, 98, 88,135, 33, 4, 92, 86,225,232,111,124,127,113, 31, 8, +190,212,194,248, 13, 74,210,158,177,148, 10, 74,140, 56, 29, 15,248,246,225,121,163, 15, 18,245, 93, 58,169,103,186,109,228,138, + 58, 4,192, 34,204, 28, 66,216,209, 21, 53, 78, 89,197,181,185,197,254,106,251, 84,114,222,214,146, 90,108, 59,107, 49, 13, 19, + 42, 37, 92,214, 5, 37, 39, 29,227,183, 24,211,221, 37, 91, 25,108, 42,152, 77, 79, 23,219, 86, 95,116,149,245,193,140, 31,128, + 93,118,155,230, 77, 69, 85, 91, 60,232, 15,129, 80,125,242, 71,215,251,186,214,252,148,186,105,107,184,110, 99,127,230,186,137, +165,193, 87, 2, 56,110,106,100, 93, 71,126,102,200,234, 59,229, 70,245,108,143,116,211, 25, 52,125,151,169, 4, 54,187, 81,190, +106,229,141, 66,201,100,181, 23, 96,173, 7,181, 92,132, 20,251,153,109, 52,183, 34,165, 45,247,188,239,205, 53,155,228,237,219, + 87,106,201,147,115,213,123,177,157, 74,247,173,133,135, 78, 74,100, 52, 47,110,157,180,174,200, 73, 38, 17, 89, 11, 80,214,206, +188,209, 66,155,221,180,253,204,205,198,205,138,236, 54,206,194, 90, 15,215, 83,214,250,126,124,163,151,237, 19,216, 54,136,192, +142,251,222, 68, 83, 59, 63,228, 86, 85,214,171, 81, 75,163,163,181,247,225,238,246,132,239,190,115,176, 73,131, 78,200,224, 16, + 28, 30,230,117,195,254,105, 6,182, 16,172, 34,166,105,232,239,230, 50,207, 61,250,112,240, 22, 73, 33, 38, 86,147,133,108, 97, +100, 24, 76, 7, 77,215,226,132,255,237,127,249,119,176,117, 69, 24, 2,170,149, 23, 36,232, 12, 38,169,125,194, 21, 11,103, 1, +231, 54, 90, 91, 67,205,157, 78, 7,252,235,191,252, 37,254,246,239,254, 99,143, 75, 44,185,200,110, 89, 15, 82,176, 92,244, 69, + 59,241,189,240,162,116,225,155, 30,188,117, 27,171, 93, 13,195,184,234,212,105,191, 7,170, 29,229,204,125, 4,182, 29, 6,189, +179,111, 81,185, 10,161,233,128, 24,162,110, 49,105, 62,204,166, 4,134, 33, 88,178,221, 81,103,189, 3, 52,123,122, 79, 42,106, +202,207,170, 93,189,177, 91,183,221,133,131,170,184,111, 78,133,134,158,188,189,185,197,187,183,175,241,250,213, 11, 33,189,253, + 96, 34,161,180,183,182,207,251, 76,199,209,241,195,251, 24,217,202, 56, 78, 35,158,227,172, 64, 17, 73,173, 74, 73, 46,204,154, +101,119,203, 36,113,159,214, 56, 56,235,113,123,247, 26,195, 48,224,211,199,111,122,246, 59, 85, 29, 23, 15, 71, 28, 78,183, 56, + 28,239,113, 89,223, 35,120,139,247, 95,253, 35,254,171,127,243,223,225,235,175,191,194, 79,255,226,167,248,244,233, 35, 46,243, +130,219, 55, 63,194,225,238, 37,190,254,237,255,139,180, 68,184,233,128,146, 11, 74,205,112,206, 73,152,137, 78, 59, 78,135, 9, +139, 53,168, 85,113,163, 97, 64, 90, 23,144, 49,152,231, 25,198, 72,182, 65, 8, 78, 70,194, 36, 19, 9,231,253,110,252, 41,123, + 59, 99, 29,114, 76, 72,165,192, 89,143, 16, 28,226,178,224, 48,138,181,230,124, 57, 35,231,130,113, 58, 96, 89, 86,153, 34, 40, + 16,197,121,135,154, 88,210,214,114,217, 38, 38, 4, 80, 41, 82, 88,171,143,122, 89,150,222, 77, 95,230, 21, 47,238,110, 4,210, +162,239, 79, 19,101,229,156, 65, 58,150,183,214,192, 91,163,159, 31, 33,212,157, 78, 55, 96, 84, 56,231,113, 58,158, 68,212,186, +174, 72, 73,118,193,237, 82,205,204, 18,209, 90, 25,159, 30,159,251,115,212,192, 76, 50,173,112,136,169,116, 78,186, 8,223, 6, + 73,180,180,174, 59, 74, 82, 92,123,225, 89, 82,194,233, 78, 46,116, 98,225,234, 59,231, 17, 74, 5, 7,177,204, 85,150,201, 0, +152, 49, 14, 65,224, 74, 36,212, 74,231, 76,191,244, 83, 46, 56, 29, 38,148, 82,240,188,234,212,142, 8,135,224, 58, 97,205, 59, +135,224,156, 52, 32, 69, 38,155,206, 24,172,186,174,168, 44, 94,123,168,118,167, 48,195, 27, 66, 98,198, 96,157,170,208,185,239, +230,179, 70,141, 26,165,154, 57, 23,224, 57,195,196, 21,156,147,166,252,201,196, 10,134,213,166,101,186,125,179,157,229, 29,172, +194,155,103, 93, 18,183,174, 85,188,187, 32,202,171,156,200, 54, 88,223,208,214,216, 5, 78,109,244,181,157, 18,119, 43, 4,104, + 99,209, 87,205, 21,105,130,108,222, 11,104,181,203,102,222,156,226, 13,244,213, 21,239,172,176,176, 29, 37,110,155, 66,238,213, +238,232, 0, 25, 34,177, 56,183, 92,143,118,199, 72,200,148,217, 44, 97, 32,212, 28, 5,101,205, 86, 39,178, 86, 45,182,251,245, + 4, 93, 9,127,133,133, 79,120,253,234, 69,119, 16, 65,221, 33,205,162,104,173, 83, 32, 27,250,106,205,251,160, 71,126, 27, 39, + 10, 58,182, 79, 33, 32,133, 68,209,224, 33, 77,126,233,107,206,230,152,146,162,196,169, 79,253,179,176,144, 10,254, 44, 78,245, +179,212,176,157, 32,174,225,253,122, 55,138, 93, 32,201,158, 27,222,126, 79,147,226,233,152,196,104,240, 66,173,242, 3,204,235, +170, 80,146,140, 90,133,158, 85, 13,193, 14, 1,227, 56,136,234, 54,136, 95,111, 89, 46, 24,181,248, 40, 44,184,209,166,154,150, +182,191,194,122, 3, 11, 0, 14,248,249,191,254, 47,241,211, 95,254,167,248, 63,254,247,255, 21,156, 43, 12, 85,120, 29,145, 26, +222,160, 41,201,106, 69, 73, 6,145, 1,231,109,135,234, 19, 73,102,249,175,254,229,207,240,233,225, 9, 95,125,253, 13,138, 17, + 69,168, 49,180, 11, 27,208, 52,186,202,221, 10,199,186,227, 99,152,171,224,156,246, 0,180, 55,167, 85,205,212,201, 69,102,211, + 41,208,206,111,174,106, 76,236,212,243, 76, 91,119,208,157, 7, 44, 66,143,150,104,213,161, 11,125,109, 64,240,222,169,202, 86, + 59, 22,133, 42, 88,221,241,144,142,248,140, 78, 68,108,251,192,153, 13,186, 35,255, 77, 82,244,110,111,110,241,229,187,183,120, +249,242, 94, 66, 66,218,231, 66, 15, 92, 65,111,238,136,124,188,137,107,184,131,125,168, 11,246,174, 48, 16, 58,210,143, 41, 9, + 98, 17, 98, 97,236, 57,244,181,192,178, 76,121, 44, 24,235,154,180,130,111, 33, 57, 22,247, 47,191,192,253,139,123,252,246,239, +254,159, 62,150, 7,100,151, 23,198, 35, 74, 74,184, 60,125, 64, 74, 17,203, 26,241,227, 55, 63,193,223,255,253,111,240,252,240, + 17,191,251,135, 95, 99,125,254,132,159,254,242,191,192,235,119, 63, 70, 14, 35,134,241,128,188,158, 17,215, 21,195, 48, 98, 26, + 92,103,107, 91, 99, 16,215, 40,157,131, 53, 96, 22, 0, 75,205, 98, 33,243,134,224,131, 7,193,104, 23, 32,135,142,116,103, 91, +224, 71,201,172,204,114, 39, 81,175,227,132,192, 21,231,243, 12,176, 40,105,171, 53,240,214, 10, 35,125,149,244,184, 53, 51, 30, + 47, 51,156,147, 61,185,100,183,139, 64,109, 28,164, 72, 62,159,207,176,198, 72, 0,139,181, 88, 82,132, 97,201, 91, 88,150, 69, +186,245,195, 40,175,175,181, 40, 49, 34, 21, 70, 65, 22,239,118,112,152,151,136,224,101,133,146, 74,134, 41, 18,235, 90, 42,227, + 89,161, 64,169, 77, 20, 98, 66, 92, 87,233,124, 74, 65, 85, 29,141,113, 30, 65,227, 71, 31,233, 65,195, 85, 2,214,152, 48, 56, +139,113, 24,100, 68,175,227,234,105,146, 64,153,210, 96, 87, 85,178,228,215,117,133,119, 2, 30, 90,150, 5,211, 52,105,135, 40, +222,246,102,159, 10, 65, 82,239,194, 16, 48, 12, 3,190,251,254, 59,140, 67, 80, 11, 30,117,132,103,214,184, 99, 73, 23,147,149, +225, 31, 62, 60,246,226,134, 12, 97, 10, 78,200,148,160, 30,208,210,206, 76,107,141, 88,230,122,199,189,173, 46,101, 21,224, 53, + 67,222,116, 14, 68,211,202,212,134,170, 53, 70, 12, 98, 36,182,202,146, 19, 12,196,122,150, 10,235,103, 69,236, 97,198,146,146, +241,168,251,191,171,130,163,182,149, 33,245,209,126, 35, 94, 54,113,108,195,110, 16,109,180,179,158, 39,222, 46,227,186,209, 30, + 55,216, 11,119,190,197, 94, 16,187,233,131, 20,146,133, 77,188,214,126,206,193,251,157,170,125,199, 85,223,127, 79,216, 11,232, +126,120,121, 91, 67, 59,210, 28,117,177, 48,104, 83,184,147,130,214, 88, 17,178,109,135,223, 38, 39,165,230,173,136,128,219,206, + 57,150,166,135,106,197,158,214, 77,186, 82,148, 9,154,147, 92, 18,117,210,228,148,177, 92, 46,178,118,117,174,115, 32,226, 26, +117,170,102,116,221,156,123,116, 45, 65,180,100,109,172,111,119, 83, 13,168,222,132, 88, 33,100,157,138,105, 65,186,190, 36,244, + 64, 23,110,129,170, 93, 69,189, 9,184,218,142,125, 23, 52,182,251,160,244, 34, 79,247,127,220,179,134,209,171,146, 94,103,243, + 94,144,197,120,113,127,139,168,225, 21, 68,178, 3,183, 86,242,142,247,137, 58,141, 26, 5, 54,136,235, 42,163,145, 53, 98,178, + 70, 19,192,132, 65,110, 27,156,223, 26,148,202, 24, 12,228,129,116, 22,255,244, 55,255, 55,126,251,215,255,151,252,217, 93,117, + 8, 2, 44, 8,163, 21, 88, 73, 2, 96, 43, 99, 41,242,193, 60,157, 78,253,195, 85, 89, 3, 96, 64,184,191, 59,225,213,139, 95, +225,111,126,253, 15,112, 46,203,174,189,170,237, 13, 93,109,214,161, 3, 18,107,106, 59,180,165, 63, 42, 21,125,148, 83,247,150, +151, 6, 80,216, 35, 97,121,167, 98,223, 17,231,104,127,139,239, 22,248,100,118, 99,113, 99, 97, 76,221,168,113,134,118,170,114, +129,240, 48,116,140, 99,108,255,154,125, 55,213,119,243,212,197, 28,206, 75,231,213, 59,240, 16, 58,172,162,237,134, 74, 41, 61, +231, 24,181,106,204,225,118, 85,203, 68,129,175, 14,178,150,198, 46, 15,223,102,116,103, 29, 57,145, 53,248,244,241, 9, 57,174, + 24, 28,225, 67,202,240, 54,192,176,160, 49,141, 53,120,190,136, 64,140,172, 1,167, 34,227,108,245, 38, 15,131, 71, 8, 65,139, + 10,113, 77, 72,225, 75,178, 71,190, 60,168,221,173,194,250, 1,247, 47,223, 98, 58, 28,241,205, 87,255,132,248,248, 61,156,117, +120,122,255, 39,252,248,103,255, 18, 92, 43, 92, 24, 48,159, 31, 64,198,131, 74,133, 15, 6, 41, 85, 68,151,225,201,246,196,182, +167, 57, 98,176,132, 88, 42,152, 53, 41,174,180, 48, 31,131,105,244,106,233, 1,106,138, 42,212,146, 81,109, 8, 3,188,218,174, +104,145,139,166,251,213, 83,193,241,112, 80, 62,123, 2, 21, 65,119, 6, 0,135,227, 17, 94, 47,249, 24,147,164,167,169,109, 11, +100, 36,148, 70,153,237, 34, 6,202, 93, 80, 86, 74, 65, 90, 22,220, 28, 15,112, 78,144,184,134, 68, 97,111, 76,197,241,112,144, +209,111,201, 93,161,203, 61, 32,198, 98, 94,146,144, 4,189,112,230, 7,117,144, 16,100, 44, 89, 25,125,191, 60,142, 19, 64,192, + 48,140,210,181,151,130,113,144,247, 40, 56,177,240,192, 24, 12, 62, 96, 94,102, 76,211, 1,207,231, 51, 82,150,226,196,238, 14, +181,195, 52,244, 98, 40,132, 32, 2,186,148,224, 26,195,192,112,135, 54,141,195,160, 46,132, 11, 44, 9, 77,141,185,246,148, 70, + 73,179,147, 98,108, 89, 35,198,193,227, 28,101,253, 80,245,178,189,155, 66,135, 46,181, 73, 33,243,182,254,232,217,221,106,225, +108,163,104,215,114,202,119, 5,125, 99,171,183,176,155, 90,165,105,177, 26, 95,155, 75, 70,140, 75,183,143,122, 99,144,201, 32, +117, 71,141,122,197,185, 57,107,164, 17, 97,146,247,215,135, 32,113,211, 57, 43, 11, 67,175,245,122,189,199,110,231, 9, 95,141, +223, 27,171,132,123, 65,112, 61,174, 55, 59, 29,125, 99,177,213,173,123,223,125,181, 14,150,214,202,222,170,198, 0, 36,234,240, +206, 52,191,162,200,209,149,203,232,138,219,222, 38,162, 93,175, 67,186,155,111, 32,145,189, 88,144,174,208,177,109,202, 8, 50, +234, 30, 18, 13, 66, 67,134,183, 53,131, 49,232, 2,202, 46,234, 85, 65,176, 49,132,187,187,155, 46,254,149,203, 91,118,241, 33, + 12, 34,170, 75,226,146,136,203, 34, 8, 94,235,182,112,180, 90, 97,189,133,117,109, 77, 34, 29, 58, 87,222,156, 12,204,187,149, +136, 72,251, 37, 53,210, 43,204, 73, 11, 79,238,135,106, 75, 94,231, 93,164, 42,111,126,102,222, 8,246,181, 37, 11,181,220,245, + 10, 84, 18, 25,126, 27, 19,247,241, 61,239, 59,123,116,186, 16, 19,225,229,139, 27,124,248,240, 81, 14, 34,221, 77,149, 34, 32, +139,105,156, 68,112, 68,132,160,106, 82, 99,100,132,108,141,145, 93,228, 52,192,235,139,192, 32,100, 38,112,169,176, 90,137, 22, +102,112, 97,248, 32,111, 88, 45, 81, 31,102,116, 42,149, 49, 50,150, 33, 34,233, 22,200,128, 81, 17,107,129, 13, 22,222,187,237, + 50, 85,118,115,243, 96,150, 90,241,171, 95,252, 12,159, 30,159,240,205, 55,127,198, 26, 99, 7,191,108,226, 55,131, 90,212,187, +249, 25,212,128,181,163,111, 89,194,178, 71,173,159,173, 59,180,154, 68,189, 26,147,181, 70,189, 22,238, 74,246, 38,252,232, 54, + 15, 77, 13, 18,159,166,235, 12,246, 43,196, 98,219, 85,169, 10,125,179, 90,152,110, 29, 52, 70, 70,232,227, 56,226,213,203, 23, +120,247,230,149,134, 99, 96,215,121, 80, 23, 84,217,141, 89,209,119,117, 76, 66,211, 99,162, 45,187,158, 55, 75, 73,243,145,247, +125, 32,147,190,102, 87,146,254, 62, 65,202, 57,129,184,226, 48, 14,184, 61, 29, 65, 69,168, 86,177, 36,137,220,101,198, 82, 74, + 15,158, 65,173,176, 78, 42,234, 63,253,225,119,112,254, 0, 50, 14, 40, 9,213,168, 71,128,129, 24,103,164,143,223, 42,150,209, + 33, 12, 19, 82, 74,136,159, 62, 96, 61, 63, 32,151,130, 97, 58,192, 56,143,245,114, 65, 74, 43,214,229, 2, 99, 28,142, 83,192, +156, 34,150,165,136,186, 59, 37, 20, 54, 90, 68,120,156, 12,227, 60, 47,112,198, 98, 94, 35,192, 5, 38,200, 88, 22,100,212,179, +154,101, 74, 98, 12,160, 24, 92,231,188, 22, 28, 50,138, 46, 32,245,186,171,240, 70, 15,216,154,146,142,195, 11, 96, 12,150, 40, +168,201,117, 93,113,185, 72,215, 75, 12, 60, 93, 22, 56,103,113, 51,141, 10,136, 73,240, 62, 96, 89, 37,106,181,137, 60,107, 45, + 56, 4, 15,104,135,233,140,133,113, 22, 41, 85, 56, 39, 43, 13, 99, 45,156,210,207, 42, 51, 98, 41, 56,141, 83,215,153,172,107, +196,141, 22, 28,177, 84, 44,243,130,219,211, 13, 74, 45, 34,234,155, 38,245, 62, 39, 28, 14, 7, 20,174,136, 41,169,151, 92, 14, + 69,175, 93, 78, 8, 65, 20,251,214, 97, 93, 22,140, 97, 0, 81,194, 16, 6,249,124, 25,210,248,212, 11,130,115,130,225, 13, 1, +151,203, 69,179,237, 1, 88,211, 93, 53,195, 48,224,227,135,143,176,214,104, 0,206,134,228,100,180, 0, 15, 57, 88,115, 46,152, + 6,185,188,191,127,120,236,209,201,110, 87, 28,123,239,228,125, 83, 27, 85,202, 25, 99,240, 87,233,135,185, 84,140, 97, 75,153, +148, 80,165, 2, 3,131,168,159,215,102,109, 75, 89,172,122,107,170,178, 78,204, 25,231,101,193, 96, 13,230,168,123, 94,107,224, +157,116,133,237,226,106, 46, 23,153, 62, 25,144,145,134,136,245,156,113,206,195,218,164,241,195, 27,249,141,182,124, 86, 73,220, +220,117,210, 29,232,210, 57,172,124,229,142, 2, 95,239,225,251,121,223,129,155,123,207,185, 62,223, 58,191,119,164, 23,153,254, +221,198,218,126, 62,246, 11,123, 3,164,232,217,198,215,110, 26,124,206, 65,111, 93,186,217, 69,177,210,174, 43, 87,141,150, 49, + 87,209,172,220,154, 85,227,118,171,136,205, 19,111,140,237, 9,120, 29, 46,100,165, 72,254,242,139, 55,176,222,131,139,144, 46, + 99, 92, 55,208, 77, 45,224, 90,144, 98, 18, 23, 76, 8, 50,142,111,122, 44, 0,206, 7, 56,221,231,151,162, 16, 56,109,150, 91, + 96,209,150, 66,167, 90, 41,107,251,235, 85,213, 57,225, 58,176,132,182, 42,160, 54,224, 73,207,220,174, 29, 42,211,198, 33, 85, + 61,139,181,126,102,121,235, 82,251,141, 32, 38, 23,127,147,126, 16, 80,169, 99, 69,173, 19,163,125, 45,219, 94,196, 90,131,148, + 86, 76,225,136,211,233,136,211,225, 0,160, 42, 27, 89,186, 95, 99,229,242,181,198,109, 56, 82, 0,197,144, 80,162, 44,161,194, +194,146, 86,176, 45,146,177,145,211,180, 99, 48, 76,200, 96, 56, 45, 2, 26, 11, 60, 22,198, 4,224, 48, 14,253,146, 81, 33,171, + 86,142, 27, 2,245,254,246,132,151,119,183,248,187,127,248, 29, 82, 92, 17, 83,148,203,188,138,120,206, 24, 97, 43,181,234,185, + 2,178, 55,209,139,176, 91,198,120,123,136,154, 0,131,118, 26,185, 45,204,100,227,242, 27,179,181,246, 13, 58,113, 21, 45,216, +149,184,166, 7, 40,116,200, 12,182,241, 81,251,144, 67, 99, 56,125, 8,184,189,189,193, 23,111,223,224,254,238,102,179,238, 53, + 24, 80,135,219,136,188,210,240,198,109,174,100,117,116, 71,219,216,205,112, 15, 35,104, 59, 24,218,239,204,121, 35, 21,210,110, +220,199, 90, 4, 82,109,252, 43, 61,180,152,181,120, 96,188,184, 61,225,155,111,255, 12,103, 8,161,123, 54, 89,139,194,173,240, + 0, 8,203,122,193,143,127,246,159,169,111, 92, 10, 35,177, 81, 74,135,234,108, 59,132, 7,228,252, 4, 83, 42,172,115, 40,181, +226, 39,255,201,191,194, 87,191,253, 43,252,139,191,252,175, 49, 28,111, 48, 29,142,248,167,191,255,247,152,231, 25, 83,112,168, + 12,220,157,238, 64,168, 24,188, 19,191,115, 76,184, 36,139,232, 12, 98,150,145,217, 37,103,220,221,156, 4, 60,146, 98,183, 89, +101,146, 84,192,118,121, 88,125,184, 75,149, 66,215, 7,217,191, 89, 67,160,224,133, 18, 87,178,138,194, 36,162,210,123, 18, 69, +126,150,137,201,211,227, 19, 46,203, 2, 31,130,104, 13,200, 96, 26,156, 92,240, 68,120, 58,159, 69,172,102,164,235, 44,181,194, + 91, 9,102,105,161, 46,222,139,162,188, 77, 54,172,209,188,251,146, 49,141, 35, 24, 78,194, 94,158,158,112,156, 38, 28,166, 17, +207,207,103,217, 21,135, 32,112, 28, 72,230,249,253,120,131,203,188,192,184, 0,239, 29,214, 36,151,232,221,221, 9, 62, 4,217, +123, 15,140,115, 22,190,188,247, 10, 28, 50, 6,235,186, 74, 65,207, 5,163, 31,177, 38,193,205, 94,214, 21, 94,149,199,232, 43, + 43, 22, 49,220,178,168, 7,223,232,116,128,187,165, 52,197, 36, 72,210,146, 49, 47, 43, 6,253,239,222, 10,214,153,153, 81, 21, +153, 91, 85, 20,245,199,247, 15,219, 25,105, 12,142, 99,208, 61,183, 85, 72,143,193,160,129, 45,206,154,238, 42,217,138,248, 13, +148, 3, 0, 57, 55, 84,106,130,209, 9, 99, 81,107,222,154,244,117,174, 21,231,121,193,224, 84, 60,165, 34,176,172,183,166, 53, + 22,134, 36,247,162, 57,112,138,238,117,201,144, 8,196,244,244,173,181, 32,132, 1,195, 48, 96,105,150,220, 70,254,220, 17, 66, +141,174,224,168,111,207, 89, 70,214,168,187, 8,106,254, 1,107, 93, 10,137,218, 67,175, 54,220, 27, 58,216,140,118,225, 96,204, +192, 48,134, 29,176,170,238, 68,114,187, 32,171, 29, 10,111, 15,145,185, 98, 99, 52, 97, 47,153, 77, 9,223,214,159,188, 83,255, +211,214,205,139,237, 22,170,125,145,179,163, 48,119,196, 47,171, 37,176,171,242,245,172,108,231,160, 0,178, 8, 97, 8,184,189, +187, 1, 23,249, 60,181, 11,221,134,112,229, 64, 98,174,112,222, 99, 28,167,174,113, 72,177,116, 22, 74,251,119, 85,225, 60, 85, +139,185,170,107,209,253,132,160,117,230,164, 83,157, 82, 4, 82,227,176,235, 0,219, 37,220, 40,115,178, 63,169, 26,197, 90,183, +192,120,218, 95,236,212, 71, 44, 12, 65,206, 86,186,234, 73, 55, 98, 81, 71, 8, 54,177, 93,197, 23,111, 95,227,119,191, 95, 81, + 76, 6,179,233,157,164,247, 30,135,105, 4,231, 12,239, 45, 8, 34, 60, 1, 1,231,115,132,215, 80,151, 92, 55,172,166, 81,209, +155, 39,185, 92,150,148,224,130,140,215,168,202,168,179,125,146, 90, 44, 95,227,204, 23, 0,133,165,155, 40,117,243,108, 7,239, +126, 16, 42,242,195,120, 84, 41, 8,126,241,243,159,226,225,225, 17,127,250,230, 59,233,164,244,141, 20,184, 72,149,105, 1, 23, + 88, 99, 53,212,132,174,146,140,218,152,214, 24,222,233, 20,176, 85,165,189,215,231,221,120, 74,199, 75,116, 29, 73,104,126,224, + 9,151, 46,149,168,108, 42,216,102,223,176, 14,211, 56,226,205,235, 87,120,243,250, 37,188,119,155, 63,180,249,241,247,106,212, +202, 87, 10,212,134,187,220,242, 36,246, 24,162, 70,199,193,245,184,110,187,219, 55,138,252, 14,181,219,129, 60,187, 67,160,237, + 47,159, 47, 75, 87,143,135, 97, 0,101, 96, 77, 25,213, 18, 14,193,227,188,204, 98, 28,225,141,242,151, 75,133,165,138,211,225, + 8, 67, 6, 79,143,239,213,237,129,142, 3, 21, 53,105,193,241,230, 53,230,243, 35,106,173,120,124,248,128, 15,223,127,131,251, +151,111,112,186,125,137,255,252,223,252, 91, 76,135, 35, 94,189,124,135, 15,223,127,141, 90, 11,188,149,130,231, 48, 29,228,146, +245, 14, 15,151, 25, 99,144,132, 54,107,229,251,115, 4,172,122,192,166, 24,197,142,233, 2,226,186, 34,132, 32, 93,154, 10, 54, + 11,164,219, 54, 36,222,231, 48,140,138,212, 44,152,231,185,163, 92, 5, 0,100,193, 69,172, 75,243,188, 34,151,170,216, 88,181, + 15,198, 36, 43, 42,239, 20,113, 44,249,225,196, 34, 60,179, 26,224, 49,132,160, 43,147,138, 97, 24,118,164, 33,234, 98, 78, 67, + 4, 63, 4,132, 97, 64, 92, 69, 49,127, 58,221,232,216, 93, 68, 93, 89,133, 62,131,247, 34, 14,213,113,178,119, 30,203,178,226, +230,120,194,154, 34, 82,145,221,117, 83,136,187, 90, 17,215, 85, 55, 53, 82,196, 59,235, 5,203,170,157, 47,156,116,217,205,243, +159,153, 96, 81,177,198, 54,101,168,189, 69,124,120,122, 22, 96,139,186, 11, 82,138, 50,245, 40, 9,217, 0,243,178,246,209,230, +233, 48,202,247,168, 65, 59,214,200, 40, 89,254,156,224,131, 31,180, 80,145,100, 47,131,131,119,170,176, 22,193,155,179,118,179, +202,105,230,124,235, 50,107,143,100,150,238,186, 69, 54,103, 22,212,112, 42, 21, 30,132,152, 19, 86, 77, 64,204, 89,184,232,193, + 10,176,167,176,197, 33, 56, 44, 73,148,238,185,182, 80, 18, 17, 39, 86, 46, 87,104,233, 82, 43, 28, 9,248,240, 60, 58, 0, 0, + 32, 0, 73, 68, 65, 84,141,177, 74,234,134,168,174,139, 40,240, 99,140,160,156, 59,173,141, 13,131,170,209, 51,191, 17, 30,182, +139,220,144,238,238,169, 21, 42,155,125, 13, 84,193,117,119,206, 55, 6, 70, 59, 59,169, 49,215, 55,220,184, 88, 9,109,247,179, + 95,181,161,170, 79,218,235,179,232, 51,191,249,231, 8,216,205,150, 78,253,123,236,151,181,218,142, 97,168, 39,131,238, 81,190, +237, 76,108, 69, 85,163,248,113, 45, 42, 58,108, 78,160,173,160, 48,164,194,108, 99,241,197,187, 55,221,221,148, 82,234, 66,233, + 86,232, 53, 55,138, 49, 22, 97, 28, 16, 6,229, 42,232,116,183,237,219,183,239,169, 77,198,235,150,143,208,154, 51,157,204,153, +230,142, 0, 96,116,154,197, 34, 33,219,200, 39,116, 21,199,169, 6, 55,150, 11,157,120, 27,157,108, 60,131,205,178, 85,193,122, +161,215,206, 17,230,221, 9,126,189, 77,105, 99, 89,194, 52, 6, 56,239,144,146, 3,113, 2,152,112,154, 6, 21, 5, 89,220, 28, + 15, 24,148, 16, 5, 72, 28, 31,148, 75,108, 32,149, 38, 90,213, 2, 32,236,240,135, 6, 82,249,146,126, 32,123,101,172,247, 96, +209,160, 12,195, 45,208, 94,240,162,237,235, 89,163,149,211,142,173,139, 43, 62, 48,174,196,107,204,162,234,127,249,226, 22,255, +225,183,191, 67,140,179,134,138, 84,176,114,224, 13,153,171,252, 91,171,249,238,253,129, 39,163, 30,129,170, 76,238,218, 31, 84, +222,249, 51,183,152,160,221, 5, 79,166,119,239,212,243,133,197, 30,101,141, 5,145, 64, 91,156,181,184,185, 57,225,203,183,111, +112,123,123,218, 32, 9, 74,151,147, 15,151,189, 74,119, 35,252, 16, 80,164,204,138,171,239,129,119, 97, 44,155,196,134,213,157, +105,208,184, 84, 68,220,120, 61,219,103,131,120,223, 44, 92, 23,145, 90, 60, 90, 54, 88,231, 21,156, 35, 78,135, 9,195, 16,192, +151,138,227, 52,161, 22,177, 42, 50,203, 4,200, 48,227,146,228,181,117,202, 4,176,222, 99, 26,143,248,227,239,127,141, 33, 28, +144,150, 71, 37,235,137,173,113, 89,207, 8,227,141, 28, 30,198,192, 84,224,219,223,255, 22, 6,192,221,139, 55,248,242,203, 31, + 35,165,136,223,255,227,223,226,253,251,239, 96,211, 5,193, 89, 28, 15,130, 27,205, 57, 33,229, 8,235, 6, 57,244,156, 7, 12, + 97, 50, 22,231,203, 5,135,224,192, 24, 52, 96,196,162,228, 5,227, 56, 97,208,177,177, 76,114, 8, 83,240, 0,137,120, 13,198, + 72,176,136,119,184,172, 17,105, 93,117,191, 59,180, 17,141,116,226, 57,195, 24,139,201,123, 28,198, 1,231,203,140,243,154, 48, +232,184, 55,248, 0,242, 50, 42, 79,185,192,216,166,119, 0,124, 8, 8, 33, 72,135, 93,171, 96, 86, 85,148, 87,187, 72, 90,192, + 74, 57,138,205,202,168, 2,247,227,167, 79, 58, 85,144, 17,253,167,199, 39, 20,141,108, 45,149, 81, 17,213, 66, 40,221, 94, 46, + 18,169,233,189, 71, 76, 81,152,239,198,226,211,167, 71,184,224,144, 98, 20,180,243, 56, 34,197,132,105, 58,224,227,195, 35, 94, +222,221,226,114,153, 59, 27, 33,132, 1, 69,109,177,119, 55, 55, 96,102,172,235, 34,144, 29, 39,211, 3,231, 44, 82, 20,107, 91, +138, 81,198,227,128, 88,133,106, 21,199,140,181, 72, 57,117,250, 27, 85,185,168, 83,170,170,115, 33,128, 11, 62,156,151,174, 25, +177,234,157,111,104, 90,239,172,162, 65,181, 8,239,145,171, 82, 80,122,103,123,132,103, 11, 48,169,202, 18, 16,177, 91,197, 69, + 51,234, 99, 18,252,237,232, 8, 79, 41,163, 24,131,227, 40,118, 61,103, 13, 38,242, 72,185, 34,101,238, 5,132,140,146, 91,200, +181, 34,144,149, 74,103,141,197,134, 97,226,190,150,240, 10,251,225,172,205, 27, 27,185,216,217,232, 58,213,104, 3, 97,118, 16, +172,246,124,215,173,253, 86, 46, 6, 76,221,173,202,244,247,182,121, 35,235, 5, 77, 27, 84,134, 1,140,195,120,149, 10, 74,109, + 93,198,251,248,230,218, 51, 31,176, 67,195,238,228,239,221,197,209,154, 53,130,144, 35,187, 46, 71, 51, 46,154,176,183,163,190, +141,233,103, 77,209, 75, 61, 87, 6,115,146,207,174, 10,156, 65, 82,236,116, 48, 77,215, 41, 9, 16,232,205,155,215,189, 1,170, +181,110,147, 1, 5,213,180, 2, 88, 28, 46, 67,191, 79,132, 89, 82,187,229,215,232,175,181, 54,146, 28, 80,138,235, 59,127,163, +232, 88,168,229,187, 17,243,164,161,149, 36, 57,247, 57, 92, 0, 87,232,188,218,105, 59, 93, 0,161,130,138,214,141,233,111,211, + 17,201,214,118,213, 93,129,118, 77, 40,220,189,233,122,104,159,142, 71,164, 24, 69,109,106,196,203,249,147, 47,190, 64,169, 34, +156,115,198,192,134,128, 20, 19,230,249, 9,191,249,199,223,227,103,175,239,100,180, 77, 74,142,113,170,128, 84,236,168, 33,131, + 69, 71, 85, 6, 6, 57, 74,162,213,156, 75, 95, 19,212, 90,193, 70,118,169,185,106,226,210,110,252,109, 20,235, 7,230, 29, 37, + 15, 93, 5, 79, 59,166,113, 87,158,107,254,238, 47,127,254, 23, 56,159,103,252,225, 79,223, 32, 39,221, 55,147,120,108,247, 59, +157, 82, 90,240,139,142,206,154,208, 12,205,102,129,205,126,193, 59,144, 3,209, 21,219,125,219,251,108,164,182, 6,192, 8, 67, +192,155, 87,175,240,246,245, 75,241, 25,171, 95,189, 21,113,109, 71,212,222,208, 43,235, 88,251,249,169,246,228,184,253,255,181, + 24, 86,250, 44, 88,128, 20,231, 72,123,248,144, 81, 97,160,233,185, 65,250, 0,214,173, 96,224, 45,239,239,250, 19, 89,251,235, +159,115,146,132,189, 44,204,238, 97, 24,240,171, 95,252, 28,255,223,223,252,117, 63,104, 69, 96, 36,100, 54,106,212, 12,107, 81, + 75, 70,202, 17, 47, 95,255, 4,235,186, 98,189, 60,192, 90,205, 67,102,233,144, 37, 31, 91,222,151,233, 48, 98, 12, 30,143,223, +253, 1, 15,223,253, 17,239,255,248, 27, 25,225,146, 65,205, 17,150, 10,136, 28, 82, 17,240,140, 33,131, 87, 47,238,193, 16,192, +203,164,151,245, 57,202, 30,173,137, 16,141,181, 40, 41,225,230,238, 14, 57,174,120,122,126,214, 88, 91, 25, 57, 39, 13,160, 89, +150, 21,228,100,199,155,214,136,184,174, 88,214,132, 41, 12, 8,193, 99,154, 14,168, 53,227,233, 60, 35,229,130,233, 48, 97, 84, +203, 96, 24,138, 92, 46, 58,178, 31, 91,231,236,197, 19,239, 91, 39, 9, 32,198,136,101, 93, 59, 21,174,237,164,155,184,139,212, + 67,124,110, 99, 69,211,226, 79, 13, 12, 75, 52,235,178,174,189, 59,205, 74,126, 75,181, 40, 62, 83,138,197,183,111,222,224,233, +124,193,209,137,175, 94, 40,108, 3, 46,235,138,241, 48,129,107, 70, 56, 76, 88,215, 21,181, 50,198,113, 64,140, 43,110, 79, 71, + 44, 49, 34, 4,175, 12,236, 1,151,121, 6,115, 69, 8, 3,226,186, 72,132, 46, 3,199,211, 9,227, 52, 97,157,103, 44,243,130, +227,241,128,203,101,198,113,154,144, 98,236,232, 91,102,198, 56, 9,199, 59, 63, 63, 1,234,129, 39, 35,147, 55, 48, 35,229,138, +195, 24,240, 15,223,124,236,227,120,144,193, 20,188, 4,123, 40, 49,206, 89, 11, 75, 34,130,107,158,125, 25,241, 23,132, 96,183, + 3, 28,140,152,101,188, 94,245,239,136,185, 98, 10, 78,179, 49,100,253,178,174, 17, 9,132,211, 20, 64,170,160, 63,140,178,106, + 44,185,224,137, 51,156, 37, 20, 54,160, 10,185,208,141,233,252,144, 86,140, 75,250, 95, 75,133,108,188, 3,233, 68,155,189, 80, + 88,236,215,121, 18,178,227,150, 41,109,109, 15,243,231, 29,187, 6, 97,180,147,130,218, 78,159, 90,128,203, 46, 92,197,236,205, +236,242,161,155,134,241, 26, 25,173,147,184, 62,161,211,113,188,129,233, 83,181, 13,106,130, 13,252, 2,186,190,224, 21, 34, 35, + 1, 92,212,215, 70, 93, 43,100,183,233, 92,251, 89, 37,204,138,145,107, 69, 42,117,135,202,230,205, 75, 15,205,106,215, 63,107, + 53, 19,225,221, 59,177,200,182,117,152, 56, 16,172, 22,190, 36,147,153,181,162,164, 4,123, 60,138, 40, 87, 87,153,206, 7,137, + 28,143,146, 7, 97, 85,243,225,157, 5, 88,169,142,222,131,194,208,105,120,130,242,174, 59, 67, 0,109,251,118, 99,224,234,149, + 11,113,203,244,218,172, 70,154,217,202,205,110,213, 18,197,118,157,251,103,226,198,190, 23,249,220,252,184,255,231,157, 83,225, +221,155, 23,120,126, 62, 43, 6, 47, 97, 73, 9,223,125,120,143, 55,175, 94,193, 88,135,195, 97, 66,101,198,255,249, 87,127,133, + 53,101,156, 70,121, 40,155,234,176,253,253,158, 8,222, 17, 2, 1,133, 90, 48, 13,129,173, 65,140, 73, 80,154,188,137,232, 26, + 21, 41,177,228,143,175,169, 96, 10, 30,207, 49, 43,164,196,245, 29,122,219,163,139,154,223,244,157, 54,179,236,229,127, 0, 85, + 6,112, 60, 78,248,203, 95,253, 28,127,250,230,123,124,248,248, 73, 82,170,218, 3,175,111, 80,243, 76,178,233,232,228,174,156, +151,191,201,238,216, 48,215,226, 20,241, 79,242, 21,181,205, 24, 33,109,189,121,253, 10, 47,238, 78, 59,112,133,209, 84,180,150, +202,167, 90,149, 90,187,157, 69, 38, 45,205, 26, 86,251,243,211, 38, 50,124, 45,245,235,193, 59,162, 95,216,138, 1,214,177,157, +225, 62,244,147, 95,107, 69, 37,253,247,234, 53,237, 14, 0,208, 21,100, 6,251,201, 14,183, 81, 58, 97,137, 17, 84, 11,198,224, +113,152, 6, 4,231,145,115, 66,133, 88,123, 14, 65,180, 11, 20,156,198,152, 90,148,101,149, 46,223, 5, 44,203, 69, 62, 99,243, + 25, 57,173,125,231,111,117,133, 81,184,224,227,251, 63, 74,178, 82, 45, 48,213,118, 44,107,208,216,205, 18,103,113, 87,120, 43, +222,119,231,100,167, 14,194, 52, 57, 44,171,100,169, 79,211,160,246, 49, 22, 82, 27, 51, 78,199, 35,106,201, 40,181, 0, 97, 64, + 92, 22, 9,142, 25, 3, 74, 46, 56,142, 3,214, 53, 2, 70,212,206, 2,150,145, 0, 19,153, 28,200, 14,246,105,153, 97,149,102, +150,114, 18,193,164, 49,240,206, 35,165, 34,162, 64,213, 2, 12, 74, 41,139, 41,105,103, 39, 1, 71, 86, 45, 78,162, 99,145,189, +188,136,207, 36, 43,123,141, 17,222,121, 64,247,122,203,186, 10,127,125, 26, 97,176, 69, 90, 78,195,168,211, 29,131,117,141,154, +215, 46, 95,115, 36, 96,112,190,219, 77,215,101, 1,106,193, 18, 35,140,178,185,151,101,134,119, 30,165,100, 28,198, 1,203, 50, +203, 65, 85, 50,170,221, 10,215,227, 52,245,100,180, 54,226,228,146, 37,205, 14,194, 87,152,198, 17, 37,103, 60, 63, 61, 98, 89, + 68,136,119, 62,207, 24,134,128,152,229,125,124,255,241, 1,119,183,183,146,115, 29,196, 2, 71,214,130, 75,145, 68, 52, 22,138, + 31,140,197,224, 25, 95,189,127, 68,229,138, 84, 10,200, 24, 76,206,246, 20, 51, 67,146, 45,209,116, 38,214, 10,194,154, 73,118, +165, 70,207, 21, 3, 97, 97,228,156, 81,170,188,190, 2,223,145,231, 51, 22,189,204, 83,134, 1,112, 28, 61,162,138,243,188,145, +231,203, 54,223,179,126, 94,157, 49,136, 36,141, 16,179,145, 56,215,106, 58, 94,151,171, 38,124, 85,134,109, 54, 55,229,185, 39, +205,154, 63, 30, 14, 29,142,211,200,141, 27,210,149,180, 1, 39,113, 12,212,237, 98, 39,170,170,212, 85,109, 85, 59,103,118,231, + 17,239,115,158,249, 26,101, 99, 44,117,170,222,214,253,154, 43, 72, 89, 3,172, 52,101,125, 55,198,183,254, 95,199,225,253,242, + 52, 91, 62,253,246,207, 22,196, 34,128, 54, 86,165,165,116, 61,198,110,226,239, 92, 25,107, 46,221, 89,208, 55, 7,166,121,195, +140,106,164,204,214,165,123,143,151, 47, 95, 32,165, 40,180,183, 13,181,186,155, 30, 80, 23,222,118,236, 79, 43, 58, 44,245,142, + 60, 46, 17, 23,158,113, 60, 28,224,189,219,237,249,155,205,176,104, 17, 86, 58, 22, 22, 32,112, 17,177,151, 76, 13, 60,220, 6, + 31,226,207,130, 57,174,119,166,188,247, 72,215,214, 93, 81, 71,112,214, 30,224,114, 13, 43,192,110,156,218,191,228,190,125,215, +175,253,163, 47,223,226,171, 63,125,171, 29, 98,193,247, 15,207,248,238,227, 99, 95, 7, 52, 70, 48, 17, 33, 88,221,231, 24,183, +237, 23,172,129,183,132,209, 89, 24, 0,107, 46,152, 83, 69,176, 4,235, 3, 42,150, 93,244,167,154,250, 33,214, 20,163,163, 23, +168, 8,175, 81,216,164,147,217,249, 52,245, 3,181,161, 97, 63,239, 41,175, 51,229, 27,252,226,139,183,175,240,227, 47, 94,227, +171,175,191,199,199,135, 7,229, 59,151,107,140, 98, 23,187,109, 59,100, 96,143, 48,220,234, 34,179,179, 97, 12,195,128,187,155, + 27,188,122,117,175, 22,160,205,135, 82,153, 97,138,236, 52,219, 39,183,241,229, 59,228,165, 5,199, 84,238, 28,138,158, 96,103, +169,239,200,171,161, 31,214,103,237,137, 16,118,100, 87,195,115, 37, 80,239,202,101,170, 97,140, 92,228,134,106,183,241,113, 15, + 46,160,238,149,109,142,137,207,121,244,173,152,159, 47, 51, 12, 23, 48, 44,158,158,207,120,251,250,149,208,253,152,241,197,155, + 55,120,252, 40, 8,224, 20,147,116, 42, 81,173, 59,165,160,164,136,195,237, 29,222,127,247, 39,156,207,143,152,207, 15, 42,150, +161,110,187, 99,168, 13, 18,208,149, 5,163,112,193,104,157, 98, 96, 13,144, 45, 6, 47, 69,196,141,122,160,157, 31,100,244, 30, + 19, 14,199, 35, 82, 21, 70,179, 37, 40, 45,206,226,116, 28,225,188, 69, 6,227,120, 56,162, 84,198,188,138, 32,109, 89, 23,216, +193, 98,142,171,138, 16,245,144,173, 12,235,165,184,124,124,126,194,211,249,172,135,130,199,228, 3,124, 24,177,150, 2,152,130, +195, 56,117,108,171, 49, 65,213,243, 14,222,121, 48,147, 10, 56, 55,188,113, 74, 89,161, 55,178, 75,191,187,187,195,170,221,122, +103, 92, 55,171, 81, 22, 12,172, 68,144, 10,224, 7,202, 50,104, 65, 23,151,101, 70, 97, 73,253,131, 10,215,150,121, 75, 24,243, +206,225,241, 50,227,241,233, 9,183,135, 3, 98,201,120,158,103, 76,195, 8, 31, 60,114, 41, 56,159,207,138,189, 77, 24,130, 67, +201, 50, 49,241, 97,192,162, 4,185, 24, 5,220, 81, 75,222,146, 30,201,194, 48, 96,181, 56, 72, 49,195,186,198,226,150,238, 7, + 44,137,104,211, 48,106,162,153,235, 66,168,113, 24,176, 46, 11,156,147, 84, 52, 11,249,245,113, 77, 56,175, 73,113,171, 4,111, + 36, 27, 94, 82,180,104, 75, 53, 84,111,118, 74,185,167, 84,198,164,187,121,174, 40, 85,198,245,243, 42, 5,221,224, 44, 18, 75, +119, 59,141, 65, 63,231, 21,199,193,117, 75,217,105, 28, 52, 19, 65,220, 47, 45,181, 82,242,231,229,115, 75,105, 15,109,145, 17, +177,133,237,151,225,214,173,183,157,190, 17,225,174, 78,163,198, 97, 20,166,121, 41, 72,188,131,198,240,110,205,103, 0,211,196, +174,181,117,205,250, 61, 25,234, 90, 24, 2,116,242,185,133, 83, 81, 39, 96,162,239,195, 9,132,163, 58, 36,168,167, 92,110, 19, + 73,110,233, 95, 45,103, 99, 95, 28,236, 96, 88,109, 5,100,148, 0,216, 59,119, 29,195,183,132,114, 99,173,146,254,244, 61,163, +237,125, 3, 72,104,162, 69, 4,210,185,148,206, 10, 96,253,123,184, 51, 65,208,133,220, 86,201,153,175, 95,189, 0, 1, 88,230, +185,151, 44,198,154, 93,231, 42,191, 10, 46,214, 33,198, 4,239, 83,231,196, 27, 3, 9,139, 57, 30, 5, 52,148,178,104, 71,244, +192,171,106,141,235, 34, 97, 77, 12,132, 58,155,186, 59, 74,217, 35, 57, 39,184,237,114,165, 62, 43,223,160, 3,255,204,197,220, +137, 65,125,104, 42,191,214,107,255,225,126,212,190, 1,253,119,114,238,174,104,150,223, 63, 14, 3, 94,189,186,199,247,239, 63, +138, 88, 6,221,213,212,211,129,106,169, 56, 77, 3,110,166, 97,135, 0,148,174,214, 25, 35,169,107, 0,140, 5,226,170, 59, 81, +219, 64,255,232, 99,226, 13, 26,160, 99,218, 10,100,221,231, 86,141, 38, 53,134, 52, 84, 66,190, 9,106, 43, 9,194, 53, 71,125, + 47,161, 83,107,200,213, 26, 67,187,221, 90,129, 47,223,189,194,143,191,124,141,167,243,140,111,191,251,128,203,101,214,135,171, +108, 66,177,157,182,164,129, 99, 26,204, 38,132,128,155,155, 35, 94,222,221, 98,154,134, 14,168,105,159,245, 82, 85,197,218,188, +164, 77, 32,162,251,242,174,226, 7, 64,205,174, 66,144,212,183,157,168,172,195,113,216,110, 21, 33,155,107,203,138,218, 63,154, + 43, 96,251, 52,160, 91,200,184, 9,242, 64,221, 2,196,220,178,231,154,176, 6,215,235, 28,222,168, 81,124, 5,168,108,139,175, +138, 49, 56, 16,106,223, 41,223,223,223,225,195,135,143,120,121,127,135,175,191,249, 6, 83, 16,175,113, 76, 25,134,172,118,221, + 98,181,123,122,252, 14,228, 2, 46,151, 7,177,106,169, 70,162,212, 10,103,148,216, 53,157,176,204,207,138,133,100, 12, 65,186, + 38, 7,224,252,244,136,105, 12, 40, 5,184,191, 57,118,178, 90, 79,254, 11, 35,142,199, 83, 79,116,203,133,213,170,168, 42,234, + 82,213,243, 45,130,183, 97, 24, 48, 78,147,162,129, 37, 28, 98,212,206,183,214,138, 37, 9, 23,189,148,138, 24, 19, 14,195,128, + 92, 43,134, 97,194,232, 29,214,117,198,105, 58, 32,151,132, 75, 20, 4,234,232, 61,198, 73,162, 30, 47,243,140,117, 89,177,198, +164,123,117, 15,239,228, 98,108, 9,104,109, 92,252,233,211,167, 78,208, 18, 66,150, 48,209,163, 50,170,201,200,244,138,192, 72, + 10,214,201, 21,184,187, 59,225,249,233,185,143, 2,187, 56,168, 50,252, 48, 8, 16, 72, 73,132,222, 57,220, 28, 38,197,130, 58, + 28,167, 17, 12,234,128, 30, 89, 31, 49, 14,211,120,181, 70,146,213,156,216, 67, 11, 23, 17,164, 89, 11, 99,183,160,165,224,125, +135,122, 16,184,227, 86,189,247,152,151, 5,135,113, 68,226,138, 28, 51,178,119,194,210,175, 21,195, 16,250,123,209,220, 59, 45, + 87,252,235,143, 79, 87, 13,142,183,102,151, 91,160, 98, 52, 22,251,160,181,114,240, 11,111, 67, 62, 83, 75,202,114,129,231,130, +156, 27,106,148,144, 43, 99, 10,161,219, 47, 14,222,194, 90, 82, 26,220, 6,139, 17,223,121,149, 46, 93, 3,171,140, 22, 10,114, +153, 17,114, 69,111,120,100,223,207,144, 76,157,182, 11,215, 85, 84,103,171,203,215,143, 41, 41,107,226, 70,222,227, 90, 81,202, +142, 98, 73,245,179,134, 76,138,117,170,155, 31,189, 55,132,180,105,143,246, 42,109,190, 26,210,202,249,123,156, 14, 58, 93,160, +190,211, 54,187,232,218,126,190, 42,254,183,197,216,238, 18,191,119,154, 33,211,167,144, 61,201,140,212, 14,186, 91, 15,218, 93, + 84,118, 23,211,113, 75,142,147, 41,164, 68,122,243,213,153,222, 19, 96,117, 53, 64,154,184,102, 72,186,226,195, 97, 68,156, 47, +112,222,247,213, 39, 80, 85,223, 36,241,189, 38,139,139, 37,168,189, 49,174, 43,134,105,146, 51, 24, 6,214,202,207, 17,194, 0, +231, 36,158, 56,165,140, 20, 87,204,231,179, 70,242,138, 78, 3, 85, 10, 50,106, 81, 93,138, 71,111,244,194,146, 18, 28,245,230, +149,175, 81,165,123,152, 9,109, 54,181,238, 63,102,238,162, 9,234,202,231, 29,104,128,104, 7, 73,249,231,152,194,162,162, 52, +187,161,238,253,237, 13,130,247,248,250,155,239,144, 98, 68,169,121, 19,212, 5,143, 87,247,119,248,230,253, 7, 56,231, 97,172, +140,163,200, 42, 83,156, 72, 94, 36,102, 36, 24,164, 10, 56,253,208, 85,101,227, 82,169, 8,193, 73,214,118,145, 32,133, 57,173, +155, 93,139,129,220, 50,123,141,193, 97, 26,122, 1,211,107, 17,189,160,100, 7, 78, 29, 65,136, 93,216,157,217,117,203,104,150, + 22,218,118,208,199,105,194,207,254,226, 75,205, 15,151,125,123,140, 18,242, 33,112,127, 57, 20,131,247,125,100, 84, 53,133,139, +119,145,166, 87, 15, 76,109, 85,174,126,168,106, 27,233, 87, 9, 66,168, 12,152, 93,176,130,190,238,134,119,232, 67,208,149, 86, +130,119, 49,137,246, 51,174, 60,120, 47,113,163,205,218,216,165, 45,162,206,108,202,183,246,255,139, 40,109,151,240,215,253,248, +166, 35,112,233, 74, 92,201, 61, 99, 64, 42,232,130,121, 93,240,246,229,189,140, 24, 75,193,229, 89,212,227,185, 84,220,221,221, +161,172, 23,128, 44,144, 5,184,161, 2, 99, 16, 3,214, 56,204,231,103,121, 48,177,209,235,218,222,153,172, 71, 76,162,172,174, + 44,214,196, 24, 87, 77, 55,115, 96, 2, 98,172,152,166, 1, 41,174, 24,199, 65,232,102, 99,128,245, 66,134,147,142,114, 18, 77, + 70, 73, 50, 74,131,193, 28, 87, 9, 80, 41,141, 65,239, 81, 75,198,229,124, 22,177,104, 6,106, 37, 92,150, 8,103,101,244,232, +117,159, 62,199, 21, 62,120,140,206, 33,230, 44,179, 49, 45, 40, 74, 45,240,126,128,179,210, 93,134, 48,224,112, 56, 97, 94,102, +196,148,122, 39,228,140,196,165,206,203,138, 97, 8, 24,199, 17,206, 7,201,252,214,176,150, 54,138,119, 78, 84,220,207,151, 25, + 79,231, 51,130,181,168,153, 49,142, 83,247,142, 51,128,227, 52,118,182,127,235, 46, 70,133, 16,205,107,196, 52, 14, 24,134, 9, +222, 7,156, 21,237,204,204, 61,226,214, 90, 43,244, 59,107,113, 58, 76,200, 41,194,168, 48,182, 17,240,154,162, 66,200, 89,140, + 96, 68,252,118, 60, 76, 72,170, 34, 39, 85,239, 75,224, 69,209,112,141, 0,235,196, 10, 55,120,135, 24, 35,230,203, 69,198,160, + 68,221, 91, 95,114,218, 88, 11, 57,247, 36,172,191,255,211,251, 45,228,138, 25,163,119,253, 98, 16,135,130,156,129,115, 76, 48, + 68, 88, 98,210,113, 43,176,172,146, 36,103,152,165, 48,179, 86,105, 96, 80,250,156,133,117, 30,193, 25, 56,213,250,218, 29, 86, +218,144, 60,239,100, 37,100, 42,213, 34,163,121,179, 21,186, 45,124,137,128,254,189, 52,219,150,148, 53, 5,165,154, 62,125,172, + 42,196,109, 93, 95, 74, 9, 57, 39, 12, 97,196,233,120,210,252, 10,238, 76,246,158, 50,193,123,125, 44,201, 57, 82,141, 86, 18, +122, 57,239, 66,167,184,235,115,248,218,145, 99,140, 16,251,218,207, 96, 54,154, 91, 19,251, 53,190, 9, 25,211, 5,110,220, 87, +181,123, 7, 16,250, 69,110, 84, 44,221, 0, 69, 70, 11, 37,222, 79, 53,205,214,221,183,149, 91,179, 55, 22, 22,240, 89,174, 91, +178,229,174,199,237,182, 56,217,199, 91,201, 24, 49, 6,239,222,189,193,233,120, 16,236,179,181,155,211,161, 50,188,215,224, 35, +189,196,185, 20,140,227,168,206,135,210, 95,151,148,146, 20,112,206,193, 24,135,202, 5,165,164, 93, 99,173,231,180, 58,163,196, +161, 35,231,181,221,217,149, 91, 36, 44,215, 10,215, 59,195,186, 69, 27,118,206, 12,233,238,132,161, 65, 25, 91, 36, 31,239, 46, +128,158,224,182,201,152, 81,183, 25,240, 62, 98,123, 87,175,109, 22, 15,161,227,200, 7,254,120, 28,241,139,159,255, 20, 31, 62, + 61,226,233,241, 9,172,251,158, 48,142,120,253,238, 45, 94,189,121,141,167,239,191, 7,106,234, 33, 35,206, 25, 12,131,195,200, + 21,254, 16,112,190, 36, 20,181,220,229, 10,112, 78,253,131, 18, 0, 20, 3, 20, 97,213,118,190,121, 19,189,241,238, 3, 40,190, +120, 1,239,108,181, 10,245,238, 14, 26,124, 83,153,176,245,177,186,152, 32,249,112, 54, 29, 66,235,228,177, 27, 67, 53, 2,159, + 53, 22,227, 40, 62, 90,107,105, 39, 86,145,215,175,104,113,210, 94,195,254,154, 19, 54, 5, 57, 41, 93, 78, 49,136, 85, 59,112, +249,103, 89, 49,128, 25, 85,125,251,104,184, 65,222, 89, 76,116,236, 14,141,103,229,182, 56,229,207, 50,221,219, 85,168,149,233, + 62, 74,176,125,240, 72,195, 89, 36,158,117,247,171,114,200,169, 99, 95, 91,135,177, 37,253,225,179,188,227,198, 68, 62, 63,207, +120, 62,207,184,155, 12,150, 53,194,145, 76, 88,198, 16, 16, 83,198, 97,154,240, 23, 63,250, 18,127,251,235, 95,235,158,213, 32, +198,130,202, 25,164,204,109, 34, 96,153, 63, 33,230, 12,103,124,215, 87,248,198,197, 46,187, 36, 65,211,130,104,244, 48,135,208, +157, 98,173,160,228, 96, 81,144,216,192, 27,131,231, 25,112,113,133,181, 22, 67, 24, 16,147,199,139,251,123,172, 49,226,252,248, + 36,226, 23,235,177,172,179,136, 35,201,162,146,140,252,124,240, 88,215,212,139, 41,211,152,229, 10,124, 25, 66,192, 16, 68, 77, +127, 89, 86,140,211,168,105, 99, 69,241,178,162,230,142,235,138,113,156, 96,173,195,229, 34, 99,250,203,101, 65, 5,112, 28, 71, +216, 86, 40, 25,129,187,116,116, 51, 3,179,142,221, 13, 25,140,138,139, 37,253,239, 47,111,111, 54,142, 55, 1,222, 5, 25,235, +170,144,238,249,249, 25,151,121, 22, 86,189,142,188, 5, 84,198, 40, 41, 99,213,136, 91,102,150,231,185, 86,172, 73,192, 44,151, +121,233,145,202,107, 76, 29,163, 57, 13, 65, 51,213,125,223, 9,151,156, 97, 13,225, 60,175, 50, 46,143, 45, 10,211,194, 59,175, + 86, 52,194,211,243,130,160,162,196,134,218, 45,165, 96,141, 9,198,137, 88, 16, 85,240,180,182, 79, 79,228,215, 22,152,241, 31, +191,126,175,231,158, 92,136,163,138,102,139,194, 42, 4, 51, 33, 32, 25,193, 68, 27,216,198,111,216, 89,146,108, 67,119, 90, 65, +141, 6,167,201, 93,214, 97, 12,182, 35,162,247, 25, 10, 73,197,188,133, 25, 69, 57,247,251,180,199, 90,107,159, 98, 25,218, 40, +117,181, 95,162,162,213, 17,251,153, 76,204, 26,114,150,118,122, 39,230,182,230, 24, 49,141, 34,116,228, 42,240,159,109, 13,102, +118,241,218,188, 81,231, 20,166,213,172,204, 48, 0,177, 81,161, 45,111, 13,157,158,137,206,154,158,156,215,211, 39,119,207, 57, +119,112, 86,221, 86,153,205,150,219,206,133,189,109,173,237,182,173, 21, 59, 23,217,237,226, 53, 70,157, 54,154, 40,105, 54,172, +117, 75,172, 43,218,130, 23, 37, 41,198,148,251, 90,176,127,208,177, 39,189, 80, 87,186, 27,178, 56,157, 78,120,253,230,149,186, + 42,210,102,165, 52,128, 55, 22, 94,221, 5,166, 72,132,178, 42,158,133, 12, 88,179,196,142,147, 76,168,172,243, 24, 6,200, 94, +126,141,114, 78, 54, 23, 64, 11,168,169, 13,201, 94,122,254, 59,183,188,140, 88,183,184,109, 34,209,140, 55,229,122, 63, 70,219, +136, 86, 21,207,157, 32,215,197, 97,132,150,165,131,125,150,247, 94, 68, 85, 63, 19,202, 93,201,241,182,210,239, 10, 52, 64,155, +143,253,229,253, 45, 94,222,223,110, 57,226,250, 65, 49,214, 72,102,115,204,189,138, 14, 0, 12, 49,130,221,166, 9,193, 89, 73, +228,169, 64, 42, 85,121,196,216, 0, 42, 6,253, 16, 43,204, 91,250, 79,223,155,216,142, 20,108, 66, 45, 50,159, 37,160,181, 8, +210,202, 74,165,171, 93,245,185, 29,208,116, 61,194, 34, 22,209,135,214, 59,123,232,207,158,244,182,179,197,247,145, 58,246, 73, +119,188,179,144,181, 71,167, 9,224,182, 77,121, 71,248, 86, 99,228,129,222,137,210,136,235,213,123,214, 64, 48,196,215,244,182, +110,153,220,137, 96,246, 69, 64,207,102, 87, 91, 96, 15, 32, 81, 59, 36, 54,249,229,246,117,118,130,193,253,215,217,128, 21,215, + 97, 66, 0,225,241,249,140,131,151,215, 60,248,128,154, 35,114, 74,120, 88, 87,220,222,220,162, 48,227,238,246, 22,227,225,132, +243,211, 39,100,102, 81,224,179, 5, 20, 84,196,181,246,228,179,194, 9, 65,247,109,237,168, 51,134, 96,184,161, 60,197, 18, 9, + 75, 24, 45, 16, 75,214,148, 64,173,176,173,129, 73, 17,197, 56,156,134, 17,224,130,183,111,191, 68,205, 17,135,195, 65, 40,100, +211, 65,108,148,165, 40,128, 69, 2, 88,134, 97, 68, 76,171,186, 62, 42, 64, 86, 2,101,198, 65, 5,136, 5,199,225, 8, 2,225, +211,211, 51,130,181,152,151,136, 82,197,122,117,152, 14,242,125,151,130,160,132, 53, 31, 6, 81,110,103,153, 14, 92, 86,185,252, +150,117, 65, 45, 25, 54, 4,112,201,138, 85, 53, 56,221,220, 32,197,132,101, 89,144,179,140,180,155,167,159,139, 76,202, 14,211, + 36,246, 47, 34, 85,228,138, 5, 71,114,224,173,136,119, 82, 18,181,125,240, 56, 95,102, 76,227, 0,231, 61,110,156, 67, 84,255, +120,214, 73,192, 18, 35, 98,146,159,115,153,103, 48,128, 37,174, 56, 29, 14, 50, 86, 52,132, 64,182,123,220,115, 17,159, 57, 17, +192,106, 47, 29,134,208,237, 99,193, 6,153, 80,168, 79,190,241,229, 67, 16,171,108,140, 17,135,233, 0, 38, 32, 51,131,178,164, + 62, 78,135,131,196,219,234,196,173,249,132,141, 49,248,230,187, 15,136,185,244, 17,179,183, 2,128,113, 70,144,194, 34,112,179, +187,224, 17,105,136,140,102, 56,203,247,229,212, 90, 42, 35,245,152, 11, 6,101, 2, 56,231,224, 45,118,202,106,161, 5, 54,191, + 55, 65,208,176, 68, 34,130, 98,189,124,136,196, 25,212, 49,168, 61,140,103,203, 82,104, 69,121, 95, 51, 26,113,210,180,120, 78, +102, 81, 39, 54,230, 90,140, 9,209,175,248,255, 11,123,179,157,201,146, 44, 59,111,109, 27,206,228,254, 15, 49,100,102, 85,245, + 76, 18,132, 64,117, 3, 20, 37,129, 36, 40,241,117,244, 8,122, 2, 93,233, 1,116, 47, 93,233, 94, 47, 32,240, 70,141, 38, 4, +178,196, 98,163,217,236,234,174, 33,171, 58,199,136,127,112, 63,147,153,109, 93,236,109,195,241,200,146, 10,104,100,103,102, 68, +254, 30,238,126,204,246,176,214,183,134,113,194,253,157, 6,246,168, 58, 30, 58,214, 54,121, 13,160,255,174, 76, 47,181,216, 38, + 86,235,179,222, 17,181,171, 86, 47,183,177,232, 58,215,160,191,107,227,148,207,112,171,172,135,172, 21,106,167,132,101, 37,172, +151,172,209, 11, 58,103,213,103,209, 90,214,127, 24, 99, 11, 56, 39, 79,113, 77,211,209,231, 14, 61,169,136,112,203,151,114,115, + 8, 27, 66,147, 64,169,106,119, 77, 20,116,222,225, 39,191,255, 99,156,239,238, 16,246,173,232,160,242,161,157, 57,239, 65, 59, +114,223,117, 66,153,219,119,248,174, 67,140, 17,151,203, 21,134,172, 98,153, 19, 98,216,203,165,222,166,109,102,139,156,201, 52, +190, 84,167,233,212,166,159,230, 53, 44, 67,119,234, 92,227,191, 24,169,230,211,150,238, 60, 85, 64, 62,167,155, 75,230,152,212, +147, 47,129,212, 66,254,115,246, 54, 29,185,181,109,190, 58,221, 92,255,101, 52,171,255, 50,103,124, 51,203,216,129,141,218, 21, + 64, 24, 7, 7, 39,179, 37, 60,173, 17,158, 8, 75,140,240,134, 16, 13,105,168,188,190,174,182,152,224, 84,198, 63, 25,148,159, +199, 54,222,119,135,162,163,174, 22,204,173, 61,188,116,171,165, 19,135,120, 61,179,239,250,240,231,203,190,255, 92, 47, 39,150, +209, 81, 30, 39,181,225, 5,135,244,194,116, 16, 23,230,217, 80, 9, 60,128,118,225,217, 51, 74, 77,172,162, 33, 13,173,209,223, + 97,168,181,154,235,164, 38, 29, 42,232, 28, 56,145, 51,213,243,120,186, 77, 73, 43, 54,186,204,149, 44, 23, 53,233,152, 61, 63, +168,250,215,156, 24,213,250,239,179,247, 95, 95, 83, 1, 32,209,173,153,128, 97,137,113, 26, 58,120,103, 17,245, 66, 39, 2, 78, +167, 51, 0,160,239, 58,172,219,134,127,242,143,255, 17,254,205,255,245,231,229,194,230, 50,226, 67, 9,187, 40,185, 5, 58,241, +144,201,131,240,147,207,111, 62,199,208, 79,248,254,175,254, 93, 1, 22,205, 91, 94, 17,200,152,151, 83,196,208, 15, 50, 42,177, +130,119, 76, 97,199,199, 15,223,224,253,251,247, 56,157,207,120,189, 92, 16, 99,194,253,221, 29,150,117,197,229,122,145, 46, 15, + 66,128,114,214,227,244, 48, 1,198,129,145,176, 92, 47, 34, 0, 99,130,117,157, 18,207, 4, 20, 50, 95, 23, 48,128,251,251, 7, +204,203,170,236,122,205,107,208,116,196, 60, 93, 74, 41, 98, 11, 34, 20,138, 41,225,238,116, 46,154, 11,107,157,116, 16,214,224, +122,189,106,156,105,133, 21,121,223, 73,158, 66, 12,184, 59,159, 17,226, 46,104, 86,231, 96,251, 14,251, 22,117, 44, 42,159,201, +117, 89, 69,241,174,222,115, 99,228,130,186, 63,159,241,252,242, 34,251,117, 18, 81,154, 37, 25, 61, 90,125,141,206,202,120,122, +240, 67,217,153,147, 58, 30, 99, 76,240,189,248,249, 13,201, 36,130, 20,244, 65,218, 97,175,235,170, 36, 55, 7,222,119,112, 98, +201,167,159,148,119,191,109, 56,157, 78,232,251, 30,251, 30, 48,245, 64,180,161,136,233,178,216,200,232,216, 61,166,132,167,215, + 11,190,121,122, 45, 9,136,135, 60,112,197,194,166, 28, 72,101,228,220,112,214,160,243,186,195, 53, 89, 87, 32,151, 33,152, 17, +162,228, 62,100, 64, 8, 33,130,200,234,202, 74, 69, 90, 10, 30,145,103,206, 54,103, 11, 41, 9, 78,104,151, 96,160,243,182,116, +229,133, 26,169,151, 88, 57,223, 26,241, 28,140, 6,176,164, 84,220, 76,149,237,206, 88,183, 77,178, 5,156,132, 49,137,222, 37, + 42, 78,219,170,222, 67,156, 73, 33,236,101,207,127, 64,195, 54,248, 85, 40, 55, 61,139,211,188,119, 7,125, 81, 17,191,149,181, +105,213, 82,228, 81, 60,233,175, 49, 37, 76,171,237,212,235, 40,221, 58,175,133,135,132,131,145, 2,102, 72,179, 54,164,112,168, +151,123, 42,229, 76, 82,197,187, 66,102,154, 38, 13,186,239,207, 99,252, 98, 95, 83,128,215,143,126,244,185, 52, 17, 65,196,206, +166,236,247,173, 58,184,100,186, 76, 74, 75, 44,145,209, 9,136,243,130,176, 71,132, 61,130,140,140,203, 83,220, 97,163,100, 45, +228,137, 86,107, 83, 54, 6, 13, 84,169, 54,224,133, 21,161,150,195,188, 66,114, 69,248,197, 53,186, 14,169, 94,196,185,179, 76, +154, 82,150,137, 66, 57,106,149, 8, 57,122,163,168, 20,107,242,149, 30,164,166,233,228,155,196,183,250, 57,201,207, 76,237,125, + 70, 55, 57,128,197,122, 32, 52, 44,163, 23,186, 33,130, 53,128, 19, 13, 85, 9, 85, 73, 36, 21,178,188,209,109,132,169,116, 96, + 9, 98, 11, 40, 26,209, 70, 43,192, 0,124,231,202,197, 93,168, 70, 45, 89, 78,119,213, 53, 79,184, 17,161, 49,192, 38,195, 27, + 90, 5, 28,231,220,194, 26,179,151,114, 65,132, 35, 75,185, 77, 83,160,219,194,167,221, 54,231, 90,161,118,238, 70,121, 1,108, +168,137,196,173, 41,111, 38,229,139,172,180,224, 42, 70, 81,208,131,169, 29,117, 70, 6, 19,227,144,183, 92,249,202,181,250, 38, + 61, 8,139, 21,189, 69, 7,227,150, 40,151,163, 23, 83,211,221,243,205, 68, 39,215, 46,146,182,230,173,193,221,233, 36, 72,213, + 36, 23,199, 22, 3,174,243,172,151, 92, 18,212,103, 98,252,209, 31,254, 1,190,253,251,191,199,211,117,133, 49,226, 33,207,159, +157,179, 70,186,120,164, 50,154, 99, 5, 78,113, 74,216,150,139, 48,152, 21, 14,212, 89, 17,135,229,233,205,117, 93,225,188,100, +140,131,129,206, 24,132,176, 98,232, 6, 48, 25,177,143,109,171,136,165,246, 29,215,117, 6, 84,121, 27, 73,180, 18,215,235, 5, +119,119,247, 2,140,177, 10,160, 32, 25,207,173,219,174, 1, 30,114, 48,249,174,211,110,167,199,188, 46,184,187, 59,203, 30, 79, +255,221,182,174,176,123,192, 30, 34,156,211,176,146,176,161,119, 14, 59, 24,235,182, 22, 48, 81,223,121,221, 55, 59,164, 20,213, + 15, 46,182, 55,178,130,109,237,157,131,245, 22,203,124, 69, 74, 9,157,247, 24,134, 65,244, 41, 73,167, 59,214,233, 33, 12,181, + 98,137,162, 87, 46,210, 17, 79,207, 79,101,136,103,213, 10,150, 0,144,177,136, 97,151,228, 53,229,206,147,102,161,231, 40, 99, +249, 51, 43,178, 51,201,104,119, 89, 23, 24,107,241, 48,142,184, 94,175,216,182,185,136,198, 12, 37, 88,103,225,157, 76, 8,194, + 46,105, 86,249,121,222,214, 77,118,224, 33,148, 14, 49, 70,205, 90,208, 12,243,125,219,176,133,136,191,253,237,183,101, 28,204, +204,112,250,156, 56,147,187,114,131,193,171,243,196, 57, 93, 71,216,242,157, 53,144, 80,151,150, 54,105,173,173, 49, 39, 28, 17, +163,194,177,140,116,142, 65,187,196, 16,245, 89,163, 76,231,147,239,231,190,133, 98, 69,180,186,190,178, 36, 73, 99, 41, 5,109, +120,116,237,169,185, 19, 45,228,202, 40, 29,143,201, 22,150,184, 88,116,229,187,178,135, 29,219,190, 97,156,206, 24,199, 17, 22, + 1,148, 2, 66, 2,182, 68, 8,249,162,221,168,138,122,211,141,198, 6,220,160, 83,179,104,205,150,174, 58, 55,130,185, 57, 43, + 93,122, 74, 90,228,165, 98, 67, 43, 14,164, 76,159,107,130,169, 90,251,110, 78,157,171, 97, 62,164, 23,123,142,238, 62,178,224, +243,235,136,122,198, 75,228,111,172,234,123,174,235, 70, 34,163,234,119, 83, 47,117,107,112,119,119,194, 56, 12, 2, 66,219,214, + 50, 53,225, 70,102, 20,246, 29,188,115,121,109, 49, 5, 93, 23, 88,101,186,179,176, 66,178, 31,158, 24, 49,212, 4, 59, 83,130, +126,178, 88, 58, 23,108, 92,161, 57,121,191, 79, 66, 20, 52, 86,232,118,204,128,203,123,216,210,126,162,129,238,231,253,120,206, +253, 86,174,111,109, 63, 43,198, 20,208,110, 80,171, 91,186, 81,194,211, 97, 6,207,160,155,222, 28,217,131,251,195,255,182, 92, + 99, 81,127,141,209,187,222, 18,131, 67, 66, 36,139,141, 25, 6, 9, 81,129, 24, 41, 37, 80,215,195, 66,246,210,220, 36,186,215, +226, 34, 21,250, 82, 46, 77, 68,137,216, 29, 45,120,185,203, 52,104,118, 26,168,151,113,225, 13,235,248,171,228,227, 54,110,128, + 54,130,173,201, 73,103, 70,137,254, 60, 14, 44,232, 96, 81,131,238,195,115, 69, 73, 13, 63, 74,108,134, 82, 37, 37,170,201,110, + 37,235, 40,135,243, 16, 26, 86,243,144, 0, 0, 32, 0, 73, 68, 65, 84,131, 13,151,221, 87, 85,168,234,173,157, 29, 5,229,247, + 81,149,190,113,253, 28, 10, 21, 58, 87,108, 57, 69,141,185,112,163,181, 93,151, 81,154,145,204,242,252,247,164,163,204,204,170, + 62,100, 4, 83, 59, 86,146, 63,215,235,235, 12, 67, 6,151,101, 5,165, 4,223, 57,192, 24, 76,126,192,187, 55,111, 96,140, 85, + 24,138,133, 11, 17,127,242,251,191,135, 95,255,234,215, 56,119, 22,187,177,160, 36, 97, 7,176, 98,199, 25,134, 14,251, 38,194, + 45, 89,135,112,209,130,196,176, 97,190, 62,169, 93, 42, 98, 11, 36,161, 33,156, 64, 70,236,108, 70,117, 18,214, 88, 33,200,145, +197,117, 22,178,217,117, 94, 48, 12, 19,182,109,209,108,110, 81,213,238, 97,199, 52,157, 36,147,251,238, 81, 4,132,138,126,237, +135, 9,188,202, 33,118,127,238,176,108, 59,182, 93, 46,220,147, 33,220,221,221,107,193, 36,135,223,150,128,121, 93,164,112, 80, +206,251,216, 43, 37, 44, 69, 72,223, 24,208, 89,135, 61, 10, 61,173, 43, 24, 88,241, 75,147,145,137, 20, 3, 50,205,130,193,221, +105, 16,113,158,118,167,123, 8, 88,215, 77, 70,240,250,108,120, 47,234,249, 85,133,112, 68, 4,235, 12,174,215, 69,252,224,219, + 38,159,185,158, 5,137, 25,157,115,184, 94, 46,197,113, 98,173,193,182,111,229,115,222, 54,249, 25,214,137,114,127,154, 78,242, + 51, 89, 20,217,214, 26,244,157, 68,148,102, 95,115,126,157,206, 57,116,125, 15,239, 61,214, 77,108,105,207, 47,207, 2,194, 97, + 96, 56, 13,216,183, 13, 33, 64,196,140,214,162,115, 14, 73,149,240,251, 46,156,131,255,252,155,175,203, 90,172, 4, 31, 41, 86, + 52, 49, 48, 56,167, 41,134,132,193, 11, 80,199,229, 64, 38, 45, 22,147,102, 99,103, 46,184,228, 59,176, 88,107,161, 73,148,202, +175, 55,156, 25,243, 80,157, 5,244,215, 39, 88,245,252,112,136,216,118,209, 42, 68,165,219,213,156,138,250,252, 26, 5,230,228, + 40,214,132, 38,174,153,197,129, 33, 57,230,170, 19,200,103,179, 54, 60,123, 8, 24, 56, 97,234,123, 12,246, 12,138, 66, 4,100, +219,227,105,222,117,133, 19,165,248,218, 54,216, 2, 46, 58,222, 29, 53,134,217, 28,173,205,134, 10,157,206,100,204,172,218,205, +100, 15, 94,207, 59,153,152,113,105, 56,200,210, 33, 95, 60,231,151, 91, 39,218, 4,155, 65, 47,208, 66,162,172,194,169,114, 64, +138, 99, 41, 39, 80,212,125,122, 73,135,175,190,226, 50, 29,174,144, 25,131,190, 31,240,230,205, 35,134,206, 99, 95,230,166,185, +145,207, 60, 67,189, 56,101,109,134,164, 91,102, 78,136,117,234,132, 65,210,117, 70,168, 81,216,154,152, 72, 77,106, 27, 43, 8, +137,140,131,117, 94,192, 90, 57,188, 37, 71,192, 42, 60, 45,227,106, 99, 12,112,114,160, 37, 21, 34,220,204, 83, 26,111, 96,166, +114, 81, 65,129,214, 56, 62, 98,221, 41, 51, 55,240,130, 99,199,133,155, 36,159, 79,198,210,208,249,124,201, 55,111,141,242, 84, +182,178, 41,196,131,236,187,119, 6,157, 51,120,141,106, 81,219, 2,216,121,164, 40,137, 76,134, 76, 65,194,202, 87, 80,236, 84, +114,167,136,146, 60,171,145,153,100,151, 37, 99, 54,219,214,159,229,191, 97,184, 85, 6,168, 0, 13,141,128, 48,135, 32, 80, 22, +203,125,210,102, 31, 76, 5, 25, 14, 99,136,127,232, 29, 59,162,117,111, 16,177,133,252, 70,199,254,150, 82, 21,151,181,148, 55, +180,234,210,230, 51,174,171, 4, 42, 23,109,222,117,101,125,138,100,248,178, 6,233,112, 43,238,175,227,242, 50, 30,202,171, 13, + 42,164,188,108,171,107,199,240,242,143, 73, 58,252, 44,160,107,114,226,219,119, 34,196, 8,143,132,101, 21, 37,113, 14,189,232, +252,168, 35, 73,137,247,220, 67,128,119, 22, 31,183, 29, 63,249,189,223,199, 55, 95,127,133, 62, 37,108, 57,109, 42,213,159,109, +157,211,209,165, 20, 15,214, 57,221,179, 69,124,254,217, 31,226,235,111,191, 2, 37, 9,245,145,112, 14, 97,184,119,157, 71,223, +141,240,148, 16, 53,195,187, 31, 6,140, 67, 15,107, 8,111,222,190,131,247, 14,219, 54,227,227,199,167, 38,168,200,227,245,245, + 10, 16,224,157, 36,183,145,183,152,175, 51,236, 40, 7, 95, 10, 59,158, 46, 11, 88, 99, 64, 65, 70,248,231,235,138, 24, 35,238, +238,206,248,248,244,132,109, 15, 34, 38,219, 2,174,243, 21,131, 6,180, 24, 18, 92,104, 12, 1,203, 46, 81,171, 12,135,222, 91, + 68, 78,224,100,176,135, 85,114,208,135, 94,197, 75, 98,153, 19, 33,163,140,186,141,118,221,121,223,200, 28,117,119, 29, 65,145, +144, 66, 44,239,183, 49, 6,175,151,171, 88,221,102, 81,181,175,123,192,121, 26,208, 89, 47,126,113,136,117,204,228,239, 6, 58, +204,203, 6, 67,140,109,223, 10,149,205,123, 17, 34,237, 33,200, 8, 56,138,239,219, 82, 14,191,216, 37,197,173,239, 48,207, 11, +166,193,151,226,210, 90, 9,228,185, 94, 47, 34, 58,117, 14,222, 24,196, 32,224,157,126, 28,209,245,189, 20, 48,153, 51, 15,241, +182,255,205, 47,191, 44, 57, 16,164, 63,143,180,145, 49,134,224,213,155,222, 57,219, 56, 89, 32,138,105,197,191,238, 58,229, 26, +186, 78, 44,148,206, 34,196,132,206,202,217, 25, 84,172,150, 87, 93, 33,197,242,236, 36, 85, 77, 75, 30,187, 92,236,206, 90,108, + 49,162,239, 92,193,213, 38, 85,106,231,231, 5, 13, 23, 61, 79, 36,203, 64,209,220, 94,132,164,160, 39,113,141,152,156,238,152, + 3, 79, 82,146, 73,142, 39, 12,157, 71, 80, 93,201,188, 61, 99,205,137,146, 50,246,106, 38, 1, 40,133, 89, 94, 87, 84, 84,108, +237,174, 83,202,232,220, 84,247,230, 77, 6,135, 88,119,107, 3, 67,121,247,127,208, 8,152, 38, 25,205,214, 14, 61,239,212,111, +246,231, 21,106, 83, 63,175,172, 39,224,156,157,160,239,159,161,170,155, 98,141,151, 54,198,150,162,131,140,197,251,247,111,113, + 82,234, 97, 72, 84,149, 63,218, 81,167, 84, 36,228,162, 67, 51, 22,150, 81, 94,167,215,198, 96, 15,187,104, 28, 72, 65, 56, 58, + 5, 32, 34,196, 61, 32,170, 70, 69,126,182, 76,232,250,113, 16, 71, 74, 98,172,243, 44,231, 52, 82,209, 30,196, 16, 16, 33,193, + 47,174, 93,202,163, 5, 14,208,177,107,111,194,215, 42, 73,236,128, 92,105,116,237, 68,117,216,202,199,189,104,225,214, 85, 63, +255,161,151, 39,220,164,126,148,116, 27, 46,148, 41,215, 16,236,188,146,136,246, 4, 12,134, 17,242, 76,223,104,193, 97, 10, 96, + 84,216,235,134, 74, 34, 28,140, 1,103,129,138, 10,222, 98, 98,144, 97,201,181, 69, 43, 55,168, 10,109, 52,152,214,106,125, 48, +199, 75, 13, 55, 32,165,155, 63, 82, 6,204,152, 44,152, 99, 52, 19, 18, 42, 0,128,116,168,130,170,197,228,128,163,225,154, 94, +124,160,237,167,250,186,209, 20, 93,249,205, 47,180,192,156,180,166,131,243,148, 32,157, 40, 87,202, 93, 43, 88, 68,171,108, 45, +254,114,174, 59, 51,101,193,202, 23,155,203,214, 65, 92, 2, 66,151, 35, 13,250,200,179,250,148, 53, 23,138,125, 44,197, 81,121, +232, 68, 80, 53,118, 3, 70, 69,133, 90, 99,208,245, 61,156,210,208,242, 65,126,157,103,177,155,117, 29, 34, 19, 56,198,114, 80, + 72,222,125,146,136, 83, 22,120, 70, 89, 53,196,160,194, 61, 96,190, 62, 11,108,196, 74,250,218, 56, 12,216, 67,192,249,228,177, + 44, 11, 44, 69, 68, 24, 97,207,147,184, 31,122,239,225,187, 14,227, 56,212, 67, 58, 7,145, 24, 3,203, 70,149,174, 30,203,182, +138, 66,157,128,251,243, 89, 34, 62, 53,178,145,140, 23, 91,139, 21, 47,117, 78,163,235,188,195,211,199,103,137, 72,181, 6, 79, + 79, 79,216, 67,130,161,132,117, 89,208, 15, 35,140, 51,176, 48,120,121,189, 0, 36,124,244, 20,119, 57, 88,140, 20, 49,187,126, +254,222, 90, 77,104,203, 68, 52, 96, 85,174,188,240,226, 73, 16,206,251,166, 74, 91, 57, 0,230,121, 81,145,169, 28,128,251,190, + 2, 41,137,172,194, 24,204,203,138,193, 59, 44,203,138,228, 35, 60,123, 61,132,109, 25, 51,167,148, 74, 87, 42,224, 15,198, 52, +120,248,110,192, 56, 14,178, 34, 9, 59, 94, 46, 27,122,239, 96,141, 20, 25, 41, 70, 56, 45,224, 58,239,145, 32,182,190,174,235, +177, 44,215,146,142,213,105,118,251, 30, 4,246, 50, 12, 83,241,216, 3, 84,136,106, 12,224,231,191,250, 45,246,144,138,136,182, + 4, 31,106, 67,144,247,195,214,200, 36,199,169,128,210, 90,225,221,103,167,132, 33,117,204, 24,171, 93,123, 2, 82,194, 22,163, +216, 57,245,241,219, 19, 23,222,251,224,157, 16,231, 84,102,148,119,192, 98,119, 10,213,191,173, 1, 42, 41,171,224, 89,162, 89, +163, 10,136,243, 89, 18, 82,166, 48, 87,112,138, 76, 51,212,114,101,173,142,124, 19, 82, 22,129,145, 20, 45,206, 10,235, 99,244, + 61,188, 53,240, 42, 34, 28, 61,225, 89,163, 67,115, 62, 69,182,223,149,100, 53,178, 58,129,203, 81,210, 74,188,212,123,192, 58, +121,174,114, 98, 94, 17,244, 25,186,241,193, 87, 23, 77,210,139,173,228,109,232,235,181,150,224,180, 67,207,168, 86, 99,242,216, + 95,119,232,153,216,166, 99,246, 18, 58,197, 4, 24,139,196,123, 19,204,101,202,207,224,210,229,155, 82, 40, 24, 99,240,238,237, + 35,206,231,179, 76,194,182,181, 98, 90, 91,113,157, 49, 5,168,149,163,118, 25,220, 0,159,196,174,150, 98, 40, 97, 56, 2,141, +137,162,151,200, 64, 46,146, 66,192,169,240,213, 56, 1,215,132, 16,245, 89, 76,213,103,175, 9,109,169,113, 41,184, 70,250, 92, +133,113,170,112, 63,224,228, 62,233,173,185,146,225,233, 86,221, 77, 34,214,226,198,167, 78, 53, 8,134,192, 53,136,135,234, 37, + 88, 46,207,164, 98, 0,174,158,204,172, 78,182,168,187, 22,214,177, 71, 32, 11,102,181,204,144, 21,117,188, 30, 20, 40, 65, 4, +164,182, 60,110, 20,142, 84,254, 42, 35, 17,245, 24, 58, 83,216,188, 5, 84, 3,153, 70,100,213, 39, 49,142,187,152,166, 4, 34, +206,226,183, 31, 96,244,105,189,147,138, 86,144,154,148, 54,100,116, 95,177,169,225,118, 15,157,175,246, 38,218, 84, 70,223,169, +254,252,131,192,143, 15,185,192,242, 53, 75, 5,253,155,223, 67,153, 52,152,114, 97,107,189, 9, 62,204, 10,234,100,128,138,255, +188,238,227, 81, 23, 24, 69, 63, 80, 46,116, 34, 24,174,169, 79,172, 93,188, 33, 70, 98, 3,211, 60, 33,165,120,160,202,122,239, +156,195,114, 13,184, 46, 11,122, 37,221,157,166, 73, 14, 60,103,225,173, 19,239, 51, 68,153,252,248,248,136,159,253,231,191,131, +239, 59,124,243,250,138,187,209,131,172, 50, 6,184,190, 71,249,160,245,190, 87, 6,127, 68, 76, 59,246,109,145,117,128, 42,126, +159, 47, 50,234, 54,144,236,241, 53, 4, 56,157,243,137,192, 41, 33,194,192, 68, 21,101, 38,193,154, 94, 52,213,107, 28, 39, 60, +189, 92,112, 62,157, 10,170, 50,169, 32,236,251,143, 31,228, 33, 86,245,249,208,123, 24, 59,224,114,189,106, 52,167,122,205, 59, +175, 15, 63,176,108,130, 27, 61,159, 70, 24, 0,215, 53, 8, 94, 85, 71,176,227, 56, 33,134, 77, 71,220, 12,198,142,177,151, 73, + 66, 50,169, 28,152, 97, 15,176,142,176,133,173,116, 8,111,223,188, 1, 49, 11,162,214, 73,151,184,135,128, 93,237,165,211, 56, +138, 98, 62, 70,164, 36,212,180, 93, 47,144,144,132, 30,199, 44, 86, 67, 24,131,113, 24,203, 56,244,229,245, 34, 54,181, 16,112, +217, 22,132, 32,127,182,193,137,128,175,243, 78,133,114, 17,175,151, 43, 66, 8, 2,141, 81, 79,121, 70, 43,135, 16, 37, 46,151, + 58,172,219, 42,246,183,206,151, 66,138,201,192, 58, 3,214,201, 74,140, 17,214,121, 24,215, 33,174,175, 74,127,219,241,237,199, +103, 60,207,235,113,173, 87, 37, 95,101, 36,204,153,158,153, 24, 33,227, 93, 51,171, 27,130, 24,181,170,122, 47,203,169, 24,133, +174,199,146, 2,153, 52, 1,204,105, 12,175, 33, 96,221,229, 61,229, 66, 87, 83, 77,132,106, 44,160, 36,186,160, 42,232,164,186, +149,168, 98,172,114, 97,229, 80,174, 28, 58,194,220, 8,174,204,241, 8, 50, 6,136, 25,240, 34, 66, 44, 97,216,147, 22, 23,114, +209, 16, 0,111, 61, 78,157, 69,216, 55, 5, 34, 5,153, 98, 18,196,150,201,169,224,170,141,230,208,231,110, 57,165,236, 42,162, + 70, 28, 93,197,114,173,149,237, 56, 32,150, 63,139,173,193,225, 7,215, 77,123,161,147,145,209,187, 85,146,156,213,179, 60,139, + 13, 99,170,251,115,144, 41, 14,138,164,255, 87, 24,239, 2,147,191,225,186,203,197,126,119,119,194,105, 26,113, 58,141,218, 24, + 26,201, 46, 47, 59,110, 39,251,108,144, 20, 93,172, 29,116,206, 95, 55,186,102,205, 34, 98,107,193, 65,221, 8, 26,230, 82,236, +123,186, 74,112,125,175,145,202,187,172,142,182,189,134,234, 40,195,162,146, 77, 77,113, 58,112, 42, 49, 40, 71,148, 31, 43, 25, + 77,121,254, 85,200,213,112,114,107,167,154,199,189,140,219, 88,152,172,248,171, 66, 5,249,251,195, 56, 62,127,224, 13, 25,173, + 77,118, 67,126, 45,186,247, 79, 33,194,192, 0, 73,118,130,206, 27, 92,247,204, 31,118,176,148,138, 55,212, 2, 37, 45, 74, 68, + 18,210, 41,178,134, 23, 56, 67, 88,169, 38,205,101, 21,113, 62, 92, 51,114,141, 75,241,194,229, 86,230, 76,197, 83, 62,114,161, + 40,193,128, 56, 22,241, 93,211,100,127,226,237,227,198, 69,145,218, 75,150, 27, 47, 59,223, 14,224,169, 8, 10,203,235,105, 32, + 15, 92, 98,109, 81, 82,218,184, 33,182, 85,145, 90, 22,237,181, 72,199,212,136, 18,185, 68, 50,230,191, 55, 89,104,168, 81,170, + 92, 18,156,244,243,207, 76, 2,189,180,145, 47,116,229,191,215,189,149, 28,142, 98,245,111,131,114,168,177,222,212, 3,105, 89, + 69,200,195, 49,128,147,197,235,229,138, 31,125,254,153,232, 30, 82,196,190,203, 20,102, 26, 39,252,234, 55,191,197, 95,255,226, +151,216,150, 25,189,179,120,255,120,143,199,113,196,151,223,126, 13,151,253,190,134, 48,248, 14,211,244,136,235,245, 35,156,113, + 66, 41,235, 70,132,125,198,186,173,216,183, 25,206, 57, 44,123,238, 42,119,116,110,144,117, 1, 12, 44,137,103,116, 15, 17,253, + 52, 96,139, 1,243,229, 5, 60, 78,176,134,112, 93,174,226,219,246, 30, 3,100,197, 50,141,163, 10,157,116, 58, 3,134,247, 22, +123, 96, 17,174,177,236, 24,147,146, 66,196,186,231,225,188,133, 51, 50,162,243,206, 35,196, 14,235,182, 99,210,233,206,188, 44, +120,188, 31,113,189, 48,186,190,199,216,119,120,121,121, 21, 16, 11, 8,227, 56,194, 59,131,215,151, 87,116,195,136,187,243,157, + 88,191,156,151,238,221, 16,210, 34,208,154, 45, 68,172,235, 2,231, 60, 46,215, 43,184,239,101, 39, 15, 96,236,122, 12,227,128, +215,215, 87,172,235, 86, 46,234,101,223,208, 57,135, 85, 71,154,222, 90,197,168,154, 34,120,114, 78, 46,223, 94,169, 90,203,178, +170, 13, 78, 16,169,214,121, 64, 85,214, 49,137, 18, 61,165, 40,233,107, 74,119,115, 86,198,161, 33, 72, 46,124,208,209,255,186, +202,123, 27,118,137, 17,117, 86,172, 99,156, 36, 58, 85, 10, 24,135,233,116,194, 58,207,114,161,179,100,148,255,246,123,225,186, +231,120, 97, 99,126, 72,167,171,217,231, 58,233, 51,196,154,152,166, 29, 37, 52, 21,208, 58, 48, 68,132, 23, 57, 98, 11, 65, 17, +173, 66, 20,203, 57,234, 57,161, 45,162,174,189, 92, 9, 98,162,162,116, 78, 44,123,122,177,246, 37,189,196, 43,207, 29,133,126, +119, 75,130, 68,141, 83,165, 54,226, 57,143,176, 37,232, 39, 91,123,243,217,226,140, 8,249, 8,242,222, 58, 43, 22,198,193, 59, +196, 24, 20, 78,147, 47,101, 91,202, 31,180, 56,213,140,171, 45, 54, 44,170,249, 19,250,125, 48,149, 30, 83,214,180,109,203,216, +134, 84, 21,175, 54,213,252,114,217,165,219,162,254,206, 73,123, 69,155,165,151, 85, 98,189,212,181,153,200,251,250,152, 98,205, + 94,207,211, 66,125, 33,249, 66,207,184,217,105, 28,241,112,119,198, 52, 13,136,123,133, 20,145,181, 32,125, 46,200, 88, 24,215, + 73,113,135, 93,186,103, 67,232,250, 65, 73,115,208,108,244, 80,244, 98, 70,139,248,164,142,148, 76,200,203,228, 70,107, 93,113, + 5, 37,245,186,179,162,155,115,179,155,223,223,234, 41,167,154,220,198, 63,208, 83,102,223,157,252, 7,168, 94,198,133, 34,196, +141, 62,162, 97,159, 51,223,216,211,143,105, 47,135,162,145,106,156, 41,103, 53,120,137, 9,171,188,239,146,135,155,201, 28, 72, + 48,150,208,105, 94,116, 22,102,113, 69,156, 43,151, 89,118,115,217,250,241, 63,252,143,255,147,190,124,177,166, 72, 14,114, 85, +111,103,181,118,215,121, 56,107,114,241,166,163,122,170,153,230, 76, 69,169,151, 47,244,234, 66, 75,205,133,154,133,116, 12,106, + 40, 80,141, 52,173,136,240, 50, 65, 40,255,249,137,235, 4, 69, 74, 13, 46, 57,193,101, 23,146,154, 15, 84, 71,161, 37, 34, 55, +143,229, 52,185,138,110, 84,120, 66,142,106, 34, 78,243,129,145,242,223,231,239, 68, 42, 32,137,212,172, 41, 50,191, 63,123,218, +115,231,206,121, 79,158, 80, 99, 86,161, 24,218,124,232, 40,242, 61, 37,212,190, 40,171, 94, 83, 42,227, 37,232, 30,127,213,116, + 50, 2, 16,247, 13, 93, 62,216,245,203,111,141, 84,238,219,190,193, 24,194,239,125,246, 30, 63,122,247, 6, 68,130, 31,126,251, +120, 47, 72, 78, 45,188,156,117,240,253,136,223,251,163,127, 12,107,189,240, 12, 0,132,184,195,184,190, 68, 38,118, 93, 47, 34, +182,190,131, 51, 86,209,166, 66, 42,187, 59,157, 68,188,226, 28,152, 13, 58,215,163,239,122,188,121,243,128,203,245, 90,196,150, +146,210, 68, 8, 44,163, 77,107, 13, 78, 39,185,100,239,207,119,176,190, 71,231, 7, 13,145,144,239, 73, 8, 81, 64, 32, 28,101, + 21,100,141, 70, 82, 74,103,214, 15, 39,201, 45, 15, 27, 56, 69,188,123,251, 22,211, 56,226,237,187,247, 50,102,205,223, 39, 34, +220,157, 38,116, 78, 2,141,198,241, 36, 17,160, 49, 98,232, 59,128, 19,214,245,138,109, 93,208,121,135,125, 91,192, 49,192, 59, +135,101, 93,240,112,119,134,239, 68, 81,110,148,136,246,242,242, 34, 57,228, 96, 17, 75,105,240,209, 22, 35, 58,107, 49, 40, 96, +196,232,126,223,123,185,236,132,154,184, 97,221, 54,108, 33, 32,164,168,123, 68,131, 97, 24, 49, 77, 19,238, 79, 18,100, 49, 14, + 3, 12, 25,188,127,251, 86,126,191,113,234, 71, 54,112, 94, 68,113, 68,170,163, 80, 75,218,182, 74,132,235,160,123,115,231,228, +240,247, 93, 39,211,133,105,146,239, 16, 17,156,122,224,127,254,219,111, 69, 36,168, 99,102,129,146,212, 85, 33,221,168,167, 69, + 22, 66, 37, 78,148, 20, 71, 74,214,195,250, 81,248,255, 49, 33,196,128,151,121, 69,136,154,205,173,233, 95, 70, 61,235, 25, 20, + 19, 82,158, 38,114,121, 54, 98,146,203, 59,234,218,107, 15, 17, 91,136,216, 83,157, 36,150, 51,179, 92,232,220,158,176,197,131, +157, 74,215,192,199,213, 89,179,235,206, 19,136, 44,238, 10,170,195, 8, 81,248,255,162, 81, 49,138,146,214, 46,148,155,165,169, +118,209,114, 70, 27,157, 54,208, 17,217, 90,136,104,168, 16,152,204,106,207,201,105, 89, 37,159,217,237,249,175,165, 99,150, 49, +123,190,208,243,229,107,141,173, 28,117, 91, 87, 23, 34, 62,140,242,127,185, 91,135, 41, 66,105,100, 78,188,122,241,115, 8, 76, + 78, 87,179,198, 98, 28, 6,188,125,247, 6,247, 15, 15, 10, 41, 10,101,109, 36,175,213,170, 22, 64,120, 17, 12,134,243, 30,174, +235,209,143, 19,134,105, 66, 63,142, 18,172, 20,130, 80, 82, 85,175, 50,158,207, 24, 38, 57, 67,160,249, 16, 48, 84,210,252,194, +190, 99, 91, 86,196, 61,138,107,131,160,132, 68,215,248,251, 19, 18,107,140, 47,167,194,243,119, 57, 78, 51,143,115,137, 33,234, +233,148,169,100,199,189,110, 91, 81,101,213,114,162, 6, 21,139,106,235, 58,240,209, 51,172, 32, 43,165,185, 41, 8,184, 94,152, +212, 82,134,184,229,161, 23,127,153, 88, 76,136,208, 27,131,141, 9, 61, 81,185,144, 83,202, 68, 51,192,186, 30,113,125,213,177, + 63,225,127,253, 95,254,231,162, 56,239,156,197, 28, 36, 23,154, 90,208, 1, 1,221, 48, 20,142,243,173,206,141, 52, 17, 41,175, + 16, 14,177,115,121, 44, 79,244, 59,228,128,191, 67,211, 95, 4,111,101,238, 94,179,202,243, 16,132,169, 98,106,115, 4,171,169, + 85,121,173,163,210,113, 32, 64, 84,194, 34, 76,227,245, 68, 25, 66,181, 53,214,109,148,158, 81, 33, 91,134, 98,152, 82,120,149, + 98,239,134, 28, 69,168,138, 92, 82, 52,173,252,206, 74, 40,226, 92,180,148, 61, 89,182, 42, 54,239,105,202,241,139, 40,164,176, +109,223,241,238,124,143,247,159,125,134,206, 59, 85, 14,203,184,119, 94,100, 71,154, 98,196, 79,255,234,175,241,238,225, 30,159, +191,121,128,179, 22,203,178, 96, 28, 70,108, 33, 40,180,132,176, 44, 11,206,247,247,242, 46,236,155,106, 14,162,160,120,137, 48, + 95,159,229, 1,113,210,181,216,210,217, 16,194,118, 69,180, 26,149,185,206, 0, 34, 18, 44,134,113, 16, 75,150, 53, 32,235,112, +157,175, 72, 49,193, 88,135, 1, 9,100,123, 0, 81, 59, 74, 96, 89,103, 24,227, 0, 36,236,123, 44, 1,199,224, 0,103, 29,140, + 38,174, 25,147, 48,246, 82,213,175,203, 85, 58,232,196, 24,186, 17, 32, 89, 67,204,203,130,161,239, 17, 99,194,186, 46,146, 88, + 55, 12,232,251, 1,204, 17,235,182, 1,156,208,251, 94,186,225,152,176,174, 43, 0,153, 18, 88,223,129,149,129,255,225,227, 51, +188,179, 8, 90, 20,231,221,226,243,245,162,162, 57,233,186,150,117,171, 16, 20, 34, 68, 78,176,218, 9,177,134, 79,156,250, 14, + 49,236, 48,198, 10, 5,110,223,133,125,221, 9,118,215, 24,139, 45, 36, 76,125,135, 24, 3,136,128,203,245, 90, 68,139, 68, 6, + 91, 88, 0, 35,250,133,101, 93,225,140,149, 66, 67,129, 49, 49, 38,144,183,101, 10,144, 5,176, 93, 55, 96,143, 1,143,143,111, + 20, 74, 35,151,195,203,203, 51,126,246,243, 95,203,152, 91,161, 53,204, 81,108, 71, 68,135,243,199,232,243, 19,184, 34,123,101, +231,169, 33, 49, 36, 48,153,160, 33, 50, 98, 95,146,159,159, 7,250, 50, 74, 39, 21,199, 37, 89,169,100,213, 81, 98,236, 36,129, + 52, 28, 83, 41, 82, 50,185, 46,159,185, 73,139, 3,171,222,119, 98, 65,195,230,209,114,233,220,243,132, 83,132, 49,117,186,215, +112, 33,178,221,139, 85, 8, 71, 16,216,204,186,111,170,192,207,246, 84,113,121, 88, 43,250,139, 93,227,163,133,119, 47,129, 90, +104,211, 60,179,240,142,101, 52,207, 57,141, 44, 55,115, 13,159,254,102, 44,123,240,184,163, 36, 56, 82,211,181, 27, 97,227, 27, +215, 92,232, 85, 28, 7,237,196, 51, 66,149, 19, 11,116, 44,197, 50, 33,200, 83,204, 10,180,169,214, 49, 99,107, 40,140, 49, 6, +253,208,225,221,187, 55, 56,159, 38, 56,103,193, 28, 85,106,150, 21,252, 14, 48, 73, 4,106,251, 10, 56,135,174, 63,195,247, 61, + 98, 22,194,129, 17,118,105, 72, 98,144,169,153,245, 94, 35,152, 69,192, 25,131,124,231, 3,133,122,247, 17, 36,194, 53, 74,108, +113,177,235,169, 46, 34,133, 84,239,150,212,104,218, 89,214,205, 46,169,196,191, 96,230,114,206,121,246, 58, 83, 77, 16,147,139, +185,233, 12,111, 8,103, 68,124,136, 96, 61,100,167, 83, 93, 40, 19, 53,150,173,196,101,115, 91, 58, 97,237,252,248,224, 2,171, + 18, 70, 1,244, 11, 47,205, 24, 3,116, 14, 70,195, 48, 72,173, 84, 41, 49,252,208,131,232, 2, 6,240,249,143,127,130, 95,253, +226,239,208,235,206,142, 57, 97,221, 2,172,119, 69,141,157,159,139,168,182,147,146,211,219,224,109,153,154,137, 68,222, 91,183, + 59,184, 50,210, 62,170,226, 9,255,223,255,203, 32, 26, 99, 26, 42, 92,177,206,149,100,155, 67,160, 14, 39, 86,190,123, 86,179, +241, 15,153,218,203,123,223,166, 73, 37, 21,119,165,116,244,231,231, 66,172,236,230, 15,235,184, 84, 58,117, 89,190,105,190,242, +225,251,145,127,157,209, 48, 25,201, 81, 47, 66, 56, 80, 3, 28, 74, 72, 17, 7,251, 36,103,255,174, 32,242,202,161,136,176,225, + 60,246,136,249,191,211,196, 26,166,148, 48,207, 51,254,221,223,254, 2,127,240,197,231,120, 60,159,240, 15,126,255,199, 0, 9, +135,221, 24,194,233,122,197,199, 23,217,127,145,117, 0, 89,252,223,127,241,127,202,238, 60,119,141, 26,100,146,247,170, 40, 72, + 77,130,215,125, 97,220,165, 90, 95, 87,137, 7, 61, 79,103,196, 16,241,248,112,198,164,137,109,247, 15,119,184, 92,103, 76,195, +136,231,215,139,140, 86,157, 4,118,128,228, 98,155, 78,103,236,235, 12,107, 45,246,224,208,247, 30,137, 13,150,117, 69,138,114, +201,120,231, 48,175, 43, 34, 11,193, 78, 20,228, 61, 78,206,227,114,185, 32,165,128,126, 24,240,250,250,130,101,219, 75, 30,131, +115, 14,119,231, 73, 47, 27,185, 88, 62,123,247, 94,212,190, 0,214,101,193, 58,207, 24,134,190,208,236,174,203, 6, 50,130,136, +133,130, 96,182,176, 99, 89, 55, 12,125,143,190,239,241,238,237, 91, 92,175, 87,233, 58,246, 29, 49,202,120,123, 28, 58,108,123, +196,190,239, 88,195,174,129, 46,178, 58,128, 58, 60, 50,113, 48,197,168, 42,247,161,228, 87,247,157, 67,208,194,106, 11, 65,124, +241,125,175, 24,205, 21,222, 90,244,125,175,157,100, 64,127, 18,235, 94, 12,146,104,229,189,199, 56,142, 10,222,145,157,187,243, +190, 8,182, 86, 85,185,147,247,136, 49,225,223,255,167,159, 23,151, 67, 78,102,204, 90,153,188, 54,202,156,139,188, 8,180, 25, +111,106,140, 92,102,182,147, 78, 13, 9,215,235, 69,213,207, 9,206,100,180, 41, 10,134, 84, 2, 89, 12,214, 32,194,185,146,108, +169,126,108,103,197,147,110, 21, 91,237,172,140,175,131, 94,242, 81,199,245,166,116,114,218,209, 35,143,152, 81,198,240, 49, 53, +169,145, 41,119,233,162,184,205,234,115,106,154, 14, 86,202,230, 22, 3,230,149, 52, 91, 93, 82,228, 50, 87,222,154, 30,189,119, +152,183,189, 32, 75,115, 16, 77, 14, 71, 49,101,173,103,170,191, 28,237, 90, 50,251,175,155, 53, 64, 89,108,226, 56,110, 55,117, +172,159, 57, 33,148, 47,114,107,224,140, 41, 90,134, 98,201,229, 10,103, 73,234,228,200, 5,168,156, 87, 42, 5,110, 34,102,203, +164,160,116,221,226,247,238,251, 30,111, 31, 31, 48, 14, 3, 58,239,148, 22,104, 85, 72,105,116,245, 0, 32,133,230, 62,203,107, + 78, 41, 36,194,182, 97,213, 53, 74,107, 7, 5,203, 51,176,238,187, 60,143, 41,202,180, 48, 79,106, 52, 70, 24, 32, 45, 92,109, + 89,201, 36,229, 22,148, 8,240, 60,141, 97, 58, 0, 71, 93,139,226,228,236, 91,204,152, 62,170,251, 6, 78,121, 71,174, 42,240, +198,155,156,247,163,156, 47,247,214,190, 70, 92, 69,119, 13, 2,245,144,246,213,144,231,202,165,149,227,254,138,141, 46,147,223, + 42,132, 33,104,101,109, 75,162,145, 28,206, 25,122, 79,174, 87,240, 2,227,205,251, 31,225,183, 95,254, 90, 34, 23, 19, 99,213, +139,223, 54,170,251,220, 25,164,152,244, 75, 67, 13,251,134,235,254,231,128, 7,110,190,148, 77,218, 30,231, 78,158,141, 38, 27, +161, 1,190, 52,243,122,206, 89,182, 85,144,211,110,245,152,179, 71, 60,219, 79,212,107,154,181,104, 77, 92, 49,181,155, 64,190, + 37,249,112,233,244,179,192,177,133,201,180,251,246, 76,184,171,197, 73, 86,135, 86, 94, 51,184,118,235, 37, 54,209, 52,198, 9, +164,170,176,215,239,208, 81,118, 87,247,242,100,184, 38,247,193, 52, 90, 4,221,113, 42, 59,158, 40, 97,210,139,104,200,202, 80, + 34, 88,103, 49, 2,120,243,240,160, 17,160, 27,150,117, 67,215,249,226,233, 44,170,100,223,233,126, 45,226,143,254,248, 79,241, +155, 95,255, 28,151,215,239,149,252, 37,187,220, 2,245, 48, 14,214,238, 96,178, 88, 35, 99,244,114, 40,156,167, 17,119,100,176, + 71,198,186, 94, 97,199,123,172,203,142,181, 95, 65, 36,234,240,211, 56,225,245,245, 5, 72, 1, 93, 55, 97, 15,123, 65, 77, 14, +125,135, 61, 72,183,123,157,231, 2,223, 97, 4,120, 75, 88, 35,195,119,131, 36,169,113,132,183, 29,250,190,195,135,167, 39,108, +187, 84,239,172,224, 39, 81, 72, 27,220,223,221, 97, 86,220, 43,129,225,157, 23, 37,242,182,225,241,254, 36,124,106,157,200,197, + 20,209,249, 14,150, 32,129, 47, 20, 36, 81,173,243,130,189, 36, 41, 46,242,168,179,239, 58,128, 25,151,203,165, 68, 86,146,118, +206, 99,215,193, 58,139, 24, 34, 34,145,124, 62,154, 75,190, 46, 43,186,206, 97, 94, 55,137, 49, 86,216,199, 48, 14,210,237, 88, +192,145,193,190,111,232, 6, 47, 30,248, 78, 46,231, 18,203, 11, 8, 80, 38, 72, 7,220,121, 95,152, 1, 32,194,249,124, 46,171, +192,125,223,181, 56,215,196,170, 20, 69, 55,160,107,128, 20, 19,254,252,167,255, 65, 85,227,169, 62,187,212,230, 13,228, 9,145, + 30,158, 5,197,106, 0, 35, 19,141,204,128,216,182, 5,123, 8,229, 82, 54, 4,108,145, 75, 24, 79, 46, 42, 72,189,234,217,246, +196,205,254, 59,135,152, 48,128,125, 23, 84,239, 30, 83, 25, 27,155, 36,214, 55, 67,226, 71,222, 98, 44,226, 78,102,161,209,101, +178, 96, 42,124, 44,170, 35,247,148, 87, 49, 53,245,177, 29,195,203, 47, 55, 8, 12, 92,183, 93, 21,214, 17,169,247,106,237, 53, +240, 62, 98,234, 59,124,188, 92,229, 60,167,234, 70,146, 66,163,250,225,179,117,214,220, 64,170,202, 37,170,180, 54, 16, 53,169, +153, 84, 26,166,220,173, 23, 29,150, 10,251,242,222,220,105, 56, 75,205,132,160, 66,183,203,218, 33, 33,196, 37, 29,137, 55, 0, + 49,147,155,217,212,188,126, 91, 33, 61, 86,188,232,217,186, 38,246,181, 88,198,244,217,204,155,239, 3, 99, 12,200,119,122,198, + 48,182,249,138,176, 45, 50, 85, 81,156,111,142, 75,205, 8,219,220,129, 67,221, 16, 89, 46, 40, 59,247, 88,138,183, 50, 93,224, +140,242,210,105,102,224, 90,168,100, 59, 29,177,232,196,178, 62, 3, 74, 85,203,221, 57,183, 93,104, 74, 21, 34, 66, 77,124,102, + 66, 25,179,100,155, 84,226, 31,140, 98, 43,151, 71, 74, 98, 69,184,145,115,171,232, 74,146,180,132,210, 73,133,242, 86, 18,180, +168,185,111, 56, 41, 42,128, 52, 12, 69, 68, 40,150, 9,145,229,103,108,187,216,109, 92,215, 21,223,249,182,109,165, 58,246,206, + 98, 94,163,232,197, 57,149,145, 85, 82,101,173,128, 32, 12, 14,177,116,168, 36, 61,210, 98,227,216, 14, 87,123, 91, 17,124,229, +149,194, 45,250,149,240, 9,137, 9,220, 4,220,228, 91,187,196,248, 85,254,124,155,207, 90, 49,179,199, 88,216,255,223,255,181, + 43, 23,170, 67,119,110,249, 4,205, 24,178, 22, 29,199,156,120,161, 36,229,176,133,234, 18,104,167, 52, 68, 56,250,224,179,199, + 61, 11, 78, 81,244,117,197, 37,193,104,166, 62, 58, 58,244,106, 89,241,234, 45, 15,251,134,126, 24,224,172,195,245, 58, 99, 94, + 22,252,242,203,223,224,110,232,241, 39, 63,249, 76, 46, 34, 0, 41, 69,120,107,112, 62,159, 96,191,127,130,177, 14,251,190,203, + 72,122,185,226,243, 31,255, 33,126,254, 87,223,105,101, 47,214, 47,164, 4,178, 22,127,240, 39,255, 37,254,242, 63,254, 91,196, +196,232, 44,138,119,248,186,238,232,172,218,154,188,216,175,174,251, 6,115, 93,244,123, 96, 48,175, 27, 58,111,209, 15,163, 88, +138,172, 71, 76,162,142,206, 22, 49, 16,193, 58,177,123,205,235,162,170, 98,131,105,234,225,189, 28,190,243,188,128, 72, 46,255, +243, 48, 10, 50,148,129,206,122, 37,142, 1,211, 52,136,104, 76,187,203,196, 9,203,178, 96,217, 54,220,223,221, 97, 91, 69,169, +158,225, 22,167,113, 68,136, 1,151,235, 82, 88,244,114,184, 49,182,101, 17, 34, 91,140, 5,117,250,244,242, 34, 32, 21, 0,155, +134,174, 12,195, 80,240,178,121, 61, 49, 24,161,233,145,177,152,151, 5, 96,198,117, 17, 66, 92,190, 70, 30, 31, 31,203, 42,131, + 1,172,235, 2,239,122,165,187, 65, 98,105,195, 14,195, 70, 19,231, 58, 92, 46,151,162, 17, 25, 70,205,255, 6, 99,232,122,108, +219, 86,196,115, 89, 29, 47,151,232,142,174,235,117,221, 98,224,188,199, 95,252,244,103, 18,220,129,234,237,174,157, 96, 45,170, +179,234,186, 40,161,157,215,184, 77,104,119, 21,176,169,128,216, 24,131,117,143, 50, 66, 85, 81,240, 22, 83, 77, 79,203,207,181, +170,235,161, 68, 51,163, 69, 67, 72,245,249, 54,134,176,134, 40,206, 3,237,220, 73,221, 71,137, 24, 33,164,166,216,231, 82, 32, +196, 44,188,108, 38,110, 45,190, 83,154, 29, 85,168, 83, 73, 70, 62, 60,203, 89, 9,158,146,164,149,101,237, 84,239, 61,250,232, + 48,168,197,145, 90, 44,118, 81,166,215,211,220,182, 65, 23, 45,205,173,201, 75,135, 90, 5,185,129,215,180,127,165,134,187,158, + 11, 7,103,108,209, 85,212, 85,109,123,161, 75, 39,155, 97, 78,104, 68,131,108,164,160,162,132, 27,109, 1,149,162,202, 88,139, + 97, 24,240,238,221, 91, 81,187,159,207, 50, 5, 84, 81,166,136, 23, 83,225,249, 51, 3,198,249,114, 22,165, 20,228, 28,212, 20, +172, 76,182, 19, 2, 31,107,140,172,174,154,213,238,150, 5,131, 41, 99,106,153,133,233,160,205, 16,115,130,104,241,162, 54,214, +210,172,214,112, 29,148,220, 1, 52,105, 31,174,126, 9,242, 46,134, 11,209,171,160,250, 32, 95, 74,210,191,242, 77,202, 14,171, +120,130,154, 24,210, 35,199, 61,213, 49, 87,179, 39,201,166, 47, 50,226,247,204,197,185,209,139,157,180, 99,207,223,147, 2, 13, + 41, 76, 92, 66,103,101,172, 37,194, 19, 86, 57,191,252,255,214,123, 56,231,240, 95,252,217, 63,195,127,248,247,127,161, 34,164, +132,206,139,157,168,235, 28, 76,115, 57,178, 34, 29,203,151,189,217,239,211,205,126,253, 22,103,123,168,103, 50, 17,141,203, 80, + 94, 11,130, 58,108, 42,102, 53, 13,129,169, 5, 3, 55,235, 18,174,225, 46,124,116, 6, 80, 9,193,107, 33,255,116,144,218, 19, + 90,148,227,177, 0, 33,224,200,112,207,151, 54,253,208,214,191,238,244,179, 31, 54,131,101,242,196,198, 52,221,255,167,172,223, + 58,233,224,134,130, 85,153,186, 50,162,167,140, 32, 46,217,238,245, 0, 51,106, 27,154,215, 13, 33,236,152,198, 1,215,235, 5, +227, 48,226, 23, 95,126, 9,239, 28, 62,127,247, 14, 95, 60,222,163,235, 59,188,188,188,160,239,122, 61,224,163, 28,236,206, 35, +197, 93, 30,192,148,224,125,143,126, 58,137,133,196, 88, 21, 70, 18,146,250,217,191,253,250,215, 34, 2, 91, 5,104,228, 12, 97, + 11, 12,107, 2, 0, 11,231, 60, 44,203,118,244,225, 52, 97,156, 38,124,246,254, 45,172,115,120,126,126,198, 60,139,232,168,115, + 22,195,120,130,247, 86, 2, 36, 20, 28,115,189, 94,209,117, 61,140,113,186,251,223,176,199,128,209, 91, 17,203, 45, 51, 18, 3, +167,161,199, 64, 61,214, 77,160, 49,222, 0,219, 30,145, 0,140,195,132,125,219,113, 93,132,142,215, 57,135,121, 77, 88,214, 5, +222,121,241,119,199,128,190,235,225,157, 4,159, 48, 39,172,151, 80,160, 48,219,182,227,117,121,193,121, 28,139, 16,168,239, 58, +116,189, 36,157, 57,235,144,144,224,157,136,224,214,117, 5,136, 17,246,132,157, 3, 46,151,171,210,234, 8,243,186,105,186,161, +116, 94, 70,199,220,227, 56,160,239,123, 88,235,196,234,100, 13,194,190,149,176, 24,163, 44,128,204, 27,112,206,149,159, 37,172, +128, 84, 38, 47,210,129, 75,113, 70,186, 55,142, 57, 28,136, 80,246,234,121,170,231,156,195,191,253,233,207,176,228,105, 69,217, +157, 27, 69, 90,152, 67,172,130, 41,162, 41, 87,163, 98,227,142, 61,213,152,215, 92,188, 7, 93, 7,154, 44, 41,213, 54, 58, 22, +163,148, 80, 9,179,133,177,164, 83,230, 72, 87,212,241, 29, 51,149,149,132, 81,110, 64,190, 60, 83,168,172,247, 92, 32,100, 27, + 27, 55, 82,100, 99,140,126,198,249,153,205, 77,149,184,130,138, 24, 87,159,195,148, 82, 45,104, 20,195,157,152, 64,219, 94,158, +241,206, 57,141,131, 38, 93,151, 53,231,134, 90,199, 68,213,126, 92,155,214,243,191,238,197,243,251, 43, 9,174,109, 87,142,131, +173,149, 90,144,140, 10,230, 72,115,212, 91, 47, 16, 39, 46,161, 39, 41, 69,157,142,180, 10, 96,109,152, 56,171,224,179,125,171, +254,207, 90,139,105,156,240,246,237, 3,206,119,103,156, 79, 83,105, 98,140,213, 48, 33,142,101,210, 42,234,118, 13,183, 77,177, +230, 22,232,107,203,250, 47,110, 92, 60, 53, 67, 0,205,218,154,138,207,156, 72,196,176,100,244, 51,210,140,247,226, 40,144,222, + 87, 62, 47,174, 18,230,204,138, 48,156,202,245,238, 82,189,189, 85,249,220,194,102,248,144, 24, 83,147,182,210,193, 74,197, 45, +170,156,110, 5, 91,138, 12, 84, 91,129, 57,146, 82, 11,189, 76, 88, 6, 92, 98, 94,107, 20,106,245,133, 37,229, 22, 59, 91,145, +136, 65,197, 35,134,129, 0, 70, 12,242,218, 67, 2,124, 55,192,247, 3,254,233, 63,255, 23,248,233,159,255, 27,165, 85,201,168, +108,217,163, 48,187,117, 20, 19,243,155,167,221, 9, 55, 81,169, 21,206, 1,207, 8, 66, 0, 0, 31, 18, 73, 68, 65, 84, 83,175, +228, 12, 80,160,223,177, 33, 47,176, 22,131, 31,228,231,213,132,153,102, 44,223,242,220,233,144,116,138,102, 83, 86, 99, 87, 81, +133, 60,213, 74,118,188, 74, 75, 44,108, 67,151,107,187,243,246, 87,211, 15, 94,198,181,248, 56, 70,204,102,228,133, 24,214,184, +101, 29,128, 15, 56,161,124,102,230,104, 85,131,106,244,175,126,122, 42,197, 80, 30, 23,230,200, 87,161,137,201,151,127,143, 1, +167, 97,146,184, 76, 43,162,153,135,187, 59, 73,226,138,223,224,235, 15, 31,241,197,219, 71, 9, 35, 9, 17,195, 56, 2,203, 6, + 80,196,232, 45,158, 47, 75,241,154,126,245,213,175,240,230,221,143,139, 54,209,105, 32, 13, 89, 3,195,140,249,242, 36,145,148, +219, 43, 82, 76,216,148,204, 70, 96,244, 93,143,161,243, 18,184,226,140,226,145, 19,158,158, 94,208,247, 30, 67, 63, 96,221, 86, +133,168, 4,172,235,130,152,188,116,143,138,242,188,191,127, 68, 74, 65, 46,240,109,195, 30,119,124,241,197,143, 4,162,178,110, + 56,223, 61, 96, 15, 81, 64, 42,104,193, 65, 14,140,136,206,146,132,178,120, 91,226, 75, 95, 46, 51, 58, 47,228, 41, 71,178, 23, + 31,250, 14, 33, 6,244,125, 15, 38,131,215,151,103, 81,198,159, 79,248,248,244,132, 61,136,160,205, 25,131,192, 22,235,182,192, + 91,139,167,231, 23,156,207,103,156, 79,167,242,158,229,227,244,114,157,165, 3, 79, 9,167,105, 44,197,215,216,123,172,219,142, + 85,115,162, 9,194, 70, 95,150, 69, 2, 87,166, 19, 98, 20,136,134,115, 22,227, 56,214,206,159,128,113, 28,203,202,109,221, 86, + 44,203,138, 24,165, 0,233,124,135,160,140,121,129,144,152,146, 40, 54,244, 3, 66,144,176,152,160, 69,140,243,146,148,246,211, +191,250,107,172, 10,106, 49,138,110, 45, 97, 39, 55, 93,161, 83,244, 40, 52,217, 76,198,165,161,100, 21,100,115,166,205, 29,158, + 66, 78,146, 78,230,168,132,236,112,225,156,147,145, 98,174,245,101,179,254,243, 34, 60,212, 75, 95,238,105, 3, 86,144,137,160, + 63, 21,188, 85, 45, 72, 5,222,146, 26,234,103, 22, 41,138,162,187,133, 66,213,194,161, 77, 35,203,141,218,141,178, 22, 9,192, + 22, 18,136, 52,125,111, 19, 1, 93,231, 44,150,180, 23,181,119,228,132, 94, 47,179, 84, 38, 17,181,232, 41,244,182,102, 12,111, +168, 17,196,181, 41,148,205,186, 45, 95, 78,217, 39,110, 26,230, 59,105, 94,134, 40,252,213,171,175,130, 56, 46,233,107,106, 79, +164,230,250,207,197, 75,179,254,200,152,218,243,249,132,135,251,123,156,207, 19, 78,211, 36,223,135, 4, 36,142,170,170,183,136, + 1, 5,252,195,166, 82, 57,147, 6, 3, 25,103, 21, 48,147,138,144, 49,243,248, 73,163,111,141,211,220,243,176, 87, 58,186,134, + 72,177, 22, 30,153,118,136,227, 82, 90,254, 91,204,117, 37,106,106,204,183,105,222,123, 6,224,114, 85,147, 82, 53, 70,112,170, +224,153, 18,197,209,168,213,137, 53,213, 44,239, 86,213,166,129, 28,248, 82,246,168,117,156, 92,118, 46,141, 5, 75, 53, 84,149, +159,206, 77,196, 94,249,204, 77, 65,207,108,235, 94,170, 47,107, 85, 36, 21, 19, 58,239, 0, 11,120, 24,132, 32,202, 94,178, 14, +253,120, 66, 63, 78,248, 63,254,247,255,173,238,201,152,177, 51, 43,208,129,203, 56, 51, 95,208, 18, 20,224, 10,250,241,182,219, + 68,147,251, 75,191,107,230,221, 96, 83,139,198,128,110, 46,244,230, 61, 74, 21,244,168,117, 13, 29,187,241, 92, 32,229,202, 92, +211,244,242,195,146, 88, 47,214,131,230,190,197,217, 82,209, 2,148,135,200, 84, 58,221,173, 10,245,214,222,152,242,202, 33,179, +219, 27,149, 45, 39, 70,178, 57,198, 85,138, 54,250, 36,122,166, 22, 66,109,132,239, 81,111,223,140, 68,111, 74,139, 61, 70,116, +142,176, 94, 47, 56, 15, 29,190,249,240, 17,211,249, 12,171, 84,184,169,247,248,127,254,211,223, 32,110, 11,222,222,159,177,135, +160,108,106, 86,154,149,240,207, 7,111,241,210,168,240,215,249, 21,215,203, 83,249,110,167, 40,130,168, 44, 96, 50,214, 96, 24, + 79,120,122,185,168,183, 62, 32, 68,194,253,121,144, 80,150,121, 17, 23,197,158,112,238, 12, 98, 4, 76, 39,223,165, 61,132,114, +240,159,239,238,203,106, 37,196, 36,221,168, 35,108,187, 20,199,203,186,128,140,208,219, 94, 95, 94, 68,176, 54,140,184, 92, 47, +162,104, 15,162, 94,191,187,187, 23,122, 27,106,156,166,119, 14,190,115, 88,215,103,217,193, 90,139,144, 18,186,126, 64, 63, 12, +184,155, 70, 24, 67, 88,214, 21, 33,236, 88,183, 13,125,223, 97, 93, 87,124,243,221, 7,133,184, 68, 24, 18, 16,205,188,110, 2, +211,177, 22,159,127,246,153,128,103,214, 21,175, 87,233,198, 67, 12,146,101,175,164,175,243,249, 36,227,113, 21,133,109,251,142, + 45,136, 8,168,115, 78, 99, 82,229, 18,158, 78, 39, 56,107,209,247, 30,251, 30, 48,207, 87, 25,201, 63, 60, 0, 32,108,219, 10, +132, 32, 29,151,230,154,119,189,199,190, 19,166,105, 44, 88,101, 3,201,153,103,146,117,128,181, 14,235,182,105,106, 30, 97,236, +188,248,202, 67,196,207,254,230,151,226, 23,215,209,126,182, 80, 81, 35,216,202,227, 82,103,189,140, 70,213, 26,148,195,134,136, +220,161, 80, 55,250,220, 24, 83,119,241,217,102,196, 96, 5,100,213,148,195, 24,147, 80, 1,203,106,179,249,247, 58, 25,204, 23, +130,165,154, 88,152, 95, 27,140, 90, 83, 97,138,157,148,218, 32,166,195,142,222, 22, 87,210, 97, 2,219,216,221,140, 54, 89,197, + 77,211, 90,104,115,103, 15,198, 22, 19, 8, 1,243, 38, 97, 74,222, 89, 44,123,128,105,210, 20,161,239,167,117, 85,125,222,138, +225, 36,244,172, 33,142,154, 6,220, 65, 45, 65, 52,223,130,242,123,108, 38,186,153,106, 91,206, 36,211,220,220,101, 49,156, 8, +227,162, 94,164,124,104,128,154, 68,237, 34, 46, 43, 8, 47, 34,220,223,159,113,119, 62,225,116,154,112, 58,157,165,232, 83,171, +152, 76,160, 13,194, 46,133, 99, 73,152,211,134, 50, 79, 46, 10,179, 37, 85,155,119,106, 70,228,229,175,170,127, 0, 71, 45, 96, + 76, 21, 41,171,128,174, 93, 13, 84,132, 48,202,251, 88,162,186,155,137, 46,163, 21, 24, 2, 46,101,249,115,249,144,142, 97, 26, + 92,192, 32, 92,128, 41, 92, 70,173,169, 8,219,228,135,235, 5,147, 95,108,131, 49,229, 50,150, 54, 5,183, 74, 77,151,137,198, + 2,126, 68,159, 42, 79,150,228, 15,237, 77, 38, 22,169,158, 46, 11,119,138, 53, 12,136, 0,250,174,199,221,253, 3,190,253, 13, +225,229,245, 73,196, 55,168, 65, 38,206, 16, 54, 37, 30,229,209, 19,114,145,208,185, 67,165,116, 16,149, 52,209,105, 84,116, 6, +205,245,213,100,201,114,179,143,166, 6,150, 94, 60,254,249,131,203, 23, 93, 66,217,195,215,168, 88,110,134,233,220,180,238,212, +212, 7, 85, 92,152, 63, 78,211,190, 98,250, 29,123,252, 3,184,160, 13,215,249, 52, 72,167, 88, 19,243,230,134,107, 0, 12,116, +114, 96, 90,165,127,238,108,110,168,118,200,255,172,252, 25,171,152,168, 0,104,218, 43, 95,185,212,243,182, 99,236,122,252,246, +219, 15,120,152, 6, 60, 61, 63,227, 60,141,120,157, 87,124,249,213,215,216,214, 5,255,224, 39,159,171,154, 88,148,170, 49,138, +221,146, 99,192,208,117,152,198, 17,252,241,169,164, 55,197,148,240,221, 55, 95,138,215,152,160,196, 64, 5,127,232, 30,204,169, +143, 20, 68, 24,198, 30, 32,139,176, 71,128,119, 33,160,245, 29, 24, 66,162,147,145,188,140,171, 55, 85,183, 62, 60, 62,162, 31, + 70, 77, 32, 11,194, 16,167, 14, 33, 70,201, 19, 79,178, 87, 63, 77, 19,150, 69,198,241, 32,194,243,235, 51,238,207,247, 72, 49, + 96, 89, 23,156,166, 9,251,190, 98,221, 2,222, 60, 60, 2, 96,188,190,190,168,175,120,135,243, 29, 58,146, 29,222,188, 44,240, +206, 97,236, 28, 98,140,152,151, 13,214,245, 24,198, 17, 33, 70, 60,191,188,106,230,184,215,252, 10,131,203,124, 45, 69, 87,223, +143,184,191,191,199,190, 73,196,235,188,109,101,143,234,172,197,148,173,101,206,226,229,229,165,196, 77, 70, 45,134, 88, 89,252, +167,105, 40, 19,191, 97, 24,208, 26, 31,129, 4,239, 29,188,115, 24,186, 94, 83,214,228, 25, 93,230, 69, 68, 96,170,110, 63, 77, + 83, 57,111,146,162, 82,103,157, 6,120,235,132, 47, 96, 12,162, 79,106, 21, 18,145,210, 95,254,237,175, 68, 83, 99, 44, 78,227, + 25,159,189,127,123,240,131,103, 71, 72,198,195,198, 36,158,224,148, 12, 16, 67, 19, 48,226, 26, 38, 19,215,240,149, 6,158,117, + 76, 18,195,225,124, 51,182, 57, 63, 18,127, 50,150,181,153,169, 79,212,132,142, 80, 89, 45, 24,102, 36, 52, 99, 89,237,216,147, + 70,169,150,132, 72,109, 15,179,189, 44,198, 88,196,197,249, 0,202, 41,111, 89,137,157,211, 46,185, 48, 66,170, 11, 42, 38, 96, + 69,130, 91, 55,112,231,213, 66,166, 24, 86,189, 12,114,225, 2,189,112,217,164, 2,232,104,157, 75, 69, 8,119, 48, 20,213,248, +215,156, 99, 97, 85,103, 85, 25,238, 71,221, 81,158,108,164,134,176,151, 50,223,226, 48, 39,204, 1, 83,212,252,243,220,229, 10, +134,245,225,254, 14,167,105,196,249,124,214,239, 39,151,137, 32,235, 56, 63,134, 80, 3,203, 74,206,123, 22, 61, 82, 61,207,152, +139,237,173,164, 95,150, 59,178,158,129,164,194,196,124,166, 39, 69,239,230,247,239, 72, 44,107,177,165, 26,212,149, 27, 69,110, +238, 10, 82,203,176, 54,173, 14, 69, 97,151,133, 94, 55,240,152,102,234, 87,189,109, 64,202,187,224,146, 6, 36,187,221,164,163, + 14, 83,236, 14, 56,140, 98,179,127,207, 20,175, 20, 55,133, 1,129,217,192, 24,174,232, 68,237,230, 89,199, 69, 22,212,140,171, +229,129,204,100,167,252,243, 35, 8,190, 31,113, 58,223,131,163,124, 40, 57, 29,170, 38,159, 81,121, 72, 80, 72,105,242, 26, 69, +100,101, 10,210,182, 90,215,154, 38, 51,255, 14,194, 81, 71,160, 62,248,131, 31, 15,124,116, 24,228,177, 89,251,225,165,155,112, + 4,208,193,113, 94,190,170, 25,100,147, 10, 54,253,208, 82,231,202,142, 27, 75, 58,181,110, 55,166, 67, 5,121,164, 13,209, 39, +227,247,106,171,227,114, 96, 1,233,112, 40,213, 46, 32,105, 14,114, 37, 16, 86,253, 36, 53, 8, 97,220, 4, 49, 51,142, 63,189, + 30, 82,121, 99,232,213,234,247,230, 44,224,149,109, 93,113, 37,194,235,229, 2,195, 9,111,238,196,171,253,238,205,219,114,104, + 25, 71,216,230, 43,186,190,195,124,157,209, 43, 41, 48,175, 25,172, 22, 16, 49, 69, 36,178, 7,154, 21,116, 7,183,239,171, 88, +176,186,161,100,120,247, 67,143,206, 89,236, 81, 42,121,103, 25,123, 74, 24,144, 52,211,187,199,221,195, 27,132,176, 34, 37,224, +187,239,191,215, 36, 57,136,176,203, 88,164,109,199,105, 58, 99, 89, 23,112,138,248,240,225, 59, 12,195, 40,151,242,188,160,115, + 14, 79, 79, 31,224,252, 8,239, 61,182,109,215,206, 64, 59, 92,142,240,206,227,155,143,223, 32, 36, 8, 73,110,144,156,247,222, +119, 5,141, 26, 56, 98, 26, 78,184,191,191,195,243,243, 19, 94, 95, 47, 66, 90,235, 58,217,117, 15, 35,214,109, 5, 72, 32, 45, + 14, 6,251,186,225,227,199, 39, 12,157,199,124,189, 10,100,199,251, 34, 60,154,231, 89, 20,228, 26, 95,154, 18, 99, 24,122,204, +171,224, 90, 67,148,144, 27,239,124,137,137,140, 12,108,235,138,238,124, 66, 84,192,141, 87,242, 27, 89, 81, 5, 67,187,153,196, +170, 22, 14, 1,247,231,179, 80,225,116,215, 31,213,150,103,141,193, 52, 12,216,118, 97, 15, 12,253,160,221,178, 8,209,254,242, +111,127, 13, 64,220, 6,167,233,140,127,253,175,255,165,176,223,213,119,106,116,244,189,173, 11,214,249,130,176,109, 48, 78,212, +237, 32,194,182, 44,216,214, 89, 20,201, 89,112,197, 92,146,210,184,209,249,228,168,208, 50,215, 76,245,249,168,251, 94, 41, 70, + 24, 50, 46,142,186, 54,136,121,116,156,244, 34,141,114,145,228,253, 54,145, 45, 58, 22,209, 51,201, 26,140,179,247,253,112, 54, + 49, 96,185, 4,211,216,204, 77,103, 42, 98,189, 10,130,225, 34,158, 19,235,106,157,192,165,188,250, 76, 50,197, 92, 67, 44,183, +113, 38,226, 25,146,132,185, 2,212, 34, 66,164,170, 24, 38,106,211, 64,142,235, 68,202,175,181,153,202,230, 75, 49, 49,212, 74, +152, 10,179,131, 27,195, 76,158,160, 36,101, 45, 20, 91, 87,126,143,228,162,104, 48, 95, 92, 26,140,252, 66,198, 97,196,221,221, + 25,211, 56,225,124,119, 70,223,139,130, 61, 42,112, 71,238,133,154, 79,144,125,189, 92, 62, 39, 21,222,101,119, 79,203, 14,105, + 99,176,185,238,203,141,105, 26, 65,157, 52,212,245,182, 22,129,135,254, 58,239,203,179,195,137,245,123, 88, 93, 70, 6, 57,215, +252, 56,163,117,169, 81,127, 19,227, 96, 63,251,100,170,156, 36, 8,128, 20, 47,150,178, 2,190,189,196,178,239,188, 0, 28,232, +208, 19, 26, 21,197,193, 52, 2,173,194, 95,215,139, 79, 71,223,121,196,147,242, 8,167, 73, 51,203,168, 90,178,132,200,154,208, + 86,210,216,128,126,156,208,245, 3,182,249,162, 76,248, 92,141, 2, 73,131, 25, 72,119,181,156,211,147,244,245, 12,189, 23,132, +169,242, 27,152,248, 38, 41,173, 73, 82,205,100, 54,237,198,211,205, 27,124, 96,175, 55,200, 87,106,110,226, 34, 56,212,142,189, + 28, 16,196,135,152, 87,202,255,141,118, 50, 64, 53, 49,175, 88, 13,193,213,123,107,142, 14,183, 6, 23,223,216, 9,235,191,224, + 6, 32,147,187,124, 58,112,153,169, 68,214,102,117,112,107,196, 43,123,114,115,187,181,168, 12,130, 67, 49,212, 44, 11,202,207, +206, 2,159, 66, 33,180,184, 46, 11,222, 79, 30,215,109,199,155,251, 19, 66,136, 26,238,209,225,250,244, 2,196, 25, 95, 45,155, +160, 85,251, 65, 15, 32,198,186,111,101,223, 57,140, 35,188,115,216,131, 90, 71,172,208,208,176,239,101, 98,144,149,250, 25,113, +186,239,226,211,126,190, 92,225,116,175, 43,193, 25,226, 41,157,151, 25,222, 89,188,185,191,199,233,124,134,243, 22, 47,215, 25, +221,190, 75,190,185,181,184, 63, 77,184,206, 87, 76,195, 0,168, 72,204, 90,139,121,153, 49, 12,163,176,208, 83, 68, 8, 17,207, +207, 79,120,184,127, 68,140, 1,157,239, 48, 78, 61,150,121,150,177,122,140,248,236,221,123, 92,231, 43, 98,100, 60,191, 60, 33, + 36,224,225,124, 6, 25, 33,229, 69,205,109,207, 34, 50,231, 28, 98,220,241,252,252,132,203,229, 82, 44, 94,155,230,152,131, 19, +238,166,147, 8, 77,247, 13,219,182, 98, 75,140, 24,118,204, 73, 86, 91, 33,238,216,230, 80,166, 82, 91,136,136, 41, 98,234, 58, + 24,245,144,239,251, 46,182, 43, 16,222,220,223,201,251,170,116,198,152,132,113, 29, 53,183, 28, 32,144, 23, 60,237,186,174,194, +112,119, 30, 49,136,176,208,104, 39, 51,244, 61,144, 61,250,170,178,239,135, 81, 38, 28, 42,102,179, 78,210,208,146,194, 90,158, + 47, 87,124,249,237,147, 4,214,116, 61,166,243, 61,254,251,255,238,159, 23, 74, 89, 17,178,133, 29,235,114,197,190, 46, 72,251, + 94, 2, 65, 12, 73, 22,189,165,132,113, 24, 74, 58, 88,158,214,148, 14,154,204, 15,235,105,202,161,156, 84, 19,146, 10, 12,134, +155, 60, 6,153, 8,136,245, 41,239,131,147,210,232,114, 17,192,133, 52,151, 10, 84, 43,177, 92,102, 73, 45,123, 81,109, 80, 81, +127,111,216,133,211, 47, 88,215,116, 32,208, 65, 29, 14,173, 42,205, 57, 87,132,206,117, 76, 74, 53,139, 66, 69,199, 8, 17, 54, + 7,147, 52,207,115,140,226,124, 48,104, 98, 67, 53, 78, 58, 71,208,114, 70,199,222, 32,196,169,109, 24,145,100,215,156, 18,216, + 74,126, 67, 50, 0,113,147, 44,169,148, 56,110, 46, 93,106,162,169,185,100,123,100,190,123, 37, 83, 18,100,253,114, 58, 77,184, +187, 59, 99, 28, 39, 76,211, 8,231, 68, 35, 35,159, 65,210,208, 26, 41, 90,172,174,107, 4,214, 20,170, 70,129,147, 78, 80, 69, +127,147,199,222,165, 59, 79,169,100, 75, 80, 14,150,201,103,103, 99, 15, 47,241,215,124,140, 37,175, 65, 89, 84,245, 69,249,114, + 55, 71, 81, 97, 9,247, 42, 74,110,130, 75,137,111,222,232, 99,252,106, 70,195,150, 8,209,124,153,235, 14,132,155,170, 21, 13, +107,156,155,145,123,241, 88, 55,194,179, 44, 12,104,129, 39, 69,253,173, 21,144,105,168, 75, 48, 4,167,255,204,144,168, 75, 83, + 2, 44, 51,130, 64,184,244, 75, 36,255,108, 28,207, 8, 33, 96,219,150, 34,216,201,130,184,172,248, 55, 5, 56, 83,227, 71,141, + 42,136,169,181, 95, 53,251, 95,106,175,228,146, 76,214,140,145,112, 16,180,214, 98, 6, 55, 64,233, 38, 54,177,221,105,151, 2, + 1,181, 88, 96,220,128,101, 18, 14, 73,245,100, 18,110,234,226, 34,166,177, 69,151,222,188,190,219,194,162,253, 35, 53,136,224, +210, 89,163, 82,253,184, 73,123, 43, 92,249,198, 39,223,186,226, 12, 29, 61,249, 69, 60,168,144,157,131,206,128,154, 62,157, 36, +210,182, 21,250, 36, 38, 60, 45, 59,222,158, 71,124,253,241, 21, 29,201,248, 22, 25,169,186,239,248,226,205, 35,186,206, 99,240, + 30,235,190, 97, 95,247,178,171,218, 66,194,182,173,184,159, 38,124,247,252,162,129, 14, 12, 52, 15,171, 51,245,195,203,202,233, +190, 31, 48,140, 14,215,101, 69,231, 60,198,206, 97, 13, 17,222, 36,236, 33,194, 26,134,115, 3,158,175, 51, 96,128,119,239,222, +227,205,253, 35,230,121,198, 52,201, 78,254,235,111,191,198,208,245,248,254,195, 71, 88, 3,244,189,116,223,243,124,197, 55,223, +126,141,251,187, 7,220,157,207,216,211,134,183,111,223,130, 96, 5,178,227, 13,174,215, 11,150,101,193,195,253, 3,246,176,225, +229,114, 5,167, 8, 99, 44,238,238,238, 48, 12,187,106, 29,212, 3,155, 34,182, 53,192,121, 81,170,115, 74,136,208, 28,110,223, + 9,114, 18,140,117, 94,117, 68, 27, 16, 82,194,249, 36, 29, 52,169,204,150, 89,139, 32,239, 49,175,146, 74, 21, 82,230,151, 27, + 60,222, 11, 58,115,213,236,244,172,142,238,123,177,227,101, 26,216,188,108,165,251, 25, 7,225, 70,120,239, 97, 20, 87,155, 11, +202,190,239,241,178,111,205,232, 18,101,138, 34,130, 36, 46,138,248,174,235, 84,181,109,225,141,145,130,194, 27,124,253,225, 9, +223,191,204, 0, 25, 12,227,132,183,239,223,227,191,250,167,127,170, 5,164,129,194, 47, 36,104,101, 93,176,175,179,118,254, 50, +242, 77, 41, 34,174, 77,119, 85, 2, 69, 90, 31,117, 62, 72, 83,133, 61,115,235,171,110,226, 67, 73, 87,135, 41,137,125,182,209, +135,101,212,169,179, 6, 72,174,185,240, 83, 25,177,139,168, 43, 53,107, 80,174,171, 66,189,232,243,232, 57, 54,221,127,142, 20, + 77, 77, 71, 24, 53,148, 71,206,196,189, 4,226,196, 24,193,197,187,142, 34,136,164,146, 42, 39, 63, 47,234, 89, 71,198, 20,199, +144,120,176, 3,194,110, 96,108,106,194, 56,249,216,252,128,144,148, 27,157, 3,175,218,222,132, 33,175, 47,236, 59,156, 77,226, +240, 96,125,223,178,240, 45,175, 10,178, 93, 77,139, 28, 38, 58,228, 98,180, 77, 72,177,211, 90,131,211, 56,226,116, 62,227, 52, + 77, 24,198, 65, 32,100, 86,115, 60, 82, 77,153, 36, 83,243,207,203, 57,172,200,224,156, 61, 95,167,213, 26, 19,174,250, 15,197, +104,214, 27, 90,161, 75,197,218,215, 98,176,181, 64, 78,229, 44,229, 38, 28, 53, 39,213,165, 98,165, 38, 6,184, 9, 9, 99, 52, +160, 47,213, 94,136,219, 68,133,114,252, 3, 22,166,118, 12, 92,194, 89,242,126,183, 8,203,234,238,247,208, 13, 38,169,214, 12, + 25,189,248,143, 43, 93,163,185,218, 98,179, 48,229,139, 83, 2, 69, 83,106,124,207, 53,100,166,211, 41,129, 81,101, 35, 57,139, + 45, 68, 24,141,165,203, 86,171, 4,160, 27, 39,124,252,254, 27,173,100,185,208,205,162,126, 33, 50,127, 25,168,225, 26, 80,113, +134,181,166, 25, 47, 31, 36,232,229, 2, 71, 27, 65,202, 73, 55, 8,141, 47,189,245,234, 39, 32,153,132, 82,116, 53,136,213,186, + 87,175,146,135,164, 84,191,226,255, 71,203,157,111,246,222,233,232,245,172, 69, 72, 14, 87, 48, 85, 31, 65,109,210, 27,181, 73, +177,109, 42,174,214, 12,121,239, 77,135,194, 68, 88,239, 45,251, 56,231,165,215,221, 4, 19, 29, 11, 4,194, 33, 36,134,155, 66, +230, 80,248, 28, 88,242,116,128,225,136,207,216,193,242,174,201, 79, 9,123, 98, 60, 95,174,248,234,219,239,225,140, 81,102,129, +193, 60, 47,216, 66, 64,239,156, 68,149,190, 94, 16,173, 81, 70,188, 45,211,149,236, 26,176,100, 64, 22, 37, 44,195, 20, 43,161, +252,121,247,109,193, 23, 63,254, 99,124,245,245,215, 24, 58, 25, 25, 51, 51,130,113,146, 49,238, 28,188,101,188,125,184,131,113, + 30,142, 12,214,101,193,203,203, 11,186,206,225,195,199,103,225,177, 51,224,156,193,243,243, 11,158, 95, 47,248,252,139, 47, 0, + 0,119,167, 59, 12,157, 88,240, 78,231, 51,182, 93, 58,200,138,193, 37, 12,253,136,196, 44, 86, 47, 11, 44,123,192,101,222,225, + 44,193, 57,143,215,101, 70,239,133, 51, 63, 47,139, 92,172,234,135,151, 64, 23, 25,197,103,100,174,176,214, 71, 60, 63,191, 40, + 58,214, 23,157,129,164,197,117, 96, 85,184,131, 22,249,189,206,226,126,154,176,135, 36, 0,157,174, 71,140, 59, 78, 99, 47,132, + 71, 39, 94,241,190, 31,176,237, 91, 1,123, 24, 99, 17,195, 94, 64, 65, 98,255,233,225,140,197,235,117, 70,136, 17,119,227,136, +101,153,229,188, 48,172,240, 25, 25, 63, 59,231, 16,246, 29,227, 56,104,158,186,144,239,246,109, 7, 16, 75,186,218, 47,190,252, + 90,190,175,198,226,116, 58,227, 31,254,163,127,136, 63,250,227, 63,168,106,108,147, 9,103, 6, 91, 92, 17,194,170, 58, 8,148, + 29, 46,154, 28,109, 20, 65,167,169,130,224,130, 51,174, 90,151, 2, 76, 57,172,215,184, 81, 44,231,174, 59,199, 15,215,115,180, +228,110,232,101,142,200,135,121,160, 76,161,169, 73, 70,228,242, 60, 37, 54,176, 36,235,146, 4,192, 23, 34,232,193,202, 82,138, +232,196, 50,234, 15, 33, 8, 40, 40, 6,237,226,133,239,254,122,157,113,189,206, 18, 2,164,127, 22, 91, 26,141, 84,120,242,100, + 12,168,189,212, 83, 66,140,123,181,222, 53, 34,189,234, 80, 51,135,169,108,193,217,114,205,254,200,107, 7,249,229, 17, 73,189, +220, 54,199,153, 2, 72, 17, 5, 40,147, 9,160, 68, 77, 50,104,179,131, 78, 42,166, 28,199, 30,211,116,194, 52,141,232,251, 94, +200,131,106,229,204, 60, 10,178,212, 36, 88, 82,249,188,192, 45,153, 46, 85, 36,119,139,231, 78, 21, 72,147, 11, 71,163, 57, 36, + 38, 39,251,105,246, 69, 74, 73, 21,233,173, 51,129, 15,179,202,118, 71, 65,173, 96,186, 48, 85,168,252,153, 15, 45, 90,115, 78, + 87, 75,219, 45, 1,156,240,201,222, 53,223, 99,133,161,123,155, 31,214, 36,173,101, 49, 3,233,152, 74, 70,119,117, 68,208,138, + 84,242,129,210,254,225,152,101, 76,158,187,209,160, 80, 6, 82, 65, 86,254, 2, 5, 16, 58, 69, 36, 18, 1,206, 17, 98, 4,250, +105,194,215,191,249,149, 96, 16,141, 64, 4,152, 80,210,143,114,186, 18,183,157, 59, 9, 95,247,160,210,191,221, 61,255,208, 14, + 90, 31, 62,220, 54,159, 92,147,211,168, 85,153, 31,242,209,155,111,127,106,184,247, 13, 3,192, 28,160, 49, 5,240,118,204,243, +229,163,255,156, 74,117,101, 74, 84,108, 45, 95,233, 72,241, 69,219,121,215, 12,117,131,163, 38, 34, 63,216, 38, 91,128,184,177, +175, 81,237, 52, 76,166,202, 48, 29, 64, 52,169,104,235,168,166,192, 29,214, 1, 37, 15, 79, 39,240,242, 25,223,223,159,240,253, +183, 11,146,113, 66, 89,131,196,154,130, 32, 65, 45, 41,226,195,101,199,203,245,138,199,251, 59, 32, 49,182, 16,241,253,211,139, +136,197,152,225,201, 96,217, 54, 76,195, 0,198, 19, 72,253, 2, 2,150,136, 13,228,174,218, 23,101, 20, 27,165,179, 36,150, 11, +205,202,161,242,102,236,113,133,184, 44, 4,245, 26,209, 91,241,132,191,123,124,131,174,239,241,241,227,135,178,199, 93,150, 25, + 97,223,132, 82, 5,224,229,227, 71,196, 40,172,132,151,215, 23,196, 16, 21,121,218, 99,232, 59,204,243, 21,206,121,140,195,136, +125,223, 48,207, 87,244, 93, 7,211, 13,232, 7, 25,223,191, 92,102,204,243, 11,134, 65, 8,107,151, 57,160,243, 61, 12, 89, 92, +174, 87,204,235,138,135,251, 59,116,125,143,235,117, 6,115, 66,231, 28,190,251,230, 43, 12,195,136,211,105, 66,116, 14, 86,139, +141,160, 59,210,117, 93, 37,247,125,232,177,204, 11,134,161,211,231,214,160,239,125, 89, 91, 25, 34, 56,239, 48,142,163, 64, 87, +182,173, 48, 1,122,141, 75,221,247, 13, 93,215,233,190,146,133,207,207,172,123,124, 96, 58, 77, 58,174,148,175, 66,231, 59, 24, +107, 68,255, 18,165,179, 52,106, 11,204,158,243, 77,109,109,196,140,203,178,226,171,143,146, 29,239,188, 71, 55, 76,248, 87,255, +234,191, 69,215, 75, 40,140,209, 81, 57,235,103, 29,195,142, 24, 54,181,118, 25,141, 42,181, 26, 28, 98, 75, 54, 68,217,229, 54, + 54,173,164, 5, 59, 35, 53, 87,114, 51, 51,107,189,201,121, 21,169, 96,173,140,201,109,215,113,249,204, 44,204,114, 62, 30,234, + 7,103, 72,163,137,169, 74,232, 58,186,206,123,227, 79,204,168,186,162, 76, 48,240, 22, 96,223, 21,218,156,136, 73, 69, 88,233, +172,195,208,247,184, 92, 46,152, 53,138, 54,231,131, 71,212, 61,184,105, 32, 88,116, 72,227,140,106,235, 44, 72,205,106,183, 51, +169, 62,211,220,118,243, 92, 58,245,140,118, 37,157, 6, 9,172, 69, 49,226,205,253, 20, 82, 27, 38,211, 30,118,185, 73, 18,145, +102, 55,116,152,198, 9,125,223,193,251, 14, 67, 47, 84, 70,175,206,136,252, 89, 23,141, 1, 26, 10,160, 22, 50, 73, 87, 8,172, + 23,113,105,102, 96, 42,244,134,184,161,230,153,218, 44,149, 60,149,218,176, 74,243,151,157, 79,183, 7, 56,234, 90,178, 81,138, +103,250, 94,227, 13, 44,119, 5, 27, 61,163, 19,192,166,126, 38,142, 63,185,212,219,188,108,194, 77,152,182,118,145, 71,144, 74, +245, 78,183,163,218, 86, 96, 85, 35,215,228, 80, 79, 37,228, 37,179, 2,200,164,195,133, 36, 76,143, 74, 54,139, 49,192,102,214, +121,254,198,167, 4,219, 59,236,161, 38,152,177,122, 58,189,235,240,244,221, 87,170, 18,149, 89,176, 88, 70,160,222,244, 28,180, +118,196, 24,186, 12,104,200, 21, 86,202,128,156,166, 34,167, 74,101, 67,195,253,253,161, 45, 27, 55,190, 13,110, 48,169,124, 99, +233,162,188, 40,105, 4,143,148,184, 92,156,121,111, 82, 30, 92,226,195, 28,165,157,116,151,169,129, 57, 86,116,212,250,237, 42, +230, 77, 69, 25,230,104, 87,253, 29,118,245, 92,164,136,106,150, 63,249,181,159,160,255,111,237,238,135,127,220,116,229,204, 37, +246,165,208,244,117, 76,119,119, 30,241,252,212, 1, 97,198,170, 15,245,103,111, 31,241,229,215,223,224,139, 55,247,248,143,191, +252, 74,209,190,114, 56,239, 49,130, 82,196,219,251,179, 36,138,177, 8,212,166,113,196, 30, 68,196,181,110, 59, 34,234,184,194, + 84, 94,150,106, 57,184,216,172,126,251,229,223,225,241, 65, 70,234, 68, 22, 15,167, 9,175,243, 12,111, 29,140,115,232,188,197, +249,116, 66, 2, 48, 77,247, 0, 25,124,247,253, 7, 12,189,199,186,172,240,190, 3, 57,194,229,122, 21,232,204,178,192,251, 14, + 93,103,113,185,188,200,232,223,245,112,214, 98,232, 59,172,235, 44,162, 53,103,177,109,139,196,156, 2,120,189, 94,241,221,135, + 39,188,125,124, 35, 10,115,103,113,217, 25,151,235,130,196,140,135,251, 71,112,218, 1, 36, 76,211,132,243,121,194,186,110,248, +230,219,239, 50,185, 2, 32,131,211, 52,161, 27,122, 92,231, 89,158,233,141,241,242,242, 10,239, 4,199, 57, 78,131,112,196, 99, +196,227,195,189, 10,134, 12,156,239,176,110, 27,214,117,145, 72, 88, 13,152,200, 10,232, 60,246,117,206, 73, 1, 14,104, 82, 93, +237,212,134, 65,125,232,228, 96,173,195, 30, 54,144,245, 8, 49, 34, 6, 9, 12, 73, 33, 98, 24,196, 5,224,125,167, 98, 53, 25, + 37,239,121,180,156, 18,126,243,221, 71, 44,187,144,242,250,113,196,227,219,119,248,111,254,217,159, 41, 39,220,169, 64,201,222, + 28, 97, 92,198,171,100, 0, 67,174, 76, 20, 64,234,227,230,155, 51, 45,219, 74, 83,157,156,101, 13, 80,246,100, 31, 52,215,153, +213,157,106,186, 98,166,115,230, 56, 4,232, 52, 50, 79, 53,243,227,159,184,105,144,138, 33,134,138,114,190,148,209, 68, 40,255, +249, 60,254,252,129,211,231, 40,188,229,226,217,102,181,204, 89, 3,233, 98,187, 14,126, 89, 68, 28, 57,109,152,151, 21,219,182, +105, 16,142, 45, 62,116,153,202, 80, 67,192,228,134, 2, 87, 27,130,146,184,153, 20, 42, 5, 46, 73,144,196,172, 1,147, 92,138, + 39,166,170, 93, 40,175, 52, 49, 18,213,184,238, 98, 33,108,106,135, 66,151, 51, 6,125,231,209,119, 29,166,105,194, 48, 78,186, + 10,114,240,153, 99,111,141, 94,224, 92, 32, 99,217,253, 69, 68,122,127, 9,131, 32, 54, 2, 54,206, 86,202, 28,242,197, 77, 81, + 71,166, 8, 52,115,211, 40,171, 11,106, 48,174,181, 81, 61,222,154, 40, 83, 24,174,177, 33, 7, 54,138,244, 96, 13, 79,224,102, + 13,155,202,197,158, 87, 17, 12,151,133, 35,212,180,151, 53,192,133, 63, 77, 27, 99, 46, 94,192,246, 50,105, 17,130,181,184, 76, +250,125,206, 12,223, 6, 55, 90,222,180, 36,248, 18,110,131, 62, 26,210,152, 62, 48, 28,211,225,117, 36,107, 48,144,129, 5, 97, + 7,171, 15,180,190,102,102,198,250,250,172, 85, 86, 42, 34, 19,226, 58, 73,232,189,197,182,199,242,223,181, 68,152,166,169, 60, +184,220,142,116,210,113, 28,223,142,153, 11,132,167,233, 62,139,176, 91,149,126,101, 47,206,166, 73, 35,106,119,115,181, 52,207, + 90,130,140,127,205, 59, 54, 82,142,124, 5,220,224,152, 87,223,200,244,164, 6,160,134,125,124, 8, 95,195,145,234, 75,159,224, +241,126, 0, 46,167, 99, 37,170, 73,114,116,168,224,110,214, 21,133,153,123,112,202,113,139,141,188, 37,244,221, 40,240,243, 10, + 65, 3,136, 97,173, 69,220, 3, 28, 49,254,254,155,111,145,246,136,191,159,197, 82,245,217,195, 25,145, 25,215, 69, 2, 64,214, + 16,144,124, 77,108,234,189,199,117,158,225,157,195,221, 56, 97, 93, 63, 54, 56, 37,106, 48,191, 90,156,153,138, 69, 54,214,224, +242,252, 44, 17,155,134,240,241,245,130,222, 81, 73,145,251,209, 23, 63,198,120,154, 68, 21,190,205,154, 28,103,149,203, 13,188, +190,190, 96,143, 1,231,113,192,249,254, 1,206, 95, 96,173,195,211,243, 11,188,235,176,199, 0,230,136,105, 58, 99,158,103,172, +187,196, 51,238, 33, 8,123,187,115, 88,150, 13,214,120,156, 39,143,231,151,139,166,215,109,136, 73, 34, 99,167,113, 68,138, 34, + 50, 27,166, 17,206,202,174,121,217, 3,156, 33, 77, 91, 19, 47,186,181,132,235,199, 43, 98,130,116,235,251,142, 97,236,133,207, +192, 12,239, 59,244, 58, 46,119, 58,133, 16, 94,250, 2, 75, 6,157,247,120,184,191,135,243, 94,152,234, 73, 56,232, 34,202, 75, +229, 18,239,251, 30, 41,185,198,175, 29, 36, 36, 71, 15,185,148, 34, 58,223,107, 51,103, 65,185,168, 24,123, 13,102,146,113,247, +190,111, 34,250, 98, 70, 72, 17,151,235,140,223,126,255,172,107, 36,135, 97, 58,225, 79,255,236,159,224,179,247,239, 84,252, 37, +197, 93,177,122,106,104,120, 12, 59,246,109, 69, 12, 50,153, 17, 36,167,205,115, 36, 21, 95,241,113,178, 5, 62,160, 87, 77, 83, +245,102, 59, 45, 84,208, 85, 20,239, 58,149, 40, 76,243, 50,110, 77, 53,100,165, 60,255,220,136,158,202,147, 95,186,189,131,207, +185,193, 67,203,235,212,238, 17,166, 22,251,217,209, 83,220, 53, 58, 54,215,125, 64, 94,249,137, 69, 57,202,148, 20, 22,182, 51, + 10, 74,138,240,126,197, 52, 72,225,187,172,171,252,117, 89,181,184,227, 28,118, 93,254,108,229,124, 81, 81,153,201,158,121,176, +140,170,139,227,232, 32, 13,110,240,237, 36,121, 12,133,238,103,148, 21, 65, 69, 99, 67, 12, 21, 68,155, 82,148, 73,190,184,197, +121, 26, 49,158, 70,140,227, 4,239,188, 76,108,244,130,207,169,118, 49,198,122,161,235,247, 51,103,153, 27,141, 85, 46,239, 17, +231,240, 28,253,115, 26, 40,200, 72, 97, 71, 33,213,236,118, 97, 37,203,231, 82,214,188, 84,113,188,164, 43,203,122,115,225,184, + 40,109, 52, 87,183, 46,129,155,184,236,214, 38, 78, 68,141, 38,161,229,200, 16, 92,254,226,148,156,244,163, 3,235,176,108,205, +176,149, 3, 32,134,169,248,172,185, 17, 62,148,125, 81, 6,202, 20,244, 44,201,197,212, 78, 3,202, 24,254,216, 20, 38, 22,196, +172,129, 65, 10, 59,114,120, 87, 72, 9, 29, 73,134,110,100,137, 41, 98,107, 64, 26,112, 0,227,196,246, 67, 22,137,131, 62, 12, +234, 71, 85,112, 13,113,194, 30, 18,182, 24, 11, 77,142,200, 8,200,134,242, 7,196, 13, 61,173, 17, 13,222, 92,119,121,175,198, +224, 31, 96,209, 72,144, 0,146, 62,248,134, 75,230,121, 21, 68,144, 50,237, 91,171,184, 94,209, 42, 78,201, 86,138,178, 95, 41, + 21, 42,110, 12,230,233,134,189,124,243,146, 62,233,150,241,137,118,128, 75,234, 82,139,254, 43,196,253,170,154, 47, 22,185, 84, +166, 9,141,235,177,153, 74, 16,114, 38, 83,161, 60,105,129, 83,187,127,210,245, 74,187,159,212,231,133,129,135,251, 19, 94,190, + 95, 65,206, 97,112, 29,188,149,135,127, 89, 87,188, 57,245,216, 99,196, 72,157,218, 97,228, 66,142, 49,161,235,123,108,235,138, +151,235, 21,247,119,103, 16, 8, 99,191, 23,184, 12,171,221, 49, 31, 85,198,136,131,130,149,201, 77, 12, 92, 47,175,184,187,127, +196,247, 31,190,199, 30,118,220,157,206,136, 97, 71, 50,192,224, 58,188, 92, 94,241,244,244, 1,151,121,197,195,155,183,112, 36, +234,236,105, 58,225,155, 15,207,232,141, 8,255,172,235,240,244,244,132,151,151, 23,156,239, 78, 24, 71,143,176, 71, 56,219,193, + 90,135,109, 89,177,111, 43,206,211, 9,206,117,178,127,118, 6, 38, 68,113, 98, 88, 9, 78, 57, 77, 50,158,222,157,197,188,174, +120,115,186, 71,136, 59,214,117,197,249, 52, 97, 91, 23, 44, 58,157, 72, 49,130, 92,135,126, 56, 97, 15, 9, 93,151,192,113, 71, + 76,192, 48, 76,112,214,233, 14, 91, 2, 91, 0, 96, 24, 6, 25,115,111, 59,182,125,195,178, 73,110,251,208,119,112,157,193,221, +116,130,247, 14,167,243, 25, 41, 37, 92, 46, 87,172,155,144,176,186,190, 23, 14,124,223, 99,219, 86, 24,146,180,180,231,167,143, + 24,198, 81,253,225, 50,254,116,222, 23,204,167,248,212, 93, 65,143, 2, 34, 20,164, 20,209,211,128,249, 58,195,146,193,111,191, +253, 30, 31, 47,179, 36,231,245, 3,166,243, 61,254,229,191,248,175, 75,231,149, 87,121,178,159, 23,126,124,216, 54, 65,210,238, + 27,226,190,169,157,203,149, 29,121,241,123,183,221, 45, 83, 81,158,147, 94, 52,141, 10,166, 62,187, 69,217,206, 7,255,116,182, +141,229, 21, 90, 22, 11,230, 21, 90, 25,211, 82,195, 93, 65,106, 28, 42,141,224, 46,229, 48, 39, 42,226, 99,163, 59,231,210,137, +167,212,224, 98, 51, 68,172, 88,154,234,101,206, 71,132,107,158, 16,144, 22,205,214, 37,120,133, 12,141,123,144,184, 85, 0,203, +178, 98,153, 23,204,203,130,117, 89, 75, 3, 37,103, 41,234,197, 77, 0,145, 92,200, 92,206, 80, 17,121,149,220,120,161, 85,201, +123,108, 80,247,244,196,141,237,171, 49,181, 67,198,203, 45,102,186, 31,122,156, 78, 98,213,236,122, 41, 72, 51,149,208,123, 95, +138,198,164,151,185, 85,204,172, 81,125, 14, 25, 91,156, 16,114,174,138,107,132, 72, 16, 5,156, 71,200, 44,162, 70,151,169,142, +169, 78,166,140, 49,101, 93,154,184, 78, 94, 40,107,139, 82, 5,138, 29,214, 40, 55,119,135,249,129,104, 14,195,183, 35, 82, 58, +124, 39,184,209, 71,181,238, 96, 67,140,255, 23,177, 72,216, 51, 12, 46,249,141, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, +}; diff --git a/source/blender/editors/include/ED_keyframes_draw.h b/source/blender/editors/include/ED_keyframes_draw.h index ec74ea6123b..10ddf6baaeb 100644 --- a/source/blender/editors/include/ED_keyframes_draw.h +++ b/source/blender/editors/include/ED_keyframes_draw.h @@ -100,7 +100,7 @@ typedef enum eKeyframeShapeDrawOpts { } eKeyframeShapeDrawOpts; /* draw simple diamond-shape keyframe (with OpenGL) */ -void draw_keyframe_shape(float x, float y, float xscale, float hsize, short sel, short key_type, short mode); +void draw_keyframe_shape(float x, float y, float xscale, float hsize, short sel, short key_type, short mode, float alpha); /* ******************************* Methods ****************************** */ diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h index ff4ec92562f..6dc2fe04227 100644 --- a/source/blender/editors/include/ED_keyframing.h +++ b/source/blender/editors/include/ED_keyframing.h @@ -209,29 +209,36 @@ short ANIM_keyingset_context_ok_poll(struct bContext *C, struct KeyingSet *ks); /* ************ Drivers ********************** */ +/* Flags for use by driver creation calls */ +typedef enum eCreateDriverFlags { + CREATEDRIVER_WITH_DEFAULT_DVAR = (1<<0), /* create drivers with a default variable for nicer UI */ +} eCreateDriverFlags; + +/* -------- */ + /* Returns whether there is a driver in the copy/paste buffer to paste */ short ANIM_driver_can_paste(void); /* Main Driver Management API calls: * Add a new driver for the specified property on the given ID block */ -short ANIM_add_driver(struct ID *id, const char rna_path[], int array_index, short flag, int type); +short ANIM_add_driver(struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag, int type); /* Main Driver Management API calls: * Remove the driver for the specified property on the given ID block (if available) */ -short ANIM_remove_driver(struct ID *id, const char rna_path[], int array_index, short flag); +short ANIM_remove_driver(struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag); /* Main Driver Management API calls: * Make a copy of the driver for the specified property on the given ID block */ -short ANIM_copy_driver(struct ID *id, const char rna_path[], int array_index, short flag); +short ANIM_copy_driver(struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag); /* Main Driver Management API calls: * Add a new driver for the specified property on the given ID block or replace an existing one * with the driver + driver-curve data from the buffer */ -short ANIM_paste_driver(struct ID *id, const char rna_path[], int array_index, short flag); +short ANIM_paste_driver(struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag); /* ************ Auto-Keyframing ********************** */ /* Notes: diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index fc8e0ca98a1..fdb930e5f02 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -271,7 +271,7 @@ typedef void (*uiMenuHandleFunc)(struct bContext *C, void *arg, int event); * * Functions used to create popup menus. For more extended menus the * uiPupMenuBegin/End functions can be used to define own items with - * the uiItem functions inbetween. If it is a simple confirmation menu + * the uiItem functions in between. If it is a simple confirmation menu * or similar, popups can be created with a single function call. */ typedef struct uiPopupMenu uiPopupMenu; diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 4c35b3cf5c8..2537b89d791 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -4264,12 +4264,13 @@ static int ui_but_menu(bContext *C, uiBut *but) RNA_string_set(&ptr_props, "doc_id", buf); uiItemFullO(layout, "WM_OT_doc_view", "View Docs", ICON_NULL, ptr_props.data, WM_OP_EXEC_DEFAULT, 0); - - WM_operator_properties_create(&ptr_props, "WM_OT_doc_edit"); + /* XXX inactive option, not for public! */ +/* WM_operator_properties_create(&ptr_props, "WM_OT_doc_edit"); RNA_string_set(&ptr_props, "doc_id", buf); RNA_string_set(&ptr_props, "doc_new", RNA_property_description(but->rnaprop)); uiItemFullO(layout, "WM_OT_doc_edit", "Submit Description", ICON_NULL, ptr_props.data, WM_OP_INVOKE_DEFAULT, 0); + */ } else if (but->optype) { WM_operator_py_idname(buf, but->optype->idname); @@ -4829,7 +4830,7 @@ static void button_activate_init(bContext *C, ARegion *ar, uiBut *but, uiButtonA /* we disable auto_open in the block after a threshold, because we still * want to allow auto opening adjacent menus even if no button is activated - * inbetween going over to the other button, but only for a short while */ + * in between going over to the other button, but only for a short while */ if(type == BUTTON_ACTIVATE_OVER && but->block->auto_open) if(but->block->auto_open_last+BUTTON_AUTO_OPEN_THRESH < PIL_check_seconds_timer()) but->block->auto_open= 0; diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index d22106fc6a1..1da50e0a9bb 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1082,28 +1082,35 @@ void ui_searchbox_free(bContext *C, ARegion *ar) } /* sets red alert if button holds a string it can't find */ +/* XXX weak: search_func adds all partial matches... */ void ui_but_search_test(uiBut *but) { uiSearchItems *items= MEM_callocN(sizeof(uiSearchItems), "search items"); - char *strp[2], str[256]; + int x1; - items->maxitem= 1; + /* setup search struct */ + items->maxitem= 10; items->maxstrlen= 256; - strp[0]= str; - items->names= strp; + items->names= MEM_callocN(items->maxitem*sizeof(void *), "search names"); + for(x1=0; x1<items->maxitem; x1++) + items->names[x1]= MEM_callocN(but->hardmax+1, "search names"); - /* changed flag makes search only find name */ - but->changed= TRUE; but->search_func(but->block->evil_C, but->search_arg, but->drawstr, items); - but->changed= 0; + /* only redalert when we are sure of it, this can miss cases when >10 matches */ if(items->totitem==0) uiButSetFlag(but, UI_BUT_REDALERT); - else if(items->totitem==1) { - if(strcmp(but->drawstr, str)!=0) + else if(items->more==0) { + for(x1= 0; x1<items->totitem; x1++) + if(strcmp(but->drawstr, items->names[x1])==0) + break; + if(x1==items->totitem) uiButSetFlag(but, UI_BUT_REDALERT); } - + + for(x1=0; x1<items->maxitem; x1++) + MEM_freeN(items->names[x1]); + MEM_freeN(items->names); MEM_freeN(items); } diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 665ed433cf7..14883400359 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -450,7 +450,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str } /* delete button */ - if(id && (flag & UI_ID_DELETE)) { + if(id && (flag & UI_ID_DELETE) && (RNA_property_flag(template->prop) & PROP_NEVER_UNLINK)==0) { if(unlinkop) { but= uiDefIconButO(block, BUT, unlinkop, WM_OP_INVOKE_REGION_WIN, ICON_X, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL); /* so we can access the template from operators, font unlinking needs this */ @@ -494,8 +494,6 @@ static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, const flag |= UI_ID_ADD_NEW; if(openop) flag |= UI_ID_OPEN; - if(unlinkop && strcmp(unlinkop, "None") == 0) - flag &= ~UI_ID_DELETE; type= RNA_property_pointer_type(ptr, prop); template->idlb= which_libbase(CTX_data_main(C), RNA_type_to_ID_code(type)); diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c index 163bd8e7d2f..8faf528eb67 100644 --- a/source/blender/editors/interface/view2d.c +++ b/source/blender/editors/interface/view2d.c @@ -1073,7 +1073,7 @@ static void step_to_grid(float *step, int *power, int unit) /* for frames, we want 1.0 frame intervals only */ if (unit == V2D_UNIT_FRAMES) { rem = 1.0f; - *step = 2.0f; /* use 2 since there are grid lines drawn inbetween, this way to get 1 line per frane */ + *step = 2.0f; /* use 2 since there are grid lines drawn in between, this way to get 1 line per frane */ } /* prevents printing 1.0 2.0 3.0 etc */ diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c index 2a66e95bc77..5f7ccd1441b 100644 --- a/source/blender/editors/mesh/editmesh.c +++ b/source/blender/editors/mesh/editmesh.c @@ -380,6 +380,7 @@ EditFace *addfacelist(EditMesh *em, EditVert *v1, EditVert *v2, EditVert *v3, Ed efa->mat_nr= example->mat_nr; efa->flag= example->flag; CustomData_em_copy_data(&em->fdata, &em->fdata, example->data, &efa->data); + CustomData_em_validate_data(&em->fdata, efa->data, efa->v4 ? 4 : 3); } else { efa->mat_nr= em->mat_nr; diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c index 16f629f0450..5d6ed426152 100644 --- a/source/blender/editors/mesh/editmesh_add.c +++ b/source/blender/editors/mesh/editmesh_add.c @@ -1059,7 +1059,7 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se vec[2]= 0.0f; eve= addvertlist(em, vec, NULL); eve->f= 1+2+4; - addedgelist(em, eve->prev, eve, NULL); + if(a < tot -1) addedgelist(em, eve->prev, eve, NULL); } /* extrude and translate */ vec[0]= vec[2]= 0.0; @@ -1069,7 +1069,17 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se extrudeflag_vert(obedit, em, 2, nor, 0); // nor unused translateflag(em, 2, vec); } + + /* and now do imat */ + eve= em->verts.first; + while(eve) { + if(eve->f & SELECT) { + mul_m4_v3(mat,eve->co); + } + eve= eve->next; + } break; + case PRIM_UVSPHERE: /* UVsphere */ /* clear all flags */ diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index 7c3262f3747..d00b5ac6070 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -1519,6 +1519,7 @@ static void facecopy(EditMesh *em, EditFace *source, EditFace *target) if (target->v4) interp_weights_face_v3( w[3],v1, v2, v3, v4, target->v4->co); + CustomData_em_validate_data(&em->fdata, target->data, target->v4 ? 4 : 3); CustomData_em_interp(&em->fdata, &source->data, NULL, (float*)w, 1, target->data); } diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c index e808b64aaeb..480f42f2973 100644 --- a/source/blender/editors/mesh/loopcut.c +++ b/source/blender/editors/mesh/loopcut.c @@ -408,7 +408,8 @@ static int ringcut_invoke (bContext *C, wmOperator *op, wmEvent *evt) lcd->eed = edge; ringsel_find_edge(lcd, 1); } - + ED_area_headerprint(CTX_wm_area(C), "Select a ring to be cut, use mouse-wheel or page-up/down for number of cuts"); + return OPERATOR_RUNNING_MODAL; } @@ -428,6 +429,7 @@ static int ringcut_modal (bContext *C, wmOperator *op, wmEvent *event) ringsel_finish(C, op); ringsel_exit(op); + ED_area_headerprint(CTX_wm_area(C), NULL); return OPERATOR_FINISHED; } @@ -439,6 +441,7 @@ static int ringcut_modal (bContext *C, wmOperator *op, wmEvent *event) if (event->val == KM_RELEASE) { /* cancel */ ED_region_tag_redraw(lcd->ar); + ED_area_headerprint(CTX_wm_area(C), NULL); return ringcut_cancel(C, op); } diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 63c9e394705..5f8996f23fe 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -655,9 +655,11 @@ static int parent_set_exec(bContext *C, wmOperator *op) create_vgroups_from_armature(op->reports, scene, ob, par, ARM_GROUPS_NAME, 0); else if(partype == PAR_ARMATURE_ENVELOPE) create_vgroups_from_armature(op->reports, scene, ob, par, ARM_GROUPS_ENVELOPE, 0); - else if(partype == PAR_ARMATURE_AUTO) + else if(partype == PAR_ARMATURE_AUTO) { + WM_cursor_wait(1); create_vgroups_from_armature(op->reports, scene, ob, par, ARM_GROUPS_AUTO, 0); - + WM_cursor_wait(0); + } /* get corrected inverse */ ob->partype= PAROBJECT; what_does_parent(scene, ob, &workob); diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 32e20100c15..df5576c778d 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -224,7 +224,7 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op) int sizex, sizey; short is_view_context= RNA_boolean_get(op->ptr, "view_context"); const short is_animation= RNA_boolean_get(op->ptr, "animation"); - const short is_write_still= RNA_boolean_get(op->ptr, "view_context"); + const short is_write_still= RNA_boolean_get(op->ptr, "write_still"); /* ensure we have a 3d view */ @@ -449,7 +449,7 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op) static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *event) { OGLRender *oglrender= op->customdata; - + int anim= RNA_boolean_get(op->ptr, "animation"); int ret; switch(event->type) { @@ -469,7 +469,13 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *even /* run first because screen_opengl_render_anim_step can free oglrender */ WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, oglrender->scene); - ret= screen_opengl_render_anim_step(C, op); + if(anim == 0) { + screen_opengl_render_apply(op->customdata); + screen_opengl_render_end(C, op->customdata); + return OPERATOR_FINISHED; + } + else + ret= screen_opengl_render_anim_step(C, op); /* stop at the end or on error */ if(ret == 0) { @@ -481,32 +487,24 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *even static int screen_opengl_render_invoke(bContext *C, wmOperator *op, wmEvent *event) { + OGLRender *oglrender; int anim= RNA_boolean_get(op->ptr, "animation"); if(!screen_opengl_render_init(C, op)) return OPERATOR_CANCELLED; - if(!anim) { - /* render image */ - screen_opengl_render_apply(op->customdata); - screen_opengl_render_end(C, op->customdata); - screen_set_image_output(C, event->x, event->y); - - return OPERATOR_FINISHED; - } - else { - OGLRender *oglrender= op->customdata; - + if(anim) { if(!screen_opengl_render_anim_initialize(C, op)) return OPERATOR_CANCELLED; - - screen_set_image_output(C, event->x, event->y); - - WM_event_add_modal_handler(C, op); - oglrender->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f); - - return OPERATOR_RUNNING_MODAL; } + + oglrender= op->customdata; + screen_set_image_output(C, event->x, event->y); + + WM_event_add_modal_handler(C, op); + oglrender->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f); + + return OPERATOR_RUNNING_MODAL; } /* executes blocking render */ diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 3274e654c15..d34ef74b66a 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -278,8 +278,19 @@ static void graph_panel_key_properties(const bContext *C, Panel *pa) if (bezt->ipo == BEZT_IPO_BEZ) uiItemR(col, &bezt_ptr, "handle_right", 0, NULL, ICON_NULL); } - else - uiItemL(layout, "No active keyframe on F-Curve", ICON_NULL); + else { + if ((fcu->bezt == NULL) && (fcu->modifiers.first)) { + /* modifiers only - so no keyframes to be active */ + uiItemL(layout, "F-Curve only has F-Modifiers", ICON_NULL); + uiItemL(layout, "See Modifiers panel below", ICON_INFO); + } + else if (fcu->fpt) { + /* samples only */ + uiItemL(layout, "F-Curve doesn't have any keyframes as it only contains sampled points", ICON_NULL); + } + else + uiItemL(layout, "No active keyframe on F-Curve", ICON_NULL); + } MEM_freeN(ale); } @@ -310,18 +321,19 @@ static void do_graph_region_driver_buttons(bContext *C, void *UNUSED(arg), int e } /* callback to remove the active driver */ -static void driver_remove_cb (bContext *UNUSED(C), void *ale_v, void *UNUSED(arg)) +static void driver_remove_cb (bContext *C, void *ale_v, void *UNUSED(arg)) { bAnimListElem *ale= (bAnimListElem *)ale_v; ID *id= ale->id; FCurve *fcu= ale->data; + ReportList *reports = CTX_wm_reports(C); /* try to get F-Curve that driver lives on, and ID block which has this AnimData */ if (ELEM(NULL, id, fcu)) return; /* call API method to remove this driver */ - ANIM_remove_driver(id, fcu->rna_path, fcu->array_index, 0); + ANIM_remove_driver(reports, id, fcu->rna_path, fcu->array_index, 0); } /* callback to add a target variable to the active driver */ diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index bd97e1e4a81..d5450a1369c 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -3691,7 +3691,7 @@ static void draw_actuator_armature(uiLayout *layout, PointerRNA *ptr) bArmatureActuator *aa = (bArmatureActuator *) act->data; Object *ob = (Object *)ptr->id.data; PointerRNA pose_ptr, pchan_ptr; - PropertyRNA *bones_prop; + PropertyRNA *bones_prop = NULL; if(ob->type != OB_ARMATURE){ uiItemL(layout, "Actuator only available for armatures", ICON_NULL); diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index e6028735d52..eebca82b8d1 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -141,7 +141,7 @@ static void nla_action_draw_keyframes (AnimData *adt, bAction *act, View2D *v2d, * - size is 3.0f which is smaller than the editable keyframes, so that there is a distinction */ for (ak= keys.first; ak; ak= ak->next) - draw_keyframe_shape(ak->cfra, y, xscale, 3.0f, 0, ak->key_type, KEYFRAME_SHAPE_FRAME); + draw_keyframe_shape(ak->cfra, y, xscale, 3.0f, 0, ak->key_type, KEYFRAME_SHAPE_FRAME, 1.0f); /* free icons */ BLI_dlrbTree_free(&keys); diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 0e7fb90a115..9019b1815a4 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -662,6 +662,9 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN UI_ThemeColorShade(color_id, -20); else UI_ThemeColor(color_id); + + if(node->flag & NODE_MUTED) + UI_ThemeColorBlend(color_id, TH_REDALERT, 0.5f); uiSetRoundBox(3); uiRoundBox(rct->xmin, rct->ymax-NODE_DY, rct->xmax, rct->ymax, BASIS_RAD); diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index c0125f67d87..7db20966a8b 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1935,12 +1935,12 @@ static int node_read_fullsamplelayers_exec(bContext *C, wmOperator *UNUSED(op)) Scene *curscene= CTX_data_scene(C); Render *re= RE_NewRender(curscene->id.name); -// WM_cursor_wait(1); + WM_cursor_wait(1); RE_MergeFullSample(re, bmain, curscene, snode->nodetree); snode_notify(C, snode); -// WM_cursor_wait(0); + WM_cursor_wait(0); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 295bf15f840..57d37059da8 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -3924,7 +3924,7 @@ enum { /* Utilities ---------------------------------- */ /* Recursively iterate over tree, finding and working on selected items */ -static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, short mode) +static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, ReportList *reports, short mode) { TreeElement *te; TreeStoreElem *tselem; @@ -3949,6 +3949,7 @@ static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, short m /* only if ID and path were set, should we perform any actions */ if (id && path) { + short dflags = CREATEDRIVER_WITH_DEFAULT_DVAR; int arraylen = 1; /* array checks */ @@ -3970,13 +3971,13 @@ static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, short m case DRIVERS_EDITMODE_ADD: { /* add a new driver with the information obtained (only if valid) */ - ANIM_add_driver(id, path, array_index, flag, DRIVER_TYPE_PYTHON); + ANIM_add_driver(reports, id, path, array_index, dflags, DRIVER_TYPE_PYTHON); } break; case DRIVERS_EDITMODE_REMOVE: { /* remove driver matching the information obtained (only if valid) */ - ANIM_remove_driver(id, path, array_index, flag); + ANIM_remove_driver(reports, id, path, array_index, dflags); } break; } @@ -3991,13 +3992,13 @@ static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, short m /* go over sub-tree */ if ((tselem->flag & TSE_CLOSED)==0) - do_outliner_drivers_editop(soops, &te->subtree, mode); + do_outliner_drivers_editop(soops, &te->subtree, reports, mode); } } /* Add Operator ---------------------------------- */ -static int outliner_drivers_addsel_exec(bContext *C, wmOperator *UNUSED(op)) +static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op) { SpaceOops *soutliner= CTX_wm_space_outliner(C); @@ -4006,10 +4007,10 @@ static int outliner_drivers_addsel_exec(bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* recursively go into tree, adding selected items */ - do_outliner_drivers_editop(soutliner, &soutliner->tree, DRIVERS_EDITMODE_ADD); + do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_ADD); /* send notifiers */ - WM_event_add_notifier(C, ND_KEYS, NULL); // XXX + WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX return OPERATOR_FINISHED; } @@ -4032,7 +4033,7 @@ void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot) /* Remove Operator ---------------------------------- */ -static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *UNUSED(op)) +static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op) { SpaceOops *soutliner= CTX_wm_space_outliner(C); @@ -4041,7 +4042,7 @@ static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* recursively go into tree, adding selected items */ - do_outliner_drivers_editop(soutliner, &soutliner->tree, DRIVERS_EDITMODE_REMOVE); + do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_REMOVE); /* send notifiers */ WM_event_add_notifier(C, ND_KEYS, NULL); // XXX diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index d98513e5509..eb20ce6ed3c 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2203,6 +2203,7 @@ void SEQUENCER_OT_view_zoom_ratio(wmOperatorType *ot) /* identifiers */ ot->name= "Sequencer View Zoom Ratio"; ot->idname= "SEQUENCER_OT_view_zoom_ratio"; + ot->description = "Change zoom ratio of sequencer preview"; /* api callbacks */ ot->exec= sequencer_view_zoom_ratio_exec; diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index 6fd0b414c08..9a1fc201564 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -83,27 +83,61 @@ static void time_draw_sfra_efra(Scene *scene, View2D *v2d) #define CACHE_DRAW_HEIGHT 3.0f -static void time_draw_cache(SpaceTime *stime) +static void time_draw_cache(SpaceTime *stime, Object *ob) { - SpaceTimeCache *stc; + PTCacheID *pid; + ListBase pidlist; + SpaceTimeCache *stc = stime->caches.first; float yoffs=0.f; - if (!(stime->cache_display & TIME_CACHE_DISPLAY)) + if (!(stime->cache_display & TIME_CACHE_DISPLAY) || (!ob)) return; - - for (stc= stime->caches.first; stc; stc=stc->next) { + + BKE_ptcache_ids_from_object(&pidlist, ob, NULL, 0); + + /* iterate over pointcaches on the active object, + * add spacetimecache and vertex array for each */ + for(pid=pidlist.first; pid; pid=pid->next) { float col[4], *fp; - int i, sta = stc->cache->startframe, end = stc->cache->endframe; + int i, sta = pid->cache->startframe, end = pid->cache->endframe; int len = (end - sta + 1)*4; - if(!stc->array || MEM_allocN_len(stc->array) != len*2*sizeof(float)) { - stc->len = len; - stc->array = MEM_callocN(stc->len*2*sizeof(float), "SpaceTimeCache array"); + switch(pid->type) { + case PTCACHE_TYPE_SOFTBODY: + if (!(stime->cache_display & TIME_CACHE_SOFTBODY)) continue; + break; + case PTCACHE_TYPE_PARTICLES: + if (!(stime->cache_display & TIME_CACHE_PARTICLES)) continue; + break; + case PTCACHE_TYPE_CLOTH: + if (!(stime->cache_display & TIME_CACHE_CLOTH)) continue; + break; + case PTCACHE_TYPE_SMOKE_DOMAIN: + case PTCACHE_TYPE_SMOKE_HIGHRES: + if (!(stime->cache_display & TIME_CACHE_SMOKE)) continue; + break; + } + + if(pid->cache->cached_frames == NULL) + continue; + + + /* make sure we have stc with correct array length */ + if(stc == NULL || MEM_allocN_len(stc->array) != len*2*sizeof(float)) { + if(stc) { + MEM_freeN(stc->array); + } + else { + stc = MEM_callocN(sizeof(SpaceTimeCache), "spacetimecache"); + BLI_addtail(&stime->caches, stc); + } + + stc->array = MEM_callocN(len*2*sizeof(float), "SpaceTimeCache array"); } /* fill the vertex array with a quad for each cached frame */ for (i=sta, fp=stc->array; i<=end; i++) { - if (stc->cache->cached_frames[i-sta]) { + if (pid->cache->cached_frames[i-sta]) { fp[0] = (float)i-0.5f; fp[1] = 0.0; fp+=2; @@ -126,7 +160,7 @@ static void time_draw_cache(SpaceTime *stime) glTranslatef(0.0, (float)V2D_SCROLL_HEIGHT+yoffs, 0.0); glScalef(1.0, CACHE_DRAW_HEIGHT, 0.0); - switch(stc->type) { + switch(pid->type) { case PTCACHE_TYPE_SOFTBODY: col[0] = 1.0; col[1] = 0.4; col[2] = 0.02; col[3] = 0.1; @@ -152,7 +186,7 @@ static void time_draw_cache(SpaceTime *stime) glRectf((float)sta, 0.0, (float)end, 1.0); col[3] = 0.4; - if (stc->cache->flag & PTCACHE_BAKED) { + if (pid->cache->flag & PTCACHE_BAKED) { col[0] -= 0.4; col[1] -= 0.4; col[2] -= 0.4; } glColor4fv(col); @@ -167,6 +201,19 @@ static void time_draw_cache(SpaceTime *stime) glPopMatrix(); yoffs += CACHE_DRAW_HEIGHT; + + stc = stc->next; + } + + BLI_freelistN(&pidlist); + + /* free excessive caches */ + while(stc) { + SpaceTimeCache *tmp = stc->next; + BLI_remlink(&stime->caches, stc); + MEM_freeN(stc->array); + MEM_freeN(stc); + stc = tmp; } } @@ -184,58 +231,10 @@ static void time_cache_free(SpaceTime *stime) BLI_freelistN(&stime->caches); } -static void time_cache_refresh(const bContext *C, SpaceTime *stime) +static void time_cache_refresh(SpaceTime *stime) { - Object *ob = CTX_data_active_object(C); - PTCacheID *pid; - ListBase pidlist; - + /* Free previous caches to indicate full refresh */ time_cache_free(stime); - - if (!(stime->cache_display & TIME_CACHE_DISPLAY) || (!ob)) - return; - - BKE_ptcache_ids_from_object(&pidlist, ob, NULL, 0); - - /* iterate over pointcaches on the active object, - * add spacetimecache and vertex array for each */ - for(pid=pidlist.first; pid; pid=pid->next) { - SpaceTimeCache *stc; - - switch(pid->type) { - case PTCACHE_TYPE_SOFTBODY: - if (!(stime->cache_display & TIME_CACHE_SOFTBODY)) continue; - break; - case PTCACHE_TYPE_PARTICLES: - if (!(stime->cache_display & TIME_CACHE_PARTICLES)) continue; - break; - case PTCACHE_TYPE_CLOTH: - if (!(stime->cache_display & TIME_CACHE_CLOTH)) continue; - break; - case PTCACHE_TYPE_SMOKE_DOMAIN: - case PTCACHE_TYPE_SMOKE_HIGHRES: - if (!(stime->cache_display & TIME_CACHE_SMOKE)) continue; - break; - } - - BKE_ptcache_id_time(pid, CTX_data_scene(C), 0, NULL, NULL, NULL); - - if(pid->cache->cached_frames==NULL) - continue; - - stc= MEM_callocN(sizeof(SpaceTimeCache), "spacetimecache"); - - stc->type = pid->type; - stc->cache = pid->cache; - stc->len = 0; - - BLI_addtail(&stime->caches, stc); - } - - /* todo: sort time->caches list for consistent order */ - // ... - - BLI_freelistN(&pidlist); } /* helper function - find actkeycolumn that occurs on cframe, or the nearest one if not found */ @@ -359,7 +358,7 @@ static void time_draw_keyframes(const bContext *C, SpaceTime *stime, ARegion *ar /* ---------------- */ -static void time_refresh(const bContext *C, ScrArea *sa) +static void time_refresh(const bContext *UNUSED(C), ScrArea *sa) { SpaceTime *stime = (SpaceTime *)sa->spacedata.first; ARegion *ar; @@ -367,7 +366,7 @@ static void time_refresh(const bContext *C, ScrArea *sa) /* find the main timeline region and refresh cache display*/ for (ar= sa->regionbase.first; ar; ar= ar->next) { if (ar->regiontype==RGN_TYPE_WINDOW) { - time_cache_refresh(C, stime); + time_cache_refresh(stime); break; } } @@ -445,6 +444,7 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) /* draw entirely, view changes should be handled here */ Scene *scene= CTX_data_scene(C); SpaceTime *stime= CTX_wm_space_time(C); + Object *obact = CTX_data_active_object(C); View2D *v2d= &ar->v2d; View2DGrid *grid; View2DScrollers *scrollers; @@ -479,7 +479,7 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) draw_markers_time(C, 0); /* caches */ - time_draw_cache(stime); + time_draw_cache(stime, obact); /* reset view matrix */ UI_view2d_view_restore(C); diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 08c50b95778..5c54791b2a0 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -196,13 +196,15 @@ static SpaceLink *view3d_new(const bContext *C) v3d->grid= 1.0f; v3d->gridlines= 16; v3d->gridsubdiv = 10; - v3d->drawtype= OB_WIRE; + v3d->drawtype= OB_SOLID; v3d->gridflag |= V3D_SHOW_X; v3d->gridflag |= V3D_SHOW_Y; v3d->gridflag |= V3D_SHOW_FLOOR; v3d->gridflag &= ~V3D_SHOW_Z; + v3d->flag |= V3D_SELECT_OUTLINE; + v3d->lens= 35.0f; v3d->near= 0.01f; v3d->far= 500.0f; diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index c2928614d27..29629165661 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2066,6 +2066,10 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, /* free images which can have changed on frame-change * warning! can be slow so only free animated images - campbell */ GPU_free_images_anim(); + + /* shadow buffers, before we setup matrices */ + if(draw_glsl_material(scene, NULL, v3d, v3d->drawtype)) + gpu_update_lamps_shadows(scene, v3d); /* set background color, fallback on the view background color */ if(scene->world) { @@ -2294,6 +2298,7 @@ static void draw_viewport_fps(Scene *scene, ARegion *ar) BLF_draw_default(22, ar->winy-17, 0.0f, printable, sizeof(printable)-1); } +/* warning: this function has duplicate drawing in ED_view3d_draw_offscreen() */ void view3d_main_area_draw(const bContext *C, ARegion *ar) { Scene *scene= CTX_data_scene(C); diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 22494db7020..6043db6a02f 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -181,6 +181,26 @@ void view3d_keymap(wmKeyConfig *keyconf) RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT|KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPDOWN); /* active aligned, replaces '*' key in 2.4x */ +#ifdef WIN32 + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_ALT, 0); + RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT); + RNA_boolean_set(kmi->ptr, "align_active", TRUE); + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, KM_ALT, 0); + RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT); + RNA_boolean_set(kmi->ptr, "align_active", TRUE); + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_ALT, 0); + RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP); + RNA_boolean_set(kmi->ptr, "align_active", TRUE); + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_ALT|KM_CTRL, 0); + RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BACK); + RNA_boolean_set(kmi->ptr, "align_active", TRUE); + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, KM_ALT|KM_CTRL, 0); + RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_LEFT); + RNA_boolean_set(kmi->ptr, "align_active", TRUE); + kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_ALT|KM_CTRL, 0); + RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM); + RNA_boolean_set(kmi->ptr, "align_active", TRUE); +#else kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_SHIFT, 0); RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT); RNA_boolean_set(kmi->ptr, "align_active", TRUE); @@ -199,6 +219,7 @@ void view3d_keymap(wmKeyConfig *keyconf) kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_SHIFT|KM_CTRL, 0); RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM); RNA_boolean_set(kmi->ptr, "align_active", TRUE); +#endif WM_keymap_add_item(keymap, "VIEW3D_OT_localview", PADSLASHKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index bbb26ad09a4..d26137bd115 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -32,6 +32,7 @@ #include <float.h> #include <assert.h> +#include "DNA_action_types.h" #include "DNA_armature_types.h" #include "DNA_curve_types.h" #include "DNA_meta_types.h" @@ -1688,9 +1689,11 @@ static int do_object_pose_box_select(bContext *C, ViewContext *vc, rcti *rect, i bone = get_indexed_bone(base->object, *col & ~(BONESEL_ANY)); if(bone) { if(select) { - bone->flag |= BONE_SELECTED; - bone_selected=1; + if ((bone->flag & BONE_UNSELECTABLE)==0) { + bone->flag |= BONE_SELECTED; + bone_selected=1; // XXX select_actionchannel_by_name(base->object->action, bone->name, 1); + } } else { bArmature *arm= base->object->data; @@ -2053,6 +2056,67 @@ static void lattice_circle_select(ViewContext *vc, int select, short *mval, floa } +// NOTE: pose-bone case is copied from editbone case... +static short pchan_circle_doSelectJoint(void *userData, bPoseChannel *pchan, int x, int y) +{ + struct {ViewContext *vc; short select, mval[2]; float radius; } *data = userData; + int mx = x - data->mval[0], my = y - data->mval[1]; + float r = sqrt(mx*mx + my*my); + + if (r <= data->radius) { + if (data->select) + pchan->bone->flag |= BONE_SELECTED; + else + pchan->bone->flag &= ~BONE_SELECTED; + return 1; + } + return 0; +} +static void pose_circle_select(ViewContext *vc, int select, short *mval, float rad) +{ + struct {ViewContext *vc; short select, mval[2]; float radius; } data; + bPose *pose = vc->obact->pose; + bPoseChannel *pchan; + int change= FALSE; + + /* set vc->edit data */ + data.select = select; + data.mval[0] = mval[0]; + data.mval[1] = mval[1]; + data.radius = rad; + + ED_view3d_init_mats_rv3d(vc->obact, vc->rv3d); /* for foreach's screen/vert projection */ + + /* check each PoseChannel... */ + // TODO: could be optimised at some point + for (pchan = pose->chanbase.first; pchan; pchan = pchan->next) { + short sco1[2], sco2[2], didpoint=0; + float vec[3]; + + /* project head location to screenspace */ + mul_v3_m4v3(vec, vc->obact->obmat, pchan->pose_head); + project_short(vc->ar, vec, sco1); + + /* project tail location to screenspace */ + mul_v3_m4v3(vec, vc->obact->obmat, pchan->pose_tail); + project_short(vc->ar, vec, sco2); + + /* check if the head and/or tail is in the circle + * - the call to check also does the selection already + */ + if (pchan_circle_doSelectJoint(&data, pchan, sco1[0], sco1[1])) + didpoint= 1; + if (pchan_circle_doSelectJoint(&data, pchan, sco2[0], sco2[1])) + didpoint= 1; + + change |= didpoint; + } + + if (change) { + WM_main_add_notifier(NC_OBJECT|ND_BONE_SELECT, vc->obact); + } +} + static short armature_circle_doSelectJoint(void *userData, EditBone *ebone, int x, int y, short head) { struct {ViewContext *vc; short select, mval[2]; float radius; } *data = userData; @@ -2172,8 +2236,9 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op) select= (gesture_mode==GESTURE_MODAL_SELECT); - if(CTX_data_edit_object(C) || paint_facesel_test(obact) || - (obact && obact->mode & OB_MODE_PARTICLE_EDIT)) { + if( CTX_data_edit_object(C) || paint_facesel_test(obact) || + (obact && (obact->mode & (OB_MODE_PARTICLE_EDIT|OB_MODE_POSE))) ) + { ViewContext vc; short mval[2]; @@ -2191,6 +2256,8 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op) paint_facesel_circle_select(&vc, select, mval, (float)radius); WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obact->data); } + else if(obact->mode & OB_MODE_POSE) + pose_circle_select(&vc, select, mval, (float)radius); else return PE_circle_select(C, select, mval, (float)radius); } diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 90a275883ae..df267254d8f 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -875,6 +875,12 @@ static short pose_grab_with_ik_add(bPoseChannel *pchan) pchan = pchan->parent; else pchan = NULL; + + /* but, constrainted bones can't get auto-ik transform applied, exclude these */ + if(pchan && pchan->constraints.first) { + data->rootbone--; + pchan= NULL; + } } /* make a copy of maximum chain-length */ diff --git a/source/blender/imbuf/intern/cineon/CMakeLists.txt b/source/blender/imbuf/intern/cineon/CMakeLists.txt index a7660af1714..f01de6b2620 100644 --- a/source/blender/imbuf/intern/cineon/CMakeLists.txt +++ b/source/blender/imbuf/intern/cineon/CMakeLists.txt @@ -27,7 +27,7 @@ set(INC . .. - ../../ + ../.. ../../../blenkernel ../../../blenlib ../../../makesdna diff --git a/source/blender/imbuf/intern/dds/CMakeLists.txt b/source/blender/imbuf/intern/dds/CMakeLists.txt index 2ab92bee3e5..7564287ce4a 100644 --- a/source/blender/imbuf/intern/dds/CMakeLists.txt +++ b/source/blender/imbuf/intern/dds/CMakeLists.txt @@ -27,8 +27,8 @@ set(INC . .. + ../.. ./intern/include - ../../ ../../../blenlib ../../../blenkernel ../../../makesdna diff --git a/source/blender/imbuf/intern/openexr/CMakeLists.txt b/source/blender/imbuf/intern/openexr/CMakeLists.txt index 58edd53139a..ace4f4f9a65 100644 --- a/source/blender/imbuf/intern/openexr/CMakeLists.txt +++ b/source/blender/imbuf/intern/openexr/CMakeLists.txt @@ -26,9 +26,9 @@ set(INC . - ../../../blenkernel - ../../ .. + ../.. + ../../../blenkernel ../../../blenlib intern/include ../../../../../intern/guardedalloc diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 1cd916892de..e09d7635f75 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -722,23 +722,6 @@ typedef enum eKSP_Grouping { KSP_GROUP_TEMPLATE_ITEM } eKSP_Grouping; -/* KS_Path->templates (Template Flags) - * - * Templates in paths are used to substitute information from the - * active context into relavent places in the path strings. This - * enum here defines the flags which define which templates are - * required by a path before it can be used - */ -typedef enum eKSP_TemplateTypes { - KSP_TEMPLATE_OBJECT = (1<<0), /* #obj - selected object */ - KSP_TEMPLATE_PCHAN = (1<<1), /* #pch - selected posechannel */ - KSP_TEMPLATE_CONSTRAINT = (1<<2), /* #con - active only */ - KSP_TEMPLATE_NODE = (1<<3), /* #nod - selected node */ - KSP_TEMPLATE_MODIFIER = (1<<4), /* #mod - active only */ - - KSP_TEMPLATE_ROT = (1<<16) /* modify rotation paths based on rotation mode of Object or Pose Channel */ -} eKSP_TemplateTypes; - /* ---------------- */ /* KeyingSet definition (ks) diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h index e039eed2065..f9d6a70db48 100644 --- a/source/blender/makesdna/DNA_constraint_types.h +++ b/source/blender/makesdna/DNA_constraint_types.h @@ -541,7 +541,7 @@ typedef enum eUpAxis_Modes { UP_Z } eUpAxis_Modes; -/* Tracking axis (TrackTo, Locked Track, Damped Track) */ +/* Tracking axis (TrackTo, Locked Track, Damped Track) and minmax (floor) constraint */ typedef enum eTrackToAxis_Modes { TRACK_X = 0, TRACK_Y, diff --git a/source/blender/makesdna/DNA_fileglobal_types.h b/source/blender/makesdna/DNA_fileglobal_types.h index ae539a18963..0c3a9429de6 100644 --- a/source/blender/makesdna/DNA_fileglobal_types.h +++ b/source/blender/makesdna/DNA_fileglobal_types.h @@ -47,7 +47,8 @@ typedef struct FileGlobal { struct Scene *curscene; int fileflags; int globalf; - + int revision; /* svn revision from buildinfo */ + int pad; /* file path where this was saved, for recover */ char filename[240]; /* 240 = FILE_MAX */ } FileGlobal; diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h index 8a6018fb7ea..96f2c1ccc79 100644 --- a/source/blender/makesdna/DNA_object_force.h +++ b/source/blender/makesdna/DNA_object_force.h @@ -141,6 +141,13 @@ typedef struct EffectorWeights { #define BPHYS_TOT_DATA 8 +typedef struct PTCacheExtra { + struct PTCacheExtra *next, *prev; + unsigned int type, flag; + unsigned int totdata, datasize; + void *data; +} PTCacheExtra; + typedef struct PTCacheMem { struct PTCacheMem *next, *prev; int frame, totpoint; @@ -149,6 +156,8 @@ typedef struct PTCacheMem { void *data[8]; /* BPHYS_TOT_DATA */ void *cur[8]; /* BPHYS_TOT_DATA */ + + struct ListBase extradata; } PTCacheMem; typedef struct PointCache { @@ -175,7 +184,8 @@ typedef struct PointCache { /* for external cache files */ int totpoint; /* number of cached points */ - int index, rt; /* modifier stack index */ + int index; /* modifier stack index */ + short compression, rt; char name[64]; char prev_name[64]; @@ -387,6 +397,10 @@ typedef struct SoftBody { /* PTCACHE_OUTDATED + PTCACHE_FRAMES_SKIPPED */ #define PTCACHE_REDO_NEEDED 258 +#define PTCACHE_COMPRESS_NO 0 +#define PTCACHE_COMPRESS_LZO 1 +#define PTCACHE_COMPRESS_LZMA 2 + /* ob->softflag */ #define OB_SB_ENABLE 1 /* deprecated, use modifier */ #define OB_SB_GOAL 2 diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 4fb00a1988b..271e616cf10 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -357,13 +357,11 @@ typedef struct SpaceScript { void *but_refs; } SpaceScript; +# /* Only store the data array in the cache to avoid constant reallocation. */ +# /* No need to store when saved. */ typedef struct SpaceTimeCache { struct SpaceTimeCache *next, *prev; - - struct PointCache *cache; float *array; - - int type, len; } SpaceTimeCache; typedef struct SpaceTime { diff --git a/source/blender/makesdna/intern/CMakeLists.txt b/source/blender/makesdna/intern/CMakeLists.txt index ce41a83ddd2..55a6a3c0879 100644 --- a/source/blender/makesdna/intern/CMakeLists.txt +++ b/source/blender/makesdna/intern/CMakeLists.txt @@ -27,7 +27,10 @@ # message(STATUS "Configuring makesdna") -blender_include_dirs(../../../../intern/guardedalloc ../) +blender_include_dirs( + ../../../../intern/guardedalloc + .. +) # Build makesdna executable set(SRC diff --git a/source/blender/makesrna/RNA_define.h b/source/blender/makesrna/RNA_define.h index f97187d6e15..3a8e2e4f80e 100644 --- a/source/blender/makesrna/RNA_define.h +++ b/source/blender/makesrna/RNA_define.h @@ -197,6 +197,12 @@ void RNA_def_property_duplicate_pointers(StructOrFunctionRNA *cont_, PropertyRNA void RNA_def_property_free_pointers(PropertyRNA *prop); int RNA_def_property_free_identifier(StructOrFunctionRNA *cont_, const char *identifier); +/* utilities */ +const char *RNA_property_typename(PropertyType type); +#define IS_DNATYPE_FLOAT_COMPAT(_str) (strcmp(_str, "float") == 0 || strcmp(_str, "double") == 0) +#define IS_DNATYPE_INT_COMPAT(_str) (strcmp(_str, "int") == 0 || strcmp(_str, "short") == 0 || strcmp(_str, "char") == 0) + + #ifdef __cplusplus } #endif diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index fbfbcbbdf3f..1ea65fea065 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -167,6 +167,10 @@ typedef enum PropertyFlag { * only apply this to types that are derived from an ID ()*/ PROP_ID_SELF_CHECK = 1<<20, PROP_NEVER_NULL = 1<<18, + /* currently only used for UI, this is similar to PROP_NEVER_NULL + * except that the value may be NULL at times, used for ObData, where an Empty's will be NULL + * but setting NULL on a mesh object is not possible. So, if its not NULL, setting NULL cant be done! */ + PROP_NEVER_UNLINK = 1<<25, /* flag contains multiple enums. * note: not to be confused with prop->enumbitflags diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 5f2e21ab56a..5670c0a7945 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -461,6 +461,28 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr DefRNA.error= 1; return NULL; } + + /* typecheck, */ + if(dp->dnatype && *dp->dnatype) { + + if(prop->type == PROP_FLOAT) { + if(IS_DNATYPE_FLOAT_COMPAT(dp->dnatype) == 0) { + if(prop->subtype != PROP_COLOR_GAMMA) { /* colors are an exception. these get translated */ + fprintf(stderr, "rna_def_property_get_func1: %s.%s is a '%s' but wrapped as type '%s'.\n", srna->identifier, prop->identifier, dp->dnatype, RNA_property_typename(prop->type)); + DefRNA.error= 1; + return NULL; + } + } + } + else if(prop->type == PROP_INT || prop->type == PROP_BOOLEAN || prop->type == PROP_ENUM) { + if(IS_DNATYPE_INT_COMPAT(dp->dnatype) == 0) { + fprintf(stderr, "rna_def_property_get_func2: %s.%s is a '%s' but wrapped as type '%s'.\n", srna->identifier, prop->identifier, dp->dnatype, RNA_property_typename(prop->type)); + DefRNA.error= 1; + return NULL; + } + } + } + } func= rna_alloc_function_name(srna->identifier, prop->identifier, "get"); @@ -949,7 +971,14 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property if(strcmp(nextfunc, "rna_iterator_array_next") == 0) { fprintf(f, " ArrayIterator *internal= iter.internal;\n"); - fprintf(f, " if(internal->skip) {\n"); + fprintf(f, " if(index < 0 || index >= internal->length) {\n"); + fprintf(f, "#ifdef __GNUC__\n"); + fprintf(f, " printf(\"Array itterator out of range: %%s (index %%d range %%d)\\n\", __func__, index, internal->length); \n"); + fprintf(f, "#else\n"); + fprintf(f, " printf(\"Array itterator out of range: (index %%d range %%d)\\n\", index, internal->length); \n"); + fprintf(f, "#endif\n"); + fprintf(f, " }\n"); + fprintf(f, " else if(internal->skip) {\n"); fprintf(f, " while(index-- > 0) {\n"); fprintf(f, " do {\n"); fprintf(f, " internal->ptr += internal->itemsize;\n"); @@ -1701,20 +1730,6 @@ static const char *rna_property_structname(PropertyType type) } } -static const char *rna_property_typename(PropertyType type) -{ - switch(type) { - case PROP_BOOLEAN: return "PROP_BOOLEAN"; - case PROP_INT: return "PROP_INT"; - case PROP_FLOAT: return "PROP_FLOAT"; - case PROP_STRING: return "PROP_STRING"; - case PROP_ENUM: return "PROP_ENUM"; - case PROP_POINTER: return "PROP_POINTER"; - case PROP_COLLECTION: return "PROP_COLLECTION"; - default: return "PROP_UNKNOWN"; - } -} - static const char *rna_property_subtypename(PropertySubType type) { switch(type) { @@ -2097,7 +2112,7 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr rna_print_c_string(f, prop->name); fprintf(f, ",\n\t"); rna_print_c_string(f, prop->description); fprintf(f, ",\n\t"); fprintf(f, "%d,\n", prop->icon); - fprintf(f, "\t%s, %s|%s, %s, %d, {%d, %d, %d}, %d,\n", rna_property_typename(prop->type), rna_property_subtypename(prop->subtype), rna_property_subtype_unit(prop->subtype), rna_function_string(prop->getlength), prop->arraydimension, prop->arraylength[0], prop->arraylength[1], prop->arraylength[2], prop->totarraylength); + fprintf(f, "\t%s, %s|%s, %s, %d, {%d, %d, %d}, %d,\n", RNA_property_typename(prop->type), rna_property_subtypename(prop->subtype), rna_property_subtype_unit(prop->subtype), rna_function_string(prop->getlength), prop->arraydimension, prop->arraylength[0], prop->arraylength[1], prop->arraylength[2], prop->totarraylength); fprintf(f, "\t%s%s, %d, %s, %s,\n", (prop->flag & PROP_CONTEXT_UPDATE)? "(UpdateFunc)": "", rna_function_string(prop->update), prop->noteflag, rna_function_string(prop->editable), rna_function_string(prop->itemeditable)); if(prop->flag & PROP_RAW_ACCESS) rna_set_raw_offset(f, srna, prop); @@ -2382,6 +2397,7 @@ static void rna_generate(BlenderRNA *brna, FILE *f, const char *filename, const "#define RNA_RUNTIME\n\n"); fprintf(f, "#include <float.h>\n"); + fprintf(f, "#include <stdio.h>\n"); fprintf(f, "#include <limits.h>\n"); fprintf(f, "#include <string.h>\n\n"); fprintf(f, "#include <stddef.h>\n\n"); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 8d596ac5025..5dba0a41a02 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -2828,7 +2828,8 @@ void rna_iterator_array_begin(CollectionPropertyIterator *iter, void *ptr, int i internal->endptr= ((char*)ptr)+length*itemsize; internal->itemsize= itemsize; internal->skip= skip; - + internal->length= length; + iter->internal= internal; iter->valid= (internal->ptr != internal->endptr); diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index fbc4593437b..90c072bcfcb 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -161,7 +161,7 @@ static StructRNA *rna_KeyingSetInfo_register(bContext *C, ReportList *reports, v { KeyingSetInfo dummyksi = {0}; KeyingSetInfo *ksi; - PointerRNA dummyptr; + PointerRNA dummyptr = {{0}}; int have_function[3]; /* setup dummy type info to store static properties in */ @@ -198,7 +198,7 @@ static StructRNA *rna_KeyingSetInfo_register(bContext *C, ReportList *reports, v ksi->poll= (have_function[0])? RKS_POLL_rna_internal: NULL; ksi->iter= (have_function[1])? RKS_ITER_rna_internal: NULL; ksi->generate= (have_function[2])? RKS_GEN_rna_internal: NULL; - + /* add and register with other info as needed */ ANIM_keyingset_info_register(ksi); diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index ffc42eb97e4..e23d9a288cb 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -893,13 +893,14 @@ static void rna_def_constraint_transform_like(BlenderRNA *brna) srna= RNA_def_struct(brna, "CopyTransformsConstraint", "Constraint"); RNA_def_struct_ui_text(srna, "Copy Transforms Constraint", "Copies all the transforms of the target"); - RNA_def_struct_sdna_from(srna, "bTransLikeConstraint", "data"); prop= RNA_def_property(srna, "head_tail", PROP_FLOAT, PROP_FACTOR); RNA_def_property_float_sdna(prop, "bConstraint", "headtail"); RNA_def_property_ui_text(prop, "Head/Tail", "Target along length of bone: Head=0, Tail=1"); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + RNA_def_struct_sdna_from(srna, "bTransLikeConstraint", "data"); + prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "tar"); RNA_def_property_ui_text(prop, "Target", "Target Object"); @@ -918,12 +919,12 @@ static void rna_def_constraint_minmax(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem minmax_items[] = { - {LOCLIKE_X, "FLOOR_X", 0, "X", ""}, - {LOCLIKE_Y, "FLOOR_Y", 0, "Y", ""}, - {LOCLIKE_Z, "FLOOR_Z", 0, "Z", ""}, - {LOCLIKE_X_INVERT, "FLOOR_NEGATIVE_X", 0, "-X", ""}, - {LOCLIKE_Y_INVERT, "FLOOR_NEGATIVE_Y", 0, "-Y", ""}, - {LOCLIKE_Z_INVERT, "FLOOR_NEGATIVE_Z", 0, "-Z", ""}, + {TRACK_X, "FLOOR_X", 0, "X", ""}, + {TRACK_Y, "FLOOR_Y", 0, "Y", ""}, + {TRACK_Z, "FLOOR_Z", 0, "Z", ""}, + {TRACK_nX, "FLOOR_NEGATIVE_X", 0, "-X", ""}, + {TRACK_nY, "FLOOR_NEGATIVE_Y", 0, "-Y", ""}, + {TRACK_nZ, "FLOOR_NEGATIVE_Z", 0, "-Z", ""}, {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "FloorConstraint", "Constraint"); @@ -1113,7 +1114,7 @@ static void rna_def_constraint_follow_path(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update"); - prop= RNA_def_property(srna, "offset", PROP_INT, PROP_TIME); + prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_TIME); RNA_def_property_range(prop, MINAFRAME, MAXFRAME); RNA_def_property_ui_text(prop, "Offset", "Offset from the position corresponding to the time frame"); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index 214a79dbd34..963c4b98758 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -1492,8 +1492,19 @@ void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, co return; } - if((dp=rna_def_property_sdna(prop, structname, propname))) + if((dp=rna_def_property_sdna(prop, structname, propname))) { + + if(DefRNA.silent == 0) { + /* error check to ensure floats are not wrapped as ints/bools */ + if(dp->dnatype && *dp->dnatype && IS_DNATYPE_INT_COMPAT(dp->dnatype) == 0) { + fprintf(stderr, "RNA_def_property_boolean_sdna: %s.%s is a '%s' but wrapped as type '%s'.\n", srna->identifier, prop->identifier, dp->dnatype, RNA_property_typename(prop->type)); + DefRNA.error= 1; + return; + } + } + dp->booleanbit= bit; + } } void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int booleanbit) @@ -1526,6 +1537,16 @@ void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const } if((dp= rna_def_property_sdna(prop, structname, propname))) { + + /* error check to ensure floats are not wrapped as ints/bools */ + if(DefRNA.silent == 0) { + if(dp->dnatype && *dp->dnatype && IS_DNATYPE_INT_COMPAT(dp->dnatype) == 0) { + fprintf(stderr, "RNA_def_property_int_sdna: %s.%s is a '%s' but wrapped as type '%s'.\n", srna->identifier, prop->identifier, dp->dnatype, RNA_property_typename(prop->type)); + DefRNA.error= 1; + return; + } + } + /* SDNA doesn't pass us unsigned unfortunately .. */ if(dp->dnatype && strcmp(dp->dnatype, "char") == 0) { iprop->hardmin= iprop->softmin= CHAR_MIN; @@ -1550,6 +1571,7 @@ void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname) { + PropertyDefRNA *dp; StructRNA *srna= DefRNA.laststruct; if(!DefRNA.preprocess) { @@ -1563,6 +1585,19 @@ void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, cons return; } + if((dp= rna_def_property_sdna(prop, structname, propname))) { + /* silent is for internal use */ + if(DefRNA.silent == 0) { + if(dp->dnatype && *dp->dnatype && IS_DNATYPE_FLOAT_COMPAT(dp->dnatype) == 0) { + if(prop->subtype != PROP_COLOR_GAMMA) { /* colors are an exception. these get translated */ + fprintf(stderr, "RNA_def_property_float_sdna: %s.%s is a '%s' but wrapped as type '%s'.\n", srna->identifier, prop->identifier, dp->dnatype, RNA_property_typename(prop->type)); + DefRNA.error= 1; + return; + } + } + } + } + rna_def_property_sdna(prop, structname, propname); } @@ -2799,3 +2834,17 @@ int RNA_def_property_free_identifier(StructOrFunctionRNA *cont_, const char *ide } #endif +const char *RNA_property_typename(PropertyType type) +{ + switch(type) { + case PROP_BOOLEAN: return "PROP_BOOLEAN"; + case PROP_INT: return "PROP_INT"; + case PROP_FLOAT: return "PROP_FLOAT"; + case PROP_STRING: return "PROP_STRING"; + case PROP_ENUM: return "PROP_ENUM"; + case PROP_POINTER: return "PROP_POINTER"; + case PROP_COLLECTION: return "PROP_COLLECTION"; + } + + return "PROP_UNKNOWN"; +} diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index b3c5f74ab84..af98f6792e4 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -747,8 +747,8 @@ static void rna_def_fmodifier_cycles(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Before Mode", "Cycling mode to use before first keyframe"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); - prop= RNA_def_property(srna, "cycles_before", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "before_cycles"); + prop= RNA_def_property(srna, "cycles_before", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "before_cycles"); RNA_def_property_ui_text(prop, "Before Cycles", "Maximum number of cycles to allow before first keyframe. (0 = infinite)"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); @@ -759,8 +759,8 @@ static void rna_def_fmodifier_cycles(BlenderRNA *brna) RNA_def_property_ui_text(prop, "After Mode", "Cycling mode to use after last keyframe"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); - prop= RNA_def_property(srna, "cycles_after", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "after_cycles"); + prop= RNA_def_property(srna, "cycles_after", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "after_cycles"); RNA_def_property_ui_text(prop, "After Cycles", "Maximum number of cycles to allow after last keyframe. (0 = infinite)"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); } diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 1b0576ae1b8..fbd4fa7bfdc 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -326,6 +326,7 @@ typedef struct ArrayIterator { char *endptr; void *free_ptr; /* will be free'd if set */ int itemsize; + int length; IteratorSkipFunc skip; } ArrayIterator; diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index a964a07ac16..43dfd36d516 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -496,7 +496,7 @@ static void rna_def_material_mtex(BlenderRNA *brna) prop= RNA_def_property(srna, "normal_map_space", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "normapspace"); RNA_def_property_enum_items(prop, prop_normal_map_space_items); - RNA_def_property_ui_text(prop, "Normal Map Space", ""); + RNA_def_property_ui_text(prop, "Normal Map Space", "Sets space of normal map image"); RNA_def_property_update(prop, 0, "rna_Material_update"); prop= RNA_def_property(srna, "normal_factor", PROP_FLOAT, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index c9a11753154..e9490d2bc8a 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -1135,7 +1135,9 @@ static void rna_def_mvert(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); prop= RNA_def_property(srna, "normal", PROP_FLOAT, PROP_DIRECTION); - RNA_def_property_float_sdna(prop, NULL, "no"); + // RNA_def_property_float_sdna(prop, NULL, "no"); + RNA_def_property_array(prop, 3); + RNA_def_property_range(prop, -1.0f, 1.0f); RNA_def_property_float_funcs(prop, "rna_MeshVertex_normal_get", "rna_MeshVertex_normal_set", NULL); RNA_def_property_ui_text(prop, "Normal", "Vertex Normal"); diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index ba73d617c9d..11b0e8f995e 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -1012,13 +1012,13 @@ static void rna_def_modifier_armature(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Multi Modifier", "Use same input as previous modifier, and mix results using overall vgroup"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "vertex_group_multi_modifier", PROP_STRING, PROP_NONE); + prop= RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "defgrp_name"); RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name"); RNA_def_property_string_funcs(prop, NULL, NULL, "rna_ArmatureModifier_vgroup_set"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "invert_vertex_group_multi_modifier", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "invert_vertex_group", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "deformflag", ARM_DEF_INVERT_VGROUP); RNA_def_property_ui_text(prop, "Invert", "Invert vertex group influence"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 3429a195e1a..d13564b6621 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -2011,9 +2011,9 @@ static void def_cmp_glare(StructRNA *srna) RNA_def_property_ui_text(prop, "Streaks", "Total number of streaks"); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - prop = RNA_def_property(srna, "angle_offset", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "angle_ofs"); - RNA_def_property_range(prop, 0.0f, 180.0f); + prop = RNA_def_property(srna, "angle_offset", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "angle_ofs"); + RNA_def_property_range(prop, 0, 180); RNA_def_property_ui_text(prop, "Angle Offset", "Streak angle offset in degrees"); 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 6dbf6fca108..978171997ef 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1680,7 +1680,7 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_struct_type(prop, "ID"); RNA_def_property_pointer_funcs(prop, NULL, "rna_Object_data_set", "rna_Object_data_typef", NULL); RNA_def_property_editable_func(prop, "rna_Object_data_editable"); - RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_flag(prop, PROP_EDITABLE|PROP_NEVER_UNLINK); RNA_def_property_ui_text(prop, "Data", "Object data"); RNA_def_property_update(prop, 0, "rna_Object_internal_update_data"); diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index b0e487fa89c..fb8617bc626 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -718,6 +718,12 @@ static void rna_def_pointcache(BlenderRNA *brna) StructRNA *srna; PropertyRNA *prop; + static EnumPropertyItem point_cache_compress_items[] = { + {PTCACHE_COMPRESS_NO, "NO", 0, "No", "No compression"}, + {PTCACHE_COMPRESS_LZO, "LIGHT", 0, "Light", "Fast but not so effective compression"}, + {PTCACHE_COMPRESS_LZMA, "HEAVY", 0, "Heavy", "Effective but slow compression"}, + {0, NULL, 0, NULL, NULL}}; + srna= RNA_def_struct(brna, "PointCache", NULL); RNA_def_struct_ui_text(srna, "Point Cache", "Point cache for physics simulations"); RNA_def_struct_ui_icon(srna, ICON_PHYSICS); @@ -745,6 +751,11 @@ static void rna_def_pointcache(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Cache Index", "Index number of cache files"); RNA_def_property_update(prop, NC_OBJECT, "rna_Cache_idname_change"); + prop= RNA_def_property(srna, "compression", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, point_cache_compress_items); + RNA_def_property_ui_text(prop, "Cache Compression", "Compression method to be used"); + RNA_def_property_update(prop, 0, NULL); + /* flags */ prop= RNA_def_property(srna, "is_baked", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", PTCACHE_BAKED); diff --git a/source/blender/makesrna/intern/rna_property.c b/source/blender/makesrna/intern/rna_property.c index 13f913b978b..b7ae1229c4a 100644 --- a/source/blender/makesrna/intern/rna_property.c +++ b/source/blender/makesrna/intern/rna_property.c @@ -154,7 +154,7 @@ void RNA_def_gameproperty(BlenderRNA *brna) RNA_def_struct_sdna(srna, "bProperty"); prop= RNA_def_property(srna, "value", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "data"); + // RNA_def_property_float_sdna(prop, NULL, "data"); RNA_def_property_ui_text(prop, "Value", "Property value"); RNA_def_property_range(prop, -10000, 10000); RNA_def_property_float_funcs(prop, "rna_GameFloatProperty_value_get", "rna_GameFloatProperty_value_set", NULL); @@ -166,7 +166,7 @@ void RNA_def_gameproperty(BlenderRNA *brna) RNA_def_struct_sdna(srna, "bProperty"); prop= RNA_def_property(srna, "value", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "data"); + // RNA_def_property_float_sdna(prop, NULL, "data"); RNA_def_property_ui_text(prop, "Value", "Property value"); RNA_def_property_range(prop, -10000, 10000); RNA_def_property_float_funcs(prop, "rna_GameFloatProperty_value_get", "rna_GameFloatProperty_value_set", NULL); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 0cdc8f23560..f4f7bda5efa 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -316,6 +316,12 @@ static void rna_Scene_view3d_update(Main *bmain, Scene *unused, PointerRNA *ptr) BKE_screen_view3d_main_sync(&bmain->screen, scene); } +static void rna_Scene_framelen_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + scene->r.framelen= (float)scene->r.framapto/(float)scene->r.images; +} + + static void rna_Scene_current_frame_set(PointerRNA *ptr, int value) { Scene *data= (Scene*)ptr->data; @@ -422,7 +428,7 @@ static int rna_Scene_active_keying_set_index_get(PointerRNA *ptr) } /* get KeyingSet index stuff for list of Keying Sets editing UI - * - value+1 since 0 is reserved for 'none'= + * - value+1 since 0 is reserved for 'none' */ static void rna_Scene_active_keying_set_index_set(PointerRNA *ptr, int value) { @@ -2047,8 +2053,8 @@ static void rna_def_scene_game_data(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Physics Gravity", "Gravitational constant used for physics simulation in the game engine"); RNA_def_property_update(prop, NC_SCENE, NULL); - prop= RNA_def_property(srna, "occlusion_culling_resolution", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "occlusionRes"); + prop= RNA_def_property(srna, "occlusion_culling_resolution", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "occlusionRes"); RNA_def_property_range(prop, 128.0, 1024.0); RNA_def_property_ui_text(prop, "Occlusion Resolution", "The size of the occlusion buffer in pixel, use higher value for better precision (slower)"); RNA_def_property_update(prop, NC_SCENE, NULL); @@ -2729,14 +2735,14 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 1, 900); RNA_def_property_ui_text(prop, "Frame Map Old", "Specify old mapping value in frames"); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_FRAME, "rna_Scene_framelen_update"); prop= RNA_def_property(srna, "frame_map_new", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "images"); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 1, 900); RNA_def_property_ui_text(prop, "Frame Map New", "Specify how many frames the Map Old will last"); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_FRAME, "rna_Scene_framelen_update"); prop= RNA_def_property(srna, "dither_intensity", PROP_FLOAT, PROP_NONE); @@ -3260,7 +3266,7 @@ static void rna_def_scene_objects(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_function_ui_description(func, "Link object to scene, run scene.update() after."); RNA_def_function_flag(func, FUNC_USE_CONTEXT|FUNC_USE_REPORTS); parm= RNA_def_pointer(func, "object", "Object", "", "Object to add to scene."); - RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL); parm= RNA_def_pointer(func, "base", "ObjectBase", "", "The newly created base."); RNA_def_function_return(func, parm); @@ -3268,7 +3274,7 @@ static void rna_def_scene_objects(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_function_ui_description(func, "Unlink object from scene."); RNA_def_function_flag(func, FUNC_USE_REPORTS); parm= RNA_def_pointer(func, "object", "Object", "", "Object to remove from scene."); - RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL); prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "Object"); diff --git a/source/blender/makesrna/intern/rna_sequencer_api.c b/source/blender/makesrna/intern/rna_sequencer_api.c index 425bad9fcd7..245a36d9573 100644 --- a/source/blender/makesrna/intern/rna_sequencer_api.c +++ b/source/blender/makesrna/intern/rna_sequencer_api.c @@ -66,7 +66,7 @@ void RNA_api_sequence_strip(StructRNA *srna) func= RNA_def_function(srna, "swap", "rna_Sequence_swap_internal"); RNA_def_function_flag(func, FUNC_USE_REPORTS); parm= RNA_def_pointer(func, "other", "Sequence", "Other", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL); } #endif diff --git a/source/blender/makesrna/intern/rna_text.c b/source/blender/makesrna/intern/rna_text.c index c61f47b719c..66046939350 100644 --- a/source/blender/makesrna/intern/rna_text.c +++ b/source/blender/makesrna/intern/rna_text.c @@ -164,7 +164,7 @@ static void rna_def_text_marker(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Edit All", "Edit all markers of the same group as one"); - prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); + prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Color", "Color to display the marker with"); } diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index 9748fadf1d2..7ad59795732 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -325,9 +325,6 @@ static void rna_ImageTexture_mipmap_set(PointerRNA *ptr, int value) if(value) tex->imaflag |= TEX_MIPMAP; else tex->imaflag &= ~TEX_MIPMAP; - - if(tex->imaflag & TEX_MIPMAP) - tex->texfilter = TXF_EWA; } static void rna_Envmap_source_update(Main *bmain, Scene *scene, PointerRNA *ptr) @@ -979,13 +976,6 @@ static void rna_def_texture_image(BlenderRNA *brna) {TEX_REPEAT, "REPEAT", 0, "Repeat", "Causes the image to repeat horizontally and vertically"}, {TEX_CHECKER, "CHECKER", 0, "Checker", "Causes the image to repeat in checker board pattern"}, {0, NULL, 0, NULL, NULL}}; - - static EnumPropertyItem prop_normal_space[] = { - {MTEX_NSPACE_CAMERA, "CAMERA", 0, "Camera", ""}, - {MTEX_NSPACE_WORLD, "WORLD", 0, "World", ""}, - {MTEX_NSPACE_OBJECT, "OBJECT", 0, "Object", ""}, - {MTEX_NSPACE_TANGENT, "TANGENT", 0, "Tangent", ""}, - {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "ImageTexture", "Texture"); RNA_def_struct_ui_text(srna, "Image Texture", ""); @@ -1123,15 +1113,6 @@ static void rna_def_texture_image(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "imaflag", TEX_NORMALMAP); RNA_def_property_ui_text(prop, "Normal Map", "Uses image RGB values for normal mapping"); RNA_def_property_update(prop, 0, "rna_Texture_update"); - - /* not sure why this goes in mtex instead of texture directly? */ - RNA_def_struct_sdna(srna, "MTex"); - - prop= RNA_def_property(srna, "normal_space", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "normapspace"); - RNA_def_property_enum_items(prop, prop_normal_space); - RNA_def_property_ui_text(prop, "Normal Space", "Sets space of normal map image"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); } static void rna_def_texture_plugin(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 536d30d0958..a7b7d91a2b6 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2790,7 +2790,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) prop= RNA_def_property(srna, "render_output_directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "renderdir"); - RNA_def_property_ui_text(prop, "Render Output Directory", "The default directory for rendering output"); + RNA_def_property_ui_text(prop, "Render Output Directory", "The default directory for rendering output, for new scenes"); prop= RNA_def_property(srna, "script_directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "pythondir"); diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c index de96684a2dd..cbf2bd8af4b 100644 --- a/source/blender/modifiers/intern/MOD_util.c +++ b/source/blender/modifiers/intern/MOD_util.c @@ -53,7 +53,8 @@ void get_texture_value(Tex *texture, float *tex_co, TexResult *texres) { int result_type; - result_type = multitex_ext(texture, tex_co, NULL, NULL, 0, texres); + /* no node textures for now */ + result_type = multitex_ext_safe(texture, tex_co, texres); /* if the texture gave an RGB value, we assume it didn't give a valid * intensity, so calculate one (formula from do_material_tex). diff --git a/source/blender/python/generic/mathutils.c b/source/blender/python/generic/mathutils.c index 73f16cb0cf1..d307d1008a7 100644 --- a/source/blender/python/generic/mathutils.c +++ b/source/blender/python/generic/mathutils.c @@ -55,6 +55,18 @@ * - Mathutils.OrthoProjectionMatrix -> mathutils.Matrix.OrthoProjection * * Moved to Geometry module: Intersect, TriangleArea, TriangleNormal, QuadNormal, LineIntersect + * - geometry.Intersect -> intersect_ray_tri + * - geometry.ClosestPointOnLine -> intersect_point_line + * - geometry.PointInTriangle2D -> intersect_point_tri_2d + * - geometry.PointInQuad2D -> intersect_point_quad_2d + * - geometry.LineIntersect -> intersect_line_line + * - geometry.LineIntersect2D -> intersect_line_line_2d + * - geometry.BezierInterp -> interpolate_bezier + * - geometry.TriangleArea -> area_tri + * - geometry.QuadNormal, TriangleNormal -> normal + * - geometry.PolyFill -> tesselate_polygon + * - geometry.BoxPack2D -> box_pack_2d + * - geometry.BarycentricTransform -> barycentric_transform */ #include "mathutils.h" diff --git a/source/blender/python/generic/mathutils_geometry.c b/source/blender/python/generic/mathutils_geometry.c index 8b25a7b805f..1010a08c9ed 100644 --- a/source/blender/python/generic/mathutils_geometry.c +++ b/source/blender/python/generic/mathutils_geometry.c @@ -44,13 +44,15 @@ /*-------------------------DOC STRINGS ---------------------------*/ -static char M_Geometry_doc[] = "The Blender geometry module\n\n"; -static char M_Geometry_Intersect_doc[] = -".. function:: Intersect(v1, v2, v3, ray, orig, clip=True)\n" +static char M_Geometry_doc[]= "The Blender geometry module\n\n"; + +//---------------------------------INTERSECTION FUNCTIONS-------------------- + +static char M_Geometry_intersect_ray_tri_doc[] = +".. function:: intersect_ray_tri(v1, v2, v3, ray, orig, clip=True)\n" "\n" " Returns the intersection between a ray and a triangle, if possible, returns None otherwise.\n" "\n" -" :rtype: boolean\n" " :arg v1: Point1\n" " :type v1: :class:`mathutils.Vector`\n" " :arg v2: Point2\n" @@ -62,147 +64,18 @@ static char M_Geometry_Intersect_doc[] = " :arg orig: Origin\n" " :type orig: :class:`mathutils.Vector`\n" " :arg clip: Clip by the ray length\n" -" :type clip: boolean\n"; - -static char M_Geometry_TriangleArea_doc[] = -".. function:: TriangleArea(v1, v2, v3)\n" -"\n" -" Returns the area size of the 2D or 3D triangle defined.\n" -"\n" -" :rtype: float\n" -" :arg v1: Point1\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Point2\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: Point3\n" -" :type v3: :class:`mathutils.Vector`\n"; - -static char M_Geometry_TriangleNormal_doc[] = -".. function:: TriangleNormal(v1, v2, v3)\n" -"\n" -" Returns the normal of the 3D triangle defined.\n" -"\n" -" :rtype: :class:`mathutils.Vector`\n" -" :arg v1: Point1\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Point2\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: Point3\n" -" :type v3: :class:`mathutils.Vector`\n"; - -static char M_Geometry_QuadNormal_doc[] = -".. function:: QuadNormal(v1, v2, v3, v4)\n" -"\n" -" Returns the normal of the 3D quad defined.\n" -"\n" -" :rtype: :class:`mathutils.Vector`\n" -" :arg v1: Point1\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Point2\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: Point3\n" -" :type v3: :class:`mathutils.Vector`\n" -" :arg v4: Point4\n" -" :type v4: :class:`mathutils.Vector`\n"; - -static char M_Geometry_LineIntersect_doc[] = -".. function:: LineIntersect(v1, v2, v3, v4)\n" -"\n" -" Returns a tuple with the points on each line respectively closest to the other.\n" -"\n" -" :rtype: tuple with elements being of type :class:`mathutils.Vector`\n" -" :arg v1: First point of the first line\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Second point of the first line\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: First point of the second line\n" -" :type v3: :class:`mathutils.Vector`\n" -" :arg v4: Second point of the second line\n" -" :type v4: :class:`mathutils.Vector`\n"; - -static char M_Geometry_PolyFill_doc[] = -".. function:: PolyFill(veclist_list)\n" -"\n" -" Takes a list of polylines (each point a vector) and returns the point indicies for a polyline filled with triangles.\n" -"\n" -" :rtype: list\n" -" :arg veclist_list: list of polylines\n"; - -static char M_Geometry_LineIntersect2D_doc[] = -".. function:: LineIntersect2D(lineA_p1, lineA_p2, lineB_p1, lineB_p2)\n" -"\n" -" Takes 2 lines (as 4 vectors) and returns a vector for their point of intersection or None.\n" -"\n" -" :rtype: :class:`mathutils.Vector`\n" -" :arg lineA_p1: First point of the first line\n" -" :type lineA_p1: :class:`mathutils.Vector`\n" -" :arg lineA_p2: Second point of the first line\n" -" :type lineA_p2: :class:`mathutils.Vector`\n" -" :arg lineB_p1: First point of the second line\n" -" :type lineB_p1: :class:`mathutils.Vector`\n" -" :arg lineB_p2: Second point of the second line\n" -" :type lineB_p2: :class:`mathutils.Vector`\n"; - -static char M_Geometry_ClosestPointOnLine_doc[] = -".. function:: ClosestPointOnLine(pt, line_p1, line_p2)\n" -"\n" -" Takes a point and a line and returns a tuple with the closest point on the line and its distance from the first point of the line as a percentage of the length of the line.\n" -"\n" -" :rtype: (:class:`mathutils.Vector`, float)\n" -" :arg pt: Point\n" -" :type pt: :class:`mathutils.Vector`\n" -" :arg line_p1: First point of the line\n" -" :type line_p1: :class:`mathutils.Vector`\n" -" :arg line_p1: Second point of the line\n" -" :type line_p1: :class:`mathutils.Vector`\n"; - -static char M_Geometry_PointInTriangle2D_doc[] = -".. function:: PointInTriangle2D(pt, tri_p1, tri_p2, tri_p3)\n" -"\n" -" Takes 4 vectors (using only the x and y coordinates): one is the point and the next 3 define the triangle. Returns 1 if the point is within the triangle, otherwise 0.\n" -"\n" -" :rtype: int\n" -" :arg pt: Point\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg tri_p1: First point of the triangle\n" -" :type tri_p1: :class:`mathutils.Vector`\n" -" :arg tri_p2: Second point of the triangle\n" -" :type tri_p2: :class:`mathutils.Vector`\n" -" :arg tri_p3: Third point of the triangle\n" -" :type tri_p3: :class:`mathutils.Vector`\n"; - -static char M_Geometry_PointInQuad2D_doc[] = -".. function:: PointInQuad2D(pt, quad_p1, quad_p2, quad_p3, quad_p4)\n" -"\n" -" Takes 5 vectors (using only the x and y coordinates): one is the point and the next 4 define the quad, only the x and y are used from the vectors. Returns 1 if the point is within the quad, otherwise 0.\n" -"\n" -" :rtype: int\n" -" :arg pt: Point\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg quad_p1: First point of the quad\n" -" :type quad_p1: :class:`mathutils.Vector`\n" -" :arg quad_p2: Second point of the quad\n" -" :type quad_p2: :class:`mathutils.Vector`\n" -" :arg quad_p3: Third point of the quad\n" -" :type quad_p3: :class:`mathutils.Vector`\n" -" :arg quad_p4: Forth point of the quad\n" -" :type quad_p4: :class:`mathutils.Vector`\n"; - -static char M_Geometry_BoxPack2D_doc[] = ""; -static char M_Geometry_BezierInterp_doc[] = ""; -static char M_Geometry_BarycentricTransform_doc[] = ""; - -//---------------------------------INTERSECTION FUNCTIONS-------------------- -//----------------------------------geometry.Intersect() ------------------- -static PyObject *M_Geometry_Intersect(PyObject *UNUSED(self), PyObject* args) +" :type clip: boolean\n" +" :return: The point of intersection or None if no intersection is found\n" +" :rtype: :class:`mathutils.Vector` or None\n" +; +static PyObject *M_Geometry_intersect_ray_tri(PyObject *UNUSED(self), PyObject* args) { VectorObject *ray, *ray_off, *vec1, *vec2, *vec3; float dir[3], orig[3], v1[3], v2[3], v3[3], e1[3], e2[3], pvec[3], tvec[3], qvec[3]; float det, inv_det, u, v, t; - int clip = 1; + int clip= 1; - if(!PyArg_ParseTuple(args, "O!O!O!O!O!|i", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &ray, &vector_Type, &ray_off , &clip)) { - PyErr_SetString(PyExc_TypeError, "expected 5 vector types" ); + if(!PyArg_ParseTuple(args, "intersect_ray_tri:O!O!O!O!O!|i", &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) { @@ -230,19 +103,19 @@ static PyObject *M_Geometry_Intersect(PyObject *UNUSED(self), PyObject* args) cross_v3_v3v3(pvec, dir, e2); /* if determinant is near zero, ray lies in plane of triangle */ - det = dot_v3v3(e1, pvec); + det= dot_v3v3(e1, pvec); if (det > -0.000001 && det < 0.000001) { Py_RETURN_NONE; } - inv_det = 1.0f / det; + inv_det= 1.0f / det; /* calculate distance from v1 to ray origin */ sub_v3_v3v3(tvec, orig, v1); /* calculate U parameter and test bounds */ - u = dot_v3v3(tvec, pvec) * inv_det; + u= dot_v3v3(tvec, pvec) * inv_det; if (clip && (u < 0.0f || u > 1.0f)) { Py_RETURN_NONE; } @@ -251,41 +124,56 @@ static PyObject *M_Geometry_Intersect(PyObject *UNUSED(self), PyObject* args) cross_v3_v3v3(qvec, tvec, e1); /* calculate V parameter and test bounds */ - v = dot_v3v3(dir, qvec) * inv_det; + v= dot_v3v3(dir, qvec) * inv_det; if (clip && (v < 0.0f || u + v > 1.0f)) { Py_RETURN_NONE; } /* calculate t, ray intersects triangle */ - t = dot_v3v3(e2, qvec) * inv_det; + t= dot_v3v3(e2, qvec) * inv_det; mul_v3_fl(dir, t); add_v3_v3v3(pvec, orig, dir); return newVectorObject(pvec, 3, Py_NEW, NULL); } -//----------------------------------geometry.LineIntersect() ------------------- + /* Line-Line intersection using algorithm from mathworld.wolfram.com */ -static PyObject *M_Geometry_LineIntersect(PyObject *UNUSED(self), PyObject* args) + +static char M_Geometry_intersect_line_line_doc[] = +".. function:: intersect_line_line(v1, v2, v3, v4)\n" +"\n" +" Returns a tuple with the points on each line respectively closest to the other.\n" +"\n" +" :arg v1: First point of the first line\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg v2: Second point of the first line\n" +" :type v2: :class:`mathutils.Vector`\n" +" :arg v3: First point of the second line\n" +" :type v3: :class:`mathutils.Vector`\n" +" :arg v4: Second point of the second line\n" +" :type v4: :class:`mathutils.Vector`\n" +" :rtype: tuple of :class:`mathutils.Vector`'s\n" +; +static PyObject *M_Geometry_intersect_line_line(PyObject *UNUSED(self), PyObject *args) { PyObject * tuple; 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!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4 ) ) { - PyErr_SetString(PyExc_TypeError, "expected 4 vector types" ); + if(!PyArg_ParseTuple(args, "intersect_line_line:O!O!O!O!", &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) { - PyErr_SetString(PyExc_TypeError,"vectors must be of the same size" ); + if(vec1->size != vec2->size || vec1->size != vec3->size || vec3->size != vec2->size) { + PyErr_SetString(PyExc_TypeError,"vectors must be of the same size"); return NULL; } if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3) || !BaseMath_ReadCallback(vec4)) return NULL; - if( vec1->size == 3 || vec1->size == 2) { + if(vec1->size == 3 || vec1->size == 2) { int result; if (vec1->size == 3) { @@ -295,147 +183,131 @@ static PyObject *M_Geometry_LineIntersect(PyObject *UNUSED(self), PyObject* args VECCOPY(v4, vec4->vec); } else { - v1[0] = vec1->vec[0]; - v1[1] = vec1->vec[1]; - v1[2] = 0.0f; + v1[0]= vec1->vec[0]; + v1[1]= vec1->vec[1]; + v1[2]= 0.0f; - v2[0] = vec2->vec[0]; - v2[1] = vec2->vec[1]; - v2[2] = 0.0f; + v2[0]= vec2->vec[0]; + v2[1]= vec2->vec[1]; + v2[2]= 0.0f; - v3[0] = vec3->vec[0]; - v3[1] = vec3->vec[1]; - v3[2] = 0.0f; + v3[0]= vec3->vec[0]; + v3[1]= vec3->vec[1]; + v3[2]= 0.0f; - v4[0] = vec4->vec[0]; - v4[1] = vec4->vec[1]; - v4[2] = 0.0f; + v4[0]= vec4->vec[0]; + v4[1]= vec4->vec[1]; + v4[2]= 0.0f; } - result = isect_line_line_v3(v1, v2, v3, v4, i1, i2); + result= isect_line_line_v3(v1, v2, v3, v4, i1, i2); if (result == 0) { /* colinear */ Py_RETURN_NONE; } else { - tuple = PyTuple_New( 2 ); - PyTuple_SetItem( tuple, 0, newVectorObject(i1, vec1->size, Py_NEW, NULL) ); - PyTuple_SetItem( tuple, 1, newVectorObject(i2, vec1->size, Py_NEW, NULL) ); + tuple= PyTuple_New(2); + PyTuple_SET_ITEM(tuple, 0, newVectorObject(i1, vec1->size, Py_NEW, NULL)); + PyTuple_SET_ITEM(tuple, 1, newVectorObject(i2, vec1->size, Py_NEW, NULL)); return tuple; } } else { - PyErr_SetString(PyExc_TypeError, "2D/3D vectors only" ); + PyErr_SetString(PyExc_TypeError, "2D/3D vectors only"); return NULL; } } -//---------------------------------NORMALS FUNCTIONS-------------------- -//----------------------------------geometry.QuadNormal() ------------------- -static PyObject *M_Geometry_QuadNormal(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *vec1; - VectorObject *vec2; - VectorObject *vec3; - VectorObject *vec4; - float v1[3], v2[3], v3[3], v4[3], e1[3], e2[3], n1[3], n2[3]; - - if( !PyArg_ParseTuple( args, "O!O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4 ) ) { - PyErr_SetString(PyExc_TypeError, "expected 4 vector types" ); - return NULL; - } - if( vec1->size != vec2->size || vec1->size != vec3->size || vec1->size != vec4->size) { - PyErr_SetString(PyExc_TypeError,"vectors must be of the same size" ); - return NULL; - } - if( vec1->size != 3 ) { - PyErr_SetString(PyExc_TypeError, "only 3D vectors" ); - return NULL; - } - if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3) || !BaseMath_ReadCallback(vec4)) - return NULL; - - VECCOPY(v1, vec1->vec); - VECCOPY(v2, vec2->vec); - VECCOPY(v3, vec3->vec); - VECCOPY(v4, vec4->vec); - - /* find vectors for two edges sharing v2 */ - sub_v3_v3v3(e1, v1, v2); - sub_v3_v3v3(e2, v3, v2); - - cross_v3_v3v3(n1, e2, e1); - normalize_v3(n1); - - /* find vectors for two edges sharing v4 */ - sub_v3_v3v3(e1, v3, v4); - sub_v3_v3v3(e2, v1, v4); - - cross_v3_v3v3(n2, e2, e1); - normalize_v3(n2); - - /* adding and averaging the normals of both triangles */ - add_v3_v3v3(n1, n2, n1); - normalize_v3(n1); - - return newVectorObject(n1, 3, Py_NEW, NULL); -} - -//----------------------------geometry.TriangleNormal() ------------------- -static PyObject *M_Geometry_TriangleNormal(PyObject *UNUSED(self), PyObject* args) +//----------------------------geometry.normal() ------------------- +static char M_Geometry_normal_doc[] = +".. function:: normal(v1, v2, v3, v4=None)\n" +"\n" +" Returns the normal of the 3D tri or quad.\n" +"\n" +" :arg v1: Point1\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg v2: Point2\n" +" :type v2: :class:`mathutils.Vector`\n" +" :arg v3: Point3\n" +" :type v3: :class:`mathutils.Vector`\n" +" :arg v4: Point4 (optional)\n" +" :type v4: :class:`mathutils.Vector`\n" +" :rtype: :class:`mathutils.Vector`\n" +; +static PyObject *M_Geometry_normal(PyObject *UNUSED(self), PyObject* args) { - VectorObject *vec1, *vec2, *vec3; - float v1[3], v2[3], v3[3], e1[3], e2[3], n[3]; + VectorObject *vec1, *vec2, *vec3, *vec4; + float n[3]; - if( !PyArg_ParseTuple( args, "O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3 ) ) { - PyErr_SetString(PyExc_TypeError, "expected 3 vector types" ); - return NULL; - } - if( vec1->size != vec2->size || vec1->size != vec3->size ) { - PyErr_SetString(PyExc_TypeError, "vectors must be of the same size" ); - return NULL; - } - if( vec1->size != 3 ) { - PyErr_SetString(PyExc_TypeError, "only 3D vectors" ); - return NULL; - } + if(PyTuple_GET_SIZE(args) == 3) { + if(!PyArg_ParseTuple(args, "normal:O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { + return NULL; + } + if(vec1->size != vec2->size || vec1->size != vec3->size) { + PyErr_SetString(PyExc_TypeError, "vectors must be of the same size"); + return NULL; + } + if(vec1->size < 3) { + PyErr_SetString(PyExc_TypeError, "2D vectors unsupported"); + return NULL; + } - if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3)) - return NULL; + if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3)) + return NULL; - VECCOPY(v1, vec1->vec); - VECCOPY(v2, vec2->vec); - VECCOPY(v3, vec3->vec); + normal_tri_v3(n, vec1->vec, vec2->vec, vec3->vec); + } + else { + if(!PyArg_ParseTuple(args, "normal:O!O!O!O!", &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) { + PyErr_SetString(PyExc_TypeError,"vectors must be of the same size"); + return NULL; + } + if(vec1->size < 3) { + PyErr_SetString(PyExc_TypeError, "2D vectors unsupported"); + return NULL; + } - /* find vectors for two edges sharing v2 */ - sub_v3_v3v3(e1, v1, v2); - sub_v3_v3v3(e2, v3, v2); + if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3) || !BaseMath_ReadCallback(vec4)) + return NULL; - cross_v3_v3v3(n, e2, e1); - normalize_v3(n); + normal_quad_v3(n, vec1->vec, vec2->vec, vec3->vec, vec4->vec); + } return newVectorObject(n, 3, Py_NEW, NULL); } //--------------------------------- AREA FUNCTIONS-------------------- -//----------------------------------geometry.TriangleArea() ------------------- -static PyObject *M_Geometry_TriangleArea(PyObject *UNUSED(self), PyObject* args) + +static char M_Geometry_area_tri_doc[] = +".. function:: area_tri(v1, v2, v3)\n" +"\n" +" Returns the area size of the 2D or 3D triangle defined.\n" +"\n" +" :arg v1: Point1\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg v2: Point2\n" +" :type v2: :class:`mathutils.Vector`\n" +" :arg v3: Point3\n" +" :type v3: :class:`mathutils.Vector`\n" +" :rtype: float\n" +; +static PyObject *M_Geometry_area_tri(PyObject *UNUSED(self), PyObject* args) { VectorObject *vec1, *vec2, *vec3; - float v1[3], v2[3], v3[3]; - if( !PyArg_ParseTuple - ( args, "O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2 - , &vector_Type, &vec3 ) ) { - PyErr_SetString(PyExc_TypeError, "expected 3 vector types"); + if(!PyArg_ParseTuple(args, "area_tri:O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { return NULL; } - if( vec1->size != vec2->size || vec1->size != vec3->size ) { - PyErr_SetString(PyExc_TypeError, "vectors must be of the same size" ); + + if(vec1->size != vec2->size || vec1->size != vec3->size) { + PyErr_SetString(PyExc_TypeError, "vectors must be of the same size"); return NULL; } @@ -443,71 +315,62 @@ static PyObject *M_Geometry_TriangleArea(PyObject *UNUSED(self), PyObject* args) return NULL; if (vec1->size == 3) { - VECCOPY(v1, vec1->vec); - VECCOPY(v2, vec2->vec); - VECCOPY(v3, vec3->vec); - - return PyFloat_FromDouble( area_tri_v3(v1, v2, v3) ); + return PyFloat_FromDouble(area_tri_v3(vec1->vec, vec2->vec, vec3->vec)); } else if (vec1->size == 2) { - v1[0] = vec1->vec[0]; - v1[1] = vec1->vec[1]; - - v2[0] = vec2->vec[0]; - v2[1] = vec2->vec[1]; - - v3[0] = vec3->vec[0]; - v3[1] = vec3->vec[1]; - - return PyFloat_FromDouble( area_tri_v2(v1, v2, v3) ); + return PyFloat_FromDouble(area_tri_v2(vec1->vec, vec2->vec, vec3->vec)); } else { - PyErr_SetString(PyExc_TypeError, "only 2D,3D vectors are supported" ); + PyErr_SetString(PyExc_TypeError, "only 2D,3D vectors are supported"); return NULL; } } /*----------------------------------geometry.PolyFill() -------------------*/ +static char M_Geometry_tesselate_polygon_doc[] = +".. function:: tesselate_polygon(veclist_list)\n" +"\n" +" Takes a list of polylines (each point a vector) and returns the point indicies for a polyline filled with triangles.\n" +"\n" +" :arg veclist_list: list of polylines\n" +" :rtype: list\n" +; /* PolyFill function, uses Blenders scanfill to fill multiple poly lines */ -static PyObject *M_Geometry_PolyFill(PyObject *UNUSED(self), PyObject * polyLineSeq ) +static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject *polyLineSeq) { PyObject *tri_list; /*return this list of tri's */ PyObject *polyLine, *polyVec; - int i, len_polylines, len_polypoints, ls_error = 0; - + int i, len_polylines, len_polypoints, ls_error= 0; + /* display listbase */ ListBase dispbase={NULL, NULL}; DispList *dl; float *fp; /*pointer to the array of malloced dl->verts to set the points from the vectors */ int index, *dl_face, totpoints=0; - - - dispbase.first= dispbase.last= NULL; - - + if(!PySequence_Check(polyLineSeq)) { - PyErr_SetString(PyExc_TypeError, "expected a sequence of poly lines" ); + PyErr_SetString(PyExc_TypeError, "expected a sequence of poly lines"); return NULL; } - len_polylines = PySequence_Size( polyLineSeq ); + len_polylines= PySequence_Size(polyLineSeq); - for( i = 0; i < len_polylines; ++i ) { - polyLine= PySequence_GetItem( polyLineSeq, i ); + for(i= 0; i < len_polylines; ++i) { + polyLine= PySequence_GetItem(polyLineSeq, i); if (!PySequence_Check(polyLine)) { freedisplist(&dispbase); Py_XDECREF(polyLine); /* may be null so use Py_XDECREF*/ - PyErr_SetString(PyExc_TypeError, "One or more of the polylines is not a sequence of mathutils.Vector's" ); + PyErr_SetString(PyExc_TypeError, "One or more of the polylines is not a sequence of mathutils.Vector's"); return NULL; } - len_polypoints= PySequence_Size( polyLine ); + len_polypoints= PySequence_Size(polyLine); if (len_polypoints>0) { /* dont bother adding edges as polylines */ #if 0 - if (EXPP_check_sequence_consistency( polyLine, &vector_Type ) != 1) { + if (EXPP_check_sequence_consistency(polyLine, &vector_Type) != 1) { freedisplist(&dispbase); Py_DECREF(polyLine); - PyErr_SetString(PyExc_TypeError, "A point in one of the polylines is not a mathutils.Vector type" ); + PyErr_SetString(PyExc_TypeError, "A point in one of the polylines is not a mathutils.Vector type"); return NULL; } #endif @@ -518,20 +381,20 @@ static PyObject *M_Geometry_PolyFill(PyObject *UNUSED(self), PyObject * polyLine dl->type= DL_POLY; dl->parts= 1; /* no faces, 1 edge loop */ dl->col= 0; /* no material */ - dl->verts= fp= MEM_callocN( sizeof(float)*3*len_polypoints, "dl verts"); + 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) { - polyVec= PySequence_GetItem( polyLine, index ); + for(index= 0; index<len_polypoints; ++index, fp+=3) { + polyVec= PySequence_GetItem(polyLine, index); if(VectorObject_Check(polyVec)) { if(!BaseMath_ReadCallback((VectorObject *)polyVec)) ls_error= 1; - fp[0] = ((VectorObject *)polyVec)->vec[0]; - fp[1] = ((VectorObject *)polyVec)->vec[1]; - if( ((VectorObject *)polyVec)->size > 2 ) - fp[2] = ((VectorObject *)polyVec)->vec[2]; + fp[0]= ((VectorObject *)polyVec)->vec[0]; + fp[1]= ((VectorObject *)polyVec)->vec[1]; + 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 */ } @@ -548,7 +411,7 @@ static PyObject *M_Geometry_PolyFill(PyObject *UNUSED(self), PyObject * polyLine if(ls_error) { freedisplist(&dispbase); /* possible some dl was allocated */ - PyErr_SetString(PyExc_TypeError, "A point in one of the polylines is not a mathutils.Vector type" ); + PyErr_SetString(PyExc_TypeError, "A point in one of the polylines is not a mathutils.Vector type"); return NULL; } else if (totpoints) { @@ -560,16 +423,16 @@ static PyObject *M_Geometry_PolyFill(PyObject *UNUSED(self), PyObject * polyLine dl= dispbase.first; tri_list= PyList_New(dl->parts); - if( !tri_list ) { + if(!tri_list) { freedisplist(&dispbase); - PyErr_SetString(PyExc_RuntimeError, "geometry.PolyFill failed to make a new list" ); + PyErr_SetString(PyExc_RuntimeError, "geometry.PolyFill failed to make a new list"); return NULL; } index= 0; dl_face= dl->index; while(index < dl->parts) { - PyList_SET_ITEM(tri_list, index, Py_BuildValue("iii", dl_face[0], dl_face[1], dl_face[2]) ); + PyList_SET_ITEM(tri_list, index, Py_BuildValue("iii", dl_face[0], dl_face[1], dl_face[2])); dl_face+= 3; index++; } @@ -583,18 +446,32 @@ static PyObject *M_Geometry_PolyFill(PyObject *UNUSED(self), PyObject * polyLine return tri_list; } - -static PyObject *M_Geometry_LineIntersect2D(PyObject *UNUSED(self), PyObject* args) +static char M_Geometry_intersect_line_line_2d_doc[] = +".. function:: intersect_line_line_2d(lineA_p1, lineA_p2, lineB_p1, lineB_p2)\n" +"\n" +" Takes 2 lines (as 4 vectors) and returns a vector for their point of intersection or None.\n" +"\n" +" :arg lineA_p1: First point of the first line\n" +" :type lineA_p1: :class:`mathutils.Vector`\n" +" :arg lineA_p2: Second point of the first line\n" +" :type lineA_p2: :class:`mathutils.Vector`\n" +" :arg lineB_p1: First point of the second line\n" +" :type lineB_p1: :class:`mathutils.Vector`\n" +" :arg lineB_p2: Second point of the second line\n" +" :type lineB_p2: :class:`mathutils.Vector`\n" +" :return: The point of intersection or None when not found\n" +" :rtype: :class:`mathutils.Vector` or None\n" +; +static PyObject *M_Geometry_intersect_line_line_2d(PyObject *UNUSED(self), PyObject* args) { VectorObject *line_a1, *line_a2, *line_b1, *line_b2; float vi[2]; - if( !PyArg_ParseTuple ( args, "O!O!O!O!", + if(!PyArg_ParseTuple (args, "intersect_line_line_2d:O!O!O!O!", &vector_Type, &line_a1, &vector_Type, &line_a2, &vector_Type, &line_b1, &vector_Type, &line_b2) ) { - PyErr_SetString(PyExc_TypeError, "expected 4 vector types" ); return NULL; } @@ -608,19 +485,32 @@ static PyObject *M_Geometry_LineIntersect2D(PyObject *UNUSED(self), PyObject* ar } } -static PyObject *M_Geometry_ClosestPointOnLine(PyObject *UNUSED(self), PyObject* args) + +static char M_Geometry_intersect_point_line_doc[] = +".. function:: intersect_point_line(pt, line_p1, line_p2)\n" +"\n" +" Takes a point and a line and returns a tuple with the closest point on the line and its distance from the first point of the line as a percentage of the length of the line.\n" +"\n" +" :arg pt: Point\n" +" :type pt: :class:`mathutils.Vector`\n" +" :arg line_p1: First point of the line\n" +" :type line_p1: :class:`mathutils.Vector`\n" +" :arg line_p1: Second point of the line\n" +" :type line_p1: :class:`mathutils.Vector`\n" +" :rtype: (:class:`mathutils.Vector`, float)\n" +; +static PyObject *M_Geometry_intersect_point_line(PyObject *UNUSED(self), PyObject* args) { VectorObject *pt, *line_1, *line_2; float pt_in[3], pt_out[3], l1[3], l2[3]; float lambda; PyObject *ret; - if( !PyArg_ParseTuple ( args, "O!O!O!", - &vector_Type, &pt, - &vector_Type, &line_1, - &vector_Type, &line_2) - ) { - PyErr_SetString(PyExc_TypeError, "expected 3 vector types" ); + if(!PyArg_ParseTuple (args, "intersect_point_line:O!O!O!", + &vector_Type, &pt, + &vector_Type, &line_1, + &vector_Type, &line_2) + ) { return NULL; } @@ -638,25 +528,39 @@ static PyObject *M_Geometry_ClosestPointOnLine(PyObject *UNUSED(self), PyObject* else { l2[2]=0.0; VECCOPY2D(l2, line_2->vec) } /* do the calculation */ - lambda = closest_to_line_v3( pt_out,pt_in, l1, l2); + lambda= closest_to_line_v3(pt_out,pt_in, l1, l2); - ret = PyTuple_New(2); - PyTuple_SET_ITEM( ret, 0, newVectorObject(pt_out, 3, Py_NEW, NULL) ); - PyTuple_SET_ITEM( ret, 1, PyFloat_FromDouble(lambda) ); + ret= PyTuple_New(2); + PyTuple_SET_ITEM(ret, 0, newVectorObject(pt_out, 3, Py_NEW, NULL)); + PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(lambda)); return ret; } -static PyObject *M_Geometry_PointInTriangle2D(PyObject *UNUSED(self), PyObject* args) +static char M_Geometry_intersect_point_tri_2d_doc[] = +".. function:: intersect_point_tri_2d(pt, tri_p1, tri_p2, tri_p3)\n" +"\n" +" Takes 4 vectors (using only the x and y coordinates): one is the point and the next 3 define the triangle. Returns 1 if the point is within the triangle, otherwise 0.\n" +"\n" +" :arg pt: Point\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg tri_p1: First point of the triangle\n" +" :type tri_p1: :class:`mathutils.Vector`\n" +" :arg tri_p2: Second point of the triangle\n" +" :type tri_p2: :class:`mathutils.Vector`\n" +" :arg tri_p3: Third point of the triangle\n" +" :type tri_p3: :class:`mathutils.Vector`\n" +" :rtype: int\n" +; +static PyObject *M_Geometry_intersect_point_tri_2d(PyObject *UNUSED(self), PyObject* args) { VectorObject *pt_vec, *tri_p1, *tri_p2, *tri_p3; - if( !PyArg_ParseTuple ( args, "O!O!O!O!", - &vector_Type, &pt_vec, - &vector_Type, &tri_p1, - &vector_Type, &tri_p2, - &vector_Type, &tri_p3) + if(!PyArg_ParseTuple (args, "intersect_point_tri_2d:O!O!O!O!", + &vector_Type, &pt_vec, + &vector_Type, &tri_p1, + &vector_Type, &tri_p2, + &vector_Type, &tri_p3) ) { - PyErr_SetString(PyExc_TypeError, "expected 4 vector types" ); return NULL; } @@ -666,18 +570,34 @@ static PyObject *M_Geometry_PointInTriangle2D(PyObject *UNUSED(self), PyObject* return PyLong_FromLong(isect_point_tri_v2(pt_vec->vec, tri_p1->vec, tri_p2->vec, tri_p3->vec)); } -static PyObject *M_Geometry_PointInQuad2D(PyObject *UNUSED(self), PyObject* args) +static char M_Geometry_intersect_point_quad_2d_doc[] = +".. function:: intersect_point_quad_2d(pt, quad_p1, quad_p2, quad_p3, quad_p4)\n" +"\n" +" Takes 5 vectors (using only the x and y coordinates): one is the point and the next 4 define the quad, only the x and y are used from the vectors. Returns 1 if the point is within the quad, otherwise 0.\n" +"\n" +" :arg pt: Point\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg quad_p1: First point of the quad\n" +" :type quad_p1: :class:`mathutils.Vector`\n" +" :arg quad_p2: Second point of the quad\n" +" :type quad_p2: :class:`mathutils.Vector`\n" +" :arg quad_p3: Third point of the quad\n" +" :type quad_p3: :class:`mathutils.Vector`\n" +" :arg quad_p4: Forth point of the quad\n" +" :type quad_p4: :class:`mathutils.Vector`\n" +" :rtype: int\n" +; +static PyObject *M_Geometry_intersect_point_quad_2d(PyObject *UNUSED(self), PyObject* args) { VectorObject *pt_vec, *quad_p1, *quad_p2, *quad_p3, *quad_p4; - if( !PyArg_ParseTuple ( args, "O!O!O!O!O!", - &vector_Type, &pt_vec, - &vector_Type, &quad_p1, - &vector_Type, &quad_p2, - &vector_Type, &quad_p3, - &vector_Type, &quad_p4) + if(!PyArg_ParseTuple (args, "intersect_point_quad_2d:O!O!O!O!O!", + &vector_Type, &pt_vec, + &vector_Type, &quad_p1, + &vector_Type, &quad_p2, + &vector_Type, &quad_p3, + &vector_Type, &quad_p4) ) { - PyErr_SetString(PyExc_TypeError, "expected 5 vector types" ); return NULL; } @@ -687,7 +607,7 @@ static PyObject *M_Geometry_PointInQuad2D(PyObject *UNUSED(self), PyObject* args return PyLong_FromLong(isect_point_quad_v2(pt_vec->vec, quad_p1->vec, quad_p2->vec, quad_p3->vec, quad_p4->vec)); } -static int boxPack_FromPyObject(PyObject * value, boxPack **boxarray ) +static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) { int len, i; PyObject *list_item, *item_1, *item_2; @@ -695,38 +615,38 @@ static int boxPack_FromPyObject(PyObject * value, boxPack **boxarray ) /* Error checking must already be done */ - if( !PyList_Check( value ) ) { - PyErr_SetString(PyExc_TypeError, "can only back a list of [x,y,x,w]" ); + if(!PyList_Check(value)) { + PyErr_SetString(PyExc_TypeError, "can only back a list of [x,y,x,w]"); return -1; } - len = PyList_Size( value ); + len= PyList_Size(value); - (*boxarray) = MEM_mallocN( len*sizeof(boxPack), "boxPack box"); + (*boxarray)= MEM_mallocN(len*sizeof(boxPack), "boxPack box"); - for( i = 0; i < len; i++ ) { - list_item = PyList_GET_ITEM( value, i ); - if( !PyList_Check( list_item ) || PyList_Size( list_item ) < 4 ) { + for(i= 0; i < len; i++) { + list_item= PyList_GET_ITEM(value, i); + if(!PyList_Check(list_item) || PyList_Size(list_item) < 4) { MEM_freeN(*boxarray); - PyErr_SetString(PyExc_TypeError, "can only back a list of [x,y,x,w]" ); + PyErr_SetString(PyExc_TypeError, "can only back a list of [x,y,x,w]"); return -1; } - box = (*boxarray)+i; + box= (*boxarray)+i; - item_1 = PyList_GET_ITEM(list_item, 2); - item_2 = PyList_GET_ITEM(list_item, 3); + item_1= PyList_GET_ITEM(list_item, 2); + item_2= PyList_GET_ITEM(list_item, 3); if (!PyNumber_Check(item_1) || !PyNumber_Check(item_2)) { MEM_freeN(*boxarray); - PyErr_SetString(PyExc_TypeError, "can only back a list of 2d boxes [x,y,x,w]" ); + PyErr_SetString(PyExc_TypeError, "can only back a list of 2d boxes [x,y,x,w]"); return -1; } - box->w = (float)PyFloat_AsDouble( item_1 ); - box->h = (float)PyFloat_AsDouble( item_2 ); - box->index = i; + box->w= (float)PyFloat_AsDouble(item_1); + box->h= (float)PyFloat_AsDouble(item_2); + box->index= i; /* verts will be added later */ } return 0; @@ -738,47 +658,77 @@ static void boxPack_ToPyObject(PyObject * value, boxPack **boxarray) PyObject *list_item; boxPack *box; - len = PyList_Size( value ); + len= PyList_Size(value); - 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 )); - PyList_SET_ITEM( list_item, 1, PyFloat_FromDouble( box->y )); + 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)); + PyList_SET_ITEM(list_item, 1, PyFloat_FromDouble(box->y)); } MEM_freeN(*boxarray); } - -static PyObject *M_Geometry_BoxPack2D(PyObject *UNUSED(self), PyObject * boxlist ) +static char M_Geometry_box_pack_2d_doc[] = +".. function:: box_pack_2d(boxes)\n" +"\n" +" Returns the normal of the 3D tri or quad.\n" +"\n" +" :arg boxes: list of boxes, each box is a list where the first 4 items are [x,y, width, height, ...] other items are ignored.\n" +" :type boxes: list\n" +" :return: the width and height of the packed bounding box\n" +" :rtype: tuple, pair of floats\n" +; +static PyObject *M_Geometry_box_pack_2d(PyObject *UNUSED(self), PyObject *boxlist) { - boxPack *boxarray = NULL; - float tot_width, tot_height; + float tot_width= 0.0f, tot_height= 0.0f; int len; - int error; + + PyObject *ret; if(!PyList_Check(boxlist)) { - PyErr_SetString(PyExc_TypeError, "expected a sequence of boxes [[x,y,w,h], ... ]" ); + PyErr_SetString(PyExc_TypeError, "expected a list of boxes [[x,y,w,h], ... ]"); return NULL; } - - len = PyList_Size( boxlist ); - - if (!len) - return Py_BuildValue( "ff", 0.0, 0.0); - - error = boxPack_FromPyObject(boxlist, &boxarray); - if (error!=0) return NULL; - - /* Non Python function */ - boxPack2D(boxarray, len, &tot_width, &tot_height); - - boxPack_ToPyObject(boxlist, &boxarray); - - return Py_BuildValue( "ff", tot_width, tot_height); + + len= PyList_GET_SIZE(boxlist); + if (len) { + boxPack *boxarray= NULL; + if(boxPack_FromPyObject(boxlist, &boxarray) == -1) { + return NULL; /* exception set */ + } + + /* Non Python function */ + boxPack2D(boxarray, len, &tot_width, &tot_height); + + boxPack_ToPyObject(boxlist, &boxarray); + } + + ret= PyTuple_New(2); + PyTuple_SET_ITEM(ret, 0, PyFloat_FromDouble(tot_width)); + PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(tot_width)); + return ret; } -static PyObject *M_Geometry_BezierInterp(PyObject *UNUSED(self), PyObject* args) +static char M_Geometry_interpolate_bezier_doc[] = +".. function:: interpolate_bezier(knot1, handle1, handle2, knot2, resolution)\n" +"\n" +" Interpolate a bezier spline segment.\n" +"\n" +" :arg knot1: First bezier spline point.\n" +" :type knot1: :class:`mathutils.Vector`\n" +" :arg handle1: First bezier spline handle.\n" +" :type handle1: :class:`mathutils.Vector`\n" +" :arg handle2: Second bezier spline handle.\n" +" :type handle2: :class:`mathutils.Vector`\n" +" :arg knot2: Second bezier spline point.\n" +" :type knot2: :class:`mathutils.Vector`\n" +" :arg resolution: Number of points to return.\n" +" :type resolution: int\n" +" :return: The interpolated points\n" +" :rtype: list of :class:`mathutils.Vector`'s\n" +; +static PyObject *M_Geometry_interpolate_bezier(PyObject *UNUSED(self), PyObject* args) { VectorObject *vec_k1, *vec_h1, *vec_k2, *vec_h2; int resolu; @@ -787,19 +737,19 @@ static PyObject *M_Geometry_BezierInterp(PyObject *UNUSED(self), PyObject* args) float *coord_array, *fp; PyObject *list; - float k1[4] = {0.0, 0.0, 0.0, 0.0}; - float h1[4] = {0.0, 0.0, 0.0, 0.0}; - float k2[4] = {0.0, 0.0, 0.0, 0.0}; - float h2[4] = {0.0, 0.0, 0.0, 0.0}; + float k1[4]= {0.0, 0.0, 0.0, 0.0}; + float h1[4]= {0.0, 0.0, 0.0, 0.0}; + float k2[4]= {0.0, 0.0, 0.0, 0.0}; + float h2[4]= {0.0, 0.0, 0.0, 0.0}; - if( !PyArg_ParseTuple ( args, "O!O!O!O!i", + if(!PyArg_ParseTuple (args, "O!O!O!O!i", &vector_Type, &vec_k1, &vector_Type, &vec_h1, &vector_Type, &vec_h2, &vector_Type, &vec_k2, &resolu) || (resolu<=1) ) { - PyErr_SetString(PyExc_TypeError, "expected 4 vector types and an int greater then 1" ); + PyErr_SetString(PyExc_TypeError, "expected 4 vector types and an int greater then 1"); return NULL; } @@ -813,7 +763,7 @@ static PyObject *M_Geometry_BezierInterp(PyObject *UNUSED(self), PyObject* args) 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), "BezierInterp"); + coord_array= MEM_callocN(dims * (resolu) * sizeof(float), "interpolate_bezier"); 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); } @@ -827,21 +777,43 @@ static PyObject *M_Geometry_BezierInterp(PyObject *UNUSED(self), PyObject* args) return list; } -static PyObject *M_Geometry_BarycentricTransform(PyObject *UNUSED(self), PyObject *args) +static char M_Geometry_barycentric_transform_doc[] = +".. function:: barycentric_transform(point, tri_a1, tri_a2, tri_a3, tri_b1, tri_b2, tri_b3)\n" +"\n" +" Return a transformed point, the transformation is defined by 2 triangles.\n" +"\n" +" :arg point: The point to transform.\n" +" :type point: :class:`mathutils.Vector`\n" +" :arg tri_a1: source triangle vertex.\n" +" :type tri_a1: :class:`mathutils.Vector`\n" +" :arg tri_a2: source triangle vertex.\n" +" :type tri_a2: :class:`mathutils.Vector`\n" +" :arg tri_a3: source triangle vertex.\n" +" :type tri_a3: :class:`mathutils.Vector`\n" +" :arg tri_a1: target triangle vertex.\n" +" :type tri_a1: :class:`mathutils.Vector`\n" +" :arg tri_a2: target triangle vertex.\n" +" :type tri_a2: :class:`mathutils.Vector`\n" +" :arg tri_a3: target triangle vertex.\n" +" :type tri_a3: :class:`mathutils.Vector`\n" +" :return: The transformed point\n" +" :rtype: :class:`mathutils.Vector`'s\n" +; +static PyObject *M_Geometry_barycentric_transform(PyObject *UNUSED(self), PyObject *args) { VectorObject *vec_pt; VectorObject *vec_t1_tar, *vec_t2_tar, *vec_t3_tar; VectorObject *vec_t1_src, *vec_t2_src, *vec_t3_src; float vec[3]; - if( !PyArg_ParseTuple ( args, "O!O!O!O!O!O!O!", - &vector_Type, &vec_pt, - &vector_Type, &vec_t1_src, - &vector_Type, &vec_t2_src, - &vector_Type, &vec_t3_src, - &vector_Type, &vec_t1_tar, - &vector_Type, &vec_t2_tar, - &vector_Type, &vec_t3_tar) || ( vec_pt->size != 3 || + if(!PyArg_ParseTuple (args, "O!O!O!O!O!O!O!", + &vector_Type, &vec_pt, + &vector_Type, &vec_t1_src, + &vector_Type, &vec_t2_src, + &vector_Type, &vec_t3_src, + &vector_Type, &vec_t1_tar, + &vector_Type, &vec_t2_tar, + &vector_Type, &vec_t3_tar) ||(vec_pt->size != 3 || vec_t1_src->size != 3 || vec_t2_src->size != 3 || vec_t3_src->size != 3 || @@ -849,7 +821,7 @@ static PyObject *M_Geometry_BarycentricTransform(PyObject *UNUSED(self), PyObjec vec_t2_tar->size != 3 || vec_t3_tar->size != 3) ) { - PyErr_SetString(PyExc_TypeError, "expected 7, 3D vector types" ); + PyErr_SetString(PyExc_TypeError, "expected 7, 3D vector types"); return NULL; } @@ -860,24 +832,23 @@ static PyObject *M_Geometry_BarycentricTransform(PyObject *UNUSED(self), PyObjec return newVectorObject(vec, 3, Py_NEW, NULL); } -struct PyMethodDef M_Geometry_methods[] = { - {"Intersect", ( PyCFunction ) M_Geometry_Intersect, METH_VARARGS, M_Geometry_Intersect_doc}, - {"TriangleArea", ( PyCFunction ) M_Geometry_TriangleArea, METH_VARARGS, M_Geometry_TriangleArea_doc}, - {"TriangleNormal", ( PyCFunction ) M_Geometry_TriangleNormal, METH_VARARGS, M_Geometry_TriangleNormal_doc}, - {"QuadNormal", ( PyCFunction ) M_Geometry_QuadNormal, METH_VARARGS, M_Geometry_QuadNormal_doc}, - {"LineIntersect", ( PyCFunction ) M_Geometry_LineIntersect, METH_VARARGS, M_Geometry_LineIntersect_doc}, - {"PolyFill", ( PyCFunction ) M_Geometry_PolyFill, METH_O, M_Geometry_PolyFill_doc}, - {"LineIntersect2D", ( PyCFunction ) M_Geometry_LineIntersect2D, METH_VARARGS, M_Geometry_LineIntersect2D_doc}, - {"ClosestPointOnLine", ( PyCFunction ) M_Geometry_ClosestPointOnLine, METH_VARARGS, M_Geometry_ClosestPointOnLine_doc}, - {"PointInTriangle2D", ( PyCFunction ) M_Geometry_PointInTriangle2D, METH_VARARGS, M_Geometry_PointInTriangle2D_doc}, - {"PointInQuad2D", ( PyCFunction ) M_Geometry_PointInQuad2D, METH_VARARGS, M_Geometry_PointInQuad2D_doc}, - {"BoxPack2D", ( PyCFunction ) M_Geometry_BoxPack2D, METH_O, M_Geometry_BoxPack2D_doc}, - {"BezierInterp", ( PyCFunction ) M_Geometry_BezierInterp, METH_VARARGS, M_Geometry_BezierInterp_doc}, - {"BarycentricTransform", ( PyCFunction ) M_Geometry_BarycentricTransform, METH_VARARGS, M_Geometry_BarycentricTransform_doc}, +struct PyMethodDef M_Geometry_methods[]= { + {"intersect_ray_tri", (PyCFunction) M_Geometry_intersect_ray_tri, METH_VARARGS, M_Geometry_intersect_ray_tri_doc}, + {"intersect_point_line", (PyCFunction) M_Geometry_intersect_point_line, METH_VARARGS, M_Geometry_intersect_point_line_doc}, + {"intersect_point_tri_2d", (PyCFunction) M_Geometry_intersect_point_tri_2d, METH_VARARGS, M_Geometry_intersect_point_tri_2d_doc}, + {"intersect_point_quad_2d", (PyCFunction) M_Geometry_intersect_point_quad_2d, METH_VARARGS, M_Geometry_intersect_point_quad_2d_doc}, + {"intersect_line_line", (PyCFunction) M_Geometry_intersect_line_line, METH_VARARGS, M_Geometry_intersect_line_line_doc}, + {"intersect_line_line_2d", (PyCFunction) M_Geometry_intersect_line_line_2d, METH_VARARGS, M_Geometry_intersect_line_line_2d_doc}, + {"interpolate_bezier", (PyCFunction) M_Geometry_interpolate_bezier, METH_VARARGS, M_Geometry_interpolate_bezier_doc}, + {"area_tri", (PyCFunction) M_Geometry_area_tri, METH_VARARGS, M_Geometry_area_tri_doc}, + {"normal", (PyCFunction) M_Geometry_normal, METH_VARARGS, M_Geometry_normal_doc}, + {"tesselate_polygon", (PyCFunction) M_Geometry_tesselate_polygon, METH_O, M_Geometry_tesselate_polygon_doc}, + {"box_pack_2d", (PyCFunction) M_Geometry_box_pack_2d, METH_O, M_Geometry_box_pack_2d_doc}, + {"barycentric_transform", (PyCFunction) M_Geometry_barycentric_transform, METH_VARARGS, M_Geometry_barycentric_transform_doc}, {NULL, NULL, 0, NULL} }; -static struct PyModuleDef M_Geometry_module_def = { +static struct PyModuleDef M_Geometry_module_def= { PyModuleDef_HEAD_INIT, "mathutils.geometry", /* m_name */ M_Geometry_doc, /* m_doc */ diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt index 87e35811034..220be8f3975 100644 --- a/source/blender/python/intern/CMakeLists.txt +++ b/source/blender/python/intern/CMakeLists.txt @@ -24,7 +24,7 @@ # ***** END GPL LICENSE BLOCK ***** set(INC - ../ + .. ../../blenlib ../../makesdna ../../makesrna diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index ef7c1cc369a..de71d7d27a4 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -180,7 +180,7 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) operator_ret= WM_operator_call_py(C, ot, context, &ptr, reports); - if(BPy_reports_to_error(reports)) + if(BPy_reports_to_error(reports, FALSE)) error_val = -1; /* operator output is nice to have in the terminal/console too */ diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 2463041cda8..721c996aca8 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1485,13 +1485,13 @@ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, Po { int count, totdim; - PyObject *list = PyList_New(stop - start); + PyObject *tuple= PyTuple_New(stop - start); totdim = RNA_property_array_dimension(ptr, prop, NULL); if (totdim > 1) { for (count = start; count < stop; count++) - PyList_SET_ITEM(list, count - start, pyrna_prop_array_to_py_index(self, count)); + PyTuple_SET_ITEM(tuple, count - start, pyrna_prop_array_to_py_index(self, count)); } else { switch (RNA_property_type(prop)) { @@ -1504,7 +1504,7 @@ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, Po RNA_property_float_get_array(ptr, prop, values); for(count=start; count<stop; count++) - PyList_SET_ITEM(list, count-start, PyFloat_FromDouble(values[count])); + PyTuple_SET_ITEM(tuple, count-start, PyFloat_FromDouble(values[count])); if(values != values_stack) { PyMem_FREE(values); @@ -1520,7 +1520,7 @@ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, Po RNA_property_boolean_get_array(ptr, prop, values); for(count=start; count<stop; count++) - PyList_SET_ITEM(list, count-start, PyBool_FromLong(values[count])); + PyTuple_SET_ITEM(tuple, count-start, PyBool_FromLong(values[count])); if(values != values_stack) { PyMem_FREE(values); @@ -1536,7 +1536,7 @@ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, Po RNA_property_int_get_array(ptr, prop, values); for(count=start; count<stop; count++) - PyList_SET_ITEM(list, count-start, PyLong_FromSsize_t(values[count])); + PyTuple_SET_ITEM(tuple, count-start, PyLong_FromSsize_t(values[count])); if(values != values_stack) { PyMem_FREE(values); @@ -1547,11 +1547,11 @@ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, Po BKE_assert(!"Invalid array type"); PyErr_SetString(PyExc_TypeError, "not an array type"); - Py_DECREF(list); - list= NULL; + Py_DECREF(tuple); + tuple= NULL; } } - return list; + return tuple; } static PyObject *pyrna_prop_collection_subscript(BPy_PropertyRNA *self, PyObject *key) @@ -2167,20 +2167,29 @@ static char pyrna_struct_keyframe_insert_doc[] = static PyObject *pyrna_struct_keyframe_insert(BPy_StructRNA *self, PyObject *args, PyObject *kw) { - PyObject *result; /* args, pyrna_struct_keyframe_parse handles these */ char *path_full= NULL; int index= -1; float cfra= FLT_MAX; char *group_name= NULL; - 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) + 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) { return NULL; + } + else { + short result; + ReportList reports; - result= PyBool_FromLong(insert_keyframe(/*ReportList*/NULL, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, 0)); - MEM_freeN(path_full); + BKE_reports_init(&reports, RPT_STORE); - return result; + result= insert_keyframe(&reports, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, 0); + MEM_freeN(path_full); + + if(BPy_reports_to_error(&reports, TRUE)) + return NULL; + + return PyBool_FromLong(result); + } } static char pyrna_struct_keyframe_delete_doc[] = @@ -2201,20 +2210,30 @@ static char pyrna_struct_keyframe_delete_doc[] = static PyObject *pyrna_struct_keyframe_delete(BPy_StructRNA *self, PyObject *args, PyObject *kw) { - PyObject *result; /* args, pyrna_struct_keyframe_parse handles these */ char *path_full= NULL; int index= -1; float cfra= FLT_MAX; char *group_name= NULL; - 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) + 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) { return NULL; + } + else { + short result; + ReportList reports; - result= PyBool_FromLong(delete_keyframe(/*ReportList*/NULL, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, 0)); - MEM_freeN(path_full); + BKE_reports_init(&reports, RPT_STORE); + + result= delete_keyframe(&reports, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, 0); + MEM_freeN(path_full); + + if(BPy_reports_to_error(&reports, TRUE)) + return NULL; + + return PyBool_FromLong(result); + } - return result; } static char pyrna_struct_driver_add_doc[] = @@ -2233,46 +2252,59 @@ static PyObject *pyrna_struct_driver_add(BPy_StructRNA *self, PyObject *args) { char *path, *path_full; int index= -1; - PyObject *ret; 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 { + PyObject *ret= NULL; + ReportList reports; + int result; - if(ANIM_add_driver((ID *)self->ptr.id.data, path_full, index, 0, DRIVER_TYPE_PYTHON)) { - ID *id= self->ptr.id.data; - AnimData *adt= BKE_animdata_from_id(id); - FCurve *fcu; + BKE_reports_init(&reports, RPT_STORE); - PointerRNA tptr; - PyObject *item; + result= ANIM_add_driver(&reports, (ID *)self->ptr.id.data, path_full, index, 0, DRIVER_TYPE_PYTHON); - if(index == -1) { /* all, use a list */ - int i= 0; - ret= PyList_New(0); - while((fcu= list_find_fcurve(&adt->drivers, path_full, i++))) { + if(BPy_reports_to_error(&reports, TRUE)) + return NULL; + + if(result) { + ID *id= self->ptr.id.data; + AnimData *adt= BKE_animdata_from_id(id); + FCurve *fcu; + + PointerRNA tptr; + PyObject *item; + + if(index == -1) { /* all, use a list */ + int i= 0; + ret= PyList_New(0); + 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); + Py_DECREF(item); + } + } + else { + fcu= list_find_fcurve(&adt->drivers, path_full, index); RNA_pointer_create(id, &RNA_FCurve, fcu, &tptr); - item= pyrna_struct_CreatePyObject(&tptr); - PyList_Append(ret, item); - Py_DECREF(item); + ret= pyrna_struct_CreatePyObject(&tptr); } } else { - fcu= list_find_fcurve(&adt->drivers, path_full, index); - RNA_pointer_create(id, &RNA_FCurve, fcu, &tptr); - ret= pyrna_struct_CreatePyObject(&tptr); + /* XXX, should be handled by reports, */ + PyErr_SetString(PyExc_TypeError, "bpy_struct.driver_add(): failed because of an internal error"); + return NULL; } - } - else { - PyErr_SetString(PyExc_TypeError, "bpy_struct.driver_add(): failed because of an internal error"); - return NULL; - } - MEM_freeN(path_full); + MEM_freeN(path_full); - return ret; + return ret; + } } @@ -2292,19 +2324,28 @@ static PyObject *pyrna_struct_driver_remove(BPy_StructRNA *self, PyObject *args) { char *path, *path_full; int index= -1; - PyObject *ret; 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 { + short result; + ReportList reports; - ret= PyBool_FromLong(ANIM_remove_driver((ID *)self->ptr.id.data, path_full, index, 0)); + BKE_reports_init(&reports, RPT_STORE); - MEM_freeN(path_full); + result= ANIM_remove_driver(&reports, (ID *)self->ptr.id.data, path_full, index, 0); - return ret; + MEM_freeN(path_full); + + if(BPy_reports_to_error(&reports, TRUE)) + return NULL; + + return PyBool_FromLong(result); + } } @@ -3897,8 +3938,7 @@ static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw) BKE_reports_init(&reports, RPT_STORE); RNA_function_call(C, &reports, self_ptr, self_func, &parms); - err= (BPy_reports_to_error(&reports))? -1: 0; - BKE_reports_clear(&reports); + err= (BPy_reports_to_error(&reports, TRUE))? -1: 0; /* return value */ if(err==0) { @@ -5498,13 +5538,10 @@ static PyObject *pyrna_basetype_register(PyObject *UNUSED(self), PyObject *py_cl srna_new= reg(C, &reports, py_class, identifier, bpy_class_validate, bpy_class_call, bpy_class_free); - if(!srna_new) { - BPy_reports_to_error(&reports); - BKE_reports_clear(&reports); + if(BPy_reports_to_error(&reports, TRUE)) return NULL; - } - BKE_reports_clear(&reports); + BKE_assert(srna_new != NULL); pyrna_subtype_set_rna(py_class, srna_new); /* takes a ref to py_class */ diff --git a/source/blender/python/intern/bpy_rna_array.c b/source/blender/python/intern/bpy_rna_array.c index d219757b777..8e815e34cbc 100644 --- a/source/blender/python/intern/bpy_rna_array.c +++ b/source/blender/python/intern/bpy_rna_array.c @@ -450,7 +450,7 @@ static PyObject *pyrna_py_from_array_internal(PointerRNA *ptr, PropertyRNA *prop return NULL; } - PyTuple_SetItem(tuple, i, item); + PyTuple_SET_ITEM(tuple, i, item); } return tuple; diff --git a/source/blender/python/intern/bpy_util.c b/source/blender/python/intern/bpy_util.c index 1ce3be0a82d..fb5b2a0d399 100644 --- a/source/blender/python/intern/bpy_util.c +++ b/source/blender/python/intern/bpy_util.c @@ -138,12 +138,16 @@ char *BPy_enum_as_string(EnumPropertyItem *item) return cstring; } -int BPy_reports_to_error(ReportList *reports) +short BPy_reports_to_error(ReportList *reports, const short clear) { char *report_str; report_str= BKE_reports_string(reports, RPT_ERROR); + if(clear) { + BKE_reports_clear(reports); + } + if(report_str) { PyErr_SetString(PyExc_SystemError, report_str); MEM_freeN(report_str); @@ -153,7 +157,7 @@ int BPy_reports_to_error(ReportList *reports) } -int BPy_errors_to_report(ReportList *reports) +short BPy_errors_to_report(ReportList *reports) { PyObject *pystring; PyObject *pystring_format= NULL; // workaround, see below diff --git a/source/blender/python/intern/bpy_util.h b/source/blender/python/intern/bpy_util.h index ae215725087..c958082903e 100644 --- a/source/blender/python/intern/bpy_util.h +++ b/source/blender/python/intern/bpy_util.h @@ -57,8 +57,8 @@ char *BPy_enum_as_string(struct EnumPropertyItem *item); #define BLANK_PYTHON_TYPE {PyVarObject_HEAD_INIT(NULL, 0) 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} /* error reporting */ -int BPy_reports_to_error(struct ReportList *reports); -int BPy_errors_to_report(struct ReportList *reports); +short BPy_reports_to_error(struct ReportList *reports, const short clear); +short BPy_errors_to_report(struct ReportList *reports); /* TODO - find a better solution! */ struct bContext *BPy_GetContext(void); diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index 71ce269fce6..26e34a741f7 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -189,7 +189,11 @@ typedef struct ShadeInput /* node shaders... */ struct Tex; struct MTex; +/* this one uses nodes */ int multitex_ext(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres); +/* nodes disabled */ +int multitex_ext_safe(struct Tex *tex, float *texvec, struct TexResult *texres); +/* only for internal node usage */ int multitex_nodes(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres, short thread, short which_output, struct ShadeInput *shi, struct MTex *mtex); diff --git a/source/blender/render/intern/source/imagetexture.c b/source/blender/render/intern/source/imagetexture.c index 5a2ce5a6b89..1ab0e8f8042 100644 --- a/source/blender/render/intern/source/imagetexture.c +++ b/source/blender/render/intern/source/imagetexture.c @@ -808,7 +808,7 @@ static void imp2radangle(float A, float B, float C, float F, float* a, float* b, static void ewa_eval(TexResult* texr, ImBuf* ibuf, float fx, float fy, afdata_t* AFD) { // scaling dxt/dyt by full resolution can cause overflow because of huge A/B/C and esp. F values, - // scaling by aspect ratio alone does the opposite, so try something inbetween instead... + // scaling by aspect ratio alone does the opposite, so try something in between instead... const float ff2 = ibuf->x, ff = sqrtf(ff2), q = ibuf->y / ff; const float Ux = AFD->dxt[0]*ff, Vx = AFD->dxt[1]*q, Uy = AFD->dyt[0]*ff, Vy = AFD->dyt[1]*q; float A = Vx*Vx + Vy*Vy; diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 8af3c49213d..2c4916aa9c2 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2412,11 +2412,15 @@ static void do_merge_fullsample(Render *re, bNodeTree *ntree) BLI_rw_mutex_unlock(&re->resultmutex); } +/* called externally, via compositor */ void RE_MergeFullSample(Render *re, Main *bmain, Scene *sce, bNodeTree *ntree) { Scene *scene; bNode *node; + /* default start situation */ + G.afbreek= 0; + re->main= bmain; /* first call RE_ReadRenderResult on every renderlayer scene. this creates Render structs */ diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 374c717ecdd..37bd823fa23 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2575,7 +2575,7 @@ static void shade_tface(BakeShade *bs) /* get pixel level vertex coordinates */ for(a=0; a<4; a++) { /* Note, workaround for pixel aligned UVs which are common and can screw up our intersection tests - * where a pixel gets inbetween 2 faces or the middle of a quad, + * where a pixel gets in between 2 faces or the middle of a quad, * camera aligned quads also have this problem but they are less common. * Add a small offset to the UVs, fixes bug #18685 - Campbell */ vec[a][0]= tface->uv[a][0]*(float)bs->rectx - (0.5f + 0.001); diff --git a/source/blender/render/intern/source/texture.c b/source/blender/render/intern/source/texture.c index 9e3c3c4e1d6..684732c10d3 100644 --- a/source/blender/render/intern/source/texture.c +++ b/source/blender/render/intern/source/texture.c @@ -1348,18 +1348,24 @@ int multitex_mtex(ShadeInput *shi, MTex *mtex, float *texvec, float *dxt, float /* Warning, if the texres's values are not declared zero, check the return value to be sure * the color values are set before using the r/g/b values, otherwise you may use uninitialized values - Campbell */ -/* extern-tex doesn't support nodes (ntreeBeginExec() can't be called when rendering is going on) */ int multitex_ext(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, TexResult *texres) { + return multitex_nodes(tex, texvec, dxt, dyt, osatex, texres, 0, 0, NULL, NULL); +} + +/* extern-tex doesn't support nodes (ntreeBeginExec() can't be called when rendering is going on) */ +int multitex_ext_safe(Tex *tex, float *texvec, TexResult *texres) +{ int use_nodes= tex->use_nodes, retval; tex->use_nodes= 0; - retval= multitex_nodes(tex, texvec, dxt, dyt, osatex, texres, 0, 0, NULL, NULL); + retval= multitex_nodes(tex, texvec, NULL, NULL, 0, texres, 0, 0, NULL, NULL); tex->use_nodes= use_nodes; return retval; } + /* ------------------------------------------------------------------------- */ /* in = destination, tex = texture, out = previous color */ diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c index 8998c9624e5..6034ddce1b5 100644 --- a/source/blender/windowmanager/intern/wm_cursors.c +++ b/source/blender/windowmanager/intern/wm_cursors.c @@ -139,10 +139,9 @@ void WM_cursor_set(wmWindow *win, int curs) void WM_cursor_modal(wmWindow *win, int val) { - if(win->lastcursor == 0) { + if(win->lastcursor == 0) win->lastcursor = win->cursor; - WM_cursor_set(win, val); - } + WM_cursor_set(win, val); } void WM_cursor_restore(wmWindow *win) @@ -161,7 +160,7 @@ void WM_cursor_wait(int val) for(; win; win= win->next) { if(val) { - WM_cursor_modal(win, CURSOR_WAIT); + WM_cursor_modal(win, BC_WAITCURSOR); } else { WM_cursor_restore(win); } diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index dc944b71843..84c78669c64 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2276,7 +2276,7 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U event.type= MOUSEMOVE; /* some painting operators want accurate mouse events, they can - handle inbetween mouse move moves, others can happily ignore + handle in between mouse move moves, others can happily ignore them for better performance */ if(lastevent && lastevent->type == MOUSEMOVE) lastevent->type = INBETWEEN_MOUSEMOVE; diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 006f96502c6..5938f661ca8 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -630,9 +630,6 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re /* operator now handles overwrite checks */ - /* don't forget not to return without! */ - WM_cursor_wait(1); - if (G.fileflags & G_AUTOPACK) { packAll(G.main, reports); } @@ -640,6 +637,9 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re ED_object_exit_editmode(C, EM_DO_UNDO); ED_sculpt_force_update(C); + /* don't forget not to return without! */ + WM_cursor_wait(1); + /* blend file thumbnail */ ibuf_thumb= blend_file_thumb(CTX_data_scene(C), &thumb); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index aff58b99e51..de3773c192b 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1148,7 +1148,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar col = uiLayoutColumn(split, 0); uiItemL(col, "Links", ICON_NULL); uiItemStringO(col, "Donations", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/blenderorg/blender-foundation/donation-payment/"); - uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-254-beta/"); + uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-256-beta/"); uiItemStringO(col, "Manual", ICON_URL, "WM_OT_url_open", "url", "http://wiki.blender.org/index.php/Doc:Manual"); uiItemStringO(col, "Blender Website", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/"); uiItemStringO(col, "User Community", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/community/user-community/"); // diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index 23046734cda..e81a6affc44 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -107,6 +107,7 @@ void ibuf_sample(struct ImBuf *ibuf, float fx, float fy, float dx, float dy, flo /* texture.c */ int multitex_thread(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres, short thread, short which_output) {return 0;} int multitex_ext(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres){return 0;} +int multitex_ext_safe(struct Tex *tex, float *texvec, struct TexResult *texres){return 0;} int multitex_nodes(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres, short thread, short which_output, struct ShadeInput *shi, struct MTex *mtex) {return 0;} /* nodes */ diff --git a/source/gameengine/CMakeLists.txt b/source/gameengine/CMakeLists.txt index 53688ab3218..c3c2b95c40e 100644 --- a/source/gameengine/CMakeLists.txt +++ b/source/gameengine/CMakeLists.txt @@ -27,7 +27,7 @@ # there are too many inter-includes so best define here if(WITH_PYTHON) - blender_include_dirs(${PYTHON_INC}) + blender_include_dirs("${PYTHON_INC}") add_definitions(-DWITH_PYTHON) endif() diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp index b7f4cacf5ab..a3dc9a588c9 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp @@ -946,7 +946,8 @@ int main(int argc, char** argv) // Cleanup RNA_exit(); BLF_exit(); - free_blender(); + IMB_exit(); + free_nodesystem(); SYS_DeleteSystem(syshandle); diff --git a/source/gameengine/VideoTexture/ImageBase.cpp b/source/gameengine/VideoTexture/ImageBase.cpp index 88a20fadcf7..bbeebfb590f 100644 --- a/source/gameengine/VideoTexture/ImageBase.cpp +++ b/source/gameengine/VideoTexture/ImageBase.cpp @@ -56,7 +56,8 @@ m_staticSources(staticSrc), m_pyfilter(NULL) ImageBase::~ImageBase (void) { // release image - delete [] m_image; + if (m_image) + delete [] m_image; } @@ -198,7 +199,8 @@ void ImageBase::init (short width, short height) // set new buffer size m_imgSize = newSize; // release previous and create new buffer - delete [] m_image; + if (m_image) + delete [] m_image; m_image = new unsigned int[m_imgSize]; } // new image size |