diff options
author | Andre Susano Pinto <andresusanopinto@gmail.com> | 2008-08-18 18:33:26 +0400 |
---|---|---|
committer | Andre Susano Pinto <andresusanopinto@gmail.com> | 2008-08-18 18:33:26 +0400 |
commit | 2ce338f7e80094ad50cf1b30cc47ad6b85ae55b3 (patch) | |
tree | 5929445c89798ab71f55fcd9e64b734caf761b14 /source | |
parent | a88eb64f70750de50fe153c147382261867ae1be (diff) |
svn merge -r 16077:16174 https://svn.blender.org/svnroot/bf-blender/trunk/blender
Diffstat (limited to 'source')
137 files changed, 3312 insertions, 4136 deletions
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index d951c8401e3..e1eb6718a30 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -40,8 +40,8 @@ extern "C" { struct ListBase; struct MemFile; -#define BLENDER_VERSION 246 -#define BLENDER_SUBVERSION 1 +#define BLENDER_VERSION 247 +#define BLENDER_SUBVERSION 0 #define BLENDER_MINVERSION 245 #define BLENDER_MINSUBVERSION 15 diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h index e84c7d30956..c84b690bc49 100644 --- a/source/blender/blenkernel/BKE_customdata.h +++ b/source/blender/blenkernel/BKE_customdata.h @@ -32,9 +32,11 @@ #ifndef BKE_CUSTOMDATA_H #define BKE_CUSTOMDATA_H +#include "BLO_sys_types.h" // for intptr_t support + struct CustomData; struct CustomDataLayer; -typedef long CustomDataMask; +typedef intptr_t CustomDataMask; extern const CustomDataMask CD_MASK_BAREMESH; extern const CustomDataMask CD_MASK_MESH; diff --git a/source/blender/blenkernel/BKE_effect.h b/source/blender/blenkernel/BKE_effect.h index 3763a659f2f..3b4c3198179 100644 --- a/source/blender/blenkernel/BKE_effect.h +++ b/source/blender/blenkernel/BKE_effect.h @@ -37,6 +37,7 @@ struct Effect; struct ListBase; struct Particle; struct Group; +struct RNG; typedef struct pEffectorCache { struct pEffectorCache *next, *prev; @@ -64,6 +65,11 @@ struct ListBase *pdInitEffectors(struct Object *obsrc, struct Group *group); void pdEndEffectors(struct ListBase *lb); void pdDoEffectors(struct ListBase *lb, float *opco, float *force, float *speed, float cur_time, float loc_time, unsigned int flags); +/* required for particle_system.c */ +void do_physical_effector(short type, float force_val, float distance, float falloff, float size, float damp, float *eff_velocity, float *vec_to_part, float *velocity, float *field, int planar, struct RNG *rng, float noise); +float effector_falloff(struct PartDeflect *pd, float *eff_velocity, float *vec_to_part); + + #endif diff --git a/source/blender/blenkernel/BKE_endian.h b/source/blender/blenkernel/BKE_endian.h index 1757103eaf6..dc5efd5ea46 100644 --- a/source/blender/blenkernel/BKE_endian.h +++ b/source/blender/blenkernel/BKE_endian.h @@ -33,11 +33,11 @@ #define BKE_ENDIANNESS(a) { \ union { \ - long l; \ - char c[sizeof (long)]; \ + intptr_t l; \ + char c[sizeof (intptr_t)]; \ } u; \ u.l = 1; \ - a = (u.c[sizeof (long) - 1] == 1) ? 1 : 0; \ + a = (u.c[sizeof (intptr_t) - 1] == 1) ? 1 : 0; \ } #endif diff --git a/source/blender/blenkernel/BKE_utildefines.h b/source/blender/blenkernel/BKE_utildefines.h index a96a3e10f40..f389521ffa0 100644 --- a/source/blender/blenkernel/BKE_utildefines.h +++ b/source/blender/blenkernel/BKE_utildefines.h @@ -197,8 +197,8 @@ /* Warning-free macros for storing ints in pointers. Use these _only_ * for storing an int in a pointer, not a pointer in an int (64bit)! */ -#define SET_INT_IN_POINTER(i) ((void*)(long)(i)) -#define GET_INT_FROM_POINTER(i) ((int)(long)(i)) +#define SET_INT_IN_POINTER(i) ((void*)(intptr_t)(i)) +#define GET_INT_FROM_POINTER(i) ((int)(intptr_t)(i)) #endif diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c index 9dcb6b6e7fa..1652b24e1e5 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf.c +++ b/source/blender/blenkernel/intern/CCGSubSurf.c @@ -7,6 +7,8 @@ #include "CCGSubSurf.h" +#include "BLO_sys_types.h" // for intptr_t support + /***/ typedef unsigned char byte; @@ -35,7 +37,7 @@ typedef struct _EHash { #define EHASH_alloc(eh, nb) ((eh)->allocatorIFC.alloc((eh)->allocator, nb)) #define EHASH_free(eh, ptr) ((eh)->allocatorIFC.free((eh)->allocator, ptr)) -#define EHASH_hash(eh, item) (((unsigned long) (item))%((unsigned int) (eh)->curSize)) +#define EHASH_hash(eh, item) (((uintptr_t) (item))%((unsigned int) (eh)->curSize)) static EHash *_ehash_new(int estimatedNumEntries, CCGAllocatorIFC *allocatorIFC, CCGAllocatorHDL allocator) { EHash *eh = allocatorIFC->alloc(allocator, sizeof(*eh)); diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 67cf89d5ee2..1dabab98a6e 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -79,6 +79,8 @@ #include "BKE_utildefines.h" #include "BKE_particle.h" +#include "BLO_sys_types.h" // for intptr_t support + #ifdef WITH_VERSE #include "BKE_verse.h" #endif @@ -479,7 +481,7 @@ static void emDM_foreachMappedEdge(DerivedMesh *dm, void (*func)(void *userData, EditVert *eve; for (i=0,eve=emdm->em->verts.first; eve; eve= eve->next) - eve->tmp.l = (long) i++; + eve->tmp.l = (intptr_t) i++; for(i=0,eed= emdm->em->edges.first; eed; i++,eed= eed->next) func(userData, i, emdm->vertexCos[(int) eed->v1->tmp.l], emdm->vertexCos[(int) eed->v2->tmp.l]); } else { @@ -497,7 +499,7 @@ static void emDM_drawMappedEdges(DerivedMesh *dm, int (*setDrawOptions)(void *us EditVert *eve; for (i=0,eve=emdm->em->verts.first; eve; eve= eve->next) - eve->tmp.l = (long) i++; + eve->tmp.l = (intptr_t) i++; glBegin(GL_LINES); for(i=0,eed= emdm->em->edges.first; eed; i++,eed= eed->next) { @@ -532,7 +534,7 @@ static void emDM_drawMappedEdgesInterp(DerivedMesh *dm, int (*setDrawOptions)(vo EditVert *eve; for (i=0,eve=emdm->em->verts.first; eve; eve= eve->next) - eve->tmp.l = (long) i++; + eve->tmp.l = (intptr_t) i++; glBegin(GL_LINES); for (i=0,eed= emdm->em->edges.first; eed; i++,eed= eed->next) { @@ -619,7 +621,7 @@ static void emDM_foreachMappedFaceCenter(DerivedMesh *dm, void (*func)(void *use if (emdm->vertexCos) { for (i=0,eve=emdm->em->verts.first; eve; eve= eve->next) - eve->tmp.l = (long) i++; + eve->tmp.l = (intptr_t) i++; } for(i=0,efa= emdm->em->faces.first; efa; i++,efa= efa->next) { @@ -637,7 +639,7 @@ static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us EditVert *eve; for (i=0,eve=emdm->em->verts.first; eve; eve= eve->next) - eve->tmp.l = (long) i++; + eve->tmp.l = (intptr_t) i++; for (i=0,efa= emdm->em->faces.first; efa; i++,efa= efa->next) { int drawSmooth = (efa->flag & ME_SMOOTH); @@ -733,7 +735,7 @@ static void emDM_drawFacesTex_common(DerivedMesh *dm, EditVert *eve; for (i=0,eve=em->verts.first; eve; eve= eve->next) - eve->tmp.l = (long) i++; + eve->tmp.l = (intptr_t) i++; for (i=0,efa= em->faces.first; efa; i++,efa= efa->next) { MTFace *tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); @@ -1053,7 +1055,7 @@ void emDM_copyEdgeArray(DerivedMesh *dm, MEdge *edge_r) /* store vertex indices in tmp union */ for(ev = em->verts.first, i = 0; ev; ev = ev->next, ++i) - ev->tmp.l = (long) i; + ev->tmp.l = (intptr_t) i; for( ; ee; ee = ee->next, ++edge_r) { edge_r->crease = (unsigned char) (ee->crease*255.0f); @@ -1081,7 +1083,7 @@ void emDM_copyFaceArray(DerivedMesh *dm, MFace *face_r) /* store vertexes indices in tmp union */ for(ev = em->verts.first, i = 0; ev; ev = ev->next, ++i) - ev->tmp.l = (long) i; + ev->tmp.l = (intptr_t) i; for( ; ef; ef = ef->next, ++face_r) { face_r->mat_nr = ef->mat_nr; @@ -1168,7 +1170,7 @@ static DerivedMesh *getEditMeshDerivedMesh(EditMesh *em, Object *ob, int i; for (i=0,eve=em->verts.first; eve; eve= eve->next) - eve->tmp.l = (long) i++; + eve->tmp.l = (intptr_t) i++; emdm->vertexNos = MEM_callocN(sizeof(*emdm->vertexNos)*i, "emdm_vno"); emdm->faceNos = MEM_mallocN(sizeof(*emdm->faceNos)*totface, "emdm_vno"); diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c index c7817b017ef..dbc94571cad 100644 --- a/source/blender/blenkernel/intern/cloth.c +++ b/source/blender/blenkernel/intern/cloth.c @@ -155,7 +155,7 @@ void cloth_init ( ClothModifierData *clmd ) BVHTree *bvhselftree_build_from_cloth (ClothModifierData *clmd, float epsilon) { - int i; + unsigned int i; BVHTree *bvhtree; Cloth *cloth = clmd->clothObject; ClothVertex *verts; @@ -196,7 +196,7 @@ BVHTree *bvhselftree_build_from_cloth (ClothModifierData *clmd, float epsilon) BVHTree *bvhtree_build_from_cloth (ClothModifierData *clmd, float epsilon) { - int i; + unsigned int i; BVHTree *bvhtree; Cloth *cloth = clmd->clothObject; ClothVertex *verts; @@ -782,11 +782,11 @@ static void cloth_to_object (Object *ob, ClothModifierData *clmd, DerivedMesh * /* can be optimized to do all groups in one loop */ static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm ) { - unsigned int i = 0; - unsigned int j = 0; + int i = 0; + int j = 0; MDeformVert *dvert = NULL; Cloth *clothObj = NULL; - unsigned int numverts = dm->getNumVerts ( dm ); + int numverts = dm->getNumVerts ( dm ); float goalfac = 0; ClothVertex *verts = NULL; @@ -857,7 +857,7 @@ static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm ) static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *dm, float framenr, int first) { - unsigned int i = 0; + int i = 0; MVert *mvert = NULL; ClothVertex *verts = NULL; float tnull[3] = {0,0,0}; @@ -1082,13 +1082,13 @@ int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm ) Cloth *cloth = clmd->clothObject; ClothSpring *spring = NULL, *tspring = NULL, *tspring2 = NULL; unsigned int struct_springs = 0, shear_springs=0, bend_springs = 0; - unsigned int i = 0; - unsigned int numverts = dm->getNumVerts ( dm ); - unsigned int numedges = dm->getNumEdges ( dm ); - unsigned int numfaces = dm->getNumFaces ( dm ); + int i = 0; + int numverts = dm->getNumVerts ( dm ); + int numedges = dm->getNumEdges ( dm ); + int numfaces = dm->getNumFaces ( dm ); MEdge *medge = CDDM_get_edges ( dm ); MFace *mface = CDDM_get_faces ( dm ); - unsigned int index2 = 0; // our second vertex index + int index2 = 0; // our second vertex index LinkNode **edgelist = NULL; EdgeHash *edgehash = NULL; LinkNode *search = NULL, *search2 = NULL; diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index 298e4b81d5b..3b79f6689c0 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -88,6 +88,8 @@ #include "RE_pipeline.h" #include "RE_shader_ext.h" +#include "BLO_sys_types.h" // for intptr_t support + static void boundbox_displist(Object *ob); @@ -986,9 +988,9 @@ void filldisplist(ListBase *dispbase, ListBase *to) efa= fillfacebase.first; index= dlnew->index; while(efa) { - index[0]= (long)efa->v1->tmp.l; - index[1]= (long)efa->v2->tmp.l; - index[2]= (long)efa->v3->tmp.l; + index[0]= (intptr_t)efa->v1->tmp.l; + index[1]= (intptr_t)efa->v2->tmp.l; + index[2]= (intptr_t)efa->v3->tmp.l; index+= 3; efa= efa->next; diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index 4588ef800e1..7620edac126 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -157,6 +157,13 @@ static void add_to_effectorcache(ListBase *lb, Object *ob, Object *obsrc) } } else if(pd->forcefield) { + + if(pd->forcefield == PFIELD_WIND) + { + pd->rng = rng_new(1); + rng_srandom(pd->rng, (unsigned int)(ceil(PIL_check_seconds_timer()))); // use better seed + } + ec= MEM_callocN(sizeof(pEffectorCache), "effector cache"); ec->ob= ob; BLI_addtail(lb, ec); @@ -205,13 +212,189 @@ void pdEndEffectors(ListBase *lb) pEffectorCache *ec; /* restore full copy */ for(ec= lb->first; ec; ec= ec->next) + { + if(ec->ob->pd && (ec->ob->pd->forcefield == PFIELD_WIND)) + rng_free(ec->ob->pd->rng); + *(ec->ob)= ec->obcopy; + } BLI_freelistN(lb); } } +/************************************************/ +/* Effectors */ +/************************************************/ + +// noise function for wind e.g. +static float wind_func(struct RNG *rng, float strength) +{ + int random = (rng_getInt(rng)+1) % 65535; // max 2357 + float force = rng_getFloat(rng) + 1.0f; + float ret; + float sign = 0; + + sign = (random > 32000.0) ? 1.0: -1.0; // dividing by 2 is not giving equal sign distribution + + ret = sign*((float)random / force)*strength/65535.0f; + + return ret; +} + + +static float falloff_func(float fac, int usemin, float mindist, int usemax, float maxdist, float power) +{ + if(!usemin) + mindist= 0.0f; + + if(fac < mindist) { + return 1.0f; + } + else if(usemax) { + if(fac>maxdist || (maxdist-mindist)<=0.0f) + return 0.0f; + + fac= (fac-mindist)/(maxdist-mindist); + return 1.0f - (float)pow((double)fac, (double)power); + } + else + return pow((double)1.0f+fac-mindist, (double)-power); +} + +static float falloff_func_dist(PartDeflect *pd, float fac) +{ + return falloff_func(fac, pd->flag&PFIELD_USEMIN, pd->mindist, pd->flag&PFIELD_USEMAX, pd->maxdist, pd->f_power); +} + +static float falloff_func_rad(PartDeflect *pd, float fac) +{ + return falloff_func(fac, pd->flag&PFIELD_USEMINR, pd->minrad, pd->flag&PFIELD_USEMAXR, pd->maxrad, pd->f_power_r); +} + +float effector_falloff(PartDeflect *pd, float *eff_velocity, float *vec_to_part) +{ + float eff_dir[3], temp[3]; + float falloff=1.0, fac, r_fac; + + VecCopyf(eff_dir,eff_velocity); + Normalize(eff_dir); + + if(pd->flag & PFIELD_POSZ && Inpf(eff_dir,vec_to_part)<0.0f) + falloff=0.0f; + else switch(pd->falloff){ + case PFIELD_FALL_SPHERE: + fac=VecLength(vec_to_part); + falloff= falloff_func_dist(pd, fac); + break; + + case PFIELD_FALL_TUBE: + fac=Inpf(vec_to_part,eff_dir); + falloff= falloff_func_dist(pd, ABS(fac)); + if(falloff == 0.0f) + break; + + VECADDFAC(temp,vec_to_part,eff_dir,-fac); + r_fac=VecLength(temp); + falloff*= falloff_func_rad(pd, r_fac); + break; + case PFIELD_FALL_CONE: + fac=Inpf(vec_to_part,eff_dir); + falloff= falloff_func_dist(pd, ABS(fac)); + if(falloff == 0.0f) + break; + + r_fac=saacos(fac/VecLength(vec_to_part))*180.0f/(float)M_PI; + falloff*= falloff_func_rad(pd, r_fac); + + break; + } + + return falloff; +} + +void do_physical_effector(short type, float force_val, float distance, float falloff, float size, float damp, float *eff_velocity, float *vec_to_part, float *velocity, float *field, int planar, struct RNG *rng, float noise) +{ + float mag_vec[3]={0,0,0}; + float temp[3], temp2[3]; + float eff_vel[3]; + float wind = 0; + + VecCopyf(eff_vel,eff_velocity); + Normalize(eff_vel); + + switch(type){ + case PFIELD_WIND: + VECCOPY(mag_vec,eff_vel); + + // add wind noise here + if(noise> 0.0f) + wind = wind_func(rng, noise); + + VecMulf(mag_vec,(force_val+wind)*falloff); + VecAddf(field,field,mag_vec); + break; + + case PFIELD_FORCE: + if(planar) + Projf(mag_vec,vec_to_part,eff_vel); + else + VecCopyf(mag_vec,vec_to_part); + + VecMulf(mag_vec,force_val*falloff); + VecAddf(field,field,mag_vec); + break; + + case PFIELD_VORTEX: + Crossf(mag_vec,eff_vel,vec_to_part); + Normalize(mag_vec); + + VecMulf(mag_vec,force_val*distance*falloff); + VecAddf(field,field,mag_vec); + + break; + case PFIELD_MAGNET: + if(planar) + VecCopyf(temp,eff_vel); + else + /* magnetic field of a moving charge */ + Crossf(temp,eff_vel,vec_to_part); + + Crossf(temp2,velocity,temp); + VecAddf(mag_vec,mag_vec,temp2); + + VecMulf(mag_vec,force_val*falloff); + VecAddf(field,field,mag_vec); + break; + case PFIELD_HARMONIC: + if(planar) + Projf(mag_vec,vec_to_part,eff_vel); + else + VecCopyf(mag_vec,vec_to_part); + + VecMulf(mag_vec,force_val*falloff); + VecSubf(field,field,mag_vec); + + VecCopyf(mag_vec,velocity); + /* 1.9 is an experimental value to get critical damping at damp=1.0 */ + VecMulf(mag_vec,damp*1.9f*(float)sqrt(force_val)); + VecSubf(field,field,mag_vec); + break; + case PFIELD_NUCLEAR: + /*pow here is root of cosine expression below*/ + //rad=(float)pow(2.0,-1.0/power)*distance/size; + //VECCOPY(mag_vec,vec_to_part); + //Normalize(mag_vec); + //VecMulf(mag_vec,(float)cos(3.0*M_PI/2.0*(1.0-1.0/(pow(rad,power)+1.0)))/(rad+0.2f)); + //VECADDFAC(field,field,mag_vec,force_val); + break; + } +} + + + + /* -------- pdDoEffectors() -------- generic force/speed system, now used for particles and softbodies lb = listbase with objects that take part in effecting @@ -244,13 +427,10 @@ void pdDoEffectors(ListBase *lb, float *opco, float *force, float *speed, float pEffectorCache *ec; PartDeflect *pd; float vect_to_vert[3]; - float f_force, force_vec[3]; float *obloc; - float distance, force_val, ffall_val; - float guidecollect[3], guidedist= 0.0f; - int cur_frame; - guidecollect[0]= guidecollect[1]= guidecollect[2]=0.0f; + float distance, vec_to_part[3]; + float falloff; /* Cycle through collected objects, get total of (1/(gravity_strength * dist^gravity_power)) */ /* Check for min distance here? (yes would be cool to add that, ton) */ @@ -261,178 +441,32 @@ void pdDoEffectors(ListBase *lb, float *opco, float *force, float *speed, float pd= ob->pd; /* Get IPO force strength and fall off values here */ - if (has_ipo_code(ob->ipo, OB_PD_FSTR)) - force_val = IPO_GetFloatValue(ob->ipo, OB_PD_FSTR, cur_time); - else - force_val = pd->f_strength; - - if (has_ipo_code(ob->ipo, OB_PD_FFALL)) - ffall_val = IPO_GetFloatValue(ob->ipo, OB_PD_FFALL, cur_time); - else - ffall_val = pd->f_power; - - /* Need to set r.cfra for paths (investigate, ton) (uses ob->ctime now, ton) */ - if(ob->ctime!=cur_time) { - cur_frame = G.scene->r.cfra; - G.scene->r.cfra = (int)cur_time; - where_is_object_time(ob, cur_time); - G.scene->r.cfra = cur_frame; - } + where_is_object_time(ob,cur_time); /* use center of object for distance calculus */ obloc= ob->obmat[3]; VECSUB(vect_to_vert, obloc, opco); distance = VecLength(vect_to_vert); - - if((pd->flag & PFIELD_USEMAX) && distance>pd->maxdist && pd->forcefield != PFIELD_GUIDE) - ; /* don't do anything */ - else if((pd->flag & PFIELD_USEMIN) && distance<pd->mindist && pd->forcefield != PFIELD_GUIDE) + + VecSubf(vec_to_part, opco, ob->obmat[3]); + distance = VecLength(vec_to_part); + + falloff=effector_falloff(pd,ob->obmat[2],vec_to_part); + + if(falloff<=0.0f) ; /* don't do anything */ - else if(pd->forcefield == PFIELD_WIND) { - VECCOPY(force_vec, ob->obmat[2]); - - /* wind works harder perpendicular to normal, would be nice for softbody later (ton) */ - - /* Limit minimum distance to vertex so that */ - /* the force is not too big */ - if (distance < 0.001) distance = 0.001f; - f_force = (force_val)*(1/(1000 * (float)pow((double)distance, (double)ffall_val))); - /* this option for softbody only */ - if(flags && PE_WIND_AS_SPEED){ - speed[0] -= (force_vec[0] * f_force ); - speed[1] -= (force_vec[1] * f_force ); - speed[2] -= (force_vec[2] * f_force ); - } - else{ - force[0] += force_vec[0]*f_force; - force[1] += force_vec[1]*f_force; - force[2] += force_vec[2]*f_force; - } - } - else if(pd->forcefield == PFIELD_FORCE) { - - /* only use center of object */ - obloc= ob->obmat[3]; - - /* Now calculate the gravitational force */ - VECSUB(vect_to_vert, obloc, opco); - distance = VecLength(vect_to_vert); - - /* Limit minimum distance to vertex so that */ - /* the force is not too big */ - if (distance < 0.001) distance = 0.001f; - f_force = (force_val)*(1.0/(1000.0 * (float)pow((double)distance, (double)ffall_val))); - force[0] += (vect_to_vert[0] * f_force ); - force[1] += (vect_to_vert[1] * f_force ); - force[2] += (vect_to_vert[2] * f_force ); - } - else if(pd->forcefield == PFIELD_VORTEX) { - float vortexvec[3]; - - /* only use center of object */ - obloc= ob->obmat[3]; - - /* Now calculate the vortex force */ - VECSUB(vect_to_vert, obloc, opco); - distance = VecLength(vect_to_vert); - - Crossf(force_vec, ob->obmat[2], vect_to_vert); - Normalize(force_vec); - - /* Limit minimum distance to vertex so that */ - /* the force is not too big */ - if (distance < 0.001) distance = 0.001f; - f_force = (force_val)*(1.0/(100.0 * (float)pow((double)distance, (double)ffall_val))); - vortexvec[0]= -(force_vec[0] * f_force ); - vortexvec[1]= -(force_vec[1] * f_force ); - vortexvec[2]= -(force_vec[2] * f_force ); + else { + float field[3]={0,0,0}, tmp[3]; + VECCOPY(field, force); + do_physical_effector(pd->forcefield,pd->f_strength,distance, + falloff,pd->f_dist,pd->f_damp,ob->obmat[2],vec_to_part, + speed,force,pd->flag&PFIELD_PLANAR, pd->rng, pd->f_noise); - /* this option for softbody only */ - if(flags &&PE_WIND_AS_SPEED) { - speed[0]+= vortexvec[0]; - speed[1]+= vortexvec[1]; - speed[2]+= vortexvec[2]; - } - else { - /* since vortex alters the speed, we have to correct for the previous vortex result */ - speed[0]+= vortexvec[0] - ec->oldspeed[0]; - speed[1]+= vortexvec[1] - ec->oldspeed[1]; - speed[2]+= vortexvec[2] - ec->oldspeed[2]; - - VECCOPY(ec->oldspeed, vortexvec); + // for softbody backward compatibility + if(flags & PE_WIND_AS_SPEED){ + VECSUB(tmp, force, field); + VECSUB(speed, speed, tmp); } } - else if(pd->forcefield == PFIELD_GUIDE) { - float guidevec[4], guidedir[3]; - float mindist= force_val; /* force_val is actually mindist in the UI */ - - distance= ec->guide_dist; - - /* WARNING: bails out with continue here */ - if((pd->flag & PFIELD_USEMAX) && distance>pd->maxdist) continue; - - /* calculate contribution factor for this guide */ - if(distance<=mindist) f_force= 1.0f; - else if(pd->flag & PFIELD_USEMAX) { - if(distance>pd->maxdist || mindist>=pd->maxdist) f_force= 0.0f; - else { - f_force= 1.0f - (distance-mindist)/(pd->maxdist - mindist); - if(ffall_val!=0.0f) - f_force = (float)pow(f_force, ffall_val+1.0); - } - } - else { - f_force= 1.0f/(1.0f + distance-mindist); - if(ffall_val!=0.0f) - f_force = (float)pow(f_force, ffall_val+1.0); - } - - /* now derive path point from loc_time */ - if(pd->flag & PFIELD_GUIDE_PATH_ADD) - where_on_path(ob, f_force*loc_time*ec->time_scale, guidevec, guidedir); - else - where_on_path(ob, loc_time*ec->time_scale, guidevec, guidedir); - - VECSUB(guidedir, guidevec, ec->oldloc); - VECCOPY(ec->oldloc, guidevec); - - Mat4Mul3Vecfl(ob->obmat, guidedir); - VecMulf(guidedir, ec->scale); /* correction for lifetime and speed */ - - /* we subtract the speed we gave it previous step */ - VECCOPY(guidevec, guidedir); - VECSUB(guidedir, guidedir, ec->oldspeed); - VECCOPY(ec->oldspeed, guidevec); - - /* if it fully contributes, we stop */ - if(f_force==1.0) { - VECCOPY(guidecollect, guidedir); - guidedist= 1.0f; - break; - } - else if(guidedist<1.0f) { - VecMulf(guidedir, f_force); - VECADD(guidecollect, guidecollect, guidedir); - guidedist += f_force; - } - } - } - - /* all guides are accumulated here */ - if(guidedist!=0.0f) { - if(guidedist!=1.0f) VecMulf(guidecollect, 1.0f/guidedist); - VECADD(speed, speed, guidecollect); } } - - -/* for paf start to end, store all matrices for objects */ -typedef struct pMatrixCache { - float obmat[4][4]; - float imat[3][3]; -} pMatrixCache; - -/* for fluidsim win32 debug messages */ -#if defined(WIN32) && (!(defined snprintf)) -#define snprintf _snprintf -#endif diff --git a/source/blender/blenkernel/intern/icons.c b/source/blender/blenkernel/intern/icons.c index cab7865c1b6..b9e3c593ddf 100644 --- a/source/blender/blenkernel/intern/icons.c +++ b/source/blender/blenkernel/intern/icons.c @@ -50,6 +50,8 @@ #include "BKE_icons.h" #include "BKE_utildefines.h" +#include "BLO_sys_types.h" // for intptr_t support + #define GS(a) (*((short *)(a))) /* GLOBALS */ diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index b6c8ad59e08..07537e3a81c 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -86,6 +86,8 @@ #include "blendef.h" #include "BSE_time.h" +#include "BLO_sys_types.h" // for intptr_t support + /* max int, to indicate we don't store sequences in ibuf */ #define IMA_NO_INDEX 0x7FEFEFEF @@ -630,11 +632,11 @@ void free_old_images() } } -static unsigned long image_mem_size(Image *ima) +static uintptr_t image_mem_size(Image *ima) { ImBuf *ibuf, *ibufm; int level; - unsigned long size = 0; + uintptr_t size = 0; size= 0; for(ibuf= ima->ibufs.first; ibuf; ibuf= ibuf->next) { @@ -656,7 +658,7 @@ static unsigned long image_mem_size(Image *ima) void BKE_image_print_memlist(void) { Image *ima; - unsigned long size, totsize= 0; + uintptr_t size, totsize= 0; for(ima= G.main->image.first; ima; ima= ima->id.next) totsize += image_mem_size(ima); diff --git a/source/blender/blenkernel/intern/implicit.c b/source/blender/blenkernel/intern/implicit.c index 297ac0b1530..0375ab22909 100644 --- a/source/blender/blenkernel/intern/implicit.c +++ b/source/blender/blenkernel/intern/implicit.c @@ -1354,25 +1354,57 @@ DO_INLINE void cloth_apply_spring_force(ClothModifierData *clmd, ClothSpring *s, } } + +static void CalcFloat( float *v1, float *v2, float *v3, float *n) +{ + float n1[3],n2[3]; + + n1[0]= v1[0]-v2[0]; + n2[0]= v2[0]-v3[0]; + n1[1]= v1[1]-v2[1]; + n2[1]= v2[1]-v3[1]; + n1[2]= v1[2]-v2[2]; + n2[2]= v2[2]-v3[2]; + n[0]= n1[1]*n2[2]-n1[2]*n2[1]; + n[1]= n1[2]*n2[0]-n1[0]*n2[2]; + n[2]= n1[0]*n2[1]-n1[1]*n2[0]; +} + +static void CalcFloat4( float *v1, float *v2, float *v3, float *v4, float *n) +{ + /* real cross! */ + float n1[3],n2[3]; + + n1[0]= v1[0]-v3[0]; + n1[1]= v1[1]-v3[1]; + n1[2]= v1[2]-v3[2]; + + n2[0]= v2[0]-v4[0]; + n2[1]= v2[1]-v4[1]; + n2[2]= v2[2]-v4[2]; + + n[0]= n1[1]*n2[2]-n1[2]*n2[1]; + n[1]= n1[2]*n2[0]-n1[0]*n2[2]; + n[2]= n1[0]*n2[1]-n1[1]*n2[0]; +} + float calculateVertexWindForce(float wind[3], float vertexnormal[3]) { - return fabs(INPR(wind, vertexnormal)); + return (INPR(wind, vertexnormal)); } void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVector *lV, fmatrix3x3 *dFdV, fmatrix3x3 *dFdX, ListBase *effectors, float time, fmatrix3x3 *M) { /* Collect forces and derivatives: F,dFdX,dFdV */ Cloth *cloth = clmd->clothObject; - long i = 0; + int i = 0; float spring_air = clmd->sim_parms->Cvi * 0.01f; /* viscosity of air scaled in percent */ float gravity[3]; float tm2[3][3] = {{-spring_air,0,0}, {0,-spring_air,0},{0,0,-spring_air}}; MFace *mfaces = cloth->mfaces; - //ClothVertex *verts = cloth->verts; - float wind_normalized[3]; unsigned int numverts = cloth->numverts; LinkNode *search = cloth->springs; - + lfVector *winvec; VECCOPY(gravity, clmd->sim_parms->gravity); mul_fvector_S(gravity, gravity, 0.001f); /* scale gravity force */ @@ -1387,7 +1419,7 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec /* multiply lF with mass matrix // force = mass * acceleration (in this case: gravity) */ - for(i = 0; i < (long)numverts; i++) + for(i = 0; i < numverts; i++) { float temp[3]; VECCOPY(temp, lF[i]); @@ -1399,70 +1431,61 @@ void cloth_calc_force(ClothModifierData *clmd, lfVector *lF, lfVector *lX, lfVec /* handle external forces like wind */ if(effectors) { - for(i = 0; i < cloth->numfaces; i++) + // 0 = force, 1 = normalized force + winvec = create_lfvector(cloth->numverts); + + if(!winvec) + printf("winvec: out of memory in implicit.c\n"); + + // precalculate wind forces + for(i = 0; i < cloth->numverts; i++) { - float vertexnormal[3]={0,0,0}; float speed[3] = {0.0f, 0.0f,0.0f}; - float force[3]= {0.0f, 0.0f, 0.0f}; + pdDoEffectors(effectors, lX[i], winvec[i], speed, (float)G.scene->r.cfra, 0.0f, 0); + } + + for(i = 0; i < cloth->numfaces; i++) + { + float trinormal[3]={0,0,0}; // normalized triangle normal + float triunnormal[3]={0,0,0}; // not-normalized-triangle normal + float tmp[3]={0,0,0}; + float factor = (mfaces[i].v4) ? 0.25 : 1.0 / 3.0; + factor *= 0.05; + + // calculate face normal if(mfaces[i].v4) - CalcNormFloat4(lX[mfaces[i].v1],lX[mfaces[i].v2],lX[mfaces[i].v3],lX[mfaces[i].v4],vertexnormal); + CalcFloat4(lX[mfaces[i].v1],lX[mfaces[i].v2],lX[mfaces[i].v3],lX[mfaces[i].v4],triunnormal); else - CalcNormFloat(lX[mfaces[i].v1],lX[mfaces[i].v2],lX[mfaces[i].v3],vertexnormal); + CalcFloat(lX[mfaces[i].v1],lX[mfaces[i].v2],lX[mfaces[i].v3],triunnormal); - pdDoEffectors(effectors, lX[mfaces[i].v1], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED); - VECCOPY(wind_normalized, speed); - Normalize(wind_normalized); - VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal)); + VECCOPY(trinormal, triunnormal); + Normalize(trinormal); - if(mfaces[i].v4) - { - VECADDS(lF[mfaces[i].v1], lF[mfaces[i].v1], wind_normalized, 0.25); - } - else - { - VECADDS(lF[mfaces[i].v1], lF[mfaces[i].v1], wind_normalized, 1.0 / 3.0); - } + // add wind from v1 + VECCOPY(tmp, trinormal); + VecMulf(tmp, calculateVertexWindForce(winvec[mfaces[i].v1], triunnormal)); + VECADDS(lF[mfaces[i].v1], lF[mfaces[i].v1], tmp, factor); - speed[0] = speed[1] = speed[2] = 0.0; - pdDoEffectors(effectors, lX[mfaces[i].v2], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED); - VECCOPY(wind_normalized, speed); - Normalize(wind_normalized); - VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal)); - if(mfaces[i].v4) - { - VECADDS(lF[mfaces[i].v2], lF[mfaces[i].v2], wind_normalized, 0.25); - } - else - { - VECADDS(lF[mfaces[i].v2], lF[mfaces[i].v2], wind_normalized, 1.0 / 3.0); - } + // add wind from v2 + VECCOPY(tmp, trinormal); + VecMulf(tmp, calculateVertexWindForce(winvec[mfaces[i].v2], triunnormal)); + VECADDS(lF[mfaces[i].v2], lF[mfaces[i].v2], tmp, factor); - speed[0] = speed[1] = speed[2] = 0.0; - pdDoEffectors(effectors, lX[mfaces[i].v3], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED); - VECCOPY(wind_normalized, speed); - Normalize(wind_normalized); - VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal)); - if(mfaces[i].v4) - { - VECADDS(lF[mfaces[i].v3], lF[mfaces[i].v3], wind_normalized, 0.25); - } - else - { - VECADDS(lF[mfaces[i].v3], lF[mfaces[i].v3], wind_normalized, 1.0 / 3.0); - } + // add wind from v3 + VECCOPY(tmp, trinormal); + VecMulf(tmp, calculateVertexWindForce(winvec[mfaces[i].v3], triunnormal)); + VECADDS(lF[mfaces[i].v3], lF[mfaces[i].v3], tmp, factor); - speed[0] = speed[1] = speed[2] = 0.0; + // add wind from v4 if(mfaces[i].v4) { - pdDoEffectors(effectors, lX[mfaces[i].v4], force, speed, (float)G.scene->r.cfra, 0.0f, PE_WIND_AS_SPEED); - VECCOPY(wind_normalized, speed); - Normalize(wind_normalized); - VecMulf(wind_normalized, -calculateVertexWindForce(speed, vertexnormal)); - VECADDS(lF[mfaces[i].v4], lF[mfaces[i].v4], wind_normalized, 0.25); + VECCOPY(tmp, trinormal); + VecMulf(tmp, calculateVertexWindForce(winvec[mfaces[i].v4], triunnormal)); + VECADDS(lF[mfaces[i].v4], lF[mfaces[i].v4], tmp, factor); } - } + del_lfvector(winvec); } // calculate spring forces diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 59eb3837aab..fe92edfbbd5 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -182,7 +182,7 @@ int part_ar[PART_TOTIPO]= { PART_EMIT_FREQ, PART_EMIT_LIFE, PART_EMIT_VEL, PART_EMIT_AVE, PART_EMIT_SIZE, PART_AVE, PART_SIZE, PART_DRAG, PART_BROWN, PART_DAMP, PART_LENGTH, PART_CLUMP, PART_GRAV_X, PART_GRAV_Y, PART_GRAV_Z, PART_KINK_AMP, PART_KINK_FREQ, PART_KINK_SHAPE, - PART_BB_TILT + PART_BB_TILT, PART_PD_FSTR, PART_PD_FFALL, PART_PD_FMAXD }; @@ -1608,6 +1608,12 @@ void *get_ipo_poin(ID *id, IpoCurve *icu, int *type) poin= &(part->kink_shape); break; case PART_BB_TILT: poin= &(part->bb_tilt); break; + case PART_PD_FSTR: + poin= (part->pd?(&(part->pd->f_strength)):NULL); break; + case PART_PD_FFALL: + poin= (part->pd?(&(part->pd->f_power)):NULL); break; + case PART_PD_FMAXD: + poin= (part->pd?(&(part->pd->maxdist)):NULL); break; } } diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index d1c0cdec71d..60fdbca2021 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -2205,177 +2205,6 @@ static int get_particles_from_cache(Object *ob, ParticleSystem *psys, int cfra) return 1; } -/************************************************/ -/* Effectors */ -/************************************************/ -static float falloff_func(float fac, int usemin, float mindist, int usemax, float maxdist, float power) -{ - if(!usemin) - mindist= 0.0f; - - if(fac < mindist) { - return 1.0f; - } - else if(usemax) { - if(fac>maxdist || (maxdist-mindist)<=0.0f) - return 0.0f; - - fac= (fac-mindist)/(maxdist-mindist); - return 1.0f - (float)pow((double)fac, (double)power); - } - else - return pow((double)1.0f+fac-mindist, (double)-power); -} - -static float falloff_func_dist(PartDeflect *pd, float fac) -{ - return falloff_func(fac, pd->flag&PFIELD_USEMIN, pd->mindist, pd->flag&PFIELD_USEMAX, pd->maxdist, pd->f_power); -} - -static float falloff_func_rad(PartDeflect *pd, float fac) -{ - return falloff_func(fac, pd->flag&PFIELD_USEMINR, pd->minrad, pd->flag&PFIELD_USEMAXR, pd->maxrad, pd->f_power_r); -} - -static float effector_falloff(PartDeflect *pd, float *eff_velocity, float *vec_to_part) -{ - float eff_dir[3], temp[3]; - float falloff=1.0, fac, r_fac; - - VecCopyf(eff_dir,eff_velocity); - Normalize(eff_dir); - - if(pd->flag & PFIELD_POSZ && Inpf(eff_dir,vec_to_part)<0.0f) - falloff=0.0f; - else switch(pd->falloff){ - case PFIELD_FALL_SPHERE: - fac=VecLength(vec_to_part); - falloff= falloff_func_dist(pd, fac); - break; - - case PFIELD_FALL_TUBE: - fac=Inpf(vec_to_part,eff_dir); - falloff= falloff_func_dist(pd, ABS(fac)); - if(falloff == 0.0f) - break; - - VECADDFAC(temp,vec_to_part,eff_dir,-fac); - r_fac=VecLength(temp); - falloff*= falloff_func_rad(pd, r_fac); - break; - case PFIELD_FALL_CONE: - fac=Inpf(vec_to_part,eff_dir); - falloff= falloff_func_dist(pd, ABS(fac)); - if(falloff == 0.0f) - break; - - r_fac=saacos(fac/VecLength(vec_to_part))*180.0f/(float)M_PI; - falloff*= falloff_func_rad(pd, r_fac); - - break; -// case PFIELD_FALL_INSIDE: - //for(i=0; i<totface; i++,mface++){ - // VECCOPY(v1,mvert[mface->v1].co); - // VECCOPY(v2,mvert[mface->v2].co); - // VECCOPY(v3,mvert[mface->v3].co); - - // if(AxialLineIntersectsTriangle(a,co1, co2, v2, v3, v1, &lambda)){ - // if(from==PART_FROM_FACE) - // (pa+(int)(lambda*size[a])*a0mul)->flag &= ~PARS_UNEXIST; - // else /* store number of intersections */ - // (pa+(int)(lambda*size[a])*a0mul)->loop++; - // } - // - // if(mface->v4){ - // VECCOPY(v4,mvert[mface->v4].co); - - // if(AxialLineIntersectsTriangle(a,co1, co2, v4, v1, v3, &lambda)){ - // if(from==PART_FROM_FACE) - // (pa+(int)(lambda*size[a])*a0mul)->flag &= ~PARS_UNEXIST; - // else - // (pa+(int)(lambda*size[a])*a0mul)->loop++; - // } - // } - //} - -// break; - } - - return falloff; -} -static void do_physical_effector(short type, float force_val, float distance, float falloff, float size, float damp, - float *eff_velocity, float *vec_to_part, float *velocity, float *field, int planar) -{ - float mag_vec[3]={0,0,0}; - float temp[3], temp2[3]; - float eff_vel[3]; - - VecCopyf(eff_vel,eff_velocity); - Normalize(eff_vel); - - switch(type){ - case PFIELD_WIND: - VECCOPY(mag_vec,eff_vel); - - VecMulf(mag_vec,force_val*falloff); - VecAddf(field,field,mag_vec); - break; - - case PFIELD_FORCE: - if(planar) - Projf(mag_vec,vec_to_part,eff_vel); - else - VecCopyf(mag_vec,vec_to_part); - - VecMulf(mag_vec,force_val*falloff); - VecAddf(field,field,mag_vec); - break; - - case PFIELD_VORTEX: - Crossf(mag_vec,eff_vel,vec_to_part); - Normalize(mag_vec); - - VecMulf(mag_vec,force_val*distance*falloff); - VecAddf(field,field,mag_vec); - - break; - case PFIELD_MAGNET: - if(planar) - VecCopyf(temp,eff_vel); - else - /* magnetic field of a moving charge */ - Crossf(temp,eff_vel,vec_to_part); - - Crossf(temp2,velocity,temp); - VecAddf(mag_vec,mag_vec,temp2); - - VecMulf(mag_vec,force_val*falloff); - VecAddf(field,field,mag_vec); - break; - case PFIELD_HARMONIC: - if(planar) - Projf(mag_vec,vec_to_part,eff_vel); - else - VecCopyf(mag_vec,vec_to_part); - - VecMulf(mag_vec,force_val*falloff); - VecSubf(field,field,mag_vec); - - VecCopyf(mag_vec,velocity); - /* 1.9 is an experimental value to get critical damping at damp=1.0 */ - VecMulf(mag_vec,damp*1.9f*(float)sqrt(force_val)); - VecSubf(field,field,mag_vec); - break; - case PFIELD_NUCLEAR: - /*pow here is root of cosine expression below*/ - //rad=(float)pow(2.0,-1.0/power)*distance/size; - //VECCOPY(mag_vec,vec_to_part); - //Normalize(mag_vec); - //VecMulf(mag_vec,(float)cos(3.0*M_PI/2.0*(1.0-1.0/(pow(rad,power)+1.0)))/(rad+0.2f)); - //VECADDFAC(field,field,mag_vec,force_val); - break; - } -} static void do_texture_effector(Tex *tex, short mode, short is_2d, float nabla, short object, float *pa_co, float obmat[4][4], float force_val, float falloff, float *field) { TexResult result[4]; @@ -2788,7 +2617,7 @@ void do_effectors(int pa_no, ParticleData *pa, ParticleKey *state, Object *ob, P } else { do_physical_effector(pd->forcefield,pd->f_strength,distance, falloff,pd->f_dist,pd->f_damp,eob->obmat[2],vec_to_part, - pa->state.vel,force_field,pd->flag&PFIELD_PLANAR); + pa->state.vel,force_field,pd->flag&PFIELD_PLANAR, pd->rng, pd->f_noise); } } if(ec->type & PSYS_EC_PARTICLE){ @@ -2837,7 +2666,7 @@ void do_effectors(int pa_no, ParticleData *pa, ParticleKey *state, Object *ob, P else do_physical_effector(pd->forcefield,pd->f_strength,distance, falloff,epart->size,pd->f_damp,estate.vel,vec_to_part, - state->vel,force_field,0); + state->vel,force_field,0, pd->rng, pd->f_noise); } else if(pd->forcefield==PFIELD_HARMONIC && cfra-framestep <= epa->dietime && cfra>epa->dietime){ /* first step after key release */ @@ -3948,27 +3777,44 @@ static void boid_body(BoidVecFunc *bvf, ParticleData *pa, ParticleSystem *psys, bvf->Addf(dvec,dvec,bvec); bvf->Addf(state->co,state->co,dvec); - /* air speed from wind effectors */ - if(psys->effectors.first){ + /* air speed from wind and vortex effectors */ + if(psys->effectors.first) { ParticleEffectorCache *ec; - for(ec=psys->effectors.first; ec; ec=ec->next){ - if(ec->type & PSYS_EC_EFFECTOR){ + for(ec=psys->effectors.first; ec; ec=ec->next) { + if(ec->type & PSYS_EC_EFFECTOR) { Object *eob = ec->ob; PartDeflect *pd = eob->pd; + float direction[3], vec_to_part[3]; + float falloff; + + if(pd->f_strength != 0.0f) { + VecCopyf(direction, eob->obmat[2]); + VecSubf(vec_to_part, state->co, eob->obmat[3]); + + falloff=effector_falloff(pd, direction, vec_to_part); + + switch(pd->forcefield) { + case PFIELD_WIND: + if(falloff <= 0.0f) + ; /* don't do anything */ + else { + Normalize(direction); + VecMulf(direction, pd->f_strength * falloff); + bvf->Addf(state->co, state->co, direction); + } + break; + case PFIELD_VORTEX: + { + float distance, mag_vec[3]; + Crossf(mag_vec, direction, vec_to_part); + Normalize(mag_vec); - if(pd->forcefield==PFIELD_WIND && pd->f_strength!=0.0){ - float distance, wind[3]; - VecCopyf(wind,eob->obmat[2]); - distance=VecLenf(state->co,eob->obmat[3]); - - if (distance < 0.001) distance = 0.001f; + distance = VecLength(vec_to_part); - if(pd->flag&PFIELD_USEMAX && distance > pd->maxdist) - ; - else{ - Normalize(wind); - VecMulf(wind,pd->f_strength/(float)pow((double)distance,(double)pd->f_power)); - bvf->Addf(state->co,state->co,wind); + VecMulf(mag_vec, pd->f_strength * distance * falloff); + bvf->Addf(state->co, state->co, mag_vec); + break; + } } } } diff --git a/source/blender/blenkernel/intern/sca.c b/source/blender/blenkernel/intern/sca.c index fcf1c7ce311..47d11bb9d29 100644 --- a/source/blender/blenkernel/intern/sca.c +++ b/source/blender/blenkernel/intern/sca.c @@ -153,6 +153,9 @@ void init_sensor(bSensor *sens) case SENS_ACTUATOR: sens->data= MEM_callocN(sizeof(bActuatorSensor), "actsens"); break; + case SENS_DELAY: + sens->data= MEM_callocN(sizeof(bDelaySensor), "delaysens"); + break; case SENS_MOUSE: ms=sens->data= MEM_callocN(sizeof(bMouseSensor), "mousesens"); ms->type= LEFTMOUSE; diff --git a/source/blender/blenlib/BLI_editVert.h b/source/blender/blenlib/BLI_editVert.h index d42663e17c7..447f6a2a485 100644 --- a/source/blender/blenlib/BLI_editVert.h +++ b/source/blender/blenlib/BLI_editVert.h @@ -38,6 +38,8 @@ #include "DNA_customdata_types.h" #include "DNA_mesh_types.h" +#include "BLO_sys_types.h" // for intptr_t support + struct DerivedMesh; struct RetopoPaintData; @@ -53,7 +55,7 @@ typedef struct EditVert struct EditEdge *e; struct EditFace *f; void *p; - long l; + intptr_t l; float fp; } tmp; float no[3]; /*vertex normal */ @@ -95,7 +97,7 @@ typedef struct EditEdge struct EditEdge *e; struct EditFace *f; void *p; - long l; + intptr_t l; float fp; } tmp; short f1, f2; /* short, f1 is (ab)used in subdiv */ @@ -122,7 +124,7 @@ typedef struct EditFace struct EditEdge *e; struct EditFace *f; void *p; - long l; + intptr_t l; float fp; } tmp; float n[3], cent[3]; diff --git a/source/blender/blenlib/BLI_rand.h b/source/blender/blenlib/BLI_rand.h index 0e534783c17..266aa347aff 100644 --- a/source/blender/blenlib/BLI_rand.h +++ b/source/blender/blenlib/BLI_rand.h @@ -44,6 +44,7 @@ struct RNG* rng_new (unsigned int seed); void rng_free (struct RNG* rng); void rng_seed (struct RNG* rng, unsigned int seed); +void rng_srandom(struct RNG *rng, unsigned int seed); int rng_getInt (struct RNG* rng); double rng_getDouble (struct RNG* rng); float rng_getFloat (struct RNG* rng); diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c index 227cb8f5e9a..e9271ca3bb5 100644 --- a/source/blender/blenlib/intern/BLI_ghash.c +++ b/source/blender/blenlib/intern/BLI_ghash.c @@ -34,6 +34,8 @@ #include "MEM_guardedalloc.h" #include "BLI_ghash.h" +#include "BLO_sys_types.h" // for intptr_t support + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -256,11 +258,7 @@ int BLI_ghashutil_ptrcmp(void *a, void *b) { } unsigned int BLI_ghashutil_inthash(void *ptr) { -#if defined(_WIN64) - unsigned __int64 key = (unsigned __int64)ptr; -#else - unsigned long key = (unsigned long)ptr; -#endif + uintptr_t key = (uintptr_t)ptr; key += ~(key << 16); key ^= (key >> 5); diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c index d0db13371b0..d20143f80e7 100644 --- a/source/blender/blenlib/intern/BLI_kdopbvh.c +++ b/source/blender/blenlib/intern/BLI_kdopbvh.c @@ -634,6 +634,18 @@ static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array, BVHBuildHelper data; int depth; + //Most of bvhtree code relies on 1-leaf trees having at least one branch + //We handle that special case here + if(num_leafs == 1) + { + BVHNode *root = branches_array+0; + refit_kdop_hull(tree, root, 0, num_leafs); + root->main_axis = get_largest_axis(root->bv) / 2; + root->totnode = 1; + root->children[0] = leafs_array[0]; + return; + } + branches_array--; //Implicit trees use 1-based indexs build_implicit_tree_helper(tree, &data); diff --git a/source/blender/blenlib/intern/fileops.c b/source/blender/blenlib/intern/fileops.c index 96de5e99f4f..2acbbbe6712 100644 --- a/source/blender/blenlib/intern/fileops.c +++ b/source/blender/blenlib/intern/fileops.c @@ -62,6 +62,8 @@ #include "BKE_utildefines.h" #include <errno.h> +#include "BLO_sys_types.h" // for intptr_t support + /* implementations: */ char *first_slash(char *string) { char *ffslash, *fbslash; @@ -72,7 +74,7 @@ char *first_slash(char *string) { if (!ffslash) return fbslash; else if (!fbslash) return ffslash; - if ((long)ffslash < (long)fbslash) return ffslash; + if ((intptr_t)ffslash < (intptr_t)fbslash) return ffslash; else return fbslash; } @@ -85,7 +87,7 @@ char *BLI_last_slash(const char *string) { if (!lfslash) return lbslash; else if (!lbslash) return lfslash; - if ((long)lfslash < (long)lbslash) return lbslash; + if ((intptr_t)lfslash < (intptr_t)lbslash) return lbslash; else return lfslash; } diff --git a/source/blender/blenlib/intern/psfont.c b/source/blender/blenlib/intern/psfont.c index 498c87cdef9..216246dcdd7 100644 --- a/source/blender/blenlib/intern/psfont.c +++ b/source/blender/blenlib/intern/psfont.c @@ -43,6 +43,8 @@ #include "DNA_packedFile_types.h" #include "DNA_curve_types.h" +#include "BLO_sys_types.h" // for intptr_t support + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -54,7 +56,7 @@ typedef struct chardesc { short llx, lly; /* bounding box */ short urx, ury; short *data; /* char data */ - long datalen; + intptr_t datalen; } chardesc; typedef struct objfnt { diff --git a/source/blender/blenlib/intern/rand.c b/source/blender/blenlib/intern/rand.c index ccc478203fe..c484a307393 100644 --- a/source/blender/blenlib/intern/rand.c +++ b/source/blender/blenlib/intern/rand.c @@ -81,6 +81,16 @@ void rng_seed(RNG *rng, unsigned int seed) { rng->X= (((r_uint64) seed)<<16) | LOWSEED; } +void rng_srandom(RNG *rng, unsigned int seed) { + extern unsigned char hash[]; // noise.c + + rng_seed(rng, seed + hash[seed & 255]); + seed= rng_getInt(rng); + rng_seed(rng, seed + hash[seed & 255]); + seed= rng_getInt(rng); + rng_seed(rng, seed + hash[seed & 255]); +} + int rng_getInt(RNG *rng) { rng->X= (MULTIPLIER*rng->X + ADDEND)&MASK; return (int) (rng->X>>17); @@ -132,13 +142,7 @@ void BLI_srand(unsigned int seed) { /* using hash table to create better seed */ void BLI_srandom(unsigned int seed) { - extern unsigned char hash[]; // noise.c - - rng_seed(&theBLI_rng, seed + hash[seed & 255]); - seed= rng_getInt(&theBLI_rng); - rng_seed(&theBLI_rng, seed + hash[seed & 255]); - seed= rng_getInt(&theBLI_rng); - rng_seed(&theBLI_rng, seed + hash[seed & 255]); + rng_srandom(&theBLI_rng, seed); } int BLI_rand(void) { diff --git a/source/blender/blenlib/intern/util.c b/source/blender/blenlib/intern/util.c index 48ebf770e1b..a31121148e3 100644 --- a/source/blender/blenlib/intern/util.c +++ b/source/blender/blenlib/intern/util.c @@ -1970,7 +1970,7 @@ void BLI_timestr(double _time, char *str) int BLI_int_from_pointer(void *poin) { - long lval= (long)poin; + intptr_t lval= (intptr_t)poin; return (int)(lval>>3); } @@ -1978,17 +1978,17 @@ int BLI_int_from_pointer(void *poin) void *BLI_pointer_from_int(int val) { static int firsttime= 1; - static long basevalue= 0; + static intptr_t basevalue= 0; if(firsttime) { void *poin= malloc(10000); - basevalue= (long)poin; + basevalue= (intptr_t)poin; basevalue &= ~PMASK; printf("base: %d pointer %p\n", basevalue, poin); /* debug */ firsttime= 0; free(poin); } - return (void *)(basevalue | (((long)val)<<3)); + return (void *)(basevalue | (((intptr_t)val)<<3)); } #else diff --git a/source/blender/blenloader/BLO_sys_types.h b/source/blender/blenloader/BLO_sys_types.h index a1885894fe3..a9d29375eac 100644 --- a/source/blender/blenloader/BLO_sys_types.h +++ b/source/blender/blenloader/BLO_sys_types.h @@ -43,11 +43,6 @@ #ifdef __cplusplus extern "C" { #endif - -#ifdef FREE_WINDOWS -typedef unsigned char uint8_t; -typedef unsigned int uint32_t; -#endif #if defined(_WIN32) && !defined(FREE_WINDOWS) @@ -64,6 +59,14 @@ typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; typedef unsigned __int64 uint64_t; +#ifdef _WIN64 +typedef __int64 intptr_t; +typedef unsigned __int64 uintptr_t; +#else +typedef long intptr_t; +typedef unsigned long uintptr_t; +#endif + #elif defined(__linux__) /* Linux-i386, Linux-Alpha, Linux-ppc */ @@ -73,6 +76,10 @@ typedef unsigned __int64 uint64_t; #include <inttypes.h> +#elif defined(FREE_WINDOWS) + +#include <stdint.h> + #else /* FreeBSD, Irix, Solaris */ diff --git a/source/blender/blenloader/intern/genfile.c b/source/blender/blenloader/intern/genfile.c index 87c859de839..86338ca9e89 100644 --- a/source/blender/blenloader/intern/genfile.c +++ b/source/blender/blenloader/intern/genfile.c @@ -58,6 +58,8 @@ #include "genfile.h" +#include "BLO_sys_types.h" // for intptr_t support + /* gcc 4.1 on mingw was complaining that __int64 was alredy defined actually is saw the line below as typedef long long long long... Anyhow, since its alredy defined, its safe to do an ifndef here- Cambpell*/ @@ -315,7 +317,7 @@ static void init_structDNA(struct SDNA *sdna, int do_endian_swap) /* in sdna->data the data, now we convert that to something understandable */ { int *data, *verg; - long nr; + intptr_t nr; short *sp; char str[8], *cp; @@ -351,7 +353,7 @@ static void init_structDNA(struct SDNA *sdna, int do_endian_swap) cp++; nr++; } - nr= (long)cp; /* prevent BUS error */ + nr= (intptr_t)cp; /* prevent BUS error */ nr= (nr+3) & ~3; cp= (char *)nr; @@ -389,7 +391,7 @@ static void init_structDNA(struct SDNA *sdna, int do_endian_swap) cp++; nr++; } - nr= (long)cp; /* prevent BUS error */ + nr= (intptr_t)cp; /* prevent BUS error */ nr= (nr+3) & ~3; cp= (char *)nr; @@ -1098,7 +1100,7 @@ int dna_elem_offset(struct SDNA *sdna, char *stype, char *vartype, char *name) int SDNAnr= dna_findstruct_nr(sdna, stype); short *spo= sdna->structs[SDNAnr]; char *cp= find_elem(sdna, vartype, name, spo, NULL, NULL); - return (int)((long)cp); + return (int)((intptr_t)cp); } diff --git a/source/blender/blenloader/intern/readblenentry.c b/source/blender/blenloader/intern/readblenentry.c index f56b261efe2..5a75b5c8b11 100644 --- a/source/blender/blenloader/intern/readblenentry.c +++ b/source/blender/blenloader/intern/readblenentry.c @@ -63,6 +63,8 @@ #include "BLO_readblenfile.h" +#include "BLO_sys_types.h" // needed for intptr_t + /** * IDType stuff, I plan to move this * out into its own file + prefix, and @@ -193,7 +195,7 @@ void BLO_blendhandle_print_sizes(BlendHandle *bh, void *fp) buf[2]= buf[2]?buf[2]:' '; buf[3]= buf[3]?buf[3]:' '; - fprintf(fp, "['%.4s', '%s', %d, %ld ], \n", buf, name, bhead->nr, (long)bhead->len+sizeof(BHead)); + fprintf(fp, "['%.4s', '%s', %d, %ld ], \n", buf, name, bhead->nr, (intptr_t)bhead->len+sizeof(BHead)); } } fprintf(fp, "]\n"); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 70ead610cc3..9d7a0302d45 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2949,11 +2949,9 @@ static void lib_link_object(FileData *fd, Main *main) sens= ob->sensors.first; while(sens) { - if(ob->id.lib==NULL) { // done in expand_main - for(a=0; a<sens->totlinks; a++) { - sens->links[a]= newglobadr(fd, sens->links[a]); - } - } + for(a=0; a<sens->totlinks; a++) + sens->links[a]= newglobadr(fd, sens->links[a]); + if(sens->type==SENS_TOUCH) { bTouchSensor *ts= sens->data; ts->ma= newlibadr(fd, ob->id.lib, ts->ma); @@ -2968,11 +2966,9 @@ static void lib_link_object(FileData *fd, Main *main) cont= ob->controllers.first; while(cont) { - if(ob->id.lib==NULL) { // done in expand_main - for(a=0; a<cont->totlinks; a++) { - cont->links[a]= newglobadr(fd, cont->links[a]); - } - } + for(a=0; a<cont->totlinks; a++) + cont->links[a]= newglobadr(fd, cont->links[a]); + if(cont->type==CONT_PYTHON) { bPythonCont *pc= cont->data; pc->text= newlibadr(fd, ob->id.lib, pc->text); @@ -3600,9 +3596,9 @@ static void direct_link_scene(FileData *fd, Scene *sce) { Sequence temp; char *poin; - long offset; + intptr_t offset; - offset= ((long)&(temp.seqbase)) - ((long)&temp); + offset= ((intptr_t)&(temp.seqbase)) - ((intptr_t)&temp); /* root pointer */ if(ed->seqbasep == old_seqbasep) { @@ -4101,7 +4097,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc) while(se) { se->v1= newdataadr(fd, se->v1); se->v2= newdataadr(fd, se->v2); - if( (long)se->v1 > (long)se->v2) { + if( (intptr_t)se->v1 > (intptr_t)se->v2) { sv= se->v1; se->v1= se->v2; se->v2= sv; @@ -7737,31 +7733,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main) idproperties_fix_group_lengths(main->brush); idproperties_fix_group_lengths(main->particle); } - - /* only needed until old bad svn/RC1,2 files are saved with a > 17 version -dg */ - if(main->versionfile == 245 && main->subversionfile < 17) { - ModifierData *md; - Object *ob; - - for(ob = main->object.first; ob; ob= ob->id.next) { - for(md=ob->modifiers.first; md; ) { - if(md->type==eModifierType_Cloth) { - ModifierData *next; - MEM_freeN(((ClothModifierData *)md)->sim_parms); - MEM_freeN(((ClothModifierData *)md)->coll_parms); - MEM_freeN(((ClothModifierData *)md)->point_cache); - ((ClothModifierData *)md)->sim_parms = NULL; - ((ClothModifierData *)md)->coll_parms = NULL; - ((ClothModifierData *)md)->point_cache = NULL; - next=md->next; - BLI_remlink(&ob->modifiers, md); - md = next; - } - else - md = md->next; - } - } - } /* sun/sky */ if(main->versionfile < 246) { @@ -7788,6 +7759,14 @@ static void do_versions(FileData *fd, Library *lib, Main *main) for(me=main->mesh.first; me; me= me->id.next) alphasort_version_246(fd, lib, me); } + + if(main->versionfile <= 246 && main->subversionfile < 1){ + Object *ob; + for(ob = main->object.first; ob; ob= ob->id.next) { + if(ob->pd && (ob->pd->forcefield == PFIELD_WIND)) + ob->pd->f_noise = 0.0; + } + } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */ @@ -8510,9 +8489,6 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob) sens= ob->sensors.first; while(sens) { - for(a=0; a<sens->totlinks; a++) { - sens->links[a]= newglobadr(fd, sens->links[a]); - } if(sens->type==SENS_TOUCH) { bTouchSensor *ts= sens->data; expand_doit(fd, mainvar, ts->ma); @@ -8526,9 +8502,6 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob) cont= ob->controllers.first; while(cont) { - for(a=0; a<cont->totlinks; a++) { - cont->links[a]= newglobadr(fd, cont->links[a]); - } if(cont->type==CONT_PYTHON) { bPythonCont *pc= cont->data; expand_doit(fd, mainvar, pc->text); diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 3a70438dd13..b462233528a 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -608,6 +608,9 @@ static void write_sensors(WriteData *wd, ListBase *lb) case SENS_ACTUATOR: writestruct(wd, DATA, "bActuatorSensor", 1, sens->data); break; + case SENS_DELAY: + writestruct(wd, DATA, "bDelaySensor", 1, sens->data); + break; case SENS_COLLISION: writestruct(wd, DATA, "bCollisionSensor", 1, sens->data); break; diff --git a/source/blender/blenpluginapi/intern/pluginapi.c b/source/blender/blenpluginapi/intern/pluginapi.c index e65148a0b04..9c08a0b2f9d 100644 --- a/source/blender/blenpluginapi/intern/pluginapi.c +++ b/source/blender/blenpluginapi/intern/pluginapi.c @@ -50,10 +50,12 @@ #include "plugin.h" #include "MEM_guardedalloc.h" +#include "BLO_sys_types.h" // needed for intptr_t + #include "BLI_blenlib.h" /* util and noise functions */ #include "BLI_threads.h" /* For threadsfe guardedalloc malloc/calloc/free */ #include "IMB_imbuf.h" /* image buffer stuff */ -#define GET_INT_FROM_POINTER(i) ((int)(long)(i)) /* should use BKE_utildefines.h */ +#define GET_INT_FROM_POINTER(i) ((int)(intptr_t)(i)) /* should use BKE_utildefines.h */ /* -------------------------------------------------------------------------- */ /* stuff from util.h */ diff --git a/source/blender/imbuf/intern/cineon/cineonlib.c b/source/blender/imbuf/intern/cineon/cineonlib.c index 3b45a9de822..ecee3c7d6c0 100644 --- a/source/blender/imbuf/intern/cineon/cineonlib.c +++ b/source/blender/imbuf/intern/cineon/cineonlib.c @@ -67,12 +67,12 @@ fillCineonFileInfo(CineonFile* cineon, CineonFileInformation* fileInfo, const ch static void dumpCineonFileInfo(CineonFileInformation* fileInfo) { d_printf("\n--File Information--\n"); - d_printf("Magic: %8.8lX\n", (unsigned long)ntohl(fileInfo->magic_num)); - d_printf("Image Offset %ld\n", (long)ntohl(fileInfo->image_offset)); - d_printf("Generic Header size %ld\n", (long)ntohl(fileInfo->gen_hdr_size)); - d_printf("Industry Header size %ld\n", (long)ntohl(fileInfo->ind_hdr_size)); - d_printf("User Data size %ld\n", (long)ntohl(fileInfo->user_data_size)); - d_printf("File size %ld\n", (long)ntohl(fileInfo->file_size)); + d_printf("Magic: %8.8lX\n", (uintptr_t)ntohl(fileInfo->magic_num)); + d_printf("Image Offset %ld\n", (intptr_t)ntohl(fileInfo->image_offset)); + d_printf("Generic Header size %ld\n", (intptr_t)ntohl(fileInfo->gen_hdr_size)); + d_printf("Industry Header size %ld\n", (intptr_t)ntohl(fileInfo->ind_hdr_size)); + d_printf("User Data size %ld\n", (intptr_t)ntohl(fileInfo->user_data_size)); + d_printf("File size %ld\n", (intptr_t)ntohl(fileInfo->file_size)); d_printf("Version \"%s\"\n", fileInfo->vers); d_printf("File name \"%s\"\n", fileInfo->file_name); d_printf("Creation date \"%s\"\n", fileInfo->create_date); @@ -112,11 +112,11 @@ dumpCineonChannelInfo(CineonChannelInformation* chan) { default: d_printf(" (unknown)\n"); break; } d_printf(" Bits per pixel %d\n", chan->bits_per_pixel); - d_printf(" Pixels per line %ld\n", (long)ntohl(chan->pixels_per_line)); - d_printf(" Lines per image %ld\n", (long)ntohl(chan->lines_per_image)); - d_printf(" Ref low data %ld\n", (long)ntohl(chan->ref_low_data)); + d_printf(" Pixels per line %ld\n", (intptr_t)ntohl(chan->pixels_per_line)); + d_printf(" Lines per image %ld\n", (intptr_t)ntohl(chan->lines_per_image)); + d_printf(" Ref low data %ld\n", (intptr_t)ntohl(chan->ref_low_data)); d_printf(" Ref low quantity %f\n", ntohf(chan->ref_low_quantity)); - d_printf(" Ref high data %ld\n", (long)ntohl(chan->ref_high_data)); + d_printf(" Ref high data %ld\n", (intptr_t)ntohl(chan->ref_high_data)); d_printf(" Ref high quantity %f\n", ntohf(chan->ref_high_quantity)); } @@ -231,8 +231,8 @@ dumpCineonFormatInfo(CineonFormatInformation* formatInfo) { } else { d_printf(" positive\n"); } - d_printf("End of line padding %ld\n", (long)ntohl(formatInfo->line_padding)); - d_printf("End of channel padding %ld\n", (long)ntohl(formatInfo->channel_padding)); + d_printf("End of line padding %ld\n", (intptr_t)ntohl(formatInfo->line_padding)); + d_printf("End of channel padding %ld\n", (intptr_t)ntohl(formatInfo->channel_padding)); } static void @@ -256,8 +256,8 @@ fillCineonOriginationInfo(CineonFile* cineon, static void dumpCineonOriginationInfo(CineonOriginationInformation* originInfo) { d_printf("\n--Origination Information--\n"); - d_printf("X offset %ld\n", (long)ntohl(originInfo->x_offset)); - d_printf("Y offset %ld\n", (long)ntohl(originInfo->y_offset)); + d_printf("X offset %ld\n", (intptr_t)ntohl(originInfo->x_offset)); + d_printf("Y offset %ld\n", (intptr_t)ntohl(originInfo->y_offset)); d_printf("File name \"%s\"\n", originInfo->file_name); d_printf("Creation date \"%s\"\n", originInfo->create_date); d_printf("Creation time \"%s\"\n", originInfo->create_time); @@ -529,7 +529,7 @@ cineonOpen(const char* filename) { /* let's assume cineon files are always network order */ if (header.fileInfo.magic_num != ntohl(CINEON_FILE_MAGIC)) { if (verbose) d_printf("Bad magic number %8.8lX in \"%s\".\n", - (unsigned long)ntohl(header.fileInfo.magic_num), filename); + (uintptr_t)ntohl(header.fileInfo.magic_num), filename); cineonClose(cineon); return 0; } @@ -628,7 +628,7 @@ cineonOpenFromMem(unsigned char *mem, unsigned int size) { /* let's assume cineon files are always network order */ if (header.fileInfo.magic_num != ntohl(CINEON_FILE_MAGIC)) { - if (verbose) d_printf("Bad magic number %8.8lX in\n", (unsigned long)ntohl(header.fileInfo.magic_num)); + if (verbose) d_printf("Bad magic number %8.8lX in\n", (uintptr_t)ntohl(header.fileInfo.magic_num)); cineonClose(cineon); return 0; diff --git a/source/blender/imbuf/intern/cineon/dpxlib.c b/source/blender/imbuf/intern/cineon/dpxlib.c index 500c09ba265..1710cdde501 100644 --- a/source/blender/imbuf/intern/cineon/dpxlib.c +++ b/source/blender/imbuf/intern/cineon/dpxlib.c @@ -58,15 +58,15 @@ fillDpxChannelInfo(DpxFile* dpx, DpxChannelInformation* chan, int des) { static void dumpDpxChannelInfo(DpxChannelInformation* chan) { - d_printf(" Signage %ld", (long)ntohl(chan->signage)); - d_printf(" Ref low data %ld\n", (long)ntohl(chan->ref_low_data)); + d_printf(" Signage %ld", (intptr_t)ntohl(chan->signage)); + d_printf(" Ref low data %ld\n", (intptr_t)ntohl(chan->ref_low_data)); d_printf(" Ref low quantity %f\n", ntohf(chan->ref_low_quantity)); - d_printf(" Ref high data %ld\n", (long)ntohl(chan->ref_high_data)); + d_printf(" Ref high data %ld\n", (intptr_t)ntohl(chan->ref_high_data)); d_printf(" Ref high quantity %f\n", ntohf(chan->ref_high_quantity)); d_printf(" Designator1: %d,", chan->designator1); d_printf(" Bits per pixel %d\n", chan->bits_per_pixel); d_printf(" Packing: %d,", ntohs(chan->packing)); - d_printf(" Data Offset: %ld,", (long)ntohl(chan->data_offset)); + d_printf(" Data Offset: %ld,", (intptr_t)ntohl(chan->data_offset)); } static void @@ -110,19 +110,19 @@ static void dumpDpxFileInfo(DpxFileInformation* fileInfo) { d_printf("\n--File Information--\n"); d_printf("Magic: %8.8lX\n", (unsigned long)ntohl(fileInfo->magic_num)); - d_printf("Image Offset %ld\n", (long)ntohl(fileInfo->offset)); + d_printf("Image Offset %ld\n", (intptr_t)ntohl(fileInfo->offset)); d_printf("Version \"%s\"\n", fileInfo->vers); - d_printf("File size %ld\n", (long)ntohl(fileInfo->file_size)); - d_printf("Ditto key %ld\n", (long)ntohl(fileInfo->ditto_key)); - d_printf("Generic Header size %ld\n", (long)ntohl(fileInfo->gen_hdr_size)); - d_printf("Industry Header size %ld\n", (long)ntohl(fileInfo->ind_hdr_size)); - d_printf("User Data size %ld\n", (long)ntohl(fileInfo->user_data_size)); + d_printf("File size %ld\n", (intptr_t)ntohl(fileInfo->file_size)); + d_printf("Ditto key %ld\n", (intptr_t)ntohl(fileInfo->ditto_key)); + d_printf("Generic Header size %ld\n", (intptr_t)ntohl(fileInfo->gen_hdr_size)); + d_printf("Industry Header size %ld\n", (intptr_t)ntohl(fileInfo->ind_hdr_size)); + d_printf("User Data size %ld\n", (intptr_t)ntohl(fileInfo->user_data_size)); d_printf("File name \"%s\"\n", fileInfo->file_name); d_printf("Creation date \"%s\"\n", fileInfo->create_date); d_printf("Creator \"%s\"\n", fileInfo->creator); d_printf("Project \"%s\"\n", fileInfo->project); d_printf("Copyright \"%s\"\n", fileInfo->copyright); - d_printf("Key %ld\n", (long)ntohl(fileInfo->key)); + d_printf("Key %ld\n", (intptr_t)ntohl(fileInfo->key)); } static void @@ -150,8 +150,8 @@ dumpDpxImageInfo(DpxImageInformation* imageInfo) { d_printf("Image orientation %d,", ntohs(imageInfo->orientation)); n = ntohs(imageInfo->channels_per_image); d_printf("Channels %d\n", n); - d_printf("Pixels per line %ld\n", (long)ntohl(imageInfo->pixels_per_line)); - d_printf("Lines per image %ld\n", (long)ntohl(imageInfo->lines_per_image)); + d_printf("Pixels per line %ld\n", (intptr_t)ntohl(imageInfo->pixels_per_line)); + d_printf("Lines per image %ld\n", (intptr_t)ntohl(imageInfo->lines_per_image)); for (i = 0; i < n; ++i) { d_printf(" --Channel %d--\n", i); dumpDpxChannelInfo(&imageInfo->channel[i]); @@ -166,12 +166,12 @@ fillDpxOriginationInfo( static void dumpDpxOriginationInfo(DpxOriginationInformation* originInfo) { d_printf("\n--Origination Information--\n"); - d_printf("X offset %ld\n", (long)ntohl(originInfo->x_offset)); - d_printf("Y offset %ld\n", (long)ntohl(originInfo->y_offset)); + d_printf("X offset %ld\n", (intptr_t)ntohl(originInfo->x_offset)); + d_printf("Y offset %ld\n", (intptr_t)ntohl(originInfo->y_offset)); d_printf("X centre %f\n", ntohf(originInfo->x_centre)); d_printf("Y centre %f\n", ntohf(originInfo->y_centre)); - d_printf("Original X %ld\n", (long)ntohl(originInfo->x_original_size)); - d_printf("Original Y %ld\n", (long)ntohl(originInfo->y_original_size)); + d_printf("Original X %ld\n", (intptr_t)ntohl(originInfo->x_original_size)); + d_printf("Original Y %ld\n", (intptr_t)ntohl(originInfo->y_original_size)); d_printf("File name \"%s\"\n", originInfo->file_name); d_printf("Creation time \"%s\"\n", originInfo->creation_time); d_printf("Input device \"%s\"\n", originInfo->input_device); @@ -417,7 +417,7 @@ intern_dpxOpen(int mode, const char* bytestuff, int bufsize) { /* let's assume dpx files are always network order */ if (header.fileInfo.magic_num != ntohl(DPX_FILE_MAGIC)) { if (verbose) d_printf("Bad magic number %8.8lX in \"%s\".\n", - (unsigned long)ntohl(header.fileInfo.magic_num), filename); + (uintptr_t)ntohl(header.fileInfo.magic_num), filename); dpxClose(dpx); return 0; } diff --git a/source/blender/imbuf/intern/cineon/logImageCore.h b/source/blender/imbuf/intern/cineon/logImageCore.h index 01eff8d570d..2646e8b3c12 100644 --- a/source/blender/imbuf/intern/cineon/logImageCore.h +++ b/source/blender/imbuf/intern/cineon/logImageCore.h @@ -34,7 +34,9 @@ extern "C" { #endif - +#include "BLO_sys_types.h" // for intptr_t support +#undef ntohl +#undef htonl typedef int (GetRowFn)(LogImageFile* logImage, unsigned short* row, int lineNum); typedef int (SetRowFn)(LogImageFile* logImage, const unsigned short* row, int lineNum); typedef void (CloseFn)(LogImageFile* logImage); @@ -80,7 +82,7 @@ struct _Log_Image_File_t_ CloseFn* close; unsigned char *membuffer; - unsigned long membuffersize; + uintptr_t membuffersize; unsigned char *memcursor; }; diff --git a/source/blender/imbuf/intern/cineon/logmemfile.c b/source/blender/imbuf/intern/cineon/logmemfile.c index 20359335933..160e8453713 100644 --- a/source/blender/imbuf/intern/cineon/logmemfile.c +++ b/source/blender/imbuf/intern/cineon/logmemfile.c @@ -24,10 +24,10 @@ #include "logImageCore.h" -int logimage_fseek(void* logfile, long offsett, int origin) +int logimage_fseek(void* logfile, intptr_t offsett, int origin) { struct _Log_Image_File_t_ *file = (struct _Log_Image_File_t_*) logfile; - long offset = offsett; + intptr_t offset = offsett; if (file->file) fseek(file->file, offset, origin); else { /*we're seeking in memory*/ @@ -38,7 +38,7 @@ int logimage_fseek(void* logfile, long offsett, int origin) if (offset > file->membuffersize) return 1; file->memcursor = (file->membuffer + file->membuffersize) - offset; } else if (origin==SEEK_CUR) { - unsigned long pos = (unsigned long)file->membuffer - (unsigned long)file->memcursor; + uintptr_t pos = (uintptr_t)file->membuffer - (uintptr_t)file->memcursor; if (pos + offset > file->membuffersize) return 1; if (pos < 0) return 1; file->memcursor += offset; diff --git a/source/blender/imbuf/intern/cineon/logmemfile.h b/source/blender/imbuf/intern/cineon/logmemfile.h index 6e82cf2b145..39e2f36dad9 100644 --- a/source/blender/imbuf/intern/cineon/logmemfile.h +++ b/source/blender/imbuf/intern/cineon/logmemfile.h @@ -22,7 +22,7 @@ #ifndef _LOGMEMFILE_H #define _LOGMEMFILE_H -int logimage_fseek(void* logfile, long offsett, int origin); +int logimage_fseek(void* logfile, intptr_t offsett, int origin); int logimage_fwrite(void *buffer, unsigned int size, unsigned int count, void *logfile); int logimage_fread(void *buffer, unsigned int size, unsigned int count, void *logfile); diff --git a/source/blender/imbuf/intern/scaling.c b/source/blender/imbuf/intern/scaling.c index 40c1f83c98c..8257eb4643e 100644 --- a/source/blender/imbuf/intern/scaling.c +++ b/source/blender/imbuf/intern/scaling.c @@ -39,6 +39,8 @@ #include "IMB_allocimbuf.h" #include "IMB_filter.h" +#include "BLO_sys_types.h" // for intptr_t support + /************************************************************************/ /* SCALING */ /************************************************************************/ @@ -490,8 +492,8 @@ static void enlarge_picture_byte( / (double) (src_width - 1.001); double ratioy = (double) (dst_height - 1.0) / (double) (src_height - 1.001); - unsigned long x_src, dx_src, x_dst; - unsigned long y_src, dy_src, y_dst; + uintptr_t x_src, dx_src, x_dst; + uintptr_t y_src, dy_src, y_dst; dx_src = 65536.0 / ratiox; dy_src = 65536.0 / ratioy; @@ -500,8 +502,8 @@ static void enlarge_picture_byte( for (y_dst = 0; y_dst < dst_height; y_dst++) { unsigned char* line1 = src + (y_src >> 16) * 4 * src_width; unsigned char* line2 = line1 + 4 * src_width; - unsigned long weight1y = 65536 - (y_src & 0xffff); - unsigned long weight2y = 65536 - weight1y; + uintptr_t weight1y = 65536 - (y_src & 0xffff); + uintptr_t weight2y = 65536 - weight1y; if ((y_src >> 16) == src_height - 1) { line2 = line1; @@ -509,8 +511,8 @@ static void enlarge_picture_byte( x_src = 0; for (x_dst = 0; x_dst < dst_width; x_dst++) { - unsigned long weight1x = 65536 - (x_src & 0xffff); - unsigned long weight2x = 65536 - weight1x; + uintptr_t weight1x = 65536 - (x_src & 0xffff); + uintptr_t weight2x = 65536 - weight1x; unsigned long x = (x_src >> 16) * 4; @@ -557,12 +559,12 @@ static void enlarge_picture_byte( } struct scale_outpix_byte { - unsigned long r; - unsigned long g; - unsigned long b; - unsigned long a; + uintptr_t r; + uintptr_t g; + uintptr_t b; + uintptr_t a; - unsigned long weight; + uintptr_t weight; }; static void shrink_picture_byte( @@ -571,9 +573,9 @@ static void shrink_picture_byte( { double ratiox = (double) (dst_width) / (double) (src_width); double ratioy = (double) (dst_height) / (double) (src_height); - unsigned long x_src, dx_dst, x_dst; - unsigned long y_src, dy_dst, y_dst; - long y_counter; + uintptr_t x_src, dx_dst, x_dst; + uintptr_t y_src, dy_dst, y_dst; + intptr_t y_counter; unsigned char * dst_begin = dst; struct scale_outpix_byte * dst_line1 = NULL; @@ -593,16 +595,16 @@ static void shrink_picture_byte( y_counter = 65536; for (y_src = 0; y_src < src_height; y_src++) { unsigned char* line = src + y_src * 4 * src_width; - unsigned long weight1y = 65536 - (y_dst & 0xffff); - unsigned long weight2y = 65536 - weight1y; + uintptr_t weight1y = 65536 - (y_dst & 0xffff); + uintptr_t weight2y = 65536 - weight1y; x_dst = 0; for (x_src = 0; x_src < src_width; x_src++) { - unsigned long weight1x = 65536 - (x_dst & 0xffff); - unsigned long weight2x = 65536 - weight1x; + uintptr_t weight1x = 65536 - (x_dst & 0xffff); + uintptr_t weight2x = 65536 - weight1x; - unsigned long x = x_dst >> 16; + uintptr_t x = x_dst >> 16; - unsigned long w; + uintptr_t w; w = (weight1y * weight1x) >> 16; @@ -643,13 +645,13 @@ static void shrink_picture_byte( y_dst += dy_dst; y_counter -= dy_dst; if (y_counter < 0) { - unsigned long x; + uintptr_t x; struct scale_outpix_byte * temp; y_counter += 65536; for (x=0; x < dst_width; x++) { - unsigned long f = 0x80000000UL + uintptr_t f = 0x80000000UL / dst_line1[x].weight; *dst++ = (dst_line1[x].r * f) >> 15; *dst++ = (dst_line1[x].g * f) >> 15; @@ -664,9 +666,9 @@ static void shrink_picture_byte( } } if (dst - dst_begin < dst_width * dst_height * 4) { - unsigned long x; + uintptr_t x; for (x = 0; x < dst_width; x++) { - unsigned long f = 0x80000000UL / dst_line1[x].weight; + uintptr_t f = 0x80000000UL / dst_line1[x].weight; *dst++ = (dst_line1[x].r * f) >> 15; *dst++ = (dst_line1[x].g * f) >> 15; *dst++ = (dst_line1[x].b * f) >> 15; @@ -698,8 +700,8 @@ static void enlarge_picture_float( / (double) (src_width - 1.001); double ratioy = (double) (dst_height - 1.0) / (double) (src_height - 1.001); - unsigned long x_dst; - unsigned long y_dst; + uintptr_t x_dst; + uintptr_t y_dst; double x_src, dx_src; double y_src, dy_src; @@ -727,7 +729,7 @@ static void enlarge_picture_float( float w12 = weight1y * weight2x; float w22 = weight2y * weight2x; - unsigned long x = ((int) x_src) * 4; + uintptr_t x = ((int) x_src) * 4; *dst++ = line1[x] * w11 + line2[x] * w21 @@ -770,8 +772,8 @@ static void shrink_picture_float( { double ratiox = (double) (dst_width) / (double) (src_width); double ratioy = (double) (dst_height) / (double) (src_height); - unsigned long x_src; - unsigned long y_src; + uintptr_t x_src; + uintptr_t y_src; float dx_dst, x_dst; float dy_dst, y_dst; float y_counter; @@ -794,14 +796,14 @@ static void shrink_picture_float( y_counter = 1.0; for (y_src = 0; y_src < src_height; y_src++) { float* line = src + y_src * 4 * src_width; - unsigned long weight1y = 1.0 - (y_dst - (int) y_dst); - unsigned long weight2y = 1.0 - weight1y; + uintptr_t weight1y = 1.0 - (y_dst - (int) y_dst); + uintptr_t weight2y = 1.0 - weight1y; x_dst = 0; for (x_src = 0; x_src < src_width; x_src++) { - unsigned long weight1x = 1.0 - (x_dst - (int) x_dst); - unsigned long weight2x = 1.0 - weight1x; + uintptr_t weight1x = 1.0 - (x_dst - (int) x_dst); + uintptr_t weight2x = 1.0 - weight1x; - unsigned long x = (int) x_dst; + uintptr_t x = (int) x_dst; float w; @@ -844,7 +846,7 @@ static void shrink_picture_float( y_dst += dy_dst; y_counter -= dy_dst; if (y_counter < 0) { - unsigned long x; + uintptr_t x; struct scale_outpix_float * temp; y_counter += 1.0; @@ -864,7 +866,7 @@ static void shrink_picture_float( } } if (dst - dst_begin < dst_width * dst_height * 4) { - unsigned long x; + uintptr_t x; for (x = 0; x < dst_width; x++) { float f = 1.0 / dst_line1[x].weight; *dst++ = dst_line1[x].r * f; diff --git a/source/blender/include/BIF_meshtools.h b/source/blender/include/BIF_meshtools.h index b08c66fd16e..d809d1f21f9 100644 --- a/source/blender/include/BIF_meshtools.h +++ b/source/blender/include/BIF_meshtools.h @@ -40,7 +40,7 @@ extern void objects_bake_render_menu(void); extern void objects_bake_render_ui(short event); extern void objects_bake_render(short event, char **error_msg); -extern long mesh_octree_table(struct Object *ob, float *co, char mode); +extern intptr_t mesh_octree_table(struct Object *ob, float *co, char mode); extern int mesh_get_x_mirror_vert(struct Object *ob, int index); extern struct EditVert *editmesh_get_x_mirror_vert(struct Object *ob, float *co); extern int *mesh_get_x_mirror_faces(struct Object *ob); diff --git a/source/blender/makesdna/DNA_ipo_types.h b/source/blender/makesdna/DNA_ipo_types.h index 3954a500dc7..03ffef3cd55 100644 --- a/source/blender/makesdna/DNA_ipo_types.h +++ b/source/blender/makesdna/DNA_ipo_types.h @@ -354,8 +354,8 @@ typedef short IPO_Channel; /* ******************** */ /* particle ipos */ -#define PART_TOTIPO 19 -#define PART_TOTNAM 19 +#define PART_TOTIPO 22 +#define PART_TOTNAM 22 #define PART_EMIT_FREQ 1 #define PART_EMIT_LIFE 2 @@ -381,6 +381,10 @@ typedef short IPO_Channel; #define PART_BB_TILT 19 +#define PART_PD_FSTR 20 +#define PART_PD_FFALL 21 +#define PART_PD_FMAXD 22 + /* these are IpoCurve specific */ /* **************** IPO ********************* */ diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h index dc6c2bcbcc0..5f6ae7c7f06 100644 --- a/source/blender/makesdna/DNA_object_force.h +++ b/source/blender/makesdna/DNA_object_force.h @@ -67,6 +67,9 @@ typedef struct PartDeflect { float tex_nabla; short tex_mode, kink, kink_axis, rt2; struct Tex *tex; /* Texture of the texture effector */ + struct RNG *rng; /* random noise generator for e.g. wind */ + float f_noise; /* noise of force (currently used for wind) */ + int pad; } PartDeflect; typedef struct PointCache { diff --git a/source/blender/makesdna/DNA_sensor_types.h b/source/blender/makesdna/DNA_sensor_types.h index c0306f43730..b5d8511c698 100644 --- a/source/blender/makesdna/DNA_sensor_types.h +++ b/source/blender/makesdna/DNA_sensor_types.h @@ -88,6 +88,13 @@ typedef struct bActuatorSensor { char name[32]; } bActuatorSensor; +typedef struct bDelaySensor { + short delay; + short duration; + short flag; + short pad; +} bDelaySensor; + typedef struct bCollisionSensor { char name[32]; /* property name */ char materialName[32]; /* material */ @@ -204,6 +211,7 @@ typedef struct bJoystickSensor { #define SENS_MESSAGE 10 #define SENS_JOYSTICK 11 #define SENS_ACTUATOR 12 +#define SENS_DELAY 13 /* sensor->flag */ #define SENS_SHOW 1 #define SENS_DEL 2 @@ -254,5 +262,7 @@ typedef struct bJoystickSensor { #define SENS_JOY_HAT 2 #define SENS_JOY_HAT_DIR 0 +#define SENS_DELAY_REPEAT 1 + #endif diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c index 3818d66b39c..b4deb1f2b60 100644 --- a/source/blender/makesdna/intern/makesdna.c +++ b/source/blender/makesdna/intern/makesdna.c @@ -55,6 +55,8 @@ #include "MEM_guardedalloc.h" #include "DNA_sdna_types.h" +#include "BLO_sys_types.h" // for intptr_t support + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -955,7 +957,7 @@ int make_structDNA(char *baseDirectory, FILE *file) /* calculate size of datablock with strings */ cp= names[nr_names-1]; cp+= strlen(names[nr_names-1]) + 1; /* +1: null-terminator */ - len= (long) (cp - (char*) names[0]); + len= (intptr_t) (cp - (char*) names[0]); len= (len+3) & ~3; dna_write(file, names[0], len); @@ -968,7 +970,7 @@ int make_structDNA(char *baseDirectory, FILE *file) /* calculate datablock size */ cp= types[nr_types-1]; cp+= strlen(types[nr_types-1]) + 1; /* +1: null-terminator */ - len= (long) (cp - (char*) types[0]); + len= (intptr_t) (cp - (char*) types[0]); len= (len+3) & ~3; dna_write(file, types[0], len); @@ -990,7 +992,7 @@ int make_structDNA(char *baseDirectory, FILE *file) /* calc datablock size */ sp= structs[nr_structs-1]; sp+= 2+ 2*( sp[1] ); - len= (long) ((char*) sp - (char*) structs[0]); + len= (intptr_t) ((char*) sp - (char*) structs[0]); len= (len+3) & ~3; dna_write(file, structs[0], len); diff --git a/source/blender/python/api2_2x/Draw.c b/source/blender/python/api2_2x/Draw.c index 047a035fb8b..bd19a6a6a3e 100644 --- a/source/blender/python/api2_2x/Draw.c +++ b/source/blender/python/api2_2x/Draw.c @@ -1554,6 +1554,12 @@ static PyObject *Method_Number( PyObject * self, PyObject * args ) UI_METHOD_ERRORCHECK; + if ( !PyNumber_Check(inio) || !PyNumber_Check(mino) || + !PyNumber_Check(maxo) ) { + return EXPP_ReturnPyObjError( PyExc_TypeError, + "expected ints or floats for the initial, min and max values" ); + } + but = newbutton( ); if (tip) strncpy(but->tooltip, tip, BPY_MAX_TOOLTIP); block = Get_uiBlock( ); diff --git a/source/blender/python/api2_2x/Text3d.c b/source/blender/python/api2_2x/Text3d.c index 5137e989b8d..202195cdcb4 100644 --- a/source/blender/python/api2_2x/Text3d.c +++ b/source/blender/python/api2_2x/Text3d.c @@ -132,9 +132,12 @@ static PyObject *Text3d_getAlignment( BPy_Text3d * self ); static PyObject *Text3d_setAlignment( BPy_Text3d * self, PyObject * args ); static PyObject *Text3d_getFont( BPy_Text3d * self ); static PyObject *Text3d_setFont( BPy_Text3d * self, PyObject * args ); +static PyObject *Text3d_getMaterial( BPy_Text3d * self, PyObject * value ); +static PyObject *Text3d_setMaterial( BPy_Text3d * self, PyObject * args ); static PyObject *Text3d_addFrame( BPy_Text3d * self ); static PyObject *Text3d_removeFrame( BPy_Text3d * self, PyObject * args ); + /*****************************************************************************/ /* Python BPy_Text3d methods table: */ /*****************************************************************************/ @@ -210,6 +213,10 @@ static PyMethodDef BPy_Text3d_methods[] = { METH_NOARGS, "() - Gets font list for Text3d"}, {"setFont", ( PyCFunction ) Text3d_setFont, METH_VARARGS, "() - Sets font for Text3d"}, + {"getMaterial", ( PyCFunction ) Text3d_getMaterial, + METH_O, "() - Gets font list for Text3d"}, + {"setMaterial", ( PyCFunction ) Text3d_setMaterial, + METH_VARARGS, "() - Sets font for Text3d"}, {"addFrame", ( PyCFunction ) Text3d_addFrame, METH_NOARGS, "() - adds a new text frame"}, {"removeFrame", ( PyCFunction ) Text3d_removeFrame, @@ -1132,6 +1139,45 @@ static PyObject *Text3d_setFont( BPy_Text3d * self, PyObject * args ) Py_RETURN_NONE; } +/* todo, add style access, will be almost exact copy of these 2 */ +static PyObject *Text3d_getMaterial( BPy_Text3d * self, PyObject * value ) +{ + int index = PyInt_AsLong( value ); + if (index == -1 && PyErr_Occurred()) + return EXPP_ReturnPyObjError( PyExc_TypeError, "expected a character index" ); + + if (index < 0) + index = self->curve->len + index; + + if ( index < 0 || index >= self->curve->len ) + return EXPP_ReturnPyObjError( PyExc_IndexError, "character index out of range" ); + + return PyInt_FromLong( self->curve->strinfo[index].mat_nr ); +} + +static PyObject *Text3d_setMaterial( BPy_Text3d * self, PyObject * args ) +{ + int index, mat_nr; + if( !PyArg_ParseTuple( args, "ii",&index, &mat_nr) ) + return NULL; /* Python error is ok */ + + if (index < 0) + index = self->curve->len + index; + + if ( index < 0 || index >= self->curve->len ) + return EXPP_ReturnPyObjError( PyExc_IndexError, "character index out of range" ); + + if (mat_nr < 0) + mat_nr = self->curve->totcol + mat_nr; + + if ( mat_nr < 0 || mat_nr >= self->curve->totcol ) + return EXPP_ReturnPyObjError( PyExc_IndexError, "material index out of range" ); + + self->curve->strinfo[index].mat_nr = mat_nr; + + Py_RETURN_NONE; +} + static PyObject *Text3d_addFrame( BPy_Text3d * self ) { Curve *cu = self->curve; diff --git a/source/blender/python/api2_2x/doc/Mathutils.py b/source/blender/python/api2_2x/doc/Mathutils.py index 8b0c41b9a69..524d1fb6d4c 100644 --- a/source/blender/python/api2_2x/doc/Mathutils.py +++ b/source/blender/python/api2_2x/doc/Mathutils.py @@ -521,6 +521,15 @@ class Vector: @return: Return a quaternion rotation from the vector and the track and up axis. """ + def reflect(mirror): + """ + Return the reflection vector from the mirror vector argument. + @type mirror: Vector object + @param mirror: This vector could be a normal from the reflecting surface. + @rtype: Vector object matching the size of this vector. + @return: The reflected vector. + """ + class Euler: """ The Euler object diff --git a/source/blender/python/api2_2x/doc/Text3d.py b/source/blender/python/api2_2x/doc/Text3d.py index a7d8c585078..4bd989014f4 100644 --- a/source/blender/python/api2_2x/doc/Text3d.py +++ b/source/blender/python/api2_2x/doc/Text3d.py @@ -287,6 +287,26 @@ class Text3d: @param align: The new text3d's Alignment value. """ + def getMaterial(index): + """ + get the material index of a character. + @rtype: int + @return: the material index if the character + @type index: int + @param index: the index of the character in a string + """ + + def setMaterial(index, material_index): + """ + Set a characters material. + @note: after changing this youll need to update the object with object.makeDisplayList() to see the changes. + @rtype: None + @type index: int + @param index: the index of the character in a string + @type material_index: int + @param material_index: the material index set set the character. + """ + def addFrame(): """ Adds a text frame. maximum number of frames is 255. diff --git a/source/blender/python/api2_2x/vector.c b/source/blender/python/api2_2x/vector.c index 33ca993fb49..fe28f0fac42 100644 --- a/source/blender/python/api2_2x/vector.c +++ b/source/blender/python/api2_2x/vector.c @@ -42,6 +42,7 @@ char Vector_Resize3D_doc[] = "() - resize a vector to [x,y,z]"; char Vector_Resize4D_doc[] = "() - resize a vector to [x,y,z,w]"; char Vector_toPoint_doc[] = "() - create a new Point Object from this vector"; char Vector_ToTrackQuat_doc[] = "(track, up) - extract a quaternion from the vector and the track and up axis"; +char Vector_reflect_doc[] = "(mirror) - return a vector reflected on the mirror normal"; char Vector_copy_doc[] = "() - return a copy of the vector"; /*-----------------------METHOD DEFINITIONS ----------------------*/ struct PyMethodDef Vector_methods[] = { @@ -53,6 +54,7 @@ struct PyMethodDef Vector_methods[] = { {"resize4D", (PyCFunction) Vector_Resize4D, METH_NOARGS, Vector_Resize2D_doc}, {"toPoint", (PyCFunction) Vector_toPoint, METH_NOARGS, Vector_toPoint_doc}, {"toTrackQuat", ( PyCFunction ) Vector_ToTrackQuat, METH_VARARGS, Vector_ToTrackQuat_doc}, + {"reflect", ( PyCFunction ) Vector_reflect, METH_O, Vector_reflect_doc}, {"copy", (PyCFunction) Vector_copy, METH_NOARGS, Vector_copy_doc}, {"__copy__", (PyCFunction) Vector_copy, METH_NOARGS, Vector_copy_doc}, {NULL, NULL, 0, NULL} @@ -273,7 +275,55 @@ PyObject *Vector_ToTrackQuat( VectorObject * self, PyObject * args ) return newQuaternionObject(quat, Py_NEW); } - +/*----------------------------Vector.reflect(mirror) ---------------------- + return a reflected vector on the mirror normal + ((2 * DotVecs(vec, mirror)) * mirror) - vec + using arithb.c would be nice here */ +PyObject *Vector_reflect( VectorObject * self, PyObject * value ) +{ + VectorObject *mirrvec; + float mirror[3]; + float vec[3]; + float reflect[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + float dot2; + + /* for normalizing */ + int i; + float norm = 0.0f; + + if (!VectorObject_Check(value)) + return EXPP_ReturnPyObjError( PyExc_TypeError, "expected a vector argument" ); + + mirrvec = (VectorObject *)value; + + mirror[0] = mirrvec->vec[0]; + mirror[1] = mirrvec->vec[1]; + if (mirrvec->size > 2) mirror[2] = mirrvec->vec[2]; + else mirror[2] = 0.0; + + /* normalize, whos idea was it not to use arithb.c? :-/ */ + for(i = 0; i < 3; i++) { + norm += mirror[i] * mirror[i]; + } + norm = (float) sqrt(norm); + for(i = 0; i < 3; i++) { + mirror[i] /= norm; + } + /* done */ + + vec[0] = self->vec[0]; + vec[1] = self->vec[1]; + if (self->size > 2) vec[2] = self->vec[2]; + else vec[2] = 0.0; + + dot2 = 2 * vec[0]*mirror[0]+vec[1]*mirror[1]+vec[2]*mirror[2]; + + reflect[0] = (dot2 * mirror[0]) - vec[0]; + reflect[1] = (dot2 * mirror[1]) - vec[1]; + reflect[2] = (dot2 * mirror[2]) - vec[2]; + + return newVectorObject(reflect, self->size, Py_NEW); +} /*----------------------------Vector.copy() -------------------------------------- return a copy of the vector */ diff --git a/source/blender/python/api2_2x/vector.h b/source/blender/python/api2_2x/vector.h index a86f2ddfe42..61b50d5f458 100644 --- a/source/blender/python/api2_2x/vector.h +++ b/source/blender/python/api2_2x/vector.h @@ -52,6 +52,7 @@ PyObject *Vector_Resize3D( VectorObject * self ); PyObject *Vector_Resize4D( VectorObject * self ); PyObject *Vector_toPoint( VectorObject * self ); PyObject *Vector_ToTrackQuat( VectorObject * self, PyObject * args ); +PyObject *Vector_reflect( VectorObject * self, PyObject * value ); PyObject *Vector_copy( VectorObject * self ); PyObject *newVectorObject(float *vec, int size, int type); diff --git a/source/blender/radiosity/CMakeLists.txt b/source/blender/radiosity/CMakeLists.txt index 36e9ad19770..941da41a5b2 100644 --- a/source/blender/radiosity/CMakeLists.txt +++ b/source/blender/radiosity/CMakeLists.txt @@ -29,7 +29,7 @@ FILE(GLOB SRC intern/source/*.c) SET(INC extern/include ../blenlib ../blenkernel ../makesdna ../include ../../../intern/guardedalloc ../render/extern/include - ../render/intern/include + ../render/intern/include ../blenloader ) BLENDERLIB_NOLIST(blender_radiosity "${SRC}" "${INC}") diff --git a/source/blender/radiosity/SConscript b/source/blender/radiosity/SConscript index 102f79683f9..a86b76bb4b1 100644 --- a/source/blender/radiosity/SConscript +++ b/source/blender/radiosity/SConscript @@ -5,7 +5,7 @@ sources = env.Glob('intern/source/*.c') incs = 'extern/include ../blenlib ../blenkernel ../makesdna ../include' incs += ' #/intern/guardedalloc ../render/extern/include' -incs += ' ../render/intern/include' +incs += ' ../render/intern/include ../blenloader' incs += ' ' + env['BF_OPENGL_INC'] diff --git a/source/blender/radiosity/intern/source/Makefile b/source/blender/radiosity/intern/source/Makefile index 19768c959c7..e5ff8c40d08 100644 --- a/source/blender/radiosity/intern/source/Makefile +++ b/source/blender/radiosity/intern/source/Makefile @@ -44,6 +44,7 @@ CPPFLAGS += -I../../../blenlib CPPFLAGS += -I../../../makesdna CPPFLAGS += -I../../../imbuf CPPFLAGS += -I../../../ +CPPFLAGS += -I../../../blenloader CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include # first /include is my own includes, second are the external includes diff --git a/source/blender/radiosity/intern/source/radnode.c b/source/blender/radiosity/intern/source/radnode.c index 5517a22eb93..042fe6840fc 100644 --- a/source/blender/radiosity/intern/source/radnode.c +++ b/source/blender/radiosity/intern/source/radnode.c @@ -50,6 +50,8 @@ #include "radio.h" +#include "BLO_sys_types.h" // for intptr_t support + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -167,14 +169,14 @@ void *calloc_fast(int size) void free_fast(void *poin, int size) { MallocGroup *mg; - long val; + intptr_t val; mg= MallocBase.last; while(mg) { if(mg->size==size) { - if( ((long)poin) >= ((long)mg->data) ) { - if( ((long)poin) < ((long)(mg->data+MAL_GROUPSIZE*size)) ) { - val= ((long)poin) - ((long)mg->data); + if( ((intptr_t)poin) >= ((intptr_t)mg->data) ) { + if( ((intptr_t)poin) < ((intptr_t)(mg->data+MAL_GROUPSIZE*size)) ) { + val= ((intptr_t)poin) - ((intptr_t)mg->data); val/= size; mg->curfree= val; mg->flags[val]= 0; diff --git a/source/blender/radiosity/intern/source/radpreprocess.c b/source/blender/radiosity/intern/source/radpreprocess.c index 5f8a39786c1..07b933b6db9 100644 --- a/source/blender/radiosity/intern/source/radpreprocess.c +++ b/source/blender/radiosity/intern/source/radpreprocess.c @@ -68,6 +68,8 @@ #include "radio.h" +#include "BLO_sys_types.h" // for intptr_t support + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -179,7 +181,7 @@ int vergedge(const void *v1,const void *v2) void addedge(float *v1, float *v2, EdSort *es) { - if( ((long)v1)<((long)v2) ) { + if( ((intptr_t)v1)<((intptr_t)v2) ) { es->v1= v1; es->v2= v2; } diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index b543dff49ff..0b659554d1a 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -29,7 +29,7 @@ FILE(GLOB SRC intern/source/*.c) SET(INC intern/include ../../../intern/guardedalloc ../blenlib ../makesdna extern/include ../blenkernel ../radiosity/extern/include ../imbuf - ../quicktime ../include ../../kernel/gen_messaging ../yafray + ../quicktime ../include ../../kernel/gen_messaging ../yafray ../blenloader ) IF(WITH_OPENEXR) diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index b1bc9673f23..f0d1353b0d3 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -6,7 +6,7 @@ sources = env.Glob('intern/source/*.c') incs = 'intern/include #/intern/guardedalloc ../blenlib ../makesdna' incs += ' extern/include ../blenkernel ../radiosity/extern/include ../imbuf' -incs += ' ../quicktime ../include ../../kernel/gen_messaging' +incs += ' ../quicktime ../include ../../kernel/gen_messaging ../blenloader' defs = [] diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index 2f97b19f75c..f83bbd7e8b2 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -44,6 +44,8 @@ #include "RE_shader_ext.h" /* TexResult, ShadeResult, ShadeInput */ #include "sunsky.h" +#include "BLO_sys_types.h" // for intptr_t support + struct Object; struct MemArena; struct VertTableNode; @@ -89,11 +91,11 @@ typedef struct RenderPart int *rectp; /* polygon index table */ int *rectz; /* zbuffer */ int *rectmask; /* negative zmask */ - long *rectdaps; /* delta acum buffer for pixel structs */ + intptr_t *rectdaps; /* delta acum buffer for pixel structs */ int *rectbacko; /* object table for backside sss */ int *rectbackp; /* polygon index table for backside sss */ int *rectbackz; /* zbuffer for backside sss */ - long *rectall; /* buffer for all faces for sss */ + intptr_t *rectall; /* buffer for all faces for sss */ rcti disprect; /* part coordinates within total picture */ int rectx, recty; /* the size */ @@ -226,7 +228,7 @@ struct ISBData; typedef struct ShadSampleBuf { struct ShadSampleBuf *next, *prev; - long *zbuf; + intptr_t *zbuf; char *cbuf; } ShadSampleBuf; diff --git a/source/blender/render/intern/source/occlusion.c b/source/blender/render/intern/source/occlusion.c index d70c51b83bc..15c57eb9362 100644 --- a/source/blender/render/intern/source/occlusion.c +++ b/source/blender/render/intern/source/occlusion.c @@ -1670,7 +1670,7 @@ void cache_occ_samples(Render *re, RenderPart *pa, ShadeSample *ssamp) OcclusionCacheSample *sample; OccFace exclude; ShadeInput *shi; - long *rd=NULL; + intptr_t *rd=NULL; int *ro=NULL, *rp=NULL, *rz=NULL, onlyshadow; int x, y, step = CACHE_STEP; diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 6a0af82b4d7..3cd7bdc6772 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -138,7 +138,7 @@ static void print_error(char *str) {printf("ERROR: %s\n", str);} static void stats_background(RenderStats *rs) { - extern unsigned long mem_in_use; + extern uintptr_t mem_in_use; float megs_used_memory= mem_in_use/(1024.0*1024.0); char str[400], *spos= str; diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 4520e4c10bb..4a2ad995b39 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -243,7 +243,7 @@ static void halo_tile(RenderPart *pa, RenderLayer *rl) rcti disprect= pa->disprect, testrect= pa->disprect; float dist, xsq, ysq, xn, yn; float col[4]; - long *rd= NULL; + intptr_t *rd= NULL; int a, *rz, zz, y, sample, totsample, od; short minx, maxx, miny, maxy, x; unsigned int lay= rl->lay; @@ -324,7 +324,7 @@ static void lamphalo_tile(RenderPart *pa, RenderLayer *rl) ShadeInput shi; float *pass; float fac, col[4]; - long *rd= pa->rectdaps; + intptr_t *rd= pa->rectdaps; int *rz= pa->rectz; int x, y, sample, totsample, fullsample, od; @@ -767,7 +767,7 @@ static void shadeDA_tile(RenderPart *pa, RenderLayer *rl) { RenderResult *rr= pa->result; ShadeSample ssamp; - long *rd, *rectdaps= pa->rectdaps; + intptr_t *rd, *rectdaps= pa->rectdaps; int samp; int x, y, seed, crop=0, offs=0, od; @@ -874,7 +874,7 @@ static void freeps(ListBase *lb) lb->first= lb->last= NULL; } -static void addps(ListBase *lb, long *rd, int obi, int facenr, int z, int maskz, unsigned short mask) +static void addps(ListBase *lb, intptr_t *rd, int obi, int facenr, int z, int maskz, unsigned short mask) { PixStrMain *psm; PixStr *ps, *last= NULL; @@ -901,7 +901,7 @@ static void addps(ListBase *lb, long *rd, int obi, int facenr, int z, int maskz, ps= psm->ps + psm->counter++; if(last) last->next= ps; - else *rd= (long)ps; + else *rd= (intptr_t)ps; ps->next= NULL; ps->obi= obi; @@ -1027,7 +1027,7 @@ static void reset_sky_speed(RenderPart *pa, RenderLayer *rl) static unsigned short *make_solid_mask(RenderPart *pa) { - long *rd= pa->rectdaps; + intptr_t *rd= pa->rectdaps; unsigned short *solidmask, *sp; int x; @@ -1092,7 +1092,7 @@ void make_pixelstructs(RenderPart *pa, ZSpan *zspan, int sample, void *data) { ZbufSolidData *sdata= (ZbufSolidData*)data; ListBase *lb= sdata->psmlist; - long *rd= pa->rectdaps; + intptr_t *rd= pa->rectdaps; int *ro= zspan->recto; int *rp= zspan->rectp; int *rz= zspan->rectz; @@ -1133,7 +1133,7 @@ void zbufshadeDA_tile(RenderPart *pa) /* initialize pixelstructs and edge buffer */ addpsmain(&psmlist); - pa->rectdaps= MEM_callocN(sizeof(long)*pa->rectx*pa->recty+4, "zbufDArectd"); + pa->rectdaps= MEM_callocN(sizeof(intptr_t)*pa->rectx*pa->recty+4, "zbufDArectd"); if(rl->layflag & SCE_LAY_EDGE) if(R.r.mode & R_EDGE) @@ -1433,7 +1433,7 @@ static void addps_sss(void *cb_handle, int obi, int facenr, int x, int y, int z) return; if(pa->rectall) { - long *rs= pa->rectall + pa->rectx*y + x; + intptr_t *rs= pa->rectall + pa->rectx*y + x; addps(&handle->psmlist, rs, obi, facenr, z, 0, 0); handle->totps++; @@ -1569,7 +1569,7 @@ void zbufshade_sss_tile(RenderPart *pa) int *ro, *rz, *rp, *rbo, *rbz, *rbp, lay; #if 0 PixStr *ps; - long *rs; + intptr_t *rs; int z; #endif @@ -1581,7 +1581,7 @@ void zbufshade_sss_tile(RenderPart *pa) handle.psmlist.first= handle.psmlist.last= NULL; addpsmain(&handle.psmlist); - pa->rectall= MEM_callocN(sizeof(long)*pa->rectx*pa->recty+4, "rectall"); + pa->rectall= MEM_callocN(sizeof(intptr_t)*pa->rectx*pa->recty+4, "rectall"); #else pa->recto= MEM_mallocN(sizeof(int)*pa->rectx*pa->recty, "recto"); pa->rectp= MEM_mallocN(sizeof(int)*pa->rectx*pa->recty, "rectp"); diff --git a/source/blender/render/intern/source/shadbuf.c b/source/blender/render/intern/source/shadbuf.c index f3258b601de..f477df3ed8c 100644 --- a/source/blender/render/intern/source/shadbuf.c +++ b/source/blender/render/intern/source/shadbuf.c @@ -171,7 +171,7 @@ static void compress_shadowbuf(ShadBuf *shb, int *rectz, int square) { ShadSampleBuf *shsample; float dist; - unsigned long *ztile; + uintptr_t *ztile; int *rz, *rz1, verg, verg1, size= shb->size; int a, x, y, minx, miny, byt1, byt2; char *rc, *rcline, *ctile, *zt; @@ -179,10 +179,10 @@ static void compress_shadowbuf(ShadBuf *shb, int *rectz, int square) shsample= MEM_mallocN( sizeof(ShadSampleBuf), "shad sample buf"); BLI_addtail(&shb->buffers, shsample); - shsample->zbuf= MEM_mallocN( sizeof(unsigned long)*(size*size)/256, "initshadbuf2"); + shsample->zbuf= MEM_mallocN( sizeof(uintptr_t)*(size*size)/256, "initshadbuf2"); shsample->cbuf= MEM_callocN( (size*size)/256, "initshadbuf3"); - ztile= (unsigned long *)shsample->zbuf; + ztile= (uintptr_t *)shsample->zbuf; ctile= shsample->cbuf; /* help buffer */ @@ -237,7 +237,7 @@ static void compress_shadowbuf(ShadBuf *shb, int *rectz, int square) } if(byt1 && byt2) { /* only store byte */ *ctile= 1; - *ztile= (unsigned long)MEM_mallocN(256+4, "tile1"); + *ztile= (uintptr_t)MEM_mallocN(256+4, "tile1"); rz= (int *)*ztile; *rz= *rz1; @@ -247,7 +247,7 @@ static void compress_shadowbuf(ShadBuf *shb, int *rectz, int square) } else if(byt1) { /* only store short */ *ctile= 2; - *ztile= (unsigned long)MEM_mallocN(2*256+4,"Tile2"); + *ztile= (uintptr_t)MEM_mallocN(2*256+4,"Tile2"); rz= (int *)*ztile; *rz= *rz1; @@ -260,7 +260,7 @@ static void compress_shadowbuf(ShadBuf *shb, int *rectz, int square) } else { /* store triple */ *ctile= 3; - *ztile= (unsigned long)MEM_mallocN(3*256,"Tile3"); + *ztile= (uintptr_t)MEM_mallocN(3*256,"Tile3"); zt= (char *)*ztile; rc= rcline; @@ -542,7 +542,7 @@ void freeshadowbuf(LampRen *lar) v= (shb->size*shb->size)/256; for(shsample= shb->buffers.first; shsample; shsample= shsample->next) { - long *ztile= shsample->zbuf; + intptr_t *ztile= shsample->zbuf; char *ctile= shsample->cbuf; for(b=0; b<v; b++, ztile++, ctile++) @@ -1752,7 +1752,7 @@ static void isb_make_buffer(RenderPart *pa, LampRen *lar) ISBSample *samp, *samplebuf[16]; /* should be RE_MAX_OSA */ ISBBranch root; MemArena *memarena; - long *rd; + intptr_t *rd; int *recto, *rectp, x, y, sindex, sample, bsp_err=0; /* storage for shadow, per thread */ diff --git a/source/blender/render/intern/source/strand.c b/source/blender/render/intern/source/strand.c index 591d51a969d..05e36160f0e 100644 --- a/source/blender/render/intern/source/strand.c +++ b/source/blender/render/intern/source/strand.c @@ -416,7 +416,7 @@ typedef struct StrandPart { int *totapixbuf; int *rectz; int *rectmask; - long *rectdaps; + intptr_t *rectdaps; int rectx, recty; int sample; @@ -510,7 +510,7 @@ static void do_strand_fillac(void *handle, int x, int y, float u, float v, float if(spart->rectdaps) { /* find the z of the sample */ PixStr *ps; - long *rd= spart->rectdaps + offset; + intptr_t *rd= spart->rectdaps + offset; bufferz= 0x7FFFFFFF; if(spart->rectmask) maskz= 0x7FFFFFFF; diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index c91c9e2f799..29aa6e3be29 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -2278,7 +2278,7 @@ static int hashlist_projectvert(float *v1, float winmat[][4], float *hoco) return 0; } - buck= &bucket[ (((long)v1)/16) & 255 ]; + buck= &bucket[ (((intptr_t)v1)/16) & 255 ]; if(buck->vert==v1) { QUATCOPY(hoco, buck->hoco); return buck->clip; @@ -3263,7 +3263,7 @@ static void copyto_abufz(RenderPart *pa, int *arectz, int *rectmask, int sample) { PixStr *ps; int x, y, *rza, *rma; - long *rd; + intptr_t *rd; if(R.osa==0) { memcpy(arectz, pa->rectz, sizeof(int)*pa->rectx*pa->recty); @@ -3484,7 +3484,7 @@ static int zbuffer_abuf(RenderPart *pa, APixstr *APixbuf, ListBase *apsmbase, Re /* speed pointer NULL = sky, we clear */ /* else if either alpha is full or no solid was filled in: copy speed */ /* else fill in minimum speed */ -void add_transp_speed(RenderLayer *rl, int offset, float *speed, float alpha, long *rdrect) +void add_transp_speed(RenderLayer *rl, int offset, float *speed, float alpha, intptr_t *rdrect) { RenderPass *rpass; @@ -3958,7 +3958,7 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas ZTranspRow zrow[MAX_ZROW]; StrandShadeCache *sscache= NULL; float sampalpha, alpha, *passrect= pass; - long *rdrect; + intptr_t *rdrect; int x, y, crop=0, a, b, totface, totsample, doztra; int addpassflag, offs= 0, od, addzbuf, osa = (R.osa? R.osa: 1); unsigned short *ztramask= NULL, filled; diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 63303467856..4682549297a 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -4277,7 +4277,7 @@ static void validate_posebonebutton_cb(void *bonev, void *namev) static void armature_layer_cb(void *lay_v, void *value_v) { short *layer= lay_v; - int value= (long)value_v; + int value= (intptr_t)value_v; if(*layer==0 || G.qual==0) *layer= value; allqueue(REDRAWBUTSEDIT, 0); diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index 5cf1958678e..2dd6d705a9e 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -683,6 +683,8 @@ static char *sensor_name(int type) return "Property"; case SENS_ACTUATOR: return "Actuator"; + case SENS_DELAY: + return "Delay"; case SENS_MOUSE: return "Mouse"; case SENS_COLLISION: @@ -704,7 +706,7 @@ static char *sensor_name(int type) static char *sensor_pup(void) { /* the number needs to match defines in game.h */ - return "Sensors %t|Always %x0|Keyboard %x3|Mouse %x5|" + return "Sensors %t|Always %x0|Delay %x13|Keyboard %x3|Mouse %x5|" "Touch %x1|Collision %x6|Near %x2|Radar %x7|" "Property %x4|Random %x8|Ray %x9|Message %x10|Joystick %x11|Actuator %x12"; } @@ -1000,6 +1002,7 @@ static int get_col_sensor(int type) { switch(type) { case SENS_ALWAYS: return TH_BUT_ACTION; + case SENS_DELAY: return TH_BUT_ACTION; case SENS_TOUCH: return TH_BUT_NEUTRAL; case SENS_COLLISION: return TH_BUT_SETTING; case SENS_NEAR: return TH_BUT_SETTING1; @@ -1070,8 +1073,8 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short bRaySensor *raySens = NULL; bMessageSensor *mes = NULL; bJoystickSensor *joy = NULL; - bActuatorSensor *as = NULL; - + bActuatorSensor *as = NULL; + bDelaySensor *ds = NULL; short ysize; char *str; @@ -1297,6 +1300,27 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short yco-= ysize; break; } + case SENS_DELAY: + { + ysize= 48; + + glRects(xco, yco-ysize, xco+width, yco); + uiEmboss((float)xco, (float)yco-ysize, + (float)xco+width, (float)yco, 1); + + draw_default_sensor_header(sens, block, xco, yco, width); + ds = sens->data; + + uiDefButS(block, NUM, 0, "Delay",(short)(10+xco),(short)(yco-44),(short)((width-22)*0.4+10), 19, + &ds->delay, 0.0, 5000.0, 0, 0, "Delay in number of frames before the positive trigger"); + uiDefButS(block, NUM, 0, "Dur",(short)(10+xco+(width-22)*0.4+10),(short)(yco-44),(short)((width-22)*0.4-10), 19, + &ds->duration, 0.0, 5000.0, 0, 0, "If >0, delay in number of frames before the negative trigger following the positive trigger"); + uiDefButBitS(block, TOG, SENS_DELAY_REPEAT, 0, "REP",(short)(xco + 10 + (width-22)*0.8),(short)(yco - 44), + (short)(0.20 * (width-22)), 19, &ds->flag, 0.0, 0.0, 0, 0, + "Toggle repeat option. If selected, the sensor restarts after Delay+Dur frames"); + yco-= ysize; + break; + } case SENS_MOUSE: { ms= sens->data; @@ -1689,7 +1713,7 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh uiDefBut(block, LABEL, 0, "Torque", xco, yco-106, 55, 19, NULL, 0, 0, 0, 0, "Sets the torque"); uiDefButF(block, NUM, 0, "", xco+45, yco-106, wval, 19, oa->forcerot, -10000.0, 10000.0, 10, 0, ""); uiDefButF(block, NUM, 0, "", xco+45+wval, yco-106, wval, 19, oa->forcerot+1, -10000.0, 10000.0, 10, 0, ""); - uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-6106, wval, 19, oa->forcerot+2, -10000.0, 10000.0, 10, 0, ""); + uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-106, wval, 19, oa->forcerot+2, -10000.0, 10000.0, 10, 0, ""); } if ( ob->gameflag & OB_DYNAMIC ) @@ -3183,7 +3207,8 @@ void logic_buts(void) while(cont) { for (iact=0; iact<cont->totlinks; iact++) { act = cont->links[iact]; - act->flag |= ACT_LINKED; + if (act) + act->flag |= ACT_LINKED; } controller_state_mask |= cont->state_mask; cont = cont->next; @@ -3231,7 +3256,8 @@ void logic_buts(void) /* this controller is visible, mark all its actuator */ for (iact=0; iact<cont->totlinks; iact++) { act = cont->links[iact]; - act->flag |= ACT_VISIBLE; + if (act) + act->flag |= ACT_VISIBLE; } uiBlockSetEmboss(block, UI_EMBOSSM); uiDefIconButBitS(block, TOG, CONT_DEL, B_DEL_CONT, ICON_X, xco, yco, 22, 19, &cont->flag, 0, 0, 0, 0, "Delete Controller"); @@ -3323,8 +3349,8 @@ void logic_buts(void) ycoo= yco; if(sens->flag & SENS_SHOW) { - uiDefButS(block, MENU, B_CHANGE_SENS, sensor_pup(), (short)(xco+22), yco, 100, 19, &sens->type, 0, 0, 0, 0, "Sensor type"); - but= uiDefBut(block, TEX, 1, "", (short)(xco+122), yco, (short)(width-144), 19, sens->name, 0, 31, 0, 0, "Sensor name"); + uiDefButS(block, MENU, B_CHANGE_SENS, sensor_pup(), (short)(xco+22), yco, 80, 19, &sens->type, 0, 0, 0, 0, "Sensor type"); + but= uiDefBut(block, TEX, 1, "", (short)(xco+102), yco, (short)(width-124), 19, sens->name, 0, 31, 0, 0, "Sensor name"); uiButSetFunc(but, make_unique_prop_names_cb, sens->name, (void*) 0); sens->otype= sens->type; @@ -3334,9 +3360,9 @@ void logic_buts(void) else { set_col_sensor(sens->type, 1); glRecti(xco+22, yco, xco+width-22,yco+19); - but= uiDefBut(block, LABEL, 0, sensor_name(sens->type), (short)(xco+22), yco, 100, 19, sens, 0, 0, 0, 0, ""); + but= uiDefBut(block, LABEL, 0, sensor_name(sens->type), (short)(xco+22), yco, 80, 19, sens, 0, 0, 0, 0, ""); uiButSetFunc(but, sca_move_sensor, sens, NULL); - but= uiDefBut(block, LABEL, 0, sens->name, (short)(xco+122), yco, (short)(width-144), 19, sens, 0, 31, 0, 0, ""); + but= uiDefBut(block, LABEL, 0, sens->name, (short)(xco+102), yco, (short)(width-124), 19, sens, 0, 31, 0, 0, ""); uiButSetFunc(but, sca_move_sensor, sens, NULL); } @@ -3393,8 +3419,8 @@ void logic_buts(void) if(act->flag & ACT_SHOW) { act->otype= act->type; - uiDefButS(block, MENU, B_CHANGE_ACT, actuator_pup(ob), (short)(xco+22), yco, 100, 19, &act->type, 0, 0, 0, 0, "Actuator type"); - but= uiDefBut(block, TEX, 1, "", (short)(xco+122), yco, (short)(width-144), 19, act->name, 0, 31, 0, 0, "Actuator name"); + uiDefButS(block, MENU, B_CHANGE_ACT, actuator_pup(ob), (short)(xco+22), yco, 90, 19, &act->type, 0, 0, 0, 0, "Actuator type"); + but= uiDefBut(block, TEX, 1, "", (short)(xco+112), yco, (short)(width-134), 19, act->name, 0, 31, 0, 0, "Actuator name"); uiButSetFunc(but, make_unique_prop_names_cb, act->name, (void*) 0); ycoo= yco; @@ -3404,9 +3430,9 @@ void logic_buts(void) else { set_col_actuator(act->type, 1); glRecti((short)(xco+22), yco, (short)(xco+width-22),(short)(yco+19)); - but= uiDefBut(block, LABEL, 0, actuator_name(act->type), (short)(xco+22), yco, 100, 19, act, 0, 0, 0, 0, "Actuator type"); + but= uiDefBut(block, LABEL, 0, actuator_name(act->type), (short)(xco+22), yco, 90, 19, act, 0, 0, 0, 0, "Actuator type"); uiButSetFunc(but, sca_move_actuator, act, NULL); - but= uiDefBut(block, LABEL, 0, act->name, (short)(xco+122), yco, (short)(width-144), 19, act, 0, 0, 0, 0, "Actuator name"); + but= uiDefBut(block, LABEL, 0, act->name, (short)(xco+112), yco, (short)(width-134), 19, act, 0, 0, 0, 0, "Actuator name"); uiButSetFunc(but, sca_move_actuator, act, NULL); ycoo= yco; } diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index 370f6999dfc..132bae8b7b8 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -3452,6 +3452,8 @@ static void object_panel_fields(Object *ob) } else if(pd->forcefield == PFIELD_HARMONIC) uiDefButF(block, NUM, B_FIELD_CHANGE, "Damp: ", 10,120,140,20, &pd->f_damp, 0, 10, 10, 0, "Damping of the harmonic force"); + else if(pd->forcefield == PFIELD_WIND) + uiDefButF(block, NUM, B_FIELD_CHANGE, "Noise: ",10,120,140,20, &pd->f_noise, 0, 10, 100, 0, "Noise of the wind force"); } uiBlockEndAlign(block); diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c index fb6a7636e16..5205be3e1b0 100644 --- a/source/blender/src/buttons_scene.c +++ b/source/blender/src/buttons_scene.c @@ -33,6 +33,7 @@ #include <string.h> #include "MEM_guardedalloc.h" +#include "BLO_sys_types.h" // for intptr_t support #include "DNA_node_types.h" #include "DNA_screen_types.h" #include "DNA_space_types.h" @@ -3261,7 +3262,7 @@ static void layer_copy_func(void *lay_v, void *lay_p) static void delete_scene_layer_func(void *srl_v, void *act_i) { if(BLI_countlist(&G.scene->r.layers)>1) { - long act= (long)act_i; + intptr_t act= (intptr_t)act_i; BLI_remlink(&G.scene->r.layers, srl_v); MEM_freeN(srl_v); @@ -3322,7 +3323,7 @@ static char *scene_layer_menu(void) static void draw_3d_layer_buttons(uiBlock *block, int type, unsigned int *poin, short xco, short yco, short dx, short dy, char *tip) { uiBut *bt; - long a; + intptr_t a; uiBlockBeginAlign(block); for(a=0; a<5; a++) { @@ -3381,7 +3382,7 @@ static void render_panel_layers(void) uiDefButBitI(block, TOG, R_SINGLE_LAYER, B_NOP, "Single", 230,145,60,20, &G.scene->r.scemode, 0, 0, 0, 0, "Only render this layer"); bt=uiDefIconBut(block, BUT, B_NOP, ICON_X, 285, 145, 25, 20, 0, 0, 0, 0, 0, "Deletes current Render Layer"); - uiButSetFunc(bt, delete_scene_layer_func, srl, (void *)(long)G.scene->r.actlay); + uiButSetFunc(bt, delete_scene_layer_func, srl, (void *)(intptr_t)G.scene->r.actlay); uiBlockEndAlign(block); /* RenderLayer visible-layers */ diff --git a/source/blender/src/drawmesh.c b/source/blender/src/drawmesh.c index dd512595ebc..09f74c01c71 100644 --- a/source/blender/src/drawmesh.c +++ b/source/blender/src/drawmesh.c @@ -664,7 +664,7 @@ static int draw_tfaces3D__setHiddenOpts(void *userData, int index) { struct { Mesh *me; EdgeHash *eh; } *data = userData; MEdge *med = &data->me->medge[index]; - unsigned long flags = (long) BLI_edgehash_lookup(data->eh, med->v1, med->v2); + uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); if((G.f & G_DRAWSEAMS) && (med->flag&ME_SEAM)) { return 0; @@ -682,7 +682,7 @@ static int draw_tfaces3D__setSeamOpts(void *userData, int index) { struct { Mesh *me; EdgeHash *eh; } *data = userData; MEdge *med = &data->me->medge[index]; - unsigned long flags = (long) BLI_edgehash_lookup(data->eh, med->v1, med->v2); + uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); if (med->flag&ME_SEAM) { if (G.f&G_HIDDENEDGES) { @@ -698,7 +698,7 @@ static int draw_tfaces3D__setSelectOpts(void *userData, int index) { struct { Mesh *me; EdgeHash *eh; } *data = userData; MEdge *med = &data->me->medge[index]; - unsigned long flags = (long) BLI_edgehash_lookup(data->eh, med->v1, med->v2); + uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); return flags & eEdge_Select; } @@ -706,7 +706,7 @@ static int draw_tfaces3D__setActiveOpts(void *userData, int index) { struct { Mesh *me; EdgeHash *eh; } *data = userData; MEdge *med = &data->me->medge[index]; - unsigned long flags = (long) BLI_edgehash_lookup(data->eh, med->v1, med->v2); + uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); if (flags & eEdge_Select) { return 1; diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c index 1a469e8b366..213f49528f0 100644 --- a/source/blender/src/drawobject.c +++ b/source/blender/src/drawobject.c @@ -5315,7 +5315,7 @@ void draw_object_ext(Base *base) static void bbs_mesh_verts__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s) { - int offset = (long) userData; + int offset = (intptr_t) userData; EditVert *eve = EM_get_vert_for_index(index); if (eve->h==0) { @@ -5327,7 +5327,7 @@ static int bbs_mesh_verts(DerivedMesh *dm, int offset) { glPointSize( BIF_GetThemeValuef(TH_VERTEX_SIZE) ); bglBegin(GL_POINTS); - dm->foreachMappedVert(dm, bbs_mesh_verts__mapFunc, (void*)(long) offset); + dm->foreachMappedVert(dm, bbs_mesh_verts__mapFunc, (void*)(intptr_t) offset); bglEnd(); glPointSize(1.0); @@ -5336,7 +5336,7 @@ static int bbs_mesh_verts(DerivedMesh *dm, int offset) static int bbs_mesh_wire__setDrawOptions(void *userData, int index) { - int offset = (long) userData; + int offset = (intptr_t) userData; EditEdge *eed = EM_get_edge_for_index(index); if (eed->h==0) { @@ -5348,7 +5348,7 @@ static int bbs_mesh_wire__setDrawOptions(void *userData, int index) } static int bbs_mesh_wire(DerivedMesh *dm, int offset) { - dm->drawMappedEdges(dm, bbs_mesh_wire__setDrawOptions, (void*)(long) offset); + dm->drawMappedEdges(dm, bbs_mesh_wire__setDrawOptions, (void*)(intptr_t) offset); return offset + G.totedge; } @@ -5382,7 +5382,7 @@ static int bbs_mesh_solid_EM(DerivedMesh *dm, int facecol) cpack(0); if (facecol) { - dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(long) 1, 0); + dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(intptr_t) 1, 0); if( CHECK_OB_DRAWFACEDOT(G.scene, G.vd, G.obedit->dt) ) { glPointSize(BIF_GetThemeValuef(TH_FACEDOT_SIZE)); @@ -5415,7 +5415,7 @@ static int bbs_mesh_wire__setDrawOpts(void *userData, int index) { struct { Mesh *me; EdgeHash *eh; int offset; } *data = userData; MEdge *med = data->me->medge + index; - unsigned long flags = (long)BLI_edgehash_lookup(data->eh, med->v1, med->v2); + uintptr_t flags = (intptr_t)BLI_edgehash_lookup(data->eh, med->v1, med->v2); if (flags & 1) { set_framebuffer_index_color(data->offset+index); diff --git a/source/blender/src/editipo_lib.c b/source/blender/src/editipo_lib.c index 41044ad13d7..7b3d439833e 100644 --- a/source/blender/src/editipo_lib.c +++ b/source/blender/src/editipo_lib.c @@ -103,7 +103,7 @@ char *ic_name_empty[1] ={ "" }; char *fluidsim_ic_names[FLUIDSIM_TOTNAM] = { "Fac-Visc", "Fac-Time", "GravX","GravY","GravZ", "VelX","VelY","VelZ", "Active" }; char *part_ic_names[PART_TOTNAM] = { "E_Freq", "E_Life", "E_Speed", "E_Angular", "E_Size", "Angular", "Size", "Drag", "Brown", "Damp", "Length", "Clump", -"GravX", "GravY", "GravZ", "KinkAmp", "KinkFreq", "KinkShape", "BBTilt"}; +"GravX", "GravY", "GravZ", "KinkAmp", "KinkFreq", "KinkShape", "BBTilt", "FStreng", "FFall", "FMaxD"}; /* gets the appropriate icon for the given blocktype */ int geticon_ipo_blocktype(short blocktype) diff --git a/source/blender/src/editkey.c b/source/blender/src/editkey.c index 1f24fb07667..ce798064632 100644 --- a/source/blender/src/editkey.c +++ b/source/blender/src/editkey.c @@ -84,6 +84,8 @@ #include "blendef.h" #include "mydevice.h" +#include "BLO_sys_types.h" // for intptr_t support + extern ListBase editNurb; /* in editcurve.c */ /* temporary storage for slider values */ @@ -162,7 +164,7 @@ static void rvk_slider_func(void *voidob, void *voidkeynum) IpoCurve *icu=NULL; BezTriple *bezt=NULL; float cfra, rvkval; - int keynum = (long) voidkeynum; + int keynum = (intptr_t) voidkeynum; cfra = frame_to_float(CFRA); @@ -275,7 +277,7 @@ void make_rvk_slider(uiBlock *block, Object *ob, int keynum, x, y , w, h, meshslidervals+keynum, min, max, 10, 2, tip); - uiButSetFunc(but, rvk_slider_func, ob, (void *)(long)keynum); + uiButSetFunc(but, rvk_slider_func, ob, (void *)(intptr_t)keynum); // no hilite, the winmatrix is not correct later on... uiButSetFlag(but, UI_NO_HILITE); diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c index 6dfbd67720b..c162c904776 100644 --- a/source/blender/src/editmesh_mods.c +++ b/source/blender/src/editmesh_mods.c @@ -109,6 +109,7 @@ editmesh_mods.c, UI level access, no geometry changes #include "editmesh.h" +#include "BLO_sys_types.h" // for intptr_t support /* ****************************** MIRROR **************** */ @@ -2937,7 +2938,7 @@ void select_sharp_edges(void) EditFace *efa; EditFace **efa1; EditFace **efa2; - long edgecount = 0, i; + intptr_t edgecount = 0, i; static short sharpness = 135; float fsharpness; @@ -3041,7 +3042,7 @@ void select_linked_flat_faces(void) EditFace *efa; EditFace **efa1; EditFace **efa2; - long edgecount = 0, i, faceselcount=0, faceselcountold=0; + intptr_t edgecount = 0, i, faceselcount=0, faceselcountold=0; static short sharpness = 135; float fsharpness; diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c index f9bb14a08c6..3615a4ad851 100644 --- a/source/blender/src/editmesh_tools.c +++ b/source/blender/src/editmesh_tools.c @@ -110,6 +110,8 @@ editmesh_tool.c: UI called tools for editmesh, geometry changes here, otherwise #include "PIL_time.h" +#include "BLO_sys_types.h" // for intptr_t support + /* local prototypes ---------------*/ void bevel_menu(void); static void free_tagged_edges_faces(EditEdge *eed, EditFace *efa); @@ -132,7 +134,7 @@ static int vergxco(const void *v1, const void *v2) } struct facesort { - unsigned long x; + uintptr_t x; struct EditFace *efa; }; @@ -433,8 +435,8 @@ int removedoublesflag(short flag, short automerge, float limit) /* return amoun efa= em->faces.first; while(efa) { if(efa->f1 & 1) { - if(efa->v4) vsb->x= (unsigned long) MIN4( (unsigned long)efa->v1, (unsigned long)efa->v2, (unsigned long)efa->v3, (unsigned long)efa->v4); - else vsb->x= (unsigned long) MIN3( (unsigned long)efa->v1, (unsigned long)efa->v2, (unsigned long)efa->v3); + if(efa->v4) vsb->x= (uintptr_t) MIN4( (uintptr_t)efa->v1, (uintptr_t)efa->v2, (uintptr_t)efa->v3, (uintptr_t)efa->v4); + else vsb->x= (uintptr_t) MIN3( (uintptr_t)efa->v1, (uintptr_t)efa->v2, (uintptr_t)efa->v3); vsb->efa= efa; vsb++; diff --git a/source/blender/src/header_info.c b/source/blender/src/header_info.c index a9280d9dd19..8b8fd9ef266 100644 --- a/source/blender/src/header_info.c +++ b/source/blender/src/header_info.c @@ -39,6 +39,8 @@ #include <config.h> #endif +#include "BLO_sys_types.h" // for intptr_t support + #include "DNA_group_types.h" #include "DNA_ID.h" #include "DNA_image_types.h" @@ -2106,7 +2108,7 @@ static void info_text(int x, int y) { Object *ob= OBACT; extern float hashvectf[]; - extern unsigned long mem_in_use, mmap_in_use; + extern uintptr_t mem_in_use, mmap_in_use; unsigned int swatch_color; float fac1, fac2, fac3; char infostr[300], memstr[64]; diff --git a/source/blender/src/header_script.c b/source/blender/src/header_script.c index 3c96e1692bf..53c4b9b5953 100644 --- a/source/blender/src/header_script.c +++ b/source/blender/src/header_script.c @@ -63,12 +63,14 @@ #include "blendef.h" #include "mydevice.h" +#include "BLO_sys_types.h" // for intptr_t support + /* ********************** SCRIPT ****************************** */ /* action executed after clicking in Scripts menu */ static void do_scripts_submenus(void *int_arg, int event) { - int menutype = (long)int_arg; + int menutype = (intptr_t)int_arg; BPY_menu_do_python (menutype, event); @@ -80,7 +82,7 @@ static uiBlock *script_scripts_submenus(void *int_menutype) uiBlock *block; short yco = 20, menuwidth = 120; BPyMenu *pym; - int i = 0, menutype = (long)int_menutype; + int i = 0, menutype = (intptr_t)int_menutype; if ((menutype < 0) || (menutype > PYMENU_SCRIPTS_MENU_TOTAL)) return NULL; @@ -132,7 +134,7 @@ static uiBlock *script_scriptsmenu(void *arg_unused) uiBlockSetButmFunc(block, do_script_scriptsmenu, NULL); for (i = 0; i < PYMENU_SCRIPTS_MENU_TOTAL; i++) { - uiDefIconTextBlockBut(block, script_scripts_submenus, (void *)(long)i, ICON_RIGHTARROW_THIN, BPyMenu_group_itoa(i), 0, yco-=20, menuwidth, 19, ""); + uiDefIconTextBlockBut(block, script_scripts_submenus, (void *)(intptr_t)i, ICON_RIGHTARROW_THIN, BPyMenu_group_itoa(i), 0, yco-=20, menuwidth, 19, ""); } uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); diff --git a/source/blender/src/header_view3d.c b/source/blender/src/header_view3d.c index 948023bebfb..fcf4caf4522 100644 --- a/source/blender/src/header_view3d.c +++ b/source/blender/src/header_view3d.c @@ -5139,7 +5139,7 @@ static char *snapmode_pup(void) static char string[512]; char *str = string; - str += sprintf(str, "%s", "Snap Mode: %t"); + str += sprintf(str, "%s", "Snap Element: %t"); str += sprintf(str, "%s", "|Vertex%x0"); str += sprintf(str, "%s", "|Edge%x1"); str += sprintf(str, "%s", "|Face%x2"); @@ -5777,7 +5777,7 @@ void view3d_buttons(void) xco+= XIC; uiDefIconTextButS(block, ICONTEXTROW,B_REDR, ICON_VERTEXSEL, snapmode_pup(), xco,0,XIC+10,YIC, &(G.scene->snap_mode), 0.0, 0.0, 0, 0, "Snapping mode"); xco+= XIC; - uiDefButS(block, MENU, B_NOP, "Mode%t|Closest%x0|Center%x1|Median%x2|Active%x3",xco,0,70,YIC, &G.scene->snap_target, 0, 0, 0, 0, "Snap Target Mode"); + uiDefButS(block, MENU, B_NOP, "Snap Mode%t|Closest%x0|Center%x1|Median%x2|Active%x3",xco,0,70,YIC, &G.scene->snap_target, 0, 0, 0, 0, "Snap Target Mode"); xco+= 70; } else { uiDefIconButBitS(block, TOG, SCE_SNAP, B_REDR, ICON_SNAP_GEAR,xco,0,XIC,YIC, &G.scene->snap_flag, 0, 0, 0, 0, "Snap while Ctrl is held during transform (Shift Tab)"); diff --git a/source/blender/src/interface.c b/source/blender/src/interface.c index e7b5b176979..a2b2af05083 100644 --- a/source/blender/src/interface.c +++ b/source/blender/src/interface.c @@ -105,6 +105,8 @@ #include "blendef.h" #include "winlay.h" +#include "BLO_sys_types.h" // for intptr_t support + #define INSIDE_BLOCK 1 #define INSIDE_PANEL_HEADER 2 #define INSIDE_PANEL_SCALE 3 @@ -6039,7 +6041,7 @@ void autocomplete_end(AutoComplete *autocpl, char *autoname) /* autocomplete callback for ID buttons */ static void autocomplete_id(char *str, void *arg_v) { - int blocktype= (long)arg_v; + int blocktype= (intptr_t)arg_v; ListBase *listb= wich_libbase(G.main, blocktype); if(listb==NULL) return; @@ -6370,7 +6372,7 @@ uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int ui_check_but(but); if(blocktype) - uiButSetCompleteFunc(but, autocomplete_id, (void *)(long)blocktype); + uiButSetCompleteFunc(but, autocomplete_id, (void *)(intptr_t)blocktype); return but; } diff --git a/source/blender/src/meshlaplacian.c b/source/blender/src/meshlaplacian.c index 60f569ecf0e..2de6367c9ad 100644 --- a/source/blender/src/meshlaplacian.c +++ b/source/blender/src/meshlaplacian.c @@ -63,6 +63,8 @@ #include "ONL_opennl.h" +#include "BLO_sys_types.h" // for intptr_t support + /************************** Laplacian System *****************************/ struct LaplacianSystem { @@ -126,14 +128,14 @@ static void laplacian_increase_edge_count(EdgeHash *edgehash, int v1, int v2) void **p = BLI_edgehash_lookup_p(edgehash, v1, v2); if(p) - *p = (void*)((long)*p + (long)1); + *p = (void*)((intptr_t)*p + (intptr_t)1); else - BLI_edgehash_insert(edgehash, v1, v2, (void*)(long)1); + BLI_edgehash_insert(edgehash, v1, v2, (void*)(intptr_t)1); } static int laplacian_edge_count(EdgeHash *edgehash, int v1, int v2) { - return (int)(long)BLI_edgehash_lookup(edgehash, v1, v2); + return (int)(intptr_t)BLI_edgehash_lookup(edgehash, v1, v2); } static float cotan_weight(float *v1, float *v2, float *v3) diff --git a/source/blender/src/meshtools.c b/source/blender/src/meshtools.c index 0f30aef04df..99833625baa 100644 --- a/source/blender/src/meshtools.c +++ b/source/blender/src/meshtools.c @@ -107,6 +107,8 @@ void sort_faces(void); #include "IMB_imbuf_types.h" #include "IMB_imbuf.h" +#include "BLO_sys_types.h" // for intptr_t support + /* from rendercode.c */ #define VECMUL(dest, f) dest[0]*= f; dest[1]*= f; dest[2]*= f @@ -592,7 +594,7 @@ void sort_faces(void) typedef struct MocNode { struct MocNode *next; - long index[MOC_NODE_RES]; + intptr_t index[MOC_NODE_RES]; } MocNode; static int mesh_octree_get_base_offs(float *co, float *offs, float *div) @@ -610,7 +612,7 @@ static int mesh_octree_get_base_offs(float *co, float *offs, float *div) return (vx*MOC_RES*MOC_RES) + vy*MOC_RES + vz; } -static void mesh_octree_add_node(MocNode **bt, long index) +static void mesh_octree_add_node(MocNode **bt, intptr_t index) { if(*bt==NULL) { *bt= MEM_callocN(sizeof(MocNode), "MocNode"); @@ -642,7 +644,7 @@ static void mesh_octree_free_node(MocNode **bt) /* temporal define, just to make nicer code below */ #define MOC_ADDNODE(vx, vy, vz) mesh_octree_add_node(basetable + ((vx)*MOC_RES*MOC_RES) + (vy)*MOC_RES + (vz), index) -static void mesh_octree_add_nodes(MocNode **basetable, float *co, float *offs, float *div, long index) +static void mesh_octree_add_nodes(MocNode **basetable, float *co, float *offs, float *div, intptr_t index) { float fx, fy, fz; int vx, vy, vz; @@ -690,7 +692,7 @@ static void mesh_octree_add_nodes(MocNode **basetable, float *co, float *offs, f } -static long mesh_octree_find_index(MocNode **bt, float (*orco)[3], MVert *mvert, float *co) +static intptr_t mesh_octree_find_index(MocNode **bt, float (*orco)[3], MVert *mvert, float *co) { float *vec; int a; @@ -734,7 +736,7 @@ static struct { /* mode is 's' start, or 'e' end, or 'u' use */ /* if end, ob can be NULL */ -long mesh_octree_table(Object *ob, float *co, char mode) +intptr_t mesh_octree_table(Object *ob, float *co, char mode) { MocNode **bt; @@ -805,7 +807,7 @@ long mesh_octree_table(Object *ob, float *co, char mode) EditVert *eve; for(eve= G.editMesh->verts.first; eve; eve= eve->next) { - mesh_octree_add_nodes(MeshOctree.table, eve->co, MeshOctree.offs, MeshOctree.div, (long)(eve)); + mesh_octree_add_nodes(MeshOctree.table, eve->co, MeshOctree.offs, MeshOctree.div, (intptr_t)(eve)); } } else { @@ -863,7 +865,7 @@ int mesh_get_x_mirror_vert(Object *ob, int index) EditVert *editmesh_get_x_mirror_vert(Object *ob, float *co) { float vec[3]; - long poinval; + intptr_t poinval; /* ignore nan verts */ if (isnan(co[0]) || !finite(co[0]) || diff --git a/source/blender/src/parametrizer.c b/source/blender/src/parametrizer.c index 096629b01ec..7aa27f99d77 100644 --- a/source/blender/src/parametrizer.c +++ b/source/blender/src/parametrizer.c @@ -22,6 +22,8 @@ #include <stdio.h> #include <string.h> +#include "BLO_sys_types.h" // for intptr_t support + #if defined(_WIN32) #define M_PI 3.14159265358979323846 #endif @@ -38,7 +40,7 @@ static int PHashSizes[] = { 4194319, 8388617, 16777259, 33554467, 67108879, 134217757, 268435459 }; -#define PHASH_hash(ph, item) (((unsigned long) (item))%((unsigned int) (ph)->cursize)) +#define PHASH_hash(ph, item) (((uintptr_t) (item))%((unsigned int) (ph)->cursize)) #define PHASH_edge(v1, v2) ((v1)^(v2)) static PHash *phash_new(PHashLink **list, int sizehint) diff --git a/source/blender/src/parametrizer.h b/source/blender/src/parametrizer.h index 80fab110d5f..c468b8d62c5 100644 --- a/source/blender/src/parametrizer.h +++ b/source/blender/src/parametrizer.h @@ -5,9 +5,11 @@ #ifdef __cplusplus extern "C" { #endif + +#include "BLO_sys_types.h" // for intptr_t support typedef void ParamHandle; /* handle to a set of charts */ -typedef long ParamKey; /* (hash) key for identifying verts and faces */ +typedef intptr_t ParamKey; /* (hash) key for identifying verts and faces */ typedef enum ParamBool { PARAM_TRUE = 1, PARAM_FALSE = 0 diff --git a/source/blender/src/parametrizer_intern.h b/source/blender/src/parametrizer_intern.h index f7a32816b33..bc38cb4bc0f 100644 --- a/source/blender/src/parametrizer_intern.h +++ b/source/blender/src/parametrizer_intern.h @@ -30,7 +30,7 @@ typedef enum PBool { /* Special Purpose Hash */ -typedef long PHashKey; +typedef intptr_t PHashKey; typedef struct PHashLink { struct PHashLink *next; diff --git a/source/blender/src/renderwin.c b/source/blender/src/renderwin.c index 6c150f3d30f..88f5f6efe15 100644 --- a/source/blender/src/renderwin.c +++ b/source/blender/src/renderwin.c @@ -50,6 +50,8 @@ #endif +#include "BLO_sys_types.h" // for intptr_t support + #include <limits.h> #include "BLI_blenlib.h" @@ -901,7 +903,7 @@ static void renderwin_progress_display_cb(RenderResult *rr, volatile rcti *rect) void make_renderinfo_string(RenderStats *rs, char *str) { extern char info_time_str[32]; // header_info.c - extern unsigned long mem_in_use, mmap_in_use; + extern uintptr_t mem_in_use, mmap_in_use; float megs_used_memory, mmap_used_memory; char *spos= str; diff --git a/source/blender/src/space.c b/source/blender/src/space.c index 8d86336e12e..fb055216f7f 100644 --- a/source/blender/src/space.c +++ b/source/blender/src/space.c @@ -182,6 +182,8 @@ #include "SYS_System.h" /* for the user def menu ... should move elsewhere. */ +#include "BLO_sys_types.h" // for intptr_t support + /* maybe we need this defined somewhere else */ extern void StartKetsjiShell(ScrArea *area, char* startscenename, struct Main* maggie, struct SpaceIpo* sipo,int always_use_expand_framing); extern void StartKetsjiShellSimulation(ScrArea *area, char* startscenename, struct Main* maggie, struct SpaceIpo* sipo,int always_use_expand_framing);/*rcruiz*/ @@ -460,7 +462,7 @@ static LinkNode *save_and_reset_all_scene_cfra(void) Scene *sc; for (sc= G.main->scene.first; sc; sc= sc->id.next) { - BLI_linklist_prepend(&storelist, (void*) (long) sc->r.cfra); + BLI_linklist_prepend(&storelist, (void*) (intptr_t) sc->r.cfra); /* why is this reset to 1 ?*/ /* sc->r.cfra= 1;*/ @@ -478,7 +480,7 @@ static void restore_all_scene_cfra(LinkNode *storelist) { Scene *sc; for (sc= G.main->scene.first; sc; sc= sc->id.next) { - int stored_cfra= (long) sc_store->link; + int stored_cfra= (intptr_t) sc_store->link; sc->r.cfra= stored_cfra; set_scene_bg(sc); diff --git a/source/blender/src/splash.jpg.c b/source/blender/src/splash.jpg.c index 2431ff5de22..ecd63166792 100644 --- a/source/blender/src/splash.jpg.c +++ b/source/blender/src/splash.jpg.c @@ -1,2990 +1,1590 @@ /* DataToC output of file <splash_jpg> */ -int datatoc_splash_jpg_size= 95515; +int datatoc_splash_jpg_size= 50665; char datatoc_splash_jpg[]= { -255,216,255,224, 0, 16, 74, 70, 73, 70, 0, 1, 2, 0, 0,100, 0,100, 0, 0,255,236, 0, 17, 68,117, 99, -107,121, 0, 1, 0, 4, 0, 0, 0, 95, 0, 0,255,238, 0, 14, 65,100,111, 98,101, 0,100,192, 0, 0, 0, 1,255,219, 0,132, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 1, 1, 1, 1, 2, 1, 2, 3, 2, 2, 3, 4, 4, 3, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5,255,192, 0, 17, 8, 1, 26, 1,245, 3, 1, 17, 0, 2, 17, 1, 3, 17, 1,255,196, 0,230, 0, 0, 0, 6, 3, 1, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, 8, 0, 2, 9, 1, 10, 11, 1, 0, 0, 7, 1, 1, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 0, 1, 3, 3, 3, 1, 4, 4, 9, 8, 5, 8, 5, - 8, 5, 13, 1, 2, 3, 4, 17, 5, 6, 0, 18, 7, 33, 49, 65, 19, 8, 81, 97, 34, 20,113,129,145, 50, 35, 51, 52, 21, 9,240, -161,177,193, 66, 82, 98, 53,225,149,213, 22, 54,209,241,114, 36,212, 69, 85, 24,194, 67, 83, 99,148,130,162,179, 37,117,181, 23, - 55,115,195, 68,133, 10,146,178,210,131,147,211,116,196,165,197, 38, 70, 71, 17, 0, 1, 3, 2, 4, 2, 6, 5, 8, 8, 5, 4, - 2, 1, 5, 1, 1, 17, 2, 3, 0, 4, 33, 49, 18, 5, 65, 6, 81, 97,113, 34, 19, 7,129,145,161, 50, 20,240,177,193,209, 66, -146, 83,211,225,114, 35, 51, 67, 21, 23, 8,241, 82, 98,130,210,178, 36, 52, 22,194,115,162,226, 99, 68,116, 9, 53,255,218, 0, - 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0,251,244,208,161, 89,161, 66,136, 93,149,114, 77,174,228,171, 50, 34,185,119, 76, 9, -106,181, 55, 57, 74, 76, 37,220, 67,106,240, 3,197, 21, 88, 65,114,155,138,122,211,179, 81,175, 76,194, 25, 62, 31, 79,139,164, -232,212,186,117, 39,117, 83, 20, 84, 84,225, 82,172, 68, 38,104,254, 32,184, 69,168,107,210,154,180,175,123, 74,224,168,168,188, -107,147,184, 15,158, 62, 82,226,238, 69,187,224, 62,105,236,206, 52,193,184, 58,148,222, 45,214, 86,160,203,199,208,226,190,140, -161,168,200, 67,115,225,148,252,215, 81,185,116,235, 85,158,131,197, 92,181,253,196,239, 60,147,187, 75,181,115,188, 37,163, 81, - 73, 26,192, 11, 1,201, 3, 64, 18, 68,120, 57,170,239,214,225,237,206,102,254,220,118, 94,120,218, 34,221,185, 26, 96,227,164, - 44,110,121, 34, 66, 51, 82,226, 76,114,142, 45,114, 55,169,185,158,172, 99,217, 21,139, 44,179,192,200, 49,171,180, 27,221,150, -230,194, 36,193,185, 91,100,166, 84, 73, 44,172, 84, 20,173, 4,142,157,132,118,131,208,245,215,180, 54,221,202,223,120,129,151, - 54,178, 54, 72,158, 21,174,105, 5,164, 30, 32,138,241, 62,229,182, 92,108,211,190,214,238, 55, 71, 43, 10, 57,174, 4, 56, 17, -192,131, 75, 58,157, 80,107, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, - 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66, -179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21, -154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172, -208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102, -133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,174,110,249,156,129,231,110, 79, 36, 72, 95, 16,221,151, 15,143,125,198, 10, -108,173, 88, 38, 67,132,250, 94,240,211,239, 30,251,239, 32, 58,183, 11,251,138, 72, 37, 59,118,210,134,186,242,199,155, 27, 63, -152,251,134,236,231,114,252,205,109,142,150,232, 12,124,108, 42,157,237,122,241, 46,212,168,138, 17, 19, 21,175, 86,121, 75,188, -249,109,183,109, 45,111, 48,194,231, 95,106,118,178,246, 72,240,139,221,209,163, 0,221, 40,170,133, 87,130, 85, 2,207,249,239, -205,223, 25,222, 14, 61,151,114,205,222, 29,241,180,133,201,181,196,188, 65,185, 75,130, 20, 1, 72,144,150, 16,224,101, 74, 6, -161, 43, 32,211,173, 41, 77,121,119,156,124,195,231,206, 68,185,248, 77,195,116, 34,100,197,140,146, 57, 11,122, 53,105, 7, 73, - 60, 1,197, 49, 74,245, 63, 38,121,115,200, 60,251,109,241,155,118,212, 12, 11,131,223, 28,177,135,116,232,214, 65,112, 28, 72, - 8,184, 45, 35,189,138,121,171,243, 47, 2,219,114,187, 65,190,230,112, 34,120,143, 90,110,183,166,162, 91,213,177,225, 69,120, - 47, 56,150, 93, 90, 23, 65,208, 18,146,122,246,232, 14, 78,243, 3,206,107,104,167,184,142, 73,161, 29,232,223, 41,142, 53, 7, -139, 11,180,184,180,245,119, 77, 25,231, 63, 47,124,150,186,150,222,222, 72,224,156,163,100,100, 34, 73, 16,142, 15, 13,212,208, -225,215,222, 25, 83,135,142,185, 19,204, 39,146,204,138, 51, 57, 22, 57,118,143,136,221,229,149, 92,113,123,194,183,216,174,229, - 0, 7, 23, 14, 74, 11,141,177, 33, 40,235,185, 7,175, 77,201, 34,154,149,203, 60,199,205,191,219,133,211, 89,127,108,241,103, - 35,187,209,184,131, 27,207, 19, 27,219,169,173,122,116,103,246,129, 25, 68,230,126, 91,229, 15,238, 82,213,239,219,238, 88,111, - 35,111,118, 86,130, 36, 96,224, 36, 99,131, 92,230, 47, 72,195,236,184, 28,251, 71,135,249,130,192,243,126, 29,188,115, 61,133, -201,147, 44, 56,238, 59,124,191, 95,173, 44,182,131,124,183, 61,142, 68, 92,185,112,148,218,214,134,252,100,161, 20, 69, 86, 18, -170,130, 21,180,215, 95, 70,124,189,230,219, 47, 50,236,224,189,219, 94,172,149,193,136,112, 44,126, 0,177,227, 20, 45, 36, 42, - 42,132, 33, 65, 21,243,115,204, 94, 82,189,242,194,242,226,203,115, 98, 62, 38,151,171,113, 15, 96, 4,135,176,148, 80,224, 10, - 42, 33, 80, 80,131, 81,199,147,111, 59,124, 23,231,171,141, 37,242,151, 5, 92,114, 9, 22, 91, 93,229,204,118,251,108,202,108, - 46, 99,247,203, 37,245,150, 24,144,184,238,182, 84,235, 46,237,106, 66, 15,136,195,171, 65,173, 2,170, 14,186,119, 54,242,133, -231, 37,220,139, 91,208,208,242,221, 64,180,168, 45, 82, 23,167,129,192,128,107,149,242,103, 59, 88,243,221,161,188,176, 46, 44, - 14,210, 67,155,164,135, 32, 40,120, 28, 8,196, 18, 58,234,102,230,206,105,227,159, 47, 28, 97,149,243, 31, 45, 95, 85,140,241, -238, 19, 14, 60,252,146,248,155,116,155,178,160, 69,148,251, 81,144,175,119,136,211,242, 28,220,243,200, 77, 16,131,219, 83,210, -186,170,217,246,139,141,250,229,150,150,173,213, 43,202, 52, 40, 11,130,230, 80,100, 42,231,123,222,237,185,118,214, 75,219,183, -105,133,129, 92, 80,148, 10,153, 0, 78,102,139,112, 87, 58,241,135,153, 62, 47,198,121,147,135, 50, 63,239, 95, 30,229,237,220, - 29,176, 94,205,186, 77,161,115, 17,108,150,252, 39,137,141, 49,150, 36,181,182, 68,103, 18, 55,160, 86,149, 21, 4, 18,123,206, -205,113,203,247, 47,179,187,110,153, 88,154,130,130,138, 1, 24,130, 70, 68, 81,108, 91,229,183, 50, 90, 71,123,102,253,112,189, -116,185, 8, 84, 37,167, 2, 1,204, 30, 21, 46,234,174,173,171, 52, 40, 86,104, 80,172,208,161, 84,163,130,252,254,121,126,243, - 25,207,252,215,229,203,139,166,229, 55, 76,219,128,164,201,182,242, 5,202,227,143, 42,207,141,181,124,129,113,145,108,147, 10, - 27,207,184,153, 18,151, 30, 84, 85,133, 56, 24, 13,145, 66,133,170,186,215,111,124,147,125,203,214, 54,215,247, 65,162, 59,140, - 88, 1, 87, 38,144,224, 74, 96, 20, 17,130,175, 72,172, 86,193,207,187,127, 50,223,221,109,214,133,230, 75, 98,146, 18,212,106, -135, 22,144, 9,196,161, 7, 20, 78,131, 87, 95, 89, 26,218,214,104, 80,166,150,125,157, 98,188, 97,131,230, 28,145,157, 93,216, -199,240,188, 7, 24,190,102, 57,101,242, 74, 22,235, 22,156,119, 27,140,236,201,146, 20,134,146,183, 92,240,163,178,165,108, 66, - 74,141, 40,144, 73, 3, 82,172,108,165,220,166,142,222, 22,234,145,238, 13,104,233,115,138, 1,233, 38,162,110, 23,241,109,112, - 73,115, 59,180,199, 27, 75,220,122, 26,208,164,244,224, 7, 12,107,231, 85,127,143, 87, 55,242,157,198,249,126,242,157,248,110, -243, 47, 52,241, 6, 61,113,145, 13,204,234, 69,202,226,205,198,240, 34,237, 82,208, 34,217,177,235,212, 72, 79, 6,250,150, 83, - 46, 66,192, 82, 74,146, 59, 15,120,119,146,214, 27, 72,108,123,174,239, 4, 23, 14, 11,163,186,129,122,220,246, 18, 58,244,180, -117,215,157,155,231,190,225,188,151,203,179,236,151, 23, 22,205, 41,173, 92,165, 56, 35, 35,120, 5, 56,106,113,196, 97, 93, 31, -252, 60,255, 0, 20,110, 28,252, 64, 96,101, 22, 91, 30, 57,127,226,190, 97,192, 67,107,206,120,151, 45,125, 19, 46, 22,248,142, - 57,224,251,228, 9,136,109,129, 62, 50, 36,253, 3,165,108,180,235,110, 10, 56,202, 2,155, 82,240, 28,249,229,197,223, 34, 58, - 55, 72,246,203, 4,158,228,141,200,241, 66, 49, 66,152,140, 72, 35, 34, 80,167, 72,242,239,205, 11, 47, 48,217, 35, 35, 99,162, -184,139,223,137,248,144, 50, 80,112,212, 23, 3,128, 32,230,208,160,158,156,107,158, 87, 76,172,208,161, 84, 31,206, 95,226, 19, -195,254, 77,114,110, 15,227,188,153,137, 25,135, 41,115,215, 34, 98, 56,102, 41,129,217,174, 45, 66,184, 91, 49,252,134,230,197, -186, 86, 67,113,113,104,119,221,161,195, 91,219, 90, 27, 10,159,116,120,109,128,148,186,227, 91,110, 83,228, 91,190,108,138,230, -226, 51,162, 24, 35,115,220,242, 20, 18,214,151, 6, 55,165,197, 49,255, 0, 40,196,230, 1,192,243,151,152, 86,124,157, 53,173, -172,160,190,123,137, 88,198,176, 16, 8, 14,112,105,123,186, 26, 23, 12, 21,199, 1,145, 34,242,191,121,182,195,180, 73,190,220, -167, 68,182, 90, 32,193,145,115,184, 92,174, 50, 81, 10, 5,190,223, 17, 5,215,159,125,231, 20,150,218,109,166,210, 84,181,172, -128, 0, 36,154, 13, 99, 35,141,210,184, 53,160,146, 74, 0, 49, 36,156,128, 29, 53,187,146, 70,194,210,247,144, 26, 2,146,112, - 0, 12,201, 60, 0,174, 61,240,191,227, 31,199,222,102,188,224,163,203,135,150,238, 20,228, 30, 89,226,251, 68, 91,136,205,252, -197,193,148,197,151, 23,199,165, 50, 8,141, 45,171,124,198,218,113,251,115,238,161, 76,165,247,164, 52,251,138,169, 98, 51,201, - 77, 87,213,119,191, 42,102,229,141,167,249,134,227,113, 28, 83, 56,141, 16, 21, 46,119, 72, 80,168,224, 49, 64, 11, 64,247,156, - 9,195,143,236, 30,112,193,205,155,207,242,205,174,218, 73,160,104, 58,231, 8, 26,222,131,164,162,176,156, 20,144,226,125,214, - 56, 12,123, 44,149,110, 74, 84, 59, 20, 1,235,219,215, 92,158,187, 29,123,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, - 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, - 89,161, 66,179, 66,133,102,133, 10,205, 10, 20,147,115,200, 44, 54, 69, 50,155,205,238,209,105, 84,128,181, 71, 77,206,228,204, - 5, 62,150,232, 20, 80, 29, 90, 55,109,168,173, 52,236,112,190, 95,117,164,246, 5,164,151, 6,230,104,172, 92,183, 21,157,144, - 79,196,161,100,216,252,204,170,215,111,137,118,185,227, 49,111, 49,164,100, 22,235, 84,243, 70, 36,191, 9, 14, 25, 44,180,249, -250,183, 22,128,149,119, 19,163,117,180,140, 96,144,181,193,132,160, 40, 80,145,152, 7, 37, 20, 3,193, 40,161,105,193,166,105, - 84,131,145,229,120,190, 31, 5,155,166, 91,146, 88, 49,107,108,137,240,237,113,238, 57, 29,226, 61,146, 11,247, 59,130,182, 71, -140,135,164,184,211,106,117,245,251, 45,182, 14,229, 30,128, 29, 61, 5,188,151, 39, 76,109,115,138, 42, 0, 73, 65,153,195,128, -164,185,225,152,146,148,189,166,105, 84,141, 55, 35,199,173,178,219,183,220,111,214, 91,124,247, 67,106,106, 20,219,163, 17,101, -186,151,137, 74, 10, 91,113,196,173, 91,148, 8, 20, 29, 78,157,100, 15,144,106,107, 73, 29, 32, 26, 73,112, 24, 19, 75, 58,106, -149, 89,161, 66,147, 87,122,179,183,120,143,142,185,118,182, 35, 32,153,108,155,122,137, 98, 92,246,147,120,149,103,183, 58,195, - 18, 37,183, 20,175,199, 91, 44, 63, 41,150,220,117, 41,218,149, 45, 9, 36, 21, 36, 23, 4, 78, 45, 47, 67,164, 20, 84,193, 74, -144, 23, 37, 32, 28, 58,141, 22,160,169,198,142, 73,147, 26, 20,119,165,204,144,196, 72,177,219, 83,210, 36,201,117, 44, 71, 97, -164, 10,169, 75, 90,136, 74, 64, 29,164,157, 33,173, 46, 40, 2,154, 50, 82,134,209, 80,172,208,161, 89,161, 66,162,142, 65,229, -236, 87, 1,180, 92,174,183, 27,132, 88,240,109, 15, 46, 61,239, 32,184,151, 34,226, 88,191,130,130,227,174,220,238, 1, 10,101, -132,176,210, 74,150,128, 74,135, 64, 66,119, 3,163,107, 75,138, 12,232, 18,149,199,110,102,252, 84,237,138,189, 92, 48,142, 2, -192,185, 19,154,114,148,186,109,176,179,171,149,238,225,198,152, 7,191,184,176,211,178,161,219,109,202,137,114,155, 18, 58,138, -150,143, 21, 64,169, 9,250,211, 80,181,109,236,249, 49,198, 49, 45,203,244, 14,128,210, 83,180,229,234, 94,140,234,150, 93,224, -106,211, 27, 84,246,253, 31, 90, 82,187,191,137, 3, 54,219, 37,162,213,253,207,190,103,119,152, 54,139,106, 46,249,108, 62,103, -185, 91,108, 87, 91,170, 88, 64,144,244, 51,109,139, 24, 63, 28,185, 95, 13,206,129, 67,218, 27,129,220,103,193,200, 34, 81,168, -204, 67, 78, 93,220, 83,130,247,176,168,239,223,116,224, 25,143,111,232,171,243,228,211,205, 53,183,204,213,131, 53,145, 18,223, -119,183,203,194,239, 22,200, 18,154,184, 60,221,218, 42, 81,116,143,226, 4, 49,115,101,182, 81, 48, 52,251, 79, 54, 67,141,135, - 19,182,139, 42, 39,113,203,111,219, 19,182, 71,129,172, 57,174, 84, 60,112, 69, 81,233,233,171, 75, 27,209,122, 9, 66, 8,206, -174,134,168,106,117, 4,251,236, 69, 97,233, 50, 94,106, 52,104,237, 45,231,228, 62,224,101,134, 25,104, 21, 41,107, 90,136, 74, - 82,144, 42, 73, 61, 52,137,101,108, 45, 47,121, 1,160, 41, 39, 0, 0,204,147,192, 82,226,137,211,184, 49,128,151, 18,128, 0, -164,147,144, 0,102,107,147,254,104,124,253,120, 78,207,227,158, 2,147,239,151, 7, 22,253,178,235,200, 17,219, 18, 27, 67,171, -250, 50,213,153, 52, 80,121, 68,146, 4,154, 83,254,204, 30,139, 30, 36,243,143,251,155, 33,206,218, 57, 92,235,144,146,199, 78, - 2,226,112,211, 8,199, 81, 63,231,251,128,224,234,247, 23,147, 63,218,248, 44,102,241,205, 35, 68, 96, 7,182,220,148,192, 99, -170,115,134,144, 51,209,159,249,200,197,181,205, 78, 40,199,198,113,204,248,141,131, 45, 92,153, 42,189,229,141,181,126, 55, 39, - 22,185,114,164, 5,173,199,144,250,150,119,149, 58,226, 10, 87, 83, 90,157,121, 91,203, 45,145,188,207,205,118, 86, 91,162,184, - 62,227,246,161,234,174, 45, 87, 57,174, 92, 85,196,105, 43,142, 53,234,239, 51,247,199,114,191, 41,222,222,237,101,173, 49,219, -126,200,177, 17,161,200,214,185,169,130, 52, 59, 80, 76, 48,174, 63,126, 51,190,110,252,197,187,231, 47,147,120, 22,221,152,102, -124, 97,197, 28, 37, 50,211,137,225, 56, 38, 45,120,151,139, 91, 46, 49, 4, 24,146, 77,230, 82, 34,173,143,125,114,226,183,188, - 86,156, 93, 66, 91,216,148, 80, 2, 79,233,159,201, 94, 73,218,236, 54, 59,123,134, 67, 27,228,145,170, 92, 90, 14,148, 36, 6, - 55,252,161,160, 34, 4,198,191, 45,190,124,115,230,239,184,111,247, 54,178, 77, 43, 34,137,200,214,135, 56,106, 80, 28, 94,236, -123,197,196,170,149,193, 18,175, 71,224,153,230, 31,152,124,206,241,135,153,239, 45, 60,239,145,228, 92,149,199,152, 39, 30, 51, -200, 28,127,152,229,243, 92,189,221,184,243, 35, 99,222, 18,136,109, 92,100,120,143,150,159, 13,120,237,180,183, 8, 64, 67,161, - 35,106,212, 53,231,143,239, 83,203, 45,151,115,216, 36,115,163,100,110,146, 57, 73, 0, 0,142,141,133,237,148, 12,129,105,192, -145,152, 40,107,210,159,216,191,154,155,230,221,191,199, 24,150, 73, 27, 28,145, 0, 92, 73,238,200,253, 15,136,156,200,120,196, - 2,112, 33, 69,116, 11,202,174,117,114,179, 88, 60,195,225, 94, 59,202,179,100,220, 19,201, 19,215, 23,121, 44, 55,114,181, 90, -228,165, 14, 4,246, 36,169,167,148, 9,239,160, 29,195, 95, 42,191,177,254, 98,150,219,152,228,218,201, 38, 41, 67, 36, 3,128, -123, 36,104, 84,224,173,113, 4,241, 65,213, 95, 91,127,190,174, 93,134,231,150,153,186, 0, 4,177, 23,198,188, 75, 36,141,229, - 23,138, 57,160,129,193, 79, 77,113,175,240,122,242, 79,230, 67,205,255, 0, 14,114, 35, 56, 63,155,222, 71,242,229,197,120,182, -117, 37,184,246, 14, 49,144,236, 59,133,251, 57,153, 6, 26,223,155,112,114, 52,219,123,139,105,136,201,142,134,155, 90,213, 83, -191,111,135,212,175,238, 71,155,124,233, 97,202,119,241, 9, 54,248,174, 39,124, 96,151, 73,147, 88, 28, 81,173, 80,236, 73, 82, - 78, 28, 21,120,124, 21,242, 95,145, 55, 30,114,219,166, 49,238, 82,218,219,178, 82, 3, 98,205,210, 22,181, 92,228, 45,192, 13, - 32, 12,120,162,113, 77,207,188,217,121,171,227,206, 58,252, 69,191, 13, 47, 50,252,165, 63,157, 34,113,254, 19,117,115, 16,207, -239, 50, 92,186, 94,237,183, 44, 30,253, 99, 90,144, 38,190, 87, 49,200,183, 24, 15,248,158, 12,151, 22,166, 92, 1, 41, 85, 10, -171, 38,203,150,118,203,235,141,167,152,182,232, 68, 6, 73, 0,115, 6, 0,135,177,252, 6, 10,215, 4, 80, 2,140, 82,162, 95, -243, 94,235,183,219,111, 60,177,185,206,110, 4, 81,146,201, 14, 36, 22, 61,156, 78, 40,230,149, 66, 78,147,130,212, 2,143, 60, -220,217,142,121,122,242, 75,228,227, 7,207,185, 43,138,248,153,236, 74,110, 97,202, 23,158, 22,101,229,242,158, 94,230, 79,150, -228,105, 92,104,126, 3,209,221,121,184, 80, 98,130,204,116, 56,148,173,213,168,185,184, 33, 0, 92, 14, 75,180,150,255, 0,116, -222, 38,142, 41,103,241, 52,198, 37, 79, 13,186, 98,143, 18,160,162,147,137, 76, 0, 9,153,170, 71,115,221,236, 59,118,211,178, - 67, 44,177, 91,248,122,164, 48,130,101,126,169,100,193,168, 65, 32, 52, 96, 20, 41, 37, 85, 5, 77,182,207, 53,156,173,229,103, -153,248,143,145,188,151,103, 94,127, 51,188, 77, 23, 20,199,230,110, 57,243, 49,135,220, 47, 24,221,246,214,183,152, 14, 38, 58, - 91,114, 83, 43, 50,163, 41,224, 23,225, 33,198, 86,148, 45, 11, 53, 32, 83, 30, 92,182,230, 91, 41,237,247,166,109,236,145, 22, - 39,219,184, 2, 10, 28,213, 14, 5, 56,144, 65, 32,138,188,111, 52, 93,114,173,253,189,206,196,253,202, 72,149, 38,142,229,142, - 45,112, 81,146, 40,196, 47, 0, 90, 64, 32,213,228,226,190, 84,252, 65,127, 17, 15, 59, 62,115,124,172, 90, 60,227,102,220, 67, -193, 56, 23, 37,242, 10,212,172, 90,199,110,131,154, 90,241, 59, 94, 69, 58, 13,166,207,108,157, 25,136, 83,226,163,192,162,100, - 58,169, 4,148,182, 2,130,201,214, 51,118,179,216,249, 7,101,219,119, 51,183,178,107,169, 99,103,188,231,104, 46, 49,135, 57, -206, 4,144,113,200, 39, 30, 21,187,217,175,185,131,204,125,247,116,218, 70,229, 36, 22,144,202,255, 0,117,173,214, 26, 36,115, - 88,198,144, 1, 24,102, 87, 33,198,162,252, 3,204,167,154,159,194,175,206,215,154, 95, 47, 89, 63, 58,102, 94,101, 48, 12, 23, -128,242,238, 70,178, 65,228,171,196,219,179, 15, 95, 99, 88, 99,222,236,178, 3,114, 37, 74,118, 26,219,144,248,141, 48, 71,120, - 37,198,234,170, 2, 19,182,214,255, 0, 96,219,124,203,217,172,111,227,182,101,180,210, 92, 54, 55,120, 96, 12, 11,203, 92, 48, - 1,112, 10,213, 10, 14, 29,180,251,111, 49,238,158, 85,111,187,134,219, 37,212,151, 80,199,108,249, 27,226, 18,123,193,129,236, - 56,146,152,157, 46, 66,132, 99,208,143,143, 35, 62, 92,124,255, 0,126, 38,216, 30, 71,230,227, 48,252, 66,249,143,139,175, 23, -124,174,253, 19, 6,176,225, 87, 73, 76,227,150,217,182, 39,118,238,118,223, 18,227, 6, 20, 72,232,144, 60, 54,226,180,205,118, - 13,202, 81,221, 67, 3,157,185,151,101,242,238,233,187, 69,190,213, 12,173,107, 26, 94,231,166,163,168,112, 37,164,146,152,151, - 19,159, 10,177,228, 46, 85,223,188,206,180,118,245,115,188, 79, 11,156,247, 8,218,194,116,130,211,153,104,115, 64, 11,128,104, - 25, 98,181,205,206, 17,243, 63,230, 7,201, 77,207,241, 54,228, 69,100, 48,231,121,150,145,156,219,120,150,247,159, 67,141, 26, -124, 40, 92,143,144,228,215,212,222,239,172, 54, 25, 76, 69,146,168, 18,215, 28,248, 65, 1,197,161, 91, 40, 54,235,161,111,124, -181, 97,206, 71,101,131, 65, 22,130, 55, 72, 24, 84, 18,198,198,205, 44, 56,175,218, 11,138,160, 56,215, 51,216, 57,171,112,228, - 97,190,220,107, 6,244,200,216,139,192, 4, 9, 29, 36,154,222, 48, 79,178,226, 48, 69, 35, 14, 21,174, 51,202,247,187,255, 0, - 6,185,201,114,188,194,126, 39, 51,188,222, 79,183,203,201,108, 55,252,122, 5,210,231,196, 82,111, 69,213, 59, 18, 32,146,155, -135,189,185, 29,214,130, 82,169, 45,154, 2, 74,131, 69, 41,216, 74,231,111, 16, 95,252, 55,195,109, 98,192, 16,210,215, 22,137, - 81, 49, 40,136, 10,240,232,226,184,209,218,238,102,227,110,248,175,138,221,142,228, 65,112,115, 67,140, 58,149, 64, 85, 82,210, - 62,208,227,138, 38, 21,102, 57, 79,241, 98,252, 72,111,220,113,228,142,193,140,114, 62, 79,196,220,183,151, 76,204,248,187, 58, - 93,207, 13,131, 0,242, 6, 67,108,187,217,226, 89,239, 18,152,185,218,220, 45,151,162,220,144,135,203, 41, 8, 82,195,132, 14, -180, 20, 27, 95,150,156,189, 5,198,229, 36,145, 54,107,120,195,100, 98, 56,157, 13, 44,113,115, 65,107,184, 22,148, 92, 81, 43, - 73,187,249,171,204,215, 22,219, 84,113, 74,248,110, 36, 47,137,234,192, 53,184, 61,141, 99,200,115,112, 80,224,169,130,173,125, - 78,126, 31,126, 86, 57, 51,203, 87, 13,101, 88,151, 51,115,158, 87,230, 43, 38,228,156,206,227,200,185, 6, 81,156,151,100,201, -143, 59, 34,182, 90,224,202,183,176,153, 50,166,175,221, 16,171,113,113,180, 21,129,244,138,246, 70,188,207,206,156,207, 15, 51, -221,178,123,107,102, 91, 70,200,195, 26,198,116, 53,206, 33,197, 0,239,119,144,246, 12,107,213,220,137,202,115,242,157,147,237, -238,238,159,117, 36,146, 25, 28,247,244,185,173,105,104, 82,123,163, 74,142,211,133, 91,156, 31,138,248,207,137,177, 88,120,190, - 17,138, 99,120, 86, 27,143, 67,121,187,117,146,205,110, 98,203, 96,178, 91,210,165,188,224,105,150,146,219, 44, 32, 41, 74, 90, -136, 0, 84,146,123, 78,179, 23,119,115,110, 82,186,105,158,231,200,227,139,156, 73,113, 57, 98, 78, 39,162,181,118,118, 80,109, - 80,182, 24, 24,216,226, 96,193,173, 1,173,104,207, 0, 48, 29, 53,242,201,248, 81, 71,111,158,191, 23, 95, 60, 30,105,184,194, - 55,186,240,195,119, 46, 71,179, 90,174,214,214,203, 22,204,149,220,239, 33,138,245,185,209, 77,169,112, 92, 34,217, 95,184,186, -145, 82,149, 45,178,174,170, 4,250, 75,205, 87,255, 0, 34,229, 93,175,106,184, 43,113,220,113, 7, 54,134, 48,135,122,139,195, - 7, 80, 41,149,121,107,201,246,127,236, 60,223,187,111, 22,193, 45,191,104,208, 70, 78, 50, 72, 11, 79, 94,160,194,243,208, 72, - 92,235,235,151, 94, 99,175, 88,213, 55,243,209,231, 91,139,124,136,240, 61,251,153,121, 29,244,207,184,168,185,100,227,188, 22, - 44,128,205,231,144,179,137, 13, 56,228,107,124,115,181,126, 11, 73, 8, 46,202,146,164,148,180,210, 84,170, 41,101, 8, 94,183, -146,249, 62,231,157,175,155,103,110, 16,102,247,240, 99, 56,184,244,158, 0,113, 61, 74, 70, 51,158,249,222,211,144,172, 31,123, -114, 84,228,198, 12,222,244,193,163,160,113,113,224, 49,196,160, 63, 22,156,219,199,126,102,238,126,101, 60,141,121,198,243, 99, -118,144,142, 78,243,137,230, 26,223,145,219,112,103,225,174, 26, 48, 12, 7, 6,190, 97,159,114,195,105,167, 30,113,112,155, 84, -107,230,214, 96,168,111,101,180, 32,188,165, 72,113,208,159, 89,237, 27,174,219,252,183,117,218, 54,166,254,194,206,216,180,189, - 87, 91,222,201,117,156,177, 66,204, 93,147,137, 58, 70,144, 23,198,123,222,207,186,141,211,104,222,183,135,127,220, 95, 93, 7, - 8,209, 60, 56,216,248,116, 4, 92, 20, 63, 6,230,208, 6,162, 92, 92,157,166,252,126,252,224,100, 88,119, 28,112,239,145,254, - 56,200, 96, 99, 89, 31,152,182, 34, 94,121, 66,255, 0, 62,246,140,126, 37,171,140, 12,228,219,160,194,149, 45,194,150,226,196, -189, 92,208,249,154,250,214,148,165,152,174, 54,176,166,221, 93, 57, 39,144,252,171, 29,212,179,239, 87, 12, 46,101,190, 17,180, - 13, 68,200,154,137, 3,139,154,212,210, 17, 75,156, 8,196, 10,237, 31,220, 71, 56, 75,105, 13,190,195,108,240,199,220,227, 35, -139,180,129, 30,173, 32, 19,193,175,114,234, 42,129,172, 32,168, 38,164, 31,195, 19,204,199,225, 51,229,123, 5,198, 60,188,113, -207,153,188, 26, 95, 36,220,165, 68,123, 50,203, 50, 76,110,253,134,219,243,190, 64,154,134,217,122, 72,189, 94,109, 80,237, 30, - 26,150, 3, 48,216, 68,178,148, 54, 18,144, 84,178,165,174,171,204, 46, 88,230,174,102,184,126,231,121,102,241, 16, 7, 67, 26, -230, 60,198,193,136, 26, 90,226,229,226,227,167, 18,167, 0,128, 92,121,105,205,156,161,202,150,209,237, 54, 87,209,153, 73, 26, -222,230,189,130, 73, 14, 4,235,123, 67, 83,131, 64,114, 0,131, 18,164,253, 20, 52,235, 79,182,135, 88,113, 14,180,226, 66,219, -113,181, 5,161,104, 80,168, 32,142,132, 17,174, 31,149,119,252,232, 77, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89, -161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, - 10, 21,154, 20, 43, 52, 40, 86,104, 80,175,158,111,198,119,138,239,252,141,206,126, 86, 29,111, 24,202,238, 24,116, 46, 52,243, - 31,107,200,178,123, 31, 6,221, 57,230,223,142, 92,175,118,150,153,181,165,219, 69,180,182, 68,137, 51,139,104,134,250,157, 79, -187,186, 83, 42,139, 12, 20,158,209,229,126,224,203, 43, 75,177,169,161,230, 72,136, 6, 65, 17, 32, 59,189,222, 60, 0, 85, 9, -222, 29,220, 22,179,187,212, 70, 73, 35,192,162, 59,134,174, 29, 31, 36,206,168,198, 29, 99,243,239,198,248, 90, 47,156,117,196, - 92,217,198,217, 99,126, 95,124,171,224,156,150,229,131, 25,186, 74,228, 11,119, 20, 99,119,124,149,155,131,246,183, 21,111,147, - 57,139,131,177,154,182, 74,147, 30, 51, 11,145, 17,167,150,157,128, 54,105,172,186,155,103,190,151, 68,243, 68,246,120,211, 57, -138, 91,164,188,181,137,171, 16, 11, 87, 80, 4,144, 28, 64,199, 26,175, 99,110, 34, 10,214,184, 29, 45, 7, 2,168,167,219,151, -101, 77,220,111,115,252, 65, 57, 58,227,150,225,151,190,121,243,117,103,194,177, 14, 8,231,236,243, 4,205, 44, 88, 45,247, 5, -187,229,121, 22, 28,168,210,241,219, 84,201,249, 38, 51, 10,229,119, 90,229,202,126, 50,222,109,134, 94,144,150,252, 38,202,124, - 50, 69, 93,244,123, 53,131, 89, 43, 45,237,139,221, 52, 77,115, 75,154,224,208,229, 15,112, 12,121, 13,192, 2,138, 64, 85, 57, -212,136,205,196,164,180,189,232, 26,226, 10, 16,169,144,196, 99, 76, 12,223, 34,243,115,205, 22,220, 42, 23, 61, 69,243,125,119, -205, 88,202, 60,141, 95,112, 92, 34,221,197,183, 88,124, 37,112,197,163,192,180, 73,203, 47,247,179, 22,209,224, 11,147, 23,224, -255, 0,142,185, 14,182, 91,112,148, 37, 37, 0,161,169,118,144,109,187, 91,158,108,205,176,102,155,144,231, 23,183,196, 14, 87, - 6, 53,170,229,210, 90,136,128,168,199, 60, 75, 82, 58,105,192,241, 53,170,177, 2, 20, 76, 20,156, 51, 90, 78,200, 57,127,241, - 86,179, 53,200,183, 59,174, 85,230,106,213,202,234,111,146, 98,230,188,121, 3,138,242,107,254, 45,110, 17,101, 7,236,215, 12, - 94, 67, 24,223,247,102,213, 21,178,211, 44, 50,244, 89,207, 25, 41, 89, 73, 72,241, 1, 83,144,237,188,189, 47,134,214,178, 3, - 15,115, 75,203,216, 28,112, 71, 7,130,253,110, 57,146, 11, 70,148,234,160,233,174,198,162, 75,181, 98,161, 15,161, 48, 65,235, -198,186, 69,143,121, 89,231, 23,121,139,158, 50, 87,114,120, 28,189,155,216, 60,187,121,126,201,113,156,191,204,135, 3,217,249, - 10,243,151,103, 50, 31,228, 75,136,178,217, 46, 42, 54, 91,101,129, 86,233, 38, 51, 14,150, 35,184, 80, 28,142,167, 80, 54, 39, -126, 30,110, 96,180, 22,214,241,232, 49, 70,233,229, 5,176,202,230, 6,181, 34, 26,156, 59,197,202, 20,133, 35, 34,153,225,100, -219, 73, 53,184,174,162, 26,220, 92,208, 84,247,176, 25, 39,248, 81, 30, 60,230, 14,113,193,185,123,131, 50, 65,121,243,135,150, -121,120,139, 19, 15,143,230, 70, 79, 37,113, 54, 85,125,190, 90,185,158,247,136,114, 27,119, 11,116, 91,113,199,209,122,114, 34, - 47,200,177,123,202, 45,209,156,131, 30, 71,187,165,165,163,196, 90, 84,171,221,182,210,238,218,118,105,182,109,202,187,193,208, -246, 0, 99, 18, 68,132,157, 90, 87, 78,180,212, 67,220, 21, 65, 74, 40,230,145,143,105, 87,150, 97,169, 65,205, 29,212,185,166, - 88, 81, 60, 63, 32,243,109,148,224,215,188,246,245,150,249,140,181,100,252,123,198,222, 77,178,124, 58,194,152,115,236,208,178, - 12,175, 53,207,114,120,153,114, 46,214,199, 32, 3,119, 83,118, 8,112,209, 50, 35,224,165,150,212, 22,180, 36,148, 44, 46,230, - 29,182,222,102,194,198, 64, 88,247,220, 7, 28, 9, 13,108, 76, 49,233,114,247,123,196,161, 25,156, 1,204, 81, 49,211, 61,165, -196,185, 64,106,118,151, 21, 81,199, 10,134,213,148,115,170,114,172, 51, 62,187, 90,252,209,223,249,126,225,229,219, 56,193,188, -192,223,174,118, 76,231, 22,199,184,111, 53,200,185, 75,141,126,241, 69,129,235, 93,130, 66,204, 11,125,190, 12,135, 23, 27, 28, - 74,220,122, 26, 3,193,196,111, 47,139, 63,135,180,240,223, 11, 77,184,132, 78,215, 68, 1,141,198, 70,136,102, 77, 74,225,222, - 36,140,100, 64, 29,130, 28,169,157,114, 40,113,214, 93,164,135,103,129,212,220,144,101,217,194,153,249, 53,187,157,178,108, 75, -147, 50,156,237, 94, 96,243,123,219,158, 89, 60,220,113,127, 20, 61,112,226,140,165,219, 78,114,245,135, 37,106,229, 98,182,222, -173, 55,123, 76,235,139,137,149,106,146,185, 17,217,191,168,174, 66, 99,182,135, 84,234,155, 82, 21, 42, 7,218, 65, 36, 81,195, -224,177,190, 60, 15,122, 61,138,213, 98, 56,181,205,112, 24, 56, 33, 49,224,221, 68,132, 85,164, 56, 72,224,226,237, 71,186,224, - 48, 56,227,128, 32,143,159,162,172, 14,121,152,121,184,113,185,108, 98,185, 63,154,152, 60,179, 51, 53,228,203, 87,152, 59, 81, -196,110,140,113,230, 1,133,191,156,194,139,136,200,195,100,200,180,174,196, 28, 93,157,198,189,213,219, 76,137, 5,232,190,242, -236,205,202, 66,148,154,107, 59,109,180, 33,145,182,230, 16,198, 24,142,166,235,115,188, 50,100, 18, 0,237, 94,242,168,120,106, - 59, 72,110,117, 34, 71,205,192,191, 82,157, 88, 20, 1,112, 76, 19, 46,133,193, 86,186,121,229, 82, 62,119,102,123,204,102, 27, -152,222,115,252,134,201,130,249,138,187,227,220, 97,121,228,121,178,175, 55,233,220,123, 47, 19,196, 46,169, 45,220,166, 36, 63, -115,142,221,234,229,113,109,167,202,150, 19,180,180, 21,244, 84, 24, 46, 97,116, 50,252, 52,177, 53,141,115,224, 5,225,128, 0, - 31,174, 70,228, 48, 7, 72,106,143, 79, 26,181,180,212,221,109,113, 36, 7, 96,189, 8, 15,206,181, 55,114,142, 75, 51, 23,196, -102,204,182,193,188, 92,238,114, 94,141, 10, 45,187, 30,136, 39, 95,228, 48,226,194,166, 42, 27, 74,113,164,169,230, 96,165,231, - 27, 42, 88, 1, 73, 21,244, 28,232, 11,133, 75,168, 23,142,177,183, 57,119, 37,189,100,153,133,153,171,118, 17,129,221,239,120, - 86, 15,198,147,217, 68,168,176, 62,128, 51, 58,227,114, 65, 83,172, 75,153,115, 98, 83,136,223, 85,165, 17,214, 82,149,169, 79, -190, 76,194,225,107,238,251,221, 61, 29,127, 85, 33, 53,224,114,169,133,188, 75,141,120,139, 27,114,223,133, 96, 24,157,133, 55, - 4,253,213,109,176,227,246, 40,150,161,122,153, 33, 59, 27, 97, 97, 8,111,196, 74,186,111, 42, 39,167,164,208, 22,238,111,102, -188, 58,165,123,156,122,201, 52, 81,194,200, 66, 53,160,118, 87, 1, 60,193,240,151,150, 91, 87, 42,228, 77,218,113, 75,222, 65, -114, 98, 67, 75,200,226,219,178,132, 91,120,230,223,151,164,169,115,155,181, 91,145, 9,192, 25,109,229,108, 37, 37, 21, 80, 81, - 0, 3,174,171,177, 27,169, 45,152,102,112, 94, 10, 9, 41,193,113, 69,244,118,227, 89,155,209, 16,144,232, 7,208, 80,124,223, - 77, 93,127,195,167,145,240,220, 91, 42,189,240, 94, 51,137,218,113, 40, 25, 12, 25,249,188, 72,150,167,164,190,210,110,182,228, -176,194,247,153, 14,188,166,204,184,232, 90,210,132,148,160,248, 43, 82, 82, 20, 86, 85,157,230,253,185,253,219,141, 90,128, 8, - 70, 1, 49,193, 17, 6, 38,167,237, 51,180, 44,104,156,123,107,176, 26,193,213,221, 81,143, 61,248, 87, 52,231,156,121,143, 88, -248,160, 73,151,105,126,237, 45, 25,213,150,223, 44, 66,184, 93, 33,173, 45, 24,117, 82,150,218, 92, 97,167, 18,233,121,186,245, - 37, 6,132, 36,235,206,223,220,119, 42,243, 31, 55,237,144, 90,108, 61,230, 25, 15,142,192,224,199, 61,168, 52, 98, 72, 5,128, -234,212,213,196,150,148, 41, 94,142,254,219,121,175,150,249, 63,116,158,243,127,238,200, 35, 30, 3,203, 75,218,199, 41,215,128, - 4,135,144, 91,165,201,128, 14, 10, 22,163,143, 42,222, 72,109,216, 40,135,154,114, 51, 44, 92,242,170, 33,232,145, 10,119,196, -179,149, 15,154,208, 87,206, 95, 94,174, 17,234, 77, 7, 83, 15,201,111,237,234,211,203,182,182,255, 0,112,211, 54,224, 66,131, -155, 33, 81,147, 23, 55,116,188,142,166,160,196,204,243,183,251,137,187,243, 25,206,219,246,237, 80,237,192,161, 25, 62,100, 57, -189, 50,111, 67, 1,235,114,156, 5, 7,243,103,197, 57, 31, 0,115,188,220,138,198,153, 80, 44,151,251,227,185,174, 17,123,101, -170, 49, 26, 91,143,123,195,177,146,163, 84,239,133, 33, 84,218,127, 96,164,210,135, 94, 69,243,195,147,111,124,172,230,135,110, - 54,154,153, 20,178,153,224,144, 12, 3,245,106,115, 87, 37, 99,142, 71, 54,145,211, 94,192,242, 47,156,236,124,214,229,102,237, -215,122, 95, 44, 81, 11,121,227, 39, 18,205, 58, 90,244,205, 30,209,152,201,192,227,133, 55,121,182,203,248,126,121,235, 77,135, - 36,243,129,196,185, 13,151,151, 49,251, 52, 75, 27,156,141,199,178,164, 64,147,124,183, 65,169,109,167,151, 13,246,157,113, 41, - 82,149,177, 15,180,189,149, 33, 43,161,215,178, 60,166,255, 0,253, 1, 28,181,102, 32,188, 50, 65, 38,110, 13, 96,150, 39, 57, - 49,115, 71,188,194,120,132, 78,179, 94, 43,243,131,255, 0,243,188,115, 93,231,196, 90, 54, 43,134,100,210,100, 48,204,214,174, - 13,113, 29,215,129,192,170,245, 10, 68,129,145,121,112,242,239,197, 25, 15, 5,249, 50,227, 57,120, 22, 47,151,185, 76,223, 53, -190, 56,167,114,156,166, 57, 71,134,182,212,227,143,201,146,224,117,191,163, 43,121,222,136,220,132,161, 33, 68,235,141,127,113, - 31,222, 61,223,155, 48, 73, 99,102,101,209, 35,116, 62, 89, 0,105,208,115,100,113,180,163, 67,190,209, 56,144,161, 56,215,106, -254,219,255, 0,178,219, 47, 39,231,142,250,236, 68, 31, 27,181,178, 40,201,112,241, 6, 79,146, 71, 5,113,111,217, 3, 0, 80, -175, 10,181, 30, 72,188,187,222,115, 76, 87,147,178, 57,199,238,120,217,166, 11,147, 96, 88,244,249, 49,148,239,130,221,250, 43, -177,220,153,178,168,241, 16, 29, 90, 54,128,161, 93,135,168, 4, 29,104, 63,179,110, 70,155, 97,215,204,215, 76, 65, 33,107, 33, - 7, 2, 88,215, 7, 61,221,142,112, 13,105,255, 0, 73, 57, 34,208,127,122, 60,245, 15, 48, 6,114,189,171,212,198, 28,249,156, - 49, 13,123,152, 88,198,254,179, 90,231, 57,195,253, 64,102,169, 72,184, 47,240, 89,252, 65, 60,157,217,242, 52,249, 83,243,231, -108,194,174, 57,116,173,153, 85,165,252, 24,183,140, 93, 99, 70, 64, 68,105, 77,179, 33,203,168,106, 83, 33, 78, 39,196, 13, 3, -180,129,184, 1, 77,125, 88,222,252,225,217,121,178, 70,157,211,106, 47, 12, 29,210, 31,222, 29, 32,144, 26,173, 56, 96,181,242, - 63, 96,242, 71,126,228,216,158,221,167,120, 17,185,231,190, 12,125,194,131, 2, 1, 46, 71, 12,113, 78,140,105,239,199,159,128, -142, 68,199, 20,249,156,145,202,124,244,188,243,204,199,153, 75, 27,182,171,175, 46, 95,108,207,220,226,216,205,202,235, 18,239, -114,115,194,118, 95,189,205,122,229, 42, 40, 47,200,113,212,168,128, 0, 72, 27,130,160, 95,249,221,227, 94, 89, 27,123, 95, 14, -206,217,202, 34, 14, 0,184,134,150,183, 16, 16, 6,131,128, 0,250,112, 75, 29,187,200, 47, 2,202,248, 92,221,153,111,174,219, -165,211, 57,164,134,130,224,247, 32, 37, 92, 92, 70, 36,145,195, 1,138,137,125,252, 3, 47, 31,252, 22,242,220,190, 62,231, 86, -184,251,205, 79,150,166, 46, 86,235, 31, 45, 90,241,247, 13,135, 44,180, 46,247,113,189,219,218,147, 4,202, 91,145,156,183, 72, -184,184, 27,121, 43, 94,228,169,105, 90, 22,146,144,130,183,243,183,254,238,247,226,109,124, 75, 43,162, 9,136,187, 22,157, 13, - 99,145,201,142,160,208,161, 7, 4, 32,170,157,207,144,127,246, 86, 31, 11,119,225, 95,218, 2, 27, 48,110, 14, 26,220,246,130, -213, 81,164,184,161, 83,153, 4, 16,137, 97, 56, 15,200, 95,226, 56,199, 62, 96,188,185,230,103,207, 35,185, 54, 61,129,198,118, -222,158, 58,227, 92, 94, 54, 55,139,101,246,215,212,218,220, 98,237, 29, 81, 24,132,242, 94,113,148, 23, 92, 49, 20,245, 18, 3, -110,182,125,161,158,223,121,207, 97,146,198, 75, 61,183,107, 12,115,202,248,146, 56,185,205, 61, 45,196,156, 49, 78,242,116,131, - 90,110, 94,228, 94, 99,143,112,138,247,117,221,203,219, 24, 35,195,137,161,173,120, 60, 30, 8, 3, 18, 2,157, 37,221, 14, 25, -212,197,228,223,240,217,201,188,172,249,207,243, 97,230,110,119, 36, 90,114,203, 39,153, 12,171, 41,201, 96, 99, 80,177,231, 45, - 18,177, 84,228,119,217,151,132,176,227,235,148,250,100,248, 41,148, 26,220,148, 38,164,110,160,236,213,127, 55,115,251, 57,155, -107,176,219,155, 9, 97,182, 99, 90, 93,169,117, 35, 3, 85, 16, 38, 75,153,171, 46, 75,242,221,252,167,187,238, 59,155,167, 15, - 23,111,115,131, 67, 83, 74,188,189, 9, 82,185,166, 66,152,188,191,248, 74,142, 98,252, 66,243, 79, 55, 89,134,115,104,188,241, -127, 35,241,132,238, 47,202,248,161,118, 55,163, 93, 30,180, 93,113,164,227,210, 20,155,154,101,237, 73, 41,171,201, 33,144, 82, -105, 67, 81, 93, 78,176,243, 61,219,102,195, 22,211, 4, 69,179, 71, 40,145,178,234, 8, 8,126,177,221, 79, 70,117, 95,184,249, - 74,205,219,152,165,222,110, 37, 14,134, 88, 76, 78,139, 73, 82, 29, 31,134,123,203,233,202,169,255, 0, 29,126, 15,191,136, 87, -149, 25,121,110, 1,228,243,207,219,152, 31, 5,229,247,169, 87, 23,109, 55,124, 88, 75,201,109, 40,152, 3, 74,121,148,150,223, -138,137, 98, 58, 82,149, 72,140,182, 10,202, 65, 33, 36, 10,106,247, 47, 54,118, 78,101,209,113,186,237, 94, 37,203, 26, 2,135, - 35, 74,112, 57, 29, 43,192,234, 74,199,237,126, 77,111,252,171,174,219,103,222, 60, 43, 71,184,157, 46, 98,184, 47, 17,152,212, -156, 70,149,165, 31, 47,255, 0,254, 31,136,152, 86, 59,230,115,143,249,159,153,221,228,108, 83,204, 14, 63,106,139,110,190,193, -176,155,102,101,137,101, 56,253,193,235,148, 27,202,223,145, 42, 99, 82,164, 34, 67,128,186, 10, 64, 88, 43, 73, 52, 89,211, 27, -239,158,114,223,205,101,113,105,108, 34,125,185, 42, 11,149,174,107,154, 26, 88,128, 2, 2, 12, 58, 48,232,167,249,127,251,124, -135,110,130,254,218,242,232,205, 29,203, 64, 4, 55, 75,216,230,184,185,175, 82, 72, 37, 78, 61, 56,142, 52,131,102,252, 43,127, - 18,174, 31,227, 38,184, 35, 21,252, 68,172, 56, 95,151, 75, 3,233, 84, 59,220, 92, 91,238, 12,227, 30,178,166, 72,144, 24, 98, -232,165,166, 92, 38,131,166,129, 8,185, 37, 52, 59, 64, 8, 59,116,237,199,153, 92,189,186,221, 27,233, 54,114,251,183,102, 53, - 43, 28, 81, 20,181, 16,148,255, 0, 66,241,207, 26,102,219,202,190,101,217,237, 6,223, 22,248, 35,178,102, 68, 51, 75,218,213, - 84, 14, 85, 1,127,214, 7, 12,176,171, 61,230,195,240,142,228,111, 50, 25,135,146,220,229,254,126,110,101,239,202,236, 91, 83, - 57, 61,223, 45,197,145,112,201, 57, 54, 92, 11,181,190,230,185,143,191, 9,232, 81,163,186,240,132, 80,104,201,237, 4,214,134, -185,206, 87,243, 62, 46, 93,182,220, 45,197,160, 2,233, 80, 49,200,216,193,107,154,128, 16, 73, 1,122,107, 81,205,190, 82,205, -204,247, 91,101,203,175, 9, 54,122,117, 23,181, 93, 33, 15,107,148,144, 90, 1, 58,122, 43,186,182,246, 23, 26, 12, 72,235,166, -246, 35,180,210,169,217,185, 0, 3,174, 65, 93,178,190,127,191, 28, 31, 59,121, 70, 47,141,227, 62, 64, 60,184,170, 69,251,204, - 95,154, 4, 68,199,178, 88,214, 7,247, 93, 49, 78, 53,201, 28, 49, 61,204,169, 36, 38, 60,140,145, 91,216, 42, 90,168,220, 68, -190,226,246, 5,180,230,187,167,147,156,161, 20,239,126,253,184,163,109, 45, 85,192,156,156,246,226,189, 97,153,225,155,244,128, -168, 69,121,239,207, 14,117,154, 8,227,229,221,173, 93,123,118,141,112,110,109,141,197, 19,168,201,136,199, 38, 7, 18,138, 13, -116, 23,240,222,242, 91,139,249, 41,242,229,136,113,157,169, 12, 77,201, 28,103,239,252,247, 36, 67, 37,167,114,140,230,234,219, -126,253, 46,135,218, 75, 77,236, 68,120,200, 61, 82,203,109,131, 85,110, 81,231, 92,243,205,179,115,166,227, 37,236,152, 55,221, - 99,127,202,193,238,142,222, 46,233,113, 60, 48,174,157,229,247, 38, 67,200,155,100, 86, 17, 33,120,239, 72,239,243,200,125,227, -217,193,163,131, 64,226,166,186, 12,163,180, 21, 30,192, 9,249, 53,144,173,181,124, 60,242,111, 54,121,183,231,255, 0, 60,177, - 60,211,121,157,252, 57,124,223,242, 87, 31,113,147,207,181,192, 62, 95, 35,241,134, 79, 97,198, 48,102, 99,200, 75,145, 36,220, -140,140,114,106, 39,201, 37,164, 73,150, 82,210, 67,207,134,247,125, 3, 45,177,175, 96,218,237, 59, 78,203,178, 29,171,109,222, - 44,226,150, 95,223, 76,100,140,185,248, 98, 26,146, 13, 35,128,196,163, 85, 59,206, 46,175, 18, 94,111, 27,206,253,191,141,227, -117,217, 47,166,134, 47,220, 64, 34,145,173,102, 56, 23, 44,110,212,126,211,176, 26,156,139,221,104,109, 55, 63, 18,191, 60,220, -165,230, 11,151, 60,135,228, 89, 79,145,206,115,242,247, 59,132,121, 31, 35,190,226,216,167, 32,219,238,113,238,252,199, 58,227, -117,195, 36,174, 5,149, 50,177,251, 99,142, 60,195,150,134, 89, 80,101,183,142,233, 45,251, 32,144, 21, 39,203,158, 74,179,216, -172,183, 72, 96,220,173,238, 27, 52, 65,174,115, 11, 72,136, 6,202, 53, 61, 30,228, 7, 81, 56,145,131, 78, 61, 17,124,208,231, -203,238, 97,191,218,102,159,106,185,182,116, 19, 57,205,100,129,192,204, 75,161, 58, 88,177,181, 72,210, 6, 1,216,184, 97,210, - 15,153, 43, 92,239, 62,191,138,159,148,216, 60,225,197,249,183, 12, 89,185,155,142,184,233,119,174, 41,205, 23, 38,215,150, 89, -113,108, 90, 70, 72,100, 91,223, 83,177, 45,210,227,253,232,237,165,250, 43,193,109, 97, 46,238, 65, 7,106,180,158, 94,185,111, - 34,242,165,251,172, 39,100,206,130, 71,134,200,196, 45, 46,112,141, 28, 49,112, 58,117, 14, 36, 40,199,136,165,115, 45,171,188, -194,231, 29,185,155,141,188,144, 50,120,152, 93, 19,212, 60, 53,166, 66, 90, 84, 52,141, 69,135,128, 40,229, 28, 13,118,239,241, - 20,252, 41,124,156,181,228, 79,154,242,156, 3,134,248,247,139,243,174, 22,226,108,179,148,177, 92,199, 11,198,227, 99,151,167, -159,227,203,115,215, 71, 97,207,145, 21, 13,187,117, 69,198, 44, 87, 35, 31,124, 83,132, 41, 97,192, 66,210, 21,174, 61,229,231, -153, 59,195,119,171,102, 92, 92,203, 44,115, 74,216,220,215,184,184,119,220, 26,173, 7, 6,233, 36, 30,234,100,153, 87,110,243, - 55,202,205,145,251, 13,212,150,214,145, 67, 44, 16,190, 70, 61,141, 13,119,236,218, 92,142, 33, 11,131,128, 35,188,185,174, 98, -166, 79,192,179,154,243, 46,100,242, 1,198, 74,206,110, 82,175, 87,140, 6,227,147,241,196,107,196,233, 10,147, 54,125,135, 20, -150,164, 91, 3,170, 87, 82, 98, 91,221,102, 40, 36,146, 82,216, 36,146, 78,170,252,230,218, 33,217,249,130,225,176, 0, 26,240, -217, 16,100, 11,135,123,214,229,119,166,173,252,140,222,166,222,249,110,217,211,184,185,241,151, 70,167, 50,214, 30,234,246, 52, -134,250, 43,178, 58,229,149,215,171, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, - 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89, -161, 66,179, 66,133, 87,159, 48,190, 99,241, 63, 45,214,188, 90,251,155, 89,114, 41,246, 44,162,102,105,107,106,231, 98, 97,153, - 72,183,221,241, 44, 94,247,148,181, 17,214,214,235,110,173,219,180,123, 12,136,144,146,210, 84, 86,250,155, 65,166,240,117,117, -178,236,114,111,142,123, 34,115, 67,154, 26, 80,241, 14,123, 88,189,141, 46, 4,175, 5, 60, 42, 61,197,200,182, 0,184, 96, 87, -216, 9,246,165, 85, 25,255, 0,138,111, 6, 91,236,151, 60,149,204, 63,147, 31,176,194,198,219,189,192,155, 14,202,196,185,119, -219,171, 48,120,218,124,235, 52, 88, 77,201, 84,213, 79,181,179,201,144,196,166, 20,208, 40, 84, 89,160,253, 79,181,162,103,151, -247,111,120,143, 92,122,139,144,226,112, 11, 48, 14, 37, 19, 75,188, 18,133,113,212,222,154,136,119, 88,192, 84, 40,159,241,195, -183,189,236, 52,185, 39,241, 46,225,139,125,241,139,101,207, 22,206,226,218,111, 25,221,191, 13,196, 50,166, 34,195,184,216,178, -251,114,179, 12,175, 16,185, 95, 33,169,137, 75,116,192,179, 47, 16,153,116,148,230,202,136, 74, 67,193, 39,218, 74, 89,111, 34, -221, 61,154,154,246, 40, 97,115,155,136, 45, 62, 27, 36, 13, 42, 61,231,120,129,160,127,153, 69, 25,220,216, 10, 16, 81, 80, 30, -156, 72, 94,192,139,217, 75,153, 55,155,156,198,241,102,242,101,155,112,247, 28,204,201,108,254,102,115, 76,186, 15,247, 46,243, - 54, 5,155, 36,185,226, 48, 48,220,166,255, 0,110,151, 26,123,243, 81,110,132, 29, 93,162, 52,229, 56,165, 56, 85, 28,169, 8, - 66,157, 82, 70,154,131,150,226,137,215,177, 92,202, 26,232, 26,211,168, 2, 64,113,145,141, 32,128, 20,251,197,188, 59,216,146, -148,167,222, 56,136,220,198,174,162,112,234, 66,126,133,236,170,177, 96,252, 92,236, 63,122,114, 34,239,156,119,123,121,182,242, -137, 76, 96,216,140,137,214,188, 66,235, 98,178,224,184, 86, 25,117,202,160,220,110,115,238, 6,223,114,185, 49,147,228,139,135, - 5,136,100,248,201, 41, 85, 80,132,248,138,208, 77,229,187,244,199,162, 65,238,247,156,142,112, 37,210, 72,214, 16, 0, 80,210, -198, 43,137,203,172,225, 81, 27,188, 5, 42, 56,224, 50,200, 2,113,233, 83,133, 76,109,254, 39,248, 90,241,248,185,211,156, 37, -202,113,248,235, 34,191,114,222, 23,199,249, 27,211,172,105,187,230,249,231, 20,203, 48,205,181,187, 71,222, 94,247,111, 77,218, - 64, 44,197,126, 97,111,107,137, 80,121, 45,163,107,138,172, 60,131, 46,179, 15,143, 31,136,208,199, 56, 35,145,173,120, 85,212, -136,116,140, 72, 11,134, 74,112,167,191,154,181, 53,105, 58, 74,129,150, 36,117,117,211, 2,249,248,157, 94,184,167,145,121,175, - 7,230, 94, 31,153,110,191, 97,153, 59,207,227,248, 77,159, 47,177, 34,229,105,193,177,236, 51, 9,190, 79,109,203,156,139,139, -112,239,183, 75,132,252,168, 46,221, 10, 26, 82, 84,130, 91, 90,144,166,138,151, 50, 46, 66,102,227, 4, 18,218,204, 11, 92,220, - 92, 90,228, 46, 50, 72,209,221, 1, 90,208, 25,222,113,227,136, 85,193,183,110,134, 39, 57,175,110, 32,228,163, 36, 7, 62, 39, - 28, 5, 88,203,103,158,235, 45,247,143, 51, 62, 78,177,240,215, 37,203,197, 44,252,173,255, 0,192,236, 10,108,155,133,130, 11, -188,179,202, 82,243, 20, 97, 80,160,219, 35,155,178,230, 64,102, 77,209,230,214,169, 55, 38, 88, 8, 70,242, 82, 74, 0, 93, 36, -156,162,232,102,101,187,231,140, 60,199,226, 56, 35,142,134,120,126, 33, 36,233, 66, 64, 92, 26, 74,148,233,194, 72,191, 14,105, -120,105, 69, 65,150, 37, 83,167,167,166,163,249,127,137, 85,150, 5,219,147,241,153, 94, 94,249,109,204,167,132,237, 86,249, 92, -173,110,129,121,197,223,131,140,222,111,151,251,166, 57,106,183, 49, 37,219,220,117,220,156,188, 92, 32,199, 84, 71, 35,178, 81, -225,200, 74,222, 44,148, 45, 34,107,121, 21,239,108, 82, 11,136,244, 74, 78,130, 67,212,128,214,189,197, 52,148,210, 9, 85, 42, -173,193, 84, 83,103,115, 0,184,104, 42,220,242,195, 18, 7, 30, 63, 77, 91,110, 16,230,249,188,181,115,229, 92, 98,255, 0,199, -183,142, 54,205, 56,115, 48,178,225,185,134, 63,115,190, 91,242, 72,230,118, 67, 97,181,100,113, 29,137, 54,220,235,140,190,218, -237,183,152,229, 85, 9, 41, 94,228,208,210,167, 55,187,109, 35,110,108, 50, 50, 65, 35, 37,105,115, 72, 4, 96, 28,230, 21, 7, - 44, 90,125, 21, 50, 9,204,197,192,132, 45, 40,120,240, 7,233,164,111, 50, 89,131,184, 85,158,203,115, 74,228,219,152,158,213, -226,200,246, 72,133,184,220, 59, 34,167, 46, 10,192,113,196, 2,134, 21, 41, 12,173,180, 60,186, 80,110, 72, 80, 43, 0,181,180, -196,217,102, 26,242, 1,104,238, 28, 90,220, 42,154,113, 79, 53,163, 22,178, 95,114,156,138,241,154, 69,199,243,219,194,174,152, - 45,131, 21, 48,227, 77,186,217, 33, 50, 34,174,239, 57,233,237,174, 75, 9,184,184,208, 91, 1,146,159,103,169,170,247,210,238, -125,153,219,164,154,163, 32, 0, 49,207,209,233,250, 18,162,182,232, 91,132, 56,209, 76,247,204, 17,190,217,238, 12,224, 71, 34, -195,242,159,187,101, 49,104,203,114,188,193,236,145, 73,150,242, 3,126, 22,199,219,113, 17,140,166,202,227,238,105, 73, 3,196, - 42, 31, 72,150,212,149,183,151, 62, 4,137,158,117,134,144, 75, 81, 20,125, 61,156,114,164, 58,251,198, 5,163, 2,120,215, 60, -109,188,117,204,121, 6, 77, 51, 15,178,241, 86, 82,188,146,215, 37, 80,239,144,165,177,227,174,215, 49,190,139, 65, 16,196,189, -193, 42, 31, 61,213, 54,146, 58,133,117,214,241,219,148, 76,140, 72, 92,208,210, 20, 18, 83,213,198,168,133,187,203,139, 64, 36, -245, 87, 93,252,143,249, 91,189,240,204, 27,254,119,200,204, 33, 60,139,148,173,112,219,137,244, 42, 22, 75, 26, 20, 8, 64,240, - 86,234, 82, 93, 9, 66, 66, 55,168,165, 40, 5, 68,173,107, 58,231,220,203,189,183,112, 34, 40,138,176, 98, 78, 74,126,161, 87, -219,125,153,129, 92,236,254, 97,250,107,160,122,201,213,157,101, 43,208,245, 26, 20, 43, 52, 40, 83, 15,145,184,207, 11,229,108, -110, 86, 41,156,216,226, 94,237, 50, 65, 41, 75,233,219, 38, 27,244, 32, 61, 29,212,209,198, 28, 77,122, 45, 10, 7, 89,254,102, -229,109,191,156,109, 31, 99,185, 66,217, 97,119, 3,152, 61, 45, 35, 22,184,112,115, 72, 35,166,180, 60,177,205, 91,135, 38,221, -178,251,108,157,209, 76,222, 45,200,142,135, 2,161,205, 60, 90,224, 65,232,174,106,101,191,133,253,177,249,206, 61,134,114, 52, -219,108, 5,169, 74, 68, 43,205,165, 23, 87, 89, 73,236, 72,117, 15,197, 38,158,176,117,229, 45,231,251, 53,219,110,165, 46,177, -220, 37,133,135,236,190, 49, 42,118, 16,248,207,173,123,107,214,123, 39,247,163,185, 90, 68, 25,127,183, 69, 51,199,218,100,142, -137,123, 65,100,131,212,148,233,227,127,195,103, 16,199,238, 49,174, 57,190, 67, 35, 44, 49, 93, 67,169,132, 24, 16,109,174,169, - 6,163,123, 73, 91,138, 88,175,236,169,100, 30,240,117,166,228,239,237, 59, 97,229,233, 91, 61,252,178, 93,189,165, 67, 92, 3, - 35, 81,210,192, 92, 93,216, 92, 65,226, 13,102, 57,207,251,183,223,249,138, 23, 91,237,241, 71,102,199, 4, 46,105, 47,145, 14, -104,242, 26, 27,218, 26, 8,224, 69,116,146,193,143, 90,113,155,100,107, 69,154, 27, 48,160,197,105, 13, 52,203, 13,134,208, 18, -216, 0,116, 20, 2,128,107,212,112,194,203,118, 8,227, 1,173,104, 0, 0, 16, 0, 50, 0,112, 2,188,173, 52,207,184,121,146, - 71, 23, 57,196,146, 73, 82, 73,204,146,115, 38,150,180,229, 55, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 42,130, -121,182,227, 63, 52, 57, 87, 36,113, 12,254, 4,228, 43,238, 51,199,249, 99,172,241,231,152, 24,144,178,117, 89,228, 98,120, 69, -178,237,111,201, 27,200,241,244,110, 74,152,185,204,141,108,159,141, 56,236,112,167, 54, 92,153,124,141,176,130,147,179,229,189, -207,110,180,182,156, 94,196,215, 74,206,252, 61,213,212,242,215, 51, 67,250, 88, 11,155, 40, 7, 5,140,183,237,214, 23,154,118, -173,206,246,234,220,216, 76,230, 66,254,228,232,228, 45, 96,115,100,241, 35,232,121, 13,124, 36,140, 82, 86,187, 38, 87, 57,167, -240,247,226,163,117,186,243, 43, 23, 62, 73,229,232,146,239, 57,214, 51, 26, 58,177,156,150,199,101,196,114, 12, 46,127, 43, 99, - 55, 5,207,196,110,199, 61,122,225,143,174,197,199, 49,110, 49,100, 69, 94, 55,111,247,132, 56,182,212, 38, 72, 8,113,205,203, -119,174, 91,137,182,250, 97,136,129, 27,189,230,188,185,175, 22,242, 13, 50, 55,193, 13,126,185,203, 8, 34, 89, 52,160, 61,198, -168, 28,249,251, 23, 52,204,235,157,115,204, 11,164,104,238,185,129,142, 97,186,141,218,162,119,142, 92,194,203,112,246,150,152, - 98,212, 9, 29,247, 33, 47,190,116,225, 15, 58, 87, 60,131,204,111, 31,224, 80,249,199, 55,227, 76,139,137,177, 91,127, 25,100, - 92,131,204,214,214,162, 91,242,220, 78, 86, 28,252,107,125,149,149,229,211, 28,187, 34,121,183,220, 29,184, 78,191,218,160,202, - 10, 47, 54,169,115,217,146,132, 51, 7,101,223, 54,152,163,179,158,224,194,201,155, 43,140,141,100, 78,197,174, 18,130,231, 31, - 12,105, 69,104,107, 99,123,218,136, 67, 35, 45, 37,211,247,237,131,121,154, 75,219,123, 97, 60,144, 58, 22,136,221, 36,205, 64, -230,152,136,107, 7,138, 75,131,180,188,189,210,178, 55,174,160, 95, 35, 92, 3, 77,115, 6, 13,248,146,205,205,185,249,124,117, - 63,148,154,151,122,198,124,205,183,133,228, 49,121, 74,193,108,226,171,150, 37,127,193, 38,194,227, 75, 30, 45,102, 85,205,139, -141,135, 35,181,102,107,133, 38,109,218,100, 56,237,209, 15,168,206,117,183, 80,219,105,218, 55, 14, 95,142, 27, 81,112, 35, 64, -235,125,109,240,222,100, 14, 19, 3, 59,228,118,146,215,196,232,181, 6,177,174,113,197,163, 64, 32,146,189,235,109,230, 73,103, -188, 54,198, 85,115,110,116, 59,196,140, 68, 90,232, 28, 45,217, 27, 53, 7, 50,102,205,164,186, 71, 53,163, 7, 31, 16,130, 0, -181,222, 94,173,190,107,184, 99, 20,243, 64,206, 87,104,228, 30,106,251,142,225,103,201,124,184, 99,217,191, 36,218,175, 57, 86, -106,185, 24, 38, 60,253,206,210,111,147,167, 39,220, 88, 94,118, 46,113,219, 85,201,196, 6,145,237, 52, 12,127, 11,118,111,122, -159,109,222, 37,179, 49,186, 56,117, 2,217,220,198, 56, 53,159,182,120,107,180, 1,137,240,116, 19,160, 21, 57,247,150,181, 91, - 21,190,233,178, 67,124, 36,108,147,233,112,117,187, 95, 35, 75,159,251, 8,203,155,172,187,186, 60,125, 96,107, 33, 6, 93,212, -175,153,156, 59,202,239,227, 93,132,249,176,205,188,229, 75,242,179,136,231, 92,231,152,204,190,201,118,239,200, 57,214, 29,144, -218,177,197,223, 54, 52, 83,106,142,198,109, 20, 69, 76, 91,123, 98, 4, 97,189, 65,184,245,105, 52, 7, 94,135,220,121,167,146, -183, 13,170, 61,159,227,100,101,179, 19, 6, 50, 86,151,105,199,188, 76, 37, 85,221,227,210,236,107,204,187,103, 40,115,230,217, -187,203,190,124, 4,114, 93, 73,171, 25, 36,133,193,186,176,238, 1, 48, 68,111,112,116, 55, 1, 93, 50,192,185,235,255, 0,196, - 41,125,202,108, 88,246, 95,229,215,130,176,140, 90,235, 33, 86,203,174, 92,211,152,236,195,139, 71,150,218,219, 68,242,204,124, -226,230,251,162, 35,138, 75,138, 67,112,221, 36, 2, 3,107,249,167,158, 95,109,156,129,111, 11,159, 5,221,196,143, 1, 67, 82, - 65,169, 62,202,152, 90, 2,229,139,135,104,174,155,183,238,190, 99,220,204,200,238, 44,237,163,141,197, 11,214, 51,165,126,210, - 9,220, 74, 28, 80, 53,221,134,166, 63,193,227, 6,252, 79, 48,108,175,157, 17,231,175, 39,206,111,120,165,214,225,110, 86, 29, - 3,146,115,214, 57, 14,244,140,153,167,228,153,242,173, 50, 24,153, 60, 65,182,173,146,218, 83, 29, 46, 33,170,237, 44,180,144, - 22, 77, 87,155, 27,151, 45,223,182,215,249, 19, 24, 30, 1,214, 88,194,193,165, 6,144,224, 64, 87,170,226,132,244,147,133, 91, -249, 55,181,115, 78,220,251,179,204, 50, 61,204, 36,104, 18, 72, 36,118,165, 58,139, 72, 46,210,196, 76, 20, 15,242,129,141,119, -145,118,203,123,138, 43,114, 27, 11, 82,186,149, 41,176, 73,215, 24,174,235, 92, 40,252, 95, 60,158,115,223,152,158,116,252, 59, - 51, 78, 13,227, 95,239,126, 47,194, 60,173,149,100, 92,175,114, 99, 36,179, 99,255, 0,221,139, 53,202,241,130, 74,142,241, 98, -231,113,133, 34,110,248,246,105,170,219, 17,183, 84, 54, 80,128, 86,128,174,203,229,127, 53,216,114,237,134,237, 13,228,186, 31, - 60, 45,108, 99, 75,221,168,134, 76, 17, 90,210, 6, 46,111,188, 64,199,168,215, 13,243,111,147,183, 46,103,220,118,105,236, 97, -215, 29,188,238,116,167, 83, 27,165,165,240, 16, 81,206,105,118, 12,118, 13, 4,225,214, 21, 87,241, 77,252, 60,185,123,158,166, -112, 71,154,159, 41,183, 27,109,139,205, 63,150,247,162,185, 99,182, 92,100,179,110,139,155,227,240,101,139,140, 88,130, 68,159, -245, 70,223,129, 56,186,166,155,146, 82,195,168,125,230,222, 80, 27,116,199,150, 60,245,105,176,199,115,181,238,173, 46,177,185, - 29,226, 1, 37,142, 35, 73, 40, 49, 66, 17, 72, 87, 2,214,144, 51,167,252,216,242,246,247,152,165,181,221,246,119, 6,223,218, -158,232, 36, 0,246,131,168, 5, 56, 43, 74,160,114, 52,135, 56, 56,229, 84, 47,157, 57, 91,241,178,243,191,198, 18,188,163, 93, -252,164,226, 28, 5,101,205,147, 23, 30,229,142, 79, 85,197,112, 45,179,236, 17,220,108,190,203, 82, 30,186, 92, 76,120,146, 86, -223,250,202, 33, 55, 41,231, 81,236, 33, 65, 5, 97,123,125,150,207,146,249, 38,224,110,140,191,125,195,153,140,113,162,149,224, -163, 75, 85,195,129,113, 96, 7, 19,138, 38, 7,125,189,231,190,125,182, 59, 67,246,248,237,155, 39,118, 89,117, 32, 45,226, 1, - 46,114, 52,241, 13, 15,113, 24, 12, 21,123,251,228, 75,202,205,147,201,231,150,238, 58,224,235, 52,147,113,254,233, 90, 28, 23, -107,202,216,247,103,111,217, 37,221,247,103, 92,230,169, 27,150, 91, 18,103, 72,117, 77,182, 84,173,136,218,138,144,144,117,195, -121,183,152,228,230,205,198,109,194, 80,134, 71, 96, 63,202,208, 0,107,125, 13, 1, 79, 18,167,141,122, 7,147, 57, 94, 46, 77, -219, 32,219, 98, 42, 35,110, 46,203, 83,137, 46,115,189, 46, 37, 6, 40, 16,112,171,143,172,229,106, 43, 52, 40, 86,104, 80,172, -208,161, 89,161, 66,179, 66,133,102,133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133,102, -133, 10,205, 10, 21,154, 20, 43, 52, 40, 86,104, 80,172,208,161, 89,161, 66,179, 66,133, 70,124,167,195,252,125,205, 22,107, 6, - 63,200,246, 22,242, 27, 70, 51,156,225,188,141,104,134,235,238, 48,219, 57, 86, 7, 53,185,246,231,151,225,169, 62, 42, 18,251, -116,113,165,213, 14, 32,169, 11, 5, 42, 35, 83,246,253,206,109,173,206,124, 14,210, 92,199, 48,254,171,130, 31,208,115, 7, 26, -106, 88, 91, 56, 1,193, 80,131,233, 21, 21,219,252,154,249,116,182,203,197,165,199,227,200, 75, 56,111, 40,114,135, 48,216, 99, - 74,152,252,187,124,108,223,152, 99,205,139,124,117,113,220,113, 76,186,203,204, 78, 82, 25,140,164,150,218,216,215,134,148,248, -104,165,131,249,158,245,225,224,200,123,209,178, 51,146,233,140,130,220,122, 84, 98,115, 42, 87, 58,104, 89, 70, 19, 12,137, 62, -147,157, 36, 55,228,111,203, 67,120,214, 15,137,255, 0,240,252, 59,102,227,190, 32,228, 78, 12,197,219,145,121,153, 34, 84, 94, - 59,229, 70,153,106,245, 29,215,214,242,157,125,233, 41,104,148,201,112,151, 16, 86,225, 66,129,113, 85,112,243,101,249,124,146, -120,157,231,202,201, 29,128,247,217,238,148,224, 7, 70, 69, 2,229, 73,248, 24,144, 4,192, 52,129,216,115,163,151,239, 38,188, - 49,125,137,136, 67, 75,156,145,142,163,143,164, 99,178, 48, 39,240,206, 88,200,112,233,184, 74,177,140,101,236, 66, 50, 45, 47, -219,174, 17,221,183,182,187, 11,238, 48,251,108,169, 41,116,169, 74,112, 41, 74, 81, 41,135,153,238,161, 47, 63,179,118,181,213, -169,140,118,165,127,136,117, 2, 10,247,130,133,203,133, 27,172,152,228,204, 38, 72, 72, 68, 9,135,162,155, 54,191,195,255, 0, -203, 54, 56,226, 37,225,120,222, 99,199,215,150, 31,105,200,153, 63, 31,114,158, 75,133,101,209, 35,155, 21,159, 29,147, 24, 93, -109,215, 70, 46, 14, 51,112,183, 88, 96,170, 98, 29,117, 94, 43,237, 38, 82,235, 32,120,186,145, 39, 57, 95,207,132,174,107,219, -208,246, 49,205,247,156,240,116,150,144,160,185,200,131, 0,116,142,238, 20,145,183,196,223,116, 16,122, 65, 32,228, 7,208, 62, -124,233,102, 87,145,191, 45,179,176,155,103, 29,206,194,238,115,177, 27, 61,247,149, 50, 91,125,186,110, 99,119,151, 41,155,223, - 50,153,106,189,201, 51, 92,154,169,235,113,110, 77,113,200,238,169,226,182, 87,181,109,168, 45, 33, 65,166,243,101,243, 37, 51, -135,128,242, 24, 9, 13,110, 81,166,144,136,137,134, 33, 16,140, 14, 20,102,194, 34,221, 36, 96,164,230,120,231, 73,145,252,135, -240, 52, 59,157,203, 35,133, 47,153,160,230,151,171,133,202,125,235,144,224,121,129,205, 96,114, 45,229, 23,187,109,154,211, 58, - 44,171,227, 55,196, 92,159,141, 42, 38, 61,110,172,117,188, 80,218,152,109, 76,134,202, 19, 69,187,155,175, 28,208,194, 34, 44, - 0, 0,195, 20,101,129, 11,156, 8,110,148, 4, 23, 59, 20, 82,165, 86,136, 88, 70, 10,247,151,167, 81, 94, 3, 53,234, 20,190, -143, 37,188, 4,140, 90,245,132,139, 30, 83,253,214,190,204,201, 46,242,109, 3,145, 47,168,110, 38, 69,147,101, 13,230, 46, 93, -226,186,155,128,145, 26,225, 19, 33,105, 18, 98, 78,109,192,243, 52,218,133,132,146, 11, 39,154,111, 12,141,151, 83,117,128, 2, -232,110, 65,158, 30,147,130, 22,150, 96, 91,145,226, 41, 95, 3, 26, 22,161, 78,211,210,171,218,188,105,175,114,242, 47,194,144, -112,174, 95,178, 97,216,235,106,201,249,127, 0, 56,110, 79,127,228, 92,143, 33,206, 19,146,204,137,118,187,228, 17,110, 23,119, -197,234, 37,226, 76,148,222,175, 82, 36, 42, 91, 19,154,125, 63, 70,150,220, 74, 89,109, 41,144,206,109,186,124,176,190, 87,119, - 98,126,166,134, 6, 53, 59,173,105, 13, 26, 75, 64,210,208, 16,180,140,212, 98,105, 6,193,129,174, 13, 24,184, 33, 85, 60, 73, -199, 21,204,244,211,151,202,151,150,251,191,151,187, 87, 38, 74,202,243,217,156,137,155,114,206,126,214,119,147,222,164, 73,187, -205,143, 17, 86,235, 61,174,199, 10, 35, 50, 47,247,139,245,230, 87,133, 10,212,218,150,236,153,202,246,148, 82,218, 26,105, 45, -182,150, 57,135,124,110,242,232,132,113,134, 71, 27, 52,180,119,120,184,184,148,107, 90,209,139,178, 13,237, 36,169,165,218, 91, - 27,112,229, 42, 73, 94, 61, 9,196,147,195,166,173, 13,202,215,110,188, 68,114, 5,214, 12, 91,132, 39,169,226, 70,150,202, 95, -105, 68,118, 26, 40, 26, 17,220, 71, 81,221,170, 8,228,116, 71, 83, 73, 6,165, 16, 29,129,174,109,243,183,148,126, 65,123, 44, - 85,243,135,149,110,184, 99,119, 38,155,221,138, 93, 3, 73, 86, 45, 37,160,119,162, 27,175,220, 33, 36,197,121, 71,196, 75, 68, -168,161,101, 64, 81, 5, 32,108, 54,141,253,145, 71,162, 98,135,165, 9, 95, 87, 26,171,186,179,115,138,179, 26,105,113,127,146, -158, 68,188,229,144,103,115, 25,129,110,198, 45, 15,162,115,118,187, 91,145,247, 77,125,191,154,144, 25,157, 61, 69,117,236,117, - 78, 36, 32, 84,161, 27,232,177, 34,251,153, 34, 99, 63,100,117, 63,134, 4, 1,215,142,125, 84,136,108, 92, 79,124, 32,174,170, -195,133, 14,223, 29,168,144, 99, 51, 22, 51, 13, 50,195, 76,176,216,109, 8,105,132,132, 33, 61, 63,117, 9, 0,122,181,134,115, -203,202,146,166,173,192, 76,168,214,147, 71, 89,161, 66,185,251,255, 0, 53,124,143,255, 0, 5,194,191,171,167,127,105,107,209, -191,210, 45,179,241,103,251,204,252,186,224, 95,213, 45,203,240,225,251,175,255, 0,157,120,124,214,114, 63,252, 23, 10,254,174, -157,253,165,161,253, 34,219, 63, 22,127,188,207,203,164,159, 53, 55, 33,252, 56, 62,235,255, 0, 50,181, 62,107,121, 35,254, 11, -133,127, 86,207,254,210,209,255, 0, 72,118,191,197,159,239, 51,242,232,127, 85, 55, 47,195,131,238,191,243, 43, 63,230,183,145, -255, 0,224,184, 87,245,108,255, 0,237, 45, 15,233, 14,217,248,179,253,230,126, 93, 23,245, 83,114,252, 56, 62,235,255, 0, 50, -189,255, 0,154,222, 71,255, 0,130,225,127,213,179,191,180,180, 63,164, 59,103,226,207,247,153,249,116,127,213, 77,203,240,224, -251,175,252,202,243,254,107,121, 31,254, 9,133,255, 0, 86,206,254,210,208,254,144,237,159,139, 63,222,103,229,208,254,170,110, - 95,135, 7,221,127,230, 86,127,205,111, 36,127,193,112,175,234,217,223,218, 90, 31,210, 29,175,241,103,251,204,252,186, 47,234, -166,229,248,112,125,215,254,101,103,252,214,242, 71,252, 23, 10,254,173,157,253,165,165,127, 72, 54,191,197,159,239, 51,242,232, -127, 85, 55, 47,195,131,238,191,243, 43, 63,230,183,146, 63,224,184, 87,245,108,239,237, 45, 31,244,127,107,252, 89,254,243, 63, - 46,135,245, 87,114,252, 56, 62,235,255, 0, 50,179,254,107,121, 35,254, 11,133,127, 86,206,254,210,208,254,143,237,127,139, 63, -222,103,229,209,127, 85,119, 47,195,131,238,191,243, 43, 63,230,183,146, 63,224,184, 87,245,108,239,237, 45, 15,232,254,215,248, -179,253,230,126, 93, 31,245, 87,114,252, 40,126,235,255, 0, 50,188,255, 0,154,222, 72,255, 0,130,225, 95,213,179,255, 0,180, -180, 63,163,251, 95,226,207,247,153,249,116, 95,213, 93,203,240,224,251,175,252,202,207,249,173,228,131,254,229,194, 79,255, 0, -118,206,254,210,208, 62, 79,237,127,139, 63,222,103,229,208,254,170,238, 95,135, 7,221,127,230, 86,233,243, 79,200,170, 32,155, - 30, 16, 79,167,238,201,213,255, 0,222, 58, 65,242,135,107, 31,197,159,239, 51,242,233,109,243, 75,114, 63,195,135,238,191,243, - 40,227,126,103,185, 13,206,166,199,133,215,255, 0,102, 77,175,254,241,211, 47,242,155,108,111,241,103,251,204,252,186,144,223, - 51,119, 23,127, 14, 31,186,255, 0,249,209,228,249,148,228, 21, 82,182, 92, 55,119,254,204,154, 79,254,241,212,115,229,102,216, - 63,137, 63,222,103,229,211,195,204,141,196,255, 0, 14, 31,186,255, 0,249,209,232,126, 97,185, 38,115,201,143, 22,193,137, 58, -234,250, 4, 34,217, 52,147,255, 0,245, 13, 70,184,242,219,105,181,105,124,147, 76, 7,235, 51,242,234, 68, 30, 96,110,119, 14, -210,200,162, 39,245, 95,255, 0, 58,115, 57,202,188,184,212,114,250,241,156, 52, 81, 59,138, 62,237,150, 86, 7,193,247,134,179, -237,229,190, 95,123,244, 11,137,190,243, 63, 46,175,206,249,190, 6,107,240, 34,245, 59,254,116,203,149,230, 55,145, 98, 44,161, -220,127, 13,109, 73, 36, 81,118,169,128,212,127,247,128,214,162,223,202,253,166,224, 43,102,152,255, 0,185,159,151, 89,185,252, -196,220,237,202, 58, 40,129,253, 87,255, 0,206,146,156,243, 69,200,172,146, 81, 99,194, 18,122,245,251,178,104, 63,154,229,169, -236,242,139,107,119,241,103,251,204,252,186,128,255, 0, 52,119, 38,255, 0, 14, 31,186,255, 0,204,162,139,243, 95,201, 41, 52, - 22, 92, 35,227,182,207,254,211,212,134,249, 57,181, 31,226,220,125,230,126, 93, 70,119,155, 27,155,127,133, 7,221,127,230, 80, -127,243, 95,201, 43,232,171, 30, 14,125, 21,181,206, 63,255, 0,115,210,191,163,123, 87,226,220,125,230,126, 93, 32,121,181,185, -254, 20, 31,117,255, 0,153, 67,167,205, 95, 36,168, 83,238, 76, 34,158,143,187, 39, 83,255, 0,121,105,179,228,246,212, 63,139, -113,247,153,249,116,224,243, 95,115, 63,195,131,238,191,243, 43, 67,230,131,144, 82,173,255, 0,221,252, 19,119,239, 11, 84,218, -255, 0,239, 45, 36,121, 63,181, 31,226,220,125,230,126, 93, 47,250,169,185,126, 28, 31,117,255, 0,153, 94,171,205,119, 37, 39, -178,203,132,127, 86,207,254,211,210,199,147,187, 81,254, 45,199,222,103,229,210, 15,154,251,152,254, 20, 31,117,255, 0,153, 65, - 31, 54, 92,150, 63,220,152, 71,245,108,255, 0,237, 61, 44,121, 53,181, 31,226,220,125,230,126, 93, 50,239, 54,247, 54,255, 0, - 10, 15,186,255, 0,204,175, 7,155, 62, 75, 63,238, 76, 35,250,182,127,246,158,140,249, 53,181,126, 45,199,222,103,229,210, 63, -171,187,159,225, 65,247, 95,249,149,184,243, 99,201, 63,240, 92, 35,250,182,127,246,158,146,124,155,218,191, 22,227,239, 51,242, -232,127, 87,183, 63,194,131,238,191,243, 40, 79,249,174,228,131,254,229,194,127,171,103,127,105,105, 63,209,221,175,241,110, 62, -243, 63, 46,135,245,119,115,252, 40, 62,235,255, 0, 50,132, 30,106,249, 28,143,228,216, 87,245,108,239,237, 45, 32,249, 61,181, -254, 44,255, 0,121,159,151, 71,253, 93,220,255, 0, 10, 15,186,255, 0,204,173,191,230,175,145,191,224,184, 95,245,116,239,237, - 45, 15,232,246,215,248,179,253,230,126, 93, 15,234,238,231,248,112,125,215,254,101,122, 60,213,114, 49,255, 0,115, 97,117,255, - 0,217,211,191,180,180, 71,201,253,172,127, 22,127,188,207,203,161,253, 93,220,255, 0, 10, 15,186,255, 0,204,161, 7,154,126, - 69,239,179,225,127,213,211,191,180,116,131,229, 14,217,248,179,253,230,126, 93, 31,245,115,115,252, 40, 62,235,255, 0, 50,182, - 30,105,185, 22,191,201,176,207,234,233,223,218, 58, 31,210, 29,175,241,103,251,204,252,186, 31,213,205,207,240,160,251,175,252, -202,219,254,105, 57, 23,254, 13,134,127, 87,205,254,209,209,127, 72,182,207,197,159,239, 51,242,232,255, 0,171,155,159,225, 65, -247, 95,249,149,231,252,210,242, 39,125,155, 12,254,175,157,253,163,161,253, 34,219, 63, 22,127,188,207,203,164,255, 0, 87, 55, - 63,194,131,238,191,243, 40, 65,230,139,145, 15,251,159, 13,254,174,155,253,163,164,255, 0, 72,246,207,197,159,239, 51,242,232, -255, 0,171,155,159,225, 65,247, 95,249,149,176,243, 65,200,103,253,205,134,255, 0, 87,205,254,209,210, 79,148,155, 96,254, 44, -255, 0,121,159,151, 71,253, 92,220,255, 0, 10, 15,186,255, 0,204,161,147,230,119,144,143,109,159, 15,254,175,155,253,161,164, - 31, 41,182,193,252, 89,254,243, 63, 46,149,253, 91,220,191, 10, 15,186,255, 0,204,161, 7,153,190, 64, 63,238,140, 67,255, 0, - 1, 55,251, 67, 73, 62, 84,109,191,137, 63,222,103,229,209,143, 54,183, 47,195,131,238,191,243, 40, 81,230, 95, 62, 61,182,156, - 67,250,190,111,246,134,144,124,169,219,127, 18,127,188,207,203,163, 30,108,238, 71,248,112,125,215,254,101, 8, 60,202,231,167, -253,211,136,255, 0,224, 38, 15,255, 0,159,210, 79,149,123,119,226, 77,247,153,255, 0, 10, 87,245, 99,114,252, 56, 62,235,255, - 0, 50,132,255, 0,153, 44,243,254, 19,137,127,224, 38,127,183,233, 63,210,205,187,241, 38,251,204,255, 0,133, 31,245, 95,114, -252, 56, 62,235,255, 0, 50,176,121,146,207, 79,251,167, 18,255, 0,192, 76,255, 0,111,209,127, 75,118,239,196,155,239, 51,254, - 20, 63,170,251,143,225,193,247, 95,255, 0, 58,216,121,144,207, 59,237, 56,151,254, 6,103,251,126,139,250, 93,183,126, 36,223, -121,159,240,163,254,171,110, 63,135, 7,221,127,230, 86,195,204,134,118, 77, 62,234,196,255, 0,240, 51, 63,219,244, 95,210,237, -187,241, 38,251,204,255, 0,133, 31,245, 91,113,252, 56, 62,235,255, 0, 50,183,255, 0,152,220,239,254, 21,137,255, 0,224, 38, -127,183,232,191,165,251,119,226, 77,247,153,255, 0, 10, 63,234,174,227,248,112,253,215,255, 0,206,183, 79,152,188,236,255, 0, -186,177, 79,252, 12,207,246,253, 36,249, 99,183, 15,226, 77,247,153,255, 0, 10, 49,230,166,227,248,112,253,215,255, 0,206,135, - 79,152,124,225, 93,182,188, 87,255, 0, 3, 47,253,187, 77,159, 44,246,241,252, 73,190,243, 63,225, 78, 15, 52,183, 19,252, 56, -126,235,255, 0,231, 70, 19,230, 7, 54, 63,238,188, 95,175,162, 20,191,246,221, 52,124,182,176, 31,196,155,214,223,248, 83,173, -243, 59,112, 63,195,135,238,191,254,116, 97, 60,249,154, 30,219,102, 51,255, 0,130,149,254,219,166,207,151, 54, 3,248,146,250, -219,255, 0, 10,117,190,101,238, 7,248,112,253,215,127,206,141, 35,157,115, 37,118,219,113,175,138, 28,175,246,221, 50,239, 47, -108, 71,219,151,214,223,248, 83,236,243, 26,253,223, 98, 47, 83,191,231, 70,145,205,249,114,187,109,248,231,197, 18, 79,251,102, -154, 60,129,100, 62,220,190,182,255, 0,194,164,179,204, 11,215,125,136,189, 78,255, 0,157, 63,113, 94, 64,201,239,169,117,233, - 81, 44,204,176,217, 9, 30, 4,103,210,165, 40,255, 0,165, 37, 67, 88,238,101,217,173, 54, 93, 45,141,207, 46, 61, 36, 34,122, - 26, 43,160,242,173,253,206,248,215, 73, 48,104,104,195,186, 8,249,201,167,191,247,146, 90, 71,182,220, 90,143, 66, 20, 7,254, -147, 88,179, 47, 69,109,155,183,135,100,191, 47, 69, 1,253,233,156,165, 81,182, 34,158,180,161, 66,201,255, 0,210,105, 38, 99, - 82, 70,210,192, 21,196,251, 62,170, 51,247,245,201, 37, 37, 77, 67, 9, 35,175,176,189,223,250, 77, 23,140,105,159,129,136,228, - 92,190,143,170,132, 85,254, 88, 65, 41, 68, 85, 43,208, 16,163,215,255, 0,203,210,155, 41,113,166,254, 5,171,199,229,232,173, - 17,144,204,237,117,168,201, 7,176, 4, 42,191,254,126,157, 14, 83, 65,214, 13,224, 79,203,209, 67, 34,251, 41,192, 74, 91,143, - 78,239,101, 95,254,158,144,247,233, 56, 82, 13,147, 91,153, 52, 32,187, 79, 63,177, 23,255, 0,217,174,191,250, 77, 35,198, 52, - 95, 13, 31, 95,179,234,162, 15,223, 47,104, 39,194, 98,222,180,211,181, 77, 56, 15,254,151, 70, 37,169, 12,179,129,195, 18,239, -103,213, 68,255, 0,188, 57, 29,105,238,214,186, 82,181,240,156,255, 0,247,218, 95,136, 41,207,128,131,165,222,207,170,185,129, -238,107,244,126, 95, 46,189,169,227,138,241,119,129, 94,123,162,143,119,229,242,232,252, 97, 69,240,235, 94, 24, 74,253,223,203, -229,208, 19,138, 47,134,173,125,197, 95,186,127, 47,143, 74,248,138, 47,133,175, 68, 21, 1,243,127,203,250,116, 95, 16, 40,254, - 26,182, 76, 51, 95,155,250,180, 70,122, 31, 12,181,183,185, 31, 64,249,116,159, 30,129,182, 90, 12,195, 61,201,252,218, 88,159, -174,139,225,235,195, 12,142,239,205,253, 58, 87,143,215, 68,109,235,193, 19,175,103,230,209,252, 69, 23,195, 80,158,231, 95,217, -166,135,143,215, 71,240,233, 90,152, 68,254,206,143,199,162,248,106,221, 48,127,135,252,186, 35,113, 70, 45,169, 65,152, 3,189, - 63,151,203,168,210, 92, 84,134, 91, 83,219, 31,198, 30,185, 60,132, 37,162, 80, 84, 55, 31, 87,203,172,214,241,189,178,193,132, -147,141, 95,237,155, 59,175, 28, 0, 21, 63,218,184,222,217, 21, 13,173,200,233,121, 68, 2, 67,130,191,175, 92,115,115,231,169, -229, 36, 53,201,217, 93, 95,109,228,184, 88, 1,112, 90,121,194,197,236,214,233, 9,151, 30, 11, 76, 60,148,211,114, 19,215,244, -235, 37,119,205, 23, 55,108, 49,190, 66, 91, 90,171, 94, 88,130,221,225,236, 96, 14,161,103,173, 7,125, 69, 1, 20,165, 59,181, - 85,109, 43,156, 85,107, 69, 37,168, 99, 18,163, 12,131, 26,181, 92,227, 63,226, 36, 54,250,129, 40,113, 3,218, 7,229,215, 71, -216,121,150,226,198, 70,161, 86,244, 87, 61,223,121,102, 27,214, 59, 4, 61, 53, 94,175,118, 47,112,125, 77, 87,122,122,209, 93, -159,175, 93,203,105,221,190, 53,154,178,174, 37,186,109, 63, 4,253, 52,211,122, 0,175,103,235,253,122,208, 50,230,179,242, 90, -208, 41,134, 18,123, 52,179, 58,211, 34,217, 40,198, 71,204,126, 88,240, 38,172,150,174, 81, 95, 32, 96, 55, 73, 81,155, 66,178, - 68, 88,223,200,113, 27,188,148,116, 90,219,149, 17, 18,125,212,147,243,154,125,180, 20,247, 21, 39,218, 60,127,153,183,190, 99, -217,174, 30,232, 60, 23,194, 73,210,163, 20,224, 15,121,165, 71,167,166,187, 63, 41,114,142,205,204,118,237,253,231,140, 0, 15, - 1,216,175, 74, 16,112, 60, 8,236,206,145, 91,231, 15, 39, 55,249,140, 90,241, 62,121,199, 29,186,201,115,194,139, 14,249,118, -110,198,252,149,168, 80, 37, 8,150,203, 5, 71,119,112, 61,117,147,103,154, 27,245,171,150,123,104,156,209,154, 7, 15,104,115, -147,213, 90,233,252,154,178,115, 22, 51, 59,122, 9, 66, 63,233, 31, 61, 45, 92,162,196,130, 82,181,205,136,184,206,145,238,211, - 82,250, 12, 73, 40, 89,162, 74, 28, 10, 45,157,221,195,117,117,208, 57,123,205,109,191,119, 70, 76,176,201,208,239,119,208,225, -135,222, 13,174,109,191,121, 93,127,181, 43,162, 2,102,127,167,222, 29,173, 56,253,213,162,138,137,215,176,252, 98,159,175, 93, - 50, 59,145, 32, 14,105, 4, 28,136,174, 99, 53,169, 97, 33,193, 8,204, 86,162, 31,171, 75, 51,212, 99, 5, 10,152, 93,123, 59, - 52,131, 61, 39,192,163, 2, 23,164,124,154,108,220, 82,190, 30,183, 16,199,163,243, 83, 73,241,232,120, 21,239,185,250,191, 47, -151, 69,227,208,240, 43,207,116,245,126, 95, 46,143,198,164,248, 20, 42, 98,215,187, 72, 51, 80,240,104,100,196, 62,141, 32,205, - 74,240, 40, 81, 18,189,223,151,203,164,120,212,161, 13, 8, 32,122, 71,229,242,233, 63, 17, 71,240,244, 39,185,143, 71,229,242, -233, 30, 61, 31,195,208,137,136, 7,119,230,210, 76,203, 69,224,165, 8, 35, 83,187, 73, 50,209,248, 85,184,142, 43,217,164,248, -180, 60, 42,220, 71,167,113,249, 52, 94, 37, 23,133, 66, 37,143, 85, 52,131, 37, 15, 10,140, 33,129,222, 63, 94,154, 50, 83,130, - 42, 20, 69,235,217,164,248,180,126, 13, 10, 34,250,180,131, 53, 40, 67, 66, 38, 39, 94,163, 73, 51, 82,132, 20, 39,186,159, 71, -233,210, 60,106, 63, 0,208,168,139, 78,237, 33,210,211,141,134,140, 34, 55,171, 77,186, 90,117,176,209,198,227, 83,187, 76, 58, - 85,167,219, 21, 29, 67, 30,173, 48,233, 42, 75, 99,163,173,177,217,211, 76, 58, 74,146,198, 82,196, 8, 94, 60,134, 90, 35,162, -148, 63, 54,171,238,238,124, 22, 57,221, 2,175,118,123, 47,140,157,145,244,154,159,236, 81,217,183, 91,210,211, 66,132,141,235, -245,168,252,122,225,155,229,227,175,230, 50, 56,245, 10,244,150,209,183,182,194, 38,196,192,157, 52,162,148, 61, 41, 85, 72, 33, - 62,158,237, 80,184,214,132, 57,176, 12,115,165,104,177, 81, 28,133,172,138,129,217,249, 29, 32,154,133, 60,230, 92, 5, 3, 45, -255, 0, 17, 69, 45,246,246,116,209,128,180,168, 35,208, 20,208,109,125, 21, 10,213, 82,107,219,167, 64,225, 78, 63,246,153, 86, -202, 5,245,123, 53, 9, 29, 9,255, 0, 38,150,186, 5, 33,164, 70, 49,165, 4,169,182, 80, 7,163,167,199,166,115,168,197,166, - 82,180, 39,188,166,157,160,124, 99,252,186, 26,105, 30, 9,175, 60,118,143, 66,160,107,210,181,208, 67, 69,160,138,247,198,103, -178,190,174,223,233,209, 33,163,208,107,157,194, 1, 35,179,245,126,189,122,255, 0,226,171,201,230,214,179,220, 15,163,242,249, -116,127, 21, 69,240,213,239,184, 31, 64,252,190, 61, 31,196,208,248,122,207,112, 62,129,249,124,122, 31, 19, 67,225,235, 67, 4, -246,109,252,190, 93, 24,184,162, 54,245,231,185, 83,187,242,249,116,126, 61, 16,182, 74,244,194, 63,187,249,191,167, 69,227,209, -252, 61,104, 97, 30,225,249,124,186, 80,158,147,240,203, 90, 24, 42, 61,160,104,197,197, 23,195,214,233,183,159,221,252,190, 93, - 17,185,160, 45,232, 97,111, 80,236, 79, 79, 94,145,241, 93,116,127, 15, 88, 96,245,249,186, 88,186,164,252, 61,120, 33,144,170, - 4,232, 27,129, 67,192, 74, 84,183,219,149, 33,244, 50, 19, 66,162, 7, 93, 65,187,188, 16,180,187,162,165, 91, 90, 25,156, 27, -211, 86,131, 16,198,153,183,197, 97, 75,108, 21,148,133, 18, 71, 82, 78,184, 7, 52,115, 3,174,228,112, 7, 10,237,124,187,177, -182,213,128,145,141, 72,161, 8, 0, 0, 59, 7,167, 88, 23,202, 93,153,173,164,108,211, 68,101,188,132, 36,128, 58,211, 69, 24, -213, 82,152,116,227, 77, 9,175, 5,110, 20,244,234,242,210,220,132, 53, 26,230,240, 16,148,221,122,138,168, 34,160,215,167,167, - 87,241, 52,177, 8,170, 41, 37, 15,192,211, 54,239,141, 68,156,135, 92,236,116, 2, 82, 61,127, 46,182, 59, 71, 50,203,102,224, -211,149,100,119,142, 94,138,245,165,195, 58,136, 39,218, 87, 25,213,182,180,118, 18, 18,125, 32,124,122,235,118, 59,139,110,152, - 28,211, 92,150,251,110,117,171,139, 92, 41, 40,192,239,218, 70,172,133,197, 86, 24, 41, 11, 35,195,236, 89, 85,170, 69,155, 33, -181, 68,186,219,100,164,135, 35, 75,104, 56,144,174,229, 39,189, 36,122, 70,152,185,142, 59,214, 24,228, 10,211, 82,236, 46,166, -219, 37, 19, 64,226,215,142, 35,229,141,113,227,205,151,148,116,227, 62, 29,226,210,145, 46,195, 50, 81,102, 26,146,216, 15, 68, -121,117, 80, 97,193,184,168,251, 32,209, 67,161,245, 30,154,227, 60,201,176, 73,177, 63,196,140,151, 68,238, 60, 65,232, 63, 65, -175, 85,249,113,230, 68,123,203, 60, 9,198,153, 90, 49, 28, 8,233, 31, 72,174,119,171,144,185,143,132,102,152,152,118,119,152, - 89,237,168, 52,114,198,169,238, 76,176,184, 19,208,167,220,228, 23, 35,164, 40,116,170, 82, 15,175, 89,216,227,142,243,247,140, -105,235,227,235,206,186,205,196, 22,151,227, 86,144, 29,210, 43,163,190, 83,188,224,100,151, 23,113,216,121,132,230, 37,227, 87, -139,188,107, 37,221,183,211,177,252,102,237,112,246, 24,125,175,106,141, 48,235,164,111, 64,246, 71, 85, 0, 13,107,177,229,141, -221,219, 28,226, 18,227,224,187,129, 56, 14,177,208,156,122, 71,162,184, 39,153, 60,145, 22,227, 11,230,137,169, 51, 1, 32,143, -180,156, 15, 74,140,171,177,141,198, 73,238,168, 61,126, 29,118, 55, 77, 94, 94, 17, 45, 27, 76, 33,220, 63,203,250,116,209,158, -148, 32,161,132, 47, 86,155,241,232, 24, 43,111,115,245,126, 95, 46,139,199,160, 32,173,132, 32,123,191, 94,139,199,163,248,122, -223,220, 64,238,252,190, 93, 39,226, 40, 27,106,217, 48,127,135,242,249,116, 70,226,147,240,212, 40,133, 78,239,203,229,210, 76, -244, 62, 30,183, 17, 7,163, 73, 51, 82,188, 10, 24, 68,245,126, 95, 46,155,241,168,252, 10,247,221, 61, 90, 30, 53, 3, 5,103, -186,127, 14,135,141, 69,224, 86,194, 47,168,126,141, 23,141, 67,225,235,223,117, 31,151,249,244, 94, 53, 15,135,173,132, 79, 87, -229,242,232,188,106, 30, 5,108, 34,211,187,242,249,116, 70,101,161,224, 80,232,140, 61, 26,108,203, 74, 16, 81,132, 71,245,124, - 90,105,210,211,162, 10, 24, 70,245,126,125, 35,197,165, 11,122, 21, 49,135,112,210, 12,180,177,111, 67, 38, 48,244,126,189, 32, -203, 75, 22,244, 58, 98,252,154,108,205, 75, 22,244, 97, 49, 41,221,166,140,212,224,183,163, 9,139,234,211,102,106,116, 91,209, -148,196,167,118,154, 51, 83,130, 10, 50,220, 99,232,211, 46,150,158,100, 20,179,110,109, 77,201,101, 73, 2,187,192,165, 43,219, -170,251,210, 36,141,192,228,149,160,217, 3,160,184,141,205,205,106,104,180, 54, 93,162, 9,233,181, 53, 21,248, 53,195,111,220, -143, 34,189, 36,199, 6, 70, 29,197, 41,220,150, 3, 77,208, 80, 83,184,119,106,180,149,168,134,109, 71, 26, 79,124,171,175, 83, -242,232,192,169, 49,184, 26,214, 51, 96,239, 81,234,174,208, 52,170, 19,191, 42,211,193, 37,100,172,119,158,132,210,154,116, 20, -165, 9, 64, 8, 43,103, 36, 54,194,118,212,116,232, 58,233, 40,166,156,100, 70, 82,180,156,237,197,190,194,177, 80, 9,237,233, -250,116,227, 99, 53, 36, 91,150,210, 52,203,178,144,217, 82, 22,147, 78,225,219,250,116,235, 99,233,167,197,186,240,164, 84,228, - 75,109,105, 10, 38,149,234,107,253, 58,115,193, 90, 89,181, 6,140,127,121, 71,137, 90,154,122, 43,223,242,233, 62, 1,161,240, - 99, 74, 85,105, 16,207,163,243,107,210,134,122,242,119,129, 91,251,159,168,124,186, 30, 61, 23,129, 91,123,167,240,143,151, 71, -241, 20, 62, 28, 87,134, 39,240,254,157, 24,154,139,192,160,204, 90,254,206,150, 38,162,240, 43, 67, 19,213,249,124,186, 87,141, - 73, 48, 86,158,235,214,148,232, 59,116, 12,233, 67,192,173,189,208, 17,217,250,191, 94,136, 76,104, 24,107,116,194, 21,236,253, -122, 35, 61, 23,195,209,198,109,171,117, 65, 40, 73, 42, 52,236, 21,237,211, 18,222, 8,194,147, 78, 50,200,200, 80, 10, 95,111, - 16,184, 56,128,189,128, 3,217, 94,223,211,170, 41, 57,162,222, 50,139, 87, 49,114,204,210,133, 2,188,119, 14,185,182,128,231, -130,149,167,175, 97,235,250,116,136,249,190,209,238,211,173, 13, 56,254, 81,186, 13,213,161, 69, 35, 57,103,117,179, 71, 25, 90, - 77,125, 21,253,122,186,139,114,100,161, 90,224,106,166, 93,170, 72, 74, 57,166,156,216,140, 8,233,186, 50,169, 1, 37, 9, 32, -251, 94,159,151, 84, 60,205,118,255, 0,134,118,140,234,227, 96,177,105,156,106,171, 32,198,192,129,183,230, 1,236,211,178,154, -243,220,239, 46,113, 92,235,180, 69, 16, 96, 0, 86,235,114,157, 65,248,117, 24,154,146,214, 82,100,164, 21, 36,168, 26,158,189, - 53, 38, 7, 33,164,203,146, 83,106, 67, 11,169,170, 78,175,225,156, 37, 84,190, 34, 77, 34,188,201, 4,250, 14,173, 33,156, 58, -161, 75,110, 90,104,169,142, 87,210,149,211,230,112,220,105,182,192, 93, 73, 83,241,116, 92, 91,246,210, 16,160,106, 22, 7, 81, -249,245,111,182,115, 67,246,215, 97,136,232,170,189,203,150,153,184, 55, 28, 15, 77, 32,200,192,218, 13,130,212,132,151, 8,249, -167,211,242,235, 73,111,207,250,157,222,110, 21,154,159,145, 16,119, 78, 52,207,159,141, 74,137,187,114, 9, 72, 52,220, 59, 63, - 78,181,150, 28,209, 5,230, 1,216,214,106,251,149,230,180,196,133, 20,196,201, 49, 11, 70, 77,107,151, 99,191,219,163,220,173, -147, 91, 83,111,197,146,138,142,163,162,146,160, 66,155, 82,123, 82,180,144, 65,234, 8, 58,190,123,227,188, 97, 99,192,115, 79, - 3,136,170,104, 91, 54,221, 32,146, 39, 22,188,100, 70, 21,204,174,126,242, 89,103,183,219,174, 25, 13,145,185,119,123, 28, 84, - 42, 76,132, 73,172,187,197,153,132, 2, 86,167, 84, 19, 89, 44, 34,149, 46,252,244, 14,171, 10, 1, 75, 28,199,152,249, 78, 75, - 32,110, 44,113, 96,197,204,226, 58,199, 72,234,206,187,167, 37,121,146, 46, 8,181,191, 64,243,131, 95,147, 73,235, 28, 15,176, -245, 87, 56, 25,198,162,225, 87,207,115,113, 62, 21,146,244,164, 91, 95,144,210,186, 71,121,242, 3, 15, 2, 15,253, 91,148, 53, -214, 30, 27,215, 60,167, 28,235,176, 94, 64, 47, 96, 36,123,192,122,197,119,219,203,182,104,188,239,140,236,111,220,100,182,254, - 79,143,182, 49,188,169,160,163,227, 55,118,182, 0,148,186,176,123,166, 71,240,223, 4,116,246,136,237, 4, 14,225,203,123,200, -221, 45, 90, 87,188,222,233,244,100,125, 35,218,181,227,190,110,216, 63,148,222,188, 1,220,121,212,222,195,152,244, 21, 21, 96, - 17, 20, 16, 58,106,225,210,165,103, 69,189, 14,152,189, 58,141, 52,102,165,124, 61,109,238,163,209,162,241,168,124, 58, 86,233, -141,234,252,212,209, 25,104,252, 10, 25, 49,107,221,250,244,131, 53, 44, 91,208,130, 32,244, 13, 35,198,162, 54,245,239,186, 87, -187,228,208,241,169, 38,222,189, 16,253, 95,151,203,162,241,232,190, 30,182,247, 95, 86,139,198,162,248,122,195, 23,213,161,226, -208,248,122,207,117,248,180, 60, 90, 30, 5,103,186,232,120,180, 60, 10,216, 70, 30,141, 23,139, 67,193,175, 68, 97,232,252,218, - 47, 22,135,129, 94,251,183,171,243,104,120,180, 12, 21,178, 99,250,191, 86,146,100,160, 33, 74, 48,150, 61, 95, 23,102,155, 50, - 83,130, 26, 48,152,254,173, 54,100,167, 4, 52, 40,141,234,252,250, 71,139, 78, 8, 40, 68,199,245,124, 93,250, 65,150,148, 45, -232,210, 35,122,180,211,165,167, 4, 20,109, 17,189, 90,101,210,211,173,130,140,162, 48,238, 26,100,203, 78,139,122, 50,136,195, -209,166,140,180,232,183,163,104,138, 59,134,153,116,212,251, 45,233, 90, 4, 21, 56,242, 54,130, 40, 65,168,245,106,186,254,236, - 67, 27,137,232,173, 6,201, 96,103,153,169,192,212,169,102,100,179,237,171,162,182,247,235,143,110, 14, 14,121, 34,187, 87,137, -173,129,180,184,235,245, 73, 0,252,125,154,129, 73,142, 36, 42,105, 56,188,197, 61,181, 41, 74,169,175, 94,159,167, 78, 5,169, - 58, 29,194,138, 61,113, 98, 57, 27, 14,222,132, 30,191,211,167, 89, 25, 52,177, 3,159,157, 32,200,189, 29,228,165,103,175,117, -127,167, 83, 89, 14, 21, 37,150,224, 96,105, 57,219,154,221,237, 95, 79, 89,254,157, 16,141, 42,198, 56, 67,105, 14, 69,200, 2, -175,111,188,247,255, 0, 78,158, 12,169, 13, 20,140,253,211,161,246,171,241,250,126, 61, 44, 70,180,251, 89, 72, 82, 46, 21, 36, -133, 83,213, 95,233,211,237,142,156, 17,208, 30,255, 0,244,117,221,215,183,231,117,160,248,244,175, 14,143,195,164,132,198,233, -211,244,107,181, 25,107,201,255, 0, 15, 91,251,169,252,191,207,162,241,169, 95, 14, 43,223,118,245,126,127,233,208,241,168,190, - 30,188, 49,107,251, 63,159, 67,198,235,162,248,106,212,196,245,126,141, 40, 79, 68,109,232, 51, 19,213,242,105,127, 17, 73,248, -122, 11,221, 63,135,244,104,252,106, 35,111, 91,136,167,247,116, 12,244, 5,181, 57,236,120,232,184,186, 3,149, 75, 96,251, 68, -127,159, 89,237,235,125,254, 92,197, 25,213,198,217,179,124, 99,177,202,164,184, 24,188, 24, 10, 42,109, 1,117,253,165, 10,144, -117,205,183, 14,106,154,240, 33, 41, 91,107, 46, 95,138,216,170, 82,210,163, 54,132, 82,128, 10,116,233, 79,215,172,196,151,238, -113, 85,173, 28, 86,161,161, 41, 34, 64,111,105, 77, 71,192, 14,152, 23, 68,149,171, 24,225,193, 41, 41, 49, 99,169, 68, 56,210, - 87, 95, 72,244,234,197,187,212,204, 64,215, 17, 77, 73,180,195, 38, 46,104,175, 27,199,216,247,132,188,203,123,106,106, 64, 61, - 7,231,214,130, 46,107,124,177,120,114, 28,107, 55, 63, 46, 50, 25, 53,198, 48,169, 42, 27, 65, 49,208,133,117,162, 64,237,214, - 38,226, 79, 17,228,213,195, 86, 48, 5,122,182,105,215,187, 81,137,169, 13,145,104,131,131,184,116,244, 87, 82, 98, 52,204,174, - 52, 81,104, 29, 74,147, 93, 77, 99,170, 51,137,164,135,155, 73, 39,217,165,117, 53,146,105,166,204,101,245,171, 81, 82, 8, 81, - 20,169,174,138, 75,181,194,157,142,220,138,221,245,181, 29, 7,122,106, 72,233,232,253, 58, 96, 74, 94,105,225, 18,211, 50,100, -173,171, 42, 77, 65,169,165, 59,191, 62,173, 32,198,150, 97, 90, 75,126, 66,222, 70,213,209, 64,250, 71,244,234,214,217,222, 17, - 81, 85,215, 54,193,225, 8,166,212,219, 98, 93, 37, 64, 1, 95, 64,239,249,117,185,218,183,243, 8, 13, 53,134,221,182, 1, 42, -184, 96,105,187, 38,215,182,160,167,114, 72, 32,244,173, 65,214,218,211,116,109,192,172, 37,230,216,235,115, 92,138,243,211,229, - 18,253,253,217,200, 57, 31,136,215,107,129, 15,196,110, 77,239, 29,154,232,183, 69,181, 92, 30, 62,195,214,226,150,195, 97, 50, - 22,154,173,130, 65, 10,170,145,236,213, 41,231, 92,233, 97,109,183, 61,151, 77, 33,165,238, 77, 35,137,205, 64, 30,223,211, 93, -163,203, 78,113,153,192,217,220,130,230,181,165, 29,158, 25,105,119,208,106, 63,242,185,200,124,161,198,115,226,100,249, 22, 49, - 62,237,103,189,227, 22,155, 94,111,107,182, 52,178,182,174,144, 5, 99,205,109, 74, 73, 70,246,130,150,130, 55, 81, 73, 87,111, - 68,234,171, 97,230, 38,236,115, 56,156, 88,236,192,246, 31, 71,211, 67,155,182, 72,119,232,244, 49,192, 61,174, 37,164,244, 28, -199, 97,250, 43,176, 56, 86,113,139,103, 86,214, 46, 24,245,201,153, 37,196, 36,189,111,116,134, 46,144,157, 61,173,191, 28,159, - 17,181, 10,118, 17,215,180, 18, 53,212,236,247,187,109,201,186,161,145,167,164, 46, 35,180,103, 92, 94,247,100,184,219,157,166, - 86, 16, 56, 28,193,236, 57, 84,210,206, 32,221,190, 7,223,121,149,238,209,133, 88, 82,144,234,230,223,101,162, 60,133,181, 74, -213,182, 10,130,201,167,102,226, 62, 61,102, 55,110,125,178,177, 37,145, 59,197,127, 67,113, 11,214,114,245, 45, 94,109,124,151, -119,126,142,120,208,206,151,103,232, 31, 90, 85, 88,228,159,196, 67,201,151, 13,205,147,104,199,154,186,242,230, 79, 1, 74,109, -198,173, 44,125,227, 12, 72, 64,234, 20,226,202, 33, 3, 94,229, 80,235, 15,117,204,187,158,229,246,188, 54,158, 3,187,237,247, -189,181,210,246,190, 65,182,136, 7,104,213,214,236,125,153,123, 42, 31,181,126, 46, 60, 75,154, 75, 98,205,150,112,102, 79,138, -218, 30,123,194, 69,238, 10,224,206, 92, 4, 19, 64,226,152,105,207, 22,128, 30,161,176, 79,160, 29, 82, 58, 75,251, 71,248,176, - 92,184, 59,180,161,237, 14, 86,159, 72,173, 43,185, 66,218,118,120,114, 68,194, 58, 16, 4,236, 32, 2, 61,117,107,113,222, 76, -227,140,214,214,221,251, 13,201,173,217, 13,161,228,239,241,173,143,248,146,225,129, 90,165,248,171, 62, 59,106, 65, 20, 87,105, -245,106,234,195,204,123,203, 67,162,246, 32,241,210,222,235,189, 88,180,250, 18,177, 27,175,150,208, 5,248,119,185,135,161,221, -225,235,192,143,109, 59,173,147,237,183,118,148,245,178,100,121,173,182,181, 54,225,101,117, 45,184,158,208,161,209, 73, 62,162, - 53,212,118,205,234, 13,226, 63, 22, 7, 40,226, 14, 4, 30,130, 62, 64,240, 53,204,183, 45,150,125,170, 79, 14,102,167, 65,204, - 30,176,105, 88, 69,175,119,229,242,234,121,153, 42,188, 65, 91,123,175,171,244,105, 62, 53, 15, 2,188,247, 95, 86,143,198,164, -152, 43, 4,111, 86,135,139, 73, 48,215,190,236, 61, 3, 67,197,162,240, 43,207,117,252,171,161,226,209,120, 21,158,237,234, 26, - 30, 45, 23,129, 94,251,175,171, 69,227, 80,240,107,223,116,245,126, 95, 46,135,141, 67,192,175, 68, 63, 87,229,242,232,188,122, - 49,110,180, 50, 98,250,180,131, 53, 44, 91,209,132,198,167,118,155, 50,211,130, 10, 25, 49,189, 3, 77,153,105,209, 13, 12,152, -222,173, 32,203, 75, 16,209,148, 70,245,105,163, 45, 56, 33,163, 9,143,234,211, 70, 74,112, 67, 70, 80,199,171, 77, 58, 74,112, - 66,148,109,184,197,100, 37, 41, 42, 36,208, 1,218, 78,153,116,169, 79, 50, 18,112, 20,241,181, 99,192,209,201,105, 4, 16, 8, - 65,238, 7,211,215, 89,109,219,127, 22,225, 35, 56,214,171,105,216, 12,197,100,202,157,204,219, 98, 48,154,182,202, 17,211,161, - 3,175,233,214, 22,243,119,154,235, 7, 56,165,111, 44,118,200,172,207,113,161,104, 39, 29, 75, 10, 41, 6,132, 15, 77, 53, 90, -165,213,126,216,117,129, 69,189,232,172,237,221,240,144,123,180, 3,105,211, 22,145, 73,119, 25,233,105, 52, 74,128,233,220,122, -254,157, 74,141,139, 78, 65, 14,172, 77, 51, 37, 92, 74,215,213,100, 26, 26, 84,246,254,125, 77,100,105, 86, 34, 36,164,119, 46, - 59, 84, 66,143, 94,226, 15, 74,124,186,154,214, 97, 73,208,166,139,185,116, 72, 73,246,253, 53,235,253, 58, 54,219,151, 83,193, -225,185,211,114, 93,211,218, 59, 84,105,212,214,181,253,122,152,203, 94,154, 2, 69,202,145,156,184,172,214,135,175,166,167,252, -186,124, 90,138,121,178, 17, 68, 76,197, 43,180,246,250,244,102,220,112,167,155, 50,103, 91,123,223,179,182,191, 21,116,223,130, -105,223, 24, 83,196, 49,217,219,242,107,165, 25,171,204,190, 18, 80,158, 0,252,142,147,226,208,240,235,209, 28,104,252, 90, 63, - 14,179,221,198,135,137, 67,195,173, 76,113,220, 52, 98, 74, 47, 10,188, 17,253, 95, 41,209,248,148,159, 14,179,221,235,221,241, -232,188, 90, 30, 10,209,134, 97,239, 80, 0, 31,147,211,166,101,184,208, 22,156,100, 26,141, 73,150, 24, 30, 3, 9,165,106, 69, - 77, 70,185,151, 49,223,248,206, 43, 91, 61,162,219,194, 24, 83,157, 8, 9, 29,189,135, 88,137,102, 90,210,180, 81, 57,142, 37, - 41, 32,119,124,186,138, 94,181, 38, 54,173, 52,100,191,181, 71,183, 70, 29, 86, 49,177,107, 35, 44,173, 96, 14,181,166,140,189, - 40,220, 18,157,112,210, 70,210, 71,194, 15,126,139, 90,212, 57, 41,125,181,122, 52, 22,160, 60, 80,170,236,169,236,244,105, 75, - 77,182,136,184,144,123,123,186,211, 78, 49,233, 74, 45, 90, 79,112,245,219, 78,149,244,106, 67,100,163, 16,173, 6,152,219,186, -148,254,109, 44,205, 68, 24,148, 28,165, 37,150,207,239, 1,208, 15, 78,152, 14,212,106,194, 40,181, 10,102,206,156, 66,137,116, - 21, 0, 58, 1,217,250,117, 99, 27, 58, 40,252, 30,138,105, 75,152, 30, 87,176,222,222,189,255, 0,231,213,140, 24,113,167, 12, - 58, 69, 23, 66,213,249,245,105, 27,170, 4,177, 81,147, 69, 1, 81,215,179, 83, 98,145, 42,158,230,222,150, 44, 56,164,140,146, -114, 35, 35,232, 34,165, 73, 50,101,169, 4,165,164, 18, 58, 39,247,148,123,135,198,122,105,249, 57,140,108,237,212, 74,147,144, -233, 63, 87, 73,170, 57,182, 81,122, 81, 48,226,107,222, 73,188,240,182, 42,152,216,197,205,219, 91,183, 8, 5, 47, 37,171,140, -134,228, 54,101, 46,159, 72,180, 45, 91, 22,237, 9, 21, 9,168, 21, 9,160,168,214, 55,114,220,101,221,101,241,230,118,167,100, - 58, 26, 58, 26, 56, 14,158, 39,141, 89,218,216,178,194, 63, 10, 38,160,204,244,158,211,242, 78, 21, 94, 47, 23,107, 61,250, 52, -177,105,133,111,251,191,192, 83, 65,148, 52,219, 94, 50,128,246, 84, 0,165, 83,180,132,138,117,213,103,138, 22,148, 99, 34,185, -235,102,195,231,183,203,153, 53,254,217,122,185, 99, 8,199, 98, 46, 68,100,219,159, 92,116, 38,235, 32,157,138, 9, 10,218, 82, -148, 36,212, 31, 72, 58,149, 51,155, 52,122, 92, 21,106,104,156,194,193,210,181, 90, 94,242,221,230, 99,205,119, 38,229,150,219, -167,152,147, 15,141,236,175, 91,159,116,220,220,149, 51, 36,152,197,192, 44,169,165, 66,105,198,219,115,193, 40,217,188,188, 16, -122, 26, 3,236,235,109,203, 59, 27, 55, 6, 31, 15, 75, 52,231,196,246,129, 81,183, 46,103,139,102, 99, 92,248,156,247,185, 83, - 28, 48,235,171,205,199,191,134,135,151,188, 70, 12, 54,175,169,202,179,123,131, 45,163,222,101, 92,111, 78, 89,225, 72,124, 80, -149, 37,136, 5,133,160, 19,251, 42,117, 94,178,117,185,135,150,109, 98,247,213,199,172,253, 2,177,247, 92,255, 0,184,220,147, -225,150,198,222, 0, 5,249,254,170,146, 38,121, 6,242,225, 41,228,187, 27, 20,188,218,219, 73, 10,247,123,126, 89,113, 44,149, - 14,195, 87,223,125, 98,135,184, 42,158,173, 56,253,130,205,223, 97, 61, 38,162,199,206, 59,147, 51,145, 79, 73,104,250,168,178, -188,139,241,229,170, 66, 46,120, 38, 89,158, 97,119,166, 20, 21, 30,108,107,170, 46, 12, 2, 59,150,218,218,109,213,130, 71, 81, -226,138,247,215, 85,183, 60,163,105, 48, 70,234, 30,149, 30,163, 86,176,121,129,124, 48,153,172,123,123, 16,250,193,250, 40, 9, -152,239, 52,113, 69,222, 5,225, 13, 59,155, 52,133,178,204,139,174, 59,111,117, 95,123, 67,169, 11,106,229, 9, 21, 45,172, 10, - 41, 47, 34,163,224,214,112,108, 87,155, 4,162, 75, 83,168,117,124,196,116,124,150,173, 91,187, 88,115, 20, 70, 41,198,131,154, - 56,228,122, 90,106,238, 90, 28,114,231,110,133, 57,118,249,118,245,203,140,203,234,131, 44,127,172,198, 83,137, 4,165,126,202, -104, 65,238, 32, 29,116, 8,103,115,152,211, 34, 7, 17,136,232, 53,205,231,180, 17,200,230,176,171, 65,192,244,210,169,138,177, -218,217, 31, 22,150, 38, 7,141, 32,219, 17,152,173, 61,223,184,138,124, 90, 63, 22,155, 48, 86, 8,227,209,242, 13, 15, 18,144, - 96,172,240, 7,238,157, 15, 18,144, 97,175,125,220,122, 41,241,232,120,180, 94, 13,103,187,143,200,157, 15, 22,135,131, 91, 8, -195,184,126,106,232,188, 90, 30, 13,110, 35,143, 65,253, 3, 73, 50,209,248, 34,183,247,113,232,210,124, 90, 49, 13,108, 35, 87, -187,244,232,140,180,161, 13, 8, 35,122,191, 54,146,101,165,248, 84, 50, 99,250,191, 94,144,101,165, 8,168,100,177,221, 79,151, -166,155, 50, 82,252, 58, 25, 44,129,164, 23,210,196,116, 58, 99,174,149, 13,170,158,157,186,108,200, 58,105,193, 9,232,161, 18, -216,237,167, 93, 32,186,140, 50,151, 44,113,252, 89,200,233, 80,128,165, 31, 85, 53, 81,188,220,252, 60, 14, 53,111,179,218,248, -211, 0, 42, 66, 74, 82, 40,158,243,174, 89, 61,193,148,170,215, 78,134, 17, 8,192, 86,178, 29, 13,167,167, 95, 64,212,106,159, - 3, 53,211,118, 84,145,237,110, 72, 63, 23, 93, 58,209, 86,241,194,131, 10, 67,118,127,128,186, 5, 87,112,233,234,212,134, 49, -105,215, 69,172, 83,110,124,208,165, 31,104,159,132,154, 10,106, 84, 97, 42, 68, 81, 32,166,164,217,137,234, 73, 33, 93, 64,167, -249,245, 41,133, 42, 83, 98, 90, 66,149, 60,132, 14,181, 52,232,174,250,124,186,153, 11, 60, 67, 71, 32, 17, 12, 41, 25,115,212, -170,167,113,168,238,169,166,173, 24,208,218,132, 89,170,136,185, 37, 71,191,245,233,209, 78, 53,148, 92,184,165, 30,154, 88,165, -158,237,123,180,246,215,228,209, 23, 1, 76, 57,233, 65,110, 86,239,205,166,181,227, 73,241, 42, 96, 12,127, 15,203,173,137,146, -184, 55,135, 91,248, 3,208,126, 77, 39,196,161,162,189,240, 71,160,252,159,209,163,241, 40,105,172,240, 71,160,252,159,209,161, -226,154, 26,107, 60, 17,251,167,228,254,141, 31,139, 69,162,188,240, 1,253,147,242,127, 70,135,139, 67, 69,122, 24, 21,165, 63, - 94,139,197,163,211, 74, 16, 89, 79,138, 43,233, 29,105,168, 23,210,157, 6,164, 91, 48, 23, 84,147, 15,195,110, 50, 66, 64, 29, - 62, 61,114, 61,214,103, 58, 82,181,186,178,137, 24, 18,183, 81,167, 65,223,219,170, 87,190,172, 26, 41,189, 61,101, 42,237, 52, -210, 53, 84,216, 66,211,114, 67,161, 68,128,123,255, 0, 62,134,164,171, 6, 52,138, 22, 19,190, 26,251,187,116, 9,162,145,139, - 78,232,114, 82,160, 42,122,244,248,116, 75, 80,159, 25,165,166,220,167,233,210,129,168,175, 98,209,143, 20, 30,213,105, 75, 77, -104, 74, 1,197,164,214,157, 63, 94,140, 58,150,216,232,181, 1, 21,233,211, 74, 15, 74,112,178,182, 75,148, 20, 20, 31,175, 67, - 90,208,240,146,144,110,175, 33, 4, 16,170,147,218, 52,252, 33, 77, 77,137, 81, 41,141,113,115,122,137,244,158,205, 89,177,233, - 78, 53,137, 77,242, 13,122, 80,106, 92,111,167, 11, 86,140,176,194,158, 82, 27, 66, 84,183, 22,160,148, 33, 9,220,165,169, 70, -128, 0, 5, 73, 39, 83, 27, 62,145, 80,165,134,165,156,123,141,100,200, 40,149,124, 38, 52,125,169, 90, 33,182,175,245,151,107, -214,139, 52,250, 49,233, 3,175,193,219,170,251,189,220,176, 36,121,252,213, 85, 51,219,144,198,157,153, 13,162,227,108,178, 75, - 70, 60,218, 25,125, 49, 94,110, 34, 99, 39,104,140,165, 15,156,144,126,114,137,239, 38,167,211,172,117,225,153,206,241, 94, 73, - 53, 42,217,241,188,104, 24, 87, 18,167,223,172,152,215, 44,228, 51,249, 14,194,171,221,253,137, 87, 20,185,119,228,139,227,152, -237,134,192,212, 48, 92,250, 6, 17, 6,121,113,213, 55, 87, 18, 20, 18, 10, 61,164,173, 94,214,210,117,244,211,144,198, 96,212, -197, 51,250, 42,233,155,116, 12,128,200,231, 28,209, 26, 1, 61,167, 31,145,166,255, 0,148,223, 54,124,127,230,210,233,146, 76, -192, 45,144,227,217,177,171,197,206,209,120,189, 91, 17, 40, 89,158, 54,228, 33,192,244,119,166,193,183, 73, 90, 72,116, 35,233, - 35,160,133, 5, 10,116,169,150, 9,131, 7, 28, 77, 87,239, 59, 71,192,134,184,170, 17,197, 20,122,137, 21, 0,249,129,229,219, -118, 43,200,179,172, 56,245,213,183,205,201,215, 30,187, 45,158,174,236, 65, 8, 74, 18,148,142,180, 69, 63, 62,174,108,129,149, -170, 70, 85, 83, 21,151,136,221, 71, 46, 20,241,224,158, 72, 77,167,147,176, 9,118, 25, 45,188,155,253,222, 22, 47,121,140,219, -137, 72,186, 91,114, 55, 91,100, 21, 84,212,152,210, 10, 93, 20, 4,251, 52,236,214,183,150,111, 95,183,221, 48,240,119,116,142, -163,245,103, 89,221,246,196, 93,192,246,184, 98,208,163,168,143,172, 97, 93,151,106, 57, 52,246,127, 54,186,203,238,219,211, 92, -234, 43, 71,116, 81,228,197, 36,118, 31,147,250, 52,207,196,142,154,145,240,164,112,161, 4, 66, 77, 2,122,252, 29,116,102,112, - 2,173, 39,192, 39, 1, 78,107, 78, 62, 95, 33,110, 39,167,109, 8,233, 79,147, 89,141,219,152, 5,183,117,167, 26,186,176,217, -204,184,184, 83,230, 61,154, 36,116,132,248, 13,168,211,247, 69, 71,230,215, 61,188,230, 9,230,118, 14, 32, 86,202,211,103,134, - 54,226,208,180, 94, 77,166, 59,181, 1,176, 7, 94,148, 31,228,210,237,185,142,104, 72,198,159,151,100,138, 81,149, 51,174, 22, -176,202,206,192, 40, 61, 95,209,173,222,213,191, 54,236, 35,142, 53,151,220,185,120,194, 53, 52, 82, 42,154,161, 34,159,145,214, -145,178,106, 11, 89,121, 32,210, 80,215,129,154,247,124,154, 87,137, 81,204, 85,239,128,125, 31, 41,209,120,148,147, 29,123,224, -122,134,139,196,162,240,171,112,205,116,147, 37, 15, 14,183,240, 7,163,243,232,188, 74, 26, 43,111, 7,212, 63, 47,139, 69,174, -143, 69, 8, 26, 31, 14,146, 95, 74, 17,214,254, 24,244,126,109, 39, 85, 44, 49,104,220, 88,107,144,176,148,166,137,175,180,170, -118, 13, 70,185,187,109,179,117, 56,212,155,107, 55, 92, 57, 26, 41,216,197,146, 7, 77,232, 81,238, 36,171, 88,235,174, 99,149, -139,164,138,213, 91,242,244,110,247,133, 6,254, 54,208,123,123,110, 17, 30,149,219, 90,168, 31,147, 76,199,206, 68, 70,142,111, -127,217, 79,255, 0,234,141,115,253,227,167,162,143, 39,221, 99,161, 45, 41,180,148, 82,132,144, 42,127, 54,168,238, 55,217, 38, -118,160, 72, 53,127,111,176, 49,141,210, 70, 20, 15,187, 90,214,149, 0,148, 38,189, 65, 29,160,252,154, 31,251, 5,214,160,237, - 70,143,249, 44, 13, 26,116, 10, 51,110,110,222,195,142,166, 51,168, 91,195,104,116,110, 10, 90, 55,117, 21, 29,162,186,107,112, -222,230,191, 96,107,242, 20,155, 77,166, 43, 71,151, 48, 99, 74,229, 91, 71,136,179,181, 41, 53,248,117, 75,170,173,218,117, 96, - 41, 6,116,237,196,236, 80,167,229,234,210,193,171,123, 91, 84,206,155,207,202, 53, 53, 63, 30,164,199, 86, 65,154,105,187, 58, - 66, 77, 74, 85,211,209, 78,205, 76,105,160,214,211, 62,100,221,164,141,221,127, 47, 86,158,110, 53, 45,173, 74,108,202,150, 58, -245,169,235,240,234, 92,108, 46,165, 25, 67, 41, 13,217, 42, 85,122,252, 0,255, 0,155, 86, 49, 13, 2,161,203, 54,179, 69, 70, -229,117,175,231,212,150,189, 41,191, 17, 40, 68,164,158,157,126, 30,193,163, 50,165, 56,199,106,163, 13,164, 39,231, 0,116,109, -159, 85, 38, 96, 90, 21,105, 70, 42, 96,137, 12,153,200,148,168, 97, 95, 78,152,101, 9,146,164,122, 16, 86, 10, 1,248, 70,163, -222,186, 83, 27,188, 13, 62, 34, 97,169,116,175, 90, 98,157,149, 85, 36,218,106, 62, 57,238, 54,121, 77,188, 49,171, 78, 84,187, - 74, 44, 78,220,102,200,251,176,166,108,107,203,142,160, 69,128, 30,219,238,107, 15,196, 68,137, 6, 72, 86,196,236,216, 70,229, - 13,114,143,253,199,125, 15,254, 92,108,160,248,242,252, 63,110, 60, 35, 8,247,166,203,196, 26, 73,107,124, 52,212, 75,148, 96, - 13, 83,157,230, 49,114, 45,212,234,208, 93,145,224, 64, 69,203,138,213,160, 12,142,159,163, 94,133, 50,215, 54,211, 91, 22,135, -171, 69,226, 81,105,172, 12,250,191, 94,135,137, 67, 72,161, 17, 21,110, 29,168, 77, 73,233,208,105,169,110,155, 8, 87, 26, 92, -112,153, 10, 54,148, 81,101,125, 67,170, 64,248,127,205,170, 57,121,154, 8,202, 45, 90, 71,179, 72,240,169, 70,209,100, 71, 98, -136, 42,167, 95,135,228,213, 76,220,219,142, 25, 85,148, 91, 0, 76,107, 85, 89, 18, 23,243,186, 15, 64,254,141, 3,206, 1,161, - 17, 77, 27,121,111, 89, 85,194,141, 55, 99,232, 20,147, 79, 95,127,232,212,115,205,186,253,225, 74,118,194,216,242, 52,187, 29, -129, 29,176,149,144, 72, 29, 63, 42,107, 41,185, 95, 54,237,218,128, 74,182,181,183, 48,132, 90, 13,213,142,164, 30,237, 84,151, - 84,246,178,154,151, 23, 79, 80, 59,180, 69,213, 99,110,202,102, 72,148,164,172,245,167, 90,232,193,171,102, 70, 18,183,143, 47, -114,135, 90,154,143,203,179, 68,180,151, 49, 41,235,107,127,160, 36,122, 14,140, 26,131, 43, 41,208,219,213,161,210,193,168, 47, -141, 40,111, 20, 1, 93, 24, 52,214,138, 1,201, 53,233, 64, 15,231,210,129, 90,113,145,105,160, 20,232, 29, 43,211,183, 69,141, - 58, 26,181,171,143,141,166,157, 5, 52,182,138, 1,152,211, 98,115,133,100,247,141, 78,140,233,169, 45,109, 55,166, 10,138,119, -211,167,175, 78,248,148,243, 89, 64,219,108,151, 11,179,225,152, 81,214,232,173, 92,122,155, 88,101, 29,234, 90,207,178,144, 61, -122, 83,174,132, 33, 73,162,148,182, 48,174, 53, 63,226,184,117,182,194,219,114, 92, 64,153,115, 82, 82,125,225,196,213, 12, 30, -255, 0, 5, 37, 34,157,127,104,138,252, 29,154,132,251,231, 79,150, 85,159,186,185,116,197, 6, 13,249,103, 79, 87,159,240,134, -229,251, 9, 0,146,163,217,250, 52,209, 36, 84, 38, 48, 58,161,204,219,151,177,187, 3, 79, 69,147, 61,134,151,181,105, 90,156, -112, 34,135,208, 43,164, 72,243, 32, 74,113,141, 13, 56,103, 84,167, 54,224,156, 27,205, 36,143,118,156,207,190, 32, 37,196, 25, -140,246, 41,149,144, 74, 84,237, 10, 84,131, 64, 75,106, 5, 36,129, 80,105,168, 14,107,163,193,153,154,157,107,116,251,103, 40, - 36, 38,116,164,199,150,158, 16,242,181,192,153,157,163, 2,183,192,180,220,100,219,174,204, 46,117,177,152, 81, 82,139,170, 16, -176,176, 27,138,211, 44, 5,161,127, 57, 33, 27,171,218, 53, 26, 56,156, 30, 11,220,175, 95, 69, 78,220, 47, 95,184, 5,145, 75, - 83, 50,171,237,225, 95, 33,156,187,158,114,206, 59,205,209,223,199,113, 88, 55,152,138,185,222,165,101,185,253,202,124,217,178, -109,209,227, 32, 59, 22,221, 14,218,195,233,136, 83, 35,117, 92, 83,236, 41,106, 82,246,182,226, 2,119, 39,121, 3, 68,141, 3, - 32,153, 97,235, 90,176,178,182, 99,225, 85, 4,101,167,143,105, 40,163,181, 64, 29,121, 87, 74,191, 12, 46, 4,228,174, 66,229, -219,255, 0, 43,102, 23, 55,161,241,214, 7,146,139,205,146,218,226,188,103, 37,223,167, 3, 38, 36, 38,149, 80, 2, 33,165,105, -117,213,208,246, 33, 35,231, 18,155, 59,187,198, 91, 53,154, 71,123,234,170,121,237, 27, 62,166,240,200,215,210, 36,102, 83,210, -191,151,230,208,111, 49, 74, 6, 53, 89,255, 0,175,196,180,230,138,204, 69, 36, 37, 73,235,223,211,183,243,105, 13,223, 37,212, -164,209, 77,177,176, 4, 0, 82,163, 22,200, 75, 80, 90, 69, 21,220, 8,233,250, 53, 37,252,203, 43,134,147, 85, 78,229,230,176, -234, 74, 91,105, 40,142,138, 14,131,190,131,183, 84,119,119,102,224,173, 88, 91, 90, 8,194, 86,202,152, 0, 61,105,211,242,238, -213,105, 10,106,201,145, 81, 7, 38,160, 18, 66,250,254,143,205,160,134,167, 71, 10,138, 67,155, 45, 46,171,175, 83,223, 79,243, -106,206,194,119, 91,185, 69, 46,107, 70,200,196, 52,138,180,165, 74,170,123,255, 0, 47, 70,186,126,215,125,226,176, 7, 28,107, -152,111, 59,119,134,242, 90, 48,175, 3,126,174,186,184, 46,172,211,162,161, 60, 49,232,210, 53, 83,126, 29,108, 26,175,112,248, -198,139, 93, 22,138,219,194, 26, 45,116,157, 21,239,132, 61,122, 26,232,104,175,124, 49,232,209,106,161,225,214,219, 7,163, 69, -170,149,225,209,136,241, 28,144,180,132,161, 69, 21,246,149, 78,128,106, 29,229,243, 44,152, 92,243,232,169,150,118, 47,187,120, -107, 69, 38,229,121, 35,248, 75, 48,102, 55,102,118,125,160,188,242,175,247, 70,228,161,180,216, 32, 50,130,175, 29, 77, 16, 92, -126,170,162,118,182, 43,223,172, 6,231,189, 11,236, 9, 68,246,214,230,199,107,254, 94, 53, 16,173,226,122, 7, 77, 58,172,217, - 61,155, 33,177,195,190,218, 38,183, 46,221, 53,175, 25,153, 65, 10,101, 42,111,210, 66,210,149, 38,158,177,172,147, 47, 91,114, -166, 55, 7, 5, 35, 2,185,118, 85,221,163,226,187, 26,227, 32,183,164, 80,119,108,134,217,101, 66, 93,188, 93,109,246,216,142, -120, 68, 74,155, 57,168,241, 10, 93, 32, 37, 94, 42,148, 27, 9, 59,135,181, 90,106, 4,155,156, 49,199,226,151,119,113,246, 42, -132,205,112,202,149,127,186,218,237, 90, 62, 34, 70,176,189,193,173, 82,138, 79, 0,181,205, 14,107,243,155, 18,193,203,118,203, - 61,151, 56,139,108,198, 48,235,155, 72,206,237,139,137, 9,246, 47,113,218,121, 72,144,212,123,130,159, 41, 66,144,144, 10, 8, -232, 73,167,110,139,151,247,121, 55,152,155, 60,112, 17, 27,193,210, 92,161,221, 71, 74, 98, 15, 70, 24, 99, 92, 79,112,243,123, - 78,230,109,163,238,197, 27,136,120, 40, 75,144,161,210, 65, 67,213, 80,197,199,241,130,226,100,220, 36,218,237, 24,101,246,101, -201,230, 97, 61,101,182,155,147, 43, 47,111,125, 77,200,110, 84,128,128,196, 85, 33,160, 28,111,121,162,171, 74,141,109,108,182, - 59,147, 27,164,184, 1,160, 56,133, 10,132,112, 32,102,122, 8, 11, 82,207,156,246,236, 99,156,232, 92,113,195, 28,194,241,232, - 32,112,168,107, 59,252, 67,133,230,253,108,188,217, 50,108,199, 8, 93,155, 42, 97,215,228,166, 29,177,184,151, 92,113,215, 7, -139,111,144,235, 83, 28,105,229,199, 31, 49, 74, 20, 61,227, 80,223,103,120, 36,115, 96,100, 82, 53,204,238,174,176,224,228,192, -144,153, 46,117,131,220,188,220,184,184,187, 75, 83,220, 92, 48, 67,143, 7, 98,132, 14,154,185, 79,126, 42, 92, 44,255, 0, 37, -227, 60,103, 8, 75,186,195,151, 96,129, 47, 32,204,219,149, 29, 86,248, 23,121,202,109, 9,140,218, 90, 90,210,225, 74,156, 1, -197,238, 0, 26,247, 13, 87,218,236,219,133,189,185,146,241,141, 18,107,210, 3, 20,168, 69, 84, 33, 71,101,116,253,167,205, 56, - 96,154, 56, 46, 25,169,216, 7, 57,152,180, 19,208, 62,122,185,112,185,171,142,238, 25,157,195, 0, 70, 75, 9,156,170,221,111, -141,118, 93,186, 98,189,208, 74,183, 75, 64,113, 47, 71,113,202, 55, 33, 33, 42, 5, 69, 4,211,191, 72,108,110,115, 60, 65,139, - 85, 48,224,122,250, 43,177,218,115, 37,141,221,195,237, 25, 43,124, 86, 0, 72, 56, 96, 66,225,192,245,244, 83,233,201,173, 58, -210, 93,101,198,222, 66,211, 84, 45,165,133,161,105,244,130, 42, 14,148,199, 17, 90, 0, 67,130,138,108, 78,146,176, 9, 73,235, -232, 3, 83, 24,229,163, 0, 12,105,137,117,185, 34, 27, 78,202,150,180,177, 29,176, 75,143, 58,118, 54, 13, 9,165, 77, 58,144, - 13, 6,167,194,139,137,168,243,220,136,193,197, 42,156,220,188,220,225,234,188, 99, 12, 89, 45,207,220,241,156,186, 30, 92, 45, - 57,124,233, 77,217, 44,142, 94,177, 68,168,173,130,244,130,150,144,149,173, 5,186,184,164,154,210,137, 32,215, 84,187,151, 58, -216,109,130,225,154,203,167,128,179, 92, 77,107,139,192,121,192,160, 4,144,115, 86,168,233, 34,177,119, 28,223,111, 27,154, 23, -222, 84, 36,128, 20,117,213, 88,135,248,128,100,153, 85,246,239, 99,193,241,124,102,229,112,110,220,187,133,148, 79,186,185, 26, -215, 49,232, 5,209, 49,130,234,208,195,165, 44,161, 27,139,129, 52,175, 64, 72,235,168,155,167, 51,221,109, 48,182,226,233,158, - 20, 69,233,145,115,195, 72, 26, 9, 0,144,174, 39, 44,211, 49, 89,103,249,130,178,104,107, 90, 71,110, 29,139,244,210, 79, 27, -126, 36, 13, 95,222,202,221,207,109, 31,112, 61, 99,183, 78,103, 24, 70, 63, 0,187,138,229, 55,212, 26,183, 30, 76,219,131,236, - 24, 36,161,183, 10, 94, 10, 40, 61,148,173, 1, 61,219,114,221,246,201,173, 95, 0,138,104,158,225,226,176,148,150, 56,206,111, -104, 96,118,178, 9, 29,212, 7,137,195, 38,109,249,241,243,191, 84,157,208,214,158,232, 11,168,240, 10, 72,210,157, 56,213,159, -227,111, 59, 60,105,149, 93, 34, 99,153,179,176,184,227, 37,186, 75,141, 22,201, 2,237,122,143, 54, 61,220, 74,105, 46,165, 72, -125,146, 91,106,137, 88, 7,196, 35,175,126,182, 91, 94,227, 22,243, 19,165,135, 82, 49,117, 43, 72, 68, 36,113, 24,226, 43, 81, -182,115,140, 55,100,178, 78,227,213, 16,145,243,213,209,183,202,135,113,140,204,200, 50,163, 77,137, 33, 1,198, 37, 68,125, 50, - 99, 62,217,236, 82, 22,130,164, 40, 31, 72, 58,156,169, 90, 95,140, 18,181, 65, 90, 71,204,242,171,254, 25,102, 77,254,198,196, -103,149,111,146, 22,235,179,172,114,111,214,200, 74,117, 42, 74, 28,146,212, 70,221,121, 45,239,160, 43,216,105,172, 7,153, 59, -131,182,205,181,239,141,117,184,128,141,145,145,188,183, 51,160,188,128, 79, 72, 4, 20,202,179,155,206,231,240, 81,153, 21, 19, -138, 40,244,165, 50,221,229, 62, 67, 23,152, 18,150,246, 18, 57, 89, 88, 69,223, 47,141, 5, 48,231, 12,121,120, 90, 30,130,151, -218, 92, 95,112, 14,170, 82, 95, 83, 65, 13,109, 42, 9, 42, 59,197,104,124,174,207, 49,121,124,216, 62,251,225,102,248,209,116, -203,127, 19, 80, 85, 45,145, 28, 31,226,166,148, 5, 78, 69,201,221, 41,134, 75,249,187,124, 95, 27, 15, 27, 70,164,239, 38,156, -147, 37, 94,175,109, 92,240,208, 58,250, 20,100, 74,137,166,183, 12,110, 52, 29, 79,193,164, 25,147, 26, 2, 50,105, 89,139, 73, - 90, 55, 40,210,189,159,149, 53,158,188,230, 6,219,185, 5, 90,219,237, 70, 80,166,149, 89,136,212, 68,123, 35,218,237,169, 21, - 39,243,107, 29,185,111,111,189, 37, 78, 21,161,178,219, 91, 0, 65, 90,169,192, 79, 85, 31, 71,102,168, 76,149,118, 26, 27,194, -189, 78,206,227, 93, 22,186, 10, 77, 10,148,246,158,218,104,107, 90, 11, 94,169,107, 2,189, 0, 3,179,179, 68, 93, 72,210, 13, - 34,201,184,236, 81, 27,187, 63, 47, 70,144, 93, 82, 25, 2,210,113,187, 82,166,181,245,126, 67, 73, 46,167,133,189, 34,220, 39, - 33,208, 74,122, 30,254,191,209,164, 45, 76,130, 18,218,102,201,115,114,137,175,126,157,107,170,205,140,161,225,118,131,235,209, -151, 82, 36,109, 62,237,135,216, 29,105,217,162, 14,170,249, 91, 78,118,151, 64, 58,247,105,107, 81, 28,213,175, 20,233, 39,183, -166,148, 13, 35, 69, 2,181,250, 14,157, 24,210,218,218, 4,169, 68, 26, 29, 24,198,143, 42, 5,110, 41, 34,132,131,165, 12, 40, - 96,227, 73, 50, 13, 66,169,211,209,167, 67,169,230,210,141,191, 27, 47, 52, 46, 87,167, 13,186,214,145,189, 42, 85, 4,153, 96, -119, 54,138, 19,212,126,209, 20,212,121,239, 27, 0,166,164,186, 12,238,183, 23,123, 7,111,201,105,245,141, 73,142,237, 91,129, - 28, 70,181,178,176, 99,178,158,190,247, 36,208, 7, 28, 36, 13,199,167,193,232, 20, 26,169,109,195,174, 95,142, 93, 21, 2, 96, - 93,139,142, 63, 69, 73,237, 32, 54,217,112,154,157,165, 74, 81,236,232, 62, 13,105,173,173,195, 89,175,141, 82, 72,253, 69, 56, - 85,114,230, 30, 86, 70, 53,109,148,220, 69, 37, 82, 3, 75, 29, 59, 19, 81,222, 72,237,248,245, 26, 66, 73,198,150, 8, 29,214, -215, 11,121,171, 47,204, 57, 63, 34,126, 19,183, 7,162, 88, 24,144, 85, 41, 12,186,166,220,150,178,122, 32,169, 38,180, 61,244, -237,210,227, 1,129,106,238,204, 54, 0, 9,196,215, 73, 60,133,102,248,230, 25,196,151,156,118,241,114,247,140,131, 27,203,239, -150,247, 27,152,245,103, 51,111,144,164,202,136,128, 20, 2,182, 6, 31, 27, 59,169,211,187, 80,173,229,212,243, 32, 11,250, 41, -123,204, 96, 57,160,224, 28, 1,237, 81,245,213,102,243, 81,202, 86,217, 55, 94,106, 79, 27,100,152,173,135, 25,146,221,138, 86, -123,239,205,189,114,136,247, 45, 72,109,104,255, 0,213,236,176,243, 40,247,167,173,200,142,171,134,245, 80, 4,176,105,185, 75, - 37,153,173,204,178,181,200,125, 31, 46,218,155, 97,127, 29,189,177,108,205,212, 73, 70, 3,254, 81,153, 39, 48,133, 17, 58,235, -143,113,108,248,237,250,229,114,148,236,152, 87,183,193,109,171,132,167, 98, 34, 57,126,225, 25,180,133,188,218, 5,124, 48,225, -233,182,167,179,180,235, 71, 4,142, 99, 64, 53, 65,113,114,230, 59,186, 52,142,129, 87,227,201,191, 42, 91, 56,135, 35,190, 99, -215, 39, 3, 24,198, 72,109,107,125, 72, 63, 71,108,184,182, 84,211, 78,237,238, 11, 11, 8, 95,254, 78,159,120,241,154,167,133, - 21,181,225, 99,187,217, 26,236,189,182,237, 30,108,118,101,197,121,183,227, 72,109, 46,178,243, 74, 11, 67,141,168, 84, 16, 71, -110,153, 0, 10,183,212,180,226,143, 50,180,162,168,125, 63,144,208, 45,165, 7, 83,142, 44,205,201,234,122,142,255, 0, 79,230, -211,101,180,135, 49,104,202,167,157,164, 87,210, 43,249, 13, 36, 49,105,135, 66,133,105, 38, 77,193, 77,214,138,175,109,127, 42, -105,198,198,180,244,113,131,141, 33,187,112, 82,137, 85,123,251,191,205,167,155, 24, 21, 53,161, 40,153,154,189,244, 29, 71,102, -164, 70,193, 76,206,252, 40,251, 47,110, 0,252,116, 58,184,183,184,116, 57, 26,161,184,183,108,217,209,148,186, 43, 67,249,126, -109,105,109,119,124,129,172,173,230,204, 10,145, 70, 82,186,211,211,171,232,222, 37, 10, 43, 47, 60, 38, 7, 33,161,211,215, 70, -112,166, 18,182, 3,242, 58, 73, 52, 97,171, 66,132, 15, 64,249, 52,141, 84, 90, 43, 10, 7,163,243,104,106,163,209, 65,237,169, -160,244,233, 69,225,161, 77, 40, 71,168,160,164,252,219, 36,141,136, 98,146,230,174,231, 10,206,250,208, 90,139, 50,106,219, 75, - 66, 82,129, 32, 4,186, 82,151, 9,165, 2,107,174, 73,204,187,169,123,222,224,224,141, 5, 23, 1, 91,187, 56, 99,219,173,188, - 73, 28, 27,214, 83, 63, 77,115,219,144,188,250,221, 98,226, 55, 54, 48, 75, 13,178, 30, 87,106, 17, 25,202,100,101,211, 91, 77, -158, 28, 55,228, 52,194,148,218,218, 67,172, 43,122, 86, 87,237, 45, 52, 3,174,185,110,227,123,105,190, 58,217,146,120,132,185, -235, 27,153,128,212,208, 85, 84,130,133, 19, 35,157, 98,183, 95, 52,153, 30,136,109,162, 37,238, 41,168,145,164,124,134, 53, 83, -121, 47,207,189,151,140,108, 10,180,216,110, 18,165,101,209,219,203,159,185,206,134,194,133,142,241, 98,190, 53, 29,108, 73, 75, - 97,199, 89,125,209, 35,120,100, 39,230,131,211,161,214, 95,147,249, 83,124, 27,132,243, 50, 66,216,102, 44, 30, 25, 32,232,112, - 36, 57, 26,128, 53,186,120,130, 9, 57,227, 88,189,195,159, 78,202, 31, 28, 8, 30,117,174, 96, 16,228, 66,153,102,168,107,151, -188,197,248,135,102,249,238, 39,143,241, 99,118,247,173,184,107,145, 39, 61,117,109,111,169,235,157,193, 83, 93, 90,221, 65,116, - 20, 45,182, 82, 2, 72, 73,235, 94,135,166,189, 25,177,114, 7,242,224,101,184,148, 72,232,220,177,224,154,114,237, 82, 74,215, - 31,223,185,138, 77,230, 8, 89,114,237, 94, 11,137,105,232, 39,167,165, 56, 87, 63,159,230,187,253,183, 32,187,146,139, 52,168, - 76, 20,197,110,219, 62, 48,125,198,218,120, 81,183, 80,167, 18,224, 20,173, 77, 1,239,215, 68,254, 83, 13,196, 45,197,192,230, -163,218, 48, 74,204, 77, 43, 94,141,199, 28, 84, 84,108,215, 39, 74,201,126,251,159, 54,117,195, 29,176, 68, 68, 72, 51,101, 90, -163,120,240,213, 33,211, 68, 41,247,146,134,246,151, 18,213, 16, 7,109, 41, 77, 77,146,201,150, 5,140,104,107,228, 42, 64,113, - 66,131, 52, 4,156,151, 30,218, 83,174, 30,198,119, 59,192,102,122, 22,152,233,231, 9,247, 24, 99, 31,184,189, 21,232, 86,249, -175,190,212,167,223,116, 61, 33,192, 78,197, 47,111, 66, 64,165, 42, 53,100,118,145, 3,252,102,170,144,136, 0, 65, 72, 23, 1, -167, 80, 56,154, 63,103,229,251,152,184,197,118,117,214, 84, 22, 34, 60,195,145,137,132, 36,167,194, 65, 81,220,148, 44, 2,177, -212,142,221, 57, 54,212,192,195,225,180, 18, 65, 92, 83,218, 50,169,240,223, 22,128, 9,174,131, 98, 62,110,216,178, 69,199, 16, -187,222,111,150,198,188,202,125,156,181, 23,139,188, 53,173, 79,248, 73, 98, 59,150, 69,190,135, 93,136, 3, 97, 40,121, 14,130, - 13, 40, 58,107,153, 93,242, 92,151,210, 75, 32, 17,198,246,180,104, 45, 14,201, 84,137, 17, 3,186, 65, 30,154,156,237,201,197, -193,250,203, 95,142, 33,125,184,226, 15,162,167,222, 57,243,149,202, 60,113,147,170,123,124,191,126, 79, 30,177, 21, 89, 5,178, -203, 47, 35,105,246, 60, 22, 93,218, 34,182,151, 26,117,148,173, 46,146, 11, 41, 69, 10,122,210,154,143,117,182,190,120, 24,198, - 68,179,131,164,247, 73, 25,102,113, 5, 19,138,224,107,109,179,249,141,185,109,218, 4, 83,188,233,251, 36,171,125, 68,229, 83, - 22, 63,248,178,115,118, 79, 58,228,194,239, 86, 43, 20,104, 11,102, 68, 36, 92,177,136,114,238, 23,152,207,190,150,246, 32, 52, -235, 77, 13,169, 53, 83,128,251, 34,164,141, 61,184,236, 76,218,152,215,185,154,149, 65, 32,184, 6,144, 23,136, 39,176,113,173, -247,245,147,121,126,146,209, 17, 43,142, 9,135,166,152,252,185,231,247,145, 50,249, 23,152,207,242,221,166, 87, 29,230,143,218, - 97,220,120,225,168,201, 68,187, 93,203, 23, 37,211, 54, 35,232, 71,134, 16, 95, 72, 10,163,129, 74,238,168,214, 74,126, 75,139, -127,150, 25,231,134, 70, 92, 66, 28, 99,144, 56,134,233,144, 38,151, 55, 5, 41,210, 8, 29, 70,169,183, 63, 50,183, 29,193,178, -182, 98, 64,195,186, 48,110,121, 97,143,166,170,229,207,156,108,249, 69,198,254,132,114, 13,146, 28,107, 10, 44, 46, 98, 86, 8, -152,202,221,189,228, 87,112,166,214,168,170,114, 25,240, 35,199, 62, 25,222,242,201, 79,239,244,213,108,188,171, 54,196,216,157, - 29,179,220,231,151,248,143, 50, 13, 12,106, 30,250, 63, 23, 59,253, 35, 30,138,171,183,223, 33,184, 14,153,239,210, 66, 16,215, - 13, 74,122, 58,129,233,225,198,151,175,188,155,109,103, 60,132,152, 89, 70, 33,111, 98,231, 18,217,110,200,238,104, 67, 47,221, -108,246,171,245, 87,113,110,222,210,200, 75, 74,100,141,138,121,110,251, 84,246, 69, 14,170, 99,219,231,221,236,139,229,142, 71, -190, 53,115, 65,118,150,189,204,253,217,122, 1,129, 31,100, 55, 14, 38,163,110, 91,172, 87,174, 93, 77, 76, 23, 20,199,171,178, -151, 25,205,108, 83,177,220,147,152,243, 86, 37,220, 45,106,184, 28,103, 20,131, 49, 47,200,133,159, 88, 45, 46, 58,143, 10,230, -155,124,136,206,192, 5, 9, 74,217,117,180,172, 21,116, 39, 73,181,181,115,223, 14,197,103,166, 25,195, 76,210, 72, 51,137,206, - 0,143, 12,189,174,107,202,168, 33,201,134, 34,173,236,111, 98, 16, 27,137,156, 73, 82,139,136,127,106,100,156, 18,171,146, 46, - 86,156,154, 78, 77,148,202,200,236, 56,129,177,218,156,190,219,112,235,188,167,110, 87, 41,238,248,155,154,136,220,137, 36,184, - 14,212,212,135, 29, 53, 29, 0,214,237,155,149,198,213,224, 91, 54, 41, 39,241, 36, 13,116,205, 1,173, 24, 98,226, 27,135,169, -163, 30, 53, 87,107,189, 9,245, 61,231, 73, 82, 64,205,122, 22,175,143,146, 63, 58,249,158, 27,119,199, 45, 89,167, 36,109,227, -164, 90,231, 90,161,227,146, 44,181,177,218, 47, 50, 36,132, 91,225,174, 96, 66, 76, 70,126,144,173,111, 85,123, 19,221, 65,161, -204,215,142,216, 68,239,183,133,207,127,188, 70,165,115,128, 97, 46,115, 24, 78,106, 16, 52, 38,163, 91,238, 94,231, 87,192,230, -137,100,253,154, 16,136,128, 21,192, 19,209,215,192, 87, 74,252,199,230,188,136,246, 31, 43, 53,195,185, 1,135,120,230,240,204, -184, 57, 20,140,118, 99,217, 75,118, 75,147, 75, 66, 21, 17,180,194,117,150,165, 70,115,105,220,181,170,157,157, 5,117,202, 71, - 47,127,238,246,150,187,134,225, 44,211, 68,215, 7,134,152,153, 25, 97,114,227,160,130,246,150,100, 74,246, 85,191, 48,222, 92, - 92,199,227, 71, 33, 49, 28, 28,152,227,209,134, 99,165,107,140, 46,114,223, 47,158, 83,132, 21,203, 16,149,110, 78, 59,115,200, - 26,123, 99,222,232,212,101,202,136,135, 33,123,167,189,120,254, 35,136, 74, 21,224,120,244,246,105,234,212,182,242,198,197,240, -206,255, 0,181,122,120,205,140,185, 6,163,131,146, 69,210,152, 99,222,211,153,174, 99,252,242, 95,137, 93,103,212,126,101, 84, - 78, 11, 95,105,233, 79, 81,211,167,230,215,123,115,171,182,165, 40,197, 98,170, 10, 40,168, 30,174,159,163, 84,251,141,216,141, -164, 46, 53, 58,210, 13, 69, 82,151,183,237, 0, 10, 10, 14,202,107,155, 93,200, 75,142, 53,173,133,129, 5, 20,144,248,167, 93, - 65,115,170, 91, 27, 73,170,125,180,159,108,246,250, 6,145,170,164, 54, 50,107, 84,202,100, 42,181, 58, 26,233,207, 8,209,193, - 57,160,138, 36,129,233,252,169,161,170,155,240,122,104,147,210, 67,181, 74, 85,221, 93, 13, 84,243, 99, 13,166,172,247, 10, 10, -189, 58, 34,234,177,138, 53,166,179,243, 84, 42, 1, 58, 25,212,214, 66,180, 68, 74, 46, 18, 13, 65,233,161, 79,182, 36,173, 54, -149, 30,202,130,116,107, 78,229, 74,240,218, 29, 42,105,215,209,219,160,181, 26, 74,116,196, 80, 64, 29,123, 41,165, 10,131, 32, -165,198, 93,175,193,232,211,130,163, 56, 80,197, 93, 61, 26, 88,194,155, 74, 44,167,168,106, 58,252, 90,117,162,148, 90,162,188, - 75,164,215,165, 43,221, 77, 60, 27, 76, 60, 1, 90, 56,195,135,214, 85, 64, 18, 58,147, 95, 64,209,101, 74,108,131, 42,117,219, -236,209,109, 17,126,243,189,180,195,203, 90, 55,177, 5,246,201, 13, 14,208,181,215,161, 62,132, 17,240,234, 29,205,207,133,150, -117, 26, 91,131, 47,117,133, 7, 79,208, 62,186,136,243, 92,219,223,174,113,160, 33,224,144,252,150, 88,101,180,171,102,225,217, -213, 33, 52, 74, 82,159,131,228,214,126, 73,117,149, 52,184,163, 13, 21, 40,227, 50,152,101,248,144, 88,112, 60,166,219, 74,157, -117, 41, 0, 21, 47,180,164, 1, 64, 40, 40, 14,165,217,142,240, 2,152,152,174, 52,243,202,111,133,136,107,141, 29, 91, 81,225, -213,213,237, 37, 84,167, 64, 6,221,107, 12,189,208,209,149, 83, 22,105,199,141,115,155,157,110, 82, 39,181, 33,152,202,241, 10, -142,213, 10, 19,209, 93, 43,209, 58,135, 35,177,163,129,138,106,157,185,133, 46, 57,102, 66,224,188,182,210,180, 63, 33, 97, 36, -130, 65, 4,213, 95, 6,137,210, 32,169,236, 92,170,156,249,218,227,238, 44,201,167, 98,220,141,141,115,109,215,133,249, 83, 22, -178,207,179, 95, 44,102,227, 62,219,137,242,134, 55, 47,115,204,183, 41,184, 82,162, 23, 94,183, 72,117,239, 1, 85, 81, 27,212, - 8,161, 26,168,219,175, 46, 54,153, 30,211, 31,137, 27,138,225,192,250,141,116,123,104, 32,222,237, 88, 21,160,176, 6,146, 81, - 66,118,166, 4,113,174, 84, 89,243, 94, 77,147, 22, 55, 24, 89,114,120,183,156, 66, 21,226,235,119,132,152,112,158, 10,135, 46, -240,224,118, 66,203,206,184,226,164, 41,199,138,148, 20,233,220, 1, 3,168, 26,216, 68,241, 48,214,230,105, 39,174,179, 59,180, - 48, 64,240, 68,154,156,208,132,162, 12, 50, 76,126,110,218,186,124,109,199, 23, 75, 14, 61, 29,218,189, 38, 66,155, 47,203,125, -234,184,242,150,225,169, 82,141, 58,144,123,116,220,151, 1,107, 19,123,122, 30,250,121,193,102, 67, 79,221, 90,125, 84, 47, 54, - 90,222,158,196,182,160,162,131, 74,126,201, 0,254,125, 73,138,112, 82,145, 28,224,165, 92, 15, 43,222,111,102, 98,238, 39, 19, -203, 36, 61,118,181, 52,191,118,100,151, 0,145, 16,167,160,216, 84, 40,125, 96,145,167,229,181,208, 65,201,167,210,157,117,116, -217,252, 54,224, 23,160, 87, 72, 33,249,155,226,242,227, 13, 73,184,206,134,183,138, 1,247,136, 43, 72,103,120,173, 84,125, 30, -189,110, 45,124,178,220,239,225, 23, 22,193,146, 70, 66,130,215, 2,191,167,170,177,119, 30,103,109,150,115,120, 19,248,140,120, - 40, 67,154,112,253, 29,116,183, 55,205, 31, 21,218,146,246,203,195,211,156,105,178,180, 38, 44, 85, 41, 46,170,134,137, 4,129, -169, 54,126, 81,239, 55,100, 44, 65,160,158, 36, 97, 76,221,249,183,179, 91, 3,166, 66,226, 6, 8, 14, 53, 16,191,231,118,212, -148,202,174, 48,254,240,229, 35,210, 88,218,182,235,251, 94,205, 65,166,183, 99,200, 73, 73,111,253,192, 68,199, 10,196,143, 61, - 24, 65,255, 0,182,197,112,239,124,244,230,199,252,224,113,181,245, 76,177,115,114,117,138, 83,138, 8, 88,146,215,141, 29, 4, -255, 0, 26,123,189,116,213, 22,231,228,158,235, 96,174,135, 76,141, 29, 5, 15,168,214,167,105,243,139,109,188, 65, 48,116,110, -235, 10, 61, 98,167,107,110,113,136,222, 26,109,251,126, 71,104,146,203,136,222,146,153,205,131, 79, 88, 42, 4,107,156, 93,242, -229,245,139,139,101,130, 64,127, 84,215, 71,182,230, 43, 27,214,135, 71, 60,100,126,176,165, 39,114, 76,114, 50, 3,175,223, 45, -109,165, 95, 53, 74,158,216, 7,255, 0, 59, 71,109,179, 93, 76, 81,177, 60,159,213, 63, 85, 70,189,223, 45,162, 10,101, 98,126, -176,166,213,215,152,120,238,193, 29,199,230,229, 22,197, 6,234, 11, 81,159, 18, 94, 37, 61,193, 41,169,214,150,199,145,247, 59, -247, 6,178, 7,246,144,131,219, 89, 75,238,121,219,108, 26, 92,249,154,122,129, 83,236,168,139, 52,243, 91,133,219,237,138,254, -233,188,229,222,236,237, 18,210, 86,202,154, 97,138,138,238, 81, 35,173, 61, 26,221,236, 30, 83, 94,205, 40,248,192, 25, 24,235, - 82,107, 13,191,249,175,105, 20, 68, 89,171,164, 61, 33, 0,169,191,141,185, 42,211,154,227, 86,171,170,167,219,218,184, 73, 97, - 30,249, 9, 50, 82, 28,102, 71, 97, 78,210,119,117, 62,173, 67,220,118, 57, 54, 43,151,193,165,197,128,224, 83, 49, 78, 88,111, -177,239,182,204,152,185,161,228, 98, 20, 96,106, 90,101, 65,194, 5,122, 26, 83, 85,183, 18, 8, 66,212,235,104,140,197, 41,122, - 44,118, 20,176,149,170,189, 43,249,116,214, 47,112,230, 7,198, 81,149,174,179,216, 90,230,106,118,116,162,226, 98,162,168,216, - 5, 59, 21,219, 95,205,170, 33,190,204, 28,164,213,195, 54, 72,222,220, 0,162, 1,132, 58,231,179,214,157,104, 63,205,171,152, -249,160, 53,136,236,234,186,126, 89, 33,218,129,238,208, 83,164,219,236,177,132,187,138,210,211,107,125,136,232, 52,170,212,244, -133,132, 33, 41, 29,164,149, 30,193,170, 77,199,152,164,156,163, 14, 2,165, 91,237, 49, 90,183, 83,250,107,155,254,115,121,171, - 27,178,218,115, 52,228,246,171,114,191,248,115, 62,212,140, 62, 27,217, 66, 20, 46,121, 53,241,148,248, 11,185, 66, 98,142,169, -131,237,144,216, 33, 64, 10,214,167,167, 0,187,190,221, 57,179,113,100, 54,242, 65,240,205,113,241, 3,154, 73,123, 66,133,140, -156, 11,154,161,115,106,246, 86, 7,157,119,102,188, 62, 57, 24,211, 20,100, 34,184, 98,243,210,220,200, 78, 24, 87,207, 55,154, - 31, 48, 22,140,231,145,229, 95,240,100, 92,113,252, 58, 28,171, 80,205,176, 28,126,208,139, 5,166,253,116,132,173,146,157, 67, - 45, 56,179, 36,173, 84, 8,113,194, 85,235, 7, 93, 51,147,246, 25,182, 43, 31,131,186,120,153,238, 46, 49, 77, 35,181,150,135, - 12, 56, 0,192, 63,202,220, 18,184,111, 48,243, 28,114,220, 15, 5, 4, 99, 18, 0, 0, 19,210,156,122,171,157,217, 55, 34,220, -228, 95,175, 63,221,251,171,237, 64,118, 84,192,222, 43,116,148,224,149,106,130,228,133, 22,153,241,158, 10, 10, 81, 64,170,232, -174,193, 67,174,173,177, 89,182, 48,209, 35, 70,173, 35,246,141, 1, 28, 64,196,128, 50, 11,151,178,185,238,239,126,217, 59,224, -230, 78, 28, 71, 70, 60,126,138,132, 50,188,183, 45,207, 93,155, 14,215, 29,171,124, 11, 12, 20, 51,112,153, 13, 6, 35, 66, 59, - 71,105, 11, 90, 0, 73,162,151,237,123, 93,117,185,181,100, 27, 99, 67,164, 42,231, 28, 1,196,173, 82, 54, 64,206, 42,180,222, -183,220,222,179,196, 15, 99,241,225, 94,103, 76,142,251, 50, 83, 46, 90,103,182,219,172, 16,128,241, 65, 77, 18, 61,162, 69, 79, -193, 93, 59, 60,127, 24,228,144,150,180, 16, 66, 4,244, 84, 55,221,146, 81,216, 5,168,202, 12,251,164,184,119,171,122,165,200, - 48, 26,152,220,187,180, 97, 32, 70,182,200,145, 28,168, 35,113,166,210, 82, 86,173,130,157,250,181,185,100,113,201, 27,208,107, - 68,105, 69, 32, 28,253,105,141, 43,226,220,194,139,129,225,210,148,222,201,102, 65,114, 86,251, 51, 98, 42, 95, 87,138,236,118, -156, 50, 16,218,128, 30,205,118, 2, 79, 74,146, 5, 53,105, 6,160, 59,249, 81,155,128,231, 20, 9, 78,187, 5,254, 42,172,178, -158,118,200,228,151, 25,140,235, 98, 74,174, 75,171, 82, 40,118, 56,202, 74, 84,148,237, 52, 42, 73, 7, 85,183, 54,242, 54, 78, -228,136, 9,201, 7,168,210,133,208, 14, 1,212,123, 18,203,109,136,142,181, 94,156,140,220,184,138,241, 16,229, 22,153, 43, 41, - 21, 0,237, 29, 78,234, 80,233,201,217, 34,164, 96,161,163,125,203,212, 34,209,236,123,145,152, 76,245,187,124,140,235,182,117, - 58,183, 90,240, 2,158, 68, 87, 1,232,162,132, 41, 36, 14,189,149,211,211, 66,232,155,251, 50, 3,211,143, 31,101, 91, 50,244, -198, 20, 28,106, 84,182, 93, 32,207,177, 69,200,167,230,208, 93,137, 10, 35,232,251,146, 81,147, 30, 66,253,229,223, 9,184,241, -130, 3,145,247,144,162,225, 14,148,138, 87,169,214, 39,114,222, 37,101,193,181,138,213,250,139,135,124,105, 32, 32, 82,231, 42, - 20,225,221, 83, 87,214,215, 3, 75,159,226, 5, 76,142, 10, 73,224,126,180,167,198, 67,127,196,103,241, 46, 39,118,123, 20,131, -105,122,221, 43,238,167,175,141, 56,152,119,103,228,180,235,139,110,141,182,226, 76,198,212,144,106,224, 69, 83,211,218,214, 94, -218, 75,200,183,137,216,201,220,246,184,106, 12, 56,176, 96, 1,196,142,225,255, 0, 74,227,209, 66,109,204,150, 0,231, 2,225, -129, 8, 20, 99,154,253,170,126,112,126, 81,124,179,114, 21,227,147,184,174,199,122,200,172,248,246, 19,114,128, 96,207,181,177, -121,148,211, 19, 34, 58,212,133, 20, 20,183,244,109,188,165, 44,185,212,129, 78,218,234,131,153,119,239,129,183,138,210,250, 88, -226,158, 73, 81, 85, 27,158, 25,234, 26,139,112, 78, 37,106,101,133,251,173,166,116,182,173,212,192,211,129, 71, 21, 35, 21,195, - 33, 81, 70, 33,203, 23,108, 62,229,116,207,103,227,109, 95,175,215, 41, 83, 49,129,109,184, 91, 66,236,198, 37,217,144,151, 16, - 61,148,169, 43, 3,112,246, 84, 10, 69, 14,173,247, 61,142, 13,193,177,218, 53,225,173,106, 72,113,199,186,112, 62,188,106,146, - 59,199,192,124, 80, 51, 40, 71, 2, 15, 10,151, 98,191,198,145,236,241, 89,228,108,231, 56, 93,130, 56,124,221,177,172,127,221, -220, 86, 58,252,244, 40, 66,247, 86,158, 43, 68,146,219,169, 35,122, 87,223,212, 10, 29, 70,180,240,190, 38, 55, 91,198,211, 35, -149, 94,132, 96,220,212,165, 90, 91,207,105, 10, 9,100,121, 24,168, 31,103,161, 56, 26,103, 60,238, 31,144,113,132, 38,237,119, - 43,133,166,255, 0, 23, 41, 68, 86,160,223, 10, 31,189, 95,109,146, 92, 80,251,201, 96,184,146,223,187,178, 2, 11,109,165, 67, -190,189,117, 99,252,198,107, 91,151, 48, 70,195, 3, 88,174,123, 79,218,224,192, 19,233,244, 83,191,204, 99, 54,202,215, 16, 67, -184,230, 66,231,234,161,230,114,102, 93,142, 93, 12, 6,111,246,121,246,137,141, 91, 46, 23, 24, 54,134, 89,251,146,115, 86, 69, - 4, 55,227, 50,160,210, 20,235,136, 69, 28,222, 42, 65,165,117, 6, 75,123, 93,244,120,242, 68,230,200,197, 99, 28, 65, 15, 26, -135, 2, 20,160, 56,142,186,156,119,199,135, 1,169,174,110, 5, 56, 97,210, 48,196,140,235,160, 71, 55,230,107,103, 13,100,252, -141,134,101, 86,220, 2,195,102,177,174,126,107,199,216,101,253,118, 8, 88,220,105,165, 17,154, 66, 97,221, 30,122, 52,163, 53, - 14, 7, 84,212, 37,173,105, 61, 66, 64,215, 24,218, 57,165,155, 70,235, 22,212,100,158, 83, 43,139, 35,150, 86,248,130, 76,220, -229, 49,180,105,210, 66,106,145,173, 7,166,180, 55, 27,253,211,226,123,237,136,136,180, 43,152,210,128, 14,160, 74, 21,232, 11, - 92,247,254,246,226,135, 61, 51,213, 47, 51, 86, 14,152,105,190, 53, 52,221, 83,253,224,106,226,184,133, 78, 37, 63,234,251, 60, - 7, 46, 41, 67,138, 37,157,222,200,161,237,215, 82,209,119,240, 72,144,252, 94,189, 30,233,209,167, 86, 24,106,247,131, 20,102, -138,114,172,151,243, 39,106,213,168,228,170,191,163,166,191, 69,244, 32, 84, 15, 78,181, 50,200,129,107,214,140, 98,154,112,176, -128,219, 99,176,247,235,157,238,183,102, 87,154,211,217,219,134, 52, 86,142,172,124, 20,233,172,236,146, 41,171, 86, 49, 41, 38, - 67,201, 21,220,122,117,212,119, 58,166,199, 29, 32,190,253, 73, 41, 63, 6,147,170,172, 34,138,147, 23, 37, 66,164, 31,205,163, - 14,169, 2, 32,104, 31,126, 90, 79, 85, 29, 41,104, 24, 1,173,189,252,158,194, 65,244,254, 67, 68, 77, 6,219,209, 9,114, 10, -146, 74,149, 93, 16, 53, 45,145, 37, 55, 31,113, 36,158,163,228,211,162,164, 53,169, 69, 7, 83, 81,220,116,161, 78,229, 74, 13, - 36,146, 63, 46,186, 61, 52,219,136, 20,166,209, 32,246,143, 94,148, 27, 81,158,105, 89,135, 84, 59,244,227, 91, 81, 30,148,175, - 30, 66,137, 21, 58,119, 74, 84,103, 1, 74, 33,194, 71,110,150, 27, 77,225, 64, 45,246,217, 5,111, 45, 8, 66,106, 74,156, 80, - 74, 64, 30,179,169, 49,194,100, 40,208, 73,234,166, 38,149,177,133,113, 0,116,154,108,220,179,236, 70,207, 26, 68,201,151,171, -126,214, 1,220,211, 47,165,231,148,161,220, 18,154,146,117,161,177,229, 77,194,253,237,141,144,187, 30, 36, 16, 61,117,151,220, - 57,174,194,197,133,239,157,165, 56, 2, 9,245, 83,199,136, 47, 7, 55,183, 74,203,156,181, 57, 22,208,212,215,162,217, 4,157, -222, 44,245, 71,166,231,202,104, 0, 66, 15, 65,219, 83, 95, 71, 86,249,179, 99,111, 45,200,219,119, 73,174, 93, 42,224, 50,106, -240, 90,135,176,243, 3,185,134, 55, 72,214,105,141, 80, 19,153, 20,173,158, 77,124, 52,248,109,117,125, 64,150,193, 37, 72,170, -170, 58,146, 54,142,167, 92,234,233,197,199,174,180,241, 52, 55, 10,160,185,142, 80,140,119, 40,142,151,159,105,215, 86,232, 0, -151,104,191, 25,202, 85, 41, 4, 3, 78,190,144, 15, 67,211, 80,116, 45, 78, 99,148, 85,143,225, 44,149,119,121,183, 98,243,137, -241, 26,117, 13, 36, 5, 10, 54, 10, 71, 79,132,234,195,110,247,170, 29,214, 21, 50,103, 55,102,163,219,214,132,148,111, 40,160, - 42,234,170, 1,212,142,159,159, 90,114, 16, 85, 68,134,169, 6, 72,219,119, 59,129, 96,211,115,210, 82, 2, 74,171,184,147,216, -122, 87, 81,230, 8, 22,151,111,137, 74,155,167,241,197,158, 38, 13,244,141,180,169, 10,141, 83,177, 32, 45, 74,167,101, 72, 39, -191, 80, 11, 75,177,169,178, 63,195, 21,195, 63, 58,156, 81,104,156,151,214,243,167,194,142, 74,154,138,164,238, 45,186, 77, 0, - 61, 61,125,163, 78, 90, 93, 24,156,134,158,134,237, 70, 21, 82,248,151,139,109,150,171,123, 82, 24,183,161, 11, 90,183,239, 13, -118, 45, 70,159,187, 94,193,171, 67, 57,144,170,213,101,253,201, 37, 42,227,217,224, 51, 14,210,168,238,160, 0,227, 69, 21,236, - 61,148,233,211,209,210,186,106,103,113,172,172,242, 43,170, 2,205,228,166,199,113,125,164, 80, 63, 42, 33, 1, 13,138,149,128, -146, 7, 74,119,210,186, 93,164,139, 78,193, 34,212, 43,199,140,174,125,241,111,133, 57,185,231,119, 41, 52,219,181,100,158,180, -245,235, 98, 30, 28,192, 42,221,215, 69,162,174,236, 47,121, 16, 60, 25, 77, 45,217, 44,178, 28,142,241,170, 86,244,118,250,169, - 52,161,169, 72,234, 62, 77,116,143, 44, 57,189,220,187,118,219,105,157,255, 0,109, 35,144,174, 77,113,201,221, 64,228,125,117, -204, 60,197,229,214,239,246,198,226, 22,255, 0,220, 48, 40,255, 0, 80, 28, 59,122, 41, 37,251,251, 8, 72, 74, 86, 21, 81,210, -159,230,215,177,160,180,215,141,121, 89,247, 68, 96,105,187, 38,242,143,219, 52,173, 79, 67,211,244,106,206, 59, 58, 64,190, 67, - 73, 42,189, 50,151, 2,194,171,215,176,127,155, 79,252, 17, 53, 38, 59,244,165,136,249, 91,136, 20,106, 83,173, 3,211,217,112, -167,244,106, 59,246,176,236,218, 42, 99, 55, 36,200,210,203,121, 27,239, 36,120,183, 25, 14, 37, 34,160, 41,229, 40, 15,128, 29, - 49,252,181,173,201,131,213, 73,126,230, 79, 19,235,160,191,188, 41, 4,238,117, 75, 30,178, 78,157, 27,127, 85, 68,146,249,120, -209,200,249, 36, 68, 13,213,246,129, 31, 15,232,210, 95,183,184,212, 83,118,180,236,181,102, 74,140,180, 59, 14, 99,209, 92, 66, -146,164,169,151, 75,106, 10, 79, 80,122, 83,191, 85,151, 59, 80,120, 71, 0,123, 69, 57, 21,251,163, 42,210, 69, 88, 91, 23,154, - 30, 74,183,198,143, 13,156,129, 47, 54,192, 74, 16,169, 44, 33,231, 74, 83, 74, 2,162,154,157, 96,247, 15, 47,108, 46,137, 46, -143, 62,130, 69,108, 44,185,255, 0,113,179,104,107, 37,203,164, 3, 79,147,230,231,146,148,180, 20, 76,183, 55,183,105, 86,200, -137, 33,123, 69, 58,214,189,189,186,202, 63,202, 29,169,202, 92,215, 31, 77,105, 7,155,187,176, 64, 30,208,157, 66,164,172,103, -206,156,246, 33,134, 50, 59, 27, 23, 73, 73,112,147, 46, 43,222,236, 11, 71,210,157,164, 84,107, 27,187,249, 33, 20,207, 46,181, -148,177,169,145, 11,143,109,107, 54,143, 60, 39,182,102,155,152,131,220,185,130,152,118, 84,191, 98,243,131,198,119, 2,148, 92, - 85, 58,199, 32,169, 41, 1,246,188,118,212, 79,161, 72,244,124, 26,192,238,126, 76,110,182,216,197,166, 65,212, 80,251,107,160, -237,158,117,109,119, 65, 39, 15,140,246, 40,246, 82, 7,155,124,239, 16,185,112, 20,235,231,222, 86,121,241, 92,153, 2,109,150, - 73,156,235, 82,154,185, 67, 87,138,211,145,124, 6,220, 89,121,178, 43,180,211,229,215,159,249,220, 95,242,238,155,111, 5,193, -239,126,135, 97,131, 65,204,156, 70, 5, 17,106,195,159, 57,138,206, 77,163,198,129,193,225,238, 26, 72, 56,131,158, 9,198,190, - 97, 57,143,152,100,223, 49,151, 50, 27,149,242, 83,185, 93,166,248,221,202, 83,242, 39, 40, 75,202, 99, 23, 93, 74, 27,113,169, - 37, 43,120,194,112,132,237, 80, 36,118, 17,164,236,156,188, 54,251,195, 12, 81, 1, 3,216, 64, 0, 97, 25, 64,164, 16,169,172, - 99,215, 94,103,220, 55, 67, 57, 39, 81, 46,226,167,229,149, 82, 76,207, 46,200, 48,121,207,202,106,247, 98,186,220,114, 8, 49, -239, 55,184,108, 41,187,132,235, 34, 28, 5,239, 17, 11, 0,198,108, 56,224,249,169, 93,123,138,117,175,178,182,139,152, 25,160, -199, 35, 25, 27,139, 88, 74,180, 63,130, 17,239, 18, 7, 82,117,214, 47,117,104,105, 82,236,122,170, 7,147,204,246, 41,184,142, - 87,105,119, 24, 74, 50,171,204,230,165, 68,201,209, 9, 47,136,112,208,165, 21,167,110,194,225,113,213,168, 0,170,128, 58,252, - 26,214, 89,242,140,209, 95, 91,204,110, 8,133,141, 32,179, 82, 41,225,212,128,103,196,214,106,228,185,232,153, 14, 31, 46,138, -138,147,114, 85,170,206,229,158,222,253,202, 85,234,237, 39,197,155,108, 40, 42,139,112, 83,201, 3,113, 35,170,105,182,164, 29, -116, 71, 64, 46, 36, 18, 60, 52, 49,163, 3,196, 37, 68,124,165,167, 81, 32, 55,166,154,121, 53,170,116, 11, 76,155,171,118,118, -109, 37,151,218,110, 65,133, 41, 76, 46,171, 3,216,217,216, 2,149,237, 84,234,210,202,225,143,112,102,189, 93, 11, 74,130, 65, -113,145, 90,139, 93,185,200, 68, 82,212,116, 58,195, 15, 20, 23,146, 20, 8,113,226,123, 85,211,218,167,164,234,244, 64,215,157, - 68,101, 74,115, 0,118, 56,208, 16, 74,161,169,169, 82,208,153, 8, 73, 82,203, 75, 86,210,165, 40, 26, 1,232, 7, 75,115,151, - 1, 72,115,195,206, 20,118, 61,238, 99,211, 39, 45,165,152, 45,190,149,173,150, 99, 43,107, 9, 43, 0,109,160, 20, 30,207, 77, - 54, 96,106, 13, 65,105, 18, 56, 70, 1,245,210, 58, 29,241,220, 42, 74,138,125,157,164,168, 84,158,159,181,208,247,234, 67,134, -138,144, 31,162,140,120,190,238,242, 16,167, 8, 65, 9,173, 62,173, 74,236,168,233, 67, 74,234, 43,228,241, 66,129,141, 24,144, -191, 10,155,172, 23,152, 22,124, 78,235,136,185,112,180, 72, 57, 68,140,122,236,204,228, 91,155,157, 54, 28,152,206,108, 83, 30, -240,178,147, 21,173,139,222,186, 14,164, 14,237, 97,110,217, 60,247,140,189,108,111, 2, 32,246,150,234, 32, 16, 66,170,125,167, - 40, 65, 82,137,110,157, 10,157,117, 54,251,177,229, 69,101, 80, 50,222, 90,198,226, 90,112, 60, 86, 61,206, 35,183, 56,205,198, -118,224,171, 43,110, 54,220,104, 11, 78,226,234,212, 85,182,136, 85, 13, 69, 70,185,251,238,127,245,167, 65, 45,165,132,134, 73, -229, 45, 33,164,144, 53,144, 75,158, 56, 14, 56,142, 20,119,183,143, 96,208, 9,112, 80,184, 98, 61, 61, 21, 13,113,246,121, 19, - 19,157, 25,121, 3, 89, 44,108, 66,247,239, 17,174, 42,196,167,136, 55, 59,133,189, 59,155, 90, 2,214, 75,123, 86,177,244,129, - 95, 22,180,220,199,176,191,122,107,190, 31,194, 55, 17,161,111,136, 21,173,118,106,131, 21, 3, 36,169, 22,210, 27,126,243,137, - 13, 32,228,106, 91, 70, 81, 53,236, 2,237, 17, 28,134,204,251, 22, 85,123,139,122, 71, 30, 50,243,232,186, 91,228, 90, 20, 89, -143, 34, 64,110, 59, 81, 87, 37,108, 37, 41, 10, 77, 74,135, 93,101,157,181,177,251,147,103,146,212,182,120, 99, 44,241,200, 26, - 92, 29,139,154,213, 37,218, 87,129, 68,171,105,183, 43,137, 45,140,109,148, 24,222, 65, 49,142,172, 1, 32,113,249,234, 36,188, -223,172,115,239,176,237,246,155,117,201,184,140,220,130, 55, 79,185,110,147, 61,197, 4,132, 33,237,141,182, 62,137,208,162, 13, - 59, 15,167, 90,235, 43,121,161,182,115,230,115,117, 22,253,150,160, 3,171, 19,152, 74,167,150, 72,217,251,182, 16, 65,196,147, - 78,185,140, 93, 98, 73, 78, 67,110,159, 14,240,222, 44,221,185,119,134,164,211,223,237,206, 56,181, 35,195,240,158, 0,190,148, -158,158,197,123,142,168,224,154, 55, 15,135,145,133,134, 82,237, 9,238,185, 2,170,140,143,109, 56,158, 48, 15, 99,149, 6, 53, -182, 67,126, 68,224,213,237,139, 83,115, 45,115,224,248,147,227,173, 38, 35,238,203,108,123,107,119,194,160,170,148,119, 4,160, -142,238,205, 61,183,217, 58, 16, 97, 50, 22,200,215, 96,115, 9,192, 5,232,201, 77, 60,251,189,110,107,208, 34, 39, 70, 61,125, -116,191,144,243,146,243,110, 63,178,241,186,240,203,101,190,124, 91,236, 39,237,185, 36, 59,188,232,139,131, 1,182,146,199,186, - 72,138,167,140, 23,146,181, 36, 57,226,173,191, 17, 38,180, 81, 26,172,219,249, 44,236,123,132,155,144,185,123,163, 49,184, 58, - 50,198, 16, 92,171,169,174, 77, 96,240,210, 14,147,209, 86, 15,222,153,119, 1,131,193, 26,245, 2, 36, 87, 42,100, 90, 70, 73, -199,170,157,238,114,214, 68,236, 72, 92, 62,172,163, 22, 30,227,134, 92,248,237,139,242, 97,219,147,108,114,197,116,155, 18,232, -238,251,168,136, 36,169,104,126, 27,108,163,114,138,128, 42, 72, 80, 74,148, 13, 3,121, 82,213,143,118,244, 45,229,239, 78,217, -203, 22, 77, 90,218,199, 70, 18, 61, 90, 80,181,229,197, 2, 18, 1, 32,144, 8,148,119, 73, 10, 90,107,102,144,194,213, 65,145, - 33,199, 20, 85, 80, 7, 78, 99,141,126,144, 45, 57,212,124, 95, 30,182,119, 56, 54,189,159, 8, 83, 75,173,185,244,117,175, 95, -209,174,111,185,187,190, 64,173, 93,155, 59,184,209, 41, 50, 54,164,215,169,255, 0, 46,168,158, 42,201,152,211,106, 84,163,214, -181,211, 68, 26,177,138,146, 29,145, 80,127,205,164,233, 53, 57,180,156,227,189,123,126, 45, 44, 54,158, 20, 77,110,245,239,211, -129,139, 74, 90, 8,200, 35,160,174,150, 35,165, 7, 81, 41, 18, 10,186, 18,116,161, 29, 56, 30,148,152,226,199, 94,190,186,159, - 70,158,100, 36,208,241, 82,139,183,113,134,157,234, 84,184,224, 54, 9,112,151,147, 68, 1,218, 79, 93, 88, 55,106,157,200, 4, -110,199, 44, 14, 53, 5,251,180, 13, 4,153, 25,134,120,140, 43,213,228,214, 24,205,120,239, 93,161, 33,190,208,175,120, 73, 4, -124, 93,117, 62, 30, 89,190,153,250, 27, 3,245,126,169,170,169,249,166,194, 6,107,117,196, 97,191,172, 41,188,239, 46, 97,209, -217,148,234,103,151,215, 21, 91, 18,203, 72, 37,114, 9,253,206,157,158,189,106,237,124,173,221,103,123, 26, 99,210, 29,196,240, -237,172,101,231,155, 59, 69,187, 36,112,151, 81,110, 64, 15,123,178,163,105,252,235,121,114, 90,151,107,131, 17,136,105,249,168, -147, 87, 29, 95,172,145, 74,107,168,109,254, 76,218,199, 18, 92, 72,226,254,145,128, 21,200, 55, 79, 60,238,223, 50,219, 70,193, - 31, 67,177, 38,138,127,204, 6, 82,210, 19, 88,246,212,169, 36,213, 69,162,119, 3,217,211,187, 86, 13,242,107,110, 95,122, 68, -237,170,119,249,229,185,162, 6,198,189,148, 5,195,159,243, 41,176,214,196, 99, 6, 27,139, 66,146, 95, 97,175,164, 27,187,197, -107, 77, 75,180,242,131,109,182,144, 61,218,220, 7, 2,112,168, 23,158,117,238,151, 81,150, 55, 67, 73,226, 6, 53, 22, 94, 51, -204,186,254,218, 90,184,223,103, 60,134,211,179,194, 75,165,180, 17,235, 9,165,117,182,219,185, 78,195,104, 37,208,192,208,122, - 81, 77, 97,247, 30,114,220,119,116, 19,206,242, 7, 5, 74, 85,227, 44, 42,103, 32,102, 22,140,117, 42,146,150,165,201, 74,231, -201,109, 30, 41,137, 1,175,105,231, 72, 61, 61,148,131, 74,158,218,106, 55, 53,239,177,242,213,140,183, 78, 78,232,192,116,187, -128,169, 60,171,182,203,191,222, 71,110,213,239, 28, 79, 64,226,107,176,182,120, 16,236,118,104,246,104, 44,162, 61,178,215, 1, -152,113, 88, 39,216,101,136,233,160,170,168, 74,148,123, 84,125, 58,241, 29,237,244,155,148,178, 79, 49, 87, 56,146,123, 77,123, - 34,206,198, 61,190, 38, 67, 24, 70,180, 32,170,249,201,247,103,204,103,132,109,136, 82,144,229,124, 83,225,178,134, 80, 9, 53, -168,253, 31,175, 84,114, 53, 77, 79,214,149,198,174,123,205,221,178,223,219,152,100, 45, 75,142,250,138,158,105,101,181, 33,229, - 26,215,113, 73,219, 82, 43, 95,136,118,106, 77,189,169,148, 84,184, 30,184, 85,147,242,197,203,182,189,141,123,179,232,121,217, - 81, 26,147, 40,151, 74,202, 94, 80, 35,169, 35,243,159,211,164,193, 17,137,229,105,155,204, 5, 91,124,187, 51, 98,116, 7, 92, -247,128,162, 27, 7,161,165, 18, 69, 71, 78,222,181,252,142,175,227, 26,133, 81, 72,234,164,185,215, 36, 59,143, 60,185,172, 58, - 75,205,170,173,164,246, 35,101, 61,163,208,210,154, 83,217,168, 37, 63,107,157, 52, 37,121,216,113, 80,152,129, 62, 99,173,150, - 27,109, 5, 43, 27, 27,241, 13, 59, 59,143,203,166, 77,169, 13,169, 83,196, 95,149, 84,142, 68,204, 81,203,215, 97, 14, 43,254, -240,183,164,175,113,108,238,165, 13, 13,105,233,169,166,170,159, 9,137,203, 81, 67,204, 1, 77, 63,177,108, 29,139, 93,173,134, - 75, 69, 30, 11,116, 1, 66,181, 9, 61,135,167,117, 63, 42,234, 76,110, 35, 58,166,187,186,215, 65,228,208,221,139,107,125, 76, - 39,105,105, 85, 2,157, 77, 69, 61, 30,141, 9, 38,170,114, 84,215, 60,185, 15, 40,152,214, 78,219, 46,186,169, 18,146,249,140, -148, 87,219,110,189,135,211, 77,180,249, 53, 50,213,186,155,135, 26,155, 11, 48,169,191,136,240,151, 23, 38, 60,244,161, 74, 80, -117, 46,110,240,234, 20,149,131,210,187, 64,232,117,125,227,248,109, 13,164,203, 45, 90, 44,134, 26, 45,141,177, 64,219,106, 66, -208, 22,182,233, 68,111, 30,201,246, 83, 90,247, 30,221, 63,107, 62,186,140, 30,106, 25,203,236,202,128,227,119, 88,201, 66, 45, -211,149,179,232,148, 84,150, 38, 4,213,105, 34,131,104, 95, 85, 39,227, 29,218,246,175,147,156,241,252,254,207,224,231,114,207, - 8, 69, 63,105,156, 15, 89, 25, 31, 71, 77,121,123,205, 14, 88, 59, 61,215,197, 66,212,138, 66,184,112,119, 17,233,204, 84, 99, -114,148,173,132, 33,213, 86,157,180,215,116,183,119, 72,174, 79,172,210, 27,115, 20, 5, 9, 91,138,173, 71,229, 77, 78,160,102, - 34,150, 35,186,235,137, 21, 74,146, 79,113, 29,159,155, 72, 36, 10, 31, 22, 69, 42,199,241,145, 82, 86,162, 61, 3,187, 77, 61, -193,220, 40,141,217, 60,107,199, 94,120, 26, 32,145, 95, 86,141,168,148,217,185, 60,107,120,225,110,246,184,160, 79,196, 52,151, -188, 55,133, 23,196,154, 80,106, 75,177,142,208,225, 32,119,234, 36,132, 59,133, 41,183, 38,148, 99,222, 20,210,130,222,146, 24, -108, 41, 32,173, 74,218,145,184,208,124, 21, 58,169,190,150, 43,102, 25, 36, 32, 52,102, 73, 64, 61, 38,164,178,228,187, 1, 78, -171,150, 64,140,127,197,110,238,226,161, 60,212, 22, 39,210,228,251, 86,196, 63, 26, 87,213,169,149, 72, 91, 97,224,178, 41, 84, - 86,157,250,226, 27,191,158, 28,181, 96,255, 0, 13,183, 30, 43,181, 57,169, 19, 92,244,115,115, 14,210, 14,147,208,169,211,149, - 91,218,217, 79,114, 11,130, 0, 58, 72, 31, 61, 50,114,254,112,196,113,249,152,235,152,219, 57, 30,109, 59, 31, 91,147,121, 10, -201, 96, 97, 50, 96, 74,182,203, 12, 22, 98,176,242, 91, 81,105,228, 44,148, 45,197, 81, 34,166,134,180,215,157, 55,191, 58, 55, -254, 96,184,184,100, 14,142,194,217,224,182,217,242, 15,218,106, 11,223,123, 92, 80,180,132, 33,161, 79,109,105, 44,163,181,180, - 45,241,129,144,230,228, 56, 17,208, 58,250,233,151,111,230,172,114,250,205,165,187, 85,129,201,119, 91,173,222,251,118,182,195, -191,201,144,238, 73, 96,134,166,217, 82, 4,135, 17, 32, 54, 83, 1,198,214,218, 15,187,157,201, 39,173,123,112,214,222, 99,115, - 46,203,184,182,235,113,189,116,177, 65,225,234,107,116,136,165,112,212, 59,163, 78, 26,193, 4,247,176, 32, 97,209,101, 45,197, -156,150,238, 17,177,161,196,187,134, 45,110, 7, 53,225,217,136,166,119, 42,115, 14, 66,244,196,218, 49,236,139, 27,189, 89,101, - 74,143,107, 92,119,110, 78, 77,183, 89,174,228,120,107,144,182,219,171,227, 98,150, 65, 1,161,211,183, 90, 14,105,231, 81,206, -183, 14,187, 49, 79, 28,110,136,105,141,218, 91,222, 76,116, 47,116,245, 18,236,241,168, 77,149,246,205, 17, 50, 65,165,115, 11, -199,170,185,141,157, 53,121,206,121, 14,247, 3, 55,204, 18,219, 31,120, 79,110, 70, 96, 24, 38,215, 5,152, 44,149,186, 17,109, -105, 13,186,132,149,128, 18,189,131,182,166,167, 81,101,221,227,218,237, 27, 45,156, 4,188,181,191,179, 41,169,196,148, 11, 38, - 45, 41,143, 19,213, 84, 59,173,236,178, 75,226, 60,234,225,130, 3, 85,229,252, 85,188,135,141,166,101,205, 94, 37, 33,155,125, -206,117,173, 45,190,210, 3, 87,119,160, 46,137, 83,105,109, 33,214,155, 40, 80,220, 94, 61,189, 6,165, 55,118, 54,155,152,180, -115, 26,165,129,216, 47,117, 70, 42, 78, 4,168,251, 53, 95, 35,131,163,105, 39, 30, 11, 81,214, 47, 20,220,173, 55,103, 25,184, - 90,161,185, 25, 45,181,115,102,115,187, 94, 84, 71, 73, 63,234,205,169, 14, 23,105,179,105, 32,141,106,100, 99,124,104,218,230, -184,140,218, 71, 79, 94, 73, 85, 83, 75,221,192, 98,112,255, 0, 26, 59,112,202,230, 98,183,137,119,204, 98, 68,123,147,204,227, -178,108,209,247,176,137,126, 16, 90, 72, 47, 33,208,216, 73, 83, 68,252, 62,189, 91,199,182, 55,113,137,177, 76, 11, 70,176,227, -138,122, 19,174,169, 91, 0,187, 5,146, 12, 21,106, 34,157, 42,255, 0,122,177, 59, 46,226,183, 92,247,117, 44, 62,235,181, 43, - 42, 52, 36,170,163,182,186,210,193, 4, 86,207,210,192, 42, 88, 12,129,232, 48, 6,153, 66, 29,216, 67,115, 98, 82,136,201,250, - 77,206, 81, 75, 75,106,253,154,145, 94,148,175, 77, 88,153, 3, 8, 90,124,189,139,215, 72,110,180,235,104, 75,174, 62, 23,188, - 83,110,234,208,246, 39,226,233,167,195,131,176, 20,224,112, 57, 10, 42,148,185,179,216, 89, 59, 72, 90,138,122, 3,234,210,193, -233,163, 80,184,138, 51, 41,106,100, 33, 73, 4,149,128,119, 38,181, 71,103,119,249,116,128, 23, 42, 40,209,234, 40,234,148, 95, -247, 97, 33, 11, 8, 90,146,149, 37,190,213, 33, 94,131, 78,154,134,233, 11, 28,116,162,165, 28, 77, 12, 5, 51,169, 99, 16,203, -241, 76, 91, 29,188,219,156,197,163, 78,201, 47,196,219, 88,200,111, 10, 84,152,152,236, 34,226, 8,125,134, 90,218, 86,224, 72, - 32,238,233,234, 58,204,238,187, 53,222,237, 44,114,137,220, 34,103,123, 67,112, 47, 41,145, 39, 33, 79, 49,192,148,112,194,159, - 16,113, 28,159, 34,121, 57,110, 59,143,217, 50, 59, 70, 47,108, 66,110,192,178,126,238, 75,146,247,108,113,246,137,108,171,170, -183,109,238,244,107, 48,119, 75,125,189,142,180,185,150, 72,164,145,253,220,123,216,102, 26,113,236, 90,144,231,113, 64,131, 10, -108,227, 25, 4,167,230, 93, 97, 94, 34, 65, 16,174,171,126,223,109,117,183,125,218,199,141,220, 37,186,126,153, 8, 0,163, 98, -122,212,118, 83, 83, 55,139, 40,227,100,111,132,187, 91, 0,115,176, 87,200, 0,200,156,214,155, 23, 37,174, 76,232,205,186,231, - 35, 21,186, 41,139, 85,199,222,229,216,101, 74,122, 36,219, 83,228, 69, 67,205,116,109,214,214, 18, 21,245,134,169,219,168,243, - 68,221,222, 32,110, 25,221,144, 0, 90,225,138, 28,193, 29,153,209, 50, 99, 27,181,176,161, 28,105,163, 54, 84,187,133,197,235, -198, 64,244,207,189,102, 92, 28,154,229,201,226,165,169,231, 86,165, 41, 74, 80,219, 82,165, 19, 94,221, 88,197, 19, 45,227, 16, -192, 6,128,212, 13, 28, 7, 1,217, 68,233, 29, 51,139,156, 85,113, 61,180, 28,169, 15, 70,247,185,109, 93, 81, 45,110,190,134, -154, 10, 74,154,148,170, 18,173,197, 6,187,133, 7, 90,233,200,155,226,105,105, 98, 97,232,245,211, 1,161,184,181,104,229,247, - 45,151,124,102,219, 28, 8,204, 27,125,189,182, 84,220, 72,169,136, 30, 82, 9, 82,137, 41,249,234, 85, 42,165,119,250, 52,157, -191,108,109,158,179,137,212,226,113, 43,254, 3,160, 82,137,210,135,133, 60,101, 92,160,218,224,162, 94, 44,110, 15,253,237, 99, - 49,242, 22,167,198, 67,222, 18,222, 78,215, 66, 10,219, 40, 80, 87,106,104, 42, 59,142,168,237,173,228,187,144,199,122, 26, 52, -200,172, 45, 36,101,150, 71,244, 26,122, 43,147,108, 8,102,100, 17,232,168,195,100,127, 20, 57,225, 43,193, 41, 39,221,188, 78, -165, 34,157, 55,108,237, 30,141,106, 21,201,167,138,210, 23,141,126,156, 24,199, 42, 66, 17,145, 30,252,226,219,146,130, 18,153, - 8,111,122, 28, 71,165, 84, 29, 14,149,189,114,140,142, 37,214,225, 65,225, 94,170,229,207, 48,225, 12, 12,188, 36, 56,113, 3, - 62,218,117,191,204, 56,188, 96,148, 33,233, 47,238, 7,171, 76,244, 73, 30,154,211,183, 92,246, 95, 45,183, 11,183, 18,141, 29, -166,183, 7,205, 93,174,212, 0, 11,157,216, 40,131,188,183,140,186,219,138, 14, 73, 74,208,146,160,133,179, 66,225, 3,176, 31, - 73,212, 25, 60,174,220, 67,128, 70,161, 57,174, 85, 46, 47, 54,118,167, 2, 85,192,129,146,103, 77,233, 92,175,143,135,154, 66, -139,225,167, 25, 11, 83,161,189,193,167, 15,236,145,219,165, 15, 42,247, 7, 49,206, 26, 84, 20, 1,115, 29, 34,164,197,230,246, -212,217, 26,211,171, 73, 10, 74,100,122, 13, 33,204,229,252,109,149, 16,129, 45,238,159,178,213, 43,242,233,235,111, 40,183, 25, -189,226,198,250,105,249,188,231,218, 97,247, 67,221,216, 41,155,117,230,230,146, 74,109,118,226,175, 67,146,151, 79,252,208, 53, -169,219, 60,150, 92,110,166,244, 55,235, 53,153,221,124,246,107,112,180,129,122,220,126,129, 77,135,185,194,236,165,251, 17, 33, - 55,210,155, 72, 42,235,173, 28, 62, 76,216, 52,119,164,121,245, 86,114,111, 60,183, 7,158,236,113,129,233,164,231,121,163, 33, -169, 82, 4, 48, 9,249,190, 13,104, 53, 61,158, 79,109,128, 33,215,235,168, 78,243,183,117, 85, 30, 26,118, 82, 28,222, 98,200, -221, 90, 92, 76,136,237, 37, 0,251, 45,178, 0, 85,125, 58,159,109,229, 46,213, 16, 45, 44,113, 94,147, 80,238, 60,230,221,230, -112, 33,237, 9,208, 48,166,180,158, 69,200,103, 23, 82,237,210, 74, 80,237,106,132, 43, 98,104,123,133, 0,214,150,207,144,246, -203, 45, 37,144, 49, 71, 18, 22,179, 87,222, 99,110,183,161,193,247, 15, 67,192, 20,166,163,183,169, 1,106, 1,247,143,137,209, - 95, 72,125,170,250,125, 58,213, 55,111,143, 14,232,195, 44, 5,100, 31,187,200, 87,190,113,207, 19,141, 39,174,107,235, 53,113, -106, 8, 31, 52, 87,166,165,182,221,163, 32, 22,160, 73,184, 20, 69,162,130,230,150,149,178,133, 68,158,209,233, 63, 22,164, 11, -117,168, 82, 94,245,208,114, 47,107,101, 91,118,158,193,215,242, 26,122, 59, 80,234,131, 37,245, 18,122,246, 94, 27,104,123, 63, - 46,237, 60,219, 96,218,140,235,197,163, 49, 39,211,162,138,138,143, 96,175,119,201,164, 73, 24,162, 19,151, 83,142, 16,241,246, -251, 10,234,106, 72, 29,159,155, 85,119, 18, 6, 85,140, 0,186,186, 41,229,159, 16,143,142,227, 71, 44,145,226,162,126, 85, 33, - 80, 99, 5,251, 40, 22,120, 11,234,164,128, 42, 75,175, 36,252, 73, 4,107,201,222,115,115, 33,190,188,101,131, 8,209, 22, 39, -245,136,250, 7,207, 94,167,242,111,151,133,165,171,175,222, 14,169, 48,111,234,142, 62,147,243, 85,178, 83,209, 68, 55,222,120, -161, 40, 9,240,146,216,232, 18, 19, 83,215,160,161,235,215, 92,134, 36,112, 36,215,101,126, 6,170, 87, 48, 93,216,105,167, 35, - 68, 10, 83,142, 52,165, 2, 9,216, 2,255, 0,201,211, 81,221, 24, 38,153,115,235,141,158, 98,113,201, 50, 90,155, 32, 54,165, - 62,181, 44, 36, 87,113,218,107,220, 71,168,118,106,210,207, 3, 75,134,109, 38,170, 39, 0,114,118, 99,142,114, 83,216,196, 11, - 37,246,252,171,145, 74, 34, 64,176,217,164,222,110, 65,109, 47,104,163, 12, 54,226,138,106,105, 93,189, 15,110,172,110, 44, 90, -224, 30, 42,117,193,241, 89, 93, 86,185,179,205,214,188, 38,225,152,222, 56,199, 58,181,217,225,193,114,116,217,119,155, 19,246, -145, 6, 43, 73,220, 84,235, 82,146,211,192, 4,246,146,142,157,253,154,142,217,226,137, 3,156,139,134, 69, 61,104,149, 72,235, -119, 60,224,158,177, 92,239,205, 57,222,217,124, 90,143,191, 33,105,116, 16,149, 21, 2,149, 10,244,244,244,213,147,173, 73,167, - 33,140,199, 80, 69,207, 36,180, 78,144,143, 21,246,220,241, 42,154,165, 67,180,142,148,253, 58, 79,130, 90, 48,169, 65,198,164, -174, 60,200,108, 22, 9, 45, 63, 86,211, 78,174, 40, 16, 9, 36,250,105,221, 93, 65,158, 18,120, 84, 11,176,100, 21, 97,164,114, -181,165, 13,151, 83, 49,162,132,161, 73, 82, 80, 71, 85, 30,149, 35,215,219,170,185, 24, 69, 81, 62, 2,106,187,243, 15,153, 91, - 54, 59, 96,148,191,122,142, 36, 46, 45, 22,146,174,136,121,173,167,243,154,215,224,211, 76,182,116,206, 74, 56,236, 12,135, 42, -167, 28, 83,110,189,114, 94, 68,238,123,118,222,211, 51,222, 83,150,248,110, 36,143,245,116,212, 5, 16, 71,120,249,189, 59, 53, -161,142, 33,110,208, 58, 42, 76,236, 16, 13, 34,186,119,142, 93,109, 56,173,186, 35, 13,173,148, 61,225, 35,112, 4, 84,184,160, - 8,233, 79, 94,171,102,156,185,216, 85, 65, 5,212,165,125,184,253,225, 24, 72, 39,196, 47,168,146,164,138,182, 8, 6,128,138, -122, 8,212,235, 57, 80,165, 22,138,214,221,107,103, 33, 98, 86, 39, 53,214,152, 55,214,146,139,124,153, 40, 10,102, 37,221,170, -169,149, 41, 84, 10, 72, 82,189,149, 31, 65, 58,232,252,151,204,238,229,109,194, 27,214,169,107, 74, 56, 14, 44, 56, 56,125, 35, -172, 10,206,115, 94,196, 55,235, 25, 45,202, 41, 29,211,208,225,149, 87,203,222, 39,112,182,207,153,106,156,202,227,220, 45,210, -159,133, 49,133,123, 69,169, 17,212, 80,177, 81, 80,104,161,218, 53,239,203, 13,238, 59,232,153, 52, 68, 22, 61,161,192,244,130, - 20, 87,141,238,236,159,106,247, 70,240,142,105, 32,246,138, 72,110,200,184,224, 40,160,149, 3,218, 83,223,242,106,209,183,225, -213, 87, 35, 13, 31,109,133,145,213, 6,163,248,105,250,180,102,228, 84, 98, 8,161, 18,230,192,170, 36,147, 95, 70,140,204, 13, - 17, 6,188, 73,241,212, 19,180,164, 14,210, 7,110,146,110, 52,210,113,175,102, 61, 18,209, 25,201,179,204,132, 71,104,178, 22, - 90,140,183,220, 72,125, 65, 41, 86,212, 36,171,104,175, 83, 77, 66,159,116,100, 77, 47,115,130, 12,207, 71,109, 17, 4, 80,229, -112,203, 45, 75, 18,153,247, 89, 3,116,119,157,112, 50,219,225, 68,164,108, 43,218, 23,185, 64,129, 78,211,211, 85,108,230, 91, - 73,227, 50, 50, 86, 22,135,105, 36, 31,181,209,219, 78,104,115,113, 76,233, 53,190, 60,202,111,214,172,171,144,229,223,112,252, - 27, 17,178,217, 46, 38,194,223, 42, 71,114,223, 2,255, 0,145,194, 12, 21, 48,128,219,110, 56, 28,122, 43,187,163, 7, 40,133, -172, 1, 90,246,124,241,243,215,207,136,239,247,177,179,218,124, 84,138,246,198,246,219, 59, 16,197,119,121,205, 36, 2, 3,194, - 56,133,112, 24,229, 91,237,135, 97, 59,133,172,147,181,236,107, 88, 11,181, 59, 45, 65, 21,128,128, 78,163,193, 80, 30,154,173, - 60,165,204, 88,221,170,215, 26,209,155,227,185, 30, 87,105,137, 14, 69,139, 20,200,226,205,102,218,221,189,219,210,155,148,230, -224,218, 10,110, 9,108, 33, 65,146, 74, 67,117, 29,224,235,156,237,187, 93,222,227,116,235,171, 89,227,142,119, 16,249, 90, 65, -113,112, 96,210, 10,147,220, 39, 13, 89,234, 78,138, 31,204, 96,115, 11, 12,106, 17, 1, 56, 56, 21,197, 80, 98, 58, 58, 42, 23, -184,227, 48,237, 57,213,142,205,113,203,114, 28, 74,102, 66,212, 17,149,221,239, 86,229,218,154,134,137, 40, 15,182,235,239, 70, -113, 74,150,132, 33, 45,157,205,181,183,190,186,209, 75,230, 28,151,219,100,143,101,188,115, 54, 50,124, 48,215,107, 46, 67,165, - 26, 28, 59,139,142, 5,203,194,171,226,128,153,124, 39, 63, 66,166, 39, 16, 61, 84,215,155,125,141,142, 92,227,199,151,105,180, -222,242, 5,201, 46, 48,229,218,227, 33,248,183,108,116, 56,165,123,110,160, 50,252,114,250, 91, 14, 52,164,154,168, 26, 83, 80, -101,220,164,221, 33,212,201, 31, 28, 73,147, 90,208, 91, 34,112, 5, 67,131, 85, 28, 14, 84,248,119,133, 46,135, 35,135,206, 58, -184,245,209,185,217,246, 9,201, 56,113,182,179,136,225,216,207, 49, 92, 46, 45, 39, 11,200,172,247,121, 54, 40,151,183, 38,169, - 44, 34, 58,226, 45,149,197, 75,190,242,216, 10, 14,184, 42, 61,186,212,157,103,133,166,229,203, 55,130, 87, 92,207, 38,220, 26, -124,102, 57,173,121, 98, 41,213,168, 16,237, 58, 78, 26, 65,232,169,143,255, 0,186, 65, 26,120,132,128, 2,167, 80, 29,171,211, - 85,183, 55,227, 92,223, 5,184, 59,101,206,175, 15,194,207,172,215, 18,156,167, 25,183, 92,155,158,236,243,113,246,148,211,146, -147,189, 13,186,148,109, 30, 31, 84,237, 32,131,174,159,181,111,155,127, 52, 88,182,239,107,102,168, 28, 14,151,184, 35, 90, 27, -147,131,112, 37,167, 28,115, 81, 85,123,133,132,246,146, 24,165, 9, 40, 24,254,154,141, 38,228, 54,200, 88,166, 91,102,198,241, -204,134, 1, 88,178, 92,174, 48,159,201, 91,126,204,153,113,150,231,189, 46, 67, 69,162,181, 23, 10, 82, 16,132,145, 78,253, 20, - 86, 18,220, 93,193, 61,204,177,148,214,208, 67, 8,114, 16, 52,128, 87,134, 42,113,170,127, 12, 1,223, 66,229,195,170,161,252, - 25,219,115,185, 51,114,103,183, 29,152,113,226, 74,145, 61,165,196, 91,130, 83,143,149, 20,180, 67,101, 32,245, 34,137, 36, 13, -111,102,137,222, 22,144, 73,113, 35, 78, 57, 1,199, 26,166,221,166,146, 56,207,134, 10,156, 58, 40,214, 81,155, 62,172,118,124, - 72,120,211,112,172,146,223,114, 3,114, 19,110, 75, 33,130, 84,170,236,112, 2, 14,240, 0, 32,245, 26,189,178,219, 71,138,215, -189,228,184, 5,207, 62,222,202,106,214, 23,184, 53, 93,136, 20,216,195,217,197, 36, 92, 11, 23,150,238, 14, 67, 93,186,105,109, -180,187, 70,125,243,106, 75,110, 56,145, 82, 42, 82,161, 94,186,176,189, 51,180, 3, 26, 42,143, 85, 74,149,206, 67,128, 80,106, - 52,201, 89,145, 26, 75, 44, 55, 45,199, 34, 59,226,172, 84,123, 8, 81, 36, 82,137, 3,160, 29,149,213,228, 97, 27,136,198,151, -109, 35,102, 82, 70, 52,213, 84,100,184,202,147,227,125, 43, 64,172, 36,252,199, 18, 63, 71,168,105,229, 11, 82, 11,244, 59, 1, -133,100, 72,207, 16, 73, 66,219,109, 67,161,165,104, 71,197, 77, 37,239, 12,206,138, 71, 10,221, 77, 58,180,182,141,213, 53, 85, - 67,168,234, 79,163,167,235,210, 53, 33,164, 53,200, 73, 74, 85,183,197,113, 59,222, 95,209,248, 27, 84,144,161,226, 52, 0,244, - 10,106,186,250, 97, 25, 12, 69, 39, 58, 14,126,172,169,255, 0,122,205,165,222,177,188,127, 27,110,217,142, 37,156, 98, 66,229, - 71, 82, 45,233,102,229,123,126, 90,144,146,135, 84, 6,231,128, 61,137,233,211, 89,221,191,104,109,157,196,183, 14,124,131,197, - 8,123,216, 48, 14,129,195,182,166, 7,151,128, 7, 4, 53, 35,242, 13,182,241,199,120,180, 12, 46,109,150,251,129,228,178, 90, - 98,241,153,218,101, 76, 45, 69,185, 11,194, 84,184,133,166, 90,113, 99,104, 97, 64,209,116, 32,116,214,107, 98,187,143,125,187, -117,236, 82,199, 60, 0,150,196,224, 49,110,156, 28,164,140,215,162,173, 47, 29,225, 70, 34,210, 67,179, 35,133, 49,177, 75, 5, -166,250,251, 81, 36,222,125,202,221,105,183, 46,241,123,241, 31, 68,105,142, 70,138,164,133, 55, 25, 11, 27, 28,113, 65,126,192, -173,125, 58,178,222,247, 41,172,135,136, 35,212,247,187, 75, 16, 40, 83,197,196, 98, 6, 24,154,168,100,109, 37, 69, 20,185, 90, - 45, 86, 59,220,247,217,126, 67,214,181, 62, 92,199,150,167, 4,134,102, 70,221, 90, 58,243, 96, 13,233, 73, 1, 65, 61, 43, 93, - 57,101,119, 37,244, 45, 4, 1, 34, 35,198, 72,122,129,225,209, 68,247, 55, 20,175,111, 51,174,153, 58,151,113, 93,186, 44,123, -125,185,136,177,150,220, 22,195, 81, 89, 9, 59, 18,181,146, 55, 21, 44,154,168,232, 91, 67, 22,219,251, 61,100,189,196,156,113, - 61, 56, 81, 52,174, 13,246,211,102,116,117, 73,154,210, 22,227, 37, 45, 4,160, 56,208,163, 73, 80, 20,165, 64,174,172, 98,127, -134,195,215, 72,215,160, 18, 5, 25,135, 14, 3,119, 24,236,221,102, 42, 20, 47, 13, 78, 61, 34, 59, 69,231, 0,108, 31,154,130, - 58,149, 30,154,106, 73,164,240,203,162,106,185,112, 7, 1, 66, 41, 60, 78,202,240, 61, 62,224,133, 49, 10, 68,167,163,196, 91, -206,150,146,106,182,227,119,157,169,244, 39,174,140,248,112,157, 79, 0, 19,130,245,255, 0,141, 44,141, 37, 14, 84, 68,187, 8, -173, 41,247,199,124, 52,182,180,143,163, 59,188, 85, 41, 38,148,236,173, 7,110,159, 71,162,233, 11, 75, 66,169,194,191, 66,196, -228, 5,212, 80,168, 39,215,249, 13,117,131, 2, 26,216,182,101,173, 21,119, 7,181,206,131,208,127,163, 69,225,117, 82,196,212, - 18,175, 64,118, 56,163,241,255, 0, 70,135,129,213, 74,241,232,147,215,125,245,162,141,127, 47, 86,156,108, 32, 81,252, 71, 93, - 39, 42,106, 85,218,178, 62, 45, 62, 26,148, 60,122, 74,145, 41, 32,154, 57, 74, 86,159,149, 53, 33,128,116, 83, 78,184,164, 41, - 10,112,146,226, 87,211,210, 13, 58,124,154,150,194, 50,166, 77,201,173, 26,152,146,146,133,184,191, 64,244,233,194,212,225, 77, -155,147, 68,150, 84,162, 66, 20,174,181,167,175,243,105,208,224, 41, 6,224,154,241,181, 58, 74, 65, 89, 61, 71,200, 62, 45, 43, - 88,166, 93, 59,168,250,253,164,138, 14,190,154,117,209, 7,129, 77, 58, 98,104,187,200, 90,146,145,184,128, 15,181,233,253, 26, -113,178,180, 83, 46,121,160, 21, 29, 11,161, 74,136, 80, 61, 15,167,243,105,193, 58, 83, 69, 77, 2,229,185,231, 9, 90,220,233, -217, 90,119,124,154,112, 93, 52, 83,102, 50,104,187,214,181,246,182,162,163, 78,239,243,105, 66,240, 82, 12, 38,140, 65,130,241, -113, 40, 59,170,122, 2, 71,120,248,181, 26,226,237,160, 84,168, 45,201, 53, 47,224, 88,220,219,246, 65,100,199,153, 4, 57,120, -185,194,183,165,106, 77,124, 63,122,112, 32,171,179,177, 32,212,235, 27,191,239, 12,219,173,229,184,118, 76, 97,119,168, 45,108, - 54, 61,169,251,133,196, 80, 55, 55,184, 55,214,107,174,242,237,145,237, 17,162, 70,138,192, 98,223,102,183,177, 14, 35, 72, 77, - 17, 30, 44, 84, 4, 33, 35,165, 43, 64, 58,235,194, 27,133,204,151,178,190,121, 10,185,206, 46, 39,172,227, 94,236,176,180,101, -140, 49,193, 24, 70,181,160, 15, 64, 74,169, 28,167,207, 54,172,102,223,112,128, 39,178,135,208,226,183, 39,197,246,182,164, 26, -145,223,211,169,166,160, 70,231, 56,160,169,190, 22,170,164,210,188,197,127,124,249, 10,219,136, 89, 25,145,125,159,117,101,166, - 33, 69,183, 52,169,179,101, 73,112,172, 6,218,105, 8, 82,148,119, 2, 79,162,158,141, 91,178, 2, 35, 46,118, 9, 81,164,182, -112, 11, 86, 44,121, 93,178, 53,111,147,200, 94, 99, 46,167, 20,194, 45,237, 34, 82,177,187,108,144,237,226,232,146, 55,169, 18, - 94,105, 43,247,100, 20,244, 82, 26, 37,195,215,218,108,128, 76,139, 87, 53,168, 92, 78, 57,116,154,134, 65, 92, 51,170,219,158, -254, 44, 62, 78, 60,170,160,226, 28, 37,129, 88,162,183, 57,228, 37,225,139,218,155, 98,109,218, 91, 3,106, 23, 41,109,164,200, -148,233, 6,129,111, 45,107,245,234,228,120,142, 29,208,159, 46,154,153, 6,215, 45,215,121,197, 7, 73,250, 5, 85, 31, 51,159, -137,159,154, 94, 89,225,140,158, 62, 27,229,155,152, 49,172, 79, 32,199,238, 15, 28,191, 40,193, 39,227,120,195,182, 93,138,222, -243,115,238, 49,226, 67,112, 40, 3,177, 41, 89, 42,253,144, 77, 53, 3, 92, 82, 60, 54, 73,153,158, 64,169, 94,193, 86, 81,236, -177, 71,139,220, 79, 80, 8, 42,187,126, 14, 60,165,229, 46,227,137,114,108,158,125,198,113, 28,231,149,236,183, 91,122, 49,136, -153,244,118,110,150,219,102, 46,204, 96, 74,227, 66,153,190, 42,156, 84,160,189,206,120,101, 96, 4,138,129,219,103,189,153, 32, - 68, 4,176,181, 48, 36, 99,214,159, 77, 1,104,235,163,220, 41, 86, 63,155,191, 20,126, 44,177,221,166,241,127, 13,241,134, 21, - 50,239, 38,236,155, 37,190,211,139,226, 17, 31,147,113,153, 57,104,106, 59, 17,163, 69,138, 75,203,117,197, 4, 33, 8, 73, 36, -244, 2,186,206,195,179,190, 81,173,225, 27,214, 77, 79,118,212, 64,239, 76,157,128, 85,170,225,111, 39, 87,251,184,135,200,222, -106,240,110, 55,227,172,102,124, 69,220,152,227,136, 86, 24,242,121, 54,245, 38, 83, 96,161, 50,133,185,182,190,239, 8,174,239, - 12, 56,227,181,246, 86,134,205,117, 22,242, 65, 19,116,198,247,131,211,168,167,160, 19,243,165, 82,189,140, 99,136, 7, 88, 28, - 83, 63, 78,103,209,235,169,255, 0, 37,242, 71,229,147,146,177, 41,109,217, 56,223, 33,226,242,181, 58,197,174,248, 23, 54,205, -124, 42,108,109, 15,248, 19, 29, 88, 82, 15,112,117,179, 81,214,154,165,117,220,208,149,108,133,221,184,143,151,101, 41,208,199, - 32,239, 48, 55,216,107,231,203,205,207,225,201,203, 60,111,151, 75,190, 90, 50,100,242,158, 9, 4,170,122,173,140,197, 48,178, -104,241,218, 53,162,152, 78,230,230,164, 36, 84,248, 68, 40,246, 6,207,110,180, 59,110,240,199,163,101,110,135,116,240,253, 31, - 44,106, 35,100,133,189,208,113,168,183, 11,228, 59, 70, 47, 2, 58,158,113,184,190,236,200,103,193, 63, 70, 90, 40,246, 74,104, - 64,166,218,122, 53,117, 42,187, 1, 85,183,118,133,198,155,177,188,194,203,203, 51,185, 86,139, 3, 51,110, 76,199, 17, 91, 83, -144,218, 83,205,182,226,170,163, 82, 6,196,148,165, 95,180,116,236, 59,119,119, 91,170, 24,178, 13, 10,107,165,156,121,126,114, -233,104,131, 6,101,150, 83, 13,162, 58, 82,167, 93, 66, 95, 90,212, 69, 9, 81, 29,149,245,106, 36,145,248, 69, 65,168,143,141, -173,169,101,204,124,161, 41,149, 29, 94, 12,150, 22,137, 12, 21,167,161,216,170,211,168,245,106, 68, 55,137, 76, 57,171, 78,158, -109,195,226,222,113, 60,107,150, 45,145,194, 31,144,227,120,198,100, 25,103,107, 98,235, 29,178, 98, 74, 85, 5, 1,144,211,106, -109, 71,167, 84, 36,245, 36,157,122,115,201,126,113, 55, 16,191,109,149,202, 99,239, 49,127,202, 78, 35,208,113, 29,189, 85,231, - 79, 52,185,104, 91, 78, 46,227, 24, 63, 7,126,176,227,233, 31, 53, 84,153,109,148,145,181, 53, 29,253, 63,163, 94,129,134,253, -166,184,173,197,177, 28, 41, 37,210,160, 74, 82,154, 31,131, 83,155,122,211, 85,174,132,142, 20, 9,104, 43,187,175,125, 19,253, - 26, 95,199, 10,111,193, 52,199,203,179, 27, 77,133,147,110,138,181, 73,186, 58,212,143,125, 49, 36,198,109,118,120,229,179,177, -210, 28, 88,222,189,196, 81,178, 7, 78,181,214, 35,152,185,246, 13,142,224, 91,202, 29,139, 53,106, 24,161, 84, 68,246,212, 59, -155,134, 90,144,210,170,122, 2,225, 85,162,201,207, 23, 12, 82, 92,182,114,135, 69,250,203, 30,100,200,241,229,217,215, 38, 84, -185, 11,109,141,201,113,233, 7,198,105,182,208,165,167,114,146, 8, 20, 52, 26,231, 51,243, 14,235, 13,187,197,172,177, 31, 17, -217,189, 48, 81,138, 55, 5, 32, 98,135,141, 70,115,229,113, 58, 72, 33, 83, 19,151,101, 54, 99,242,221,250, 62, 81, 46, 67, 25, -132, 86,221,185, 89,219,184, 98,214,136,145, 35, 38, 66,173, 44,173, 79,237,125,233,108,134, 20,181, 45,197,109, 1,176,127,123, - 92,199,152,121,178,226,254,216, 67,164,152,154,246,135, 20, 13, 26,219,145, 13,143, 16,132, 41,196,209, 58,119, 34, 18,122, 21, - 50, 52,205,127,204,210, 47,217, 36,227,200,143,221,114,153, 23,120, 14,191, 49, 40, 68, 75, 20,104,236, 41,126, 35, 77,184,228, - 38, 82,204,182,227,148,132,150,125,148, 16, 77,106, 69,117,204,183, 46, 75, 26, 60,107, 68, 99,131,213, 73,115,201, 60, 72,212, - 85,165,217,234,196,213,163, 47, 36,130, 51, 28, 88, 14, 41,199,182,164,219,135, 55,113, 21,203, 22,188,225,249,206, 56,187,141, -191, 17,114,195, 3, 3,133,142,173,171,209,147, 10, 70,229, 50,202, 36,205, 74,219,183,197, 18, 31,250,112,202,247,109, 27, 71, -118,185,101,239, 37,238,194,238, 27,203, 9,244, 62, 77, 70, 98,253, 77, 3,164,150,179, 23,189, 7,119, 80, 69, 42,106,118,213, -127, 27, 75,196,154,139, 72, 40,128,106,212,152,103,193,106,177,115,111, 46,101,173,102, 86,203,176,141,109,111, 19,186, 91,173, -176,112, 77,185, 35,115,216,183, 78,177, 53, 29,151,124, 85, 60, 36, 41, 72, 82,154,232,203,167, 96, 73,233, 67, 93,104,185, 99, -148,237, 91,107, 36, 1,207, 50, 53,206, 51, 43, 8, 46, 15, 46, 33, 52,233,199, 31,121,189,229, 21,109, 14,228, 38,112,152, 49, -161,232, 6, 28, 8,204,144, 87, 63, 85, 48,184,175, 39, 94, 93,200,248,229,223, 41,138, 57, 3, 36, 19, 36,191, 38,205, 5,132, - 55,100,183, 69,140, 92, 81, 50,195,108,180,221, 90,162,148,216, 77, 83, 64, 7,171, 82, 57,194,197,219, 94,217, 52, 54,174,248, -104, 67, 64, 14,113, 37,238, 37, 61,213, 36,227,128, 42,133,106, 86,218,225, 61,192,123,128,113, 85, 56, 96, 61, 85, 44,226,188, -101,100,228,142, 69,207, 49,215,230,203,199,242, 11, 44, 89,215,188, 14,110, 17,141,165, 80,242,233,140, 34,140,194,141, 24,177, - 25, 13, 25, 73,113, 73, 91,251,105, 81,213, 34,186,201,238, 92,213, 55, 46,109,182,183, 8, 36,137,228, 50,102,204,243,170, 32, - 78, 46,115,149,196,233, 69, 13, 92,184,213,132,118, 44,184,154, 80,160, 56,123,186, 70, 7,161, 21, 51,233,166,102, 69,193, 60, -143,137,217,102,222,243, 58, 96, 18,109,153, 50,109,246,172,107, 44, 63,118,228,247,201,209, 83,226,169, 81,210, 16, 17, 35,194, -218,144,241, 10,239,233,211, 93, 14, 63, 49,118,189,194, 54, 67,182, 22,220,120,145, 43,228,139,188,198, 52,225,222,197, 90,184, -233, 81, 76,110,118,242,237,218, 93, 36,111, 4,168, 5, 51, 76,194,250,106,182,103,119,155, 62, 64,126,243,187, 91, 90,180,170, -100,103, 91, 91,246, 68, 37,185, 50, 92,140,214,212, 54,182,212, 82,218, 7,140,146,162,162, 9,169, 58,190,217,173,167,181,253, -156, 78,212,132, 96,236,130,156, 72, 57,146,152,116, 86, 82, 34,208,221, 37,125,227,137,196,227,244, 83, 71, 11,200, 88,199,108, -242, 16,187, 56,150,197,214,228,212, 98,110, 11, 83,234, 67, 14, 20,161, 78,130,132,165, 10, 82, 5, 72, 26,220,186,208,222, 57, - 67,144,181,167, 44, 63, 77,103,183,107,119, 92, 76,214,146,128, 99,133, 5,202, 86,171,101,190,117,179, 31,176,228,208,242,134, - 28,101,251,191,185,198,219, 18,223,101, 68,178, 3, 91,234, 18, 86,226,144, 9, 80,213,158,205,119, 36,140,116,179, 70, 88,152, - 41,196,187,167,209, 79,219, 60,181,186,139,116,240,235, 63,162,152,214,121, 24,197,161,160,236,164, 51,117,187, 62,218,208,210, - 55,148, 51, 8,128, 7,204, 82, 71,137,216, 77, 41, 67,171, 91,129, 53,202,105, 58, 90, 61,191, 85, 78, 58,158, 48,192, 84,125, - 42,209, 36,200,113,126,226,191, 10, 67, 14,190,218,221,120,161,167,146,205, 74,188, 52,132,212, 4,246, 1,171,134, 79,169,184, -156, 70, 20, 78,210,161, 13, 53,211, 21,242,133, 58,211, 46, 60,211, 10, 81,124,182,217,218,216, 2,181, 81, 35,160, 21,161, 39, - 83, 3,154,211,141, 60,224,189,181,179, 82,210,150,211, 13,245,237, 65, 90,220, 91, 85, 4,238, 88, 20,246,169,211,224,211, 82, -176,162,183, 58, 32,173,236,165, 73, 80, 96, 71,132, 36,199, 74,139,239, 36, 2, 28, 41, 82, 89, 74, 72,216,164,169, 43, 59,138, -186,212, 20,244,213,100, 55,178,107, 12,112,192,118,211,132, 40, 61,116,154,194,157, 9, 91,106,117, 94, 9, 66,150,180,132,146, -135, 20,105,236,130, 7,237,106, 69,204,109,121, 4,102,190,145, 76, 49, 69, 59,108,178,237, 22,213, 52,140,143, 27,150,243,114, -223,109,112,238, 16,101,169,135, 34,180,210, 13, 80,218, 54,148,169, 94, 34,146,162, 73,236, 20,214,122,250,222, 91,134,147,109, - 56, 5,161, 11, 92, 1, 82, 78,100,244, 34,138,178,135, 67, 61,224, 74,158,154,120,231, 16,177,187,150, 81,104,122, 61,207, 41, -122, 13,209,152, 34,237, 58,242, 69,194,238,135, 84,148,164,148, 33, 75, 82,150,148, 36, 0,157,202,245,106,143,100,188,186,181, -179,123, 95, 28, 65,204, 39, 64,103,117,189, 56,225,129, 60, 80, 81, 78,224,233, 21, 78, 92,126,186, 43,122,143, 2,215, 10,204, -221,157,249,109, 72,118,205, 33, 23,103,222,141,238, 1,246,202,220, 73, 64, 81,221, 83,225,132,212,122,244,229,157,195,175,100, -121,156, 2, 3,198,144, 10,166, 88,250,232, 73, 27, 24, 1,106,229,143,109, 33,198,176,221, 29,181,195,184, 72,144,203,150,198, -196,151, 32,199, 51, 67,143, 50,219, 95, 89, 70,189,162,144,123,170, 53, 46, 75,232,153, 51,163, 96, 58,240,212, 83, 12,114,199, -141, 67,115,245, 28,104, 7, 66, 88, 27,163, 92, 26, 45, 77,142, 92,247, 85, 56,162,144, 80,104, 55,165, 52, 21, 39,179,166,157, -208,167,188,220, 65,206,137,239,211,128, 5, 41, 42, 94,246,194, 75,133, 37, 73,117, 41,116, 35,176,146, 59, 77, 7,126,165, 64, -117, 96, 7,101, 40,145,144,232,160,223,121,167,136, 75,200,115,199, 1, 72, 73, 65,220,217, 71,104,221,210,181,174,150,214,152, -242, 74, 76, 96,140,178,175,109,210,158,183, 45,197, 68,150,244, 69,202,109,200,210, 93,105, 32,164,197,115,162,146,104, 10,141, - 72,210, 39,141,183, 33, 30,208, 80,168, 7,166,156, 36, 56, 33,173,141,199,253, 96, 57,177,157,161,165, 70, 15,123,175,107,106, -160,223,178,149,175, 77, 35,224,194, 34,156,215, 63,101, 35,194,224,188,107,239,120, 75, 82, 83,181, 39,227, 61,218,235, 63, 17, - 90,109, 85,232,125, 68, 84,184,106,116,161,113, 71,168,209,212, 73, 73, 77, 73,167,167,175,244,105, 38,106, 48,243, 68,223,153, - 74,132,244,244, 30,255, 0,209,165,137,186,104,157, 37, 38, 56,243,198,167,121,235,217, 79,243,105,209,114, 41, 6, 67, 64, 85, -127,182, 73, 31,151,171, 75, 23,116,157, 70,182, 36,168, 0,146,105,223,165, 11,186, 34,234,196,177,191,166,211,211,191, 78, 11, -218, 20,164,204, 36,148,238,161, 20,244,247,254,109, 54,235,211, 65, 40, 64,195, 3,218, 20, 7,243,254,141, 15,140, 52, 90,104, - 95, 9,181, 0, 65, 72,166,143,227, 13, 26, 81, 23,144,128,149,251, 98,189,212,210,133,217, 52,217,109, 38, 40, 26, 38,138, 53, - 79,163,166,158,248,186, 78,148,163, 41,241, 92, 78,223, 16, 0, 71, 90,143,242, 13, 23,197, 1, 71,166,134, 67, 78,161, 73, 72, - 80, 34,159,151,118,144,235,192,148,166,178,149,161,239, 75,136, 5, 9, 52, 53,174,222,237, 87, 92,222, 97, 86, 86,204,198,174, -143,149, 12, 97, 57, 7, 32,253,237, 33, 9, 49,241, 75,107,215, 20,138, 84, 57, 62, 93, 99,178, 15, 79,217, 11, 90,199,173, 35, - 92,143,204,141,212,178,207,225,219,156,174, 67,250,163, 19,243, 1,233,174,203,229,110,214, 46,239,252,103, 12, 34,110,175,247, - 28, 7,206, 79,162,186, 77, 62, 36,105, 17, 94,101,230,144,227,110, 32,165,105, 41,168, 80, 58,224, 55,150,236, 99, 16, 10,244, -156, 50, 59, 80,198,185, 93,230,211,203,222, 53,149,195,152,171, 53,170, 68, 43,162,219,127,195,147,105, 11,101,240,235,149,236, - 9,160, 85, 77,122, 17,172,160,186,117,171,240,202,180,214,238, 74,149,252,140,249, 34,176,121,111,198, 87,150,229,129, 57, 39, - 48,229, 72,121,219,149,246,114, 3,175, 98,214, 9,100, 41,171, 68, 74,141,173,144, 40,169,110,160, 2,226,201, 77, 75,104, 78, -182,113, 90,155,192,215, 74, 16,102,130,169,247, 13,195,197,113,108,126,232,249, 47,213, 86, 11,204, 23, 47,113, 71, 22, 99,232, -123,149, 34,219,166, 88,158, 74,214,228,107,172, 6,231,219,202, 91, 4,251,109,184,149,160,212, 10, 0, 70,152,191,141,178,200, - 24,214,130,149, 22,219, 87, 2, 84,244, 85,118,227,140,223, 19,229,164,197,123,132, 60,176, 90,162, 99,238, 56,146,206,119,116, -192, 97, 97, 24,179,109,189, 80,167,163,202,126, 35, 14,205, 9, 4,212,195,109,195,221,168,115,109,143,187,238,150,132,234,250, - 77, 76,248,167,219, 98,231, 21,235, 63, 69,115,135,206,181,191, 13,189, 92,115, 30, 36,228,168,145,236,242,211, 29,231, 27, 22, - 75,196,155,109,162, 96, 88, 86,199, 89,216,166, 18,230,213, 1,185, 43, 69, 71,120,161, 7, 81, 54,235, 49,111, 38,166, 96,230, -148,224,105,231,222, 72,208, 10, 40, 60,107,227,211, 54,192,102, 97,188,175,145,227,184,132,217,243, 81, 22,244,236, 75,107,144, -212,167,230, 74, 18, 72, 41, 66, 11, 2,171, 36,171,109, 18, 58,250, 53,211, 33,152, 58, 48,231,166, 88,212,160,242,236, 70, 6, -190,166, 63, 3,223, 34,118,222, 55,179, 79,243,193,230, 58,200,187, 29,232,220,164, 99, 28, 47,104,203, 45,226, 19,150, 54, 92, - 80,141, 63, 35,117,137, 45, 7,153,125,215, 84,184,176,214,170, 20,160, 58,186, 16,227,106, 25,237,214,245,151, 8,216,200, 44, - 4, 41, 24,175,103, 12, 62,126,202,133,117, 35,151, 66,226,122, 79,179,211, 93,218,229,175, 50,124, 91,198, 49,231,221,254,240, -183, 38, 67,169, 30,249,115,146,226, 11,129, 41, 52, 5, 78,184,119, 33, 0,158,130,180,244, 13, 98,239,238, 97,183,126,152,154, - 92,227,211,141, 63,107,182, 92,220, 16, 15,116,124,184, 87, 51,243,239,196,195,143,164,123,229,154,197,120,181, 95,239,171,184, -123,164, 56, 86,183, 5,215,107,170, 35,171,142, 36,169,182,130, 59, 84, 84,122,119,234,188,252, 84,128, 29, 26, 71,101, 91,197, -202,109,184,112, 87, 19,210,166,154,217,127,153,187,117,210,217,108,153,117,137, 10,227, 29,212,210, 83,236,182, 19, 38, 59,106, - 2,187,118,128,149, 4, 30,180,212,109, 79,121, 71, 82, 55, 14, 78,141, 8,140,233,120, 24,116, 31,170,185,175,230, 83,202,223, - 28,114, 62, 89,103,228, 92,122,237,117,179, 89,242, 96, 21,127,183, 88, 20,220,123,116,155,138,170,180, 75, 40,240,202,219, 47, -245, 75,219, 72, 5, 64, 42,149, 82,137,187,178,221,102,181, 97, 96, 0,166, 75,209, 89,107, 73,204, 4,193, 62, 99,232,225,245, - 81,220, 15,202,134, 41,135,176,204,203, 19,239, 45, 32,133,128,157,169, 82,149, 81, 85, 40,132,110, 53, 61,164,234, 96,223, 37, -151, 7, 83, 23, 50, 2,112,171,193,131,226,136,143,110, 74,233, 84,161,176, 9,217, 85,168,166,160,215,167,167,213,168,239,187, - 47,170,135,156,106, 76, 77,173,185,177, 12,117, 20, 7,130, 86,150,138, 83, 85, 84,142,206,206,218, 82,186,104, 93, 22, 21,166, - 78, 20,232,158,217,129,192,188,177,101,185,161,182, 88, 76,108, 98,231, 29, 82,122, 37,181,166,235, 21,178,180,158,148, 41,223, - 65,234,248,117,214, 60,167,188,115,247,120,132,106, 73, 14, 8, 56,247, 77,115,175, 50, 35, 18,109,228,167,218,109,115, 55, 34, -205,237, 22,199, 36,198,142,135,102, 73,105, 11,240,118, 55, 86, 22,232,236, 27,169,217,235,215,183, 54,189,154,230,235, 75,159, -221,105, 56,244,165,121,178,226, 12, 42, 59,139,200,119, 64,255, 0,137, 62,208,195,145,148, 64,218,201,240,220, 79,164,212,131, - 93,108, 36,229,168,203, 82, 57, 8, 61,117, 73, 43, 7, 10,242,102,107, 50,226,167,225,197,101, 48,153,116,109, 72,105, 59,164, - 4,244,253,170,119,250,181, 46,219, 98,138,212, 7,188,234,112,233,202,162,146, 27, 84,243,150, 44,247,182,239,179,102, 90,158, - 92, 38,110,150,249, 41,186,251,147,139, 93,206,250,252, 52,237, 97,165,150,193, 2,189, 8, 10,161,245,235,207, 30, 99, 94, 56, - 93,203, 36,145,196,198,233,110, 15, 44,112,205, 9,111, 17,219,134, 53, 71,117, 49, 46, 39, 72, 7, 12,211, 37,170,174,231, 32, -140, 66, 37,150,199,146,218, 47,175, 49, 14, 76,133, 93,161,193, 83,150,203,146,229,205,221,225, 23,214,133, 41,175, 12,208, 37, - 72, 32, 26,107,142,223, 69, 45,203,229,117,172,205, 4,129,164,168,115, 16, 1,169, 58,211,136,168,205,179, 36,184,130, 19,135, -232,235,168,101,236,194,209, 50, 85,230,231, 50, 52, 75, 26,152,132,236,235, 84, 24,119,167, 64, 91,137,116, 2,133,164,239,121, - 10, 66,133, 64, 73, 3,226,210,159, 20,172,107, 35, 97, 47, 4,128,226, 90, 58, 51,232, 67,233,169,177,219, 57,128, 1,138,116, -209, 8, 28,203, 14,227,107, 85,134,249,100,182, 55,113,153,225,125,223,145,251,243,230, 44, 23,119,238, 91,174,182, 84,164,109, - 40, 0, 20,167,167,125, 53, 10,227,151,101,100,190, 52, 50,184,176, 46,166, 32, 82, 19, 0, 15, 79, 89,162, 22,197,135, 83, 79, -161, 42, 80,195,243,184, 81,113,123,150, 19, 42, 28, 43,205,238,228, 87,115,111, 44, 84,181,201,129,109,182, 66, 5,231, 19, 13, -176,166,129, 82,138, 83,181, 69, 68,142,202,107, 49,186,237, 50, 73,112,219,192,226,200,219,221,240,208, 2,231, 28, 6,162,135, - 14,145, 72,124, 78, 99,245, 14,140,169, 91,141, 45, 88,182,115,151,220, 45,185,158, 39,117,200,177, 89,150,187,156,184, 87,104, - 23,133,199,106,201, 33,212, 5,135,219, 70,208,165, 45,132,168, 41,108,212,212, 5, 16, 14,168,185,186,226,239,106,178,108,182, - 83, 50, 57,154,230,130,215, 53,117,133,200,246,228, 15,102, 85,103,100,230,177,200,236, 79,163,229,233,171, 29,131,225,158, 92, -177, 24,182,214,109, 57, 5,230, 23, 37,218,151,126, 77,198,215,126,131,114,103, 29,206,236,236, 41, 30,233, 15,196, 96, 68,151, -111,121,228,189,226, 52,226, 84, 64, 41,170,136, 73,161,227,123,254,233,204,155,211,158,100,137,142,178,126,141, 46, 97,143,196, -133,216,234,122, 59, 83, 94,208,136,225,130,170, 12, 69,107,237,157,107,183,133,152, 35,218, 14, 5, 81,223,229, 24, 98, 48,227, - 81, 91, 60,201,121,226,252,213,220,133,219,211, 76,100, 56,116,153,240, 44,241,156, 64,189, 74,183,182,192,113,144,183, 29,148, -153, 97, 72,121, 47, 20, 45,160,158,162,135,215,173,115,249, 38, 14,101,177, 22,229,132,199, 40, 5,201,220, 14, 37, 14, 1,186, -113, 8,160,174, 24,213,127,243, 23, 57, 31, 24, 3,175, 60, 58, 49,237, 74, 83,228, 47, 48, 57, 87,155, 78, 90,198,102,102, 22, - 59, 74,227,227,214,233,145,113,251, 46, 29,141,219,177,137,111,205, 91, 12,188,235,146, 75,169,109,231, 27, 42,140,119, 15, 22, -128,159,101, 32, 26,106, 55, 44,121,121,107,229, 30,215, 51,108,229,122,202,224, 94,233,100,124,129, 20,128, 26,138, 1,239,127, -151,180,148,171, 75,173,242, 77,212,136,158, 26,140, 84, 70,134,144,160, 47, 90, 97,211,157, 71,190,104, 49,190, 48,183,228, 88, -116, 94, 38,195,242, 43, 71,255, 0,226,240,175, 89, 93,171, 40,186, 50,184,179,239,142,130,183,221,109, 13,169, 97,182, 80,170, -209, 41, 87, 94,241,173, 15,150, 91,150,231,115, 5,195,247,107,136,222,124,103, 50, 55, 70,210, 11, 89,144, 4,144, 20,244,148, -244,213, 13,241,136, 57, 97,111,106,241, 53, 93, 51,156,159, 27,106,202,150,225,198,136,185,202, 83, 5, 41,135, 24, 22, 32, 17, - 66,224,105, 52,246,170,161, 74,145,217,174,229,177, 89,202,226, 28,226, 81, 14,124,122, 22,176,194, 23,252, 73,120, 36, 51,160, -209,108,154,237,132, 93,176,156, 41,139, 14, 52,212, 44,141,249, 73,126,235,149,204, 99,194,121,254,138,107,193, 81, 77, 17,181, - 42, 88, 93,118,250, 53, 62,214,218,226, 25,230,116,207, 38, 52,238,176, 31, 74,211,209,197, 51, 37,145,206,114,179,128,232,168, -246,248,213,146,212,133, 34, 10, 88,184,220,100,192, 90, 92,117,129,226, 34, 27,141, 16, 2,212,226,168, 86,165, 82,190,200, 26, -157,106,249,102,112,212,173,104, 56, 14,159, 69, 79,135, 91,129,224, 22,146, 45, 89,196,123, 38, 53,145, 71,153,102,102,235,147, - 94, 18,136,214,155,188,186, 60,221,174,216,224, 41,121, 41, 79, 64,130, 15,205,160,237, 38,186,153,121,181, 62,242,104,203, 30, - 91, 27,113,115, 71, 19,194,166, 51, 75, 70, 34,152,177, 36, 93, 39, 71,122,205, 12, 37,126, 59, 79, 73,146,164, 81, 14,169, 1, - 59,212,130,162, 43, 79,103,176,106,213,237,100, 68, 61,220, 50,166, 94, 67, 14,178,122,169,172,233,101,196,149,165,138, 60, 66, - 16,148, 10,212,132, 83,218, 61, 43, 93, 72,214, 87, 26,125,152, 97, 70,163,200,117,191, 29,166,218,109,110, 50,199,182,219,201, - 43,104,120,132, 2,170,247, 20,146, 53, 18,230, 54,220, 22,151, 40, 11, 78,232,210, 23,166,131,134,185,110, 23, 67,161, 46, 33, -165, 35,109, 58, 4,237,238, 79,119, 81,164, 92, 66,198, 4, 5, 13, 17,115, 80, 32,167,173,166, 68, 63, 13,199,102,198,151, 41, -182, 17, 33, 73,109,149,164, 56,218,202, 84, 17,237,168, 20,143,164,166,228,237,169, 26,204,222,198,246, 16, 24, 64, 37, 51,226, - 56,229,213,215, 71, 27, 1, 82,106, 75,157,109,189,221, 35, 38, 37,223,238,198,100, 66,143,109, 83,115,124, 84,132, 64,183,186, -193,113,180,173, 72,232,129,233,233,243,187,117,155,138,234, 11, 82,177,135, 16,226,236, 19, 50, 10, 28,243,250,169,233,152,241, -221, 40,169,194,144,134, 83,115,188, 91,163, 99,151, 71,215,120, 77,190, 56,182,227,142,182,218, 35,181, 13,149,172,169,192,144, - 91, 78,245, 57, 90,111, 89, 38,131, 83, 29,180,195, 99, 41,185,136,104, 46, 58,158, 49, 36,148,195,142, 0,116, 12, 40,155, 54, - 8,152,211,101, 78,185,110,105,198, 98,190,244,118,148,165,176,247,138,148, 57,225,239,173, 69,118,146, 43, 74,118,234,215, 64, -148,171,128, 39,134,117, 20,188,184,162, 97, 73,101,246,212,148, 37,164, 5, 81, 30, 19,235, 4, 37, 14,117,238,232, 8, 26,144, - 35,113,207,209, 70, 16,112,162,158, 2, 22, 36,111,144,230,209,185,198,213, 65, 85, 20,244,161,168,235,167,181,232, 68, 24,209, - 58, 69, 68, 20, 18, 28, 92,101, 5,208, 17, 66,186, 17,232,248,136,235,162, 35,196,195,141, 26,107,192, 86,235,145,227,143, 25, -198, 82,132, 40,108,250, 38,192, 27,171,251, 95,229,210, 91, 31,134, 80, 28,122,232, 53,129,133, 43, 79,102,191, 53,205,158, 23, -206,238,222, 59,171, 74,105,220, 40, 87,222,242,122,167,218, 35,187,179, 91, 15, 31,162,181, 40, 40,116,109, 34,128,138,250, 52, - 98,122, 48, 5, 25,109,186,158,222,238,186, 95,196,245,208, 0, 26,245,198, 16, 69, 73, 29, 52, 62, 38,129,104,162, 10,216, 13, - 7, 83,217,167, 60,117,160,128,208,169,110,169,249,160,215,213,160, 46, 58,233, 36, 14,138,215, 99,109,246,142,158,141, 44, 92, -117,208, 13,109,110,151, 18,163, 68, 2, 15,112,209,248,244, 16, 82,129,113,196,178, 18, 26, 38,163,180,127,155, 68, 38, 83,157, - 25, 2,139, 34, 51,175,251, 99,217,235, 66, 15, 79,213,167, 62, 33, 56,210,116,131, 67,162, 11,133, 84, 61, 5, 59,125, 58, 51, -114,156,104, 8,197,110,108,174,174,171,175,102,139,227, 40,196, 66,189, 69,169,180,138,184, 59, 59,105,223,249,180, 13,223, 93, - 24,137,180,113, 54,214, 85, 74, 36, 0, 59,254, 15,139, 73,248,179,211, 74,240,218,107,101,218,210, 8, 80, 20,167,229,232,210, - 77,221, 40, 68,218, 53, 18,222,234,220,232,157,194,189,221,148,249, 53, 95,113,115,215, 86, 86,209,138,191,222, 77,218, 49,103, -102,168, 82, 0,241, 32,217, 86,165,158,212,150,215, 32, 4,246,119,238, 39,226,215, 29,243, 14, 96, 77,187,137,203, 95,204,218, -239, 62, 82,181, 29,114, 0,224,207,157,213,118,221,152,211,168, 32, 30,129,123, 77, 58,212,245, 30,142,189, 70,185, 20,243,248, -129, 13,119, 72,225, 44, 43, 76,135,173,205, 73,201, 45, 97,196,181,225, 53, 39,222, 22,157,128,169,199, 25, 27,144, 59, 58, 13, -244, 39,224,167,126,170, 35,128, 73, 59, 1,201,106,124,146, 17, 25, 78,138,146,220,121,150, 82, 86,235,136,109, 41, 21, 42, 90, -130, 64, 3,225,214,236,200,214,241, 21, 66,132,212, 39,157,242,103, 17,227,143, 34,225,151,174,196,235,182,255, 0,245,136,243, - 46,113,152,124,197,113,174,197, 52,167, 65, 40, 34,157,169,235,170,217, 93, 19,158, 92, 90, 9,235,167, 88,247,123,173, 39,209, - 92,175,243, 79,248,196,241,151, 15, 70,159, 3, 19,122, 53,214,232, 25,125, 16, 54, 44,169, 18, 93, 72,160,240,246,165,107, 89, - 10,167, 96,160,233, 82, 6,149, 9,154,232,233,136, 96, 61, 0, 85,132, 91,113, 35, 84,164, 48,122,220,125, 21,242,211,230,251, -207, 23, 39,121,159,202, 33, 95,150, 94,198,153,128,185,239, 15, 1,208,236,219,139,243,130, 1, 83,190,201, 74, 16,202, 17,181, -180, 36,158,213, 18, 77, 64, 76,237,191,101,109,137,123,228, 58,156,239, 80,171, 15,137,108, 64, 50, 44, 26, 7, 20, 83, 80,111, -150,222, 97,186,112,127, 40,199,228,149,194,110,233,121, 17, 37,195,251,198,108, 95,126,147,108, 92,242,128,185,109, 36,165, 68, -173, 41, 73, 73, 41,235,180,154,105, 59,222,222, 55, 72,124, 16, 80, 42,167, 74,112,169,155,117,212,108,145,101,200,251, 43,173, -121, 47,226,209,149, 47,142, 19,129, 92,239,120,246, 87,143, 60, 30, 42,140,167,149,110,186,132,201, 39,123, 74,162, 86,217, 73, - 82,141, 73, 0,143, 65,213, 36, 27, 91,217, 23,130, 1,106,113,171, 59,157,146,222,105, 68,204,152, 39, 65, 35, 10,169, 23,222, - 92,143,200,238, 11,148,204,161, 83,241,201,142, 71, 76,187, 50, 47,110,206,129,105, 46,237,240, 8,109,199, 21,245, 36, 20,168, -145,222, 14,155,248,103, 91,230, 59,221, 36, 99, 90,155, 8,226,141,168,210, 9, 28,122,104,107, 63, 27,216, 34,100, 17, 46,145, - 29, 99,221,230, 41, 38, 67,105, 32, 2, 77, 54,186,158,234,143, 72,212, 87,221, 61,205, 45, 53,103,220,140,235, 2,174, 18,166, - 65,181,217, 17, 1,203,131, 78, 52,182, 54, 71,105, 74, 10,123,121, 2,131,214, 53, 70, 90, 75,149, 42, 21,235,219,164,187,162, -159,156,101,120, 76,155,106,236,247, 85,169,113, 65,116, 69, 11,114,129,128, 85, 90, 80,244, 0,215,224,212,227, 30,144, 8,206, -184,167, 49, 74, 36,156,200,206, 53, 59,218,102, 35,238,196, 66,142,250, 91, 29,119, 20, 0, 73, 73, 42,218,154,129, 80, 58, 14, -223,207,166, 92, 0, 42,149,158,248,135, 3, 82,110, 41,144,174, 20, 7,155, 32, 56, 18,183, 3,244, 27, 66, 74, 9, 20,235, 74, -130, 58,138,122,117, 30, 67,141, 25,118,163, 82, 77,134,233, 21,197,162, 74,202, 18, 86,177,176,164,210,170,168,237, 4,127,147, - 81,222,227, 68,227,194,164,174,112,129,107,155,229,163,145,174,200, 91,104,122, 53,186,204,219,234,105, 85, 21, 85,230,220, 90, -169,167,237, 10,116,215, 90,242, 54,119,197,204,118,169,254,176,123, 60, 55, 86, 27,158, 83,249,116,164,240,211,255, 0, 80,174, - 35,221,102, 66,109,213,148, 0, 86, 1, 27,143, 90,126,109,125, 28,179,123,136,198,188,191,184, 93, 38, 85, 18,101, 92,129,110, -198, 27, 68,153,236, 76,149, 29,213,169,144,168,140,151, 26,142,178, 13, 22,234,128,246, 18,147,212,234, 47, 53,110,178,237, 22, -134, 72,148, 57, 70, 32, 2,131, 50, 80,144,184, 86, 86,230,233,196, 20, 41, 85,207, 32,230, 67,104,147, 98,188,174,235, 38,225, -144,195,102, 99,172,253,213, 36,219,173,232,113,247, 82, 97, 45,232,228,178,167, 29,142, 18, 9,220,146,149, 10,131,175, 61,238, -124,235,123,191, 67,225,137, 30,198, 49,231, 83,245,123,236, 57,181, 2,166,120, 98, 18,163,155,189, 88,143,144,168, 74,255, 0, -205,217, 46, 85,145,228,151,171,142,106, 32,100, 86,233, 78, 92, 83,112,155,109,142,213,145,245,186,221, 95, 74,155,140,141,137, - 46,182, 66, 83,236,208,158,240,117,204,183,123, 23, 88,178, 59,103, 48,201, 25, 5,164, 7, 18,228, 37, 70, 36,149, 67,137,199, - 10, 96, 91,178, 65,222,244,117,213, 64,186,114, 13,218,251, 51, 47,149,107,110,227,113,153, 62, 33,113,251,128,148,224,240,155, - 96,237,117,244,160, 10,169, 42,160,160, 61,154,183,143,109,109,163, 97,107,203, 90, 1,201, 7, 28,135,109, 72,101,184,104, 1, -201,133, 66,146,103,166,227,113,155, 42,107,139,128,255, 0,186, 23,150,183, 27, 43, 18,223, 66, 83,208, 84, 10, 21,245, 58,188, -210, 96, 96,107, 2,133,245, 10,127,222,194,142,219,174, 81, 90, 84,216,140,198,118, 91,115,151, 29,134, 39, 74, 6, 35, 44, 45, -116,169, 41,219,216,146,123,126, 93, 53, 52,110, 40, 84, 2, 49, 32, 98, 77, 37,236,203, 28,106, 80,180, 93,173,112, 99, 55,143, - 72,104, 72,157, 18, 98,148,110, 17,165, 55,238,165, 15,123, 33, 30, 16, 72, 81, 9, 81,170,136, 93, 53,157,186,181,154,105, 12, -193,200,194, 50, 32,174, 29,127, 54, 20,195,227,212,117,138,182,124, 99,158,113,157,183, 26,114, 45,210, 68,235,125,253,139,164, - 59,123, 48,109, 54,165, 95, 22,235, 9,142,234, 31,185, 7,220, 33, 12,130,225, 74, 11, 36,130, 65, 52, 52,215, 34,230,189,131, -115,188,186,253,136,107,161, 44, 36,151, 59, 64, 93, 65, 24,128, 41,195, 29, 67,211, 82,236,236,225,209,226, 73, 43,154, 75,189, -208, 23, 15,155, 58,125,243, 99,143, 99,152,246, 47,151, 98,247, 60, 49, 45,229,246,149,187, 24, 69,180,169,140,138, 36,136,141, - 24,164, 7, 27, 11, 97, 42,125,106, 42,240,210,181, 44, 30,222,154,204,242, 91, 13,204,211,217, 93, 50, 85,133,232, 73,114,176, -135, 29, 89, 20, 40,209,196,128, 42,210,230,102, 78, 26,246,241, 40,152,224,128, 99,233,170, 86,140,186, 51,146, 18,171,212, 95, -191, 22,252,181, 7,109,110, 45, 81, 18,221,197, 41,218,167, 84,232, 72, 81, 32, 10,209, 67,169,237,215, 94,126,208, 90,207,216, -187, 66, 15,120, 99,134,104,159, 85, 68,195, 87,123, 26, 84,228,236,251, 25,127, 63,114,233,198, 6,235, 6,197, 30,215,107, 22, -243,125, 88, 50,173,242,210,211,105,144, 82, 90,216,163,181,221,192, 56, 61,165, 14,186,135,203,123, 37,203,108, 4, 91,166,151, - 74, 92,229,209,145, 10,116,231,134, 73,134, 66,151,112,230,120,186,226,203,167,141, 56, 78, 61,150, 95,113, 88,156,153,123,155, -101,198,236, 55, 81,122,178, 89,100,136,242, 37, 72,200,174, 86,182,210,181, 37,196, 5, 41,212,161,223, 18,158, 42,200, 0,244, -166,163, 91,221,219, 90, 94,127, 45,129,174,146, 70,150,185,224,144, 3, 26,226,152,112, 36, 38, 67, 19, 78,207, 23,236,252, 87, - 20, 9,130, 98, 79,213, 80,126, 76, 35, 42, 51, 13,187, 37,199,140, 56,238,137,114,161,183,238, 73, 68,133,245, 1,107, 80, 59, -186, 86,128, 13,117,123, 32, 88,112, 25,228, 14, 56,117,116, 86, 81,142, 33,199, 12,206, 71, 28, 41,189,101,184,199,186,202, 98, -195, 14, 35,118,246, 91, 82, 4, 9,142, 73, 83,170,241,251,202,214,176, 18,128,174,222,131, 86, 19, 68, 96,105,149,228,187,164, - 39, 10,149,164,198, 53, 56,169,236,167, 6, 93,142, 11,109,157,121, 1,191, 67, 84,246,110,126, 28,107, 50,107, 49, 79, 22,156, - 9, 89, 83,162,129, 99,165, 77, 5, 59,180,213,157,203,101,127,134, 24, 64, 35, 60,147, 14,138,145,110,243,145, 24, 37, 48, 87, -107,148,227, 45, 92,174, 78, 80, 60,151,118, 68,167,186,169, 41,119,170, 84, 18, 41,236,165, 68,106,195,197,214,116,197,195,141, - 57, 36,128, 20, 35, 26,108,166,124,235, 60,169, 12,196,144,143, 20, 3,185,212, 13,199,219, 20,173, 8,239, 73, 34,154,148,232, -219, 48,239, 12, 40,157, 11,102, 0,145, 67,155,194, 25,240,214,227,113,157, 49,154, 90, 1, 45,237, 11, 42, 79, 74,208,118,212, -233,163, 14,160,129,113,160,216, 9, 40, 48,164,166,214,169, 33,201, 97,194,163, 37, 74, 42,108,116, 52,233,208,244,236,212,159, - 8, 32, 20,243,222, 98, 58, 72,202,134,145, 14,108, 22,162, 58,233, 44,123,202, 22,235,109,147, 71, 20,216, 52,173, 5, 79,192, -116,202, 49,196,140,248, 26, 70,176,229,161,109,138,148,220,173,155,138,140,144,218,220, 75,181, 72, 41, 66,133, 13, 70,152,185, -179, 19,181, 6, 9,149, 19,228, 13, 11,192, 84,187, 97,111, 33,202,174, 72,183, 89,220,138,110, 23, 84,125,216,150, 28,163, 13, -190,180, 26,165,189,235, 77, 42,118,238,169, 87,118,176,155,131, 45,246,150,234,156, 20, 97, 85,205, 58,240,165,192,215, 72,123, -188,105, 10, 45,169,214,238,235,133,113,109,105, 16,222,116, 72,247,113,188, 37,109,146,133,109, 34,128,208,138,130, 14,165, 92, -220,254,200, 73, 25, 5, 70, 20,135, 18, 10,113,164,119, 98,180,236,135,140, 98,167, 24, 67,207,109, 83,228, 13,237,166,189, 86, -123, 43,240, 13, 75,141,238,115, 70,172, 28,159, 36,164,185,229,184, 28,235,214,156,101,164, 36, 56,202,124, 48,178, 5,125,175, -106,157,189, 19, 83, 65,217,160,230,185,199, 60, 41, 39, 83,171, 79, 1, 42,140,243,142,173,170,165, 72, 33, 85,250, 68,110,236, - 1, 36, 84,215, 74,212, 87, 1, 64,184,130, 52,209,112,180,123,187,140, 46, 56,112, 44, 31, 13,242,104,164,154,245,211,140, 7, - 60,169, 72, 87, 80, 53,137,137, 37,134,144,242,153, 80, 97,196, 41,117, 32, 16, 61, 99,160, 58, 79,136,215, 18, 23, 26, 35, 32, -118, 0,227, 67,110, 62, 15,137,181,223, 4, 35,111,137,179,232,246, 31,218,173, 59,107,210,186,109, 10,162,133,162, 94, 24, 45, -125,230,184,232,108,116,234,125, 26,191, 18,214,184,132,162, 30,254,148, 40,238, 5, 39,214, 15,249, 52,191, 21, 41, 39, 10, 62, -197,200, 31,155, 83,240,247,126,109, 15, 22,148,180, 43,146,202,146,122, 17, 94,167, 70, 38, 2,130,208, 13,168,169, 64,128, 79, - 93, 44, 77, 68,220,233,192,202,155, 9, 27,145, 94,154, 79,141, 75, 74,220, 55, 29,205,219,134,223, 81, 35,252,154, 80,152,209, - 37, 39, 41,128,219,132,164,251, 53,167,196,116,231,196, 81,105,165,120,235, 5, 59, 59,104, 43, 93, 39,198,163, 2,135, 66, 8, - 82,130,123, 15, 80, 59,235,165,120,244, 52,208,111, 41,246,233, 74, 82,190,142,186, 49, 48,162, 66, 40, 70, 38, 20, 43,233,156, - 74, 69, 13, 1, 35, 64,200,185, 81,180,209,105, 87, 86, 16, 72, 75,136, 80,239,246,133, 6,148, 28,122, 40, 23, 1,149, 38,140, -138, 10, 8,221, 37,132,138,211,235,135,104,211,190, 27,206, 77, 62,170, 72,144, 81,214,175,209,230, 16, 24,117,183,135, 78,168, - 88, 87, 79,139, 76,200, 29, 23,188, 8,167, 26,240,114,167,124, 11,131, 17,208, 22,178,144,125,126,191,139, 85, 87, 18, 45, 90, -218,184, 10,183, 62, 91,115,107, 77,165,121,130, 95,150,219, 15, 75,137,104,240,183, 26, 85,182,215, 33, 43, 80,255, 0, 69, 78, -166,191, 14,185, 7,152,238,112, 16, 59,130,184,122,195, 83,230, 53,223,124,158,153,161,247, 45, 57,150,176,143, 65,114,252,226, -174, 5,147, 42,181,204,133,239, 94,240,130,144,183, 5, 58, 43,196, 88, 62,130, 59, 53,203,181,142, 53,221,154,224, 69, 70, 25, - 71, 41,218,109, 87,150,212,220,196, 33,244,120,132,110,120, 32,120,102,160, 80, 30,242,107, 93, 54,208, 75,181, 10,106, 89,128, -194,170,231, 49,121,180,143,135,217,103, 78,145, 49, 15, 60,148, 56,152,236, 7, 65, 75,138,235, 74,247,211, 86,145,135, 56, 83, - 17, 68,111,100, 12, 5, 7, 26,224, 39,152,143, 53, 55,142, 85,186, 92,159,186, 78, 45, 91, 45,233,117,110, 55,227, 22, 98, 54, -219, 0,158,192, 64, 3,182,164,157, 27,173,221, 25, 24,247,141,108, 45, 97,138,201,133, 6, 3,137,204,252,186, 43,133, 57,199, - 35,127,126,115,105,179,219,125, 75,132,135,149, 26, 10,214, 54,149, 68,105, 71,219, 9,167,179,188,213, 65, 52,232, 40, 59,117, -184,181,183,248, 72,131,120,241,172,221,196,198, 82,166,149, 96,199,106, 82, 91,246, 65, 42, 72,232, 7, 90, 87,178,189,250,139, - 43,234, 35,164, 74, 94,106,206,119,120,155, 8,236, 77, 2,125,160, 41,240,122,181, 20,201, 73,241,105,187,144, 90,156, 83, 59, -131,106, 20, 66,195,128,142,128, 30,254,205, 59, 28,169, 70, 38,168,166, 74,102, 91, 93,117,200,175, 73,138,227,173,134,212,228, -103,148,194,214,209,165, 65, 41,160, 80,245, 26,141, 62,228,148, 33,198,159,130,250, 75,114,172,113, 6,151,236, 92,231,156, 98, - 13, 55, 17,219,140,155,205,189,144,164,178,220,167,212,153,208,211, 74,125, 27,148,162,168, 59, 1,167,199,168,114,109,145, 72, - 85, 16,213,171,121,146,224, 55, 65, 42, 42,193,113,151,154,155, 13,206,226,194,175,183, 9,174, 74,138,180, 36, 71,185, 72, 59, -155, 80, 29,194,128, 31,135, 80,166,217, 90, 2,180, 83, 55, 92,193, 61,195, 11, 23, 10,190, 92,125,230, 38,195,119,184, 52,196, -121, 12, 33, 46, 40,128, 1,246, 40, 40,122, 26,117,221, 67,217,170,155,141,188,198, 43, 39,112,194,224,166,175,118, 11,147,181, -120,139, 41, 45, 20, 37, 15,161,183, 84,180,144, 0,104, 13,181, 4,251, 74, 61, 61, 21,214,122,224,104, 53, 75, 33,210,105,232, -140,139,193, 43,183, 48,249,220,226,148,162,162,122,132, 42,155,137,160,160,235, 78,167, 76,150,174, 52,235, 94,152,212,163,143, - 95,213, 6, 10, 37, 73,113, 42,109,128, 86,195, 77,164, 41,215, 29,114,161, 29,160, 26,146,170, 13, 71,115, 20,165, 7, 61,105, - 71,204,119, 53, 90,113, 62, 2,127,139, 87, 45, 18,115,156,254,227,102,185,223, 33,183,243,108,152,252, 7, 19, 45,176,178, 5, - 55,188,252,118,253,142,225, 82, 71,102,189, 51,253,191,114, 76,210, 94,127, 54,149,169, 19, 3,131, 23,237, 18, 19,212, 1, 56, -215, 23,243, 55,153,163,108, 95, 5, 25, 87, 18, 11,186,128,200,122,235,145, 87, 75,170, 86,165,123, 84, 36,168, 31, 88, 63, 22, -189,177,109, 32,111, 26,243,181,229,198,165,168,251, 45,184, 55,110,199, 38, 94, 92,178, 71,200, 99,195,106, 75,178,109,239, 54, -167,104,216, 77, 16, 86,144,130, 54,169,100, 2,123,187,117,207,252,210,220, 35,125,147,173,222,197, 46, 77, 14, 36, 4,118, 62, -232, 85, 46, 3,130, 86,114,114, 28, 64, 36, 2,114, 90,230,111, 39,228,201,203,100,220,238, 44,177, 2,192,168,150,246, 37, 72, -134,166, 21, 29,249,114, 91,116,182, 4,125,192,111, 40, 79, 66, 66, 64,245,107,207, 59, 96, 22, 95,179, 66,224,231, 16, 49, 80, -220, 23, 26,145, 20,126, 18, 12, 79, 14,202,174, 34,225, 46,230,210,132,118,230,186,211, 9, 72,188,188, 30, 83, 13,166, 2, 22, - 42, 20,180,208, 43,112, 87, 93,195,166,174,230, 99, 99, 61,228, 95,178, 19,138, 84,144,208, 23, 0,188, 40,220,124,129,120,216, -150, 44,113, 17,118, 76, 21, 73,183,201,241, 1,145,110,126,217, 53,181,108, 66,212,144,133,149, 52, 84, 72, 63, 46,160,207,102, - 47,147,197, 58, 73, 67,134, 5, 65,199,215, 74, 0,188, 5, 80, 77, 48,132,198, 28,150,209,247, 22, 36, 48,164,183, 27,194,148, -250,214,149, 56, 82,122,133, 84,108,161, 53, 2,186,181,240,157,167,222, 32,245, 10,113, 67, 65,162,172,170, 91, 91,235, 41, 14, - 44, 85,176,138,151, 18, 5, 78,222,193, 65, 77, 41,237,107,147, 10, 44, 31,152,167, 77,190, 97,101, 78, 37,201, 34, 50,228,192, -240, 29,145, 29,164,201, 84,132, 40,209, 73, 36,161, 68, 18, 71,111,110,160, 78,193, 38, 65, 81,202,135, 4,160,192, 27,158, 84, - 98, 43,178, 33, 73, 76, 91, 4,169, 20,157, 38, 60, 71, 23, 37, 9,109,228,205,120,138, 32,144,106, 64, 38,181,236,212, 87, 1, - 43, 75,238, 26, 59,160,156, 58, 7, 26,116,198, 30,129,165, 86,186, 41,201, 31,118,177,128,225,184, 10,243, 59, 36,235,254, 7, -113,143, 21, 83, 18,147, 91,181,182,114, 67,128,180,218, 93,117,168,190, 2,182,133, 45, 68, 21,118,244,236,215,156,185,114, 89, - 39,220, 46, 55, 15,134,123, 98,157,164,167,249, 92, 48,196,160, 46, 94,129,149, 89,221,219,139,102,248,100,168, 30,233,233,233, - 95,162,169, 73,145, 2, 4,137,114, 46,214, 89,111, 51, 18,228,169,205,184,201, 95,135,122,103,199, 1,109, 41,240, 8, 66, 84, -208, 80, 10, 77,104, 78,187, 1,108,147,181,173,134, 64, 9,106, 99,246, 74, 96, 83,138, 30, 6,161,120,109,141, 11,130,229,242, - 52, 46,127,144,227, 82, 38, 74,145,132, 98,241, 49,168,153, 25,145, 41,156,120,169,119, 39,108,209, 86,170,248, 30,240,241, 82, -158, 74, 13, 40,174,135,183,166,156,217, 54,171,168,154,214,222, 76,101,116,104, 53,251,161,197, 51, 65,145,234,164,220,200,217, -100, 37,129, 26,185, 83,219,143,173,162, 5,167, 31,185,102,127,119,100,216,205,226, 45,241, 17, 44,227, 32,117, 11,198, 36, 50, -189,165,229,176, 22,148, 49,189,196,130, 1, 7,112, 29,154,172,221, 26,251,251,137, 34,179,213, 20,172, 44,212,253, 1, 30, 8, -203, 82, 98,131,163, 42,143,115,126, 45,163, 56, 2,120, 2,190,202,133,242,187,142, 63, 59, 35,149,110,180,176,242,226,174, 73, - 96,201,132,175, 18, 18, 3,139,170,201, 27,104, 65, 20, 30,201,236,239,215, 74,219,173,165,130, 22,153, 14, 32,100,115,170,200, - 91, 43,155,226,200,128,156, 83,163,170,151,240,188, 98,216,205,249, 87, 27,133,185, 79, 91,151,114, 84,107,115,165,183,209, 98, -124,199,105,106, 87,135, 32,167,194,113, 65,192, 1, 71,118,145,127,120,231,199,161,174,239, 38, 57,106, 11,210, 51, 20,236,178, - 56, 65,169,160,135, 81, 62, 67,155,106,125,187,115, 81, 4,134,110, 12,187, 33,151,195,113, 16, 96, 55, 21,195,188, 20, 16, 7, - 80,123, 58,118,105, 91,116, 14,141, 74,171,112,227,138,245,208,178,150, 84,113,144, 14,170,102,149, 88,156,182,188,102,203,121, - 83,203,141, 34, 62,246,212,212,117, 45, 3,169,220, 42, 5,107,210,190,141, 90, 53,242, 7, 0, 7,119,219, 68,246,200, 92, 28, -209,135, 26,107,190,221,132, 90,247, 54, 86,110,166, 86,212, 60,149,213,160, 18, 58,130,154,119,250,117, 33,134, 71, 61, 15,186, -149, 58, 50,224,113,202,147, 62,235,120,198, 83,175,164, 37,181,133,123, 41, 2,138, 61,128,215,176, 26,233,253, 96, 59, 10, 64, -184, 26,176,204, 80, 80, 98,198, 76, 69,248,203, 13,248, 70,136, 74, 15,182,227,158,179,234,209,202,231, 18,141,167,167,113,123, -148,210,143,143, 51,217,122, 74,125,233,150,218, 67, 72, 82,147,185, 76,182,128,118,164,124, 58, 13,136, 0, 80, 84, 55,163,240, - 5, 13, 2,202,204,162,165, 48, 22,209, 7,104, 90,168, 66, 18,105,211,178,189,250, 55, 73,165,186,141, 25,102,146, 1,169, 30, - 4, 11,155, 48,162, 66,135, 16,184,234,153, 69,208,205,105,223, 5,255, 0, 13,186,237, 29,118,208,164,212,138,117,235,172,117, -211, 69,209, 47, 41, 82,131, 72,203, 58, 55,104,104, 33,171,146, 37, 93, 91,137,112,148,211,236,125,214,251, 46,174, 76,164,163, -106,146,148, 45, 41, 52, 46, 21, 84, 1,232,235,170,187,167,119,218, 4,100,176, 16,117, 4, 65,218, 58,168,203, 29,198,154,233, - 76,118,218, 13,190,195,136, 91, 37,192,165, 26, 80,144, 79,117, 58, 83,215,171, 18, 93,169, 65,194,152,121, 82,162,139, 71, 38, -169, 37, 5, 84, 91,139, 74,123,150, 73,233,214,159,171, 78, 63, 17, 75,127, 85,122,251, 34, 67,137,125,207,163,115,171, 99,122, -126,136, 20,118, 38,160,117,167,167, 74, 46, 17, 4, 24,209,120,129,131, 72,173, 67, 14, 45, 40, 11, 90, 60, 64,167, 20, 91, 41, -232, 20, 59, 54,244,165, 41,161,169,163, 17, 77,131,167, 44,168,210,238, 14,248,110,161,109, 54,165,161, 59, 18, 21,212,134,200, -236, 74,105,211,111,175, 77,136,134,160, 69, 1, 16,233,162,254,242,159,115, 13,117,219,237, 43,194,175, 77,221, 13, 59, 61, 29, -116,239,134,117,234,193,104,120,125,234,251,203, 90, 41,219,232,237,211,198,117,173,163,153, 69, 23, 16, 43,169, 21, 31, 6,148, - 46, 40,180, 86,161, 13, 48, 42, 84,148,142,242,165, 0, 6,148, 38, 38,134,138,247,223, 32, 52,157,207,202, 97, 9,236,170,221, - 0,105,246, 9, 31,131, 90, 77, 17, 1,180, 10,242, 11, 20, 52,110, 92,232,212,175, 74, 43,113,175,196, 53, 38, 59, 75,137, 48, - 12, 52,157,109, 20, 95,251,243, 97, 0, 35,222,129,169,166,224,133, 80,126,109, 75, 27, 69,206,122, 40,188, 86,208,202,202,108, - 74, 70,241,112, 20,255, 0, 68,215,244,105, 63,203,110, 85, 52, 80,241, 27,211, 73,255, 0,223,187, 10, 86,164,123,217, 33,177, - 95,171, 62,213, 61, 29, 52,240,217,238,112,238,231,215, 72,241,133, 35,202,229,120, 81,164, 45, 17,162, 45,212,166,129, 46, 19, -177, 43, 7,213, 77, 89,193,203,175,123, 65,123,128, 61, 20,147,112,153, 81, 83,204, 40, 15,182,159,115, 9, 74,190,125, 87,216, - 61, 93, 41,169, 63,250,206, 7,191,236,162, 55, 7,162,134,185,242,176,113,144,155,108,116,135,122,110, 91,202, 10, 9, 30,160, - 52, 45,121,117, 15,237, 93,135, 85, 19,238, 73, 24, 84, 83,115,202,111, 83, 36,120,206, 77,125, 73, 42, 39, 98, 87,177,180,239, -238, 0,122, 53,170,181,182,183,182,106, 53,162,162,184,151,103, 73,110,220,174, 42, 11, 38, 99,233, 10, 30,213, 29, 52,212,144, -232,129, 29,209,234,164, 98, 41, 53,213,184,166,247, 9, 36, 16,176,122, 57,214,167, 79,139,166,142, 20, 64, 82,133,170,255, 0, -118,177, 57,227, 68,148,176,149,128,151, 18,163,184, 20,142,189,148,212, 11,232,224,191, 9, 35,105,248,201, 97,194,164,248,188, -197, 12,165, 13, 75,101, 69,212,160, 2, 91, 87,178,165, 15, 85, 58,107, 19,121,203, 69, 86, 55, 96,188,106,218, 9,201,165, 72, -156,167,121, 90,156, 54,165, 8, 73, 40, 83,106, 83, 46, 31, 17,104, 89,170,122,250,136, 7,225,214,119,122,228,187,125,202, 7, - 69, 43,137, 60, 15, 65,233,173,199, 43,243, 4,187, 29,195,103,143,161, 8,233, 29, 21, 56,113,143,154, 73,182,171, 93,219, 30, -203,214, 96, 93,224,179,239,112, 36,190,178,152,215, 56,137,220,159, 17,165,118, 21, 2,148,239, 79,104,175,163,174,188,225,204, -252,169, 54,193, 62,151, 5, 97,201,220, 15,233,175, 82,114,238,255, 0, 14,255, 0, 7,137, 9,199,237, 55,139, 79,213,208,106, -180,243, 79,156,204,122, 59,207,174, 29,213,149,200,137,185, 18,154, 83,161, 14,238, 62,209,165,105,184, 21,117,232,117, 95,109, -102,120,214,137,150, 47,155,133,113,239,204, 79,157, 73,121, 75,175, 50,204,247, 99, 50,201, 83,123, 80,178,132, 45,191, 80,235, - 94,164,244,213,220, 54,173,104,171, 75,107, 35,105,136,206,168,173,251, 52,206,115,155, 68,150,227,177, 58,223,142,188,162,211, -210,159,109, 77,191,121, 83,255, 0,178,129,180, 29,135,188,247,252,186,145, 20, 17,177,250,142,116,139,151,190, 92, 28,112,232, -168,234,215,198,215,127,126,101,230,218,116,135,148,162,159,163, 33, 64, 36,245, 52,245, 83,191,187, 83,223, 56, 34,171, 36,171, - 19,142,113,245,201, 8,175,132,226,159, 65, 72, 65, 41, 42,160, 34,157, 5, 59, 9, 26,172,150, 64,106, 35,141, 62, 92,195,110, - 49,138, 66,153,170,232, 82, 70,222,149, 29,157,218,140, 94, 41, 45,198,147,151,131, 75,154,167,155,121,151, 0, 88, 32, 39,103, - 65, 83,240,122,116,131, 40,109, 58, 24,180,210,187,113, 3,169,112,248,140,187,180,164,237, 33,163, 65, 79,136,246,106, 67, 46, - 1, 24, 81, 0,149, 95, 51,110, 40,188, 69, 47, 42, 60,117,144, 43, 74,167,184,246,119, 13, 77,138, 96,234, 5,181, 85,114,124, - 39, 37,136,249,125,168,238,178,243, 71,114, 92,104, 22,212, 41,217,221, 67,169,172, 34,144,230,210,134, 21,204,185,142, 7, 45, -164,220, 89,148,164, 70,117, 46, 37,228,161, 74, 89,216,107, 66, 0,233,215,209,166,230,182,108,194,153,115, 86,186, 99,195,126, -124, 44, 16, 89, 97, 55,155,211,113, 86,132, 32,236,121,229, 50,232, 61,125,133, 21, 13,212, 31,151,167, 89,139,237,141,207,247, - 69, 65,154,215, 94, 85,109, 99,249,235,192, 36,169,151, 93,190,192,105,132, 4,168,169, 47,133,188,226,143,205, 74, 91, 66, 84, -234,201,237,160, 31, 13, 53, 81,252,138, 81,192,212, 97,100,234,153,240,175, 55,140,102, 51, 90,137, 97,131, 39, 98, 25,113, 86, -201,147, 40,193,247,243,236,180,232,109, 85, 73, 9, 73, 59, 66,143, 78,132,138,244, 23, 91, 6,217,107, 97,119, 27,239,155,170, - 61, 67, 80,232, 31, 79, 93, 85,111,155,125,195,173,100, 22,238,211, 38,146,148,143,125,186,222,242, 43,188,219,133,226, 76,153, - 19,228,200,121,201, 78, 73, 81, 91,203,117, 68,215,113, 53,236, 58,247,222,209, 61,180, 54,241,139, 96, 4,122, 70,148,201, 19, - 4,175, 19,110,179,200, 38,120,153,117,130, 85,115, 94, 52,220,157,101,120,128,232, 94,225, 74,169, 9,234, 81,249,181,117, 29, -243, 69, 80, 73, 40,117, 66,252,155, 7, 41, 69,130,230,113,219, 99,210,100, 45,150, 35, 42,122, 38,182,203, 76, 67,144,163,226, -165,214, 92, 30,216, 77, 1, 73, 29,154,227, 94,106, 62, 75,249,237,152,230,183,194,105, 36, 21, 58,139,128,203, 52, 1, 56,250, - 42, 19,154,215, 16, 74, 32,199,211, 92,237,228,187, 52,108,138,241,154, 55, 2, 18,125,225,135,109, 43,251,218,108,160,153,108, -199,128,200,247,134,209,225,164,182,162,243,157, 69, 6,178,219,113,104,136,177,177, 53,132, 98, 70,162, 64, 76, 16, 97,153,171, - 8, 94,216,144, 5, 29, 85, 90, 37,205,150, 44,223,117, 41, 73,139, 17,153, 42,240,155,143, 24, 38,108,181, 45,103,119,140,224, - 21, 88, 71,112, 86,141,144,180, 75,226,102,228,226,112, 29,130,158,115,123,227,166,144,213,119, 54,232,139,137, 17, 78, 63, 10, - 75,229,201,108,173,205,190, 36,164,167,110,226, 83, 69, 16,144,122, 3,211, 78,252, 47,138,224,231,102, 6, 4,116, 81,161, 46, -199,162,147, 34,195, 92,215, 31,113, 33, 45,180,203,107,117,198, 82,186, 57,180,119,161, 10,237, 32,106, 68,146,248, 96, 46, 38, -137, 83, 10,123, 99,150,217, 16, 38, 91,223,134,237,186,226,151, 92,143, 53,152,199,106,165,175,104, 36,143, 13, 73, 39,232,194, - 78,234,244,213, 69,244,205,153,142,107,193,110, 97,120,122,250,233, 50,157, 96,140,104, 9,115, 61,222,236,165,194,107,123,243, - 31,115,199, 96,175,198,108, 54,229, 74,145,183,104, 72, 32,158,128,105,113,198, 12,104,227,128, 25,253, 52,157, 37,193, 14, 66, -182,139, 2,215,238,178, 39, 92,102,169,150, 94,124,197,136, 18,149, 37,216,179,137,173, 93, 72, 21, 74, 64, 29,167, 73,124,178, - 23, 6, 49,185, 5, 61, 99,170,157, 7,162,166, 14, 51,230, 7,241,236, 3,144,184,169, 56,142, 23,122,127, 58,157,100,146,142, - 64,190,194, 18,175,216,172, 43, 10,150, 84,152,107, 33, 37, 45,201,222, 55,147,214,157,131, 88,190,101,228,177,186,110, 54,155, -167,196, 77, 27, 96,107,199,130,194,140,144,189, 49,112,233,106, 97, 86,208,238,226,218,218, 72, 93, 19, 92, 92, 66, 56,230, 19, -128,166,195, 50,164,125,223, 50,223, 30,234,223,128,152, 83, 84, 91, 15, 23, 99,172,178,122,236, 74,144, 84,144,225,234,158,205, - 76,185,182,107,100,108,166, 60, 84, 12,177,244,246, 85,107, 65,148,231,250, 41,179, 32, 67, 75,246, 89, 55, 73, 78,184,136,205, - 39,116, 86, 1, 98, 72,104,146,162,154,144, 59, 73,213,164, 23, 18,134, 73, 27, 26, 49,226,113, 11,211, 77, 2, 99, 46, 0,103, - 75,120,236, 36,228, 77, 95, 68, 54,238, 81, 32,180, 10,160, 91, 82,250,158,104, 40, 31,109, 78,184, 80,161,209, 61,128, 83,174, -164, 77, 28,182, 38, 34, 75, 93,210,236,189, 67,166,153,186,146, 59,124, 93,153,200,225, 73,214, 44, 23, 47,186,100,240,113,204, - 62,221, 38,109,214,224,234, 83,224,183,109, 15, 92,144,190,165, 65, 9,234, 72, 41, 29, 9,167,126,173, 46,247, 75,123, 88, 29, - 61,203,131, 88,222, 36,225, 76,248,204,149,170,236,122, 49,169, 31, 34,190,228,246, 75, 91,220, 95,147,179, 22, 19,246, 83, 37, -168,145,158, 97,180,182,210,129, 46, 46,142, 54,165, 36, 45, 75,234,174,189,123, 43,170,155,102, 67,114, 69,236, 4,185,175, 69, - 63,160,240,167,152, 9, 33,222,138, 66,137, 98,198,227, 89,225,165,110, 78,185,100,215,104,242,209, 58, 59, 17,253,230, 52, 22, - 18,226,106,224, 4, 13,132,244, 0,245,233,167, 95,123, 55,136,226, 0, 17,181, 17,112, 36,210, 37, 38, 65,193, 1,244,211, 43, - 37,141, 97, 68,214,226, 91,163, 75,240, 35,186,210, 89,182,165,126, 55,189,184, 19,181,199, 74,182, 2,129, 81,243, 73,213,134, -221, 44,206,110,185, 8, 83,199,163,160, 83,141, 61,197, 21, 27, 79,180,200,109, 79,220, 76, 7,162,194,143, 33, 45, 29,201, 33, - 8,117, 68,208, 26,142,211, 67,171,232,222,215,160,212, 9, 34,157,107,215,186, 14, 41, 69,157,150,251,241,220, 66,194,148,132, -138, 54,130, 74, 70,239, 78,208, 59,116, 65,129,165, 1,164,178, 17, 25, 81, 64, 70, 67, 8, 72,113,242, 73, 41, 5, 34,181, 78, -227,216, 59, 53, 37, 16, 97, 75,145,197,197, 5, 24,118, 75,197, 27, 67,231, 98,255, 0, 97, 32, 4,251,127,194, 6,144,154,105, -161,158, 84,189, 96,181,202,184, 73, 48,217,138,244,135, 20,195,206,169, 1, 6,131,192, 73, 89,232, 7,238,130,123,117, 81,186, -203,225,176, 16,120,211,129,186,148,138,121, 70,156,166,161,161,183, 28,154,176,211,109,170, 60, 1, 44,166, 42,131,102,181, 52, - 73, 39,253, 26,234,133,210, 22,168, 30,186, 6, 83,198,129,186, 93,156,186, 23,174, 73,140,150,159,101, 81,146,228,136,234,216, -243, 30, 16,160,160,167, 82, 64,234,116,166, 51,252,220,125, 84,235,228, 47, 82,152,154,110, 94,100,132,199, 50,124, 36, 81, 65, - 10, 14, 1,181,231,208, 71,180, 10,105, 78,158,157, 88,109,176,248,142, 32,240, 30,129, 72,181,140,189,196, 31,208, 40,130,202, -216, 67, 10,101,101,183,222, 66, 2, 20,165,110, 8, 90,171,219,208,129,180,106, 85,180, 77,123, 30,247,133,104,192, 83,209,180, - 56, 56,184, 96, 41, 82, 44,103, 95,106,148, 47, 6, 9,113,245,164,119,126,210,137, 52, 31, 46,170,164,239, 21, 1, 13, 70, 13, - 47,113,211, 66, 22,194, 81, 70,146,173,164,109,109,213,160,239,116, 47,211,242,244,210, 89,130,175,170,144, 9,227, 90,169, 1, -151,215,177, 43, 42,113,176,157,219,119, 39,112,237,238,235, 90,105, 44,113, 3,174,146, 9, 33,107, 61,214,103,128, 38,248, 10, -247,127,120, 45, 7,188, 63, 99,119, 65,217, 74, 86,157,105, 77, 56,162,158,240,156,139,194,190,234, 36,228,246,216,160,165, 79, -182,251,128,116,109,181, 5, 40,157, 51,111,111, 45,193,201, 7, 93,108, 12,128, 83,110,241,155,173,248,139,106, 26, 27,136, 74, - 74,124, 69, 44, 23,125, 31, 22,175,173, 54,182, 70, 67,158, 86,152,124,184, 84, 81, 50,250,219, 72, 87,188,220,212,163, 82, 74, - 75,229, 68,159,151, 90, 22, 57,163, 38,143, 85, 66,124,237,110,110,164, 7,114,203, 66,106, 28,121,215,232,123, 18,119, 14,154, -151, 28,165,185, 32,166, 29,125, 27,120,209, 39,179,155, 26,202, 82, 27,123,217, 62,128, 69, 71,197,167,219, 51,186,105,167,110, - 12,224, 40, 23,179,187,122, 88, 90,155,138,238,212, 2,162,225, 73, 89,160,254, 16, 9, 63, 22,132,183,159, 14,210,247, 18,131, -160, 18,125, 0, 2, 79,160, 81, 54,252, 72, 67, 90, 49,235, 32,123, 78, 20,217, 95, 42, 88,146,175, 5,235,205,186, 51,128,244, -106, 92,196, 68,112,159,244, 93,216,117,148,186,243, 23,106,177, 41, 60,207,103,235, 69, 51, 71,172,198, 5, 88,178,206,238, 80, -172,141,123, 11, 79,204,107, 72,249,156,121,174,127,171,204,137, 33, 10, 61, 28,143, 37,185, 9,235,235, 65, 58,126,207,204, 93, -142,248,233,138,250, 2,122, 12,141, 7,212, 72, 52,196,214,247,112,123,209, 60,127,180,209,201, 23,194,157,128,109, 89,170, 77, - 82,170,212,124,154,214, 67,126,201, 91,169,174, 4, 30, 32,168,245,213, 91,239, 92,220, 13, 15, 34,244,153, 49,118, 84,111, 52, - 9, 41, 72, 10, 66,180,243, 47, 0, 57,210, 62, 45,206,227, 69,226, 62,232, 11, 46, 56,160, 16, 18, 42, 21, 69, 18,125, 58, 55, - 95,138, 2,229,195, 21,162,146,175,211, 34,133, 33, 53,113, 33, 64,141,194,134,135, 73, 23, 65,220,105,127, 30, 91, 72,143,100, -215, 23,150, 18,178, 27,108,215,217, 73, 2,186,113,183,140,101, 48,251,183,203,198,146, 46,183,249,113,219,104, 55,191,115,149, - 27,183,118, 83,191,215,165,124,120,162,141,238, 60,104, 8,121, 28,165, 41, 45, 59, 41, 74, 73, 29, 84, 87, 90,122,181, 26, 91, -192,114,171, 11,107,146,210,134,156,104,187, 65,101, 33,197, 41, 36,146, 9, 37, 93,105,168, 47,191, 39,141, 92,178, 96, 56,211, -170, 6, 74,203, 15, 54,228,103,155, 35,161, 88,223,221,170,171,139,165, 24,154,187,180,185, 38,186, 11,229,223,139,113,254, 85, -227,158, 64,200,242,236,126, 45,206,200,252,100,227,214,133, 74, 20,116,205, 4, 60,251,204, 41, 37, 43,105, 77, 4,160, 7, 19, - 67, 83, 64,123,117,231,143, 55,249,128,180,195,107, 19,187,192,235,114,122,128,249,235,210, 94, 77,237,174, 38, 91,183, 12, 19, - 72,235,226,106,134,242,127,225,249,197, 19, 39,221,110, 23, 11,175, 33, 56,219,238, 60, 24,134,197,253,182, 24,142, 28, 86,212, -237, 89,140,227,170, 13,215,246,148,117,201,217,204,119, 13, 65,221,245, 87,161, 34,148,129,128, 21, 9,171,200,215,151,204, 77, -215,239, 54, 12, 66,231,145, 92, 98,244,131, 55, 45,187,187,125,240,222, 82,192, 83,201, 97,123, 99,213,176,154,131,225,244, 21, -235,215, 82,217,189,207, 54, 14,114, 14,172, 41, 15,145,239,192,165, 67,217, 63, 8,251,227,210, 80,139, 94,196, 68, 37, 17, 97, - 71, 97, 40, 67,105, 73, 64, 10,160,232,144, 10,246,128, 59, 40,107,223,171,123,123,228, 25,212, 57, 99,161,109,188, 15, 14, 52, -198,216,106, 58, 74,219,222,203,139,113,177,183,196, 81, 21,216, 0,235, 68,212,116,212,230,222,168,170,137,152,106, 84,180,240, -200, 76,150,182, 65, 0, 46, 57,116, 20,160,108, 66, 0, 10,168, 61,254,205,122,141, 37,211,173, 87,185,166,156,144, 56, 15,239, - 23, 80,167, 33, 42,138,218,181, 85, 0, 81, 46, 31,205, 74,106, 59,231, 74, 49,221,167, 31,252,182,165,176, 28, 68, 74, 40, 44, -164, 40,164,109,165,122,212,252, 99, 81,157,112,105, 97,244,155, 59,129, 55,179,225,189, 14,189, 59,146, 55, 54,162, 9, 4,126, -141, 37,183, 5,166,131,158,181, 21,221,188,182, 55, 40,184, 85, 24,173,186, 43,114, 86,218,122, 10,210,131,227,212,182,223, 17, - 77, 23,145, 80,110, 91,229, 46, 26,195,142,139,118,208, 55, 5,149, 54, 1, 73, 77,122,145, 74, 83,167,110,164, 51,115, 35, 10, - 47, 18,171, 22, 85,228,250, 11,174, 58,166,173,169, 42, 21, 86,221,137, 35,113,238, 34,130,155,191, 46,154,150,205,215,174,155, - 50, 84, 29,121,242,140,195, 42,220,213,191,101, 84,166,202, 20,223,176,151, 5,125,146,105, 84,250, 58,233,246,238,171, 73,241, - 5,109,143,121, 97, 80,144, 26,106, 25,106, 75, 42, 74,219, 37,176,164,154,119, 30,241,160,253,204, 10, 6, 80, 42,236,241,143, - 31, 73,199,152,101,169, 16, 92,143, 34, 50,208,122,142,169, 87,164, 26,118, 29, 84,220,220,137, 50, 53, 18,103,135,213,223,127, - 11,251,231, 27,139,152, 48,149,248,209,212,213,190,246,202, 16,144, 18,173,180,105,250,128, 15,182, 1, 74,137,239, 0,247,235, -181,249, 81,206,174,210,118,217,221,238,226,195,213,196,122, 56, 87,153,124,222,229, 97, 11,197,252, 67,222,193,253,189, 62,158, - 52,204, 85,151,122,136, 9, 9,104,213, 36,154, 84,141,119, 33,186, 14,154,224, 79, 96,164,219,230, 61,107,143,103,184,201,145, - 1, 87, 47,119,133, 37,212, 50,130,132, 61, 93,133, 37, 72, 42, 4, 18,132,146, 64, 61,186,203,243, 84, 13,221, 98, 29,221, 69, - 80,156,209,185,146, 2,128,184, 97,198,162,200,193, 33, 67, 92,205, 28, 93,153, 74,141,127,228,235,230, 61,101,183, 98,183, 25, -202, 69,146,243,147, 76, 85,176,195,136, 30, 75, 76, 62,251, 49, 19, 87, 82,232, 61, 3,130,157,228,141, 81,178,201,210,196,230, -105,238, 22,224,226, 80,143, 64,167,138, 15,217,142,140, 72,170,179,203, 88, 84, 11, 38, 73,119,182, 66,185,226,151,215,226,219, -211,113,149,247, 23,136,212, 40, 82,103, 4,168, 6, 74,141, 28, 89,221,243, 65, 58,174,248,118,217, 53,154, 37, 47, 4,128,163, - 21,255, 0, 10,126, 16,112,196,167, 93, 87, 87,109,114,109,233,126, 60,152,105,222,125,151, 18,227, 59,222,100,172, 87,208, 54, -144, 53,100,215,120,216,133,194,164, 7,234, 56,101, 71, 44, 22, 69, 56,125,245, 17,101, 56,164,169,212, 56, 93, 74, 84,216,118, - 61, 10,145,212,165, 61, 91,235, 66,117, 14,250,225, 63,102, 72, 7,218,159,227, 69, 33, 45,234, 20,142,185, 45, 9, 78,186,234, - 95,102, 74,131,225,183,155,120, 71, 41, 74, 79, 64, 10,122, 17,183,166,158,240,156,214,128, 16,140, 48, 69,163, 37, 6, 20,145, - 38, 91,174, 60,183,193, 41,220,119, 5,147, 85,181,235,169,235,221,169,140,136, 6,162, 82, 88, 58,104,205,174, 74, 84,242,147, - 40, 72,149, 16, 31, 25,216,226, 70,209, 38, 66, 71,179, 90,252, 61, 78,152,157,154, 64,211,129,236,202,150,225,162,149, 13,182, - 66,136,148,166,196, 86, 20, 29,117,130,106,170,248,102,190, 24, 34,166,157,123, 78,153, 51,128,116,140, 78, 11,245,210, 26,117, - 96,181, 50, 99, 62, 54, 57,112,199, 32, 72,141,100, 47, 92,109,223,124, 74,185, 55, 36, 92, 30,145, 30, 74,252,120,237, 60,132, -173, 73,105, 77,148, 10,160, 0,170, 30,163, 88,221,218, 54,238, 81,202,246,185,232,199,105, 13, 77, 32, 16, 16,144, 83, 16, 87, - 60, 71, 69, 73,122,196,208, 0, 69, 30,181,202,147,115,230, 34,206,200, 37,220,147, 9,230,151,116,121, 82, 18,193, 97, 76,161, -157,196,251, 96, 41, 8, 72, 74,192,220,154, 10,117,208,216,100,116,113, 54, 45, 65, 27,130,168, 43,243,229,149, 50,248,221, 8, - 67,237,161,109,106,190, 74,183, 73,133,100,109,184,214,248, 50, 89,102, 91,237,201, 73,144, 93,116, 18, 54,182, 8, 10, 35,106, -170,186, 26,107, 64,199, 69, 27,154, 36,247,136, 36, 96, 83,215,195,178,161, 92,218,177,163,197,113, 80, 41, 38, 5,239, 41,197, -111, 17,242, 12,118, 85,210,217,121,183,189, 34, 67, 87,135, 30,217,182,169, 83,100, 54,154, 18,225, 33, 68, 2,163,240, 13, 76, -185,177,183,220, 34, 48,204,214,185,142, 64,158,223, 69, 51, 28,141,140,224,157, 9, 70,109,200,133,125,183, 93,157,157, 14,100, -220,150,225, 25,229,192,158,166,215, 33,214,231, 41,196,157,229,199, 10, 82,162,163,184, 40,250,244,212,250,237, 92,208,210, 4, - 77, 56,140,130, 37, 9,140,130, 70,185,174, 26, 23, 17, 82, 46, 17,105,201,237,230,241, 98,135, 42, 42, 87, 39, 27,151,116,121, -249,113,131, 51,153,183,198,167,136,208, 81,170,145,226, 40,142,180,235,233,213, 38,233,121,111, 54,137, 92, 9, 73, 0, 64,112, - 36,228,125, 20, 12,172, 35, 83,129, 69, 74,132,174, 44,187,108, 82,110,141,190, 99,153, 10, 91, 12,172,109, 81,222,154, 21, 42, -190,209,173, 58, 87, 90,152,156, 39, 62, 25, 21, 42, 57, 90,226, 91,194,155,138,186, 78,145, 5, 54,160,233,158, 12,145, 39,193, - 9, 11, 83,142,162,180,170,187,122,110, 39, 83,220,193, 25, 14,201, 5, 41,177, 2,226,241,129,164, 87,101, 4,202,123,199,100, - 23,119,109, 90, 65, 73,240,150,154, 10, 84, 10,116, 3,174,159,107, 67,154, 18,157, 44, 45, 20, 73, 10,105,110,168, 58,130,166, - 66, 79,213,168,111,169,244,246,233,194, 75, 70, 20, 67,187,158,116,109,164, 37,135, 18,165,199, 83,141,250, 20,118,147, 95, 71, -103,102,155, 83, 46, 88, 80, 15, 25, 26, 91,145, 33, 40,109, 11,183, 61, 41, 47, 58,216,247,138, 44,182,176, 20, 5, 71,197, 82, - 14,146,157, 32, 26,102, 54,185,142, 61, 20,177,141, 77, 16, 25,144,137,240, 85, 54, 36,144,134,156, 4,133, 52,132, 3, 93,192, -208,148,145,214,148, 58,133,115, 19,110,189,210, 1,246,212,168, 95,225,189, 72, 86,165, 79,208,112, 59, 19,205, 49, 38, 36, 34, -227, 83, 26, 98, 88, 10,120,171,195, 4, 3, 69, 0,123, 5,122,131,172,219,223,224,146, 28,120,213,196,118,113, 17,169, 13, 67, - 92,153, 25,166,114,101,219,216,141, 25, 13, 90,209, 25,135, 91,102,137,105,116,246,213,243,122,119,211, 90,109,158, 49, 53,182, -161,246,150,145, 38,149, 64, 16, 82,215, 29,241,231,247,165,201,151, 11,159,139, 22,219, 26, 27,207, 91,235, 65,239,146, 55,117, - 34,191,178, 18, 8, 7,191, 85,251,213,251,108,152,216, 99,199, 20, 61, 84,108,183, 14,110, 57, 83,249,156, 18,200,202, 95,119, -199,150,181, 72, 89, 67,177,247, 33, 17,214,192,234, 18, 64, 77, 72,233,218,117, 82,217, 28, 13, 45,155,107, 90,229, 82,157, 20, -180,213,142,208,219, 34, 42, 32,176,150, 54,236,161, 72, 81, 0,250,207, 93, 40, 26,148,203, 72,227, 8, 26, 40,253,182,205,143, - 66,169, 54,232,235,117,160, 82,192, 83, 65, 73,234,122,146, 77,123,180,146,213, 43,198,155,248, 54, 52,130,214,129, 74, 94,239, -104,168,255, 0, 82, 79,135,226, 18, 91,216,159, 11,196, 52,161,165, 41,217, 81,163,167,124, 60, 19, 10,250, 19,155,200, 50,131, -132,178, 67,116,236, 32,214,191,159, 87, 34,253,163,141, 85, 62,236,156,169, 37,204,238,100,129,177,205,238,147,210,161,101, 41, - 31,159, 78,141,205,162,161,189,197,249,147, 73,239,222, 18,232,250, 80,226, 43,212,209, 91,141,126, 93, 44,110,160,113,168,197, -128,209,101, 72, 82,213, 84,110, 75,123,126,112, 52, 36,124,186, 31,205,177,206,147,160, 10,213, 1, 34,164,184, 79, 94,128,143, -106,167,227,210,191,154,245,208, 44,105,165,216,169,126,149,240,194,144, 71, 66, 85, 66,127, 62,135,243, 90, 73, 96,162,183, 9, - 73, 66, 28,142,168, 97,213, 47,217, 82, 87, 69,166,135,225, 52,209, 59,116, 14,192,210,217, 24, 24,138,105,206,176, 99, 83, 91, - 2, 78, 57, 9, 46,169, 39,233,209, 29, 12, 58, 8, 29,161,214,246,184, 62, 35,170, 91,235, 29,191,115, 9,113,109, 19,255, 0, - 89,141, 62,212, 90,177,131,112,184,182,253,220,175, 30,147,243,101, 77, 17,103,200,109,177,131, 86,185,102, 44,101, 5, 40, 65, - 99, 53,151, 37,166,215, 94,133, 8,153,111,146, 83,240, 37,105,248,117,203,247, 46, 64,138, 41, 76,219,108, 94, 3,248, 24,110, -101,136,250, 70,135,176,246, 17, 90,120,119,232,165, 26,110, 28, 94, 63,213, 19, 15,180, 61,166,155,206,101, 92,193,141, 57,226, -162,210,140,130, 18, 87,243, 93,110, 51,142,165, 3,247, 75, 50, 82,250,201, 29,229, 31, 22,161,127, 62,231, 46, 95, 61,214,124, - 68, 99,131,139, 28,239,188,221, 14, 61,165,181, 45,187,126,199,184,229, 47,132,238,199, 1,234, 32,129,235,160, 45,158,102,173, - 16,229, 42, 30,105,109,185, 96, 19,150,170, 41, 89, 67, 10,135,108, 74,143, 68,255, 0,172,172, 37,144, 20,122, 15,104,250,206, -180,219,119,156, 97,175,108, 59,157,172,182,239, 60,116,151, 55,230, 14, 31,116,246,212, 75,158, 70,149,205, 50, 90, 72,201,155, -254,146, 23,213, 82, 67,153, 65,185,236,148,139,139, 14, 69,146,210, 94, 97,230, 28, 14, 50,243, 75, 21, 10, 74,146, 72, 32,142, -194, 53,211, 45,185,134, 59,182, 9, 34,120,115, 78, 68, 21, 21,143,150,212,194, 75, 92,210, 8,204, 28,232,144,190, 33, 36,146, -246,228,215,189,202,118,124,122,123,249,207, 93, 23,128, 13, 23,159,146,153, 37, 1, 30, 18, 82,208,160,175, 82,163,242,232,127, - 57,235,165, 54,220, 10, 70, 57, 1,100,168, 56,211, 73, 43,236, 93,105, 66,126, 61, 36,239, 43,153,167, 91, 8, 52, 24,200,252, - 66, 91, 66,201, 61,155,186,237,175,203,166, 95,187,213,141,188, 1, 69, 58,172,210, 31,113,104, 41,113, 74, 82,138, 69, 9,232, -107,241,234,170,227,118,206,181,123,124, 77, 9, 95, 76,158, 94,184,237,172, 43,203,142, 9,101, 32,170,117,218,206,222, 77,118, - 82,211,180,153,215,208, 31,219, 79, 67,109, 20, 32, 87,209,241,107,203,252,213,184, 29,226,246, 89, 78, 65,218, 71, 99,112,246, -226,107,218, 28,143,183, 13,175,109,133,131, 50, 53, 30,211, 77, 12,227, 1,131,120,142,152,204,199, 74,164,200,113, 45, 32,246, - 6,218, 6,171, 89,167, 94,163,160,245, 87, 89,119, 53, 43,109, 27,210,161, 59,199, 15,219,160,130,194, 99,183,225,188,210,193, - 5, 32,236,108, 36, 2,146, 43,234, 53,249, 59,244,252, 79, 34,148, 92, 77, 64,119, 78, 42,128,202,231,161, 49,143,138,249, 97, -128,225, 77, 18,164,117, 90,251,201,173, 77,107,235, 62,173, 89, 69, 49,164, 56, 19, 76, 69,241,116,104,183, 32,234,218, 62, 35, -104, 90,188, 50, 54,161, 78,169, 65,196,158,222,190,210,250,254,189, 88,199, 49, 74,135, 43, 22,157, 48,240,196, 52,233,121,113, -144,203,109,110,101,164, 4,245, 64,238, 20,175,237, 81, 32,252, 26,146,217, 86,160,190, 33, 79,187, 38, 53, 29,218,165, 13, 36, -213, 13,169,181,109,162, 75,132,164, 26,252, 20,232, 61,122, 39, 61,105,131, 18, 83,162,110, 54, 26,106,136, 72,250, 80,130,164, -145, 82, 28, 41, 30,191,218, 4, 87, 77, 23, 82, 52, 45, 51,100,227, 9, 73, 11,240, 59,104,151,104, 59, 43,223,219,210,128,105, - 5,233, 64,178,146, 23,138,199, 91,195,253, 88, 0,162, 10,147,180, 84, 18, 5,122,122,193,236,210, 12,180,211,163,164,155,223, - 29, 69,121, 18, 9,140, 28, 11,109, 42, 62,192, 42, 64, 89,167, 78,180, 34,189, 14,155, 51, 83, 69,149, 4, 93,120,154, 40,125, -239,160, 71,213,168, 33, 69, 52, 11, 10, 59,146, 21,212,254,199,101, 61,122, 87,196, 26,143, 35,106, 58,184,112,253,182, 67,128, - 59, 13,176,181,212, 40, 20,239, 65,221,233, 21, 59,135,171,228,166,135,197, 17, 80, 94,226,218,106, 47,134, 24,183, 62,137,173, -176,141,205, 42,128, 20,254,197, 77, 5,107, 82, 59,171,163,248,162,236, 41,147, 42,210,133,203, 10,140,235, 44,190,136,222, 19, -137, 40,109, 84, 0, 5,164,244,165, 65,166,144,217,200,162,105, 43, 86, 43,139, 48,103,102,216,175, 56,196,138, 54,155,213,166, - 83, 17,100, 6,131,219,101, 50,146,235, 21, 77, 65, 62,218, 0, 52,235, 74,208,106,199, 98,221,255, 0,150,223,197, 56,224,224, -189,135, 3, 89,126,113,219, 70,233, 97, 52,103,252,164,250, 69, 85,153,240,157,247,167, 35, 37,175,109,165,173, 7,111, 68, 21, - 32,145,208,215,213,175, 87,197,186,135,128, 69,120,202,226,207,195, 36, 26, 44,187,116,178, 2, 87, 20,169,170, 80,168, 40, 42, -167,208, 71,126,164,141,206,171, 95, 2, 84, 47,201,124, 19, 23,146, 26, 48,221,202,114,156,122,223, 37,216,194,237,109,182,203, - 90, 97,203,131, 28,125, 75,109,149,134,217, 10, 63, 56,132,159,131, 81, 11,129, 36,234,114, 30, 11,128,236,232,166, 52,105, 43, - 81,126, 13,228,175, 12,199,110, 25,122,174,104, 57, 61,182,240,245,172,217,147, 45,186,220,160,162, 27, 59, 86,183, 30,160,246, -139,157, 64, 29, 41,168,174,179,134, 71,181,197,123,185, 0, 80,122,104,222, 76,128,112, 74,153,109,222, 88,248,210,217,122,186, -100,174, 97, 86,233,179,111, 81,124, 9,205, 92, 24, 19, 99,185, 78,190,202, 28,170, 27, 43,160, 10, 32,106,217,151,109, 97, 80, - 5, 14,246, 85,197,127, 48,188,115,200, 92,115,113,185, 99, 87, 11, 77,178, 20,124,178,249,127,204, 32,218, 44,165,147, 46,201, - 13,231,156,109, 13,190,148, 18,233, 74,163, 39,122,104, 0, 0,246,247,106,174,107, 72, 46, 39, 23, 14, 31,180, 1, 1,234, 85, -171, 8,229, 64,130,169,229,194, 12,148, 37, 66,173,168,178, 2, 40,165, 21,159, 24,143,101, 41, 31, 59,168,212,200,202, 57,105, - 24, 30,154,108,165,114, 82,242,208,227, 65,100,164,133,130, 54,169, 46,142,148, 61,105, 64,123,181, 98,219,114,113, 53, 49,182, -160,142,143,170,140, 90, 94,105,233, 47,195,146,133,164,181,180,199,121,165,133,165, 78, 82,190,215, 97, 29,117, 26,242, 55, 70, - 53, 4,164,220, 91,120, 96, 56, 28,234, 75, 76, 68, 8,254,230, 26, 67,202,157, 12, 8,211,165,201,117,166,152,144,250,168,151, - 2, 82, 65,168, 41,167, 90,141,103,223, 54,167,107, 84,210,113, 1, 49,234,168,108, 24,130,148,158,204, 59,229,150,234,211, 74, - 84,180, 75,101, 74,113, 18,216,121,101, 74, 43, 20, 11,108,208,116, 80,236,233,169, 13,124, 59,140,125,212,210,112, 67,243, 84, -150,188,198, 66,103, 83,164, 22,242,108,133, 41,112,166, 93,217,201, 12,179, 15,124,240, 21, 40,164, 13,161,180,239, 4, 4,128, -122, 17, 77,103,223,178, 65,102, 75,154,208,198,180,151, 97,151,111,109, 88, 27,121, 46,193, 40, 78, 21, 46,175,143,236,184,174, - 49, 46, 76,131, 26, 29,221,113, 82, 87,238, 15, 41,231,226,174,160,149, 60,165, 16,216, 61,169, 74, 82,159,135, 71,101,113, 37, -244,141, 44, 87, 48,158, 57, 30,207,157,107, 37,121, 28,238,152, 52,180,162,228, 66,122, 0,207,210,106,184,228, 78,221, 85, 33, - 81,227, 60,153,211, 29,111,199,121,110,237, 45,194,100,143,101, 29,201, 78,212,245, 62,189,107,237,237, 27,239, 16,141, 5, 7, - 93, 61, 29,152,247,156, 16, 15,111, 93, 1, 14,237, 38, 98,109,182, 47, 6, 37,177,198, 22,219,177, 39, 58,232,105,249, 53, 40, - 9, 74, 20,158,242,229, 85,219,168, 87, 86,130, 29, 82, 41,112, 57,142, 3,228, 40,131, 68, 42,224,164,147,234,169, 30,246,254, - 21, 6,218,192, 85,254, 74,114,134,197,201,169,162,212,253, 89,143, 9,164,161, 72,105, 75, 73,220,227,146, 92, 36, 43,122,136, -167,118,168,173, 69,204,146, 31,217,143, 11, 2, 20,113,199, 30,160, 7, 70, 52,213,175,137, 63,188,212,111, 95, 26,174, 87, 55, -163,220, 34, 41,111,202, 33,216,174, 40, 51, 30, 59,101,207, 13,135,205, 70,227,216, 40, 15, 90,107, 91, 2,177,200, 6,125, 53, -102,130, 60, 0,206,155,145, 31,102,215,112, 92,150,203,175,199,105, 37,173,237, 2,149, 37,197, 39,188,252, 58,153, 43,124,102, -233,165,144, 92, 19, 35, 73,253, 30, 81,121, 53, 90,214,226,150,176, 87, 68,251, 71,187,175,203,165, 17,164, 32,163, 36,180,161, -172,138,149, 61, 49,245,198, 82, 16,152, 72, 66,157, 59,124, 68,151,148,122, 38,149,161, 29, 52, 65,202,221, 36,103, 71, 39,236, -218, 11,179, 39, 10,117,205,185,155,220, 86,209, 38, 44,113, 58, 58, 10, 61,237,132,251,186,138, 43, 84,157,128,129,236,246, 29, - 71,142, 33,108,123,164,167, 69, 33,211, 12, 1, 20,144,216,144,228,132, 43,197, 42,241, 6,197,165, 39,160, 2,128,157, 60,196, - 74, 67,158, 8,169, 67, 13,178,220,174, 23, 24, 81, 90,136, 84,210,100, 23, 29, 91,233, 9,105,207,119, 5,123, 66,150, 67,123, -138, 65, 32, 19,215, 84,219,141,220,118,205, 37,113,234,207,235,163,183, 46,241, 3,149, 71, 69, 89, 88,141, 74, 90, 29, 76,102, - 55, 66, 97,178,209, 74, 15,187, 36,164, 15, 81,175, 78,241, 93,102,101,149,184,106, 61,227,233,173, 88, 64, 2,224,106,172,242, - 28,117,196,190, 92,151,214,146,131,114,251,122,148, 44, 81, 93,107,234, 58,222,109, 82,106,128, 1,195, 10,135, 59, 18, 76,106, -199, 91,153, 67, 86, 56, 18, 35,175,221,227, 57, 10, 42, 98,176,144,104,182,182,142,128,131, 74, 83,183, 88,185, 29,170, 82,210, - 20,169, 83, 83,218,153, 86,170, 9, 81,170, 73,167, 74,212, 83,174,156, 24, 83,130,181, 74,106,105,220, 59, 72, 21, 26, 82,165, - 29, 12, 90,220, 9,111,105, 9, 74, 73, 4,209, 68,159, 71,167, 69,169, 41, 53,174,215,104, 90,161,234,160,173,149,234, 84, 1, -235,249,244,165,163, 78, 53,219,134,148, 18, 2,156,113, 37, 93,251,151, 82, 15,203,172,127,243, 74,207,150, 10,221,217,109,176, - 55, 84, 45, 61,190,201,175, 95,151, 64,110,137,198,146, 99, 20,155, 39, 36,115,114, 89, 97,164,133, 30,213, 47,169,167,203,161, -252,212,209,136, 0,163, 48,111,178,214,164,182,183, 83, 82,126,106,187,193,248,244,109,220,143, 77, 7, 66, 13, 58,125,241, 1, -180,174,137, 11,165, 2, 73, 0, 19,242,233,223,230,102,154,240, 22,149,163, 94,149,224,132, 45, 45,213, 61,128, 40, 19,250,116, - 99,116,235,162,248,112,104,155,242, 93,121,210,225, 82, 69, 79,237, 47,187,229,208,254,100,105, 66,220, 81, 87,220, 83,169, 13, - 54,180,215,188,248,148,167,193,215, 64,238, 75, 78, 54,216, 10,109,204, 75,241, 84,135, 91, 86,231, 82,174,128,175,122, 77,125, - 61,116,217,220, 8,167,124, 17,149, 17,149,113,120,165, 75,150,178, 18,132,149, 16, 58, 84,250, 5, 77, 58,232, 29,202,128,128, - 84,117,118,203,172, 18, 24, 16,238,241,140, 86,100,128,209,106,255, 0, 19,192,136,250,221,233,176, 45,208, 99, 56, 79,102,212, -172,234,182,227,122,133,227, 68,195, 15,245, 12, 61,103, 15,109, 88,197,182,204,195,174, 18,164,113, 97,196,122, 1,212, 61, 85, - 77, 57, 62,227,147,121,125,191,218,114,236, 94,237,119,131,195,119,185,232,139,149, 88, 32, 41, 19,109,248,109,198,114,168,137, -177, 98,190,151, 88, 68,119, 9,170,219, 9,160, 53,218, 82, 74,117,131,221,246,182,216,220,139,203, 87,190, 48,227,137, 97, 68, -237, 25, 22,158,130,163,209, 93, 15, 98,188,143,153, 32,117,165,203, 24,251,134,142,225,112,197,192,112, 39, 61, 67,167, 63,109, - 79, 77,231, 51,153,137,110,151,122, 84, 9,182, 11,155,108, 59,110,204,241,245, 47,238,133,183, 44, 36,176,101,199, 82,221,118, - 48,122,160, 7,144,181,183, 82, 55,120, 99, 90, 6,115, 13,222,214,192,251,146, 37,139,241, 24, 17,192,116,185,185, 30,189, 40, -157, 4,214, 81,251, 60, 23, 79,116,112, 43, 37, 24, 24,222,115, 35, 48,215,113,236, 56,211,193, 18,165,188,194, 95, 97,196, 41, -178,141,201, 90, 28,222,149,143, 72, 32,208,235, 77,111,188,178,234, 49, 36, 78, 5,174, 10, 8, 56, 17, 84,111,128, 68,226,199, - 96, 71, 10, 1, 19, 37, 41,198,204,165,111,103,112, 42, 2,181,160,248,244,231,243, 19,211, 70, 34,111, 10,121, 67,157, 12,169, -189,141, 18,222,224,107,183,160,252,250, 14,220,169,216, 33, 67,157, 75,120,188,168,110,220,237,205,208, 54,135, 37,198,109, 75, - 34,129, 41, 82,192, 39,183,184,106, 5,198,226,141, 53,171,218, 97, 14,123, 65, 60, 69,125, 33,242, 87,154,158, 0,242,237,199, -252,121,255, 0,197,108,242,221,137,127,120, 49,203, 64,199,172, 34, 59,247,156,130,100, 6,163,180,143, 21, 48,160,183, 38, 64, -105,191,154,183,148,144,141,195,110,226,174,135,132,201, 32,110,167, 60,241, 63, 61,123, 98,202,226, 56, 32,137,171,246, 2, 14, - 57, 83,179, 15,204, 48,206, 70,176, 90,115,156, 34,243, 23, 37,197,239, 76,174, 77,154,243, 13, 46, 55, 26,114, 18,181, 33, 65, - 33,228,182,224, 40,113, 37, 10, 10, 72, 33, 73, 32,245, 4,106, 62,160,238,240,198,174,160,144, 72, 21,180, 79, 47,179,180,181, - 38, 90,134,208, 6,210,142,228,165, 32,128, 79, 94,242,170,232,136, 67, 83, 35,198,161,169, 48, 96, 62,235,232, 45, 81,197,186, -226, 80,118,215,234,118,142,157,123,194,105,169, 17, 58,156,116,102,152,215,124,125,135, 54,203, 75,105,250, 63, 17, 32,132,215, -115,109, 36,144,159,140,184, 63, 55,163, 86, 17,185,106, 51,216,148,213,154,150,217,109,224,118,160,168,169, 71,119,106,156,111, -105, 6,181,248,245, 49,133, 42, 19,217, 74,152,164,116,172, 47,104, 72,109, 33, 99,211,211, 96,245,247,168,105,101,212,195,219, - 82, 50, 45,172,190, 16, 28,216,165,184,181, 44, 44,118, 36,142,207,151,105,211, 46,117, 39, 69, 12,237,130, 50,219,108,134,144, - 86,160, 80,180,208, 0, 18,217, 32,143,132,164,212,105,146,250, 73,142,145,151,136,180, 10,210,132, 81, 77, 44,251, 4,244, 61, - 1, 20, 63, 6,153,116,148,219,152,148,135,119,177,248, 33,106, 66, 42,150,210,179, 94,212,173, 3,180, 30,189,104,127, 94,153, -115,234, 59,153, 81,125,198,218,194,150,255, 0,176,147,225,123, 73, 77, 43, 84,215,176,245,253,147,217,164,137, 42, 44,141,166, - 20,251, 36, 70,192,115,106, 78,213, 33,197, 30,193, 66, 73, 35,183,165, 6,149,169,106,182, 97, 77, 11,228,102,217, 97,194,104, -170,173, 40, 36,116, 4,252,190,201,236,248,244, 26,106, 38,149, 52,211,181,196,140,250,151, 25,109, 37,230,157, 81, 66,211, 65, -208, 56,123,186,244, 53, 33, 73,249, 52,153, 93,167, 26,119, 74, 85,143,193,109,169,180, 75,132, 20,216, 83,105,121,130,146, 69, - 82, 77,126, 30,197, 15,202,186,134, 37, 33,192,241, 21, 26,230, 49, 43, 11, 78, 68, 85, 54,207,236,209,237,153,134, 79,108, 75, -204,152,240, 47, 23, 38, 99, 56,149,130,181, 52,135, 87,178,167,165, 78,222,218,247,235,209,251,110,234,102,129,142, 92, 75, 71, -205, 94, 53,223, 44, 69,188,242, 55,161,199,231,168,226, 58,214, 29, 20, 85, 80,149,145,208,212, 19,242,234,218, 61,193,120,214, - 74,104,192, 57,210,179, 14, 45,215,130, 86,148, 43,169,173, 71, 65,167,155,185, 26,130,230,117,210,211, 97, 0,144, 26,217,180, -118,138, 0, 72,211,191,204, 9,227, 67, 64, 52, 28,203,237,190,203, 2, 93,210,243, 41,152, 86,216, 12,169,231,223,144,104,132, - 33, 31,164,158,224, 52, 62, 61, 2,147, 68,228, 96, 82,107,148, 94,109,121, 63,141,121,130, 75, 86, 75, 6, 56,220,183,225, 4, - 46,126, 74, 97, 8,183, 39, 0,170, 91, 67,110,164,248,193,176,154,212, 19,241,105, 63, 19, 36,142,107,195,136, 1,112,233, 53, - 13,247, 14,105, 5,167, 10,167,107,196,120,234, 4,139, 12,139,133,166,224,244, 59, 69,198,223,117,158,203,225, 14,220,174,168, - 96, 2,182, 67,244,234,218,182,128, 19,219, 65,167,163,186,121,120, 45, 56, 28, 19,128,244, 81, 71,112,231, 59, 4, 76,191, 77, - 80,156,182, 67,111, 93,175, 82,217, 99,221, 89,149,113,184, 75,102, 56,233,238,237, 62,234,148,148,127,228,131, 77,116, 88,143, -116,118, 86,197,140, 66,148,238,227, 28, 81,139,176,185,195,144,200, 18,153, 85,181,240,253, 10,157,219, 32, 21, 16, 58,246, 40, -122,117,159,222,110, 68, 32, 60,156, 16,212,151,217,120,132,181,213, 98,156,198, 45,145,132,107, 60,246,158,144,155, 96,115, 97, -247,143, 17,144,242,186,128,118,154, 16, 1,166,185,164, 87,211,110, 79,241,173, 64,240,158, 70, 39, 5, 3, 2,156, 65,167, 89, -180,194,204, 74,173, 72,150, 38,173,182,251, 29,198, 28,123,100, 71, 38, 92,148,211, 42,157, 34, 40,125,246, 98,180, 58, 54,211, -138, 63, 70, 7,203,166,174,182,249, 31,185, 91, 73,168,233,105, 61,208,228,196,253,162,223,181,243, 85,133,189,147, 2,160,167, -158, 47, 96,146,185, 81, 68, 68, 43,222, 11,136, 75, 1, 9,169,222,174,130,130,186,232,119, 49, 49,209, 56, 73,238,166, 53,105, - 28, 66, 32, 94,236, 0,198,186,209,228,235,240,230,159,230, 27, 43,196, 47, 25,173,178,225,116,224, 65,152, 93,177,222, 71,202, - 44, 83,162,137, 2,253, 10,206,228,230, 45, 49, 18,249,113,126, 44,135, 94,142,201,144, 90, 40, 66,150, 1, 59,168, 53, 85,181, -110, 14,141,102, 99, 90,210,214, 29, 12,114,226, 1, 13, 47, 32,125,145,137,205, 78,147, 91,175, 41,185, 30,227,157,239, 34,220, -230,138, 49,100,215, 72,221, 15,247,156, 90,208, 53,185,169,238, 43,148, 98,170,211,134, 85,203,254,120,242,183, 39,128,185,203, -151,248, 74,117,178,117,226, 54, 7,152,228,120,235,215,249, 12,120, 73,153,106,130,251,138,183,204,115,160, 1, 50,160,150, 95, - 9, 31,189,171,123,141,231,226, 88,201, 67,131, 92, 64, 45,111, 28, 64,195,182,184,207, 62,237,110,229,219,249,237, 73, 66,201, - 8, 96,226, 90,113,105,237, 45, 34,168,162,109,118,107,150, 79, 2,222,233, 84,123, 76, 7, 29,141, 34,227, 37, 36, 58, 67, 1, - 75, 7,169, 1, 0,237,162, 82, 59, 6,167,110, 6,107, 88, 28,224, 21,231, 20, 29,127,227, 88,221,197,146,218, 70,231, 39,124, -226,149, 25, 95,172, 15,137, 75,185, 68, 43,110, 4,217,210, 26,131, 69, 16,183, 91, 71,125, 1, 39, 82,173,110, 1,110,135,123, -192, 5,165, 91, 92, 32,209,246,128, 11, 76,137, 77,207,182,201, 8,241, 29,109,194,144, 84,146, 73, 14, 3,217, 81,223,171, 40, -180, 76,213, 65, 86, 17,145, 48,167, 13,128,148,203, 8,155, 21,231, 26,112,165, 82,163,200, 65, 8, 90, 86, 71,180,107, 74,118, -246,234, 13,211,155,165, 88,225,212, 65,167,159, 25, 35, 10,121,101,220,125, 92,113,121, 70, 58,165,165,184,238,186,151,163,211, -232,220, 64,161, 88, 20, 61, 10, 43,170,123, 77,219,246,222, 12,156, 69, 95,237,150, 70,230,220,204,246,226, 10,118,211, 71,133, -173,240,111,121,186, 44, 55,116, 47,221,110, 17,158,121, 65, 43,216,175, 22, 0,223, 78,222,187,147, 81,170,191, 49, 57,142, 94, - 85,219, 93,123, 11,117, 57,164, 14,161,171, 5, 61, 66,151, 30,222,203,243,165,252, 49, 21,106, 87,194, 56,250, 46, 87, 0, 26, -150,220, 9, 80,155, 84, 37,169,226,124, 23,150,122,208,215,229, 26,231,158, 95,121,141,125,205, 50, 72,219,134,181, 35, 28, 6, -107,149, 71,190,218,161,134, 48,230, 28, 73,245, 37, 74,152,239,149,155, 17,178, 49,119,187, 51, 50, 56, 92,130,212, 85, 34, 82, -155,117, 81,157, 72, 9,121,193,212, 83,119, 80, 53,146,187,243,178,111,230,151, 59,124,122, 72, 97, 58, 48,207, 78,109,237,165, -187, 99,143,194,107,241,199, 63, 77, 57,242,206, 47, 24,244, 43,124, 43, 4, 95,122, 92, 86, 74, 86,164,182, 11,196,188, 0, 82, -234,154, 5, 26, 14,218,106, 79, 42,249,143, 6,244, 95, 53,219,131, 59,201,137, 65,212, 16,229, 75,142,193,182,238, 13, 3, 42, -140, 22,212,248,172,136,178, 18,251,102,133,207,119, 36,132,184,149, 84, 14,158,154,235,164, 13,198,218, 87,130,215, 52,147,145, -169, 90, 20,173, 87,142, 93,136,234, 47, 16,156, 92,115, 24, 63,107, 80, 13,144, 69, 67,106, 61,122,250,107,173,215, 46, 78,217, - 98,118,151,106,199, 58,131,116,212, 32,212,155,128, 92,228, 93,112,251, 17,222,218, 69,189,151, 96, 40, 41, 96,157,236, 40,130, - 72, 38,189, 64, 20,213, 30,229, 19,109,231,126,120,149,169, 81,128, 66,244,211,150, 66, 17,236,169, 5,123,150,176,149, 36,160, - 0, 22,179, 68,129, 78,221,221,195, 81,161,148, 60,166, 31, 44,233,110,120,132, 43,136, 2,138,181, 45,182,151, 37,150,228, 32, - 58,193, 45,202,106,160, 45,146,149,109,246,135,119,181,211, 82, 95,110,226, 3,136,195,133, 69,102,225, 12,197, 3,133, 12, 86, -178, 66,171, 69, 14,160,142,134,186,105, 42,110,154,247,114,255, 0,125, 93,181,173,122,215, 73,212, 21, 56,209,233,174,197, 72, -107,195, 72,113,153,105, 4,132,246,188, 8, 81, 53,232, 58,250, 6,184, 37,223, 55, 89,217, 5,124,131,215,242,232,164,193,178, -220, 92, 96, 35, 52, 78, 66,100, 52, 69,101,138,168,110, 4, 56, 20, 8,236,244,250,117, 62,211,124,142,245,130, 72,220, 8, 52, -196,187,123,237,221,165,205,198,136,169,183, 84,173,229,218,171,183,112, 61,223, 46,165,182,255, 0, 94, 68, 83, 70,217,195, 54, -214, 42, 60,226, 66,227,188,231,136, 15, 78,191,211,165,139,211,194,141,176,245, 82,131, 81,238,142, 83,198,121,222,157, 42, 87, -253, 58,115,227, 9,160, 97,234,167, 44, 91, 68,221,187,209, 45,104, 89, 29, 1, 85, 71,233,210,133,217,164,120,125, 84, 93,228, -222, 34,184,166,158, 94,244,171,230,184,159,157,250,116, 13,227,169,225, 8, 60, 41, 22, 75,179, 16,165, 85,247,135,101, 61,163, -254, 93, 54,111,136,167,155, 23, 85, 36, 73,187, 92,155,162, 67,196, 54,154, 16, 84,106, 79,231,209,139,226, 41, 98, 6,158, 20, - 11,215,217, 50,227, 6,158,100,215,160,223, 74, 2, 6,148, 47,150,147,240,205, 24,165, 33, 93, 46,142,187, 28,197, 12,178,166, -214, 11,110,135, 80, 22,149,160,247, 16,106, 8, 58, 73,189,213,129, 20,203, 98,208, 84,103, 80,222, 73,132,170,227,105,185, 91, -237,102, 44,171,109,214, 43,209,110,248, 85,213,103,251,191,117,136,240, 33,104,142,125,163,109,118,134,173,173,177,176, 42,133, - 72,175,180, 43,101,143, 72, 34, 60, 1,205,191,100,250, 56, 30,177, 87, 54,187,150,153, 26,233, 65,212,211,132,131,222, 7,175, -252,195,164, 28, 83, 35, 85,147,203,143, 35,177,134,229,217, 39,150,108,215,222, 83, 30,179,191,184, 43,201, 26, 72,150,213,178, - 72, 82,157,181, 62,159, 16,182,165, 4, 18,166,136, 42, 73, 27,182,213, 37, 26,207, 54, 73,164, 91, 95, 21,209,181,115, 1,164, -254,175,120, 16,135,171,233,173,183, 49,237,205,186,133,155,188, 44,107,156,131, 90, 18,138, 50,120, 68, 56,117,250,114,165,108, -235,204, 52,223, 46, 25,226,176,140,191, 28,151,121,196,238,141, 53,117,178, 93,109,242,150, 37,139,123,196, 52,165, 39,198,113, -239, 24,160,160,151,129, 80, 37,123,136, 32, 30,174,109, 34,110, 95, 38, 16,237,113, 42,133,192,133,232, 76, 61, 9,195,174,163, -195,176,195,206, 48,124, 84,110,209, 48,193,193, 48, 81,237,236, 61, 21,121, 44,114,109,185, 13,178,217,117,181, 56,153, 16,174, -240, 98,220, 97, 59,216, 87, 18, 98, 18,226, 9, 4,244,246, 84, 42, 53,176,109,238,161,133,115,121,224,125,179,220,199, 4, 45, - 36, 31, 69, 57, 25,181, 33,167,144,133, 56,176, 9, 30,202, 77, 5,116, 78,187, 74,145,111,143, 10,151, 99,225,249, 45,155, 21, -123, 61,147, 22, 44, 44,106,219,111,186,222,211, 62,237,122,129,102, 92,200, 22, 22,158,126, 67,177,217,153, 41,135,164, 33, 34, - 59,137, 10,109, 4, 41,105, 40, 73, 43,246,117, 91,115,185, 8,195,179, 32,102,128,159,104,174,153,203,124,159,185,110,177,139, -152, 32, 38, 63,243, 18, 0,195, 50, 53, 16, 72, 29, 75,146,103, 84,251,128,145,201, 30,124, 60,223, 98, 54, 44,230,247,117,157, - 27, 38,185, 54,229,250,226,151,138,213,140,241,158, 30,194,156, 92,104,219,170,220,112,204, 24,226, 59, 21, 20, 46,173, 37, 91, -148,163, 94, 97, 51,219,118,242,153, 41,175, 76,237,118,157,214,181, 73, 32, 0, 79,101,125,151, 91, 91,177,227,216,254, 55, 99, -199, 33, 68,179,216, 49,200, 16,108,246,123, 92, 84,120, 81,109,246,251, 99, 65,166, 91, 66,107,243, 90, 66, 82,145, 95, 71, 94, -186,112,185, 17, 43,101, 4, 90, 66, 80,217, 11,158,245, 21,151, 20, 64, 76,160,216, 53, 85, 18, 19, 66, 71,127,168,104,206, 53, - 54, 32,134,161,121,173,182,195,242, 83,188, 23, 16,151, 85,208,154, 0,178, 74, 79,111,236,233,216,194, 84,163,136,166,109,210, -229,238, 17,159, 74,213, 86,219, 4,163,113, 29, 64, 66,135,166,189,164, 15,139, 86, 49, 5,168, 51, 84, 51,147,220,202,212,151, - 83, 93,143, 54, 28,108, 37, 84,232,234,208, 59, 43,208, 80,234,198, 38,213,123,141, 40,226,215,230,182, 46, 34, 29,240,212,223, -142, 10, 73,234, 84, 85, 79, 79,238,233,199,178,163, 57,220,106, 96,182,222,154,113,230,146,163,185, 78, 4, 26, 87,165,105,211, -191,248,181, 21,237, 74, 32,234,115, 34,119,136,218, 30, 65,170, 3,136, 80, 79, 74,215,109,105,219,233, 21,212, 71,138, 88, 34, -182,114, 90,131,200, 86,239,162,222,227, 75, 77,122,168, 44,146, 15,111,160,234, 51,169, 46, 66, 41,171,122,185,160, 54,166, 40, - 64, 7,104, 4,246, 5,131, 81,219,233,169,248,180,219,141, 66,147, 10,136,238,206,180,210,220, 94,237,141,186, 86, 21, 67,212, - 33,164,212,119,247,154,233, 34,161, 61,213, 20, 92,110,141, 49, 37,197,151, 71,128,240, 41, 82, 66,170,148, 56, 27, 7,211,208, - 21, 36, 83, 79,129, 85,243, 21,166, 13,238,240,135,144, 16, 84, 75, 78,165, 59,200,234, 80, 19,209, 68,122,104,160,126, 77, 45, -173,168,128, 99, 77,108, 81,249, 31,127, 58,149,149, 6,148,180,148, 36,154,215, 98,169, 74,215,184,211,175,199,164, 92, 14,237, - 73,193, 42,238,227,203,103,116, 52,169,180, 56,180, 70, 14,172, 41, 65, 33,192,138,168, 84,214,128,138,117, 58,167,107,195, 9, -115,138, 1,153,170,235,199, 22, 70,242, 56, 3, 84, 91, 41,192,178,183, 46,215, 43,132,248,109, 36,207,153, 38, 86,233, 51, 90, -109,192,135,220, 81, 0,239,118,181,235, 77,111,225,243, 43, 99,180, 96,105,189,135, 12, 48,114,229,217, 94, 82,222, 54,219,153, -229,115,188, 55, 98, 73,166,236, 44, 9, 98, 67, 77, 74,153, 5,149, 72, 80, 2,183,104,233, 67, 99,248,168,233,219,241,232,228, -243,135,151,237,129, 46,187,105, 79,242,135, 31,152, 99, 89,137,118, 27,151, 28, 99, 79, 72,165,197,113,204,246,230, 24,240,238, - 22,121, 64,167,196,109, 98,249, 16,161,226,154, 85, 8, 88,127,106,148, 61, 0,232,219,231, 87, 46,150,135,139,176,132,166, 45, -120, 35,180, 22,168, 29,102,163, 30, 92,185, 46,210, 35,199,180,125,116,227,103, 10,188,176,218,203,214,246,227,182,218, 65,121, -229,204,142,182,129,236,249,193,210, 15,197,171, 59,111, 55,121,122,225, 3,111,225,199,253, 73,151,109, 71,118,193,116,213,253, -145,170,203,230,123,141,121, 43, 40,198,162,227,216, 28, 75, 59,193,244, 61, 58,238,101,228, 48,237,201, 91, 17,232, 16,218, 75, -175, 36, 21, 18,107, 74,215, 80, 47,188,234,229,171, 89, 24, 31,119,172, 23,125,134,185,233,219,164,101, 81,230,229,187,185,208, - 8,208,103,137, 2,185,198,175, 39,188,170,211,139, 76,172,135, 6,176, 38,224, 99,190,243, 79,228,254,254, 91, 81, 86,197, 50, -178,202, 30, 81, 40, 29, 73,173, 61, 7, 66,235,251,129,216, 66, 24, 89,113, 42, 46, 81,145,195, 62,241, 25,210,191,245, 41,221, -139,139, 71,166,154,247,127, 42,153,132, 75, 96,102,227,153,225, 30,240,220,226,132, 60,221,205,233, 81,197,188, 21, 10,149,120, - 73, 88,219, 90, 10,252, 90,122,219,207,125,182,119,172,118,215, 30,239, 22,128, 87,163, 58,114, 30, 83,124,114, 52,189,205,208, -184,166,117, 70,115,207, 42,249,108, 25,147, 94, 57, 14, 45, 49,141,225, 77, 24, 50,221,113, 14,165,125,125,146, 91, 0,144, 59, -181,212,246,159, 56,172,111, 88, 27,224,204,211,214, 7,215, 87,243,217, 6, 57, 90, 69, 21,193, 44,139,195,111,254,245,150, 43, -117,158,117,173,187,108,183,109, 43,219, 38, 60,187,122, 74, 89,116, 33, 84, 83,137, 61,139, 2,158,157, 51,204,219,228,155,205, -153,102,218,158, 48,114,128,241,129, 7, 48,163, 35,209, 79,135,181,228, 23,116, 84,203, 13,206, 50,143, 62,216,227,217, 68,201, -108,188,165,185, 57,183, 45,206, 50, 90, 36,157,181, 39,169,245,211, 92,218,219,255, 0,108, 12,116,113,197, 24,104,192, 33,106, -122, 42,198, 6,197, 32, 58,134, 53, 51, 34, 47, 27,170,212,243,176,175,137,153, 41, 76, 32,192,140,203, 74,104, 38, 65, 85, 9, -119,114, 69, 61,158,186,184,217, 54,109,214,125,202, 11,171,182,150,232,119,120,170,141, 41,128, 24,250, 42,194,206, 18,133,169, -157, 72, 60,113,139,191,145, 93,163, 91,236,208,167,221,165, 4, 46, 67,145,237, 80,221,153, 33,168,237, 83,123,139, 75, 73, 90, -155, 66, 42, 55, 44,138, 14,243,174,215, 44,134,232,104,140, 18, 74, 12,186, 74, 86,143,109,216,230,220,222, 33,130, 50,247, 20, - 8, 1, 57,148, 82,156, 58,235,238, 47,203,255, 0, 7,224,222, 93,184,171, 13,192,113, 95, 29,188,121, 55,219, 10,243,151, 17, - 41, 50, 33,171,145,161,251,155, 46, 93,146, 21, 87, 25,106,124,219,106, 33, 45,148,154, 85, 77, 40, 36, 31, 21,107,202,238, 23, -179, 94, 92, 56,134, 0,241, 11,132, 96, 4, 38, 50,195,129,224, 92, 26,239, 19, 87,235,117, 1,235,251, 29,177,219, 88,109,188, - 17,181,169, 9,210, 26, 52,247,116, 41,203, 55, 6,157, 68,226,112, 32,240,175,153,127,197,202,126, 46, 60,249,114,253,169,167, -227,123,188,200,220,100,206, 66,150, 39, 8,161, 55, 52, 99,214,173,254, 33,220, 17, 80,217, 65, 88, 61,253,189,107,170,230,109, -211,221, 89,178, 72,166, 44,144, 52,233,192, 30, 37, 56, 46, 33, 61, 25, 87,150, 60,205,218,109,239,183, 93,111,141,165,250, 91, -137,233, 35, 3,247, 83,209, 92,127,243, 15,199,252, 43, 19, 22,200,238, 88,158, 69,143, 92, 47,208, 24,138,166, 88,137, 36, 25, -243,102, 73, 41, 73, 75, 65, 36,120,138, 66,107,186,154,215,114,198,231, 53,172,113, 65,114, 73,195, 18,125,100,159, 78, 85,142, -223,246, 59, 49, 17,240,222,194,230,180, 46, 88,245, 10,160, 24, 85,198,125,183, 45,177, 34,249, 25,231,172, 41, 76,155,108,176, -166,247,166, 28,123,144,219,226,147, 83, 66,218,168,107,220, 53,111,189, 79, 4,246,239, 48, 60, 7,230, 49,204,142, 21,205,101, -218,216,240,244, 8, 93,198,165,247,120,251, 21, 99, 44,220,253,206,217, 46, 51,143, 70, 17,165, 42, 66, 92,136,203, 46,169, 36, - 58, 78,239,216, 29,163, 89, 27, 78,111,150,125,189,210,186, 50,215,183, 82,179,137, 45, 81,135,111, 10, 59, 13,163,225, 48,115, -181,116, 97, 86,165,142, 48,226, 73, 51, 45,242,215,153, 99,179,218,105,160,205,201,199,230,180, 95,125, 64, 10,165, 7,120,218, -154,107,202,187,247, 57,243, 37,244,132, 54, 9, 98,141, 85,173,107, 72, 3,172,244,154,210, 50, 56,180, 16, 64, 90,100,114,204, - 60, 25,150,238, 54,236,114,101,183,238,193,110,121,192,136, 15,180,180, 73,150,240,235, 64,149, 16,123, 5, 78,186,247,150,147, - 94,195,102,199, 95, 23,120,133,231,222, 85, 13,225,158, 85,121,106,216,219,108, 26,226, 6, 4,250,234,133,241,117,142,225,108, -229,108, 46,235, 57,149,194,182, 28,133,177,114,150,234,118,177, 22,220,241, 83,107, 83,166,180, 72,216,173,117,126,125,158, 29, -215,101,186,129,132, 57,230, 62,232, 25,151, 12, 66,122,107, 44,192, 99,118,161,215, 93, 2,201, 50, 28, 70, 37,220,196,129,147, - 91,238,113,218,217,244,241,148,162,202,106,105, 65,211,173, 7,105, 26,229,126, 88, 88,187,102,177,149,247, 44, 44,149,231, 35, -154, 1,133, 68,153,175,153, 48,192, 84,242,247, 52,113,148,107, 59, 22,213,222, 85,112,115,220,153,142,168,208, 33,187, 33,244, -148,164, 38,180,218, 58, 36,247,215, 94,114,119, 33,111,147,110, 46,189,100, 90, 63,106, 92, 11,156, 0, 56,175, 79, 17, 90, 33, - 36,126, 30,131,209, 77,216, 60,175, 96,155,111, 67, 48,237, 25, 12,249,236, 63,182, 59,237, 90, 86,134,228,177,212, 83,122,202, - 82, 9, 71,175, 90,253,199,146,222,219,135,191,196,141,145, 72,195,168,106, 10,215,116,160,232, 53, 93, 11, 30,222,208,112,166, -115,104,183, 92,224,190,202,112,204,213,233, 43,146,144,204,144,134, 88,172, 84, 21, 43,106,220, 46,157,148, 81,169,233,171,152, -117,237,143,137,194,230, 3,162, 48,210,186,142, 61, 32, 38, 56, 82,244, 60,188,185, 48, 37,106, 42,201,248, 15, 55,228,171,133, -185,199,229, 68,180,177, 27,197,136,202,174, 18,146,165, 48,219,202, 27, 75,138, 30,129,240,235,164,237,190,108,237,252,178,199, - 54, 54, 23, 40, 24, 52,102,153,167,109, 54,253,189,211,165, 63,112,239, 43, 87,220, 1,169, 76,222, 50, 28,121,248, 49,215, 34, - 98, 95, 46, 41,229,184,250,246,165, 9,101,162, 91, 75,129, 74,246,190,118,179,187,191,158,145,239, 9,240,208,188, 56,160, 76, - 48, 28, 84,226,157, 25, 84,150,109,133,129, 9,169, 54,197,194,182,203,171,173,220, 37,100,111, 66, 22,199, 75,168,113,171,123, - 48,225,153, 40,175,181,185, 69,210, 10,123, 82, 79,126,178,247, 30,110, 93,237,142,119,135, 19, 92, 94, 56,146, 72, 29, 67, 15, - 77, 38,109,141,151,141,211, 34,165, 45, 39,135,184, 22,221, 29, 13,220,172,217, 45,254,243, 62, 66, 80,244,166,174,133, 44,186, - 84,165, 56,165, 57,225,208, 44,168,154,147,219,170,185,252,218,230,107,183, 19, 28,209, 71, 24, 25,104, 10, 59, 22,132, 60,187, -107, 16, 29,197,167,213,187, 28,227,187, 82,238,176, 99,113,189,161, 5, 17,255, 0,245,107,215, 24,206, 94,238, 97,138,124,242, -218,148,150,232, 9,237,173,117,149,188,231, 77,226,240, 50, 71,223,201,159,120, 52,134, 53,123, 70, 53,115, 21,139, 27,128,109, - 53, 82,168, 30,236,235,127,220,219, 0,180,155,147, 13,151,127,185, 73,220,167,194, 92, 72,123,195,241,124, 74, 36, 18, 43, 90, -117,236,239,212,147,189, 93,120,129,255, 0, 25, 47,137,164,255, 0, 24,228,163, 5, 68,250,104,124, 39, 86, 29,149,103,103,113, -228, 89,109,205, 93,138,253, 46, 75, 81,100,161,184,205, 72,117, 49,228, 60,212,161,226,161,197, 0, 13, 66, 90, 27,134,218, 15, -105, 34,186,243, 20,124,217, 59,147,226, 7,206, 71, 71,203,211, 93,168,109,172, 11,160,125, 21, 2, 78,202,101,202,180,139,173, -134,237, 10,247,105,148,227, 49,224,220, 45,147, 27,184, 69, 91,177,253,135,146,151,153, 91,141,170,143, 84, 18, 21, 65,217,221, -174,133,105,187,220, 91,159, 11,196,123, 10, 98, 20,131,234, 40,106, 29,230,198, 32,144,178,120,136,120,204, 57,168, 71,104, 56, -214,136,229, 27,253,186,169,149, 2, 44,135,144, 80,166, 66,130,155, 11,107,102,250, 86,134,167,106,147, 74,122,251,245,119,183, -243, 5,222,216, 16, 78,116,144,185,175, 31,209, 85, 55, 59, 28, 19,144, 92,207, 85, 61,241,254, 90,182, 78,147, 8,207,182,188, -211,104, 75,110,251,224,109, 73,105,147, 43,123, 96,171,168,239, 6,149,238, 53,238,213,246,193,230, 13,237,153, 6,225,193,236, -213,143, 74,103, 84,251,135, 43, 71, 43, 92, 34, 26, 77, 75, 80,179,124, 65,110,168,174,247, 24,183, 41,214,132, 86, 84, 54, 16, -144,216, 39,111,237, 40, 19, 83, 93,117, 22,121,141,183,185,186,181,160, 29, 85,141,127, 43,221, 40,104,102, 63,166,158, 63,125, -218,144,178, 73,127,192, 74,210,217,127,194, 40,100, 85, 69, 39,169,167,101, 43,172,214,227,231, 54,223,106, 72,132, 57,231,171, - 10,181,179,228, 43,153,211, 89, 13,163,176,175, 56,253,193,137,143, 19,189,184, 72, 82,150, 92, 52,112,108, 80, 77, 2, 65,170, -143, 94,237, 85,193,231, 92, 90,218,217, 96,112, 7,143, 69, 79,127, 32,200,209,221,120, 90, 21,216,120,179,184,237,215, 43,145, - 57,171,109,138,201, 4,220, 46,215, 41,132,134, 97,178, 84,148, 33, 52, 27,150,181,188,234,210,219, 72, 72, 37, 74, 32, 1,218, - 71, 85,216,249,138, 30, 97,107, 77,185, 87, 30, 28, 71,111,215, 85,150,124,155,123,127,115,240,177, 55, 28,203,143,186, 7, 73, - 61, 29,129, 73,192, 10,131, 36,243,247,147,120,216, 29,250,116,172,251, 41,189,242,180,230,236,241,176,140, 22,223,106,141,110, -178,177, 57,201,177,140,227,120,184,161,251,147,177,139,118,194,249,105,181, 71,111,233, 0, 5,100,123, 42,180,112,153,183, 77, -129,205, 0, 98, 78, 32,187,208,210,132,142,197,174,179,182,249, 39, 20, 81,234,189,186, 14,123,135,117,145,144, 15, 89, 37,192, -224, 7, 4, 28,104,227, 89, 22, 41,125,178, 34, 85,137, 15, 54,243, 72,140,137,172,123,250,110, 76,165,249, 33,101, 32, 44,197, -132,235, 36,108,161,105,104, 39,191,118,169,111,185,154,215,111,186,117,164,143,210,241,193,193, 48, 64, 87, 62,190,129, 92,235, -155,185, 42, 29,161,229,182,142,149,200, 80,135, 0,153, 42,135, 2, 15,160,180,118,210, 43, 80, 90,150,173,175, 13,187,168,118, -254,208, 30,158,221, 79,143,116,142, 95,117,205, 62,154,231,114, 91,190, 44,193,168,159,144,111, 77,113,197,210,203,144,251,234, -102, 98,119, 11,212, 12,107, 44,142,167, 67,231, 31,145,121, 90, 88,133, 61, 36,168,150, 80,153, 59, 90,125, 7,161, 10, 10, 3, -112, 53, 55,110, 44, 15, 13, 14, 11,208,184,213,165,134,218,237,198, 55, 51, 65, 15, 13, 46,105, 76, 28,152,150,245,225,136, 61, - 73, 85,183,207, 47, 22,135, 56,233,190,100,176,180,187,102,113,198, 55, 27, 77,214, 37,214, 41,240,228,191,107, 84,150,208,166, -150, 69, 10,188, 39, 86,135, 17, 83,210,138, 29,250,106,237,205,144, 47, 17, 90, 30, 68,220, 76, 87, 6,205,229, 98,148, 16,157, -105,244,228,106,142,249,154,229, 40,124,183,133,240, 15, 34,176,243, 94,251,115,179,229, 22,139,244, 52, 42,166,221,125,180,187, - 19,222, 26,165,122, 37, 74,115,196, 69,127,101, 67, 73,146, 99, 59, 65, 57,140, 13,109,121,111,103, 59, 60,247, 80,125,157, 77, - 45,236, 42,159, 85,116,235,202, 30, 65, 63, 42,225, 44, 46, 96,112,173,203,100,121, 54, 39, 86, 13, 72, 93,169,213, 54,144, 79, -167,194, 40,212,136, 46,136,104,174,119,205, 91,127,131,127, 34,113, 67,235, 21,120, 44,118,199,154,118, 37,202, 91, 17, 46, 38, - 51,237, 62,171,116,240,231,185,203, 13,154,248,110,248, 78,178,233, 74,187, 8, 74,193, 62,157, 56,249,203,198,117, 89,101, 24, -130, 70,188,176, 56, 2,186, 74,161,234, 40, 65, 78,194, 42, 4,243,171,230, 3, 52,141,129,179,129, 92,110, 48,156,115, 55,113, -182, 28,134,205,189,150, 13,191, 31,179,184,211,148, 96,165, 62, 35, 41, 90,208,219, 8, 0,211,102,228,129, 78,202, 29,222,232, -197, 17,107,120,225, 94,139,228,206,108,220,247,189,113, 74,246,139,118,180, 52, 49,172,107, 64,201, 0, 32, 46, 0,116,229, 86, - 55,240, 60,141,100, 28,131,204, 57, 52,218, 28,141, 24,101,162,205,141,213, 21,255, 0,212,238, 79, 67,215, 85,130, 79,105,117, -136,105,233,235,248,241,176, 18,199, 87, 97,218, 97,104, 7,167, 15,111,248, 87,210, 20,153, 79, 37,208,195,117, 40, 86,208,129, - 82, 5, 28,166,238,254,191, 54,186,156, 74,214,134, 24,233,101, 87, 49, 46, 9,106,181, 49,194,123,235,183,195, 77, 7,127,166, -186,144,194,162,157,209,164,173, 67,119, 91,163, 72, 84,135,139,131,114, 95,108, 56,130,105, 90,131, 65, 74,247,168, 84,234, 68, - 66,149, 33, 65, 81, 21,219, 32,106, 82,149, 21,194,124, 69, 71, 94,246,212,122,151,125,131,233,239, 14, 83, 86,112,178,171,102, -114, 84,127,121,158, 28, 4, 36, 20,238,105,212, 32, 40,116, 30, 26,194, 18, 59,125, 53, 58,177,140, 85, 84,175, 74,141,224,228, - 47, 90, 46, 62, 35,132,169, 91,208, 84, 43,218,203,170,105, 74,233, 94,224, 53, 47, 66,138,142,101, 90,151,241,188,229,135, 22, -194, 20,242,124,112,159, 19,183,254,174,130,189,253,202, 61, 53, 22, 72,233, 58,234, 83,183,100,227,114, 18, 92, 74, 91, 72, 37, -116, 85, 70,229, 0, 43,219,220, 72,212, 9, 25, 67,197,165,161,148, 69,162, 25, 82,170,176,221, 10,137,236, 82, 10,123,122,246, -209, 64,141, 67,123,105, 46,146,145,238,247, 24,239, 36,186,133,110, 64, 75, 32,154,246, 44,154,131,219,232, 78,152,115,106, 44, -146, 84, 49,147,221,195,109, 45, 33, 97, 68,173,105, 6,181,174,240, 69, 59,127,120,104,152,218,131, 36,139, 80, 92,214,229,188, -151, 10, 20,118,182,226,146, 40,231,183, 32, 41, 36,165, 32,215,165, 21,169,109,194,162, 73, 40, 52,131, 37,231,125,205, 53,216, - 82,195, 74, 46,212, 81,123,156, 21, 53,235, 64, 52,121, 26,141,171, 26, 89,195,156, 75,147, 18,249, 1, 34,187, 55,171,246, 77, - 74, 73, 29,127,122,154,137,113,149, 58,100,194,166,236,139, 33,141,105,227,252,222,238,252,181,196, 68, 28, 74,243,225,200, 75, -133,181,178,235,236,173, 9, 9, 32,244, 40, 90,128, 79,249, 53, 73, 59, 60, 70,185,169,152,170,125,210,109, 16, 60,158,138,224, - 93,239,145,243, 91,140,185,222,237,119,188,186,153, 30, 48,142,219,206, 58,149,166, 18,214,170,186,146, 73, 90,212, 8,220, 74, - 85,170,120, 54,139, 40,144,189,140, 81,153, 9,159, 65,232,244,138,224,247,206, 46, 39, 19, 77, 20,230,249, 4, 54,204,159,127, -156,251,177,155, 75, 63, 57,199,149,213,125, 10,214, 87,184,169,106,236, 3,174,167,255, 0, 47,183,144,233,210,208, 15, 96,245, - 97,149,103,229,105,167, 50,249, 66,232,242, 34,198,126,230,234,136, 45, 5, 53, 46,226, 98,111,146,158,165, 73, 74,143,179, 69, -126,193, 61,105,170,191,228,145,198, 92,240,209,199, 38,174, 31, 46, 52,218, 23, 97, 89, 27,150,242,198, 25,144,201,200,151, 49, - 82, 36,186,164,182,151, 16, 75, 17,199,204,216, 28, 89, 77, 82,163,214,131,215,164,201,203,214,175,112,112,136, 52, 1,215,137, -235, 74, 32,215,112, 52,147, 35,145,114,123,129,126,209,239,145,220, 80,109, 82, 61,228, 2,251,178, 2,137, 73,108,213,192, 1, - 87,171,179, 82,226,218,173,173,210, 93, 39,161, 50, 78,188,169, 38, 55, 59,187, 72,239,223,175,210, 17, 34, 35,182,200,246,215, - 88,113, 15, 52,244,247, 92,109, 46,182,215,122,182,186,165,162,168, 81,246,169, 77, 75, 99, 32,105, 15, 15, 46, 94, 1, 48,246, - 33,198,146, 96, 32,161, 20,215,184, 94,227, 6, 28,110, 19,143,200, 68,230,169, 88,175,189, 46, 43, 41,141,210,136, 83,197, 43, - 85, 20,122, 26,106,206,217,142, 5,100, 65,164,241, 64, 74,245, 12, 41, 47,132, 84, 17,126,190,190, 18,250, 38, 60,164,161,210, - 29, 44, 71,144,148, 50, 18,148,236,220, 74,104,180,168,145, 95, 86,183,155,124, 45, 36, 22,103,210, 70, 61, 61,137, 77,152, 20, -227, 85,254,232,251,114,101, 56,208,118, 97,113,106, 80, 64,123,233, 84,194, 85,235,253,170,252, 26,234, 59, 99, 72, 0,160,244, -113,165, 71,102,180,102,199,108, 89, 11, 46, 46, 92,133, 39,163, 77,248, 27, 20,164,168,158,160,154,158,154,219,219,129,134, 0, -122,106,246,203,108, 94, 21,124,188,153,249, 90,207,252,214,115, 14, 45,196, 56, 51, 75,183,200,188, 45,249,183,220,146,225, 29, -201, 22,140, 75, 27,183,164,174, 93,198,113,107,105, 75, 76, 38,137, 77, 72,220,181, 33, 0,238, 80,211,247, 55, 49,194, 11,158, -112, 3,128, 83,212, 0,226, 73,192,125, 66,186, 15, 45,114,183,243,137,219, 10,233, 8, 73, 40,168,131,128,193, 73, 40,208, 20, - 98,122, 43,236,183,200,119,144,110, 34,242, 84,254, 67,113,199,179,155,175, 35,101,188,139, 21,204, 38,231,123,186,196,133, 6, -207, 58, 14, 62, 85, 46, 83,118,200,137, 67,146, 81,185,198,221,105,214,253,225,221,229,176, 77, 54,157,102, 55,169,165,185,141, - 25, 27,152, 24, 25, 35,148,171,129, 36,181,138,128, 6,142,240,118, 40,138, 6, 56, 87,127,217, 57, 62, 61,130, 57, 29,110, 30, -160, 49,207, 46, 56,130,164, 53, 80, 0,208,174, 92,114, 80, 49, 53,106,101, 94,177, 78, 61,133,200,182,235,244,180, 67,177,241, -252,172,119, 44,187, 78,185, 79,247,132, 70,176, 92,110, 45, 93,164, 58,241, 87, 82, 96,165, 46,186, 5, 59, 0,213,149,216,155, -117,101,181,235, 81,101,100,141,192,105, 0,199, 25, 98,245, 7, 4, 83, 93, 70, 77,182, 73,237,109, 47, 98, 56, 76,217,193, 39, - 0,215, 70,199, 2, 84,228,211,135, 28, 49,175,131, 79, 51,156,143,124,231, 78,105,229,190, 89,158,211,226, 71, 32,231,121, 30, - 80,195, 15,185,181,200, 54,219,164,167, 12, 56,181, 10,219, 72,209,124, 54, 71, 94,196,233,135,110, 48,219,128,214,145,165,160, - 1,216,208,131,175, 33, 94, 35,230,235,129,186,222,205,112,223,116,185, 27,250,141,238,179,255, 0,196, 10,169,211,184,207, 34, -186,190,239,186, 37,231,150,154,123,194, 99,208,174, 49, 36,159,104,168,237,232, 58,211,174,178,155,167, 58,219, 91, 14,249, 3, -161,120,215, 58,185,181,212,112,160,226,112, 77,214, 68,173,239, 93, 22,212, 98,148,151, 38, 61, 25, 73, 97, 33, 84, 10, 4,165, - 35,244,107, 31,115,230, 44, 81,140, 24, 9,232, 6,160,124, 10,212,167, 3,202,251,104,131, 22,124,171,191,190,219,228,178,167, -146,243, 49,159, 97,207, 21,133, 16, 80,148, 47,218, 95, 65, 84,168, 80, 29,100,110, 60,217, 37,238, 99, 99,210,224, 83, 18, 14, -124, 84,101,217, 79, 29,184,129,213, 66,159, 47,118, 54,252, 69,206,118, 82, 92,241, 27,110, 52,118,166, 54, 39, 41,151, 21, 90, -173,178,173,169, 59, 5,104, 52,207,245, 54,119,167,134,137,196,144, 81,122,143,109, 15,128,234,162,236,240, 53,137,114,165,179, - 29,188,138, 99, 16,183, 56,152,238,120, 77,175,194, 81,218, 9, 82, 86, 77, 43, 67,219,161, 39,153, 23, 13,107, 75,140, 96,158, - 56,231,233,163, 22, 35,162,151, 45,188, 25,137, 42,124, 86,157,137, 37,146, 82,149,188,185, 1,199,218,113, 71,173, 84, 70,224, -144, 59, 40, 53, 95,115,230, 53,222,135, 16,224,122, 17, 1,165, 54,197, 78, 85, 35,195,227, 14, 62,109, 99,198,133,105, 92,146, -182,227,161, 2, 48,134,226,130,168, 55,123, 78, 4, 0,160,147,243,135,195,172,212,220,231,184, 56, 96,247,134,231,154,253, 21, - 37,182, 35,143,205, 82, 51, 92,103,128, 69,117,217, 22,107, 51, 77, 20,248, 79,214, 67, 72, 92,130,148, 15,154,151,153, 94,221, -170, 41, 53,166,179,111,231, 11,249, 90, 27, 52,132,230, 48, 37, 61, 71,141, 60,108, 7, 1, 68, 3,204, 90, 47, 6, 52, 23,216, -182,173,180,123,233, 76,246, 83,185, 8, 72, 59, 67,100,130,132,132,147,218, 72,168,209,186,232,221, 69,169,224,184,101,129,249, -233, 66,219, 73,235,161,163, 94, 30,185,181,114,146,245,230, 3,175, 17, 29,244,193,132,235, 69,132,150, 1, 11, 33,107,162,247, -174,190,215,118,153,148,178,220,181,161,142, 3, 16,165, 87,171,169, 61,180,182,219,168,196,208,113,242,123,100, 83,238,242, 97, -219, 85, 30, 70,231, 36, 73, 84,214,220,146,226,146, 54,236, 90, 82, 83, 68,147,218, 6,153,150, 57, 36,239, 53,206, 81,144, 76, - 61, 29,116,227,109,211,128,165, 40,215,150, 18,176,151, 38,217,110, 8,108,133,193,180, 8,136, 76, 56,204, 3, 82,135, 22,239, - 85,116,235,243,181, 18,103, 19,238,181,237, 92,220,184,158,196,250,169,239, 1, 41,190,237,230,207,115,121,166,166,206,178, 65, -110, 33,156,227,150,200,146, 91, 82, 95, 11, 36,149, 41,150,214,164, 43, 97, 61, 58, 84,233,245,150,221,164,198, 30, 73, 68,113, - 92, 61, 39, 28,105, 98, 45, 71, 26, 58,222, 95, 97,102,218,249,247,233, 34, 18, 90,113,166,220, 92, 68,196,139,112,120,210,161, - 41,108,172,178,148,129,218, 64, 36,106, 44,150,247, 15,144,119, 70,172,243, 82, 7,167, 51, 78,248, 77, 74,139, 47, 25,237,182, -221, 33,215,227,100,108, 45, 46,146,212,132, 55, 33,106,116,161, 65, 42, 9, 15, 23, 18,180, 1,216, 5, 41,234,214,134,215,110, -146,225,161,174,136,225,136,192,124,200,134,147,225, 14,154,103,255, 0,126, 25, 11,223,253,245,111,196, 84,207,127, 16,188,119, - 60,111, 5, 41,161,111,198,241, 60, 61,213, 52,174,222,205, 88,252, 9, 79,220,112, 69, 64,157,168,139,237,164,248, 99,166,187, -233,111,227,190, 61,184,218,164,193,138,226,228, 51, 34, 52,168, 50, 30, 21,140,252,185,239,176,251,238, 4,138, 37, 68,132, 6, - 86,158,228, 37, 77,163,183,169,249,225, 46,255, 0,123, 19,195,147, 47,119,161, 2, 5,244,227,218, 84,215,166, 63,148,179, 72, - 57, 46, 39,208, 50, 21,241,181,192,185,103, 39,121,114,243, 35,158,241,221,177,231, 39, 97,214, 44,219, 43,196,115,171, 53,239, -199,254,237, 59,110,199,228,190,132, 93,146,180, 7, 17, 17,225, 25,132,188,135,194, 78,228,208, 40, 41, 61,158,250,230, 54,216, -115, 54,207, 5,236,206,209, 43,227, 99,152,230,133,118,167, 52, 29, 8, 49, 32,146,132,112,204, 37,123, 87,150, 60,136,185,254, -227,217, 4, 22, 44, 13,152,198, 31,227,187, 8,226,110,157, 78,116,175,200, 70,220, 73, 83,130, 97,142, 7,166,156,209,231,183, -203,167, 22,227, 22,203,157,157,156,147,146,114, 12,165,147, 38,209,100,180, 91, 23, 96,122, 44, 70, 16,132,123,220,167,174, 41, - 97, 44, 71,113, 69,192,194,217, 75,158, 39,206, 78,228,128,173, 96, 57, 99,203,205,235,153,100, 12, 12, 17, 70,198,163,158,226, -161, 84,224, 19, 18, 64, 69, 5, 19,217, 94,115,231,127,237,235,112,242,250,103,195,188, 79, 4,122, 73, 17, 58, 55, 9, 77,192, -212, 82, 88,216, 52,189,177, 56, 98,215,202, 35,212, 19, 75, 93,138, 93, 94, 40,200, 48,220,255, 0,142,112,140,222,199, 22,108, - 23,249, 95, 28,179,223,226, 90, 47, 16,218,113,251,108, 11,179, 32,165,133,108, 5,173,204,168,147,185, 61, 14,202,131, 67,174, -103,189, 65,119,177,220,207,105, 33,111,236,100,115, 9,105, 56,144,113, 62,159,165, 43,131, 93, 89, 54,222, 87, 70,226,165,164, -133,224, 83, 10,138,114, 76,103, 62,137,150,166, 28,124, 77,247, 32, 66, 19,204, 73, 16, 34, 37,199,220,112,173,166, 81,185, 64, -253, 26, 80,181,170,169, 52,173, 15, 81,173,134,223,185,217, 58, 16, 36,144, 41, 3, 18, 72, 66,132,245,168,203,133, 65,108, 26, -129, 26,113, 60,122, 62, 93,126,202,112, 73,187,242,107,121, 13,187, 31,183, 95,113, 92,218,230,136,151,169,153, 14, 41,143,223, -195, 25, 30, 40, 45,146, 60, 22, 35,221,146,235, 14, 67, 68,137, 59, 30,117,150, 80,241, 62, 27,106, 43, 13,238, 69,109,127,146, -216,193, 98,219,201, 85,141,144, 52,180,150,168, 43,197, 84, 35, 78, 29,101, 66, 42, 26,210,127,235,207,182,182,101,196,142,247, -198, 13,204,132, 57,158,128,115,226, 82,186, 43,229,227, 22,227,222, 60,186,241,218,252,193,113,109,230,126,117,147, 94, 84,237, -227,143,121, 7, 36,182,241,230, 35,142,226,138, 74,228,178,181, 73,149,115,133, 22,225,114,126, 51, 5,214,224,200,146,223,178, -226, 74,218, 81,240,210,229,238,217,203,246,113, 61,142,185,113,120,112,118, 8,141, 96, 0, 29, 82, 18, 65, 0,240, 0, 21,232, - 64,226, 55,123, 63, 37,218,219, 91,124, 85,252,141, 14, 67,165,142, 32, 41,236, 57,156,137, 10, 8, 7, 17,146,179,188,205, 92, -177, 76,195, 42,206, 98,241,138,241,107, 46, 11, 62,107,146, 49, 91, 11, 86,216, 88,220, 76, 81,168, 42, 44,164, 78,132,133, 56, -137, 6, 43, 37,198,216,152,162,160,232, 81,162,146, 84,164, 7, 89,187,142, 82,221, 97,185,183,157,174,177,115,251,205,183, 66, - 74, 52,163, 30, 23, 86,103, 18, 74, 38, 35, 16,131, 55,125,126, 54,187,161, 36,110,107, 98,255, 0, 64,104, 82, 6, 68, 12,248, -162,225,141,114,147, 33,227, 12, 3, 17,228,136, 89,245,162, 20, 52, 94,146,197,213,114, 91,182, 52,251,243,175, 78, 16,194, 67, -133,180,125, 8, 45,181,189, 40, 44, 54,104, 23, 66, 73,165, 45,119, 79, 48, 47, 57,133,229,209, 44, 57, 0, 67,144,129,142,110, - 81,143,171, 42,206,110,188,209,113,186, 75,226,196,223, 12,140, 3,154,160,166, 88,144,131,171, 0, 61, 53, 12, 92, 60,203,225, -118,151,229,194,200,227,229,216,157,197,171,164,248,246,235,220,139, 90,162,219,152, 75, 78,161,230, 90,114, 66, 20,184,238, 36, -180,233, 43,105,125,127,105, 73, 73,162,181, 42,243,106,220,121,133,205,154, 89,153, 51,155, 27, 91,152, 82, 2,244, 0, 85, 85, - 29,237, 53, 85,118,203,157,192,137, 28,142, 40, 59,126,143, 95, 26,156,241, 78, 72,203, 50,139,114, 30,176, 60,205,217,108,217, -197,217,187,133,150,123, 46,177,115,183,189, 79,245,152,170, 47,215,194, 71, 79, 27,123, 75, 13,158,138,168, 41, 82,170,109,180, -108,215, 81, 25,228, 49,141, 72,224,240,226, 7, 81, 3, 53, 30,234, 57,164,230, 8, 66,148,151, 91,108, 45, 8,230, 3,211,212, -122, 50,166,194,178, 27,231, 42, 98, 25,230, 33,155,219,177,233,110, 95,237, 23,118,108, 87, 86, 44,232,176, 94,161,188,235,111, -185, 6, 81, 73, 91,201,116, 45,246, 80,242, 29,105,208,163,218, 90, 66,123, 58, 63, 49, 54,210,194,214, 29,218,196,190, 54,151, -128, 90,231,120,204,122, 56, 7, 52, 61, 3,227,145,141, 40, 88,246,161,106, 36,142,113,197,136,246,216,237,228,107,162, 36, 6, -230, 1,195,172, 38, 68, 82,229,255, 0,151,173,188,213,228,213,251,213,225,168,140,100,215, 30, 63,186,216,178,100,178,150,161, -197,145,145,226,209,233,227,134, 25,109,180,182,185, 82, 98,251, 67,247,206,234,128,118,142,115, 14,235,186,236, 27,179,172, 76, -174,146,212,200, 11,117, 43,156, 24,226,169,168,146, 72,104, 56, 42,148,195,133, 70,118,203,107,111,120,217, 24,192,215, 2,184, - 96, 61, 93,135,133,112, 87, 37,131, 51, 26,201, 47, 56,114,101,188,245,166,203,144,202,147,106,109,106, 62, 31,129,115, 67, 43, - 67,161, 53, 32, 23,163,165,162,126, 1,174,231, 97,112, 46,161, 18,166, 36, 99,218, 20, 31,109,110, 0,107,192,122, 98, 70, 62, -138,236,231,225,201,200,176,160, 98,185,126, 33,123,120, 34, 61,174, 67,153, 69,190,190,210,202, 84,148, 55, 37, 9, 72,234,174, -137, 66,168, 61,122,201,243, 31, 48,205,176,201, 17, 99, 53, 53,229, 8,232, 63,167,232,172,118,249,203,237,221,101, 15, 5, 28, -137,219, 95, 69,248,172, 79, 35,184,119, 6,219,185, 39,158,121,186,209,130, 73,190, 38,245, 2,195, 99,185,229,108, 55,201, 23, -169,150,149,120, 42,155, 10,211, 20, 74, 91,145,213, 45, 46, 54,218, 21, 24,164,109,171,146, 0, 34,182, 59, 71, 50, 13,246, 49, - 44, 10,208, 73, 93, 64, 0, 0,244,253, 62,170,221,108,190, 90,108,183, 22,141,154,225,211, 2,229, 11,169,173, 82, 48, 58, 71, -120,105, 4,113, 83,219, 95, 54, 30,111, 57,119, 16,229,238,120,201,239,220,117, 14, 92, 14, 62,180,183,111,197,240,230,229,203, -118, 76,171,133,182,196,202, 89,118,226,224,117,106, 83, 74,186,203, 14,203,240,129,163, 97, 97, 3,162,107,163,191,115,158,228, -113, 84,226, 48, 21,101,103, 97,103,180, 61,208,216,131,225, 3,129,113, 82, 74, 0, 73,237, 76, 7, 1, 93,231,242, 53,196,216, - 63,150,139, 55, 22,242,196,174, 97,199,178, 22,242,254, 51,131, 2,233,100,198,225,135,161, 89,111, 57, 22,219,181,193,155,172, -231,229,178,150,157,134,230,216,237,165,150,156,221,225, 41, 68,163,160,213, 92,205, 16, 70, 38,123,152,214, 18, 0, 37,195,188, -236,112, 28, 21, 56, 45,116,173,159,100,116, 4,206,249,219,223, 32,180,112, 35, 72, 26, 84,145,136, 43,146,215, 99,177,110, 75, -176,101,129,185, 54,137,209,231, 53,238,168,152,203,145,221, 14,161, 77,182, 75,100,130,146,106, 14,211,215, 70,217, 2, 40,173, - 24,136,179, 3, 79,152,143, 45, 46,168,132,159,167,142, 31, 40,253,228,172, 18, 0,235,219, 78,221, 75,129,234,104, 72, 48,168, - 63, 53,120,180,226,157, 13,148,133,110, 42, 64, 62,202,156, 96, 2, 43,215,190,167, 86, 49, 26,143, 33,168, 15, 47,184, 72,105, -230,166,181, 84,185,225,253, 47, 80,146, 28, 62, 24,165, 43,220, 6,173, 32,198,170,102,114, 84, 79,121,206, 22, 98, 54,158,215, -148,165, 16, 65,175, 78,210,123,122, 83,166,173, 33,141,106,142,225,232,105,139, 43, 46, 98, 92,160, 92, 90, 83,224,181,181,210, - 85,212,237,218, 7, 90,245,246, 70,167, 54, 44, 42,184,202,149,228, 12,160,198,113, 18,218,144, 10,146,166,154, 90,119,246,212, -158,206,189,131,191, 72,146, 26, 88,184,169,211, 30,204, 83, 50, 33,144,151,168,227,137, 86,207,164,246,118,130, 1,239,244, 13, - 85,205, 18, 80, 51,165, 58,142, 74,149, 54,248,241,193,119,196,162,150, 21, 66, 20,148, 3,233,248, 41,170,249, 35,162, 55, 20, - 96,229, 59, 26, 88, 91,128,162, 72, 83,116,221,209, 62, 16, 2,189,189, 15, 77, 69,123, 18,162,203, 61, 71, 87, 43,137,148,251, -136, 74,193, 65, 41, 41, 5, 94,209,246,138,106, 58,247,154,252,154,108, 4,168, 47,154,152,242,103,150,150, 80,160,176, 55, 52, - 70,213,123, 59, 28,170,210, 59,125, 37, 67,228,211,194,163, 57,235, 69, 36,248, 78, 41,198,200,160,148,159,104,246,128, 72,236, - 61,123,200, 26,108,185, 41,189,117,237,178, 79,187,200, 17,154,246, 66,141, 20, 71,206,161,234,107,215,210,116,196,165,104,204, -149, 29,121,194,228, 79,238,239, 12, 71,198,161, 76, 98, 61,195, 56,186, 71,134,249,113,210, 28,106,217, 18,174,173, 91, 16,164, -173, 65, 78,165, 3,167,111, 81,170,153,165, 16,227,138,142,138,200,243, 85,247,133, 14,129,155,141,113,143,251,197,121,183, 38, -106, 74,203,197,249, 10, 2, 67,168, 90,223,106, 39,134,170,165,176, 84,118,214,181, 2,186,140,248,225,184, 32,140, 48,200, 34, - 18,188,107,149, 76,226,104,139, 23,185, 55, 9,132,162,237,107, 67, 80,223, 65, 13, 75,104, 37,229, 50,174,213,171,103, 93,201, - 61,134,154, 18, 49,176, 55, 22, 59, 17,192,241,232,168, 62, 25,119, 69, 52,175,147, 24,102,122,132,155,178,158,240,101, 25, 17, -131,110, 41,132, 59,214,189, 40,162,167, 40, 61, 35,224,213,149,164,133,204,193,136,161, 14, 69, 62,170,108,192,153, 86,240,242, - 43, 52,165, 57, 16,173,212, 75,247,215,147, 9, 78, 74, 80, 80,102, 69, 2,210,143,104, 18,107, 90, 21,130,116, 82,193, 36, 99, - 88, 56, 38, 56,113, 25,124,133, 44, 69,213, 78, 43,117,198, 45,157,130,197,149,168,242, 38,169,111, 9,114,166, 63,239,101, 5, - 67,161,220, 77, 69, 41,237, 13, 87, 92, 57,247,101,102, 36, 55, 4, 3, 10, 91,109,200, 24, 10,218,233,145,221,110,113,228, 58, -135,109,141,157,202, 43,117,229, 37, 42,116,167,104, 80, 9,170,139,105, 36,116, 4, 31, 86,138,214, 24,173,200, 29,239,151,206, -104,205,171,223,157, 20, 51,218,188,219,219,128,237,222,217, 30, 83, 5,182,154, 68,102,130, 22, 85,208,211,110,208,170,158,250, -211,211,167,132,134,210, 67, 32, 99,136, 56,149, 63, 33, 68,109, 75,176, 74,111, 74,195, 35, 62,227,242,110,151, 21,191, 30, 91, -170,142,136,145,208,106,195,145,168, 1, 35,168,165, 77, 73, 73,213,189,175, 49, 22,163, 98,104, 4, 98,167,138,209,252, 11,186, - 40,252, 14, 38,198,101, 76, 50, 62,242, 92,133, 16,202, 75, 43,144,164, 20, 45, 84,219,181, 67,118,234,246, 82,157, 53,172,219, -249,186,118, 52, 2,212,235, 65, 83,237,246,226, 14, 85,106,120, 67,202, 20,206, 98,228, 11,111, 28, 97,214, 25, 55,204,174,249, - 87, 97, 55, 10,230, 45,176,160,219,163,182,167, 94,147, 45,247, 82, 17, 25,152,237,130,183,157, 81, 0, 15, 73, 32, 29,110,207, -204, 87,187,187,219, 29,185, 0,102,226,224,160, 5, 1,112, 82,113, 32, 0, 1, 36,144, 6, 38,183, 92,187,203,178,238,146,136, -163, 3,164,147,144, 29, 61, 39,168, 12, 73,192, 87,211,223,148,174, 56,227,111, 42,220, 88,199, 17,223, 51, 62, 56,200, 46, 22, -134,166, 71,200,100,113,245,150, 83, 17, 38,220,102,201,118, 93,110,151, 85, 60,195,151,201, 44,151,146,210, 20,234, 82,218, 27, - 67, 97, 45,130, 9, 62,144,111, 46,223, 77, 4, 82,219,218,190, 55, 4,239,191, 75, 92,228,104, 4,134, 16,227, 24, 56,184,144, -117, 18,226, 10, 4, 21,238, 14, 70,228,155,155,187, 86,179,109,180, 3,195,210, 11,244,180, 56,144,208, 14, 36, 61, 53, 98,226, -157,229, 56,160, 65, 76,238, 83,228,107,188,107,110, 13,103,189,100,183, 91, 52, 14, 58,104,192,196,115, 91, 36,165, 89,226,200, -136,194, 82,212, 85,191, 34, 51,169, 16,103,150,129, 75,187,212,150,223,168, 45, 43,113, 91, 45,233,182,219, 8, 54,223,136,241, - 88, 9,153,193,207, 80,186,142, 42, 10,230,222,129, 94,141,228,158, 88,179,229,182,220, 69, 60, 44,120,153, 28,237,109,212,164, - 2,173, 32,140, 70, 56, 97,210,163,166,135,249,191,243, 69,139, 88,236, 54,143, 47, 88,222, 83,112,201,179,110, 80,147,247,238, -100,243,151,175,127,190, 95, 96, 33,183, 98,199,138,252,135, 95, 75,155, 95,220,226,158, 42, 87, 68,248,105,249,187,169,131,243, - 66,107,219,139,102, 91,109,113,180, 52,176,130, 64, 1,172, 98,130, 64, 29, 47, 32, 12, 6, 13, 14, 7,222, 21,196, 63,184,141, -254, 86, 91, 55,109,177, 99, 24, 31, 25, 97, 13, 1,173,142, 34,224, 72,104, 24, 3, 33,106, 96, 48, 99, 94,190,240,174, 74,229, -247,120, 54, 49,113,198, 95,135,138,165,248,183, 4, 52, 17, 14,230, 50, 40,209,125,145,226,132,205, 72, 91, 18, 9, 88, 81, 14, - 50,178,142,192, 10,169,185, 94, 77,220,217,113,101, 57, 19, 61,250,154, 49,200, 47, 17,128,203, 2, 51,253, 21,243,223,121,219, - 62, 25,230, 54,149, 35, 3,209,232,168,241, 23,242,202,202,228, 55, 25,171,106,143,128,204,132, 60,169, 5,245,208,144,144,205, - 18, 42,123,205,117,207,247, 73,132,196,134,146, 95,153, 25, 39,166,178,114, 89, 61,216,165,104,254, 96,195,136,122,179,203, 14, - 36, 41,182,224,192,109, 81,155,171,164,143,105, 10, 35,173, 61,125, 53, 70,219,125, 36,119, 87,172,226,125,117, 28,217, 59,211, - 66,193,185, 6, 38,197,158,185, 22,247, 93,109,181,123,202,100, 41,213,184,136,235,253,144,143,105,180,146, 79, 82,145,168,247, - 50,135,180,176, 7, 1,193, 19, 62,220,253,116,227,118,199,102,162,128,147,151,200,247,182, 28, 16, 34,197,147,187,194,104,161, -198,221, 14, 71,108,244, 80, 82,170, 82, 79,193, 93, 19, 34,102,146, 53, 18,220,248,140,105, 67,110,114,240,175,102,242, 34, 74, -140,105, 50,226, 45,213, 6,209, 57,233, 14, 52,162,232, 73, 73, 8, 79,182, 15, 81,234,235,166, 98,176,251, 77, 5, 56, 0,184, - 83,159,203,201, 56,154,143,174,153,116, 87,222, 41,135, 33,216,204, 52,235,139, 66,140,253,158, 26,154, 59,168,141,138, 8,167, -168,234,226,222, 23, 49,189,224, 9, 35,163,235,198,136,216,180, 20, 21,164, 78, 85,180, 90,152, 2, 68,133,175,197,220,243,209, - 82,235, 94, 36,167, 24, 72, 41, 20,249,221,107,215,218,209, 77,180,203,112,123,163,168, 28,112, 95,101, 59, 29,171, 25,154,209, -116,121,153,130,195,111,199,139,110,125,134,130,254,145,195, 48, 37, 10, 85, 40, 18, 16,214,227, 74,244, 59,142,146,254, 74,146, - 66, 28,231,130,123, 62,191,162,156,211, 24,200, 26,142,239, 28,229, 14,115,134, 82, 36, 17, 50,160,248, 42,115,112, 81, 7,167, -179, 84,138, 31, 65,213,197,183, 45, 62, 33,167,236,210, 12, 76,205, 41, 9,254,114,185, 78, 64,141,224,197,140,219, 65, 45,175, -192,140, 24, 46, 33,186,245, 43, 74,168, 43, 95,104,234, 75,121,101,144,247,181, 18, 79, 73, 90,112, 48, 30, 1, 41,169,255, 0, -197, 41,104,149, 21,101,233,101, 73, 81, 67, 78, 34, 73,105,164, 34,163,183,181, 71,225, 58,154,118, 86,185,174, 24, 39,102, 52, -108,140, 45,121,113,228,103,158,148,149, 49, 42, 75,234,105,126, 49,105, 72, 50, 84,243,166,165, 99,169, 35,191,183, 66, 29,173, -172,110, 32, 14, 29, 9, 75, 49,210, 51, 57,212,230, 84,101, 70, 83,176,148, 94, 33, 76,182,160,135,139, 99,176,208,117, 77,107, -212, 13, 72,125,139, 28, 52,187, 28, 51,164,136, 58,168,220,254, 65,186, 62,173,210, 38, 75,144, 22, 91, 9,142,153, 59, 82,218, - 54,154,166,135,167,103, 67,166, 98,219, 99,140, 96, 0,235, 74, 51, 0, 60, 41,165, 43, 34,146,219,238,188,219,114, 28, 15,169, - 37, 46,118,132, 22,232, 74, 42,144, 63, 54,167, 50, 54,144, 1, 35, 10, 64,132, 28, 64,164,115,151, 92,140,182,201, 79,250,171, -126, 48,109, 30, 34, 60, 96, 94,113, 11, 95, 90,120,159, 57,180,254,213,127, 62,164,139, 88,195, 73,251, 94,204, 21, 58,184,158, - 20,225,212, 90, 25,192,112,237, 79,170,190,151,241,190, 76,181, 92, 49,233,238, 51,118,118, 12, 57,107,151, 73, 6, 82,162,184, - 97,251,176,139,226,120,137, 80, 90,214,236, 86,128, 80, 61,129, 93,190,143,155,119,155, 60,182,243, 6,134, 41,203, 37,226,190, -160,126,154,245, 12, 81,124, 75, 67, 2,151, 21, 24,102, 87, 12, 58, 73,250,107,229,235,206,167, 41,218,111, 60,209,204,150, 62, - 58,188, 49,149,226, 23, 12,134,204,185,137,199, 26, 65,181,185,150, 89,237,144, 45,239, 79,185,205,101, 5, 19,137,157, 29,242, -196,109,251, 43, 69,172,159,152,175,107,249, 75,200, 51,110, 27,125,163,239,131,163,238,185, 53, 30,246,146,231, 16, 24,211,238, -247, 72, 87,102, 50, 29, 53,238,142, 95,243,226,127, 40, 57, 46, 14, 93,110,151, 93,247,137,132, 52, 0,213,121,115, 13,219,179, -144,180, 16, 89,110,186, 70, 6, 92, 70,138,152,127, 15, 31, 32,184,255, 0,153, 7, 30,231,143, 49, 57, 13,214,225,199, 86,124, -233,252,127,251,145, 18, 75,140, 93,115,137, 86, 70, 34,201,144,228,219,143,138, 31, 98, 26, 82,248, 97, 73, 96, 37,106, 32,165, - 43,108, 1, 86,252,241,243,114,227,203,141, 59, 14,199, 19, 91,112,232,131,140,132, 40,140, 56,184, 13, 45,200,201,130,171,148, - 5, 4,181,220, 60, 85,206, 60,221,127,191, 79, 45,253,220,142,150,121, 10,185,238, 42, 84,253, 3,128,200, 4, 2,190,138,155, -103, 16,141, 13,213, 99,150,139, 60, 72, 24,251, 17, 45,118,236, 34, 55,129, 7, 39,137, 29,189,200, 91, 54,155,122, 92, 40,146, -219, 46, 21,199, 96, 32,161, 52, 79,206, 72, 4,107,196,172, 55, 82,185,166,103,184,151, 59, 83,165, 42, 88, 84,130, 53,184,226, - 28,125,231,102,113,200,215, 47, 22, 94, 51,156,229, 82,170,153,149, 42,184,103,158, 21, 3, 51,202,182, 43,222, 77, 47, 13,194, - 50, 27, 41,143,115,109,144,205,247, 34,152, 45, 47,162,248, 23,227, 55,103,150, 36,133, 57, 26,107,126,238,183, 23, 25,104,220, - 81, 85,132,168, 7, 18,222,247,249, 52,182,173,109,221,244, 79, 45, 4, 43, 35, 10,172,200,189,165,184, 22,149, 0, 56, 96, 14, - 10, 21,164,155, 26, 45,156,165,170, 1, 4,234,195, 0, 70, 7, 35,192,245,212, 21,150, 57,133,112,162,242, 78,109,176,113,254, - 65,140, 99,151,252,132,219,243, 91,222, 55, 58,126, 71, 98,187, 71,185, 77,117, 6,112,122, 75,200,114, 50, 96, 63, 53,196, 53, - 49,176, 10,202,188, 42, 16,176,180,244, 59, 93,194,231,152, 47, 5,155, 46, 35,241, 27,251, 72,162,120,104, 44, 32,106,107, 52, -129,165,216, 52,119, 72,193, 53, 28,136, 50, 63,156, 75,188, 74,233, 52,144,213, 37,189, 1, 50, 24,231,233, 95, 94, 21, 96,121, - 87, 32,201,185,187,139, 56,221,153,184,202, 51,188,106,240,152,188,127,131,221,108,174,162, 19, 25, 28, 44,230, 98, 19,104,140, -251,209, 3, 83,101,120,151,121, 73, 67, 82, 2,131,137, 46, 26, 41, 91,105,167, 45,121,162, 89,164,102,217, 51,201,188,138, 66, -245, 42,100,192,119,154, 65,238,184,128,164, 42,225,221,193,106, 91,238, 47,183, 70, 55, 88,196, 42, 56,133,113,224, 7, 94, 57, - 47,170,184,221,159,115,239, 46, 88,110, 17,111,151,251, 28,204, 22,253,198,217, 12, 28, 31,146,248,174,100,181, 38,197, 50,207, -126,140,103, 89, 93, 68, 9, 42, 46, 39,223,109, 77,184,133, 75, 74, 55,159,163,116, 44, 21, 39, 93, 86,223,148,237,162,116,150, -174,239, 9, 26, 95, 28,132, 35,218,224, 81,234, 66,100,226, 28, 26,112, 69, 8, 69, 64,188,219, 77,155,139, 36,105, 36, 98,174, - 24,133,225,213,210, 56, 82,191, 48,249,170,227,152, 55, 44,115, 42,131,128,221,178,126, 57,106,242,179,102, 15,228, 46, 38,125, -170, 56,133,109,113,216,207,198,119,199, 97,230,218,145, 37, 41, 33,231, 20,165, 40, 20,169,100,109, 2,135, 99,228,171,167,198, -251,119, 78, 25,113,167,188,116,132,113, 87, 33, 4, 33, 4,129,192, 96, 49, 0, 26,175, 7,196,214,192, 0, 36, 4,207, 15,105, - 92,141, 84,223, 48,185,174, 59,152,113,172,252,209, 45,191,107,189,231,156,153, 1,231, 44, 54,123,175,185,226,176,224,227,182, -133,161,199,219,183,123,186,201,122, 67,210, 80,175, 24, 74, 74, 82, 9, 64,104,215,120,221,242,197,143,242,185,190, 17, 92,227, - 19, 48,123,128, 42, 28,243,129,114,169, 68,201, 56,102,105,203,105,219, 35, 81,203,226,132,199,130, 21,193, 58,112, 24,225,217, - 72,151,156,167, 12,227, 12,111, 15,229,110, 1,205,178, 28, 18,245,116,251,202,215,148,240,212,247,151,144, 88, 44,247, 56,140, -196, 82,239, 22,235,131,239,120,136,106,228,225,175,187,150,141, 8,167,138,164,130,218,103, 90,237,242,110,222, 45,174,232,198, -202, 90,243,166, 64, 3,117, 48,169, 0,129,147,152,168,113,199, 52, 21,101,188, 73,105,122, 24, 98, 97, 14, 62,243,115,210, 70, - 24, 59,142,172,192,225,211, 83,159,150,255, 0, 54,188, 97,123, 76,155,151, 46,228,119,121,183,137, 19, 81, 26, 93,225, 16,219, - 15,174,122,153,127,194, 98, 60, 40, 81,203,174,163,196, 73,218,224, 4,213, 73, 81,165, 84, 17, 65,205,156,177,184, 65, 15,129, -183, 53,162, 32,164, 49,112,197, 3,137, 46, 40,164, 1,232, 8, 50,199, 47,113,183,186, 7,144,198,160, 35,228,171, 73, 7, 55, -182,217,236,188,221,199,118,228,201,133, 5,254, 77,145,144,227,145,100, 67,145, 30, 84, 91, 14, 90, 4,134,216,117, 46, 36, 6, -194, 26, 64, 82, 66,191,120,250,116,236,123,123,238,190, 22,234, 66, 11,132, 33,174, 66, 19, 83,112, 36,118,159,154,171,238,161, -241, 36,142, 70,166, 71,141, 85,222,104, 68, 57,185,229,130,235,111,143,224,177,119,227,254, 48,114, 74,211,237, 52,237,218, 21, -130,219, 26, 98,130,129, 41, 81, 50, 25, 81, 36,122,117,172,229,205,113,219, 61,143, 56,137,165, 79,213, 47,113,111,176,213,187, - 28, 11,112,224, 79,207, 83, 39, 20,100,121,110, 41,100,200, 36,225, 18, 31,143,145, 79, 44, 88, 98, 46, 43, 97,201,101,187,209, -216, 67, 32,252,213,146,221, 18,160, 42, 15, 81, 67,215, 81, 55,171,120, 46,157, 31,196, 38,128, 75,138,229,134, 56,245,117, 83, - 80, 0,233, 6,172,146,186, 35,102,226, 11, 23, 16,112, 78, 79,201,247,103,217,201,249, 38,229, 22, 45,138, 29,234,242,204,139, -146,166,230, 25, 41, 10, 83, 86,167, 86,211,209,148,171,100, 66,167,223,117,199, 82,179,211,247,130, 70, 42, 25,110,185,154, 83, - 48, 34, 27, 8,158, 59,184,183, 88, 31,103, 1,137, 41,136,200, 3, 86,138,235,150, 58, 64, 81,141, 32,118,158,143,164,142,138, -175, 28, 67,199, 49, 47,185,166, 61, 31, 48,187,219,236, 86, 55, 46,109, 63,116,155, 53,213,150, 26,183, 67, 10,125,245, 56, 89, - 67,206, 36, 41, 13,148,130, 16, 77, 79,102,166,243, 7, 49, 58, 27,121, 29,108,199, 61,233,130,116,156, 6,105,196,208,180, 38, - 87,134, 40, 11,196,229, 93, 38,195,242, 91, 69,203, 48,202, 14, 7,145, 63,125,181, 61,105,176, 90, 30,184,217,242, 1, 19, 29, - 79,185, 57, 49,246,246,182,252, 98,234,222,241, 84,119,154, 80, 0,128, 59,104, 57, 84,198,242,214,220, 69, 46,168,218,242, 75, -154, 65, 83,139,115, 1,201,129, 1, 56,231, 91, 43, 66,219, 40, 91, 28,174,112, 58,137, 65,136, 35, 15,103,181, 86,186,117,248, -108, 47,148,178, 41,220,131,120,186,192,157, 23, 21,198,239,163, 20, 49,238,170,241,148,101,204,105, 18,212, 35,184,154, 54,226, - 27, 10, 10, 36, 36,116,112,107,167,108, 23, 58,224,107, 23, 80, 1, 87,232,237,233,174,147,103, 59,100,183,104, 93, 93, 7,170, -187,120,213,164,123,167,222, 11,246, 10,216, 45,160, 30,129, 45,138,154,246,244,162,105,173,125,187, 14,116,204,146,240,170,227, -200,197,186,171,194, 0, 33, 1,225, 69,124,227,189, 61, 85, 74,247,141, 89,196, 42, 51,223, 85, 71, 35,153,227,188,246,231, 23, - 82,181,149,161, 75,246,126,114, 77, 7, 94,250, 83, 87, 22,226,170, 46, 94,149, 90,242, 23, 95,136, 92,219, 66, 27, 90,212,176, - 79, 78,211,243,122,245,232,147,171,200, 27, 89,251,137, 22,162,161,124,132,243,207,120,143,248, 42, 9, 90,150,146,174,213,171, -104, 3,183,212,117,100, 24,149, 92,247, 26, 40,171,219, 42,144,150, 99, 74, 9, 1, 9,117, 68, 46,168,222,138, 39,182,189,224, -154,104, 57,148,141, 68, 83,222,207,154,202,128,133, 71, 14,109, 72, 72, 3,114,232, 2, 70,250,211,175,121,212, 25,161, 6,144, - 95, 79, 88,153,219,111, 85, 66, 66,149,237, 37,123,183,209, 39,194,232,174,254,224,117, 87, 44, 73, 77, 58, 83, 75,199, 50, 14, - 66,118,142,168, 37,181,186,176, 86,107, 80, 71, 78,255, 0,218, 7, 85,242, 51, 26,142,233, 13, 22,115, 52,132,195,137, 10,124, - 45,197,129,225, 36, 46,189, 81, 78,149,175,164,157, 68,115, 13, 48,231, 19, 73,103, 33,143, 45,105, 66, 94, 14, 19, 82, 10, 85, - 94,237,169, 29,190,189, 17, 4, 81, 45, 45,198,150,169, 5,196,164,213, 73, 66, 10, 83, 94,242, 20, 1,237,244,211, 76,184,165, - 17, 41, 78,104,205, 51, 29, 46, 72,117,196, 33,107,105, 18, 30,113,102,141,176,202, 65, 83,132,245,232, 2, 81,168,146,201,164, - 41,200, 83,111,114, 10,228,103,152,252,211, 42,229,110, 70,185, 57,143, 93,154,143,101,177,173, 54,219, 20,117, 20,169, 77, 70, - 96, 20,151, 18, 79, 68, 45,213, 18,175,143, 88,251,158,103,180,133,197,178, 52,145,143,178,185,222,244,201, 47,165, 46, 7, 1, -149, 85,197, 91,114, 27, 37,193,193,119,135, 38,252,181, 60,168,174, 60,220,128,180,135,247, 26, 83,176, 30,206,205, 24,223,237, -111, 25,251, 39, 6, 39, 4,172,244,155,115,216,113, 11, 91, 57, 7, 35,154,242,227,195,196,190,238,106, 65,241,220,151, 35,235, - 29,109, 38,135,218, 9, 52, 77, 7,167, 74, 27,165,180, 35, 83,231,213,212, 56,123,105,161,102,254, 45,166,204,197,100, 54,103, -215, 42, 86, 57, 54, 67, 85,117,136, 82, 89, 37,228, 70, 6,173,133, 36, 32,239, 3,161,238,212,203,107,219,107,246,134,178,102, -131,196, 28, 23,215,133, 17,180,124, 95,102,146,219,190, 74,145, 53, 78, 71,177,135, 29,117, 45,183, 41,201, 54,197,184,226, 28, - 74,147, 69, 37, 78,246, 5, 40, 14,180,212,153, 3, 24,196,116,168,153, 35,135,209, 73, 13,119, 6,251, 41,193, 34, 92,247,182, -181, 45,168,209,223, 66, 10, 60, 4, 69, 84,127, 10,189, 70,237,165, 33, 66,189,130,186,174,101,204, 77, 5,204, 36,133,205, 86, -148, 99,144,226, 91, 94, 34, 42,252, 85, 72, 68, 70,229, 42, 66, 27,162,192, 91,141,180,229, 5, 81,176,144, 6,254,228,250,116, -159,230, 77, 68, 46, 32, 14,207,159,170,128,142, 79,242,209, 55,175, 57, 61,190, 66,219,102,195,224,180,219,136,113,209,224,165, -148,169,180, 17,182,138, 1, 94,201,175, 94,253, 63, 24,182,185,106,248,170,123,126,138, 82, 61,185,138, 45,253,232,149,119,125, -184, 76,193,114, 12,133, 77, 75,104,105,153, 43,111,194, 82,202, 18, 77,105, 78,170, 61, 6,166,195, 20,118, 96,200,231,130, 0, -204,140,243,167, 35,100,146,101, 82,180, 28,123, 42,134,192,145,247,136,251,177,151, 99,123,219,136,105, 79,169,130,224,170,148, - 66, 66,214,176,158,149, 0,119,234,251,151,183,189,191,113,184,142, 57,220, 35, 4,161,113, 5, 0, 29, 77, 4,147,154, 97, 87, -214, 54, 62, 36,141,107,221,165,164,226, 80,148, 29,128, 19,236,174,248,121, 41,243,253,228,143,203,215, 26, 63,102,206,248,159, - 49,137,149,253,221,111,182,222, 21,136, 98,145,114,116,101,172,219, 17,189,217,183, 59,133,194,237, 26,227, 40,207,144,143, 20, - 64,113, 2, 51, 4, 0,210, 59, 78,189, 47,113,184,108,214, 16, 71, 38,201,117, 12, 67, 21,121,215,227, 18,114, 0, 54, 51,165, - 49,239, 40, 37,115, 1, 43,209,123,118,235,180,109,208,180,109,239,142, 16, 85, 94,224,231, 74,122, 27,131, 28,224,152,171,145, -170,185,129, 80, 63,153, 79,198, 63, 7,207,174,210, 97, 96, 60, 77,116,180, 52,202, 37, 28,106,215,113, 76, 60,110, 97, 13, 54, -165,178,211,176,173,190, 42, 22,162, 40, 20,231,190, 13,190,189,160,107,101,203, 62,102,218,237, 81,136, 26,215,184, 56,254,210, -105, 94, 93,136, 11,221,104,212,113, 40,152,132, 85,233,174,211,202,158,122,219,242, 69,159,133,183, 90,186, 82,228, 15,150,121, - 10, 47, 18,214, 13, 69, 58, 6,161,237, 53,199, 62, 99,243,239,230,251, 50,193,242,104,119, 22, 29,227,220,118,226,249,140,221, -211, 20,185, 36,221,109,214,229,173, 64,199,113,207,124,159, 49,133,201,240,206,208,243,168,233,237, 37, 36, 26,107, 93,111,191, - 91,115, 19,137,182,145,174, 3, 62, 30,195,143,209, 75,223, 60,241,185,223, 37,107,173,231,104, 96,105,212,198,179, 72, 36,229, -222, 35, 80, 78,163,219, 80, 71, 8,113,151, 34,242, 93,249,222, 78,205,239, 86,214, 56,215,141, 48,249,185, 53,251, 41,190,186, -231,184,181,113,190,219, 87, 42, 21,172, 55, 21, 81,222,188, 75,151, 17,106,113,200,108,138,116, 33,245,161,163, 93,100,118,110, -116,182,222,111,103,128, 65, 32,100, 46,116,122,220, 17,165,237,118,146, 0,205, 20, 18, 15, 64, 84, 10, 43,152,115,255, 0, 51, -220, 62,214, 54,202,246,151,201,164,128, 49, 41,129, 85, 32,140, 20,116, 98,115,171,115,151, 95,177,248,188,102,203, 40,202, 98, -221,242, 38,155, 66,237,215, 27, 93,134, 76, 55, 82, 86,122,178,235,108, 38, 75, 9, 64, 38,158, 24,114,169,253,154,107,146,115, -160,216,183,153,220,201,166,137,146,244,135, 52,159,247, 1,137, 29,190,138,243,238,237, 35, 47, 28, 73, 40,122,106,153, 71,200, -179,251,170,218, 75,168, 65,109, 82,156, 98, 43,142, 54,164,109,122,180,175,180, 82,161,219,240,235,131,238, 31, 3,108,247, 6, -185, 83,136,200,129,198,177,111, 99,129,166,125,203,145, 51, 27, 67,254,224,234, 35, 5,138,188, 93, 97,149, 41, 75,121,181, 16, - 10,170, 84,170,116,248, 52,236, 59,117,173,203,117,133,245,252,213, 28,175, 69, 16, 57,254, 93, 44,135, 91,152,248, 83,138, 76, -122, 71,100,162,170,119,186,162,157,253,130,149,210,190, 6,214, 48,132, 12, 49,196,209,104,115,138,241,173,230,202,228, 56,108, -165, 79,139,146,158,145,181,208,146,203,142, 20,178,241,246, 8, 79, 82, 10,128, 61,189,218,106, 9,236,167, 36,183, 74, 12, 21, - 70,116,224,183,144,133,210,105,161,114,185,100, 10,117, 34, 82,110, 66, 72, 9,116,238, 97, 91,200, 95,101, 72,174,223,155,223, -232,213,148, 70, 16, 21,186,116,158,186, 2, 7,160, 36,103, 94, 75, 70, 65, 29, 17, 94,152,244,143, 10, 75, 78, 56, 2, 86,106, - 10, 84,164,168,159,132,164,244, 26, 30, 52, 77, 80, 17,105,201, 44,158,208, 9,227, 68,211, 14,233,116, 78,216,236,202, 90,219, - 88, 21,109,165,165,192,149, 0, 5, 58,247,215, 72, 59,140,118,229, 92, 69, 55, 29,161, 38,156, 8,194,179, 87, 99,134,161, 88, -239, 19, 29, 1, 63, 68, 33, 41, 52, 81, 21, 63, 73, 66, 79, 78,189,186,134,237,250,212, 57, 95, 35, 64,237,250, 41,109,180, 43, - 94, 91,248,183, 55, 90,226,184,229,134,116,121, 47,189,224, 54,151,219, 80,220,163,215,174,227,216, 13, 43,164, 92,115, 61,163, - 65, 2, 80, 69, 27,172, 92,112,163,183,174, 36,207,108,223,235, 55, 91,100,198, 99,123,187,147, 31,218,175, 17,180, 50,149,134, -202,246,160,246, 5, 16, 15,163, 77, 90,243, 93,165,208, 34, 55,130, 65, 3,214,189, 61,134,157, 22,101,185, 86,184,239, 29,228, - 23,119,253,213,152,142,253, 8, 14,120,142,199,163, 65,165,143,101, 94,209, 36, 87,173, 52,157,195,152, 33,180,102,178,236, 15, - 65,232,167,126, 8,132, 38,141, 92, 56,235, 42,176, 50,235,210, 35, 62,202,144,176, 11,130, 50,212,201,241, 85,210,187, 82,127, -100,247,106, 60, 60,199,111,120, 64,107,129,244,254,154, 49,110,120, 82, 51, 56,109,246, 83, 47, 62,213,178, 68,146,135,168,145, - 17, 11,241, 9,221,212,132,142,167,175,113, 26,144,253,246, 40,200,105,120, 24,113, 74, 31, 10,106, 83,198,120, 94,255, 0,116, -132,183,174, 73,118,209,182, 59,202,109,115,213,238,206,120,155,119, 37, 42,169,165, 20, 71,110,179,247,220,223, 20, 15,210,194, - 31,143, 12,105,211,109,167, 2,105, 14,227,199, 25,148, 87,144,212,139, 20,167, 99,161, 45,248,111,192, 95,140,216, 14, 15, 74, - 77, 85, 95,131, 82,109,249,146,218, 92, 91, 32, 4,244,225, 65,176,112,164,209,198, 57, 25,136,187,151,187, 17, 21,185,109,219, - 68, 93,227,223,212,227,202, 82, 8,167,206,246, 94, 64, 71,103,105,212,191,253,130, 33, 47,129,171,189,167, 82,240,203, 87,204, -105,239,131, 58,180,174, 40,190,197,171, 92,231, 36, 53,153,224, 42,181,220,165, 62,230, 34,133,206,180, 93,100,196,184, 57, 1, -203,149,218,254, 93, 83,137,140,244,103,154,118,140,192, 74, 80,118,168, 31,109, 36,208, 44,211,144, 79,203,241,237,247,203, 1, - 14, 45, 26,129, 45,224, 14,100, 16,113, 39, 32,122, 15, 69,117,237,143,153,174,182,123,136,239, 45,158, 99,150, 55, 43, 92, 51, - 14,233, 29,157, 52, 70,217,145,113,235,188, 97,126,227,219,126, 61,104,181, 97, 19,173,210, 49,118,236,182, 38, 90,183,181, 42, - 76,217,159, 66,250, 92, 74, 14,249, 13, 40, 23, 67,235, 74,148,165, 39,114,138,181, 29,176,222,219,110,177,110, 62, 35,157, 60, -111, 15, 5,202, 80, 1,139, 81,125,210, 48, 45, 8, 16,160, 74,151, 38,243, 37,214,169,100,113, 47,113, 85, 56,226,120,154, 53, -193, 28,155, 31,140,237,215,206, 27, 84,201, 24,252, 11, 20,139,165,235, 13,151,142, 75, 67,174, 92,229, 95,101, 37,135,222, 11, -155, 30, 66, 94, 38, 68, 80, 93,170, 2, 54,146,146,138, 39,173,247,154, 91, 19, 57,133,214,219,244, 32, 72,233,192,100,173,120, - 77, 46,141,170, 2, 52,132, 8, 80, 98,170, 23, 81, 92, 32,151, 9,194,202,226,238,142, 3,213,245,173, 74, 57,183,154, 12,154, -222, 96,221,161, 71,140,155,149,150,234,213,194,209,200, 24,108,102,236,249, 77,137,216,202,240,144, 37,196, 10, 54,187,156,117, -164,165,183, 91,163,104, 95,237, 50, 10, 16, 83,206,118,206, 65,130,109,113,200, 78,135, 4,116,111, 58,152,238, 39, 73,247,216, -225,137, 7, 18, 56, 59, 18, 10,254, 55,192, 26,116,140, 14, 99, 3,234, 24, 17,195,231, 21, 31,101,222, 98,184,207, 61, 76, 60, -187, 42,141,128, 96,252,213,108,137,112,131,247,235,108,176,182, 85, 31, 36, 97, 13,179,122,143,186, 91, 42,152,193,124,184,228, -155,121, 89,126, 50,151, 33, 52, 83,149, 83,151, 91, 39, 42, 94,242,241,125,180, 15,150, 91, 55, 22,163, 73, 63,100,226,195,221, - 33,164, 4, 13,122,105,120, 12, 56, 0, 0,147,186,237,147,239, 13,137, 97,115, 26,224, 94,227,164,226,213,210,160,241,110,166, -149, 60, 8, 35, 53,162, 78,254, 35,156,133,105,225, 60,231,202,215, 62,224,184,174,112,214, 87,199,183,140, 23, 22,228,251, 3, -205,217, 37, 70,183,221, 97,183,112,177, 92, 30,182,166, 26,216,144,225,121,108,169,183,144,166, 84, 26, 36, 82,187,203,189, 55, -151,249, 59,108,219,124, 75,221,166, 36,123,229,212,237, 88,184, 56, 59, 75,209,206, 14,112, 0, 7, 13, 32,129,137,200,161,108, -200,247,198, 88,218,186,205,208,181,116,144, 30, 61,228,224, 8,196, 32,236, 7,233, 43,228,127,205, 69,195, 16,242,233,200,252, - 41,145,196,181,220,177,248, 60,211,229,214,255, 0,141,100, 55, 69,200,151,122,195, 24,187,103, 54, 71,230,177,103, 67,110, 52, -211, 43,121, 80, 22,189,202,116, 80, 45,208,145, 85,149, 6,183, 46, 89,180,119, 50,217, 95,178, 16,110,166,107,227,214, 74, 6, -232,105, 33,200, 51,113, 80,210,113,238,128, 48,226,173,135,120,100, 77, 45,145,161,205, 14,107,143, 98,133, 3,181, 42,138,121, -183,181,227,120,247, 55,205, 24,230,101,145,231, 17,114, 76, 38, 26,238, 87,140,158, 43, 49, 38, 11,174, 53, 62,125,158, 51, 44, -134,165, 75,113,198,154,131,102,138, 16,167,148, 23, 82,164,237, 8, 9,175, 72, 51, 58,229,210, 49,207,212,248,229, 45, 36, 0, - 7, 3,246, 64, 24, 7, 34,160,244,230,107,121,170,230, 9,229,107,237,218,230,180,183, 39, 21,253, 40,137,159, 21,224,148,195, -200,109, 13, 53,229,223,145,152,184,200,146,236,188,125, 56,186,161,198, 64, 90,153,131,123,203, 46,214,229,173, 42,250, 96,132, -127,169,219, 22,149, 16,217, 37, 84, 4,209, 35, 85, 2,241,223,204, 45,163, 99, 90,142, 50, 18, 80,106, 45,107, 8,205, 21, 53, - 16,152,225,143, 73,172,117,148,198,114, 79, 6,159,159, 12,126,138,170,217, 78, 75, 18,103, 31,224, 88,243, 18, 37,185,114,179, -202,201,159,186, 52,230,239, 1, 63,120, 46, 42, 35,120,125,104, 79,132,193,173, 53,162,182,180,123, 46,166,148,129,165,193,128, -116,225,169, 87,210,106, 84, 67,190, 74, 10,151,240,155, 79, 28,231, 92,181, 38,203,123,126,126, 61,198,152,254, 43,156,228,136, -138,228,149, 63, 53, 34,201,109,146,229,182, 50,164, 38,136,111,125,192,178, 10,156, 33, 59, 70,210,170,145, 90,141,214,123,205, -186,201,174,128, 7,220, 58, 72,218, 78, 67,188,225,173,201,212,213,203, 30, 41, 76,106,208,199, 60,156,120,117,149,200, 84, 41, -123,131,148, 96, 25,158, 45,149, 77,179, 99,214, 59, 46, 97, 9,158, 69,179, 66,183, 56,166,236,139,199,175,179,101,182,210, 91, - 75,197, 78,167,196,247, 85,169, 45,213, 74, 74, 74, 65,165, 54,139,203, 75,136,119, 40,100,134, 55,185,198, 55, 24,156, 78,122, -154,208, 73,195,180, 99,130,156,170, 75,154, 38, 97,106,146, 70, 29,120, 10,178,118,159,117, 13, 94, 47, 47,220,190,238,180,228, -119,153,210,108,138,184, 45,233, 55, 55, 49,219,107, 78,199,182,164, 52,161,227, 44, 54,202,148,144,174,136,246, 69, 20, 5, 14, -168,110, 53,105,108, 96, 2,246,180,106, 68, 3, 81, 32,187, 28,177, 56,244,227,149, 81,206,143,112, 13,196,143,151,203,141,121, -157,222, 33,218,242,187,125,173, 22,123, 76,247, 44,248,166, 35, 1,251,180,185,139,156,194, 67, 86,232,207, 4,152,168, 91,108, - 50,235, 69,226,135,131,161,202, 40, 16,133, 20,128, 75,219,109,164,134, 18, 92, 92,221, 79,113, 68, 0,226,226, 1, 92, 73, 4, - 0, 66, 38, 4, 40, 92, 41,214,219, 62, 0, 67,142, 36,170,118,227,242,202,174,223,146, 27, 12, 91,223, 50,241,167,223,179,113, -107, 86, 59,155, 94,174,184,224,186, 63,141,181,148, 65,182,200,145,108,184, 71, 83,242,237,143, 4, 54,166,163,170, 82, 20,167, -145, 69, 53, 69, 58,133,161,109,161, 98,135,126,185,142, 14,228,132, 4, 33, 76,128,150,119,138, 5, 66, 14,125, 99, 49,158, 85, -123,177,197, 3,110,227,109,211,127,102, 84, 30, 56, 16,156, 65, 24, 19,208,163, 48,135, 26,184, 31,136,109,235, 29,193,249, 35, - 18,224,252, 43, 49, 98,235,142,227, 88,197,151, 36,190, 89,113, 40,178,226,224,120,222, 97,123,109,197, 59, 18,223, 26,233, 54, -117,207,123,108, 40, 41,247,164, 77,112,169, 75,160,160, 64, 26,114, 72, 90, 34, 48, 70,229, 99, 28, 91,167,128,115,125,236, 83, -188, 84,149, 61, 56,112, 65,113,204, 80, 91,217,191,225,237, 92,124, 33,138,125,144,113,201,113, 94,146, 73,205, 1,194,154,158, - 84,110, 28, 91,143, 93,175,153, 63, 37,195,254,247, 75, 76,120, 22,124, 11, 11,134,196,155,141,195, 34,200, 38, 60,133, 60, 83, -111,140,159,120,146, 35,182, 16, 8, 82,131,100,172, 5, 21, 86,135,158,243,166,207,184,238,145,197,109,183,146,192, 92, 76,143, -195, 0, 2, 0, 9,200,146,120, 2,112,193, 51,170, 59, 59, 23,206, 85,161,122, 59,112,195,182,186, 3,196,120, 15, 61,121,141, -202, 50, 11, 79, 11,240, 20, 59, 5,166,219, 49,155,125,206, 62, 63,132,226,188, 86,197,141,168,204, 70,121,213, 78,113,111,199, -147,188,151, 9,109, 79, 56, 74,194,194, 65,221,208, 84, 91,114,139, 45,166,109,147,166,146, 75,141, 58,207,137, 36,178, 20, 84, - 94,247,117,163, 12,130, 86,153,187,116,179,200, 24,184,129,138,174, 31, 64,175,161,126, 30,133, 31,139,112,155, 62, 3,114,225, -220,207,143,162,218,227,176,137, 23,121,179,236,217,108, 27,213,229,198,208,151,164, 56,229,142,233,112,148,219,143,169, 37,110, - 56,244,100, 54, 63,127, 93, 67,111,176,110,222,193, 24,105, 0,113,207,230,199,217, 91,187,116,129,129,131, 32, 42,108,202,110, -232,137, 4,136,251, 61,223,192,218,128,149,116, 85, 5, 21, 79,131,178,191, 14,180,172,106, 82,181,213, 51,204,114,232, 15, 59, - 41, 47,190,148, 59,226, 0, 66,151, 77,224, 5, 80, 14,189, 59,126, 77, 79,134, 58,102, 87,225, 85,147, 46,186,197,138, 36,190, - 92, 69, 20, 82,150,202, 79, 64, 90,162, 73,167,117, 22,173, 92, 64,202,163,187,153,106,188, 95,174,105,156,202,214,131, 74, 52, -105,215,113, 46,146,165,117,235,251, 61, 7,199,171,136,176,172,244,210,227, 85, 67, 50,118, 69,169,114,166,165,208,208,112,248, -161, 27,170, 42, 42,144, 59, 71,164, 19,235,213,132, 82,106, 41, 72, 99,195,170, 26, 99,147,210,135, 28,101,197, 46,161,196, 2, - 16,125,183, 22,146,163, 74,215,176,246,106,121,135, 10,123,195, 90,150,113,236,253,171,139, 75,101, 82, 82,148, 4, 53,185, 75, - 80,222,149,169,117,219,209, 93, 61,125,117, 95, 60,122,106, 44,140,211, 78,175,239, 64,134, 75,198, 82,124, 63, 9, 33,162, 86, - 18,133, 41,197, 0, 79,111,104, 29,117, 83, 48,168,206, 11, 76, 12,143,157,204, 7,215,111,135, 35,114, 89,109, 12, 56,160,189, -222, 32,105, 34,135,183,247,199, 93, 70, 22,218,177,165, 8, 22,144, 49,254, 73,191,100,115,144,136,234,117,109,135,212,226,157, -169,246, 16,225,160,235, 90, 14,205, 38, 75, 96,193, 74,116, 33,181,104,112,182,230,165, 45, 59, 33,213,169,127, 68, 84, 10,186, - 2,231,205, 3,175,160, 87, 85,119, 8, 48,168,178, 17, 83,213,141,192,157,239, 40,123,107, 27, 0,175, 85, 81,125, 40, 43,235, -213, 92,142,166, 77, 69,222, 97,179,203,182, 53,137,203,180,227,240,228,204,189, 94, 33, 41, 50,147, 25, 27,196, 59,120, 67,170, - 33, 74,173, 16, 94, 45,169, 34,189,213,214, 27,154,247,216,182,248,252, 34,240,215, 59,175,133, 87,223, 23, 6,163, 66,147, 92, -206,153,142,228, 13,205,184, 42, 36, 89, 81,101, 43,124,183, 28,117,181, 41,151,100,120, 77,186,174,170, 36,209, 9, 81,233, 94, -209,232,215, 46,110,229, 21,210, 23, 56, 18, 75, 64,245,167,182,168,157,102,247,185, 52,149,196, 82, 53,145,199,219, 44,187,112, -110, 84,161, 38, 90,174,178,183,178,160,233,136, 67, 94,193, 77, 69, 62,149,146,145,214,181,212,219,231, 49,174,208, 8, 9,130, -143, 79,203,213, 85,243, 66,240,226, 58, 48,245, 26,118,194,149,121,144,176,207,221, 18, 23,111,159, 33,244, 9, 30, 25, 82, 25, -137, 13, 13,165, 96,117, 39,113, 81, 36,211,176, 10,247,138,211, 43, 65,197,248,129,151,105, 36,125, 93,116, 70,220,184, 40, 24, -209,171,181,190,244,219,209,213, 22,208,242, 30,125,247,231,134,219, 20, 76, 70, 67,173,165,162, 82, 20, 80, 18, 84,179,186,157, - 58,143, 71, 73, 62, 43, 24,170,240,132, 97,242,235, 69, 29, 84,236,182,143,182, 13,212, 61,230,175, 96, 82, 62,143, 85, 51,242, -155, 69,241,200,119,196, 93,162,204,134,213,211,221,211, 17,168, 17,189,218,229,107,119,223, 10, 12,134,150,138, 20,146,146, 0, - 73,253,180,138,118,168,106,235,108,220,163, 88, 68, 1,158, 35, 23,188, 80,181,193, 9, 33,205, 42, 15,111, 6,250, 13, 57, 24, - 5,204,111,134, 11,129, 42,170,135,168,246,117, 80,110,219,228, 91,236,232,185, 59, 26,227, 41,104,118, 51, 94,245, 57, 41, 10, -121, 48, 66, 67,206,169,192,132, 37, 74, 21,170,128, 3,182,180,235,168, 50, 76,110,100, 37,160, 53,174,114,163, 85, 1, 56,160, - 82,112, 10, 6,103, 10,136,230, 41, 82, 56, 26,114, 91,167, 66,180, 41,152,183, 4, 68, 66,223, 64,146,166,168, 18,166,154, 40, - 74,131,174, 10, 84,146,149,165, 94,173,180,237, 52,213,104,100,151, 1, 3,142,100,122,138,125, 20,151, 56, 38, 84,118, 77,230, - 11,209,229, 33, 17,210, 81, 32,176,200,147, 37,164,183, 28, 85, 21,114,160,209, 52, 42, 34,162,189,148,239,210,225,133,241,226, - 9, 65,215,232,164,171, 78, 6,152,215,139, 36, 9, 57, 59, 50,109, 69,152, 73,142,228,120,140,196,106, 26,124,121,178, 38,149, -150,156, 42, 21, 0,181,210,160,119,252, 90,185,181,220,158, 45,244,185, 79, 21, 92,128,204,122,105,230,194,208, 16, 12, 79, 26, - 90,251,159, 53,131,104,156,213,157, 74, 80, 84, 80,160, 29,123, 96, 1, 78,180, 87,184,172, 84, 29,135,175,171,166,172, 44,119, -107, 89, 8,214,113, 95,154,157,100, 79,140,246, 83,137,104,228,137,142,196,142,161, 96,183, 70, 43, 75,142,201,122, 55,191, 75, -247, 38, 2, 90, 13, 37,170,161, 27,138,207, 90,171,211,173, 61,158,251,101,108,211,239,185,201,146,160, 92,243,236,171, 8,130, - 0,185,210, 86, 43,110,241,242,107,205,203, 62,181,227, 83, 36, 90, 22,197,183, 24,159, 5,183, 16,135, 12,230,211, 37,217, 62, - 19,197, 65,165,120,110, 50,223,176,178, 7, 90,116,173,108,111,249,151,246, 12,142,209,239, 1,192,151, 2,122,208, 5, 25,226, - 9,199,170,172,141,216,141,161,141, 36, 3,157, 94, 76,178,255, 0,199, 95,242,255, 0,130, 96, 24,251,118, 88,249,197,253, 19, -165, 57,238,246,196, 41, 56, 69,142, 92,181,185,113,191,173, 52, 45, 72,187, 95,148,244,123,116, 55,150,119, 48,196, 55,170, 66, - 28, 74, 23,213,118, 15, 50, 71, 33,236,144,206,238,252,242,106,210,197,247,136,115,128, 47, 57,136,216,153, 12, 92, 72, 3, 34, - 68,217, 46,131, 33,106, 28, 79,205,250,126,138,169, 92,175, 46,233,144,185, 30, 38, 37, 35,238,236,126,114, 89,178,189, 21,137, -142, 73,179,227,182,139, 19,109,178,130,195, 15, 56, 84,175, 1,151, 54, 19,188,173,117, 37, 68,169, 91,180,177,231,228, 60,195, -180,221,193,122,195, 21,201,141,193,160, 41,107,220,224,136, 8, 10,210, 87,142, 0,125,163, 84,243, 13, 78,198,162,171, 52,216, -109, 89, 89,154,152,119, 59,227,175,202,130,139,148, 8, 49,155,113,248,114, 38,171,231, 52,211,171,108, 44, 33, 37, 15, 2, 72, - 37, 7,120, 29,218,243,142,224,247, 62,233,204,115,219, 30, 5, 11,137, 67,167,129, 32, 20, 82, 8,232, 7, 12,177,170,201,109, -206,162,220,147,232,165, 39,177,187, 82,102,186,183,237,114, 30, 66, 20,185, 11, 64, 80,109,104,117,123,144,104,145, 74,123,100, -138,145,218, 65,214,121,219,140,163, 39,140, 69, 67, 17,132,202,135,119, 26,193, 36,184, 29, 56,221,177,115, 12, 74, 34, 68,134, -129,119,197,140,165, 20,165, 39,188,133, 32,143, 94,138, 45,222,237,173, 45, 18,185, 7, 71, 93, 37,204, 3, 4,199,133,104,140, - 99, 15,111,220,132,136,118,136,175,173, 44, 92, 11,104,101,180, 52,153, 45, 54,238,208, 59,194,137,220,160, 7,104, 26, 75, 55, - 43,199,130, 26,231,144,132, 28, 78, 74, 23,232,169,113,218,235, 90,116, 90,216,177, 50,242, 86,244,136, 78, 23,225, 6,221,125, -214, 66,209,243, 26,117, 72, 64, 30,200, 82, 66,232, 15,162,163,187, 80, 95,115, 54,131, 24, 5, 3,151, 62, 39,141, 61,240,164, -224, 15, 93, 16,115, 20,180,202, 77,214, 91,112, 98, 50, 67, 10, 68,118,166, 50,194,155,121,113, 42,176,224,116, 35,196, 73, 88, - 80, 73, 73,236, 3,227, 51,100,221, 29,166, 56,195,157,129,196,133, 84, 57,132, 84,192,226, 15, 26, 84,150,192, 32,192,245,253, - 30,138, 33,115,177,218,150,162,149, 99,182,249,208,144, 16,220, 86, 68, 70,220,113,165, 37, 38,171, 10, 31, 56,145,176, 17,221, -217,218,116,150,110, 50,146,130, 71, 7, 98,165, 78, 92, 62,158,218,140,232, 74,101,141, 49, 39,217, 31,127, 27, 39, 29,139,109, - 19, 95,144, 23,102,158, 24, 48,216,114, 68, 39, 79,134,151,220, 74, 10,195, 96,251, 11, 20,174,222,192, 72,214,147,109,187,134, - 43,192,219,242,237, 8, 67,128, 42,113,110, 99, 60,120,245,244,133, 90, 92, 17, 6,201,251, 80, 67,120,166, 96,117,117,211,246, -204,140,181,166, 83, 13,102, 11,146,163,198,105,249, 30, 19,193, 97,165, 26, 5, 84,144,146,104,148,130, 21, 78,160,246, 87, 84, -155,180, 16, 91, 72, 76,122,140,100,157, 46, 33, 20, 46,105,243,245,211, 76,135, 94, 45,202,129,187, 69,203,205,166, 60,135, 45, -202,250, 52, 59, 38,115,170,121, 0, 66, 15, 2, 74, 20, 83,216, 66,215, 66, 64,248, 43, 67,164, 89,199,107, 45,203, 97,124,136, -194,224, 20, 5, 40, 74, 40, 4,180,122,220, 7, 73, 20,227,109,136,120, 7, 34, 81,105, 22,195,114,202,242,118,163,201,185, 88, -158,199,219, 91, 15, 55, 42,217,127, 97, 2,125,189,173,168, 15, 54,234, 1, 80, 32, 63, 29, 75, 10, 38,138, 10, 4, 83,179, 86, - 28,193,182,193,177,205,225, 71, 51,100, 4, 2, 28,194,160,230, 70, 32,145,169,160,150,184, 2, 64,115, 74, 56,132, 37,203,235, - 19,101, 33,137,174,107,192, 62,243,114, 61, 97, 83,178,159,108,197,181,201,131, 54, 43,111,219, 66,157,138,151,247,180,207,129, -225, 52,210, 14,234,168,126,203,126, 32,248,129,248,178,205,146,103, 57,160, 7, 21, 56, 5, 92,248, 84,127,135,115,144, 87,177, - 26,130,202, 97,152,174,198,153, 9,251,124,133,161,199, 93, 75,196,180,221, 42, 64, 85,119,148,171,179,166,132,229,250,156, 8, - 32,180,208,240, 12,101, 58, 40,152,199, 45,118,196, 11,205,189,225, 37,111, 58,245, 97,178, 82,218, 91,240, 66, 21,237,171,160, -237, 81, 29,189,105,162, 55,115, 92,141, 14, 9,215, 73, 48, 28,233, 75,223,160, 93, 61,250, 37,198,207, 12, 90,154,142,200, 83, -242, 28,250, 87,140,135,148,144,147,214,135, 99,109,154,158,254,193,223,167,237, 98, 54,174,100,141,121,215,171, 46,128, 0,199, -210,184, 83,177,198,168,163,141, 15,108,186,216,172,175,196,109, 81,173,178, 96, 66, 67,111,220, 11,228,169,253,236, 41,198, 28, - 42, 5, 69, 66,170, 64, 80, 21, 29,167,178,154, 57, 44,229,191,113,210, 92, 28,247, 16,208, 50, 10, 65, 31, 57, 30,138,115,194, - 18,191, 1,153,192, 82, 15,247,106,218,165,155,246,214,183,181, 1, 50,203,126,215,134,111, 79,147, 32, 43,195,221,180, 80,182, -122, 87,183,229,212,191,139,151,196,210,135,247,154, 87,253, 57,124,176,200, 83,159, 14, 11,151,236,135, 34,240,199,244, 3,232, -174, 55,204,229, 79, 7, 26,198,240,200,247, 7, 13,163, 23,141,112,155, 33,108,171,104,186,100, 87,133, 21,202,121, 74, 77, 10, -146,218, 16,211,105,175,238,129,217,174,193,117,179,134,204, 75, 70, 46, 69, 61, 77,200,124,254,179, 90, 40,148,231,232, 20,233, -177,231,235,129, 10, 43,105, 82,157,106,220,159,123,139, 28,175,168,154,242, 18,151, 28, 89,173, 62,133, 9, 32, 87,190,189,221, -176,101,219, 60, 82, 92, 66,106,195,209,250,126,106,144,247, 17,130,208,145,178, 5,207,186, 63,122,122,227, 75,179,246,230,113, -187, 43,109,172,248,144,173,168,117, 43,147, 40,138,144, 22,253, 18,134,147,218,106,178,105, 81, 91,203,128,200,237,163,181,107, -123,173,113,123,143, 75,220,131,212, 5, 47,226, 52,160, 21,231, 35,101,153,109,133,172,222,209,142,223, 90,181, 91,160, 49,110, -176,182, 94, 81, 76,152,179,158,101, 42,125,230,100, 56,162,211, 75, 46,184,224, 74,187,129, 36, 0,163, 81, 81,183, 90, 65,115, -225, 58, 86,106,115,156,227,218,139,152,226, 16, 10,220,242,205,165,173,228,176,176,202,207, 21,206, 24, 61, 67, 7,105,232, 24, -122, 78, 88, 85, 61,203, 51,204,162, 45,134,193, 50,225,225,189, 36, 42,230,150,227,201,142,135,163, 72, 97,242, 10,221, 83, 97, - 75, 72, 76,134,155, 43,170, 21, 64,180,239, 77, 9,233,172,179,219,161,153,238,208,163, 36, 56,140, 70, 67,215,235, 24, 86,198, -243,118,220,185,126, 67,180,187, 68,182,145,137,158,198,247,100,208, 36, 26,101,240,228,247,187,164,106, 10,123,164,185,195,222, -113,114,171, 89, 59, 82,242,127,187, 4, 55, 89,251,181, 78, 88,155, 97, 51, 76,155,116,137, 54,197, 60,252, 89, 76, 52,227,138, -118, 41, 12,180,234, 94, 66,125,130,165,110, 79,206, 90, 69,149,189,187,153, 31,136,160,135,119,149, 49,197, 1, 7,129,199, 35, -159, 3,194,185, 78,253,185,187,116, 99,110,100,210, 29,164, 3,165,186,125,105,129, 80, 70, 57,168,239, 41,196,207,220, 43, 36, -221, 36, 68,194,166, 53, 56,194,205,249,111,141, 99,200,122, 44,145, 17,164, 71,193,141,206,241, 37, 46,172,161, 99,234, 25,241, - 18, 42, 58,167,191, 88,254,108, 6,217,166,230, 50,143,138, 9, 83,165, 95,161,128,132, 35, 21, 62,218, 78,194, 4,161,203,196, -143,152,147, 81,254,107,151, 68,203, 57, 66, 94, 66,134, 74, 32, 49,110,139,117,102, 49,148,103,109, 93,249,111,221,195,101,194, - 7,136,161, 34,230, 66,141, 58,144,122,119,106,235,100,177,117,149,152, 99,138,184,146, 9, 57,146, 17,139,234,106,213,103, 48, - 78, 94,228,111, 64, 3,211,141, 51,179,108,206,239,253,220,127, 20, 15,165, 17, 50,139,181,170,253,122,108,167,115,206, 72,198, -209, 37, 17,211,186,189, 18,149, 92, 86, 84,158,242, 18,123,181,105,109, 99, 25,147,199, 35,188,198,150, 55,177,197,164,255, 0, -208, 61,189, 53, 83, 97, 33,141,175,104,200,145,236, 84,168, 94,211,109,149,124,201,109,246,187,124,101,204,150,236,134, 81, 22, - 35, 67,114,223,150,226,210,150,144, 63,210,117,105, 7, 86, 82,204,219,118, 23,188,160, 1, 73,169,197,222, 27, 9, 53, 96,243, -187,253,147,135, 36, 99,248, 5,142, 29,167, 38,186,219,238,214,108,183,149,100, 72, 73,151, 7, 38,149,104,117, 18, 27,177,184, - 18,182,214, 97,144,130,135, 27, 10, 78,228,146,163,213, 93, 51, 27,125,188,188,194,201, 46, 36,115,152,215, 53,204,137, 48, 45, - 14, 9,226, 15,245,113, 7,133, 71,219,158,100,120,184,120,238,131,221, 7, 46,178,123,107, 95, 49,252,145, 99,200,175,174,230, - 86,171, 37,183, 34, 86, 55,150,230, 54,203, 78, 76, 22,240,198,220, 78,105,116,184, 94, 32,248, 22,151,159,148,220, 6,173,241, - 92,217, 30, 10, 30, 83, 77,154,168,238, 90,214,116,199, 37,108,146,109,150,226, 9, 94, 90, 94,200,201,102, 26,155,161,140,141, -218,158, 0, 47,115,156, 21,207, 32, 56,168, 24, 0, 42,226,254, 86,221, 72, 88,210,153,146, 71, 16,188, 58, 6, 40,149, 26,227, -185, 20,235,237,170, 29,206,233,113, 68,217, 96, 74,106, 95,136,234,140,231, 29,102,165, 43,114,162,134,168, 81, 9, 32,244, 2, -158,141,104,174,173,132, 5,193,173, 64, 81, 58, 61, 21, 75, 44, 90, 28,141, 8, 5, 23,200,178,148,100, 57, 14, 67,126,151, 88, -167, 32,186, 75,146,134, 91, 33,102, 59, 15, 44,173, 45,130,144,128, 67,104,218,129, 68,129,234, 29,154,158, 34,124, 77,107, 66, - 18,208, 7, 86, 1, 58,234, 91,156,102,144,188,246,215, 80,120,147,156, 44, 94, 92,101,249,103,186,167, 23, 79, 34, 78,194, 56, -131, 36,188, 35, 23,126, 75,112,163,203,206,185, 78, 78, 65, 38, 63,188,188,182,223, 67, 72,133, 2,108, 87,156, 81, 65, 41, 8, -173, 1, 29, 56,127, 50,242,245,215, 59,199,127,110,233,221, 19, 36,185,107, 67,177, 58, 99,133,177, 7,105, 10, 49,123,195,134, - 8, 9, 60,106, 99,110, 67, 92,221, 69, 67, 65,227,146,253, 61, 93, 53, 17,101, 60,171,120,229,126, 73,203,121, 39, 38,247, 86, -174,217, 77,226, 85,214, 68,104,123,132, 24, 33,211, 70,227, 71, 11, 82,148, 26,140,210, 82,211, 96,146,118,164, 87,174,182,187, -102,199, 30,195,107, 21,140, 36,150, 68,208,213, 57,158,151, 30,183, 21, 39,172,212,105, 31,226, 30,218,236, 15,146, 30, 91,192, - 56,103, 36,192, 45, 60,105,198,150,238,105,230,236,174, 53,186,103, 37,191,119,199,102,201,131,134, 89,165,184,242,217,180, 46, - 75,175, 69, 68, 84,150,252, 39,148,152,237, 47,198, 93, 67,139, 82, 82,134,198, 79,123,191,113,183,184,117,252, 17, 54,205,170, - 24,100,122,153, 72, 78,243, 90,220, 0, 94, 36,234, 8, 8, 69,173,255, 0, 46,221,199,183,197,165,177, 54, 71, 63, 50, 71,168, - 12, 58,184,103,211,146,125,116,112, 53,241, 24,198, 9, 61,198, 56, 79, 26,197,239, 57, 53,197,187,150,113, 63,138,111, 86, 75, -196,123, 77,193, 49,208,212, 88,183,120,173,187, 2,232,137, 22,219,122, 26, 97,109,166, 51,139,170, 84,118,141,198,186, 29,142, - 40,108,225, 18, 69, 0,110,160, 23, 65, 4,180, 98, 67, 72, 85, 80,170, 80, 98, 73,194,175,188, 64,113, 12, 13, 94,143,167,174, -162,142, 69,228,150,124, 57,115,153,150, 81, 29,137, 18, 82, 82,254,248,175, 37,248,174, 41, 42, 67,141,185,177,105,114,169,249, -138, 0,142,210, 41,171,219,107,136,167, 46, 67,238,231,213,210,163, 48,114,192,227,136,163, 14, 53, 78,175,190,108,215, 21,249, - 17, 46, 42,109,200,108,180,182,168,133,130, 66, 41,236,161, 34,160, 41, 74, 29,123,105,171,118, 70, 6,158,186,120,198, 72, 90, -172,249,103, 52, 64,200, 84,244,168, 15,133,239, 82,101,169,134,222, 79,209,236,220,175,105, 68,245, 0,129, 95, 87,195,171, 54, -232,183, 32, 60,161, 57,117,212, 25,222, 90, 42, 33,186,114, 91,242, 97, 56,135,102, 36,164,165, 99,114,150, 78,198,212, 66,147, - 66, 77,106, 8,237,245,106,113,184,142, 30, 61,117,155,186,126,163, 81,220,140,230, 76,102, 84,167, 28, 9,142, 74, 35,165,101, - 64, 17,227,132,247, 87,185, 52,169,245,233,231, 94, 48, 96,184,162,213, 84,141, 90,133,115, 43,252,139,220, 89, 98,180, 75,112, -252,117,110, 52,163, 74, 66,220,221,219,208,236, 65, 62,173, 70,126,239, 29,179,128, 39, 21, 79,104, 31, 57, 20, 35,105, 92, 42, -149, 94, 50, 55,160, 92,215,225,213,255, 0, 13,181,188,175, 12, 18, 54,133, 39,161, 62,159,111, 87,176,111,176,189,189,226, 6, - 41,243,253, 85,104,214, 40,164,193,205,240, 45, 17,157,123,199,240,139, 66, 56, 89, 43,161, 83,211, 89,220,142,149,235,210,134, -186,150,233, 91, 59,131, 65,196,175,176,161,164, 62, 37,173, 89,231, 28,159, 42, 40,131,104, 98, 66,146,183, 27, 82, 28,113, 69, - 8, 74, 70,209,233,248,116,147,183,174, 38,154,248, 97, 79,252,122,193,120,185,190,137, 87,185, 32,110, 59,150,128,189,168, 8, -168, 38,166,181, 63, 59,174,137,214,237,140, 80,210, 27, 86,247, 8,183,192,180, 71,111,193, 83, 74,220,165, 33,224, 8,162,149, -237, 0, 59,123,250,124, 26,166,187, 60, 42, 28,165,106,199,226,121, 8,117, 5,181,180, 2,147,185,202,143, 74, 72, 3,191,184, -107, 63,114,218,132,248,210,166,136,247, 86,173, 17, 26,152,245, 29,144, 89,126, 66, 25, 38,136, 66, 25, 78,231, 22,163, 90, 37, - 45,238, 5,106, 61,159, 9, 26,192,243,111, 51,193,203, 54,230,105, 78, 57, 52,113, 39,128,167,109, 44,221,118,228, 25, 82,155, - 55, 72,209, 26,155,124,187,197,180, 63, 30,230,195, 66, 41,158,144,175, 21,249,210, 34,194, 66, 70,225,237, 37, 14, 7, 28, 73, -173, 18,144, 73,232,189,120, 95,154, 57,134,227,154,238,100,123,222,229,212, 81, 56, 55,188,239,153, 7,248, 86,210, 61,161,150, -205,107,144, 28, 56,246,165, 66,153, 6,119,101, 78, 8, 45,227, 27,180,170, 93,210,199, 21,163, 53, 81, 80,226, 93,184,185,111, -106, 68,132,110,222, 21,181, 45, 72,142,149, 19,217, 95, 94,164, 89, 89, 74, 47, 27, 40,145,232,215, 42, 41, 8, 3,136, 7,183, - 3, 80, 77,171, 99,103,184, 50,246,160,250,197, 49,172, 55,252, 6,241,132,230, 47, 74,199,160,198,187, 91, 50, 73,208, 45, 81, - 99, 69, 67, 9, 24,156, 27,100, 39,144, 92, 63, 89, 84,220,148,160,219,131,231, 23,118, 14,206,154, 77,206,218,238,198,107,116, -148,185,174,136, 57,196,149,253,163,158,255, 0,254, 8,163,128, 11, 85, 19,237,246,178,180,184, 4,114,251, 16,154,109,202,228, -126, 54,197,172,127,118, 91,101, 67, 68,249,238, 66,117, 12,204,104, 72, 83, 87, 25,204,191, 37, 68,183, 90, 41, 42, 91,174, 52, -123,136,160, 85,106,116, 29,182,110, 55,179,178, 71,131,164, 7,101,134, 0,128, 7,176, 30,172, 82,171,155,111,111,110,212, 92, -207,207,254, 41, 76,139,190,127, 18, 23, 32,194, 22,152, 80,167, 90,165,226,166, 81, 97, 47, 9, 43,188, 61,116, 65,142,221,119, -144,159,163, 18, 80,133,142,158,218, 66,250, 14,205, 92, 59,105,146,201,102, 46, 18, 23,181,160,255, 0,148, 53,117, 39,106, 2, - 58,138, 83, 23, 13,136,184,224, 14, 31,162,148,239,124,177,143,221,238,248,203, 51,237,214,136,150,185, 97,187,173,194,226,182, - 91, 90, 86,212, 22, 16,166, 88, 82,148, 64, 33,217,238, 54,224, 32,117,167,118,227,168,209,236,146, 89, 91, 78,246, 72,227, 35, - 80, 48, 41,226,123,228,118, 52, 22,250,123, 41,136,227,134, 82,164,103,242,249,118,212, 43,112,229,236, 38,238,235,145, 36,199, -117, 48, 45, 86,251,220,227,108,143, 49,109, 51, 34, 77,156,162, 10, 68,128,218,182,188, 10, 20,165,144,170,141,225, 42,165, 82, - 53,115,103, 99,119, 96, 3,181, 2, 28, 64, 32,228,117,227,212,133, 80, 2, 16,128,160, 28, 77, 63,111,124,219, 88,229,183,104, -110,137, 0,212,173,105, 61,210,161, 9, 10,222, 43,164,133,226,168, 41,181,141,114,150, 1,117,154,209,184,217,246,202, 45, 45, - 64, 75, 8, 82, 83,107, 74, 84, 55, 56, 21, 84,144,218, 92, 74,129,237,246, 72,244, 82,109,214,217,117, 12,125,215,241, 57,116, -245,122,106,132,193,110,171,216, 42,103,154,120,218,225, 99,101,248, 51,219, 97,249, 22, 1,119,146, 72, 77, 29,143, 32,201, 10, - 13, 13,219,104, 86,133,164, 30,209,181, 71,165, 41,170, 8,111,111,163,213, 27,154,161,167, 79, 98, 1,245,131,215,133, 3,182, - 64,170,185,215,183,215,176, 91, 21,173,139,142, 57, 33,181, 93,227,207,182,189, 29,153, 8, 14,195,188,196,187,196,171,109,246, -149, 33,205,172,130,135, 16,122, 41, 84, 32,235, 95,201,183,204,151, 85,166,240,192,109,159, 27,156, 92, 59,178, 70, 91,145,107, -179, 32,162,104, 42, 14,125,182, 54,214, 80, 61,226, 54,162,147,135,111,233,166, 37,215,157, 91,114,109,238,209,117,176, 72,181, - 70,100,197,143,117,143, 46, 25,137,112,139, 18, 90,154,149, 33, 30, 10,210,133,182, 78,199,130,106, 58,157,180,233, 77, 87,183, -150,190, 17,225,246,242,151, 53, 85,132,168, 92,244,147,218, 11,122,170, 69,245,179,109, 94,232,164,104, 14,165,103,185, 43, 16, -110, 99, 76,162, 56,114, 84,155, 67,211, 38, 52,210,234,237,190,123,137,109,111, 55, 66,104, 3, 41, 90, 16,125, 36,158,211,162, -138,214,228, 0,237, 89, 16,222,209,138,122,115, 53, 87, 45,163, 10, 6,255, 0,133, 55,211,159, 96, 83,223,178,196, 64, 67,119, - 34,136,101,123, 20, 23, 10,217,106, 74,155, 95,138,226,129, 41, 36, 37,228,172,250, 2, 85, 94,237, 89, 8,238,216, 30,135, 14, - 29, 36,244,123, 61,180,201,180, 11,236,253, 53, 29,221,249, 1, 44,197,149, 62,205, 49,169,129,136,242,157, 82,203,129,181, 8, -113,159, 1,144,218,107,251, 79, 5,164,168,158,207, 88,213,197,164, 14,116,173,241,120, 39,175, 18,126,130,157, 52,243, 97, 17, -143, 77, 65,151, 12,247, 43,131,141, 21,199, 95,142,219,183, 9, 13, 37, 40,144, 26, 30, 29,193, 8,109, 37, 35,118,227,209,165, - 56,163,232, 41, 61, 40,117,162,134,206, 31, 24,106,195, 39,118,103,250, 41, 90, 0, 42, 78, 41, 69,172, 87,236,150,119, 32,173, -229, 67,145, 2,203,225, 91,225,209, 23,197,150,214,139, 55,130,203,114, 29,107, 99, 73, 0, 33,141,129, 42, 89, 7,183,212, 83, -121,162, 43, 35,142,167, 18, 93,238,133,239, 41, 32, 28, 78,103,217, 85,147, 69,171,142, 53, 56,220,179, 75, 0,133, 50,233, 30, -238,168,106,180,123,236,251,211, 78, 36, 73,122, 84, 86,211, 29, 94, 11, 71,117, 65, 14, 56, 40,107, 78,132,118,245,214, 82, 27, - 3,226,123,138,173, 65,213,158, 63, 46,170, 76,118,160,224,234,105, 55,159,198,187, 71, 69,209,187, 83,132, 64,143, 10, 29,169, -213,189,177, 17,163, 67, 43, 91,207,168, 36,128,162, 7,138,186,158,157, 71,105, 26,148,109, 89,105,220,115,128, 14,118, 61,100, -240,249,133, 58, 34,140, 59, 1,136, 20,131, 39,145,226,203,184,218,160, 42, 34,213, 39,239, 31,188, 30,105,163, 84, 2,132,186, -148,178,107, 82, 2,147, 84, 34,134,186,183,178,176,214,201, 28,199, 14,243, 67,125,122, 92,163,135,109, 74,104,108, 99, 44,254, -191,209, 67,218,249, 33,249, 77, 37,241, 13, 45,176,220, 73,147, 10, 65, 42, 42,184, 49, 37,230,208,129, 90,138,251,180, 69,130, -159,135, 80,229,217, 3, 93,164,156, 73, 79, 66,125,101,105,178, 26,194,148,169, 27,150,164, 63,110,152,153,101,217,239,161, 14, - 72,150, 97, 56, 16,154,199, 91,101,227, 85, 16, 2, 74, 75,131,169,232,148,211,225, 67,246,104,195,193,110, 3, 33,234, 79,171, -215, 67,193, 15, 61,116,167,106,228, 59,117,193,168, 6, 21,204, 7, 46, 10, 12,176,231,138,160,210, 36,190, 90, 33,105, 73, 93, - 66, 1, 66, 91, 35,210,149,118,130, 42,220,219, 65,136,146,225,195,235,255, 0, 31, 72,163,248,114, 50,167, 46, 25,122,157,146, - 78, 78, 55,100, 14,222,114,107,157,254,199,141, 88,236, 34, 66,124,121,183,187,149,197, 80,154,105,160, 74, 80,162,234,222, 65, - 77, 72, 6,157, 72,208,143,107,115,228,107, 67,115, 84,244,140, 61,184,122,106,109,181,137,148,134, 12, 73, 32, 14,178,114, 21, -107,188,197, 94, 56,115,203,118, 43,133,226, 14, 90,237,121,247, 48,204,178, 92,231,228,119, 8, 57, 68,175,117,181, 68, 92,199, -227,248,138,240, 23, 29,184,241, 99,173, 10,137, 29, 14,178,227,210, 92,143, 33,202,176,194,153, 82,250,229,183, 37,109,220,189, -100,217,119,118, 25, 37,121, 8,192,226, 20,162,160, 66, 50, 4, 23, 59,134,160, 6,162,160, 92,223,109,208,237,241,177,161, 11, -138,250,113,204,116, 5,192, 96,165, 9,192, 37,115,190,227,205, 23,191,114,126, 55,142,202,220,149, 46,210,219,200,101, 43, 76, - 70, 23, 50, 81, 41, 33, 43,117,213,132,132,186, 43,185, 71,165, 42,117,205, 55, 11, 75,107,135,186, 88, 96, 17, 52, 52,144,208, - 92,236,135, 18,226, 73, 42,163, 4, 24,101, 89,201, 64,113, 9,215,236,166,122,121, 91, 45,189, 76,142,211, 19, 94, 75, 83,219, -189, 41,245,238, 41, 83,227,235, 74, 7,112,161, 73, 72,244, 14,206,193,169, 80,109, 22,164, 28, 61,220, 61, 57, 10,138,226,135, - 17,209, 76,105,220,157,148, 66,145,107, 99,100,180,199,185,199,145, 97, 99,194,220,227,174,194,132,182,202,222, 38,181,218,234, -150,245, 8,244,211,174,209,171,107, 11, 27,120,228, 14, 8,161,193,217,113, 92, 62, 97,234,167, 34, 1,117,244, 33,164,252,115, -151, 51, 43, 99, 54,180,191,227,188,134, 71,184, 66,144,162,165, 39,197,162, 11,224,130,170,245, 91, 72, 31, 1, 58,122,235,105, -181,148,185, 64,239, 28,126, 93,166,154,144, 52,147,211, 74,108,243, 38, 97, 22, 91,240,221,147, 45, 9,115,221, 3,202, 90, 10, -156,112,204,218,161,236, 84,138,238,219, 95, 81,248, 65,174,126,203, 3, 81,186, 66,144, 61, 31, 32,105,122, 90,252,169, 78,227, -206, 87, 0,212,152,171,120,188,175,122,247,104,229, 78, 0,134,147, 17, 42, 74, 94, 61, 73, 82, 84,227,160,118,126,247,167,161, -127, 33,136, 60, 32,207,252,126,138, 38, 68,105, 17,124,179,118,142, 93,159,239, 43,114,225, 44, 34, 88,105, 73,241,153, 12,165, -101,212,180,176,165, 40, 16, 74,250,212,106,105,219, 34, 82, 56,105,195,181, 6, 62,142, 29,116,152,226, 94,140,234, 67, 87, 63, -100,191,115,179,108, 72,119,198,247, 41, 50, 29, 87,132,159,118, 62,211, 72,109, 20,165,122,123,104,161, 20,175, 65,223,168, 95, -200, 96,214,188, 23, 46, 62,234,103,237,167, 52,157, 26, 56, 42,254,154,231, 13,211, 26, 18,111,109, 68,181,255, 0,170, 64,240, - 99, 71,136,239, 93,162, 59,187,146, 86, 77,122,209, 40, 82,137,214,246, 25,192,112,212,123,125, 20,236, 55, 58, 26, 92,236,215, - 26, 89,185, 49,247, 99,233,154,251,138,251,182, 67,237, 50,136,205,146, 94,159, 66, 84, 64, 0,213, 69,229,144,154,127,165,163, -157,205,153,200,209,195,229,236,160,203,147, 33, 65,158,116,145, 6,116,219, 85,225,169, 79,171,103,221, 82,196,247,208, 23,185, - 97,237,202, 83,109, 86,164, 18, 28,167,201,240, 13, 55, 42, 74, 72, 60,105,246,201,168, 40,204,224, 62,186,147, 37,222,161,100, - 54, 27,131,211,205, 17, 38,229, 22,233, 51,173, 28,150,226,154, 82, 82,202, 73, 53, 5, 74,165, 79,114, 70,169,101,178,150,210, - 88,204, 39, 20, 32,117, 23, 34,159, 64, 95, 74, 82,217, 46,135,147,212,158,170,171,220,195, 21,163,115,135, 42, 35,232, 90,163, -221, 81,107,114,218,193,216,159,119, 65, 78,245,244, 36, 0,124, 71, 17, 64, 59, 1,214,227,102,115,124, 20,227,154,252,213,111, -111,114,244, 10, 79, 28, 87,164, 87,182, 91, 75,202,202, 91,191,188,242, 4, 86,172,176,100,172, 80, 36,253,224, 34, 42, 34,210, -122,245, 87,138, 86,175,143, 79,120,130, 56, 11, 58,207,169, 84,123, 42,174,242,229,211, 64, 34,232, 86,142,205, 69,223, 77, 63, - 49,188,130,241,142,205,119, 34,182,151, 22,109, 78,228,102,215, 22,164, 33,251,237,234, 11,240,153,113, 34,191, 57, 45,184,164, - 87,208,179,170,219,155, 70, 95,183, 67,135,188, 27,234, 14, 7,231,199,209, 74,176,156,218,163, 73,193, 20,250, 41, 17,133, 11, -123,182,248, 37, 40, 91,246,155, 60, 24, 50,101, 1,246,151,224, 54, 26,100,168, 87,169, 73, 36,250,122, 13, 88, 56, 2, 9, 25, - 23, 19, 85, 82,202,233,201,113,226, 74, 83, 98,250,211, 15, 62,237,198,229, 33, 81,173,214,200,141,137, 14,143,105,221,206,149, - 45, 77,182, 43, 66,183, 0, 64, 79,203,216, 52,168, 87, 78,134,140, 73,169, 54,227, 75, 80,102, 77, 75, 44,219,176,188, 7, 5, -180,115, 45,130,225, 33, 83,175,216,202, 85, 6, 3,187, 21,247, 84,229, 0,211,165, 14, 15,164, 90,202,139,130,170,245, 82,157, - 53,158,101,196,219,141,211,236, 37,104,210,215,226,122, 64,196,125, 21, 30,224,201,112,255, 0,134, 35,142, 39,170,170,236,233, -111,164, 90,238,139,121,199,243, 12,153,219,149,198, 99,202,115,222, 91,143,110,184,168, 52,130,242, 21, 80,146,200,105,110,133, -118,144,164,210,148,235,175,107,116,106,104, 31,179,106, 0, 58,198,126,181, 3,208,106,244, 68, 0,211,246, 64,249,169, 65,168, -241,238,170, 56,178,239, 30, 14, 61, 14,224,101, 58,153, 46, 21,120,242, 88, 83,161, 46, 44, 53, 85, 41, 75, 11, 85, 0, 35,183, -208, 52,219, 35, 49,129, 49,111,237, 8,225,192, 97,133, 50,247,248,125,244,198,164,200,248,186,161,219,228,194,179,170,116,228, -202,109, 42,143,238,216,159,186, 48,203,100,109,222, 30,241, 11,142,130, 1,173, 9,245,157, 65,117,211, 94,246,235, 32, 33,255, - 0, 50,250, 19, 33, 80,140,133,206,212,224,158,154,101,220,112, 91,235,115, 97, 42, 60,152,114,216, 65,109,169, 17, 91, 82,145, -113,104,188, 70,229, 6,136,162,232,154,116, 74,137,245,106,194, 43,230, 57, 87, 14,190, 30,186,145, 20,173, 32,168, 56,212,169, -153,230,151, 28,194, 92, 57,170,128,206, 50,136,126,233,106,178,218,162, 67, 17, 30,135,103,177, 71, 68, 40,101,242, 82,149, 62, -242,218,104,189, 33,229,245, 91,138, 82,186, 2, 0,166,219,118,230,237,234, 20,187, 50, 73, 42,174,113, 37,201,208, 50, 0,100, - 2, 10,118, 73, 90,215,157, 32, 34, 1,135, 71,233,226,120,210,157,182,249,116, 75,118,251, 53,173, 82,174, 23, 91,139,205, 66, -129, 20, 40,200,121,247,221, 80, 0,210,166,189,105,254,109, 59,225,177,186,166,145, 3, 70, 36,210,237, 86,225,233,236,175,165, - 78, 8,194,236, 92, 23,193, 87,126, 16,181, 93,109,214,222, 65,228, 68, 88,209,152,115, 84, 24,134,249, 60,102,153,107,241,210, -194,151, 25, 82, 35, 74,117,171,107, 18, 28,101,132,180,242,122, 23, 29, 66,208,234,137,215,146, 55,190, 97,184,230, 45,217,155, -171,212,219, 70, 72,109,187,148, 55,195, 96, 43,136,192, 57,197, 28, 78, 96,128,220, 90, 43,174,108,174,139,109,208, 37, 99, 72, - 1, 74,161,196,228,163, 17,135, 12,197,119,247, 17,243,119,142,216,177,124, 23, 25,202,175,178,249, 75,148, 49,172, 22,219,104, -191,230, 76,217,216,183,230, 89, 42,173,176,129,149,113,148,194,150,148,192, 68,167, 91,241,156,109,111,237, 21, 85,106, 64, 42, -233,150,156,247, 29,246,143, 2, 55, 74,245,112, 26, 83, 0,132,143,218, 56,128, 80, 96,113,224, 78, 53, 14,247,119,129,210, 57, -182,224,191,169,184,129,218,226,128,122,235,158,124,251,230,217,171,245,191, 42,117,182,100,219,131, 45,185, 58, 50,148,227, 36, - 54,171,194,223,121, 40, 41,109,229,186,118, 37,196, 10,237, 34,160,214,157, 42,214,219,205, 78,186, 47,115,218,154,228,210,138, -168, 10,225,234, 3, 44, 49,236,167, 29,117,225, 38,182,161, 78,144,126,106,230,214, 81,200,119,155,181,193,248,118,251,155, 47, -166,124, 52,220,210,250,150, 82,150, 27,121,137, 93, 92,235, 90, 52,148,165,194, 61, 31, 14,181,151,124,220,216, 35,129,193,117, - 6, 98, 58,214, 63,159, 17, 77, 29,205,164,233, 7, 26,128,241,254,106,159, 38,243, 58,219, 12,190,135, 20,234,216,121, 41, 88, - 91,241,219,117,101, 40,107,231,117, 41, 74,131,116, 7,231, 30,181,211, 59,151, 48,186, 41, 60, 82, 84, 53, 0,232, 46, 0, 41, -251,216,175, 64,194,160, 75,127,226, 56,129,149, 60, 31,228,107,236,201,114, 45, 77, 52,252,135, 26,125, 54,152,190, 10,188, 70, -140,199,136, 82,148,165,164,208,109, 8,175,250, 61,127,105, 58,169,190,230,233, 99, 44,105,114, 57,253,247,116,128, 50, 9,218, -114,255, 0, 54, 92,106,162, 71,107, 37, 50, 24,122,105,118,203,115,201,243, 11,236,124,122, 2,158, 48, 89,118, 36,100, 92,159, - 4,179, 37,167, 60, 68, 38, 82,148, 13, 18,151,222, 4, 53, 95,216, 21,253,147, 70, 38,231,230,217, 70,233, 36,118, 56,224, 56, - 16,131, 79,160, 34,245,246,226,118,246,143,184,120,107, 69, 22,184,163, 33,113, 88,253,153,132,173,217,119,155,236,156, 85,223, - 13,162,230,199,173,208,196,130,217,218,123, 95, 47, 45,161, 94,224, 15,102,153,135,157, 69,195,101,153,231,221,239, 5, 61, 36, -124,200, 15,109, 32,218, 73,172, 52,118,122,126, 70,161,251,122,158,103, 44,202,237,211, 45, 76, 61, 58,209, 26, 91,209, 88,144, -201,113, 51,146,225,113, 94, 42, 18, 55, 5,248, 73,142,161,215,191,225,209, 59,117,125,244, 13,149,178, 16, 30, 64, 40,114, 32, -162,117, 42,212,105, 60, 88,222, 91,196,125, 85, 95,115, 12, 53, 57,117,210, 76,145,105, 77,180, 93, 36, 75,185, 37,184,140,248, - 81,146,156,116, 37, 46, 54,216, 20, 72, 75,113,208,218, 64, 79,114,147,173,223, 47,243, 73,218,227, 26,164, 46, 44, 1,170, 74, -158,254, 68,245,234, 36,149,232, 52,113,222, 60, 38,161,192,251, 41, 51, 16,184,222,241,135,210,200,178,201,185,181, 21,166,218, - 82,226, 55,225,200, 82, 86, 81, 82, 66,169,214,138,167,166,189, 53,218,172,119,248,103,137,174, 46, 29,236, 70, 61,191, 87,171, - 26,156,217,132,130,166,200, 60,137,145, 92, 91,103,221, 48,188,133, 41, 74, 29, 74, 15,134,148,184,242,250, 80,144, 86, 59,201, - 63, 21,116,171,205,222,222, 19,164,200, 20, 98,122,134,127, 46,218, 73,115, 70, 4,212,149,100,229, 28,174, 41, 64,119, 27,187, - 45,109, 33,149,165, 1,164, 7, 7,138,178, 10, 74, 67,138,175, 78,160,250,245, 76,235,248, 46, 73,210,241,250, 17,126,154, 97, -209, 53,199, 3, 87, 59,143,242, 28,130,231,102,183,223, 27,182,120, 42,155, 57,200, 45,198,157,190, 50,194,152,240, 20,233, 41, - 0,147,181, 46, 84,118, 86,135,174,185,111, 60,115,196, 92,174, 7,116,187, 83, 92, 65, 80,131, 78,107,236,164, 69, 98,102,118, -149,232,246,252,141, 89, 43,143,222, 18, 19, 42,204,244,232, 22,187,188, 37,193,247,169, 14,128, 73,140, 30, 68,135,161,161, 42, -112,166,174,199, 44,130, 58,165,127,249, 42, 35,199,220,207,205, 83,115, 92,204,186,148, 56,198, 85, 0,201,184, 16,215,122, 14, -174,177,159, 17, 90,155, 91, 47,131, 26, 2, 2,159, 74,145,234, 74,219, 54,153,140,101,120,180, 3, 22,224,211,106, 69,150,203, -108, 74, 17,120, 75,166,200,155, 27,241, 98, 70, 76,106,173, 5,211,224, 48,250,220, 87,237,138,147,243, 55, 28,101,171,103,176, -149,202,220,156, 74,105, 61,229, 5,197,115, 69, 37,160, 14, 25, 12,210,172, 36, 2,229,163, 30,142, 57, 0, 80, 39,203, 26,132, -174,241, 49,172, 85,156,107,124,167,230,197,148, 63,187,129,183,223,110,143, 61,144, 41,128,132,180, 69, 60, 21, 86, 10, 71,138, -175,223,234, 83,180,141,108,236,205,197,251,228,121,104,105, 8,228, 3, 32,213,207,167,222, 56,117, 97,152,170,203,143, 14, 38, -128, 14, 7, 15,151,171,219, 85,189,155,198, 25, 10,225,147,206,115, 37, 82, 96,219,237, 41,179,202, 82,158, 83,177,228, 94, 49, -121,133,213, 50,195,132,130,176,236,148,248,200,160, 21, 69, 43, 64,105,173,184,182,186,187,208, 12, 67, 91,156,160, 0,136, 28, -212, 10, 56, 97,129,235, 94,138,205, 79, 20, 39, 80,215,130, 99,232,232,168,145,155,166, 21,117,190, 69,146,178, 69,229,235, 84, -207,115,101, 79,153, 13,174,105,116, 48,149, 16,165,148,133,171,222, 93, 93,105,208,129,251, 32,106,241,246,183, 86,145,227,139, - 65,199, 15, 79,208, 5,103, 46, 99,105,201,114,160,229, 90,156,189,228, 22,231,237,121, 7,184,196,176,197,153,109,142,249,116, -248, 18, 86,134, 67,193,197,132, 85, 69, 9,221,236,129,216, 77, 58, 83,161,178,252,162, 72,197, 56, 57, 58, 56, 1,236,250,106, - 9,140,202, 23, 46, 31, 93, 38,222,120,231, 36,157,114,110,207,111,189, 51, 42, 37,158, 85,178, 68,217,111, 56, 16, 35,149, 74, - 8,109,179,237, 40,130,148,161, 64,143, 74, 66, 64,246,180, 33,221,153, 44, 69,210, 52,130, 65, 0,112, 68,196,252,187,105,160, -199, 64, 10,154, 5,206, 19,159,100,145, 50, 61,230,224,245,157, 78,196,145,118,189,220, 27, 97, 82, 69,162,212,250,140,247,163, -161,175, 17, 42, 42,109, 10, 67, 74, 27,170, 85, 81,218, 52,254,201,186,218,110,143,128,204,242,219,114,246, 13, 73,168,128, 28, - 26, 31,164, 17,169, 74,184, 0, 66,132,167, 99, 33,215, 13,100,167, 75, 84,106, 32,106, 32, 20, 4,162,133, 65,193, 69, 70,140, - 59,141,223,231,230,144, 44,114,219,251,206,213,114,181,227,175, 48,211,222,240,244, 88,210,153,117,136,237,169,196, 37, 40, 6, - 83,140, 16,154,128,107, 80, 64, 32,235,111,204, 60,190,235, 80,111,108, 28,102,219,124, 66,214,204, 1, 3, 90, 23, 35,131,131, - 92, 48, 7, 73, 44,110,182,181, 64, 5, 90,221, 95, 56,114, 21,223, 41,150,248,160, 24,220, 65,107,154,224,239,120, 40, 14, 33, - 16,162,224, 64, 56, 28, 1, 4, 3, 23,203,236,194,108, 88,239,188,169, 48,109,191,234,183,105,113,201, 14, 49, 96,140,183,164, - 55, 25, 5, 59, 85,226, 44,202,112,165, 21, 53, 46, 35,224,214, 91,107,182,107,203,203,120,226, 23,237, 57, 0, 39,179, 0, 61, - 6,178, 45,183,192, 56,156,190,186, 72,191,115, 11, 54,251, 33,201,174, 17, 23,107, 83,115, 35, 59,102,132,100, 41,109, 69,251, -145,214, 84,135, 27,170,129, 8, 9,142,219, 77,238, 53,220, 86, 69,119, 39, 83,108,121,125,215, 82,152,181, 43, 74,234,244,140, -189,100,158,196,232, 52,207,195, 24,156, 28,211,136,249,248,122,105,103, 33,243, 57,110,243, 31, 61, 57,141,167, 3,200, 87,146, -189,112,199, 44,252,129,117, 97,182,155,180, 48,205,173,168,199, 99, 44,182,132,184, 84,248,140, 87,227, 18,123,198,223, 71, 66, -222,118,155, 13,183,108,132, 62, 66,201,162,139, 75,113,106, 61, 20,133,196, 16, 83, 34, 43, 89,185,192,253,232,186,232, 4, 39, - 49,196,101,244,226, 42, 60,127, 42, 90, 36,221, 90,134,167, 82,110, 83,215,143,165,244,186, 75,143,170, 82, 90, 18, 20, 40,106, - 18,170, 2,154,119,171,213,174,115,109,106,247,198, 30,252,218,210,243,212,186,147,210, 2,138,207, 75, 2, 5, 7,252, 5, 74, -246,139, 54, 59, 50,115,120,227, 87,132, 71,185,222,164,181,143, 9,142,190, 83, 21,166,222, 97,180, 45,107, 88, 52, 74, 91, 46, -180,149,122,134,160, 58,242,226, 38,153,203, 73,104,105,114,113,193, 78, 29,160, 85,114, 72, 94, 49,195,143,174,157,183,171,126, - 17,106,205,242,139, 4, 27,164,103,172,112,237,215,200, 54, 0,191,161,126, 83,105, 47, 8,200, 80, 39,169,113, 75, 82,130, 71, -106,200, 26,131,183,223, 93, 92, 66,199,185,135,196, 58,117,118,144,165, 59, 21, 59, 41, 19,153, 28, 72,111,187,168,167,160,210, -140, 30, 60,198, 50,251,155,150, 43, 29,194, 44,136,182,107,189,226, 43,147,124,100,178,196,162,175,118, 83, 72, 86,226, 54,130, -210, 87,180,118,133, 33, 98,154, 85,247, 48, 92,217, 91, 9,165,105, 4,129,135, 16,114,249,211,215, 81,222,217,181, 6,140,206, - 94,170, 52,156, 71, 24,241,161, 92,100,221, 27, 48, 46, 23,153, 41,117,110, 43, 97, 82, 76,105,126,236,197, 15,122, 95,128, 83, - 64, 79, 85,166,157,244, 40, 55, 89, 30, 93, 22, 42, 26, 10,116, 33,111,206, 15,170,153, 13,145, 20,240,166,166,101,139,197,198, -133,194, 51,172,133,187, 38,215,112,154,185, 14, 10, 33, 86,118, 36, 41,200,206, 80,245, 37,228,198,108,117, 31,180,125, 7, 83, - 45,247, 41, 94, 66,228,112,255, 0,118, 11, 82,226, 87, 96,105,178,140,125,231,242, 53,217,144,234,225,217,159,140,132, 69,101, - 35,195, 75,208, 46,203, 74, 5, 58,154, 2,217, 93,123,122, 31, 94,172,111, 46,225,117,156, 50,224,100,241, 92, 79, 72, 45, 33, -163,212, 71,207, 82, 1, 17,198,212,247,138,147,236,167, 30, 63,130,217,213, 42,232,167, 94, 96,161, 94, 21,206,203, 49, 85, 15, -120, 54,199, 88,105,150,220, 61,190, 35,136,117,194, 62, 13, 84,221,111,114, 90,152,155, 31,219,114, 17,209,220, 46, 94,192,128, - 80,151,190,164,112, 31, 47,157,105,122, 46, 47,143,218,173,185, 29,185, 30,236,243, 56,236,155,236,119,101,120,137, 75,166, 91, - 98, 50,169,237, 40, 85, 64,191, 41, 52,237,170,145,233, 26,120, 95,205,114, 3,194,171,138,142,207,169, 16,250,233,146,215, 59, -182,153,113,113, 6,151,198, 87,251,164, 65, 21,148, 93, 39, 49, 96,137,251,111, 77,102,104,117, 50,222,165,126,106, 54,238, 36, -246,104,155,185,201, 5,206,156, 78,152,203,143, 82, 17,135,105, 20,236, 49,146, 67,137,226,158,202, 78,149,196,177,237,216,110, - 55,123,131,117,104, 92, 47,146,165,185,112,132,221, 82,238, 56,237,189,214, 12,102, 64, 81,171,133,216,205,248,132,143,103,233, - 7,125,117,113, 14,245, 36,142,144, 61,157,208,128,127,168, 34,147,235, 41,211,133, 62, 36, 17,128, 6, 38,166,191, 44,214, 46, - 16,199,249, 74, 31, 39,242,183, 44, 99, 28,105,128, 96,215,124, 70,233, 14, 94, 85,113, 83,111,228,179, 49,255, 0, 2, 75,141, -177, 25,149,137, 46, 40,251,171,174,184,166,210,173,187,118,128,183, 92,109, 11,219,242, 45,141,231, 49,110, 30, 28, 45, 95, 9, -190, 33,233,205, 24, 0,195, 50, 49, 42, 0,204,144, 43, 69,178,134,205, 43, 95, 41, 1,173, 32,145,196,230,112,244,125, 1, 9, - 52,195,243, 29,147,218, 51, 14, 97,228,142,106,197, 35,201,191,224,220,167, 37,219,237,238,233,116,183,170,204,253,186,224, 22, -208,102,104,183,200,113, 83, 34,181, 37, 74,171,173,132,141,170,246,148,148,133, 42,151, 92,253,185,217,110,114, 65, 20, 23, 26, -174, 33,238, 22,133,208,173,192,134,185, 0, 36,226,152,144,120, 18,162,163,110,119, 34,246, 87, 22,184,230, 83,164,130, 87, 19, -149, 70,217, 94, 7,111,180, 76,194,177,203,106, 17, 50, 76,188,109,140,179, 53,186,161,123,226,198, 18,219,113,248,240,155, 88, - 59, 92, 40,109,157,203, 82, 9, 21, 86,208, 78,218,235,149,237,155,188,151,113, 58,103,132,106,150,176, 28,220,152, 23, 17,192, - 18,112, 7, 20,196,162,165, 87,205, 16,136,106, 37, 79, 1,209, 67,227, 56,203,108,221,178,120, 22,167, 45,235,131,100,198, 34, -198,114, 93,210, 2,167,199,114,116,179,225,169,242,148, 61, 25,244, 39,222,164, 41, 77,134,222,108,148, 36, 32,170,155,181, 34, -231,122,248, 0,198, 32, 71,184, 2, 16, 98,157,226, 1, 32,161, 64,138, 16,130,112, 53, 35,111,185,138,202, 65, 44,240,182,102, - 33, 5,132,185,160,168, 64, 85,164, 56, 22,148,112,197, 9, 8,224, 90, 72, 40,241,172, 74,149,158,164, 71,105,177, 10,219,104, -247, 75, 96,152,144,152,236,188,146,176,215, 64,165,251, 1, 79,111,237,169, 73, 0,245,235,167,228,220,226,123, 60, 88,245, 33, - 10, 1, 69, 10, 50, 36,102,153,112,236,170,249, 67, 90, 15,109, 54,165,227, 17, 45,247, 86,163,163, 99,209,225, 76,152, 18,180, -245, 67, 10, 93, 0,119,169,161, 42, 42,220, 65,209, 67,185, 25,194,244,212,115, 26,140,115, 52,189, 47, 11,241,173,143, 76,182, -199,140,185,119, 23, 89,183, 61, 50, 66,131,138, 75,179,148,167, 60, 81, 83, 68,128, 18,132, 5,119, 13,221,199,164,120,183, 71, -106,124,146, 18,129, 64, 29, 8,163,214, 83,230, 20,141, 32, 16,211,144, 79,151,162,163, 24, 88, 59, 83,178,119, 45,238, 50,144, -244,152,205,173,196,169,170,136, 54,102, 80,219,232,113, 36,144, 42,226, 80,176,165,119,215,248,181, 62, 61,224,197, 16, 45,197, - 48,237, 35, 49,235,250,106, 78,167, 34,129, 75,109,224,176,208,151, 30, 13,248,136,147, 18,202,166, 16,186,214,178, 18, 10,106, -127,106,158,211,170, 30,138,122,180,111,221, 30,204, 92,114, 95,156,212,125,110, 39, 14, 11, 71,255, 0,186,237,166, 56,140, 80, - 68,135,159, 84,228,183, 67,227,169,136,192, 72, 40,237,174,240,135, 64,255, 0, 72,246,233, 31,204,158,171,242, 95,170,155,212, - 87,209, 80,166, 69,139, 49,100,182,219, 99,186,202,190,244,147,142, 54, 88,102,159, 72, 28,115,180,122,106,119, 80, 15, 89,214, -194,214, 99, 44,135,162,163,192,243, 33, 61, 26,169,142,197,150, 75, 50, 74, 37, 49,226,174,194,110,119, 95,120,113, 59,154,140, -136,172,159, 13, 32, 86,128,151, 85,219,242,106,218, 59,166,135, 56,183,136, 69,169, 58,198, 36,113, 65, 81, 52,171, 76,192, 35, - 62,148, 56,234, 36, 7,166, 72, 83,132,130,165,167,122,170,106,122, 86,157, 62, 29, 57,108,224,231, 16,122, 22,172,152,230,144, -125, 84,179, 61, 37, 54,187,101,185,167, 3,106,119, 99,202, 64,250,199, 2,235,189, 99,213,210,131, 78, 49,170,231, 23,116, 39, - 96,253, 52,152,202, 43,141, 69,147, 25,251,202,233, 33,226,200, 13, 49, 37,197,182,143,156,165,200,114,170, 39,173,106, 84, 62, - 64, 53, 50, 47,217, 53, 23,160,122, 6, 66,172, 76,136,209, 71,217,181, 75, 92,152, 77, 72, 34, 51,111,167,223,158,223, 84,178, -203, 78,213, 73,168, 6,170, 62, 31, 80, 7,121,211,236,153,179, 2, 1,233, 4,246, 83, 78,115, 88, 48,169, 22, 59, 16, 45, 38, - 68,187,138,144,134,153, 41, 22,248, 67,105,121, 36, 29,234,120,130,118,133, 17, 74, 19,217,242, 2,220, 75, 51,139, 91,131, 70, - 4,253, 21, 12,172,184, 14, 57,211, 79,221, 89,184, 62,220,134, 67,109,189,112,121, 13,178,202, 86, 75,113, 33,133, 19,189,107, - 39,169, 53, 36,168,255, 0,154,193,206,210,208,193,157, 17,140, 51,209, 76,139,253,174, 45,244,222, 88,142,226,197,150, 35,255, - 0, 73, 38,187, 87, 49,208, 3,117, 72,173, 42, 80, 61,145,220, 7, 94,164,232,221,120,216, 28,198,143,146, 99, 82, 34, 6, 36, -114, 98,152, 10, 25,197, 11,213,159, 30,197,229, 91,227, 59,141,219, 18,244,132, 67, 91,239, 48, 34, 91,225, 37, 75, 74, 80,166, -157, 69, 74,138, 64, 37,117,169, 58,102,204,126,221,243,170, 56,241,255, 0, 26, 48,223, 8,151,175,123,235,164,187,231,191, 74, -177, 34,205,105, 2, 12,112,249, 15, 56,128,159, 24,182, 27, 82,130, 10,194, 3,138,249,194,149, 61,154,145, 4,129,210, 23, 28, -210,138, 18,143,212,236,112,164, 75,118, 47,111,176,182,110, 50,231,221, 89, 83, 49, 76,160,228, 93,145,214,243,171, 95,135, 68, -168,168,172,147,217,211,174,165,190,236, 76, 52, 4, 34,148,100,116,199, 33,233,167, 49,121,246, 34, 67,186,180,229,222, 18, 31, - 75,165,160,228,198, 93,184, 72, 91, 5, 61, 86,183, 9,217, 95, 16, 30,134,190,189, 53, 28,113,184,162, 3,232,194,163,185,197, -116,224,126,106, 94,128,230, 75, 53,201, 77,200,155,121,143, 14, 35, 14, 60,240, 55, 39, 20,220,133,213, 45,180,130, 2,130,126, -177,123,168, 59,129,211,178, 69, 12,106,116,181, 70, 88, 10, 40,131, 85, 80, 82, 28,102, 87, 40,199,142, 93, 47, 92, 35, 37,184, -169, 91,139,170,166,145, 64,178, 43,251, 72,236,169, 61, 69,123,199, 84, 74,124, 49,212,125,148,165,214,174,225,244, 84,213,197, - 48, 85,143,223,149,150,205,184,192,183,181, 29, 47,218, 99, 77,151, 5, 87, 37,176,137,105, 13, 62,168,200,241,152, 64, 95,134, -225, 73, 90,137, 0, 26, 1, 83, 81,147,223,174, 70,226,207,132,141,164,228,226, 1, 69, 42,173, 92, 14, 10, 21, 7, 70,117, 58, -202,111,135, 89, 61, 85,208,140, 91,204,127, 35,228,237, 95, 28,179,101,136,183, 53, 52,187, 49,235,139, 22,148,219, 50, 11,148, - 91, 99, 33,150, 99,137, 49,151,226, 67, 67,161, 37,180, 37,128,149,251, 94,211,128,212, 14,101,117,201,118,150,186, 60, 88,148, -183, 0,221, 74,208,167, 18, 65,193,196,102, 75,148,116, 55,141, 91, 58,253,247,143, 14,152,168, 57,142, 1, 50, 84,205,114,169, - 62, 23, 54, 38,203, 21,203, 68, 37,198, 38, 68,104,234,159, 37,253,174,173,219,132,212,183,239, 4,184,186,173,213,161,181, 45, - 27,202,183, 21, 84,215, 85, 71,110,150, 41, 26,224, 72, 69,203,128,199,212, 49,236, 74,208,195,184, 49,163, 72, 64, 18,159, 55, - 30, 66,181,220, 65, 76, 43,186,165, 79,153,110, 55, 43,172,107,157,193,119, 24, 77,194,104,190,242, 25,109, 69,126, 43, 69,210, -164,212, 84,138,154, 80, 83, 84,109,182,154, 53,214,212,105,127,117, 2, 21,192, 41,224, 80, 14,220, 41, 55, 55, 13,185,196, 56, -135,116,212,123,107,186, 70,202, 46,165,187, 28,241, 2, 74,108,120,221,156,120,242,148,228,120,176,227, 72,141, 24, 58,131,184, -169, 74,147, 26, 41, 64,223,187,161, 82,141, 41, 67,125, 43,100,108,109,115,198, 68,225,211,129, 63, 57,234,224, 43, 37,121,187, -127, 47,145, 39,239, 3,147,155,232,204,116,167,248, 80, 24, 78, 47,138,196,206,209,125, 84,200,209, 81, 22,210,222, 95, 61,185, - 10, 84,134, 88,152,241,115,220, 89, 82, 10,246,251, 83, 74, 94,114,167,176, 36,122, 70,170,239,239,230,101,169, 5,164,157,122, - 64, 28,127,204,126,238, 3,174,180, 86,164, 3,169,199,130,253, 94,220,105,243,141, 95,248,238, 42, 33, 61,108,184, 60,243, 55, - 25,151,139, 19, 83,156,125, 78, 56,171,214, 68, 17, 22,108,174,160,161, 75,139, 17,164,180,201, 64,246, 86,144, 65,237, 26,172, -186,219,175,158,231, 62, 80, 60, 78,233, 61,141,197,173,234, 4,149, 43,154,154, 91, 39,133,128, 1,238,227,235, 57,159,170,167, -104,220,219,199,216,134, 61,142, 49,100,179, 37,169,205,221, 39,172,174, 98, 10,156,122, 28, 4,186,152, 91,203,138,171,135,194, -117, 53, 42, 52,234,163, 65,212,107, 33, 39, 41,222, 94, 58, 64,231,146, 8, 3, 14,149, 5,231, 12,177, 30,192, 42,221,187,220, - 16,134, 8,128, 80,113,250, 62, 93,180, 40,231, 92,102,205,100,198, 29, 83, 22,233,210,254,248, 55,181, 72,109,132, 23,131,211, -148,235,111,200, 10, 79, 97,247, 98, 54,168,247, 43,248,116,252, 28,183, 61,195,165, 36,185,163, 32, 20,162, 4, 65,235, 7,213, -215, 82,153,186, 50, 48,208, 0, 60, 79,167,244, 83,158,225,146, 89, 23,149, 68,189,179, 97,137, 26, 76,184,118,148,174, 75, 45, -210, 67, 86,251,145,142,236,170, 30,218, 34, 58,222,175, 82, 42,216, 61,186, 99,111,178,154, 24,221, 14,178, 90, 28, 79, 82,130, - 83,214, 83,214,149, 26, 91,214, 74,226,253, 33, 79,173, 10, 47,177,106, 57,126,209,109,118,247,140,251,212, 24,150,200, 6,193, -127, 13,165,196, 0,144,156,157,168,146, 18,146, 69, 78,224,194, 19,180,118, 5, 87,187, 87, 31,204, 30,219, 57, 94,194, 92,242, -246,255, 0,248,184,143,159, 58,132, 26,215, 61,161,192, 1,164,159, 93, 65,242, 98,162,229,201,161,204,124,197, 54,107,141,156, -205, 75,143,109, 67, 44, 75,121,166,230,200,113,102,161, 41,240, 82,154, 41, 71,160,246,181,184,218, 55,121,246,237,179, 92,206, -118,168,156,198, 39, 74, 29, 32,122,120, 14,202,131, 37,185,145,197,204,226, 9,245,208, 54,120,121,100,139, 52,251,237,193, 34, -219, 25,216,174,194,182, 73,117, 34, 48,121, 44,161, 8, 10, 1, 69, 41, 74,150,166, 29,245,208,157, 93,203,191,135,184,183, 89, -115,138, 47, 28, 51, 35,177, 13, 84,220, 91,200, 64, 35, 36,166, 21,250,249,145,177, 27, 25,145,103,117, 99,239, 75,157,217, 17, - 93,109, 36,174,123, 86,121, 69, 98,181, 33, 69, 37, 77, 80,215,183,174,174,246,235,231,188,205, 35,156,130, 48,213, 94,151, 15, -211, 76,136,158, 2,140,141, 72, 16,121, 67, 62,119, 31,180,218,189,250,224,212,171, 4,165,220,161,152, 53, 18,174, 42,150,203, - 17, 35, 48, 18, 22, 2, 74,157,107,197, 82,149,212,169, 85, 61,106, 5, 46,229, 45,190,235, 14,137,218,210,210, 8, 43,144, 4, -130,126,106,126, 61,113, 29, 65, 87,231,160, 97, 95,121, 67, 43,188,200,117,251,197,233,200,107, 97,235,148,247,125,228,132,200, -154,232,105,183,124, 18,218,247,248,108,165, 9, 75, 68, 2,160,132, 18,144, 72, 0,208, 77,111,183, 89,177,173,208,220,208, 14, -172, 78, 61,103,143, 5, 32, 28,234,197,134,105, 84,234, 63, 47,151,170,141,102,183,220,215, 26,142,195, 81, 22,235,201,116, 42, -106,226, 38,122, 15,185,193,138, 18,207, 68,251, 32, 41,253,175, 33, 45,214,180, 20, 2,170, 80,208,218,236,236,174,195,139,128, - 85, 69, 76,201, 83,236,238,149,236, 61, 20,213,204,146,176,160, 56, 39, 79, 85, 64, 28,177,151,114, 75, 22,216, 18, 46,215, 11, -154,101, 53,146, 56,235,137, 14,253, 3,113,226,205,101, 13,164, 16,181, 81, 74, 14, 41,117,238, 73,165, 58,212,234,118, 72,236, -100,121, 17,177,161,165,160,118,148,249, 15, 69, 87, 78, 36, 0,106, 39,141, 48,114, 22,179,104,210,144,241, 85,193,113,100, 77, -145,122,184, 41, 11, 42,101,185, 87, 8,235, 74, 90,216, 85,182,149,108,154,145, 66,106, 43,171,219, 73,237, 26,132, 6,234, 1, - 7,251, 15,210, 83,209, 85,179, 54, 71, 46,105,245,212, 75, 63, 35,202,237,115, 81,121, 76,169,108, 60,194, 93,182,199,117, 46, - 21, 82, 53,189,182,130,207,111,236,182,154,154,119,208, 14,205, 89,203,101, 13,195, 12,104, 19, 63, 89, 38,162,235, 45, 64,120, -252,133, 60, 45,188,171,151,219,162, 64,136,236,249,150,209, 26, 45,205,201,111, 54,178,169,183, 5,220, 20, 86,234,119, 18, 74, - 10,146,162,208,233,236,251, 68, 13,202,213, 60,188,189,110,231, 57,250, 71,120,180,117, 0, 0, 3,229,214, 6, 66,137,165, 79, -101, 79,120,199,153, 25, 88,196, 42,220, 25,105,167, 86,182, 27, 36,182, 55, 63, 58,205,225,161,164,208,168,238, 12,150,144,160, - 15, 64,191,140,156,190,227,202, 49,223,135,182, 44,145, 62,246, 39,214,184,211, 47,107,142, 3,167,230,175,121, 39,205,231,190, -227,247,155,122, 26, 48,223,190,221,101, 57, 46,226,243,155,165, 61, 2, 10, 97,165,108,178,146,122, 54, 29, 66, 66,137,234, 84, -107,222,117, 54,195,202,201,118,248, 96,145,193, 99, 13,110, 35, 37, 5,237, 10,153, 28,240,234, 29, 84,207,132,233, 28, 72,205, -199,233, 95,154,160,235, 54,125,102, 55,201, 57,189,151, 7,139,103,186, 75,197,223,180, 92,166,218, 31,118, 44,219,197,206,107, - 30, 12,107,172,146,167, 29, 75,174, 34,104,110, 66,210, 83, 66, 80, 72, 1,106,223,174,153,123,191,137, 44, 29,182,220, 65, 19, -109, 93, 19, 99,115, 34, 6, 61, 82, 68, 9,142, 99,137, 30, 40, 42, 30,128, 53,237,113, 5,170, 84,109, 37,230,137,110,154,219, -123,150,131, 19, 97,208, 26,210, 71,121,160,232,144,169, 61,224, 83, 86, 65,193, 66, 3,136, 47, 31, 55,200,217,189,216,166,185, - 8,170, 59,183,132,100, 75,110, 83,133, 62, 35, 48, 28, 72,113,107,246,182,148,134, 88,170,186,126,202, 71,126,177,199, 98,130, -216,234, 94,232,106, 4,235, 32,132,244,170, 86, 63,196, 80,113,234,165, 8, 25,221,145,185,111, 79,151,107,126, 93,214, 28,155, -180,219, 12, 57,107, 46, 49, 10, 40, 97, 75,109, 65, 4,236, 74,218,117, 53,173, 42, 0, 3,176,117,133,184,237, 47,116, 70, 54, - 59, 75, 93,131,147, 50, 78, 97,122, 19,229,141, 37,142,114,131,237,236, 52,240,196, 60,199,192,196,213, 97,227,155,102, 60,196, -123,124,219,171,110, 93,221, 44,110,155,115,189, 92,130, 65, 37,195, 69, 40,179,227,182,148, 2,104,145, 83,219, 82,116,251,101, -149,157,195, 45,152,251,125, 82,177,192,185,197,216, 21, 40,154, 81, 16,128,112, 57, 86,142,203,117,146, 8,139, 24,154, 93,159, -215,245, 84,123,155,242,132,118,242, 57,109, 89,237, 72, 68,168,211,150,183, 31, 9, 30,232,196,201, 78, 52,223,188, 1, 94,210, -250, 2,207,195,167,185,155, 99,181,109,213,200,183, 1,176,228, 0,255, 0, 78, 7,209,129, 78,218,169, 98,200, 73,113,233,165, - 44,123, 53,188, 89,253,222, 44,152,205,200,187, 91,110,173, 16,165,167,114,252, 85,166, 84,132, 32,146,125,170,152,209,201,244, -246, 29, 99,239,108, 98,148, 17, 25, 65,160,143,161,125,166,152,115, 65, 83,195,252, 62,186,112, 69,151, 41, 89, 4, 43,237,213, -114,157,247, 60,118,205,119,125,166, 9, 75,168,149,113,144,241, 66, 10,201, 52, 82, 92,112, 10,247, 83,213,170,182,219, 36, 90, - 97, 77, 65,197,184,240,224,190,128,135,174,148,161,163,181,126,138,106,216,121, 58,243, 24, 39, 31,115,198,128,245,251, 47,139, -146,166, 96, 90,146,212, 56,150,134,166, 46, 97, 91, 64,159, 17, 9, 90, 1, 9, 61, 61,143,226,213,211, 54, 88,222,232,220, 72, - 45,107, 11, 83,167, 36, 62,207,109, 59,165,170, 79, 64,249,124,244,233,129,158,229,159,113,155,156,217, 46, 8,208,226,228, 25, - 44, 86,156, 86,231,133,193, 19,163, 56,203,235, 7,165, 75, 78,160, 36,118,125, 26,207,237, 29, 83,221,109,176, 71,112, 89, 27, - 19, 0, 9,233, 46, 14,195,208, 27,143,104,232,168,238,115, 38,104, 3,131,147,235,167,165,227,148, 46,156,132,246, 75, 49, 76, -190, 32, 70,180,220,237,214,180,183,255, 0, 87, 2,215, 18, 99, 81,138,148, 79, 93,243, 37, 10,143, 90, 70,153,143,101,101,149, -188, 77, 46,239, 13, 42,122,120,159,152,211,110,112, 14,232,199,233,169,115, 31,200, 46,185, 69,246,200,196, 11, 52,201,151, 35, -139, 93, 32,217,160, 66,101,115, 36,220,100, 88, 90, 76, 72,241,216,109, 1, 78, 45,110, 72,166,212,164, 18, 84,176, 70,179, 59, -150,217,166, 38,177,135,188,233, 89,144, 79,126, 69, 56, 15,163, 60,168,218,221,101, 78,104,158,202, 49, 54, 70,119, 62, 45,158, -193,141, 96,121,149,243, 47,201,111, 87, 75,125,130,199, 99,197,230,220, 46,115,175, 88,195,107,157,121,101,136,236,176,167,164, - 46,207, 28,161,217, 13,161, 39,195, 74,137,112, 0, 43,169,214, 60,166,233,101,106,135, 29, 45,115, 70, 4,146,136, 10,117,160, -199,136,165,197, 1,144,144, 1,196,252,213, 22,193,196,121,135, 36, 93,139, 24,198,112,124,226,251,116,201,151,120, 93,186, 21, -150,193, 58,235,112,190,201,138,144, 46, 6, 59, 44, 52,227,178,220,135,224,167,222, 10, 1,216, 80,119, 82,130,154, 27,123, 18, -100,107, 88,210,112, 40, 0, 42, 83,163,177,106, 68,125,236,129, 39,133, 63, 97, 89,115,213, 97,239, 67,141, 96,201,204, 56, 86, -139,213,201,167, 99,218,100, 59, 16,218, 44,158,255, 0, 26, 68,182, 86,148,109, 83, 76,251,179,232,146,248,246, 82,164, 44, 40, -130, 14,162,190,204, 49, 30,198,169,118, 42,156, 9, 10,123, 1,195,160, 37, 50, 87, 82, 39,200,103, 86,118,215,229,119,144,213, - 7,142, 82,252, 60,141,251,111, 55,227, 88,197,235, 21,201,109, 54, 43,197,223, 23,133,115,185,178,210, 45,214,153, 18, 25,183, - 45, 62,254,227,108, 58, 21, 26, 48,117,101, 33, 59, 2,200, 26,110,230,194,234,221,176,233,140,185,175, 13, 71, 52, 56,142,250, -144, 48, 25,132, 82, 2,148, 33, 22,164, 24,158,192, 59,185,140,208,241,225,149, 50,224,121, 28,206,185,183,154,248,215, 10,198, -241, 75,180,252, 10,233,200,143,241,235,124,153, 62,193,122,135,197, 49, 57, 18,100,251, 94, 63, 17, 82,231,187,108, 67,204, 50, - 46,210, 1, 41,114, 56,116,116, 66,153,241, 9,104,239,121, 91,122,188,217,118,155,171, 91, 97,166,226,230,226, 40, 4,154, 92, - 27,160,185,204, 46,213,165, 64, 87, 53,185,106, 26,138, 5, 20,112, 50, 87, 35, 90, 51, 40,168, 83, 52,232,162,207,240, 7, 48, - 79,183, 55,142,220, 48, 28,163, 27,150,213,165,177,123, 86, 81, 96,153, 96,105, 54,153,206,148,195,150,164, 73,105,181, 22,230, -132,182,136,230,132, 56, 74,182, 86,135, 92,150,241,238,218,220,101,157,175,110,157, 39, 22,144,139,145, 56, 96, 14, 40,114,194, -153, 49,189,167, 89, 4, 12,241,194,164,104,126, 80,185,138,239,104,227,156, 61,188, 99, 32,102,254,246,125,106,225,149,101,215, - 43, 45,210, 46, 57,136, 71,186, 92, 30,139,111,110,252,243, 80,100,136,194, 55,222, 76, 69, 11,113,123,212, 5, 67, 74, 81,166, -172,108, 68,251,205,227,219, 20, 78, 12,238,135, 18,210, 26,217, 28, 90, 10,148,238,169,196,132,193,125,106,100,111,184,114, 6, -156,192, 43,254, 24, 82, 78, 63,229,135,151,238,156,117,202,153, 14, 33,139,221,178, 73,204, 94,113,203, 44,219,102, 63, 97,185, -221,239, 23,180, 79,126,253, 30, 52,139, 67, 81,224,184,153,177, 96,253,195, 40, 76,123,122,124, 53,128, 8, 39,126,216,246,219, - 84,251,187, 31, 35, 24, 72,138, 64,208,128,146,224, 74,185,192, 1,136,212,199, 2,122, 61, 53, 44,219,184, 55, 37, 79, 94, 43, -245, 84, 77,140,113,158, 77,144,205,199,226,218,236, 89, 52,185,153,157,162,225,120,181,189, 10,201, 46, 75,178,236,184,252,151, -225,203,153, 20, 33,178,167,227,198,122, 51,236, 56,242, 1, 72, 91, 43, 4,213, 10, 2, 60,206,146,220,144, 35,113, 8, 75, 64, - 4,146, 2,229,211,139, 78, 89, 16, 71, 10,173,116,110,121, 8, 15,203,244,210,173,235,203,247, 38, 73,187,199,197, 88,226,190, - 79, 25, 54, 69,143,195,191,196,179, 55,130,221, 62,246,149,102,158,166,226,125,225, 26, 48,138, 95,122, 59,147, 28, 12, 37,212, - 36,167,196, 82, 16, 21,184,208,206, 22,151,176, 22, 1, 11,201, 69, 77, 46, 82, 9, 69, 68, 84, 82, 49,162,137,146, 56,133,105, -234,192,211,101,158, 45,204, 44,110,225,248, 84,236,115, 43, 77,254,252,253,213,200,150,249,118, 73, 76,220, 37,192,198, 93,152, -221,193, 73,101, 72, 14, 47,220, 23, 25,104,144, 66,126,140,178,226, 85, 66,133, 0,212,166, 89,222,239,217,144, 1,114, 4, 42, -116,247, 74,116,161, 15, 94,130, 58,168,165, 5, 79,116,175,203,234, 52,254,196,248, 83, 42,207, 93,181,205,177,226, 25,115,182, -156,134,239, 27,140,151,156,194,198,229,200,199,196,217, 44, 69, 68, 59,113,156,219, 42,140, 36,151, 17,181, 45,135, 55,157,224, - 83, 85,119,194,230,198, 19,113, 20, 79,116,122,151, 6,146, 11,220, 64, 64,122, 93,169, 64,204,240,167, 33,133,247, 26, 64, 5, - 50,234,163,240,184,119,147, 68,143,188,209,195,220,149, 49,188,127, 30,155,145,228, 49, 85,129, 93, 86,197,155, 27,152,215,135, -108,153, 44,136,167,221,154,125, 16,230, 22,157,112, 4,148, 36, 45, 36,138,157, 91,203,180, 93,220, 49, 76,111, 70,150,184,247, - 93,128,207, 28, 50, 35,143,109, 52, 45,228,140,147,164,245,225,194,163, 77,214,111,126, 55, 31,119, 96,214,208, 47,197,157,200, -241, 27, 64,144, 84, 0, 85,122,111, 4,215,167, 96,167,103, 93, 82,252, 76,218, 58,252, 68,246,212,125, 61,229, 92, 22,168, 93, -206,235,122,200,242, 8,153, 42,208,181, 91, 44,158,237,105, 66,168,106,169,109,164,149, 40,145,208,251,106, 39, 93,113,250, 32, - 96,141,167,188, 71,177,105,173, 13,137,154, 56,156,105,237,200,110,219,237, 16,177,188, 66, 58, 16,221,194,249, 75,182, 71, 53, -105,162,219,133, 33, 21,105,165,117,168,217,213, 68,122, 72,209, 88, 48,198,204,242, 52,196, 44, 46,212,254,140,170, 32,147, 12, -221, 97,202,131, 22, 63,211,175,221,163,198, 90, 5, 16,222,197, 3,185, 70,189, 2, 91, 73, 86,164,198, 94,233, 91,164,224,165, -123, 18,167, 70, 52,149, 61, 20,130,108, 74,152,228,139,163,137,164, 88, 17,132, 86,187, 82, 60, 6,155, 45,164, 39,175,106,136, -233,240,234, 77,230,224, 32, 33,173,205,206, 65,219,250, 6, 52,251, 74,247,125, 38,155, 54, 12,121, 50,110, 47,120,205,132, 52, -191,122,113, 30,205,106,160,146,149, 40,117,232, 16,142,131, 82,110, 46, 60, 40,201, 25,129, 66,105, 74, 0, 43,123,117,177, 89, - 70, 86,201, 83,169,143, 2, 69,225, 54,232,235, 80,163,113,161, 70, 5, 42,112,245,167,178,219, 93, 53, 30,204,252, 60, 45,103, -218, 56,158,211,250, 77, 34,121,124, 22,145,197, 22,153, 89, 44,100,100, 23, 75,194,237,238, 45,168,137,151, 36, 67, 37, 70,174, -193, 83,165,176, 65,220, 63,101,186,157,104,225,156, 64,196, 57,212,168,100,240, 26, 3,179,250,105,196, 44, 81,147, 22, 21,170, - 33,121, 33, 48,209, 62,116,197, 44, 37,111,137, 40, 65, 67,105,161,246,122, 40,212,252, 0,118,106,183,226,220,249,117,187,221, - 93, 32,122,212,154,143,241, 10,167,138,212,105,112,135, 61,213, 27,125,189,162,196, 56,237, 42, 67,202, 30,202, 92, 89, 4, 80, - 10,212,236, 21,248,245, 48,200, 1, 14,118,117, 46, 57, 64, 10,236,205,107, 41,181,197, 31,119,199,109, 65, 12, 67,142,135, 86, -174,139,125,199, 84, 10,146, 13,123, 61,145,211, 82, 99,153, 24,122,233, 33,250,251,199,166,142, 91, 32,190, 19, 14, 60,128, 84, -251,242, 12,233, 68,116,216,220,148, 13,189, 61, 27, 72, 26,105,183, 2, 61, 78,234, 32, 83, 82, 73,137, 35,161, 5, 56, 37, 88, - 4,187, 80, 97,214,199,142,211,247,152,228, 30,170,241,208,235, 43,104, 14,189,192,157, 70,130,227,198, 49,233,201, 62,117,164, -137,139, 61,149,179, 56,252, 91,150, 35,101,130, 74,125,241,121, 55,186,146,123, 82,195,236, 70, 81, 29,190,150,129,213,132, 83, -152,228,111, 69, 23,137,165,228,252,184,210,125,240,152, 23,187,211, 54,207,110, 43,215, 38,227, 4, 39,166,245,178,202,215, 94, -222,192,227,244,213,132,147,135,187, 81, 57, 31,106, 83,145, 15,217,161,226, 41, 2, 12, 85,198,185, 70, 46, 52,164, 62,236,117, -183, 17,183, 19, 66,149, 60,232,108,186, 65,236,220, 74,200,212, 89, 39,241,120,211,138, 52, 32,225, 79,248,207, 74,240, 98,135, -137, 16,109,178,223, 74, 91, 6,173,189, 39,121, 85,105, 94,229,245, 63, 22,171,163,107, 99, 38, 65,153,255, 0, 10, 15,147, 64, - 13, 29, 21, 43,224,242,167, 90, 16,171,138,157, 91, 73,113, 66, 36,117, 41,116, 66,214,170,168,244,236,162, 19, 85,124, 90,139, - 60, 45,157,154,141, 71,150,232,146,128,246,211, 89, 25, 91,236,170, 67,110, 59, 57,231,221,155,224,194, 91,114, 66, 26, 66,208, -149,158,181, 74,138,128, 10, 36,210,157,218,128,253,181,174, 58,184, 39,203,230,169,204,184,120, 3, 28,169,121,156,194,249, 22, - 83,202,102,100,212, 51, 58,218,244, 81, 41,167,200, 64,125,180,109, 9, 52, 35,111,210, 13,128,142,253, 54,253,186, 34,142, 32, - 97,138,124,186,168,155,114, 92, 16,208,184,206,123,117,137,122,154,182,110, 82, 78,201,176,208, 22,151,138, 55, 55,111,101,207, - 13, 38,132,116, 74,220, 81,210,167,176,140, 52,224, 48, 95,105,168,119, 76,241, 67, 87,130,252,255, 0,162,148,166,114,117,229, -203, 85,218,211, 9,249,205, 93,239, 14,198,138,137, 1, 95, 66,197,173,134,203,142, 56, 85,184, 41, 38, 61, 84,164,247, 18, 70, -161, 91,237, 17, 61,204,123,128, 45,106,146, 58, 72,192, 15, 79,215, 86, 31, 16,230,166, 56, 37, 89,110, 48,228, 88,184, 46, 61, -100,181, 55, 2,211, 46,229, 30,193,112,188,180,252,182,252,111,187,131,142,184,136,173,167,168, 86,245,165, 41,241, 8, 34,160, -144,106, 13, 53, 69,189,108,255, 0, 28,237, 79,115,128,113,200,113, 63, 44,170,162,238, 71, 94,185, 28,226, 24, 6, 67,137,166, -181,215,144,178,172,134, 82,110, 87,117, 91,221, 93,192, 92, 34,197, 74,109,209,212,166,159,113,180,208,135, 22,133,184, 3, 73, -117, 53,162,189, 90, 77,182,215, 29,180, 90, 88,184, 20,196,156,122,106,124, 30, 28, 35,186,190,179, 77,123,182,124,109,217, 4, -168,177,165, 59,247, 53,147,220, 26, 82,210,191,101,196, 91,234,218, 91, 0, 80,109,124,184,178,175, 85, 53, 34, 77,189,179, 18, - 83,129, 3,180,230,106,218, 27,178,214,128,184,147,243, 85,167,107,150, 92,152,136, 67,126,197, 66,110, 76,116,163,199,219,254, -162,184, 80,212,162,170,170,167,194, 67, 74,233,233, 93, 53,144,110,205,224, 68,226, 70,106, 87,173, 72, 9,233, 62,193, 83, 13, -232, 35, 14,207,152,125, 20,230,182,242,100,233,247,203,140,169,115,139, 48, 30,187, 4,218,194,156, 10, 84,120,240,148,134, 98, - 32,247, 5, 45,229, 40,154, 15,154, 62, 74,179,182, 54, 54, 6, 53,170, 88, 26, 79, 89, 42, 79,179,219, 75, 23,154,138,174,127, - 71,233,164,120,114, 26,153, 6, 85,230,209, 40, 49, 13,153, 49,241,251,150,213, 4,181,247,108,181, 72, 15,165, 52, 80, 35,196, -136,209,104,237,235,212,245, 4,131,171,231, 66,232, 97,108, 47, 10, 11,181,143,214, 0,103,254,236,105,231, 95, 0, 1, 29,158, -191,209, 66, 99,185,213,210,254,213,149,171,147,226, 93,186,213, 54,231, 46, 68, 45,137, 75, 82,126,142,168, 73,108, 81, 33,180, -169,194,162,218, 69, 42, 18, 13,105,168,167,110,100, 78,112, 24, 23, 1,143, 71,233,224,189,102,163,178,255, 0, 81, 0,244,208, -147,115,168,247,135, 49,235,155, 76, 66,143,105,199,161,200, 75,112, 34,165, 11,118, 81,149, 85,185, 77,221,129, 68, 16,106,123, - 43,235,212,193,103,240, 80,201, 3,151, 92,142, 14,212,114,195, 46,218,119,227,199,116, 97, 68,177,124,238, 13,213,115, 99,176, -219,232,183,184,171,130,231, 49, 20, 37,137,211,152,182,130,143, 13,183,254,112,223, 32, 37, 64,164, 0,144,160,161, 85, 10,138, -201,246,167,147,168,145,134, 75,146,230, 9, 31, 44, 71, 69, 25,220, 88,218, 87,153,201,239,194,196,239,201,180, 57, 26, 37,238, -225, 58,202,101, 63, 17,177,224,218, 45,171, 66,252, 24,241,168, 70,193, 26, 38,212, 71, 64,249,181, 83,159, 61, 85, 17,134,211, - 27,230,140,188,234, 29,236, 14,101, 51,113,237, 57,250, 6, 66,144,237,223, 67, 73,111,162,147,239,183,230, 95,180, 54,234,100, - 36,183,102,184, 90, 46,119,103, 67,117,126,108,219,123,177,154, 68,116,146,163,236, 53, 66, 84,158,206,162,163,175, 71, 33,181, -124,108,115,193,239, 63, 80,104,224, 3,147, 30,223,170,163, 63,113, 15, 32, 84,127,150,223, 83,144, 70,201,221,240,211, 37,119, -204,130,210,245,165,162,208, 8, 68, 88,110, 23,149, 30,149, 52, 47, 60,182,135, 78,212,182,173, 89,109, 22,255, 0, 15,224,183, - 32,192,229,235,193, 1,245, 47,174,144,251,241, 35,143, 95,205, 70, 45,153,116,121,146,154, 23, 71, 11,115, 39,219,237,169,140, -219,125,166, 66,150,136,232, 80, 77,107, 86,155,121, 69, 62,178,163,167,188, 29, 1,197,188, 63,196,250,211, 26,104,222, 23, 52, -175, 77, 9,153,226, 22, 11,138,102,204,129, 17,180,218,109, 55,149, 53,225, 14,187, 30,148,250,119, 54, 64, 81,169,241,118,162, -135,182,135, 74,131,121,150, 41, 92,215, 59, 18,209,234, 68, 7,212, 9, 53, 8,161,113,119, 14, 20,132,254, 25,134,181,113,137, - 31,193,118,116,232, 19, 97, 57, 37, 78, 43,127,132, 27, 71,138,224, 34,189,119, 41, 8,233,233, 62,154,233,231,239, 18,187,188, -226,141, 63,165, 62,127,101, 48, 0, 10, 70, 84,209,201,120,209,171,140, 43, 21,193,150, 22,151, 97, 67, 98,124,196,238, 5, 79, - 72,191, 74, 91,168, 33, 21, 21, 46,161,154,159, 66, 40,174,253, 73,135,152, 5,179,196, 45,235, 61,154, 80, 99,233, 52,235,116, -198,213, 52,212,200,184,242,211,145, 92, 45,240, 94,134,195,150,184, 95,122, 46,123,173, 69, 87,141,247,211,236,190,252, 88, 41, -146, 22,149, 54,133,132,178,183, 41,219,184, 16, 65, 78,180, 28,167,206,247, 92,191, 47,142, 36, 46, 99,152, 86, 39, 98,194, 10, - 2,253, 63,230, 25, 3,212,133, 65, 74,121,215,140,108, 38, 16,208,186,135,127,136,195, 46,202,144, 44, 56, 2,109,246,152, 73, -101,113,200,148,136,104, 50,149,185, 73,134,130,226,156,101, 14, 5, 45,100,168, 20,132,154,158,218,122,117,149,220,249,128, 93, - 63, 81,105,110, 37,218, 87,138,144, 83, 1,128,197, 58,170, 20,172, 87, 2, 14, 11,245, 86,185, 6, 35, 10, 85,237,235, 52,106, -188,155,101,154, 66, 25,122,148,109, 49, 25, 41,152,247, 93,223, 57,107,115,182,157, 67,116, 29,186, 84, 59,187,228,135,196,118, - 1, 80, 15, 74,124,187,106, 41,143, 18,157,190,159,240,165, 21,113,212, 90, 53,121,153, 9, 46, 71, 99,107,142,173, 72, 9, 13, - 59,118,247,185, 12,181, 78,210,165, 54,201,233,221, 78,189,186, 18,239, 5,160,198, 79,125,195, 87,177,173,249,200,246,209,178, - 28, 17,112,202,153,217,111, 14,200,185,102, 18,238,214, 24,130, 60,104,240,230,221,152,157, 66,217,102,114,131, 33, 78, 36,131, - 81,238,245, 64, 52,239, 87, 77, 73,179,223, 62, 18, 22, 55, 81, 80,229, 94, 61, 94,220,125, 84,251, 37,108, 77,160,111,220, 79, - 50,219, 6, 59,235,142,191,124,200, 78, 48,167, 24, 82,106,239,133, 20, 38, 91,202,235,215,219,149,177,144, 63,132,233,193,204, - 2,103,150,175,186, 10,158,212,255, 0, 26, 33, 56,203,128,167,109,199,142,238, 81,249, 10, 91,229,128, 27, 86, 64,197,202, 42, - 84, 40,218,152,113,189,205,164,145, 80, 54,180,218,170, 79, 64, 59,117,158,219,183, 85,177,110,175,120,198,135,183,141, 34, 89, -218,224,230,142, 43, 78,219, 13,181,167,238, 55, 88,247, 72,169,102, 53,234,230,212,246,101, 42,158, 24,131,140, 51,115, 45,198, - 2,167,106, 86,252,230,130,136,236, 32, 10, 86,154, 63,136, 49,143,217,149, 33, 23,210, 26, 9,246,122,105,185, 30,177,128, 56, - 82, 20, 44, 2,211, 46, 77,211, 36,188,161,182, 31,114,195,127,178,218,163, 38,137, 76, 56,150,216, 46, 9, 10, 77, 77,106,164, - 68,113, 36,247,149,215,183, 78,217,111, 18, 91, 49,208, 52,169, 4, 41,237, 58,191,249, 15, 69, 57, 36,136, 16,113, 31, 77, 2, -229,138,200,151,114, 87,156,113,201, 33,120,140,153,209,160,168,237,138,212, 71, 93,101,150, 91, 74,107, 66, 73,118,164,159, 71, -193,168,247, 27,132,242,152,144, 99,226,247,143,251, 92, 79,213,233,166, 33,106, 55,163,235, 81, 79, 56,182,171,101,167, 12, 22, -203,116, 20, 34,232,239,222,104,158,242,254,185,105,142,150,165,175,165,123, 12,166,169,240, 80,119,106,182, 75,185,159,118,255, - 0, 17,202,192, 35, 65,192, 19,172,124,201, 65,200,230, 47, 95,213, 78, 28, 98,230,244, 8,176, 93,176, 74, 92, 59,165,166, 68, -152,145,231, 48,178,204,168,238, 93, 74, 82, 22,218,210,160,166,212, 86, 74,234, 13, 65,161, 7, 78,204,215, 40,123,186, 99, 61, -136, 75,189,134,144, 29,164,168,235,249,171,161, 92,153,231,242,205,146,218,178,116, 97, 60,119,116,196,115,107,174, 49, 5,238, - 41,202, 45,230, 36, 55,184,243,147,185, 78,234, 47, 28,207,119,111,221,212, 20,132,229, 15,248,214,155,127,135,213, 48,153,142, - 22,134,200, 40, 71, 67,186,230,214, 22, 76, 24,210,215,104, 86, 16,157,215,189, 93, 41,255, 0,113,192,127,164, 12,178,171, 95, -230, 77,112, 40, 16,240,234, 39, 23, 31, 78, 67,170,164,158, 71,243,179,103,157, 7,146,165,113, 87, 31,207,227,251,229,163, 44, -179,216, 56, 34,239, 11,221,163, 61,198,119, 30, 67,188, 53,155,114, 44,132,173,151, 10,222,251,235, 41,128,204,107, 97, 31, 87, - 1, 78, 50,173,181, 9,213, 76,188,253, 21,202, 24, 24, 88,247, 71,174, 51,135,115, 83,153, 36,171,214, 92,129,157, 12, 80,105, -185,183,118,141, 65,129, 8, 33, 58,148,171,189,163, 14,170,124,114,255, 0,155, 94, 27,185, 59,203, 56, 11,252,117,153, 96,248, - 37,213,236,175, 26,227, 85, 98, 86,235, 85,214,102, 31,199, 89, 83,143, 95, 50, 43,114,154,145, 54, 27,107, 23, 78, 65,177,219, -223, 97, 72,119,216,137, 50,226, 42, 86, 67,111,196,119, 56, 89,239,208, 73,108,198,190, 54,160, 12,210,133,204,105, 13,149,205, -196,140,228, 12,236,105,127, 28, 11,147,110,172, 46, 61,210, 1, 24,101,128, 42, 79,173,192,122, 22,171,222, 33,230,143,137, 49, - 11,126, 25,155,184,121, 70,126, 75, 3,129,120,211,129,239,248, 44,140,118,221, 27, 14,106, 46, 7,145,219, 47, 47, 93,205,192, -100, 46,191, 49,216,238, 66,150,171,124, 53,219,217,255, 0, 89, 40,121, 79,160, 54, 91,118,206,195,127,130, 29, 5,186,202, 70, -214, 22,160,210,141, 32,234, 7, 81, 37, 16,105, 26, 70, 56,174, 8, 91,110,228,214,244,146, 26, 1, 8, 19, 53, 37, 87, 30,172, - 7,109, 91,174, 58,243, 47,198,209,241,140, 67,204, 28,187,131,246, 73, 88,118,105,196,217, 38, 77,103,185,223,177,235,164,254, - 67,195, 56,219,152, 21,150, 68,177,216,109, 86,252,238,108,187, 93,234, 61,150, 98,100, 72, 84,235, 43, 72, 33,137, 1, 79, 53, -239, 40,118, 93,249,223,225,138, 38, 93,149, 86,190, 50, 91,221, 37,205,100,250,131, 90, 4,152, 56, 3,168,171, 64, 64,113, 10, - 53, 76, 23,204,106, 61, 81, 8, 60, 49, 1,234,128,106,205, 58, 71,167, 28,105,197,147,204, 23,151,140, 23,128,238,254, 94,177, -124,199,155, 77,146,205,112,185,114, 20, 62,121,184,226, 54,139,223, 33,196,204,114, 75,222, 63, 41, 86, 24,214, 41, 57, 74,224, -166,219, 29,171,100,135,146,243,119, 68,148,201,145, 33,105, 96,133, 41, 78, 80,221,111,144,238, 86,223,203,238,154,247,177,224, -227,160, 14, 45,238,232, 18,123,168,213, 7, 89, 58,156, 84,112,168,142,221, 34, 45,240,187,200,120,166, 60, 48, 69,203,211,153, -202,157, 94, 99, 60,248,113, 63, 33,115,207, 3,243, 37,181,206,108,198,223,226,126, 87,151, 38,203,198,240,240,251, 45,246,211, -156, 96, 35, 51, 70, 89, 50,229, 42, 81,203,109,141,217,231, 59, 1,213,199,118, 50, 99,203, 67,178, 24,105,192,242, 80,186, 71, -179,134,254,199,112,159,226,228, 50,177,145,144,237, 40, 59,192, 74,231,140,157,129, 37,195, 80, 66, 14,145,222,199, 0,221,206, - 57, 94, 37, 87, 0, 14, 72, 49,239, 19,211,129, 43,142,121,103, 65,102, 94, 98,184,251,153,113, 53,219, 50,123,183, 42,112,150, - 89,156,229,252, 96,130,190, 32,194, 45, 87,252, 63, 31, 99,203,239,223,126,224,229,162, 29,199, 41,180,201,181,153,176,175,145, - 82,235, 41,144,230,201, 81, 29,150,151, 20,185, 42, 13,214, 77,204,182, 19, 54, 64,232,222,199, 63, 71,184, 20, 0,194,253, 41, -251, 70,166, 14, 11,195, 82,187, 18,228, 13, 63,118,138,102, 59, 86,160,112,200,116, 42, 38, 35,135,183, 26,148,173,222,112,120, -174, 95, 32,158,108,203, 49,206, 76,198,242,204, 71, 25,243, 21,131, 68,194,241,155, 29,163, 32,179, 57,100,229, 44,211, 60,204, - 97, 92,228, 93,229, 94,237, 15,182,244, 88,217,202,217,154,210, 45,219, 93, 83, 41,125,181, 39,113, 97, 17, 29,205,214, 87, 91, -156, 87, 18, 54, 86,150,199, 35, 3, 67, 90, 90,124, 71,186, 77, 69,250,129, 81,171, 73, 26, 51, 4,175,121, 42, 67,119,136,100, -211, 33, 4, 20, 56, 4, 57,147,197, 71, 79, 69, 85,151,124,208, 99,215,110, 2,243, 27,132,202,123,144, 63,188,220,141,151,121, -142,188,217,175,115, 81, 13,118,200,246, 94,108,203, 56, 23, 51,135, 10, 76,143,189, 85, 45,181, 67,183,113,133,246, 52,198,218, -105,104, 15,201,103,105,113, 46, 72, 91, 50,238,249,166, 15,134,146, 29, 47, 47,148,201,167, 47,117,207,128,227,142, 72,199, 46, -126,243,115, 82,140,191,112, 97,141,205, 66,164,185, 61, 37,135, 30,221, 39,214, 58,210,119, 62,104, 56,139, 42,198,249, 39,148, - 57, 88,102,118,215, 39,230, 83, 48,222, 14,184, 99,114,236, 23,174,111,181,226, 92,235,142, 64,179,114,116,167, 44,110,222, 83, - 70,146,197,137,182,109,234,151, 37,166,212,237,210, 66,219,115,127,142,131, 97,117,184, 91,220, 67, 35,229, 46,110,167, 22,176, -141, 37,224, 72,208,217,157,165,120, 6,144, 20,162,189,199,166,158, 23,209,189,165,206,226,228, 25, 42, 17,222,193,114,195,219, - 77,206, 30,243, 99,199, 28, 35,200, 28, 53,145,223, 71, 42, 93,115, 30, 40,226,204, 95,133,238,124,119, 96,199,237,206,241,181, -254, 53,202,250,237,226,227,124,141, 61,251,252,121, 5,245,166,122,159,102, 2,173,161, 11,184,161,169, 38, 98, 16,173,173,195, -131,152,109, 44, 31, 12,242,234, 72,226, 32,181, 6,157, 33,225,218,151, 82,168, 24,134,233,247,194,234, 20,139,125,197,145, 22, -187, 21, 29,212,225,154,174,125, 28, 19, 62, 52,227,242,219,156, 66,186,240, 55, 51,221,178,188,171,238, 59,244,110, 72,243, 95, -153, 97, 60,131,151,223,237, 47,217, 45,139,230,124, 29, 56,246, 64,114, 11,115,185,165,162,245,117, 93,192, 71,140,205,188, 53, -110,150, 4,165,175,195, 68,181, 45,232,171,151,181,238, 81,220,219,147, 35,180,185,100,120, 46, 45, 64, 37,141, 8,115,124, 64, -226, 72, 64, 17,174,239, 42,106,197,180, 34,187, 99,218, 84,227,222, 32,146, 62,211,113, 81,168, 18,188, 48, 56,244,226, 43,156, - 13, 96, 8, 66,167, 60,167,158,240, 36, 98,246,169,172,171,198, 59,253,206, 27,147, 25,112,127,165,224, 62,133, 83, 92,176,238, -131,194, 14,255, 0,247,139,125,160, 85, 33,159, 0, 23,129, 63, 49,170,169,140,127,130,215,246, 47,241,148, 30,223,170,249,195, -235, 63,135, 91,203,143,252,230,103,251,191, 70,116, 82,123,195,178,145,185, 63,252,107, 51,234,255, 0,150,185,246,159,182,126, - 94,143, 86,174, 97,203,143,189, 69, 7,187,254,234, 78,198,191,144,220,126,205,245,147,126,175,237,191, 82,223,230,253, 85,211, -208,126,245,249,251,191, 79, 10,118, 79,123,209,244,211,106,103,242, 70,254,111,219, 79,217,254,163,177, 63, 89,255, 0, 71, 81, -229,253,236,127,238,207, 60,184,117,253, 20,244, 25, 59,176, 82, 29,143,249,172,238,207,228, 78,255, 0,161,243,127,234,253,127, -174,154,157,121,251,131,250,195,231,227,244,210,227,203,211, 77,107, 79,217,187,190,166,227,245, 31, 63,234,155,249,159,197,250, -171,167, 99,253,235, 51,247,199,211,236,164, 59,247,135,229,198,155, 48, 62,196,223,216,126,204, 62,163,253, 23, 63, 35,235,213, -164,249,113,247,143,209,236,163,155,222,227,157, 31,107,237,202,249,255, 0,203, 45, 93,159, 87,216,215,230,244,250,181, 16,253, -143,214, 63, 49,166,155,145,237, 52,157, 23,237, 13,125,151,234,110, 95, 59,253, 35,243,189,126,141, 57, 55, 28,248, 81,143, 78, - 98,144,239, 63,205, 44,223, 98,251, 60, 79,169,236,237, 79,215,250,255, 0, 86,167, 12,184,240,169, 17,123,174,206,140, 15,241, - 99,191, 85,246,120,191, 55,234,190,177, 31, 55,248,127,119,213,164, 93,126,232,231,145,250,114,162, 31,187, 29,180,246, 87,243, - 4,125, 87,243,155,207,111,213,253, 83,125,190,191,215, 77, 49,203,222,228,127,168,223,152,210,101,227,232,166,198, 47,219,103, -236,255, 0, 21, 47,183,255, 0,160, 29,159,171, 86,243,228, 59,105, 82,113,236,166,123,127,205,103,246,255, 0, 53,127,235,190, -119,206,111,242,248, 41,163,147,135,235, 31,154,164, 59,221, 29,148, 97,255, 0,230, 49,126,111,242,200,159, 85,243,254,115,191, - 87,249,118,233,177,149, 33,153, 30,223,170,156,127,255, 0,175, 53,217,246,187,159,206,249,255, 0, 90,126,127,241,105,153,242, -244, 81, 59,247,158,170,150,167,127,135,172,255, 0, 83,246,219,223,217,126,111,212, 53,249,255, 0,115,213, 93, 51, 15,238,153, -158, 85, 0,123,199,209, 80,235, 63, 62,205,217,246,251,135,111,206,253,142,223,226,244,122,180,236,153,122, 42,209,217, 59,176, - 83,238, 55,242, 43,127,212,253,130, 71,250, 95,110,127,231,255, 0, 31,167,215,168, 82,126,241,190,159,154,163,253,163,219,244, - 10,102, 98,191, 58,231,245, 31,109,255, 0,173,251,111,236,252,207,215,167, 47, 56,126,181, 73,184,200,118, 82,155,223,111, 87, -214,127, 36,119,230,124,254,200,255, 0,159,247,189, 90,141,105,251,191,247, 59,231, 52,163, 79,196,125,180,127, 49,255, 0, 11, - 90, 62,175,179,230,167,255, 0, 55,211,235,211,119,249,179, 44,248,250,114,168, 71,143,105,169, 48,127, 40,195, 62,207,245,151, -111,159,243,254,190, 55,111,241,254,247,171, 85,211,253,175,163,179,229,233,164, 59, 35,159,200, 83, 11, 35,250,155,175,242,174, -219, 79,213,125,127,106,254,179,248,180,184,242, 29,166,166,219,251,205,247,184,212,144, 62,211, 63,237,159, 99,188,253,159,183, -230, 53,249,191,232,237,213,109,247,254, 44,121,123,205,249,248,245,212,136,179, 25,211,157, 63,202,154,254,101,246,143,255, 0, - 93,243,213,217,255, 0,121,251,191, 30,170, 96,253,244,190,238,109,249,135,178,165, 51, 33,217,244,212,131,128,255, 0,242,185, -207,174,254,105, 27,253, 15,169,155,245,255, 0,197,255, 0, 74,186,141,185,254,253,249,228,207,156,229,213,211, 71, 46, 99,183, -232,162, 22, 63,229,206,125,167,249, 94, 79,252,183,231,125, 81,250,207, 95,167,213,183, 77, 93,123,255, 0,238,103,253, 84,196, -126,255, 0,163,232,164,184,223,225,119,126,103,217,174, 31, 85,255, 0,240,238,253, 71,240,254,239,199,167, 36,253,243,115,205, -191, 61, 31, 17,217, 73,248,103,219, 32,127, 49,255, 0, 4,229, 31,203,251, 62,107,189,159,197,251,254,173, 72,147, 39,229,239, - 12,254, 94,170,105,217,158,223,163,228,148, 70, 23,205,200,127,154,255, 0,138, 45,125,159,103,251, 60, 62,223,250, 30,173, 70, - 62,252,121,123,167,183, 51,242, 61,105, 77,125,150,246, 83,202, 87,248, 54,247,246,174,219,247,111,215,125,186,213,243,255, 0, -143,247,189, 90, 97,222,244,125,163,179,221,119,179,163,173, 40, 71,251,211, 73, 78,125,153,175,173,251,117,135,230,253, 95,217, - 39,125, 87,253,239,163, 82,225,200,252,186, 61,148,136,114,244,210, 13,175,252,123,140,124,239,153,106,251, 71,212,253,182, 63, -229,240, 83, 68,239,252,119,124,184, 83,199,220,119,111,209, 86, 23, 30,255, 0, 12,223,126,163,255, 0,155, 48,254,209,243, 63, -251,119,218,127,232,127,222,109,214,107,120,255, 0,200, 31,253, 47,203, 60,134, 93,125, 29, 75, 78,143,116,250, 62, 93,148,210, -198, 62,213,153,125,151,235,220,251, 95,243,111,170,153,243,127,233,122,246,105, 91,191,238,225,207,223,110, 89,102,223,103,233, -168,252, 41,111, 38,254,105, 47,237, 63, 84,143,177,253,135,249,108, 47,169,255, 0,234,191,238,233,169, 27,103,251, 56,123,222, -247,188,125,238,175,165,106, 4,156, 61,239, 77, 71,182,111,240,197,239,249,183,248,226,193,246,223,173,251, 51,159, 93,252, 94, -143,251,189, 91,223,126,253,159,186,253,203,189,222,209,151, 87,211, 73,245,231, 78, 6,126,193,106,249,221,182,127,155,246, 95, -180, 68,250,207,227,253,239, 86,168,167,204,255, 0,187,183, 39, 84,216,179,227,157, 28,137,254, 38,201, 62,103,248,118, 47,206, -250,207,179, 35,183,248, 63,237,125, 91,245, 60,126,225,189,167,231,249,233,161,147,187,106, 64,187,255, 0,132,255, 0,251,111, -248,204,252,255, 0,157,246, 57,191, 91,255, 0,212,255, 0, 13, 53, 75,117,255, 0,154,255, 0,254,184,255, 0,235,225,213,211, -215, 75, 62,224,165,123, 15,216, 37,125,103,248, 87, 39,251,103,205,236,253,175, 95,167,248,182,104,174,253,211,255, 0,216,220, -187, 91,242,236, 90,134,114, 30,159,166,136,103,191,227, 92,123,237, 63,205,109, 61,191,203,126,190, 79,205,254, 31,251, 63, 94, -150,207,114,111,212, 61,190,232,249,122,168,155,145,249,116, 82,133,179,237,153,175,206,255, 0, 11, 69,254, 97,246,158,214,254, -171,248,191,123,248,107,166, 31,238, 69,250,220, 50,255, 0, 10,100,102, 61, 52,203,189,124,245,118,125, 92,223,178,118,253,161, -175,153,252, 63,246,190,189,154,177,176,253,217,244,118,240,207,232,167,248, 83, 82,243,246, 72,255, 0,105,254, 75,200, 93,189, -159,108,157,243,191,139,254,211,248,107,164,217,254,246,111,215,111,253, 12,249, 10,124,230,222,193,243,210,107,159,107,185,125, -159,252, 21,107,250,206,207,181, 68,249,223,247,127,175, 83,143,187,254,255, 0,160,123,105, 28, 6,121,211,157, 95,111,111,235, -126,117,251,224,249,206,125,102,160, 31,223, 77,217, 31,204,126, 93,180,137, 63,116,223, 79,209, 90,226, 95,104,191,252,207,241, - 22, 63,243,254,175,176,252,207,225,255, 0,180,248,180,245,239,184, 51,247, 79,207,242, 79, 77, 71,251, 34,178,203,246,188,119, -235, 62,177, 31,106,237,251,106,190,119,175,247,254, 61, 51,115,155,187, 15,205, 65,156,123, 69, 89, 54,127,147,207,251, 55,255, - 0, 49,177,239,254,151,234,209,249,253, 30,186,235, 35, 7,239,162,207,255, 0, 29,221,153,183,229,217, 80, 63,205,219,255, 0, - 42,115,242,143,242,105,159,103,251, 62, 53,245,191,110,254, 97,114,255, 0,205,255, 0,181,255, 0,201,213, 23, 46,127,255, 0, - 69,222,246,114,246,123,144,252,135,166,172,174,125,200,255, 0, 85,191,252,234,166,228,191, 83,156,124,239,241, 52, 95,179,252, -207,173,147,243, 63,135,245,215, 93, 67, 98,253,204, 95,253, 67, 60,242, 25,253, 52, 67,222, 53, 31, 91,191,148,175,237,127,107, -143,245, 29,159, 49,254,223,227,253, 90,153, 31,188, 61, 57,211,111,247,253, 31, 85, 21,119,249, 12,111,175,249,145,123,126,171, -235,100,125,119,241,126,189, 78,147,247,199, 44,143,200, 81,125,186, 90,187,127,138,240, 95,157,252,191,254,183,179,181,127,155, -247,180,150,254,229,253,159,252,169,159,176,106,195, 88,126,205,131,253,127,248,214,231,246,207,183,126,215,213,255, 0, 23,253, -167,199,172,181,199,239,228,255, 0,235, 29,153,140,186,254,138, 99,236,191,179,232,164,216,255, 0,110,205,255, 0,153,255, 0, -138, 34,127, 60,250,142,203,159,111,253,199,253,159,240,237,213,126,233,144,253, 73, 61,220,253,214,229,215, 82,160,247, 89,151, - 14,206, 53, 17,217,255, 0,194, 19,190,179,237,255, 0,239, 31,177,125,145,239,159,252,127,246,159,195, 93,104, 63,254, 76,121, -126,237,223, 59, 50,234,255, 0,244,211,135, 51,218, 43, 31,251, 25,249,223,204,112,175,179,127, 55,250,169, 31, 55,215,233,254, - 61,154,155, 62,126,131,217,159,203,219, 81,190,215, 30, 63, 61, 59,115,127,254,106, 68,251,111,217,240, 31,171,250,143,170,111, -183,213,232,245,236,213,125,215,238, 31,151,186,236,251, 71,178,157, 62,233,244,210,143,255, 0,242,187,103,215,255, 0,136,243, -159,173,237,254,102,223,215,250,189, 31,197,166,174,127,124,127, 81,159, 33,242,202,162,203,239,143,213, 31, 53, 73,138,254, 80, -207,218,127,193, 50,127,211,254, 94,207,230,214, 96,254,232,127,253,147,217,239,143,109, 3,239, 14,195,255, 0, 72,175,255,217, -}; +255,216,255,224, 0, 16, 74, 70, 73, + 70, 0, 1, 1, 1, 0, 72, 0, 72, 0, 0,255,225, 0, 22, 69,120,105,102, 0, 0, 77, 77, 0, 42, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0,255,219, 0, 67, 0, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 4, 3, 2, 2, 2, 2, 5, 4, 4, + 3, 4, 6, 5, 6, 6, 6, 5, 6, 6, 6, 7, 9, 8, 6, 7, 9, 7, 6, 6, 8, 11, 8, 9, 10, 10, 10, 10, 10, 6, 8, 11, + 12, 11, 10, 12, 9, 10, 10, 10,255,219, 0, 67, 1, 2, 2, 2, 2, 2, 2, 5, 3, 3, 5, 10, 7, 6, 7, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,255,192, 0, 17, 8, 1, 26, 1,245, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1, +255,196, 0, 30, 0, 0, 1, 4, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 4, 6, 7, 2, 3, 8, 1, 9, 10, +255,196, 0, 86, 16, 0, 1, 3, 2, 5, 1, 5, 4, 6, 6, 5, 8, 7, 6, 7, 1, 1, 2, 3, 4, 5, 17, 0, 6, 7, 18, 33, + 49, 8, 19, 34, 65, 81, 20, 97,113,129, 9, 21, 35, 50,145,161, 22, 66, 82, 98,177,211,130,148,193,209,240, 23, 24, 36, 51, 85, +146,147,225, 67, 69, 83,114,162,178,241, 10, 52, 53, 99,115,131, 37, 68,100,116,132,163,210,194,255,196, 0, 28, 1, 0, 1, 5, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 2, 4, 5, 6, 7, 8,255,196, 0, 63, 17, 0, 1, 3, 2, 4, + 3, 5, 6, 5, 4, 1, 4, 1, 5, 0, 0, 1, 2, 3, 17, 0, 4, 5, 18, 33, 49, 6, 65, 81, 19, 34, 97,113,145, 20,129,161, +177,193,240, 7, 22, 50,209,225, 21, 35, 66,241, 82, 51, 67, 98,114,162, 37,130,146,178,194,255,218, 0, 12, 3, 1, 0, 2, 17, + 3, 17, 0, 63, 0,251,249,133,133,142,108,237, 57, 79,237,181, 43, 82, 28,115, 72,106,197,156,189,220, 32, 66, 76, 7,154, 66, +130,172, 55,247,155,249, 42,221,123,117, 22,182, 50,177,140, 77,120, 77,167,108,150, 22,241,144, 50,182, 51, 43, 94,113, 35, 79, +226,181,112,124, 49, 24,181,223, 96,167,219,100, 65, 57,156, 86, 84,242,210, 96,235,175,206,186, 34,174,170,144,165,201, 85, 21, + 13, 42, 88, 97,102, 42, 95, 36, 32,185, 99,180, 42,220,218,246,189,188,177,201,249, 7,183, 22,169,105,126,162,203,200, 61,169, +232,202, 66, 61,160,129, 50, 60, 36,161,113, 1, 60, 89, 40, 0, 58,213,186, 40, 93, 95, 28, 85, 25,255, 0, 94,251, 94,105,157, + 96,229,236,221,171, 51, 25,156,145,119, 34,181, 49,151, 86,215,166,240,144,118,147,232,124,190, 88,102,246, 84,237, 87,218, 94, + 4,106,149, 90, 12,250,211, 13, 93, 81, 37, 77, 67,109,155, 30,187, 84, 64, 36, 30, 61, 69,241,228,152,207, 29, 95, 98, 87,136, + 70, 18,203,232,185,100,153,111, 40, 82, 84, 12, 72,113, 32,200,142, 71,151,153,145,235,184, 39, 1,216, 97,150, 75, 94, 46,245, +186,237,158, 2, 28,206, 82,164,157, 96,182,162, 0, 51,204,115,242, 16,126,135,101,236,199, 66,205,116,120,249,131, 45, 85,152, +157, 10, 82, 2,216,147, 25,192,164, 45, 39,204, 17,130, 24,249,229,167, 90,137,218, 19,177,110, 98,105,156,197,151, 37,183, 72, +150,245,228, 82,230, 27,177, 34,221, 75,107, 23, 9, 93,188,199, 94, 46, 15, 24,237, 28,159,218, 11, 33,231,125, 30,153,173, 20, + 23, 94,122, 5, 58,156,252,169,241, 16,145,223,178,166, 91, 46, 56,209, 4,129,190,195,142,108,110, 57,177,190, 61, 7,133,248, +177,142, 32, 38,217,214,203, 55, 73,253, 77,168, 16,124,196,193, 35,226, 61, 9,243,206, 41,225, 27,142, 29, 2,233,167, 3,214, +170,253, 46,164,130, 60,149, 18, 1,248, 30, 92,192,158, 97, 98,159,236,109,219,107, 67,123,117,105,171,218,165,161, 85, 26,131, +144,162,205, 49, 39,197,170, 64, 84,119,227, 62, 16,149,148, 40, 92,165, 92, 45, 60,164,169, 60,245,227, 19, 61,108,214,141, 57, +236,243,166, 21,109, 99,213,170,233,166,101,234, 35, 41,118,167, 56, 71,113,238,233, 42, 90, 80, 14,198,193, 82,188, 74, 72,224, +121,252,113,219, 46,218,229,187,159,103, 82, 8, 92,198, 88,214,122, 71, 90,225,219,188,181,118,219,218, 80,176, 91,137,205, 58, + 71, 89,233, 82,220, 44, 67,116, 43, 93,116,195,180,150,151, 83, 53,147, 71,115, 25,171,101,234,186, 92, 85, 62,113,142,227, 37, +192,135, 20,218,188, 14, 37, 42, 77,148,133, 14, 64,189,189, 49, 50,192,150,133,180,178,133,136, 35, 66, 14,224,142, 70,140,219, +141,186,216, 90, 12,164,137, 4,106, 8, 60,197, 44, 44, 44, 44, 70,167, 75, 11, 11, 20,142,134,118,251,236,253,218, 51, 95,243, +175,103, 61, 46,155, 84,149, 91,200, 46,169,156,193, 38, 77, 60,179, 25, 47,161,245,178,182,155, 82,142,229,148,173, 10,185,218, + 18, 69,172, 77,240,102,237,223,117, 10, 90, 18, 72, 72,146,121, 1, 49,175,190,128,237,203, 12,184,134,214,160, 20,179, 9, 28, +201, 2,116,247, 85,221,133,133,133,128,209,233, 97, 96, 46,126,207, 57, 87, 76, 50, 69, 99, 82, 51,213, 93,186,125, 22,131, 75, +126,161, 86,156,234, 73, 75, 17,217,109, 78, 56,178, 18, 9, 54, 74, 73,176, 4,155,112, 13,241,243,173, 95, 79, 78,183,234,149, + 66,117,119,178,119,209,187,156,179,174, 80,167, 73, 83,106,174,185, 37,244,185, 35,109,137, 27, 35,198,121, 13,174,220,237, 11, +113, 67,112,184, 29, 14,141,134, 19,127,137, 37, 74, 97, 50, 19,185, 36, 36, 9,216, 74,136, 19,225, 89,120,134, 51,135, 97,106, + 74,110, 23, 10, 84,192, 1, 74, 36, 13,204, 36, 19, 30, 53,244,187, 11, 28,193,244,122,125, 40,154, 57,244,129, 83,234,148, 90, + 30, 92,159,149,115,133, 2,198,187,148,170,238, 5,184,210, 9,219,222,180,224, 3,189,108, 47,192, 73, 74, 86,149, 11, 41, 2, +233, 42,233,252, 86,187,180,185,177,124,178,250, 74, 84, 55, 6,173, 89,222,218,226, 22,233,126,221, 97, 72, 59, 17,247,167,145, +214,150, 22, 22, 40, 14,217, 95, 72, 78,143,246, 54,204,217, 31, 78,243, 51, 14, 86, 51, 78,125,204, 81, 41,212,154, 12, 41, 41, + 67,140,199,122, 66, 89, 92,215,137, 7, 99, 72, 42,176,224,151, 20, 54,167,128,165, 33,173,237,159,187,116, 52,202,115, 40,242, + 30, 26,154,149,213,213,189,147, 37,215,212, 18,145,204,248,232, 61, 77, 95,248, 88,228,190,222,159, 73,158,109,236, 95,168,121, +119, 36,101,126,199,249,207, 81,152,174,208,221,168, 59, 83,203, 72, 89,110, 34,146,239,118, 25, 94,214,151,226, 35,197,212,113, +138, 50, 71,211,249,169, 16,226,187, 54,111,209,131,170,113,216,142,209,114, 68,135,251,196, 54,210, 0,185, 90,148,168,192, 37, + 32,117, 36,219, 26,150,188, 59,140, 94, 48,151,153,108, 20,171,110,242, 7,134,197, 64,214, 77,223, 19, 96,182, 47,169,151,220, + 33, 73,223,186,179,241, 9, 34,190,147,225, 99,152,254,141, 79,164, 82,111,210, 41,148,243, 62,123,133,160,245, 28,161, 71,160, + 85, 26,129, 14,124,234,171,114, 83, 81,120,183,189,208,141,136, 77,187,187,160, 30,191,124, 99,167, 49,155,121,103,113, 97,114, +166, 31, 16,180,238, 36, 24,231,202, 69,106, 89, 94,219, 98, 54,169,185,183, 86,100, 43, 99, 4, 79, 46, 96, 26, 88, 88, 88, 88, +173, 86,169, 97, 97, 97, 97, 82,165,133,133,133,133, 74,150, 22, 22, 22, 21, 42, 88, 88, 88, 88, 84,169, 97, 97, 97, 97, 82,165, +133,133,133,133, 74,150, 22, 22, 22, 21, 42, 88, 88, 88, 88, 84,169, 97, 97, 97,149, 79, 48,208,104,138, 66,107, 21,168,113, 11, +151, 45,137, 82, 82,222,224, 58,219,113, 23,194, 0,147,165, 42,123,133,129,145,115,118, 85,157,152, 36,101, 40, 89,154,158,245, + 86, 44,116, 63, 42,152,212,214,213, 33,150,149,247, 92, 83, 96,238, 74, 85,228,162, 44,124,176, 79, 10, 8,222,148,205, 44, 44, + 13,204,153,175, 43,228,248, 40,170,102,236,199, 79,165,198,114, 66, 24,110, 69, 70, 98, 24,109, 78,172,217, 13,133, 44,128, 84, +163,192, 79, 83,130, 88, 80, 98,105, 82,194,195, 9,185,143, 47, 83, 37,166,159, 81,175, 66,143, 33, 64, 20, 48,252,164, 33,106, +191, 2,192,155,158,111,135,248, 80,105, 82,194,194,195, 53,214,232,205, 86, 27,203,174, 85,163, 10,131,209, 87, 37,168, 42,125, + 61,242,217, 66,146,149,184, 16, 78,226,132,169,104, 5, 64, 88, 21,164, 30,163, 11, 90, 84,243, 11, 26,165, 74,141, 6, 58,229, +205,144,134,154,109, 59,156,113,213, 4,165, 32,117, 36,158,152,219,133, 74,150, 22, 22, 22, 21, 42, 88, 88,136,234, 14,175,101, + 92,131, 72,147, 85,168, 84, 26,109,136,107, 40,157, 80,145,185, 17, 33, 88, 93, 74,121,219,109, 72, 72, 23, 35,175, 78,151,199, + 29,235, 55,210,169, 75, 85,106, 70, 72,208, 44,133,152,179,165, 84, 47,185, 98,187, 38,115,212,202,127,120, 78,213, 56,219, 44, +148,186,227, 73, 55, 35,113, 4,132,253,238, 65, 39, 98,217,251,146, 67, 98, 98,160,183, 16,216,239, 26,239, 44, 44,112,195,191, + 73, 3, 52,218, 36, 74, 87,232,124,234,244,198, 33,182, 38, 85,217,206,143,180,195,238,236, 27,214,223,114,132,238, 69,250, 43, +128,122,243,123,226,252,236,107,218,150,155,218,106,129, 90,145, 14,159, 46, 59,180, 89,141, 52,234, 36, 45, 46,160, 5,162,246, + 75,201, 0, 57,101, 37,105,228, 5, 13,188,222,247,193,158,195,239, 45,218,237, 22,152, 30, 98,160,139,134,150,172,169, 58,213, +215,133,133,133,138, 84,106,211, 34, 75, 17, 24, 92,137, 79,161,182,219, 73, 82,220, 90,128, 74, 64,228,146, 79, 0, 99,148, 59, + 80,246,248, 13,187, 35, 78,116, 14, 79,125, 33, 69, 76,203,204, 13,167,112, 4,241,182, 56,231,113,253,254,159,179,251, 88,159, +246,238,201, 90,211,158,244,246,159, 67,210,128,227,177, 23, 45, 98,187, 10, 59,193, 14, 62,139, 39,187,228,145,116, 2, 21,185, + 62,165, 62,152,142,118, 87,236, 67, 78,200,161,156,235,168,204,162, 85, 86,193, 76,180, 69,209, 31,220,155,245, 62,255, 0,195, +223,231,252, 66,247, 20,226,216,153,194, 48,212, 22, 90,128, 86,249,232,121, 35,169,229,161,153,255, 0,136,212,250, 15, 14, 49, +194,184, 70, 22, 49,140, 77, 97,231,100,132, 48, 15, 49,205,206,131,158,162, 35,254, 71, 65,201,218, 81,151,198,120,214,122, 69, + 3, 54,173,199, 76,218,176, 76,255, 0,105, 81, 43, 90,174, 74,130,137,230,228,139, 31,142, 56,255, 0,233,156,237,117,218, 45, +222,217,121,159, 65,105,217,194,179,150, 50,158, 72,121,152, 20, 74, 13, 46, 99,145, 90,117, 29,203,107,246,165,132, 20,247,138, +112,171,112, 81,224, 39,104, 22,177, 39,189,123, 89,233, 78, 99,208, 13,119,123, 49, 80,210,235, 16,170, 19,149, 82,161,206, 66, + 60, 40, 89, 86,245, 54, 15, 75,161, 71,167,236,145,235,129,218,219, 69,250, 63, 59,117,166, 6,100,237,127,164,213, 24, 89,186, +159, 13, 17,149,152,242,243,171,109, 82, 91, 79, 68,168,182,160, 84, 46, 77,130,146,173,183, 32, 30,113,159,248, 49,197, 60, 57, +248,119,142, 94,217, 99,201,202,230, 99, 10, 80, 27,105, 26,157, 58,145, 36, 72, 84,138,189,248,221,194, 92, 75,248,145,128, 89, + 94,240,250,179, 55,148, 18,132,147,227, 34, 4,158,128,192, 48, 81,173, 81,255, 0, 66,103,104,125, 96,237, 59,166, 26,159,217, +167, 93,243, 29, 71, 50,229,218, 22, 94, 77, 87, 47,214, 42,239,169,247,105, 50, 70,240, 26, 75,203,186,182,171,110,240,146,120, + 8, 93,184, 81,199, 64,246, 85,207, 85, 42, 61, 3, 80,242, 87,126,179, 10,167,145, 42, 78,150,175,225, 14,183, 29, 96, 42,222, + 92, 40,252,108, 7,144,192, 24, 57,143,179,135,103,125, 40,168,104, 95, 99, 45, 51,122,131, 75,171,171,255, 0,198,235, 83,148, + 76,169,201,181,138, 73, 42, 82,136, 35,195,117, 30, 19,112, 0,185, 56,180,251, 17,246,120,172,231, 60,169,153,243, 28,227,236, +109, 86,168, 82,169,116,231,221,104,157,161,214,212,130,237,184,184,185, 22, 23,231, 97,245, 24, 39, 16,113, 46, 17,198, 95,139, +214,151,152, 18, 97,182,181, 90,192,128, 83, 16,102, 61,250,237, 42,210,135,195,124, 47,140,240, 79,224,221,221,150, 62,185,113, +221, 16,130,100,133, 78,145, 58,244,208,234, 2,117,138,224, 15,161,235,177, 63,104,254,215,250, 57,152,153,200,253,175,115, 30, +156,101, 90, 93,117, 65,186,126, 88,113, 72,114, 84,229, 50,217, 83,174,148, 56,217, 41, 74, 3, 96, 2, 77,252, 86,219,205,219, +103,238,214, 93,170,180,243, 78,187, 69,253, 26, 93,165,245, 73,252,244,214, 95,162, 58,105, 25,130,107,138,117,246, 93,141, 50, + 49, 35,188, 85,214, 91,113,181, 95,106,201, 40, 80, 0, 30, 78, 58,103, 66,254,133,175,164, 15,177,221, 30,162,158,202,157,188, +226,209, 36, 85,221,181, 86, 35,148, 43, 69,125, 41, 22, 67,129, 43, 46,237,112, 93, 67,117,175, 98, 57,227, 7,116,243,232, 18, +204, 81,244,167, 83,164,106,158,189, 26,246,166,106, 76, 18,196,172,219, 58, 26,221, 68, 93,242, 27,144,242,182,169,123,220, 91, +139, 64,220,178,160,120, 28, 14, 65,250,133,236,115, 7, 93,243,143,188,250, 22,217, 82, 74, 18, 16, 66,146, 66,129, 42, 39, 40, + 58,106, 78,164,158,156,171,229, 54, 56,127, 27, 70, 28,211, 12,176,182,221, 9, 88,113, 69,192, 82,164,148,144, 18, 6,114, 53, +210, 52, 1, 61,121,215, 5, 39,183, 54,182,229,206,207, 90, 39,216,227, 35,231,236,203,149,114,154,233, 11,168,102,137,185, 45, + 10, 53, 90,129,122,165, 48, 22,219,218,164,149, 37, 13,160,109, 64, 32, 21,168,149, 95,106,109, 54,166,118,172,213,110,203, 90, +205,148,117, 27,177,126,122,215,234,245, 37, 50, 66, 51,158, 92,212,202, 59,207, 70,148,214,228,220, 32, 2,164,157,200, 43,231, +106, 84,130,148,144, 77,200, 29,131, 94,250, 3,107, 3, 69,180,221,122,125,174,168,203,218,171,166,173,186,212, 28,219, 22,158, +174,226,123, 38, 91,210, 90, 74,218,222, 74, 20,218,158, 85,148, 9,184, 82,129, 4, 16, 5,131,160,125,130,254,145,182, 53,242, +133,171,157,166,123,114,170,167, 78,160,180, 90, 25,115, 45, 82,219,141, 22,123, 68,130, 80,250, 10, 18,133, 2, 82,155,157,133, +118, 72,218,164,245, 17,127, 30,192, 75,106, 83, 89, 72,254,230,100,171, 48,206, 73, 48, 99, 33,153,220, 18,161,150,167,111,195, +188, 68, 29, 66, 93,206, 21,253,188,171, 78, 83,144, 36, 38, 68,151, 19, 25,117, 4, 4,144,174,186,215, 55,233, 94,170,125, 32, +159, 72,135,109,157,102,236,177, 72,237,139, 91,202, 25, 18,129,153,106, 4,154, 92, 22, 27,154,196, 68, 78,117,166, 34,178,234, + 18,135, 16, 54,240,165, 21,155,132, 11,222,248,139,228, 14,210,157,170, 62,138,190,219, 58,165,217,235, 52,107,165,103, 82,168, + 20, 44,131, 46,175, 5,140,203, 49,215,146,167,211, 13, 18, 99, 47,106,214,162,217, 10, 86,197,236, 80, 10, 77,207, 22, 22,238, +158,199, 31, 70,206,101,236,179,219, 63, 86, 59, 77,206,212,136,149,104, 90,145, 85,149, 50, 61, 49,138,114,153, 84, 16,244,199, + 36, 4, 21, 21,168, 46,193,123,110, 0,185, 23,247, 96, 22,175,253, 18,163, 88,190,144,170,215,107,172,227,158, 98, 76,202,217, +143, 43,174,139, 86,202,102, 10,210,234,153, 92, 1, 17,100, 60, 23,199, 23, 80,240,220,113,233,140,177,141, 97, 30,210,235, 10, + 9,246,126,200, 64, 8, 2, 86, 2,103, 92,160,206,226, 73,138,214, 56, 22, 53,236,172,190,130,175,105, 14,153, 37,100,195,100, +170, 52,204, 70, 88,202, 96, 9,174, 79,236, 51,217,199,183,247,210,107,144,170, 61,174, 51,127,210, 21,156,178,180,201,117,103, +219,161, 64,162, 74,113, 49,153, 91, 74,181,212,211,110,161, 13,160, 43,194, 27, 74,111,180, 92,158,109,142,110,209, 30,211,253, +160, 59, 20,213, 59, 77,234, 34,179, 11, 47,234, 91,149,198,168, 51,171,236,180,219,136,106,164,244,249, 66, 76,196,141,187, 15, + 45, 58, 83,225, 9,220,180,155,113,108,119, 14,157,125, 15,223, 72, 87,101, 41,117,124,129,216,239,183,218,168, 57, 22,175, 53, +111, 46, 36,202, 86,249, 44, 5,120, 74,146, 44,164, 7,118,128, 55,160,162,251, 71, 75, 12, 57,208, 15,253,159,152,121, 39, 46, +234,118,159,235, 62,179,171, 49,210,117, 6,158,210, 35, 78, 98, 7,117, 54, 4,166,158, 83,205, 74, 42, 90,214, 22,176,162, 47, +192, 4, 21, 15,214, 56,211,254,183,131, 32,189,218,188,133,178,162,140,136, 74, 8, 33, 33, 96,144,123,160,108, 54, 36,204,114, +172,163,128,227,142, 37,142,197,149,161,228, 5,231,113, 78, 2, 10,138, 8, 10, 29,226,119, 59,128, 34,121,242,225, 76,179,170, +245,186,254,134,171, 82,229,118,132,237, 58,254,175, 63, 29,115, 32, 79,167,199,144,237, 33,111,110, 42,109,189,225,221,229, 4, + 88, 21,143, 82,118,216, 88,217,154,167,244,176,253, 35,245,253, 57,209, 26, 6, 88,212,122,158, 82,205,181,119,166,209, 43,170, +149, 70,101,191,173,100, 34, 76,118,227,202, 90, 94,100,216,148, 60,144,173,160, 2, 66,143,184,116,133, 27,232,173,250, 74,180, +127, 76,147,160,249, 83,233, 19,129, 69,211,170,122,193,102,107, 84,175,103,157, 17,158,243,126,196,190, 78,246,211,127, 32,232, + 22, 54,232,109,139, 63,181,135,209, 31,168,189,164, 51,134,139,103,151,245,253, 15, 78,210,230,154, 77, 82, 93, 94,150, 28,147, + 90, 90, 36,180,241,117, 74,109, 72, 74, 20,123,187,125,211,212,122, 97, 59,141, 96, 10,186, 73,119, 34,211, 43, 32,193, 48, 50, +156,162, 11, 96, 65, 36,119,117,130, 1,158,116,153,192,120,137, 54,139, 12,246,141,175, 42, 1, 18,148,230, 57,129, 81, 4, 56, +162, 72, 0,247,160,102, 4,136,229, 87,119,209,249,217,103, 83, 59, 53,104,213, 87, 41,107, 54,185,213,117, 22,167,153,107, 46, + 85,234, 21, 74,233, 82,148,133,189, 29,134,150,202, 66,214,179,221, 2,201, 80, 23, 3,198,120, 24,183, 50, 62,149,233,166,147, +229, 86,114,182, 72,202,148,218, 37, 26,158,202,132,120, 80,163, 33,136,241,155,185, 81,218,148,128, 18, 57, 36,252, 79,174, 36, + 20,246, 23, 26, 11, 49,215,109,205,182, 18,109,235,143,159,223, 78, 7,109,188,209,149,242,221, 51,176, 7,103, 21, 57, 63, 81, +117, 68, 34, 37, 73,170,122,238,236, 10,107,202,238,251,171,143,184,185, 7,114, 46,126,235, 73,113, 71,110,228, 43, 28, 21,163, + 23,152,230, 35,217,206,171, 50,163,176, 0,110,162, 4, 0, 0,159,149,122, 37,235,246, 92, 63,134,118,185,116, 64,132,141,212, + 73,217, 32,153, 36,168,199, 94,188,170,148,250, 40,163,183,175, 95, 75,174,184,118,166,211, 8,221,214, 75, 76,154,148,104,146, +227, 39,107, 83, 12,169,168, 83, 42,244, 61,226, 35, 45,226, 58,130,164, 95,168,191,215, 76,115,207,209,191,216,187, 43,246, 40, +236,229, 72,211, 42, 82, 16,245, 73, 72,246,170,253, 73, 40,177,155, 57,196,142,245,207, 80,145, 96,132,143, 36, 33, 62,119, 39, +161, 20,118,221, 74,232, 48, 76,126,253,172, 67, 17, 43,103,244, 36, 4, 39,169, 74, 68, 2,124,247,161,240,230, 28,246, 27,133, +165, 15,127,212, 81, 43, 84,108, 20,163, 36, 15, 45,170,154,237,207,219, 83, 75,123, 8,232, 60,253,101,212,121, 29,252,130, 76, +108,187, 66,105,203, 61, 86,156, 82, 74, 25, 71, 93,169,224,169,107, 34,200, 74, 73,228,237, 73,248,183,173,186,119,218,114,169, +218, 83, 67, 59, 98,246,176,171, 56, 51, 62,177,106, 27,115, 35, 80,150,201, 64,165, 64,141, 46,157,236,205, 37, 37, 68,182,157, +146,108,150,143,137, 9, 74,119, 18,181, 44, 11, 23, 83,117,175,181,190,191,246,229,103,181, 55,105,223,163,151, 88, 51, 46, 94, +203, 11, 82,114, 6,159, 55,150, 42, 17,226,211, 0, 88, 45,184,246,248,171, 14,185,225, 11, 93,146, 55,184, 19,127, 2, 18,222, + 7,253, 37, 29,186, 53, 79,180, 6,175,104, 54,101,205, 29,134,243,214,158,191,145,243, 44,137, 84,170, 78, 97,142,250, 94,204, + 46, 46, 77, 57,101,152,193,113,155, 37,105, 49,208,147,180, 47,153, 9,227,155, 30,235, 1,194,223,194,221, 67, 77,165, 42, 82, +210,174,209,121,144, 99,184,114,161, 34,103,120, 42, 32,106, 99,144,175, 62,226, 44, 90,223, 23,101,199,157, 82,146,150,212,144, +218, 50,172, 79,125, 57,156, 81,136,213, 50, 18,146,116, 19,166, 99, 95,114,104,236,184,138, 92,112, 92, 41,179, 73,184,183,187, + 28, 51,244,237,246,163,205,217, 7, 68,104, 93,142,244, 82,107,235,207,250,207, 83, 77, 34, 35, 80,213,103, 90,167,169,105, 67, +199,129,113,222, 41, 73,106,255, 0,178, 92,244,199, 94,104, 22,166,213,117, 91, 67,178,246,168,230,220,139, 63, 40, 74,170, 82, + 91,151, 58,131, 90,186, 31,166,155, 93, 77,187,185, 40, 32,139,115,116,143,134, 62,117,246, 23, 47,253, 36,223, 75,142,127,237, +209, 92,139,237, 25, 35, 74, 83,245, 46, 68, 75,151, 40, 91,254, 38,218,113, 60,218,251, 67,175,155,116, 83,168,199, 33,128,218, +161,139,167,111, 46, 4,162,220,102, 35,145, 92,194, 19,167, 85,124, 1,174,215,136,174,214,253,163, 86, 86,198, 23,114,114,131, +177, 8,137, 90,181,232,157, 58,201,174,244,236, 91,217,155, 44,118, 63,236,211,148,187, 62,101,134,208, 69, 10,152,145, 81,148, +132,128,101,205, 88,222,251,198,221,119, 44,170,222,235, 15, 44, 90,248,199,104, 9,232, 46,122,156,101,140, 7,222,118,225,229, + 58,225,149, 40,146, 79,137,222,186, 59,118, 26,181, 97, 44,180, 33, 41, 0, 1,208, 13, 5, 44, 44, 44, 44, 10,141, 75, 11, 11, + 11, 10,149, 44, 44, 44, 44, 42, 84,176,176,176,176,169, 82,194,194,194,194,165, 75, 11, 11, 11, 10,149, 44, 44, 44, 44, 42, 84, +176,176,176,176,169, 82,194,194,194,194,165, 75, 31, 60, 62,153,205, 43,175,234, 54,185,233, 99,173,229,138,172,138, 51, 25,107, + 50, 51, 81,170, 65,200,210, 43,205,196,113,216,201, 75, 1, 81,217,183,141, 78,109, 8, 89, 35,187, 81, 14,243,221,216,253, 15, +194,197,220, 62,245, 88,125,208,121, 34, 72, 4,122,130, 60,122,244,161,186,216,117, 25,107,227,238, 78,161,246,247,211,124,150, +154,230,157,105, 14,118,203, 85,100,233,246, 85,165,230, 85, 64,166, 72, 93, 65,154, 75, 50,102, 37,213,176, 75, 74, 90, 95, 40, + 76,103, 20,132, 37, 78, 50,151, 84, 45,225, 54,155,105,189, 79,233, 3,212,234,149, 95, 38, 86,245,227, 87, 97,209,105, 25, 18, +191, 84,161, 86,160, 80,166, 65,122,116,152,229, 14, 68,142,227,179, 34, 33,201, 4,173,110, 32,168, 37, 11,112, 35,106,109,183, + 31, 83, 49, 92,246,132,237, 31,148,251, 55,210,233, 85,220,237, 69,168,200,131, 84,122,107, 9,147, 5, 9, 88,105,230, 41,242, +103, 37,181, 2, 65, 42,117, 49, 92,109,176,144,110,226,146,158, 55, 99,100, 99,139,185, 89, 74, 88, 73, 81,219,159, 47, 16,118, +141, 53,245,170,222,204, 16, 39, 49,138,249,181,157,243, 23,107,157,104,166,209, 97,107,212, 93, 95,151, 91,110,169,145,165, 80, +168,145,242,180,132, 81, 29,138, 25,142,185,243, 36,236, 99,111,180, 9, 61,230,226,178,146,149, 18, 0, 32, 16,150,249,131, 87, +254,149, 90, 51, 89,138,169, 84,205, 90,155, 19, 54, 20,212,145, 91,203,209,242,172,249, 17, 89,218,230,232,239, 66, 90, 98,251, + 51, 13,141,168, 66, 84,135, 23,222, 5,145, 97,186,231,181,167,253, 41,154, 25, 79,162, 73,204,174,100,252,204,228, 6, 41,162, + 75, 15, 51, 9, 11, 92,151, 67, 84,119, 93,138,134,194,247,151,155, 77,101,157,232, 34,233, 49,228,126,199, 47,164,125, 37,186, + 51, 79,174, 55, 77,169,229,122,243, 81, 38, 87, 91,167, 82, 42,168,105,167, 24,168, 55,245,156,234,123,210,219, 41, 89, 61,203, + 38,158,243,235, 85,174, 25, 82, 87,110,160, 91, 23,151, 97, 34,108,196,116,211,195, 65,167,188,141,231, 89,210,135,217,183, 63, +245, 53,170,175, 47,246, 90,215, 23,117,139, 62,102, 71,115, 60,124,223, 92,129,167,121,126,101, 50,177,169, 25, 14, 45, 65,233, +243,138,234,239,123, 44,103,143,114,212, 82,218,251,164, 29,169, 86,208,182,138,135,132,110,211,167,154,193,174, 57, 27, 87,178, + 46, 99, 21,173, 97,171,105,227, 77, 67, 78,164, 57,153,114,157, 69,247,216,173, 57, 76,171, 7, 88, 67, 62,204, 31, 45, 9, 34, + 14,224,202, 20,195,110,119, 65, 36,110, 80, 55, 70,102,237,115,156, 43, 20, 93, 25,206,218, 61,167, 47, 84,161,234,101,106, 91, + 95, 82,205,121,150,100,189, 17, 52,185,210,153,117, 14,169,192,219,119, 49,218,116,146, 85,118,201, 0, 21, 16, 49, 86, 80,126, +151, 26, 15,214,153,137,117,205, 60,154,180,166,168,180,208,233, 14,191, 30, 27,177, 89,139, 74,167, 63, 57,151,158,117,222,237, +233, 9,151, 48,180,218, 27,251,224,131,192, 27,141, 68, 27,251,148,168, 41,160,173, 34, 59,160,136,238,158, 90, 25, 4,142, 67, +198, 34,136,123, 36, 17, 10,143,185,160,153, 63, 48,118,183,205, 57, 26,110,124,173,102,221, 70,137, 83,203,217,111, 38,205,163, +192, 12,188,202, 37,203,147, 88,154,220,240,251, 37,191,244,130, 35, 54,200, 91,106,184, 66, 84, 9, 2,233, 86, 33,170,205, 26, +234,156,213, 70,207,213,106, 94,168,212, 51,132,141, 59,157, 76,212, 9,242, 96,213,226,199,203,211, 94,204, 52,110,248, 69, 83, + 17,148,123,148, 52,211,138, 40,134, 10,150,202, 66,247, 39,113,115, 23,243,127, 73,246, 75, 94, 95,107, 61, 59,162, 89,169,188, +185, 81,159, 87,166,229,250,138,223,136, 30,169, 79,130,231,119,220, 8,253,238,246,131,170,186, 80,183, 54,217, 73, 33, 65, 34, +202, 32, 43,159, 73,205,107, 74,181, 23, 58,228,125,100,210, 7,163,207,163, 84,212,186,125, 18, 29, 94, 24,113,136, 45, 82,233, +178, 93, 73,121,110,132, 74,146,227,147,174,211, 77,129,116,146,146, 65, 69,212, 70,205,238,117, 69,184,235, 18, 6,130, 18, 71, +184,234,118,131,191, 67, 19,217,192,239,253,239, 84, 70,102,166,235,182,102,202, 89,151, 52,231,181,106, 13,114,106,180,203, 55, + 81, 50,154,228,101, 58,129,102,166,166,167,165,232,172, 73, 98, 67, 43,112,133, 50,181, 45, 41,148,119, 56, 24, 72, 81, 89, 73, + 6,192,207,153,195,181,187,136,117,140,171,153,245, 81,140,218,245,110,166,206,160,196,250,162, 66,105,212,168, 70,174,218, 32, + 46,156,181,178, 88,220, 88, 40,216,166, 20,230,246,187,229, 59,114,146, 69,251, 77,237,219, 69,174,233,229,103, 83,168, 90, 55, +153, 94,164,195,205,127,163, 52, 7,156,145, 13,179, 94,170, 42,168, 41,173,178,202, 59,226,182,144,167,148,146, 86,242, 91,218, +157,220,120,121,143,203,250, 74,104,176, 42,249,159, 44,202,236,247,155,149, 84,201, 49, 91,115, 53,198,143, 50,158,166,225, 60, +236,199,225,176,194, 86,169, 9, 47, 41,215, 90,108,161, 72, 78,221,175,130,178,141,170, 2, 62,209,118,225,255, 0,160, 14, 82, +121,167,195, 72,233,168,255, 0,238,143, 42,124,168, 3,245,111,231,247,252, 85,129,217, 86, 54,123,163, 61,168,217, 55, 56,214, +107,245, 8, 84, 45, 69,122, 38, 88,155,152,223,113,231,221,167,170,155, 79,124, 89,231, 6,231,144, 31,122, 72, 11,185,182,210, +155,248, 56,156,106,142,102,153,149,242,139,243, 41,144,102, 74,146,226,210,219, 81,233,205,119,146, 22,146,110,225,109, 36,139, +168, 54, 22,161,115,107,129,240,192, 29, 16,214,249,154,181, 83,205, 89,102,189,167,211, 50,221,107, 39, 86, 24,167, 86, 41,242, +167, 51, 37, 61,227,176,216,152,218,155,113,146, 82,164,150,164, 55,126,132, 27,143, 43,225,167,105, 44,224,238, 74,163,194,170, + 37,110,198, 68,132,189, 25,117, 36,169, 65, 17,183, 22,143, 36,112,146,160,146, 2,141,172, 46, 47,226,231, 1,228,173,203,152, + 80,130, 99,228, 53,211,174,245,109, 36, 37, 18, 40, 94,157,101,183, 53,119, 50,205,204,153,190,140,152,244, 74, 12,199,233,180, + 60,178,250, 2,210,215,131,107,175,188, 46, 82,227,174, 37,106, 23,241, 0,218,200, 4,151, 28, 56,152, 53,148,180,219, 72,178, +218,160,100,172,131, 73,128, 36, 14,226, 52, 10,124, 6,218,246,149,145, 96,131, 96, 46, 58, 94,255, 0,158, 57,247, 74,117,173, +188,173, 68,159,154,115, 21, 98,180,213, 62,189, 48,191, 66,167,210,139, 73, 91,236, 37, 59, 12,151, 84,232, 42, 72,112,164, 20, +237,183, 30,166,248,213,159,123, 65, 26,237, 30, 67, 57, 8,212,104,245, 95,102, 90, 97,213,234,213,133, 73,241,145,109,182, 80, + 33, 27,134,228, 93, 36,125,242,126,240, 73, 5, 54,151, 38, 66, 71,119,225,231, 80,237, 27,220,239, 84, 79,104, 61, 18,236,203, + 74,213,106,139,116,156,169, 54,161, 37,183, 1,169, 53, 26,168, 26,167, 53, 51,146,234, 88,100, 54,124, 1, 70,220,109,228, 31, + 92, 93,127, 71, 86,163,228,220,173,154,166,232, 94, 89,202,113, 41, 12, 84, 24,114,164,203, 81, 22,226,128,117, 1, 41, 55,222, + 77,138,146, 20, 64, 22, 79,217, 40,128, 9, 81, 52, 29, 55, 78,245,143, 48,102,103,178,133, 23, 74,170,166,165, 21,206,238,115, + 47, 35,113, 97, 99,168,251, 61,215,231,205, 69, 34,222,124,227,174,251, 16,118, 92,173,232,204, 41,249,239, 81,152, 72,204,117, + 66, 91, 75, 94, 19,236,204, 3,211,194, 72, 23,176, 22,185,176, 72,185, 37, 74,198,197,249,183, 69,143,102,165, 73,129, 26,235, + 61,106,163, 33,106,123, 48, 17, 93, 9,133,133,133,142,102,180,107, 29,164,240,163,113,140,177, 65,255, 0,157, 46,162,255, 0, +177,168,191,213,221,254,110, 49, 87,106, 77, 69,255, 0, 99,209,191,171, 59,252,220,116, 95,149,241, 94,131,214,176,127, 49,225, +189, 79,165, 91,218,141,166,121, 47, 85,178,219,185, 83, 61, 80,218,155, 17,209,192, 88,241, 54,175,218, 66,135, 41, 87,188, 27, +227,154,115,111,209,127, 76,126,114,158,201,154,140,252,104,234, 55, 75, 51, 98, 7, 74,125,219,130,147,253,184,155,158,212,186, +141,215,234,122, 55,245,119,191,155,133,254,116,218,141,254,197,163,127, 87,123,249,184,194,197,255, 0, 12, 45,177,229, 5, 95, + 91,161,100,115,146, 12,116,148,144, 99,194,107,123, 7,252, 76,189,192, 18, 83, 97,112,180, 3,184,128, 83, 61, 97, 64,137,241, +138,142,233,191,209,179,147,242,237, 69,186,150,119,204, 46, 85,187,165, 5, 6, 54,119,109,170,222,169, 4,147,240, 38,216,233, + 26, 14, 94,164,229,154, 91,116,138, 52, 36, 49, 29,164, 4,161, 13,166,195,143,134, 41, 17,218,155, 81,143,253, 77, 70,254,172, +239,243,112,191,206,147, 81,127,216,180,111,234,206,255, 0, 55, 7,194,191, 14,134, 6,209,110,197,132, 54, 14,240,117, 62,100, +201, 62,243, 85,241,111,196, 23,113,215,131,151,239,173,194, 54,145,160,242, 2, 0,247, 10,191,176,177, 64,255, 0,157, 38,163, +255, 0,177,168,223,213,157,254,110, 23,249,210,234, 48,235, 71,163,127, 86,123,249,184,214,252,175,138,244, 79,173,100,254,100, +195, 58,159, 74,191,176,177, 64, 30,212,218,143,254,199,163,127, 86,119,249,184, 95,231, 77,168,255, 0,236,106, 55,245,103,127, +155,135,252,173,139,116, 30,180,191, 50, 97,157, 79,165, 95,248, 88,160,127,206,155, 81,191,216,212,111,234,206,255, 0, 55, 30, + 30,212,218,138, 63,234,106, 55,245,119,191,155,133,249, 91, 22,232, 61,105,126,100,195, 58,159, 74,243,181,166,153,246,161,205, + 90,145,148, 42, 26, 9,168, 83,169,153,126,172,177, 73,212, 22, 89,170, 22, 85, 2, 10, 36,181, 48, 78,136, 47,116,200, 90, 25, +126, 9, 82, 46,171, 79,109,118,179, 23, 28,231, 63, 71,126,149, 26,173, 87, 57, 49, 83,212,156,222,203,179,107,177,144,217,166, + 84,162, 51, 18, 92, 37,230, 40, 78,151,160, 63,245,137,114, 33,102,150,137, 45,169,179, 18, 63,120,149,169, 39,190, 88, 10, 87, + 70,142,212,186,140,121, 52,106, 47,245,103,127,155,140,219,237, 57,168,142, 29,198,135, 69,248,251, 51,191,205,198,157,190, 25, +142, 90,182, 16,150,219, 49, 27,193, 59,206,191, 1,228, 4,107,173,100, 92,221,224,215,110,169,106,113,193, 51,177, 32,106, 35, + 65,234,124,201,153, 6, 42,140,215, 77, 16,237,165, 83,204, 26,143,167,249, 10, 30,120,173,229,170,142, 82,136,214, 89,168,230, + 12,230,192, 67, 82,216,114,158,164, 51, 25, 38,106,203,225,125,212,133, 56,236,166, 88,116, 18,226, 75,178, 16,234, 82,141,218, +193,145,190,146, 89,185,219, 63,175, 78,231,230,148, 59, 54,153,153,197, 22,160,214,105,134,213, 41,232,142,209,220,110,141, 18, + 12,114,234, 92,139, 61,169,229,133,174, 67,141,182,159, 11,135,190, 90, 86, 18,155,217,142,209,218,130,242,173,245, 37, 24,159, +116,103,127,153,130,112,117,159, 84, 39,145,221,101,234, 79,196,199,119,249,152,129, 99, 22,183, 72,206,134,244, 17,175,144, 19, +190,253,209,239,215,122,151,255, 0, 75,125, 71, 35,142,234,103, 79, 50, 96,105,183,120,248,198,147, 21, 12,236,247, 76,237, 91, +163, 25, 83, 84, 25,205,116,140,193,157,125,134, 67, 51, 52,226,159, 92,204,145,222,151, 82, 38,143, 17, 79, 70,246,151, 92,251, + 36, 26,143,181, 32, 23,138,118,142, 83,224,217,127,153,153, 59,178,239,211, 93,146,123, 88,214,251,101, 74,236,177, 72,174,231, +154,203,207,173,114,243, 5,118,151, 33,168,101,219, 38,204, 33, 51,211,176, 37,161,220,167,146, 18,221,210, 58,227,235,228, 13, + 65,213, 87,166, 33,153, 84, 74, 75,109,171,239, 45, 44, 56,109,255, 0,246, 96,219,217,174,190,202, 44,166, 32, 21, 91,254,193, + 86,255, 0,207,138,172, 98,215, 56, 82,156,254,219, 74, 46,128, 12,201,208, 8, 35, 69, 13,247, 87, 83, 86, 46,112, 43,108, 96, + 53,253,215, 81,217, 18, 83, 5, 35, 82,102,117, 73,253, 59, 39,160,174, 1,200, 90,245,255, 0,180, 41, 93,205, 48, 50,254,111, +236,235,145, 40,148,169, 78, 22,101, 85,210,168, 43,246, 20,169, 36, 7,182,162,160,226,149,180,144,162, 3,106, 60, 31, 10,186, + 98,101,244, 60,228,127,164,243, 34,230,172,244,158,221,153,158,187, 54,147, 42, 67,102,142,198,100,175, 34,162,248,146, 22,178, +235,140, 45, 43, 95,117, 28,167,104, 8, 4, 34,246,216,145,101, 19,212,245,237, 85,212, 74, 94,247, 34, 81,233, 14,161, 28,220, +197,114,255, 0,147,152,143, 47,180,158,127, 96,146, 40,116,116,159,255, 0,108,239,243, 49,119, 45,246, 33,102,182,153,183,101, + 33,113, 37, 32,130, 32,206,132,147, 30, 62, 21, 85, 44, 89,225,247,173,186,245,203,234, 82, 38, 2,136, 32,200,141, 64, 2, 64, +220,120,213,175, 63, 48,100,216,181,132,208,230, 76,130, 42, 14, 39,120,134,228,134,210,241, 71,237, 4, 41, 64,148,222,226,226, +253, 14, 56,123,233,118,236,171,173,125,163,117,231,179,182,109,209, 13, 61, 21, 90,126, 72,205,146,165,230,169, 2,161, 26, 48, +134,194,229, 83, 22,133, 89,247, 16, 93,186, 99,188,108,216, 81,240,244,241, 11,205,187, 71,178,199,104,186,116, 54,179,174, 86, +166, 23,169,235, 38, 60,184,141,173,183,144, 15, 91, 44,172,216, 94,198,222,239,198,131,172, 84,117,235,179, 60,230,231,105,150, +165, 84,157,136, 21,117,209,171,143,170,100, 55,147,251, 5, 46, 18, 82, 15,170, 10, 78, 49,187, 59,206, 28,189, 67,198, 51, 65, +137, 4,164,200, 41, 58,131,208,252,171,169,102,194,203,139,172, 23,110,149,145,170,102, 32, 30,234,130,134,224,238, 71,206,187, + 59,183,140,126,208, 50,187, 21,102,204,165,217,135, 40,174,173,157,107,116,129, 75,165,199, 68,148, 51,236,232,127,236,221,123, +114,184,240,182, 86, 71,190,216,140,253, 17,253,143, 43, 29,139, 59, 21,229,253, 49,207, 20,150, 98,102,170,140,135,234,185,173, +182,150, 23,182, 83,170,176,111,120,251,219, 27, 75,105,248,131,136, 62,134,253, 36,211,115,212,117,101,201,240,163,210,115, 37, +129, 85, 38,168,226,158,143, 32,139,220,198,123,114, 72, 38,227,236,220,189,172, 2, 72, 23, 38,204,167,246,182,207, 53, 56,254, +213, 10,145, 71, 32, 40,165,105, 84,103,130,144,160,108, 82, 71,123,193, 24, 38, 30,221,253,254, 28,171, 6, 2, 64,204, 22,100, +194,140, 8, 30, 5, 35,195,158,245, 75, 21,179, 99, 9,197,147,125,118, 21,152, 39, 32,210, 82, 36,201, 62, 10, 61,122,109, 93, + 16,163,199, 30, 88,247, 28,248,123, 84,234, 56,233, 70,162,255, 0, 87,123,249,184,201, 61,170,117, 29, 95,245, 45, 23,250,187, +223,205,196,255, 0, 42, 98,253, 19,235, 85,255, 0, 51,225,115,185,244,174,129,194,197, 4,142,212, 90,140,175,189, 70,163,127, + 87,123,249,184, 59,150, 53,159, 85, 51, 27,110,212,220,129, 64,129, 76,138,146,169,181, 89,205,186,220,118, 18, 57, 36,168,187, +107,129,229,128,191,195,184,133,179,101,110,148,128, 57,149, 81,152,199,172,110, 92, 13,180, 20, 73,228, 5, 92, 24, 88,229,236, +247,244,181,246, 40,201, 21,165,101,101,234,115,217,146,160,209, 41,123,244, 86,150,185, 45, 21,143, 32,160, 74,127,241, 28, 54, +163,253, 35,244,237, 70,157, 14, 30,147,233,157,113,182, 30,144, 16,236,188,195, 25, 40, 64, 4, 19,225, 75,110, 19,208, 18,110, + 69,135, 54, 61, 49,146,213,179,175, 56, 16,145,169, 48, 43,117,230,222, 97,146,235,137, 33, 32, 77,117, 86, 22, 40, 85,118,158, +212, 52,159,254, 15, 71,255, 0,128,247,243,113,137,237, 69,168,160,243, 71,163, 31,255, 0,142,247,243,113,181,249, 91, 21,232, + 61,107,156, 60, 77,133,142,103,210,175,204, 44, 80,137,237, 67,168,157, 62,167,163,255, 0, 86,119,249,184,244,118,158,212, 77, +215,250,154,143,207,255, 0,167,119,249,184, 95,149,241, 94,131,214,155,243, 70, 21,212,250, 85,245,133,138, 31,252,231,117, 15, +206,145, 71,254,174,239,243,112,143,105,205, 65,255, 0, 99,209,255, 0,171,187,252,220, 47,202,248,175, 68,250,210,252,209,133, +117, 62,149,124, 97, 98,136, 79,105,173, 67, 87, 31, 83,209,255, 0,171,187,252,204,101,254,114,250,128,122,209,168,255, 0,213, +221,254,110, 27,242,198, 43,208,122,211,254,103,194,250,159, 74,189,112,177, 70,167,180,182,160, 30,180,138, 71,245,119,127,153, +143, 71,105, 60,252,127,234,138, 71,252, 7,127,153,134,252,179,138,116, 30,180,191, 51,225,125, 79,165, 94, 56, 88,163,207,105, + 60,248, 79, 52,138, 79,252, 7,127,153,140,135,105, 12,247,229, 74,164,255, 0, 87,119,249,152,111,203, 88,167, 65,235, 75,243, + 62, 23,212,250, 85,221,133,138, 77, 61,163,115,201,235, 73,164,127, 87,119,249,152,244,118,140,207,127,236,186, 81,255, 0,236, + 59,252,204, 55,229,188, 79,160,245,167,252,205,133,245, 62,149,117,225, 98,148,255, 0, 56,140,243,254,202,165,127,192,119,249, +152,247,252,226, 51,209,233, 76,165,255, 0,192,119,249,152, 95,151, 49, 62,131,214,151,230,108, 47,169,244,171,171, 17,109, 83, +209,237, 63,214,138, 45, 63, 47,234, 61, 5, 53, 24,148,202,236, 58,188, 70, 86,226,146, 19, 42, 43,161,214, 86,108, 70,225,184, +114,147,112,160, 72, 55, 7, 16, 17,218, 35, 60,249,210,169, 95,240, 29,254,102, 16,237, 13,158, 15,253, 85, 75,255, 0,128,239, +243, 48,147,195,248,162, 20, 20,152, 4,120,210, 60, 73,133,168, 65, 39,210,138, 83,251, 27,118,116,166,203,165, 75,143,167,140, + 19, 70,205, 21, 76,193, 1,183, 94, 90,219, 68,234,130, 28, 68,149, 20, 19,181, 72, 41,116,132,160,141,168,218,141,160,109, 22, +102,223, 97,206,205, 13,229,170, 30, 83,255, 0, 39,225,112,178,238, 79,168,229,154, 90, 92,154,234,148,221, 58,114, 82,153, 40, + 82,138,174,165, 40, 39,133,155,169, 59,214, 65, 27,141,245, 39,180, 14,120, 39,197, 76,165,127,192,115,249,152,216,141,125,206, +134,231,234,202,103,201,151, 63,153,130,255, 0, 74,199, 7,249,255, 0,242,243,253,207,169,164, 49,252, 36,245,244,173,245,238, +198,250, 49, 93,137, 72,134,149,230, 74,114,114,243,145,151, 65, 93, 27, 54, 77,134,186,111,115, 1, 84,244, 6, 20,203,169, 45, + 36,199, 82,144,164,164,128,189,196,170,228,155,140,166,118, 0,236,207,151, 22, 38,100,188,183, 88,203,243, 27,112, 22,106,121, +127, 52,207,133, 49, 9,246, 56,241, 22,142,253,151,146,225, 75,141, 69, 96,172, 40,157,238, 54, 28, 55, 88,223,130, 9,215,124, +228,174,180,218,105,255, 0,236,185,252,204,108, 78,184,103, 5, 11,154,101, 55,228,203,159,255, 0,188, 55,244,220,109, 2, 2, +255, 0,249, 83,140,115, 11, 87, 95, 74,209, 43,176,231,102,233,217, 38, 46,158, 78,201,114, 95,164, 67,159, 85,153, 30, 51,245, +153, 43, 82, 95,168,247,134, 75,157,225,115,188, 42, 37,197, 20,168,170,232, 54, 41, 32,128,112,214, 63, 96,253, 6,135, 83,147, +152,225,203,206,108, 86,166,200,113,217,185,134, 62,160,213, 91,168,200, 14, 49, 29,135, 91, 92,148,200, 14,169,181, 34, 36,127, + 1, 85,146, 89, 65, 64, 78,209, 98,200,214,220,220,179,111,171,169,223,240,156,255, 0,253,225,253, 23, 84,115,109, 86, 90, 24, + 52,248, 1, 37, 86, 81, 75, 78,112, 63,223,192,151,103,140, 50,146,162,228, 13,127,203,222,125,106,195, 56,157,133,195,129, 8, + 4,147,225, 66,145,216,183, 64,209,149,166,228,145, 67,170,125, 85, 57,233, 50, 28,136, 51, 20,192, 17, 37,234,128,168,153, 40, + 80,119,114, 31, 68,148,133,161,208,119,162,214, 6,215, 4, 93, 75,176,198,138, 66,201,121,190,137,147,242,234, 77, 79, 55,208, + 62,174,170, 84, 51, 21, 74,108,225, 49,105,147, 34, 90, 30,144,175,104, 67,203,115,191,146,226,203,137,113, 43, 30, 16,149, 0, +132,129,105, 43, 49, 76, 66, 65, 91,109,127,186,127,191, 26,142,105,158, 77,144,195, 71,228,175,239,198, 72,190,186, 79,253,195, +188,239,207,173,109, 11, 34,173,146, 42, 11,217, 75,179,125, 99,179,221, 47, 51, 74,205,121,245,236,197, 91,205,149,241, 84,170, + 77,113,201, 43, 75,101, 17, 88,140,219,105, 92,167,223,121,118,109,132,146,165,184,121, 81, 9, 8, 72, 74, 69,161, 83,165,211, +234,241, 21, 2,169, 1,169, 12,175,239, 52,242, 2,129,252,112,201,154,204,229,183,222, 56,134,135,193, 39,251,241,173, 89,146, + 66, 20, 91, 45,183,127,129,254,252, 9,219,149,188,225,113,103, 83, 78,155,101, 1,148, 87, 63,107,183,100,141, 65,123, 54, 26, +222,143,174, 52,138,108,148, 11,210,165, 4,255, 0,160,168,117, 13,169, 78, 32,119,100,248,130,121, 32,147,110, 44, 0,157, 47, +236, 85,168,149,156,216,196,237, 98, 44, 71,166, 68,112, 58,152,177, 84,143,180, 80,232, 60, 46, 44,223,247,137, 27,121,176,189, +136,233,161, 94,152,161,184,182,221,173,208,164,255, 0,126, 49, 70, 97,154,226,251,180,180,215, 62,227,253,248,180, 49, 27,132, +181,147,227,206,134,108,137, 84,209, 56,112,161,211,227,162, 36, 24,200,105,164, 32, 37, 8, 66,108, 0, 2,192,126, 0, 99,126, + 6,138,180,159, 52, 34,255, 0, 3,253,248, 70,170,248,253, 84, 19,240, 63,223,138, 57,197, 19,179, 85, 18,194,192,179, 85,152, + 15,133, 45,254, 7,251,240,176,179,166,151,100,186,229,193, 7,142,152, 94,195,234, 48,103,216,147,255, 0,103,143,125,132, 14, +141,254, 88,245,223,105,175, 46,246,111, 10, 11,245,120, 62, 88, 95, 87, 15, 76, 27,246, 31,220,199,134, 8,243, 70, 23,180,210, +246,111, 10, 10,105,224, 11, 91, 9, 48, 61,216, 48, 96, 36,155,219,242,199,158,194,144,122, 97,253,162,151,179, 80,159, 96,190, + 49, 84, 18, 60,176,100,195, 4, 90,216,243,216, 69,174, 83,132, 46, 41,123, 53, 6, 48,136,232, 48,132, 37, 19,131, 63, 87,164, +244, 24,201, 52,212,158,191,195, 15,237, 49, 77,236,212, 29, 48, 21,110, 70, 23,213,202,193,191,171,147,123,243,143, 21, 79,183, + 79,225,134, 23, 52,189,154,131, 38,159,206, 55,179, 0, 94,214,193, 3, 79, 35, 15, 40,244,119, 38, 77, 67, 40, 70,235,158,152, +139,151, 65, 40, 42, 39,106,146, 45,138,148, 0, 20, 67, 38,100,211, 61,196,190,227,126, 27,244,182, 44,120,148, 40,241,217, 67, +105,104, 11, 14,160, 99, 26, 21, 25,186,116, 70,218, 74, 64, 32,114, 6, 10,112, 58,156,121,174, 43,139, 59,118,241,131,160,174, +247, 13,195, 91,181,104, 72,212,211, 99, 28,180,158, 7, 76, 15,156,226,133,236,112,254,107,202,228, 36,241,129, 50,214,162, 72, +190, 50,217, 10,113, 82,107, 96,169, 45,167,106, 99, 37,194, 82,164,132,131,127, 92, 66,115,101, 17, 74,120,184,204,123,115,206, +212,226,106,234, 73, 87, 56,208,235, 40, 88, 33,104, 6,253,110, 49,210, 97,247,107,178,115, 48,212, 86, 21,253,170, 47, 81,148, +232,106,173,118, 17, 4,164,167,228,113, 15,212,220,143, 7, 48, 81, 76, 39, 91, 64, 82, 46, 88, 36,115,111, 49,253,223, 28, 91, + 85,220,182,180, 41, 82, 88, 71, 23,228, 12, 71,235, 25, 90, 29,106, 10,233,245, 56,157,227, 46, 14, 69,200, 32,249, 16, 71, 32, +143, 81,142,154,245, 22,216,221,129, 68,137,220, 30,135,239, 74,193,195,174, 46,240, 28, 68, 58,153,142,126, 34,184, 51, 84,114, +204,204,165, 93, 53, 24,140, 45,151, 25,115,123, 74, 71, 80,160,110, 8, 62, 88,188, 52,119, 84,127, 72,218,161,231, 69,200, 40, + 21, 7, 5, 50,186,201,251,162, 70,223,178,118,222, 68,144, 19,127, 59,251,177, 36,213,221, 16,132,237, 57, 94,211,117,139,217, +137, 75, 3,199,232,133,250, 43,208,244, 87,184,240,106,141, 56,202,210,232,245,154,158,155,173, 74,104, 85,153, 42,167,174,223, +114, 75,126, 54,200,249,140,113, 12,173,252, 38,249, 57,196, 41, 7,212,115,143, 2, 43,212,111, 31,180,226, 76, 29, 80, 65,144, +124,199,159,136,222,186,115,217,174,110, 6, 55, 53, 13, 74,253, 92, 51,200, 53,230,179,158, 83,131,152,155, 72, 75,143,178, 4, +150,129,255, 0, 84,242,124, 46, 32,251,210,176,161,242,193,214,227, 16, 45,108,122,168,184, 75,136, 10, 73,144,107,194, 92,182, + 83,110,148, 40, 65, 26, 26,125,144, 50,172, 92,195,152,218,135, 82, 37, 49, 26, 66,159,152,161,228,210, 19,185, 95,141,128,249, +227,231,239,111,190,213, 58,147,218,227, 90,157,208, 93, 62,174, 61, 7, 36, 81,164,152,233,166,211,157, 45,176,250,146,108,165, +184, 19,247,192, 60, 11,241,197,241,218,221,167,117,113, 61,155,123, 35,230,189, 74, 66,131,117, 90,218, 5, 27, 47,243,101, 23, + 28, 7,122,199,184, 14,127,161,142, 15,236,167,165,115, 32,211, 14,111,168, 71, 87,180, 79, 81, 86,245, 39,144, 15,191, 30,127, +196, 55,234,114,240,235,162, 52, 3,150,109,201,247,109, 94,179,192,248,107, 54,214, 70,229,105,239, 43,229,252,212,251, 64,251, + 54,100,156,152,152,172, 53, 69,109,231,200, 78,247, 86,144, 74,143,153,231, 29, 67,166,116,136,238, 64, 85, 74, 60, 52, 34, 58, + 20, 90,133,181,187, 93, 35,239, 44,122,220,254, 67,223,138,251, 38,210,102,213, 43,144,178,205, 46,153, 34, 82, 28,121,180,213, +220,142,146, 19, 26, 61,193, 88, 83,157, 16,165, 38,224, 11,238,230,224, 98,249,106,156,212,118, 83, 30, 51, 41,109,180, 36, 37, + 13,161, 54, 9, 3,160, 3,211, 15,195, 22,110, 45,227,118,247, 47,211, 61,122,251,170,175, 27, 99, 1,214,197,163, 71,125,252, + 7, 79,125, 14, 84, 75,240, 83,140, 12, 37, 95,129,130,222,200, 73,231, 25, 8, 32,249, 99,186,237,226,188,180,177, 38,132, 8, +106,244,252,177,154, 97, 19,250,159,150, 11, 38, 9,243, 24,244,194,255, 0, 22,195, 23,230,155,217,207, 74, 20,152, 74,253,156, +102, 33,171,211, 4,196, 51,211, 25, 8,132,117, 24,137,126,144, 98,134, 38, 33, 30, 88,247,217, 13,250, 96,159,178,171,254, 88, +240, 70, 87,248, 56,143,109, 79,216, 26, 26,152,182,234,156,101,236,195,201, 56, 37,236,167, 8, 69,244,195,118,212,187, 3, 67, +189,152,121, 12, 33, 27,158,152, 36, 34, 31, 76, 47,101, 32,116,194,237,105,187, 10, 96,136,214,235,141,169,140, 15, 4, 97,226, + 35,144,108, 19,141,137,142,171,223,167,199, 16, 46,212,131, 2,153, 38, 39, 31,119,242,198, 73,137,232,140, 62, 76,110, 47,140, +132,123, 96,101,218,152, 98,153, 38, 37,197,136,198, 66, 31,157,176,249, 49,239,229,141,137,140, 61, 49, 18,245, 76, 48, 41,130, + 98, 31, 76,109, 68, 80, 58,140, 62, 68, 96, 79, 9,198,212, 68,244, 78, 4,167,141, 77, 54,244,197, 17,237,209, 63,150, 54,161, +131,233,135,169,138, 78, 54, 38, 37,240, 34,232,163, 37,131, 77,153,143,199, 3, 18,140,162,134,227,182, 22, 64,190, 3, 55, 22, +222, 88, 55,151,154,238,219, 41, 29, 73,233,140,156, 81,204,214,138,174,135, 0,111, 45,248,145,200,212,137, 45,185, 37, 64, 2, +109,231,135, 77,198,101,129,114,158,113,178, 3, 72, 75, 1, 71,169, 29, 49,228,149, 34,246,252, 49,196, 19, 38,187,146,228,156, +162,181, 72,150, 66,118, 35,140,106, 13,108,251, 85,245, 61, 49,239,118, 74,174,164,254, 88,216,234,217, 45,133,173, 86,183,150, + 29, 52,243, 26, 10,193, 10,113, 99,109,172, 49,181,178,150,126,237,177,161, 83,163, 33, 62, 19,134, 82, 42,128, 18,111,249,226, +112, 78,148, 68,160,174,137, 42, 89, 74,174, 85,141,107,171, 54,218,182,149,223, 1,158,171,146, 57, 35, 3,167, 79, 37, 91,146, +187,123,175,137, 6,232,130,220, 29,234, 88,221, 85,165,139,238, 24, 88,132,166,180,235, 87, 1,207,207, 11, 15,216,154,127,101, + 21, 20, 16,252,237,143,125,147,221,130, 9,140,146, 63,229,140,189,157, 62,135, 30,133,219, 26,243, 94,192,208,255, 0, 98,255, + 0, 22,198, 38, 25,244,193, 47,102, 7,221,132, 35,123,206, 23,109, 77,236,230,134, 24,106,242,198, 38, 26,143, 54,193, 79,103, + 29, 13,207,203, 30, 24,188,252,112,225,243, 75,217,205, 10,246, 83,123,237,199,162, 50,137,228, 96,151,177,159, 92,100,136, 68, +225,251,106,143, 96,104,123,112, 20,163,194, 48, 66,157,150,101,204,115,104,104,128, 58,220, 96,246, 87,163,182, 85,223,186,128, +109,210,227, 18, 70,227,182, 60, 73,108, 15,128,198, 29,254, 54, 88, 81, 66, 6,189,107, 82,211, 9, 14,164, 41, 71, 74,140,181, +145,226,165,171,184,155,155,115,140, 31,201,148,224,215, 1, 65, 95, 28, 74, 95, 72,109,190,152, 31, 33,244, 31, 13,177,207, 43, + 25,189, 42,144,179, 91,173,225,118,113, 5, 2,162,142,229, 39,138,143,112,171,252,113,157, 38,155, 38,153, 82, 66,220,142,124, + 39, 18, 36,125,235,131,135, 76,194,110, 66,130,150, 58, 30,184,184,140,125,213, 36,161,209, 32,138, 3,152, 27, 8, 80, 91,102, + 8,162,112,150,167,153, 14,132,245, 29, 49,146,202,213,193, 24,206, 34, 18,210, 54, 1,211, 25,184,216, 60,131,206, 57,229,168, + 41, 70, 43, 73, 58,111, 76,221, 74, 84,130, 20,145,238, 56,100,252, 48,179,225, 63, 60, 16,121, 4,117,198,149,160, 1,193,193, + 90, 89, 72,210,160,179, 38,132, 72,130,160,110, 58,227, 64,130,165, 42,196, 96,171,172,173,106, 38,216, 77,197, 33, 59,173,241, +197,193,114, 82,157,232, 97,172,198, 98,152, 10, 59,107, 78,215, 16, 13,252,176,210, 76, 10,123,104, 44,174, 34,122,242,109,211, + 5,165,190, 26, 71,217,158,125,216, 11, 81, 91,160, 21,174,252,226, 77,220,187, 58, 42, 42, 70,221,181,254,161, 65,179, 6, 79, +162,213,161, 61, 13,230, 80,227, 46,160,165,198,150, 46, 20, 15,145,199, 35,246,170,202,249,219, 66,170, 84,236,241,151, 40, 79, +212,226,196,169, 33,232,207, 48,217, 90,146,128,161,118,156,253,235, 19,101,121,143,120, 56,236, 61,202,115,194, 13,207,166, 36, + 19,251, 63,229,252,235,149,196, 60,232,133,149,173, 65,212,180,149, 91,101,135, 0,251,249,190, 15,117,116,167, 45,225,222,241, + 27,117,245,233, 81,181, 79,176, 92,230,104, 64, 58, 17,200,215, 26,228,141, 80, 86,156,102,186,180,170,142, 94,152,188,189, 93, +144,153,177,213, 25, 1, 74,135, 33, 73, 1,208, 83,127,186,171, 3,199, 66, 15,174, 47, 76,129, 83,203, 57,237,248,174,211,171, +140,123, 35,196, 41,231, 74,192, 45,163,204,144,121, 6,223,158, 34,122,255, 0,161,104,211,138, 43,178, 40, 50,162,205, 66,110, + 83, 21,107, 83,106, 3,208, 27,144, 79,225,136,174,156,118,113,204,181,220,142, 51,213, 87, 57, 59, 65,139, 57, 39,217,155,105, +238,109,234,127,134, 11,109,196, 87,140, 90,118, 72,136, 26, 9, 6, 71,199,247,172,219,156, 34,214,230,224,186,224, 51,206, 14, +134,171, 79,164,135, 87,178,167,104, 13,118,162,104,173, 22,164,134,114,150, 72,111,188,155,177, 86, 67,178, 22, 7, 30,251, 36, +126,103,215, 22, 38,148,232,172,154,237, 30, 42,133, 45,202, 53, 33, 44,164, 52,183, 27,219, 41,244,219,245, 16, 71,217, 15,222, + 80,221,232,145,194,177, 11,209,205, 38,209,109, 43,215,186,133,119, 61, 85,211, 88,168,206,144,143,170,234, 18,218,251, 22, 29, +232, 84,160, 77,183,159, 8, 11, 35,143,113,231, 29, 96,212,114,122, 98,254, 23,134,219, 93,164, 62,242,179, 71, 47, 30,166,137, +138, 99, 79,218,178,155, 91, 81,148, 70,170,235,229,251,208,124,185,148,104,121, 78,148,138, 46, 94,166, 55, 22, 51,100,144,134, +199, 42, 81,234,165, 19,202,148, 79, 82,121, 56,125,236,135,200, 97,250, 99, 15, 76,101,236,188,241,127,195, 29, 80,112, 36, 64, +218,184,213, 54,165,153, 59,208,241, 16,223,238,227, 52,196,231,145,135,193,131,210,223,150, 51, 76,101,121,225,139,213, 30,192, +211, 20,197, 61, 54,227,207, 99,183,234,126, 24, 36, 35,127,129,140,132, 81,136,118,209, 79,236,243, 67, 61,144,126,198, 23,178, +254,225,252,112, 76,197, 30, 71, 30, 24,163,246,112,187,106,111,103,240,161,190,203,251,167, 11,217, 71,166, 9,123, 55,238, 12, +120, 99,126,238, 23,109, 77,236,244, 59,217, 71,166, 16,140, 61, 48, 71,217,125,216, 94,203,238,195,246,213, 30,194,135,136,182, + 60, 12,123,236,215, 28,140, 16,246, 65,233,143, 68, 68,245, 3, 17, 46,138,126,192,208,225, 24,143, 44,100,152,216, 33,236,131, +246, 78, 61, 17, 71,236,225, 23,169, 6, 13, 50, 76,112, 15, 76,108, 17,248,225, 56,122,152,164,126,166, 50, 76, 99,231,108, 12, +189, 68, 12, 83, 36,198, 62,152,216,136,164, 30,159,150, 30, 38, 41,233,141,137,141,238,196, 11,181, 48,205, 52, 68,111, 92,109, + 68, 96, 56,182, 29, 38, 48,242,198,105, 97, 35,203, 2, 83,180, 64,205, 55, 68,113,127,187,248,227, 98, 24,242, 3, 14, 80,192, +193,106, 61, 21,183, 82, 36, 60, 46, 15,221, 24,172,245,202, 26, 70,101, 26,178,205,170,157, 94, 84,138, 27, 26,139, 49,240, 10, + 24, 54, 62,120, 51, 77,164,152,137, 79,120,158,125, 45,130,140,180,134,198,208,155, 1,233,143, 36,172, 4,157,163,159, 44,115, + 87,120,155,143,140,128, 64,174,166,195, 14, 69,178,179,115,172,195,233, 66, 0, 7, 26,156,124,238,220,142, 72,245,195, 55,164, +169, 42,178,193, 30,152,214,252,228,178,201,230,247, 24,205, 2, 77,108, 6,200,173,242,106,170,104, 16,165,140, 12,147, 91, 82, +193, 72, 86, 24, 77,158,227,138, 37, 23,192,231,103, 5,248, 9, 32,140, 89,109,177, 86, 82,200, 2,139, 46,162,163,250,223, 44, +104,151, 80, 74, 17,247,190, 38,248, 14,186,161, 65,178,149,249,225,180,170,182,235,132,156, 88, 75, 69, 70,104,130, 19,161,162, + 47,213,122,248,176,201,250,157,255, 0, 91,227,206, 6, 59, 49,106,228, 43, 26, 22,241, 61, 85,243,193,195, 2,138,149, 81, 7, + 39, 93, 87,220,112,176, 52, 60,175,218,194,195,246, 85, 46,209, 21, 37, 75, 2,220,131,143,123,129,251, 56,116,150, 49,233,103, +212,126, 88,223,237, 43,206,114, 26,107,220, 39,246, 70, 16, 97, 62,105, 24,118, 25, 62, 95,195, 8, 50,112,221,168,165,146,153, +152,233,242, 24,243,217,199,161,195,222,228,227,223,103, 82,186, 36,225,118,162,156, 34,105,144,142, 47,211,243,198,232,209, 16, +181,216,167, 27,251,130, 15, 9,198,232,173, 22,150, 20,161,198, 32,227,196, 36,197, 73, 40,214,141, 82, 33,165,168,193, 69, 28, + 91,211, 14,194,210, 5,128,198,152,142, 21,178, 2, 61, 49,235,132,222,216,226, 46,221, 90,158, 57,171,162, 97, 1, 40, 17, 90, +166,202, 72, 22,192,153,110,155,149, 3,135, 85, 5,128,111,124, 12,126, 66, 84,163,115,231,138,153,171, 65,164,146, 41,204, 53, +135, 22, 1,193,136,150, 0, 1,229,136,244,121, 40, 66,184,193,120, 18,148,176, 0, 55,190, 17, 85, 58,208, 98,139,182,177,123, +222,216,218,165,164, 39,212,225,163,107, 54, 31,217,141,129,195,230, 48,225, 85, 80,163, 90,245,103,212, 97,187,128,168,240,113, +181,197,169, 34,252, 88,140,107, 14, 36, 3,137, 5, 17, 78, 17, 58,215,168,105, 54,185,198,169,110, 6,208, 82,148,245,198, 97, +210, 58,156, 53,159, 32,186, 2, 27, 77,213,127, 33,135,206, 73,169,161, 16,104,101, 65,197,182,173,201, 87, 39, 3, 75,115,167, + 58, 24,105, 11,117, 74,232,132, 38,228,252,177, 35,103, 42,203,154,166,215, 57,228,176,135, 62,232, 60,173, 95, 4,255, 0,126, + 37,180, 44,187, 76,160,178, 81, 9,146, 22,161,246,142,175,149, 28, 28, 92, 36,104, 53, 52,150,180,160, 84, 66,131,148, 19, 67, +113, 21,154,248, 5,109, 14,241, 17,135,234,219,155,171,251,177,204,250,175,219,147,180, 20, 13, 68,153,150,242,206,148, 42,101, + 53,167,212,134,102,185, 52, 50, 28, 60,217,182,209, 98,167, 87,107,240,145,229,114, 70, 59, 62, 84, 56,111, 52,164, 56,216, 55, +234,125,113, 67,107,206,139, 66,122, 74,179, 46, 86,168,136, 85, 38, 66,204,119,148,144,180, 13,214,220, 20,142, 46, 56, 7,130, + 15, 31, 44, 87, 93,195,169, 50,161, 63, 74,139, 97,167, 15,126,185,221,125,164,179, 46,172,187, 47, 43, 85,114,196,200, 85,104, + 46,150,231,211,231, 71, 82, 29, 97, 94, 64,140, 67, 53,203,180,245, 95, 74,178,116, 12,133, 81, 14,182,226, 25,190,208,171,109, + 10, 36,237, 0,249,243,249, 98,111,216,167,176, 6,190,100, 44,197, 95,212, 60,249,172, 21, 60,200,101,173, 69, 21, 28,196,178, + 86,190, 74,182, 52,146, 78,198,193, 61, 47,111, 65,142, 66,237,181,156, 53,203, 45,118,134,150,238, 88,209,252,185,155,221, 68, +180,177, 33, 57,146, 50,164,183, 18, 55,121,227,113,150,199, 69,157,160,119,130,234, 74, 65, 0, 89, 71, 6,105,212, 56,169, 27, + 84,125,145, 38,227, 34,117, 20,102, 6,187,167, 56, 84,149, 78, 97,185, 77, 73, 42, 10,121, 18, 17, 98, 19,228,160,124,239,238, + 56,250, 77,147, 87, 50,110, 86,166,204,169, 36,135,221,128,202,223, 4,116, 89, 64, 39,243,190, 62,102,228, 76,187, 76,111, 61, + 39, 59, 69,160, 57, 22,151,245,138, 20,205, 61,230,202, 44,192, 80, 42, 72, 73, 0,165, 36,238,176,226,193, 93, 7, 76,125, 62, +203, 21,122,110, 98,162,196,174, 82, 29, 14, 70,150,194, 93, 97,105,243, 73, 23, 31, 15,134, 58, 92, 46,237,155,124,210,119,138, +200,197,236,212,234,210,148, 13,191,138,122,134, 15,149,134, 54, 8,247,198,246, 26, 66,190,254, 54,119, 9,189,146, 49,178,155, +230, 92,216,214, 81,176,117, 35,106,107,236,222,241,143, 82,192, 7,203, 15,154,130,226,249, 74, 78, 50, 84, 23,146,109,221,159, +142, 36, 46, 91, 81,128,170, 26,173, 92, 78,226,153, 38, 62,227,100,167,242,195,184,244, 57,143,240,219, 56, 39, 74,164,167,112, + 91,169,248,241,131,108,180,195, 72,240, 0, 45,231,140,187,204, 88, 48, 97, 26,154,183,109,134,151,117, 94,130,162,206,101,201, +141, 38,235, 72,189,176,209,218,123,140,159, 26, 49, 50,125, 76,158, 20,171,224,125, 82, 51, 14, 55,116,129,138,182,248,218,148, +168,112, 85,183, 48,100,148,202, 13, 70, 76,123,121, 99,194,201,195,231,227,132,158, 6, 53,134,136,232, 49,188,135,130,211, 34, +177, 93,183, 83,106,130, 41,175,117,238, 56,244, 53,238,195,174,232, 30,163, 30,247, 3,211, 15,218, 80,123, 58,106, 26, 30,236, +122, 26,227,129,249, 97,208, 99,229,140,131, 9,244,194,207, 75,179,166,189,207,184,227,208,200,244,195,158,224,122, 28,122,150, + 0,242,196,115,211,246,116,216, 49,230, 49,144, 96,245,218,112,232, 54, 7,150, 50,102, 58,157, 88, 64, 6,215,228,226, 37,200, +212,212,146,212,152, 20,221, 17, 28, 87,221, 65, 63, 1,140,204, 55, 91, 23, 91, 68, 15, 82, 48,122, 12, 86,216,111,106, 44, 79, +153,195,149, 24,206,178, 89,144,129, 99,140,135,177,118,219, 92, 1, 34,181, 90,194, 86,180,201, 48,106, 61, 14,156,228,181,109, + 71,226,113,185,202, 52,166, 86, 0,111,112, 62, 99, 4,102, 76,167, 82,163, 46, 75,175,182,203, 45,166,235,113,106, 9, 74, 71, +169, 39, 12,169, 89,198,147, 90,134,153,244,122,147, 50,227,169, 68, 37,248,238,133,160,145,214,196,113,138,170,198, 22, 85, 40, + 78,149,109, 24, 58, 2, 97, 74,214,180,123, 35,233, 94,194,202,175,126,150,196,138, 27, 66, 52, 84, 34,220,237,192, 42,214,118, +165,208,163,123,100,197, 34,246, 59, 91, 43, 1, 75, 3,147,180, 30,164, 14,109,133,144,117, 63, 34,106,109, 57,117, 76,151,153, + 99, 79,101,151, 10, 30,238, 28,185, 66,135, 80, 71, 81,138,151,119,238,220,182, 1, 76, 70,244,123,123, 54,109, 93,253, 90,158, + 85, 34, 46,165, 45,220,250,243,134, 18,229,130, 77,151,140,103,212,208, 9,105, 29, 48, 53,217, 4,146, 65,198,120, 50,107,113, +150, 76, 73,173,146,101, 88, 18,174,152, 27, 38,164, 64, 41, 81,190, 50,149, 48,164, 16,122,121,224, 68,249, 91, 82, 84,149, 98, +194, 34, 42,216, 64,175,101,212, 0, 28, 28, 13,126,161,226, 42, 81,182, 52,201,152, 72,228,224,124,169, 91, 70,247, 86, 18,145, +230, 77,177,105,180,205, 76,173, 8, 21,190, 68,197, 94,225, 88,208,185, 69, 66,247,198,158,241, 42, 73, 88, 88,218, 47,115,126, + 5,177,228, 89, 49,101,178, 31,136,250, 29, 65,232,180, 40, 40, 31,152,197,196,173, 59, 10, 9,113, 19, 91, 67,164,249,227, 52, +182,162, 46, 71, 24,241, 40, 28, 27,115,141,173,133, 19,111,126, 38, 28, 20,150,160, 19, 53,175,187, 42,251,163,240, 24, 88,145, +229,166, 51,137,140,232,203,181, 86, 89,104, 57,101,221,214,134,229, 91,247,249,194,198, 51,248,195,108,188, 81,157,189, 58,185, + 7,222, 50,152,245,170,189,185,163, 9,108, 90,214,198, 93,213,255, 0, 87, 27,210,221,199, 76,102,212, 98,226,130, 66,113,210, +169,208,145, 38,185, 48,146, 78,148,216, 51,113,194,113,190, 45, 49,114, 14,227,194,125, 78, 10, 51, 79,101, 8, 0,160, 19,239, +198, 75, 1,177,100,129,242,198, 61,206, 46, 0, 33,189,234,251, 54, 36,153, 93, 52, 77, 46, 34, 5,148,187,227, 54,227,199, 73, +176,111,143,134, 61,222, 66,190,237,241,234, 93, 7,128,156, 99,174,250,225,123,170,180,209,110,202, 54, 21,137,137, 29, 74,184, +111,231,141,201,137, 20, 39,196,145,127, 76,100,148,130,157,196,219, 26,222,113,182,211,125,220,143, 76, 12,221, 60, 79,234, 52, +253,147,100, 64, 21,180, 56,195, 9,218,142, 62,120,212,185, 13,168, 16, 15,195, 3, 37,207, 82, 84, 72,195, 69,213,148,158,119, + 96, 10, 89, 81,147, 71, 67, 6, 52,167, 21, 39,109,123,244,192, 73,111,132,172,237, 87, 24,115, 46,165,222,141,164,223, 3, 31, + 89, 90,190,120,136, 58,213,230,155, 32, 83,168,178, 84, 85,107,224,221, 45,226, 19,215,229,128, 16,129,176, 54,243,227, 6,169, +106, 9,229, 88,124,212,156, 77, 26,101,219,142, 85,206, 54,247,196, 14, 78, 26, 52,177,110, 49,234,149,230,113, 32,106,161, 69, +110, 91,230,252,155,227, 5, 72, 4,217, 29,113,130, 82,228,133,165,166,144, 84,162,108, 6, 36, 20,138, 12,122, 82, 68,201,190, + 55,237,112,157,190, 22,255, 0,188,225,249, 84, 20, 82,129,173, 50,135, 72,117,108,137, 21, 21,150, 16, 71,132, 91,196,175,151, +150, 4,213,115,125, 58,149, 43,234,250, 28, 61,210, 13,198,240,110,175,141,207, 79,150, 48,212,156,222,170,100, 23, 28, 47,115, +111, 14,206,167,241,197,109,145,171,238, 87,107,238,200,158,247,114,194, 13,237,123,173,195,233,238, 24,164,235,164,154,100,130, +173, 77, 93,249, 69,165,185, 17, 51,164,158,241,247, 5,212,165, 18,118,143,119,247,225,245, 74, 90,227, 32,168,174,222,227,134, + 89, 34, 82,101, 66, 47, 95,195,110, 9, 56, 27,159, 51, 85, 62,154,149,239, 95,221, 28,226,227, 73,134, 65, 21, 85,102, 22,102, +148,204,225, 30, 40, 82, 92,125, 32,158,156,224, 68, 56,185,107, 57,214, 67, 19,234, 1,101, 10, 23,104, 43,174, 41, 29, 90,215, +152, 84,247,204,102, 25,117, 75, 42,179, 97,148,220,147,138,162,126,126,237, 79,147, 67,154,165,165,217, 1,252,206,220, 71,210, +169,217,126, 12,132,137,142,178, 77,138,154, 11,178, 84,180,143, 22,210,161,112, 15, 56,101,129, 29,227,165, 22,221,181,188,168, + 27,242,174,207,214, 45, 73,139,164, 20, 4,207,157, 75,109,218, 50,155, 68,117,251, 38,229,200,101,229,171, 98, 44,210, 65, 46, + 37, 68,132,248,124, 64,249, 16, 73, 79,205,253,104, 38,102,185,204,170,207,203, 79, 64, 15, 62,243,109,181, 37, 73, 42, 93,182, + 18,171, 39,238,139,241, 99,207, 91,129,128, 29,160, 62,147, 29, 64,147,152,232,163, 84,116,203, 48,228,186,115, 85,214,214,235, + 25,150, 19,172,201,117,212, 40,134,124, 32, 20, 4, 7,123,181,146,149, 43,132,249,114, 48, 63, 36,206,206, 90,137, 93,115, 61, +230, 30,249,104,117,107, 49,212,240, 32,175,113,185, 95, 62, 71,139,122,129,131,148,144,172,252,163,106,155,141,173,150,123,201, +131,215,157, 73, 87, 1,167,146, 59,182, 82,148,142,128, 12,117, 71,100, 28,202,205, 75, 77,191, 71,156,118,238,210,228, 41, 9, + 4,255, 0,209,171,196, 63, 61,195, 28,226,244, 5,177, 13, 46, 6,109,199,138,231, 6,244,195, 83,102,105,148,241,152,154, 87, +250, 56, 90, 4,182,192,251,205,238,218,109,239,228, 31,150, 44, 54,172,201,129, 85, 25,115, 43,146,107,180,218, 90, 61,127, 44, +111,105,105, 38,226,223, 44, 70,178,198,110,165,102,154, 52,122,229, 22, 88,122, 60,134,194,144,180,255, 0, 15,142, 10,183, 47, +204, 28, 21, 37, 93,107, 76,132,198,212,110, 44,158,236,219,139, 28, 63,143, 37, 43,177,176, 62,235, 98, 60,196,195,235,135,176, +230, 0,174, 15, 92, 58,138,198,179, 66, 83,109,171,113, 71,146,243, 64, 93, 3,229,141,107,157,183,130,191,150, 7,174, 89, 31, +173,110, 56,195, 89, 83,211,110,191,158, 4,115, 40,235, 80, 13, 4,152, 20, 73,250,162, 80,124, 74, 24,105, 34,164,149,139, 3, +215, 2,156,152,165, 30, 85,127, 76,105,113,229,168, 90,231, 18, 75,122,213,144, 2, 69, 19, 83,193,195,201,199,137, 3,203, 12, +163, 56,161,213, 95,142, 28,119,192,114, 14, 54,173, 46,148,202,114,157,171, 22,246,209, 47,156,195,122,114, 18,155,116,194,216, +159, 76,105,106, 75,107, 36, 37, 96,144,108,108,113,189, 42, 73,231, 27, 8,115,180, 78, 97, 88, 46,180, 91, 86, 83, 72, 36, 95, +129,143,118,156,100,146, 15,221, 24,220,152,238, 44, 92, 52,109,134, 82,146,157,205, 64, 54, 85,176,166,251, 79,166, 22,213, 94, +214,195,133, 52, 81,247,145,140, 10, 20,162, 54,167, 8, 45, 36, 77, 46,205, 83, 17, 88,198,142,185, 46,134,210,109,234,112,241, + 77,199, 76,119, 33, 71,149,246,182,218, 86,130, 46,130,124,254, 56,214, 30,110,149, 13,233,210,142,212,180,217, 90,207,160, 2, +231, 28,155,173, 29,163, 53, 3, 46,178,254,171,100,166,166,210,104, 82, 28, 49,170, 19,229, 71, 79,112,147,115,103,148,187,110, + 77,133,172, 64, 62,252,114,248,206, 44,150, 92, 13, 5,104, 72, 3,196,159,231, 74,190,149,219,225,236,135, 94, 4,147,200,111, + 21,208, 84,188,225, 94,211,172,204,114,142,104,168, 55, 84,132,152,139,117,170,146, 30,239,100,157,160,169, 93,226, 16,144, 18, + 0,244,235,135,210, 53,195, 79,126,183, 69, 11,235,160,185, 18, 32,251, 92, 85,182, 82, 91, 91,118,191, 38,254, 19,107, 30,113, +243, 86,177,219,170,143,167,179, 42,121,135, 38, 86,220,145, 46, 69, 73,217, 20,250,181, 65,197,186,212,132,169,189,138,108, 43, +130, 7,136,155, 31, 63, 76, 80,249,255, 0,180,158,170,102, 7, 42,210, 41,153,177,198, 99,189, 79,238,164,152,207, 17,184, 27, + 94,231,112,230,252,113,205,184,198, 21,133,190, 55,121,112,174,208, 0,142,233, 4,136, 62, 32,141,127,125,199, 74,195,186,227, + 36, 90,142,226,119,141,249, 14,158,117,222,253,172,126,146,109, 60,250,130,161,167, 89, 82, 60,197, 76, 15,247, 18,223,113,132, + 46, 43,204,169, 32,144,149, 19,125,225, 87, 29, 45,239,199, 55,102,158,223, 58,171,167,185, 86, 62, 82,210,201, 38,137, 71,101, + 14,188,220, 84,200,105, 13,135, 22,224, 87,123,192, 81, 74, 65, 22,218, 79, 67,142, 33,205, 90,179, 10,171, 76,106,133, 34,168, +228,167,217,117, 37, 73,108, 43,109,137,228, 21, 94,220, 96, 46,110,204,149,136,146, 96,210, 37, 79,122, 60,105, 42,176, 75,175, +238, 79,119,126, 46, 60,192,228,227,176,181,192, 24,100,140,234, 36,147, 39, 55,132,108, 52,143, 42,225,159,199,241, 23,238, 59, + 85,186,115, 64, 29, 52, 29, 58, 78,230,187,110, 63,210, 47,171, 57,202,112,133, 92,212,161, 38,160,228,177, 32,178,152, 12,187, + 30, 58,130, 45,118,183,130, 71, 22,184,189,186,227,110, 69,250, 78, 51,190,153,101, 60,215,151, 50, 74, 88,129, 58,168,165,150, +106, 29,195,108,165,151, 9,251, 71, 16, 54,242,163,229,233,124,112, 46,123,207,239, 73,152, 24,162,161, 61,204, 7,212,216,155, + 13, 5,176,240, 61, 20, 71,151, 76, 48,111, 60,202,170,237, 97, 50, 84, 20,142,165,106, 82,247, 31, 79,118, 52,127,161,217,191, + 14, 56,153,219,126, 80,100,127, 29, 40, 3, 22,187,246,142,213, 75, 37, 94, 38,126, 63, 42,250,249,217,211,233, 81, 98, 70,148, + 72,164,103,124,217, 25,204,196,203,145,217,164, 74,170,164,247,114,148,162, 2,251,213, 32,168,166,198,231,119, 75, 91,140, 95, +244,175,164, 35, 67, 88, 68, 72,186,129, 87, 77, 18, 75,201, 9,121,231, 22, 28,142,151,127,101, 43, 79, 36, 30,160,144, 56, 56, +248,131,166,218,223,152,180,242,166, 12, 40, 12,199,125,212,168, 23, 4, 52, 56,226,144,160, 65, 27, 87,193, 4, 31,150, 38,116, + 94,208,110, 76,201,135, 43,231, 58,148,215, 41,226, 67,138,132,202,154, 79,250, 58,207,136, 42,224, 2, 65, 36,220, 95, 25,207, +224,138, 15, 74, 63, 79,199,221,167,195,229,177,233,108,184,219, 20,181,202, 51, 5, 36, 8,131,175,198,102,121, 87,220,220,189, +172, 90,105,159, 41,255, 0, 91,101, 76,245, 77,153, 28,172,160, 45,185,105,235,243, 56,105,153,179,238, 75,161, 82, 95,174, 86, +179,141, 58, 44, 40,192, 25, 18,157,150,144,134,193, 54,186,141,248,199,196,218,167,105, 92,193, 43, 47,194,202,249,118,172,245, + 42, 12, 32, 84,149,190, 82, 82,235,155, 70,237,167,109,211,127, 43, 19,137, 14, 94,237, 18, 51, 4, 21,229, 74, 14, 82,147, 84, +106,163, 24,125,103, 5,164,240,250, 27, 79,141, 69, 92, 21, 40,168, 92, 88,116,247,226,187,152,107,246,237,231, 87,211, 65,212, +157, 6,218,252,205,116,237,113,234,214,220,118, 34,127,246,250, 71,194,107,233, 38,180,246,173,167,101,252,244,222, 65,201,213, +152, 79, 69,105, 74, 21,154,219, 46,182,235,109,180,166,194,155, 91, 4,173, 41,116,146,171, 90,226,220,249,227,156,179,159,105, +125, 78,204,249, 29,154, 37, 39, 49,202,126, 93, 33,231,227,213,167,191, 49, 40, 70,197, 93, 77, 40, 32,125,229,132,241,226, 81, + 3,223,142, 54,155,175,175, 10, 29, 71, 44, 12,175,220, 48,128,160,168,147, 29, 40, 49,208, 14,237,137,113,126, 62,156, 14,111, +137,212,188,253, 47, 43,233,204,125, 86,151,146,225, 83, 40,249,138,148,168,212,104,116,234,154,148,229,218, 33, 37,231, 55, 40, +253,173,252,237,111,118, 50,110,108,113, 22,138, 75,170,204, 52, 16, 32, 2,122,145,154,117, 4,233, 37, 58, 13,122,229,189,197, + 47, 93, 21,169, 68,128, 57, 14,159, 31, 10,183,179, 94,112,212, 26,254, 79,167,230, 74, 70,125,155, 18,179,245,114,100,212, 35, + 74,173, 41, 54, 66, 85,181, 42,109,182,205,150,226,173,114,159, 75, 96,234,251, 97,106,243, 52, 42, 85, 86,101,110,125, 58, 45, + 62,152,136,209,167,209,105, 97,150, 38, 58,149,130, 3,225, 73,176,122,197, 91,201, 85,185, 6,216,231, 58,110,110, 68, 28,191, + 68, 53,106, 90,232, 52, 60,201, 86,246,215,235, 5,244,185, 32,161,180,237, 83,125,229,138,146, 73,230,199,175,166, 52,235, 23, +104, 38,243,198,114,122,133,150, 39,119,116,133,109, 68, 72, 84,214,150,203, 85, 5,164, 4, 37,197, 32,120, 59,203, 1,185, 65, + 34,231,203, 21,173,172,221, 85,194, 83, 18, 82, 84, 66,186, 9, 0,164, 17, 58,238, 34, 98, 6,189, 69, 54,241,181,165, 5, 89, +251,219, 1,204,248,252,188,235,189,123, 58,125, 38, 25, 95, 63,206,111, 46,106,109, 7,234,135,151, 39,185,110,170,153, 8, 49, +182,237,240,169,194, 79,133, 74, 32,244,227, 29, 61, 78,206,217, 66,167,151, 83,155, 41,249,138, 35,244,229, 35,112,154,211,193, + 77,145,241, 24,248,163, 63, 55, 80,234,181,234,125, 63, 44,228,134,225,138, 20, 62,242,175, 21,201,192,183, 33, 64,139,184, 9, + 41, 81,235,210,255, 0, 12,117,167, 99,238,212,204,228, 90, 25,211, 58,206, 81, 53,122, 13, 62, 59,107,126,165,151,221, 82,216, +105,151, 84, 84,227,178,133,174,109,113,101, 91,139, 17,141, 91,251,183, 45, 25, 14,100,130, 99, 67, 2, 53,137, 38, 79, 80, 96, +114, 58, 77,116, 86, 28, 72,227,131, 35,186,244, 53,209,250,213,155,114, 2,179, 93,217,205,113,102, 37,104,239, 10, 26, 76,196, +173,133, 30, 10, 85,221,184, 18,122, 92, 16, 58, 97, 99,151,181,230,163,163, 20,236,200,212,156,141,155, 50,173,102,153, 39,122, +152,114,169, 53, 74,146,201,184, 37, 11, 7,145,107,241,238,248, 97, 99,146,119,134,223,184,117, 78,185,112,185, 81, 39, 64, 99, + 94,144,168,138,205,126,253,194,242,137, 35,126, 71, 74,250,194,132,244, 55,195,200,113,136, 29,229,240,221,132,248,135,199, 4, + 16,176, 18, 2, 79,150, 59, 60, 66,225, 77,162, 7, 58,234,237,154,204,169, 52,150,189,157,112,222, 67,252, 95, 25, 58,231, 23, + 39,140, 51,147, 40, 36,220,114,113,204,169,100,154,217,109,178,107,213,204, 45,158, 45,141, 98,166, 82,163,124, 51,126, 69,239, +124, 53,113,244,129,193,231, 16, 10,154,180,150, 68, 81,163, 87, 73, 78,210,113,173,115,144,187,133,155, 96, 33,149,180,240,113, +232,152, 84, 57, 56,121, 53, 32,196, 83,154,131,169,231,106,133,176, 34, 67,206, 95, 14, 37, 74, 66, 82,121,231, 3,221,144, 22, +110, 14, 28, 77, 90, 66, 0, 21,232,125,203,216,158, 49,152, 9, 81,189,252,241,165, 4, 44,216, 97,195, 97, 32,218,248,148, 19, + 68, 48, 41,212, 84,132,218,248, 37, 25,212,131,112, 48, 49,178,145,208,252, 48,225,151, 82,146, 2,149,111,137,196,130, 73,160, + 44,131, 70, 99,190, 15, 55,198,242, 73,248,224, 92,119,145,112,174,240,126, 56, 61,150, 34, 34,116,190,245,205,170,109,171, 21, +130,122,159, 33,254, 61, 49, 34, 34,170, 44,128, 38,139,229,218, 81,132,208,155, 37,145,222,175,238, 5,113,180,122,252,113,186, +179, 48, 50, 10,183,254,175, 0,117, 62,252,109,153, 39, 98,142,196,149,145,233,128, 21,151,223, 8,113,197,144, 9, 29, 54,224, + 43, 81,136,170,154,168,230, 53, 92,106,238, 98, 98, 20, 39,156,113, 59,212, 18,108, 73,251,184,165,178, 14,119,118,163, 91,113, +142,244, 54,143,105,218, 18,165,242,171,158,113,104,107, 74,216, 52,167, 91, 97,145,189, 73, 55, 54,220, 78, 57,123, 44, 87, 14, + 79,213, 70,215, 60, 31,103, 83,188,238, 28,130, 79, 23,197,126,200,169, 36,209, 91, 80,218,190,130,229,247,151, 78,203, 12,173, +147, 96, 88, 4,155,115,211, 21,126,171, 84,164, 20, 59,185,103,113,191, 67,206, 39, 57, 27, 49,181, 89,203,145,154,218, 47,220, +131,201,247, 98, 59,169,121, 41,250,156,103, 87, 25,126, 37, 32,242, 49,117, 36, 6,196, 85, 39, 37, 74,174, 82,170,179, 90,205, + 90,146,221, 14, 3,123,201,243,183, 67,126, 49, 47,205,154,103,170, 25, 86,135,178,145, 95,159, 21, 98,202, 75,177, 29,216,160, +127,187,227,137, 6, 66,200,107,203,217,241, 85, 73, 74,220,182,215,116,139, 98,198,205,217,145,170,205, 45, 81,148,194,119,116, +196, 20,176,161, 21,105, 50,212, 20,239, 92,135,153, 6,107,204,111,171, 47,234, 68,193, 83, 75, 66,237,251,115, 9,113, 65,119, +184, 85,200,242,182, 38, 89, 59, 79,168,201,165, 50,211,101, 4, 37, 62, 45,160,117,198,253, 67,203, 43, 69, 84,212,119,129,119, + 57, 36,112,110,112, 94,131,150, 93,167,195,106,107, 79, 40,165,225,123,142, 44,124,198, 34,149, 32,236, 34,162,249,113,104,149, + 42,106, 43,155,178,186,162,165,214,144,223, 10, 65, 9,219,231,231,138,139, 53,230, 88,212,158,246,140,235,128,180,248, 45,172, + 31,222, 4, 3,242, 54, 56,186, 53, 23, 49, 63, 71,140,242, 82,214,226, 18, 65,184,232, 61,113,203,217,162,162,186,174,102, 92, + 53,155,184,227,183, 40, 39,175, 56,179,106,231,247, 42,146, 82,102,106,230,208,205,109,206,122,111, 5, 84,232,146, 67,209, 92, + 30, 22,222,241, 37, 10,247,122, 95, 22,107,125,171,243,162,141,219,133, 16,123,138, 14, 40,236,159, 73,117,168,237,177, 33, 23, + 66,211,224, 82,189,125, 13,176, 90,116, 89, 81, 89, 83,172,166,234,108, 93,105,191, 84,250,143,134, 59,174, 26,123, 11,114,235, +176,188,109, 36, 43,101, 30, 71,161,240, 63, 3, 88, 56,243,184,144,183,237,173, 28, 32,167,112, 57,143,220,124,170,224,111,181, +182,118,138,221,149, 2, 35,138,234, 9, 73, 24,124,231,108,236,196, 99, 32, 70,203,113,144,224,255, 0, 88, 84,178,111,142,119, +147,153, 20,201,220, 79, 24,214,230,106, 74,145,100,117,199,168,126, 82,193,220,130, 88, 31, 26,243,223,205,120,194, 4, 7,141, + 91,213,206,212,218,157, 50,172,170,147, 53,179, 28, 17,100,176,208,240, 36,124, 48,218,143,218,223, 83,232,175, 19, 34,162,137, +141,168,220,162, 66, 47,111,158, 41,233, 53,235,164,172,185,206, 7,185,153, 16,226,138, 66,133,241,124,112,214, 22,166,242, 22, + 19, 30, 66,170,163,136,177, 32,230,126,217, 83,230,107,173,114,175,109, 44,191, 46, 50, 81,153,232, 78,178,231,154,227,170,233, + 63, 35,131,255, 0,231,127,165, 97, 10, 80, 50,247, 14,137,238,122,227,139,152,204, 14,216, 13,215, 3, 14,227,102, 54,183, 0, +190,184,200,119,128,176,101,175, 48, 73, 30, 0,233,245,173,182,248,227, 22, 75,121, 74,129,243, 26,215, 92, 77,237,153,147, 90, + 73,246, 10, 36,151, 21, 99,183,122,128, 23,196,106,163,219, 39, 51,200,109,214, 41,244, 40,237,111,184,109,101, 68,148,140,115, +155,185,132,149,120, 69,189,248, 77,230,165,180,171, 41, 67,241,197,150, 56, 55, 8,103,102,231,204,147, 84, 31,226,220, 85,223, +251,145,229, 2,186, 47, 71, 59, 68,191,150,170,179, 31,206,111,200,146,220,197, 5,110, 74,175,177, 94,182,197,235,147, 53,115, + 36,103, 56,166, 69, 42,180,210, 84,159,188,219,202, 9, 80,252,113,193, 80,179,138,247,237, 82,198, 10,196,206,106,100,133, 37, +226,159, 93,170,182, 5,127,195, 12, 60,178,180,119, 73,233,183,165, 14,207,137, 46,109,210, 16,190,242, 71, 93,253,107,232, 84, + 74,229, 25, 77, 7, 81, 81, 97, 66,246, 42, 14,139,127, 28, 18, 98,183, 79,148,128,152, 82,218, 89,181,236,133,131,124,124,250, +137,159,103, 6, 59,182,106,143, 0,122,164, 58,112, 78,141,171, 57,139, 42,200,250,210,155, 95,122, 58,155, 73,187,157,233,178, + 71,159, 92,114, 23,156, 16,251,146,160,246,190, 35, 79,157,116,182,220,110,203,121, 82,166, 52,231, 7,248,174,241,113,254,240, +220,163, 27, 19,220,161, 37,205,215,176,232, 49,198,212,206,216,186,139, 67,152,212, 71,234,226,114,220,104,186,152,203,103,122, +214,129,114, 84, 2, 69,236, 45,215, 19,252,129,219,155, 43, 84,226, 45,204,249, 13,202, 96, 41, 61,219,157,218,199,139,246, 84, +146, 46,147,142, 82,251, 1,197,173, 26, 86, 85,165, 97, 34, 72, 74,132,129,214, 55,174,146,211,137,240, 75,181, 12,210,130,127, +228, 52,245,218,188,215, 94,215,185, 41,188,191,245, 99, 53,186,180, 57,176,171,197, 53, 10,108, 88,189,211,254,206,218,182,169, +197,110, 7,192, 47,127, 9, 23,252,177,243,231,180,119,106,188,215,158, 21, 84,136,137,177, 95,164,102,106,194,183,179, 45, 65, +106, 82, 26, 1, 13,148, 36, 4,134,201,183, 36, 36, 95,215, 7,251, 84,235, 58,145,168,146,245, 61,213,119, 80, 30,117, 77, 33, + 18,166, 5, 60,224, 42,185,111,105, 79, 59,147,250,192,121,115,142, 75,173,106, 46, 70,154,107, 47, 74,137, 37,245,169,228,253, + 87, 13, 42, 67, 73,105, 5, 87,185, 88, 55, 4, 92,244, 7,229,142, 38,199, 14, 91,215, 10,188,121,174,241,136,208, 18, 53,253, + 51,202, 12, 25,158, 94, 85,195,227, 56,219,215,107, 34, 99,246,218,136,106, 20,108,230,136, 17,114,107, 49,153,155, 13,185,174, +251, 29, 41,165,217, 77, 41, 96, 2,178, 65,228,250, 12, 85,249,247,235,154, 53, 81,188,162,169,174,195,144,227,253,219,140,190, +239,250,145,239, 35,203, 12, 94,212,108,195, 73,175,177, 63, 43, 86, 84,167, 97,184, 22,211,206,166,224,184, 61,198,225, 86,247, +227, 84,250,181,126, 69, 98,161,155,171, 77, 71,126,120,251, 89, 37,100, 30,242,252,149, 90,254,167,160,233,142,223, 13,106,229, +133,128,178,152, 35,161, 4,170,122,109,207, 94,100,239, 92, 67,239,184,162, 9,175, 39,253, 89,147,106, 46, 49, 76, 68,137,172, +173,189,174, 75,104, 92, 18, 71, 3,159, 67,252, 49, 23,175, 78,139, 38,160,203,177, 42,171,146,234,148, 3,203,124, 27, 54,155, + 14, 49, 38,115, 45,206,166,165,138,142, 96,172, 38, 34,167, 54, 36, 53, 13,135,129, 40,107,201, 86, 7, 21,253, 85,205,181,169, + 17, 33, 77, 81,105, 75, 61,217, 88,228,143, 95,142, 58, 27, 66, 22,102,100,245,170,169,112, 57, 36, 26, 49, 82,204,241,233,189, +245, 46,159, 41,110, 50,229,186,144, 18, 85,110,160,127,102, 6,210, 29,169, 83,222, 69, 82, 44,149,199,109, 75,218,227,163,160, +189,250,250,224, 82,195, 45,190,165,205,120, 92,116,183, 91, 99, 25, 85, 71, 30,100, 67, 68,165,247, 73, 55, 66,124,175,235,139, +201,108, 37, 57, 69, 60,154,147,102, 28,193, 41, 85, 72,245, 33, 84, 84,158,229, 3,187,251, 95, 18, 64, 61, 61,113,237,127, 62, +201,175, 6, 27, 33,108,161,176, 74,148,149,220,168,159, 60, 70, 95,154,137, 8, 73,104,142, 19,181,203, 12,102,218,217, 91, 74, + 13,143, 16, 29, 78, 24, 54,132, 0, 99,106,116,172,136, 39,122,156,229,173, 67,221, 82,129, 2,187, 1,185,241,218, 89, 67, 96, + 93, 42, 81, 80,218, 7,227,108, 89,116, 71,179, 21, 31, 81, 94,165, 82, 99,179,151,153,161,197,223, 61,185,149, 0,181,168, 20, +141,197, 4,248,183, 18, 65, 9, 7,140, 80,180, 10,173, 54, 43,203, 69, 74, 27,174, 40, 54, 67, 61,209,177, 74,252,142, 39,115, + 81, 88,246, 89, 82, 51, 54, 74,117, 18,229,197,109,214,139,151, 71,216,132,255, 0,172, 55, 55, 36,218,247,243,198, 22, 38,209, + 46,107,160, 32,141, 78,146, 72,212, 9, 0,232, 76,233,252,219,109,245,132,229,250, 81,154,254,166, 85,127, 72,170,217,121,213, +111,139, 53,194,204,137, 18, 90, 14, 56,164, 5, 92, 40,219,139,222,220,140, 72,245, 37,186, 75,180,156,183, 71,203,154,145, 26, +100, 88, 12,165,107,134,227, 10,105, 48,214,183, 6,224,178,174, 21,207, 36,129,211, 16,172,255, 0, 80,201,217,178, 37, 6, 86, +157,229, 9,116, 56, 13, 67, 13, 84,170, 83, 29,220,137, 18,121,185, 7,201, 60, 88, 99, 93, 31, 57, 86, 41,236,211,114,134,161, +209, 89,168,209, 26,150,169, 8,140,195,137,101,199,201, 77,133,222, 0,170,221, 45,229,140,146,195,138, 13,186,216, 41, 41,153, + 71,118, 78,132, 79, 49, 58,104, 51, 13,245, 52, 86,238, 86,161, 10,216,233,241,240,253,170,108,214,104,169,101, 12,241, 58, 46, +105,159, 10,180,220, 39,193,167,211,216, 95,127, 17,194, 69,194,208, 83, 97,110,150,183,204, 97,228,238,208,149,202,236,216, 84, +188,187, 22,149, 77,133, 70,154,169, 44, 73,106,158,148, 72, 36,128, 86,208,113, 41,185, 3,145,111,126, 33,153,131, 52, 84,227, + 81,103,102, 60,176,236, 72, 49, 95,117,182, 61,149,201,136,117,244,109, 59,129, 70,225,184,164, 90,215, 30,156,226, 63,150,115, + 69, 57, 16,101,203,173,255, 0,165, 43,188, 85,163,184,118,239, 42, 28,174,227,161,195,180,211,138,100,168,141, 68, 13, 58,192, +157, 54, 7,222,124,234, 70,233,198,204, 36,192, 63, 41,235,185,171, 78, 70,100,203,153,194,109, 87, 57, 49,147, 93,105,151, 74, + 18, 35, 70,124, 32,178, 66, 44,108, 57,222, 9,241, 17,135, 29,158,234,129,157, 64,141, 10, 95,181,184,201, 73,118, 84, 54, 22, + 91, 68,176, 8,251, 37, 56,146, 10, 69,141,237,207,151, 7, 21,221, 17,232,173,215,125,147, 38,190,244,168,146, 34,131, 41,185, + 13, 13,237,221, 62, 32, 61,195,246,176, 41,252,207, 85,162,204, 12,208,115, 35,233,109,133,149, 89, 14,148, 16,111,197,185,247, + 12, 9,118,142, 62,202,217, 73,137, 2, 38,116, 31, 79,129,231, 51, 82, 69,242,144,160, 73,219,165, 93,189,165,181, 7, 38,229, +108,252,154, 30,155, 72,169, 18,196, 80,154,187, 21,136,129,181, 71,147,114, 84,218, 10,198,245,161, 32,128, 20,176, 14, 22, 42, +106,173,122,169,152, 39, 43, 58,106,229,102,163, 85,153, 85, 1, 76,205, 50,195,206,172, 35,194,123,194,162, 85,113,192, 23,244, +194,196,108,173, 25,182,181, 67, 75, 73, 90,146, 32,171,121, 60,245,210, 96,233,183,157, 73,215, 74,220, 42, 26, 3,215,122,253, + 55,177, 33, 42, 1, 72, 87,192,131,135,168,112,119,124,168,123,206, 41,202, 30,171, 84,104,145, 83, 18, 67,105,125, 9,251,170, + 82,185, 24,115, 39, 92,234,132,142,226, 35, 41, 77,185, 4,223,156, 94,191,225,252, 65,245,101,108, 2, 58,205,122,189,167, 19, +225, 73,111, 50,201, 7,164, 85,161, 46, 85,147, 96,175, 60, 13,149, 35,175,139, 21,219,154,215, 82,117,165, 5, 70,103,113, 30, + 21, 11,241,134, 82,117,142,164,153, 1,192,195,101,189,150, 40, 62,190,184,202,252,169,139, 40,254,145,235, 90, 72,226,236, 21, + 49,222, 62,149, 99,173,251,242, 78, 27,186,249,190, 43, 25,154,209, 91, 90,137,143, 29,148, 15,133,240, 18,173,170, 89,158,160, +174,106, 5,161,251, 45,113,139, 12,112,102, 40,225,239,194, 71,156,252,170, 78,241,190, 14,218,123,153,148,124,163,231, 87, 27, +142, 88,245, 24,192,200, 23,177,116,124, 47,138, 34, 70,160, 86,148,229,157,171,188, 72,255, 0,230, 28,105,119, 54,212, 92, 29, +231,214, 46,159,131,135, 26, 72,224, 71,249,186, 61, 15,239, 84, 15,226, 5,176,217,147,234, 63,106,189, 37, 79, 97,181, 4, 56, +250, 1, 61, 1, 86, 7, 75,204,180, 72,193, 69,250,163, 41,219,247,134,254,113, 71,202,205, 82,221, 59,213, 53,194, 71, 75,172, +225,191,215, 14,173, 91,221, 93,239,234,113,117,158, 4, 72, 50,227,190,131,249,170,206,254, 33, 24,254,219, 32,121,159,226,174, + 33,170,185, 77,178,173,210,156,240,222,222, 14,184,212,246,182,229,166, 25,220,136,239, 41,103,245, 45,108, 83,206,203,120,168, + 40,116,198,181,187,179,198,165,223,231,141,102,248, 47, 8, 27,230, 62,255, 0,226,177,157,227,220, 89, 91,101, 30,239,230,173, + 21,235,236,181,135,147, 26,148,145,127,245, 37, 74,233,241,196,126,126,119,204, 53,153, 94,215, 46,172,232, 62, 73,109, 86, 9, +252, 49, 12, 76,183, 2,192,108, 90,254,184,122,151,100, 5, 11, 44, 16, 71, 56,214,183,192,240,203, 19, 45, 54, 1,245,249,214, + 13,223, 17, 98,152,128, 9,117,210, 71, 77,190, 85, 38,107, 50, 87, 16,139, 26,172,130, 47,113,246,167, 29, 41,162, 57,106,163, +150,178, 67, 47,214,222,113, 83, 39, 17, 33,212, 58,178, 75,105, 35,192,142,124,194,121, 62,245, 91,203, 20,223,103, 13, 34,168, +231,250,250, 51, 37,102, 53,168,180,215, 2,157, 43, 28, 72,116,114, 27, 30,163,161, 87,187,143, 60, 92, 85,173, 77,166, 67,172, +191, 74,113,244,165,198,239,100,147,201,199, 9,198, 23,246,225, 66,205,144, 58,168,143,128,250,159,117,118, 92, 35,103,112,164, +155,183,137,141,146, 15,196,253, 7,190,164,181, 42,220,120, 39,126,240, 13,237,215, 17,220,207, 92, 84,132,150, 99, 58, 54,237, +228,142, 77,206, 43,188,235,171,112, 89, 73, 83,147,146,147,126,128,244, 23,192,108,149,169,201,205,117, 31,104,102, 86,246, 82, +178, 10, 47,192,244,199, 12, 65,203, 93,174,105, 52, 91, 57, 82,211, 38, 58,214,249, 82,148,121,235,142, 95,237, 15,145, 38,193, +123,235, 58,115,138, 67,161,123,129, 79, 91,142, 69,142, 58,238,182,210, 38, 69, 74, 72, 35,120,184, 73,235,138,131, 88,178,114, +171,116,245,182, 64,189,200, 73,244, 3,173,190,120, 10, 87,217,170,164,146, 66,166,188,236,149,218, 46, 22,105,161,181,150,107, + 83, 11, 51,225,253,155,232,113, 92,174,214, 0,140, 95,115,115,108, 7,153, 84,114,224, 55, 71, 39,169,199,206,188,219, 72,206, +122, 81,152,218,206, 25, 85,210,151, 90, 88, 15, 32,126,186,111,200, 30,252, 92, 58, 99,218,250,133,156,224,165,167, 38,150,102, + 32, 4,201,140,233,241,165, 94,159,227,211, 23, 18,148,169, 50,157,170, 46,182,161,222, 78,213,208, 21, 58, 24,155, 33, 83,169, +206,164, 27,114,112, 30,163, 2,170,180, 22,209, 98, 74,108,163,211, 1, 50,182,167, 49, 57, 14, 45, 50,197,130,111, 98,172, 57, +149,168, 44,178, 18,148,188, 63,120,250,146, 73,254, 24,170,226, 32,233, 78,219,240, 53,175, 37,105,252, 41,112,146,186,145,222, + 66,175,221,143, 35,193,198,185, 45,194,140,216,105,224,148,139, 18,132,164,113,128,117,157, 75, 49, 2,251,217,169, 65, 60,139, + 43,200,121, 98,170,213,238,210, 52, 28,183, 74,118,108,154,178, 80,224,184, 66, 18,171,146,111,108, 2, 72,208, 84, 22,165, 58, + 96, 82,237, 27,168, 89,102,133, 77,146, 75,169,239,156, 96,132, 39,247,186, 99,159,180,214,139, 55, 53,215, 27,204, 51, 89, 82, +119,120,144, 74, 72,184,190, 51,133, 31, 50,107,198,108, 69, 94,180,167, 90,166, 33,203,182,209,224,184, 79,159,195, 29, 3,144, +244,218, 29, 38, 43, 72, 17,128, 64, 2,230,220, 28, 88,111,251, 73,215,115, 82, 82, 18,210, 35,157, 55,160,229,162,244, 61,174, +120, 71, 80,160, 1, 3, 25,212,232, 97,182, 59,208,143, 18,122,170,216,158, 65,203,204,196,110,233,111,114, 7, 75, 14,131, 2, +243, 37, 62, 51,108, 40,163,169,227,194, 57, 7,223,238,197,134, 46,138, 87, 84, 28,111, 74,163, 51,149, 9, 84,151, 83, 61,166, +255, 0,209, 95, 90,130,118,255, 0,209,172,117, 65,254, 35,212, 98, 62,228,198,211,194, 83,139, 38,171, 30, 29, 69,110, 82, 38, +168, 8,211, 83,181, 75,181,203, 15, 39,238,172, 15,196, 31, 81,124, 87,117,220,189, 62,137, 84,114,151, 53,177,189,181, 88,148, +158, 20, 58,133, 3,230, 8,228, 31,126, 62,131,224,254, 33,111, 20,177, 13,186,175,238, 32,107,226, 57, 31,161,241,243,175, 30, +226,140, 29, 88,125,223,104,216,254,218,246,240, 60,199,237,252, 83, 9,147,129,108,128,139,122,224,114, 29, 88, 89, 40, 23, 39, + 6,133, 40,173, 22, 40, 22, 35, 9,170, 10, 26,231,129,142,216, 92,182, 5,114, 93,225, 76,162, 51, 42,219,220, 80,177,232, 48, +245,150, 6,235,168,115,141,141, 83,214,130, 44,120,198, 74, 97,212, 47,194, 46, 61,112,198,225, 39,157, 54,101, 86, 15, 54,178, +155, 14, 49,173,182,202, 85,117, 27,227,110,201, 10, 59, 45,197,240,155,153, 76, 19, 61,128,205,103,191, 72,186,153,223,226, 2, +221,109,136, 42,229, 8, 26,154,140,170,182, 29,136,177, 66,108,122,223, 24, 63, 82,110, 3,125,252,167, 10, 16, 60,254, 87,195, + 81,152,155,141,189,188,193, 29,168,197, 43, 74, 90, 91, 78,239, 75,187,151,181, 54,244,242,189,240,238, 94, 87,203, 57,138, 11, + 53, 61, 67,172,162, 6, 94, 14,157,201,109, 37,217, 15,184,139, 16,139, 54,163,181, 36,237, 5, 70,246,221,124,114,220, 67,197, +118, 24, 38, 26,229,202,204,168, 76, 38, 9, 36,232, 32, 13,206,227,106, 51, 9, 46, 58,148, 76, 77, 17,137, 92,101, 25, 98,109, +113,165, 22,215, 1,145, 37,248,175, 50,176,226,162,220, 2,242, 46, 0, 85,175,123, 92,124,113, 8,175,246,167,163, 81,105,243, +232,172, 83,123,195, 80, 81,136,100,206,140,149,123, 59, 42,108,221,101, 0,158, 13,193, 10,191, 24,107,154, 39,211,179, 62, 98, +171, 61,217,234,147, 50, 19,113,166, 9, 81, 62,184,125, 18,223, 41, 62, 29,140, 40, 0, 30, 70,244,216, 34,198,194,215,231, 21, +180,202,150,113,207,185, 46,187,159,117, 50,155, 75, 93,120, 84,125,154, 75, 51, 35, 22, 30,219, 98,178,226,118,169, 33, 92,133, + 11,112, 5,177,225,119, 92, 99,137, 98,229, 66,249,194, 26, 86, 89,108, 16,149, 39, 52, 64, 32, 3, 35,172,168,244, 32,131, 90, +192, 54,196,134,245, 80,231,203,220,126, 59, 84,165, 29,162,179,157, 37,164,211, 36,103, 8,213, 74,125, 45,135, 89,163, 38,147, +189, 14,177,188, 41, 42, 78,228,237, 82,146,171,220,223,173,176, 83, 50,106,109, 70,110, 69,246,106,189, 18,189, 61, 69, 59,166, +212,163, 70, 89, 67, 10, 74, 56, 5, 43, 23, 87, 66,110, 15, 56,170, 51, 5,114,153,151,178,100, 28,229, 71,166, 46,152,182,160, +247,110, 3, 45, 46,183, 53,221,228, 41,208, 57, 41, 72, 30, 18,159, 94,152,101,151,117,111, 85,116,204,210,243,213, 58,171, 93, + 48, 21, 23,116, 50,243,170, 44,186,146,181, 5, 49,226, 4, 4,216,146, 13,143, 76, 98,151,148,153,118,204,101, 82,165, 36, 19, +151, 57,214, 82,114,233,169,212,239, 36,201, 18, 42,201,184,116,146,151, 21, 49,175,220,235,211,253, 80, 93, 83,175, 80, 43,148, +202,100,246,171, 79,170,170, 95,113, 79, 73,147, 35,188, 88,109, 55,219,100, 44, 0,132,250,251,241, 9,118,167,147,100,231,236, +191, 5,186,100, 72,240,156,167,169,170,172,237,253,232,150,242,129, 55,241, 27, 54,111, 97,113,211, 19, 74,236, 45, 43,204,148, +243,171,114,115, 12,199,171,213,153, 74, 68,156,166,251, 41, 45,181, 31,175,122,183,146, 2, 72, 85,136,216, 44,160,122,140, 65, +159,127, 50,101,234, 42,170,121, 61,182,133, 40, 74, 72, 45, 38, 27,111, 6, 10, 93, 4, 5, 18, 9, 63,218, 49,176,211,134,226, +216, 40,102, 7, 84,247,164, 65, 51, 48, 72,239, 1,174, 83, 25, 76, 72,229, 84,110, 51,165, 65, 70, 57,125,255, 0, 21, 12,206, +236,192,161,231,167, 30,167,211,239, 1, 47,148,169,168,174,111, 78,192,124, 69, 39,161, 54,243,193, 9, 52,212, 85, 98, 57, 78, +203,153,114, 91,241,230, 29,237,191, 37, 73,178,135,152, 42,176,231,225,128, 25,174, 85, 66,187,155,101, 53, 22,162,153,174, 76, +120,237, 33, 1,161,117, 27,170,192, 88, 36, 98, 65, 91,107, 51, 35,234,252,181, 25,180,192,101,136,214, 90,158,116,144,108, 62, +246,235,241,242,199, 67,108, 22, 16,137, 58,199,143,251,172,155,135, 14, 96,158,181, 8,173,192,168, 64,205, 97,138,221, 65,104, +238, 89, 66, 10, 20, 73,238,145,183,132,220,121, 14,152, 19, 81,162,180,228,213, 41, 50, 74, 90, 54, 45,186,161,109,222,254,112, +253,202,133, 77, 83,228, 63, 49, 73,144,165, 44,253,178,145,126,240, 94,220, 95, 4,179,221,101,186,189, 42, 26,234,176, 82,194, +211, 15,187,105,104,103,104, 36,113,113,239,198,251,101,105, 82, 83,247,233, 78, 74,147, 21, 10,146,197, 53,169, 37, 13,186, 92, + 64, 28, 43,215, 12,247, 54, 93,224,112, 56, 73, 39, 14,123,174,228,141,200,186,135,204, 28, 35, 0, 74,146,148,199,240, 5,216, + 88,159, 60, 91,216, 81, 38,177, 97,148, 54,165, 39,119, 10, 28,115,231,140, 35,119,137,116,169,231,108, 45,212,244, 56,112,251, + 9,142,187, 44, 13,201, 22, 81, 9,190, 60,102, 34, 55, 1,191,105, 42,232,175, 63,199, 17, 42, 4, 26, 64,198,244,119, 79,232, +121,178,177, 91,139, 31, 40,211, 4,169,137,145,222, 71,107, 98, 84, 20, 71, 60,223,203, 7, 17,154, 51, 54,101,204, 50, 63, 78, +125,181,249,142,184, 33, 42, 96,117, 68, 52,145,225,238,236, 60, 33, 41,177, 60,122, 98, 57, 18,169, 42,137, 40, 61, 71,125,198, + 94, 74, 56,121,151, 8, 41,248, 17,211, 18,109, 47,145, 18,136,245, 95, 59,187,156,153,166,200,167, 68, 10,133, 78,168, 70, 83, +202,158,242,252, 42, 9, 9,225, 36, 3,123,156, 98, 93,153, 74,150, 82, 14,128, 39, 67,154, 73,218, 68,232, 76,114,142,102,138, +209, 10, 58,214,189, 75,203, 57,103, 45, 84, 24,202,217,103, 63, 46,174,203, 98,234, 40,220,150,219,227,158,166,196,220,158,152, +209, 55, 53,193,145, 71, 12,213,156,126, 93, 66, 34,144,212, 57, 1, 96, 33, 44,167,245, 72,235,123,224, 83,117, 38,228, 87,100, + 78,137, 7,218, 84,224, 82,128, 95, 39,158,164,113,199,174, 36, 82,165,229, 37,101,136,217, 85,134, 18,203,179, 89, 75,239,204, +124, 32,169, 47, 2, 65, 73, 87, 80,139,121,117, 56,174,232, 82, 16,218, 92,149, 30,103, 73,241, 38, 0,244,141,105, 19,222, 58, +208,248,212,250,166,106,138,149, 83,221, 43, 68, 84, 23, 28,218,139, 4, 14, 73,249, 97,145,125, 18, 59,214,100,192, 67,164, 89, + 69,192,162, 56, 30,152,243,235,105, 10,101, 81, 98,184, 99, 51,110,237,192,194,136, 74,199, 67,199,166, 20,168, 81,162, 5, 52, +196,207,104, 73,105, 37, 46, 52,155, 38,231,168,247,219, 4, 0,133, 65,247,127,186,132,211,102,234,221,197, 65, 82,105,189,226, + 66, 65, 66, 16,165, 27,218,214,228,140, 17,201,149,215,104,149,148,212, 83, 25,135,130,219, 83,110, 55, 36, 2,147,127,225,129, +208,227,197, 40, 91,100,157,233,191, 32,227,199, 42,204, 55, 72, 77, 61, 20,182,251,192,233, 90,228, 90,235, 80,242, 79,195, 4, + 91,105,113, 5, 25,100, 29, 41, 3, 38, 41,245, 86, 89, 18, 73,102,123,102,228,221, 3,144,142,122, 15,118, 22, 52, 26, 90, 90, +136,204,244, 62,202,196,144, 78,197, 40, 93, 22, 54,228,121, 97, 97, 32,164, 38, 5, 54,252,235,244, 4,138,226,212,129,189, 68, +143,142, 60, 53,164, 95,149,143,134, 0,170, 65, 41, 0,227, 36,184,139, 2, 18,111,240,199, 93,157, 6,181,187, 69, 81,165, 85, +151,212, 12,105,114,164,181,117,227,231,134, 40,148, 45,208,223, 26, 36, 62,226,142,219, 31,134, 28, 45, 0,210,237, 21, 79,213, + 81,109, 63,121, 64,159,121,195,103,170, 13, 40,155, 92,252, 48,201,196,168,244, 29,113,136, 66,211,200, 23, 24, 40,117, 2,163, +218,168,214,215,130, 22, 10,193,231,210,248,212,220,149,182, 8, 83,119, 7, 30,219,127,234,219, 25,182,197,207, 32, 96,130,225, + 49,173, 64,173, 70,180,148, 23, 15,221,235,132,220,115,188,120, 78, 8,181, 25, 9,111,114,128,233,198, 49, 43,101, 60, 20,243, +135,246,161, 76,115, 86,149, 37,101, 27, 74,113,225, 97, 42,176, 62, 88,112,151, 89, 80,177,242,194, 5,147,116,132,242,112,141, +204, 83,101,147, 94,196, 97,165,144, 22,143,158, 37,186,123,167,210, 51,198,102,135,150,233,226,206, 74,116, 37, 75,181,195,104, + 28,169, 71,220, 5,206, 35,176, 99, 3, 97,183,242,199, 71,246, 84,200,200,203,244, 55,115,213, 73,144, 31,158, 59,168,100,142, + 82,200, 62, 37,123,183, 40,126, 9,247,227, 7, 26,198, 69,149,170,150, 14,187, 15, 51,247, 53,209, 96, 88, 89,196, 47, 18,212, +105,185,242, 31,113,239,171, 45, 48,178,246,153,228,182,168,212,166, 80,196,104,108,109,109, 62,103,213, 71,212,147,201, 62,167, + 28, 17,218,239,180,114,178,222,116,114,161, 68,151,220,186,208, 41, 95, 60, 45, 55,199, 79,246,162,213, 70,168, 20,215, 34, 34, + 69,174,131,201, 54,191, 24,249,119,218,231, 80, 5, 65,217, 82,139,227,119, 54, 36,244,199,149, 1,237, 78,151, 23, 94,196,202, + 18,130, 26, 64,208, 81,124,229,219,133,198,225, 42, 68,138,178, 84, 92, 77,138, 66,185, 22,190, 36,189,135,187,104, 10,198,174, + 71,200, 83,218,113, 81,234, 69, 74,101,197,182,108, 8, 5, 71,159,128, 56,172, 59, 4,118, 33,153,218, 14,106,245, 27, 55, 37, +102,156, 28, 62,205, 29, 98,232, 85,143,222, 32,245,254, 24,238,173, 58,236,193,166,154,105, 57, 46, 82, 50,187, 6,111, 9,246, +197, 71, 1, 96,126,202,125, 6, 51,111,111,218, 65, 45, 33, 51,227, 91, 13,177,110,148,144,119,171,190,173, 86, 97, 40, 68,212, + 32,108, 45,141,188,242, 15,166, 34,249,141,166,102, 70, 11, 13, 2, 20,174,125,195, 27, 39, 10,155,174,166, 59,141,169, 13, 35, +165,241,141, 81, 14,189, 20, 50,219,106,233,123,218,216,204, 23, 5,102,161,216, 4,138,170,179,222, 71,167, 84,227,184,243,205, + 5, 1,250,160,117,248, 99,156,245, 67, 66,167, 55, 81,250,251, 44,188, 97,206, 97, 91,146,227, 55,230,254, 71,212,117, 24,236, +153,153, 82, 98,226,111,117,187, 19,200,184,233,136,126,101,201, 44,169,149, 20, 50, 3,150,176, 39,204,127,139,224,200,184, 90, + 12,138,100,247, 14,149,197,185,155, 87,123, 70,100, 58, 98, 96, 70,163,135,210, 31, 79,125, 33,181, 16, 74,111,211,242,196,151, +252,240,107, 41,163, 67,166,185,151,167,174, 90,152, 30,208, 67, 68,128,174, 46, 47,243, 56,188, 51, 62,155, 48,255, 0,136,198, + 79, 34,234, 5, 63, 60, 86, 85, 76,145, 14, 5, 68,165,112,209,181, 74, 85,136, 79,167, 24,184,151,210,238,138, 20, 23,123, 44, +191,166,171,250,198,168,235,126,164, 47,217, 40, 20,111, 96,101,107,186,221,148,191, 21,173,199, 3, 25,229,125, 6,172, 85,106, + 40,168,231,186,155,147,228, 15, 18, 19,127, 0,230,253, 15, 95, 60, 90,244, 44,174,195, 9, 74,216, 66, 74, 77,186, 11, 98, 91, + 73,164,178, 22,128,166, 64,177, 22, 22,233,137, 74, 83,176,170, 6,229, 64,194, 68, 83,125, 50,211,184,112, 16,218, 19, 28, 55, +182,214,176,227,225,139, 58, 27,113,154, 72, 96, 53,247, 71, 81,208,251,240, 30,156, 35,176,218, 16,221,129,231,129,135,162,162, +218, 89, 37,162, 55, 36, 92,223,207, 21,220, 84,212,115,147,169,162, 98, 91, 49,154, 44,128, 45,123,120,191, 86,231,174, 35, 57, +130, 91,114, 30, 83, 77,139, 42,223,115,204, 17,249, 28, 48,171,231, 72,241, 74,146,137,105, 74,174,119, 37,125, 71,248,254,220, + 65,234, 26,136,219,210,220,219,177,181, 33, 94, 27,168,157,255, 0, 3,239,235,248,140, 13, 25,137,210,160,165, 72,210,135,214, + 36, 51, 31, 51, 45,144,176, 89,125, 65, 91, 83,250,170,189,190, 68, 28, 62,206, 25, 53, 85,186, 97,125,182,183, 75,132,201,113, +178, 7, 46,178, 57, 82,125,229, 63,120,123,183,123,177, 90, 72,206,111,230,125, 85,133, 64,165, 74, 70,254,240,170, 69,141,236, +142,164,227,162,161, 68,238,163, 49, 46,201,220,201, 10, 70,255, 0, 81,229,243,199, 71,134, 98,175,225, 87,109,190,217,212,111, +226, 57,143,125,102,226,120,122, 47,173, 11, 46,127,144,244, 60,141, 81, 46, 48,211,104,251,159,150, 27,173, 37, 99,193,198, 36, +250,131,250, 35,150, 51, 36,186, 75,211, 59,189,170, 11,109,178,147,112,133, 13,201, 31,129, 31,134, 43,204,201,159,154,140,224, + 69, 10, 23,120, 55,114,167, 56,191,195, 30,255, 0, 97,114,253,243,105, 91, 73, 48,160, 8, 59, 8, 58,138,241,107,171, 53, 48, +225, 66,134,163, 74, 50,166,157,218, 0, 73,194, 76,119, 15,131,187, 39,229,136, 19,181,172,209, 46, 97,152,229, 77, 77,120,183, + 37,180,171,129,238,198,117,156,243, 83,141, 5, 18,235,117,116, 50,195,100, 37, 79, 18, 16,155,251,206, 54, 61,149,244,128, 74, +199,143,133, 80, 45,164, 81,108,241,169, 52,140,153, 29, 17, 2,183, 75,152,178,203, 14,119, 91,144,202,173,247,148,110, 2,109, +239,227, 20,222,104,207,191, 90,230,183,101, 81, 43,110,251,100,118, 86,185,110, 48,240,101,151, 72, 77,146, 85,180,144, 79, 91, +249, 98, 83,171,148,232,211, 50, 67, 53, 25,149, 30,230, 29, 65,149, 56,196,150,156, 27, 94, 74, 79,139,197,229,233,108, 80,250, +134, 36,100, 89,107,147, 22,169, 29,159,173, 90, 75,113, 88,109,226,151, 18,216, 23, 5, 68,113,110, 71,151, 56,243,254, 33,196, + 2,111, 74, 26,115, 48,210, 4,130, 9, 27,157, 54, 35, 95, 77,106,147,189,229,194,106, 91,157,181,169,186,195, 81,234,185,201, + 8,126, 93, 61,109,136, 44, 68,126,204, 62,155, 1,247,128, 27,194,108, 56, 81,228,223, 1,171,186,138,251,242,197, 99, 38,195, +139, 53,118, 73,101, 14, 52,148,119,124,221,104,176, 62, 43, 27,117, 29, 6, 42,204,227,171,213,217, 18, 34,156,217, 57,180, 34, + 46,198,196, 40, 76,160,178,173,167,196, 8, 28, 92,142,111,231,128, 79,235, 21,118, 38,104,118,175,149, 42,242, 35,133, 56,144, +195, 4, 13,170, 0,220, 11, 90,223, 44,114, 46, 91,190,240,152,235,164,156,190, 91,124,124,230,157, 13,168, 65, 21,211, 52, 14, +211,249,213,202,165, 62, 91, 79,184,229, 74, 52,221,242, 35, 52,148, 52,137, 77,109, 2,214, 30, 97, 93,108, 5,240, 7, 87,181, +134,179,168,217,114,117, 27, 52, 79, 69, 1,216,210,213, 38, 13, 54,151, 5, 45,176, 93,106,225, 8, 34,251,183, 16, 73, 36,245, + 38,254,236, 83,185, 87, 85, 42, 16,115, 23,233,149, 36,188,156,192,213,214,233,125,180,173,189,196,242, 80, 45,225,235,131, 82, +171,245, 92,231, 91,101,186, 29, 71,188,152, 86,153, 11,147, 33,178,224,113,194, 46,187,133, 2, 71, 34,194,216,231,157,193,173, +217,185, 14,150,194, 96,111,211, 89,233, 17,227,189, 17,181,184,209,128,116,160,209,115,115,243,171, 70,175, 85,141, 34,100,197, + 52, 1,106, 74, 18,150,155,112,171,239, 41, 32,120,147,205,252,177,117,230,246, 42, 85, 76,171, 66,113,170,188, 25,117, 74, 72, + 65,150,219, 79,160, 33, 76, 43,254,133, 45, 17,185,106, 74,175,207, 75, 30, 49, 42,103, 82,161,229,185, 3, 54, 61,165,244,204, +199, 58, 69, 48,194,146,163, 8,161, 47,149,182, 54,149, 35,187,178, 84,155, 17,112,160, 73,247, 98, 5,172,153,199, 45,200,250, +178, 69, 29,138,132, 88,136,111,186, 98,128,169,165,197,197,106,193, 72, 73,115,131,180, 40,168,132,158, 69,173,142,117,203,135, +241, 27,198,194, 89,200, 19, 58,200, 35,104, 34, 52, 32,116,208, 3,185,212, 69,107,182,180, 54,217, 42, 50, 85,203,235, 63,102, +174, 28,213,216,210,153,155,114,244,126,208,212,170,107, 52,140,144,136, 66, 85, 78,151, 73,134,250,222,109, 9,103,114,212, 23, +180,221, 74, 32,155,126,175,158, 57,142,191, 80,131, 5,229, 63,147,158,168, 69,164, 73,220,166, 67,227,196, 20,146, 64, 10, 35, +195,114, 15, 39, 10,177,171,217,234,185,148,166,101,214, 42,114,227,101,245,202, 71,181,180,196,162,134,156,178, 74,127,213,240, +147,113,235,207, 95, 92, 88,240, 53,142,145,150, 52, 18,177,151, 98,126,141, 74, 85,110,148,202, 11, 41,162, 44,189, 21, 64,217, + 73, 73, 36,132, 18, 44, 74,141,129,196,237, 89,198,112,230, 2, 46, 87,219, 12,193, 41, 3, 76,169, 39,252,143,122, 84, 38,100, +193,129,227, 82,125,198, 46, 18, 50,140,164,111,207,225, 84, 44, 20, 85,235, 21,118,106,180,250, 83,108, 49, 20, 0,167, 89, 98, +193, 69, 35,169, 87, 36,156, 25,143,153,163, 84,242,197, 82, 14,101,202,211,107, 21, 96,226,141, 49, 77,238, 37,171,141,160, 41, + 62, 96,117,195,120, 57,129, 89, 78, 42,226,161,245, 77, 74,144,151, 80,216, 77,144,207, 4,216, 15, 60, 11,211,125, 93,171,229, +156,229, 58,171, 5,113,132,137, 49,214, 90,121,203,168,161, 94, 93, 63,134, 61, 2,221,149, 56,201, 82, 83,182,218,145,241,223, +206,176, 30, 11, 83,164,129,176,210,163,241,164, 71,165, 58,137,242, 24,118, 91,160,125,213, 35,111,118,160,109,247,124,249,198, + 85,233,149, 60,208, 75,213, 23, 18,195,169,108, 37, 9, 91, 99,119,185, 33, 35,204,225,235, 21,154,115, 80,229,207,152,195,143, + 74,125,197,222,235, 0,110, 60,130,124,250,146,112, 1,218,180,212,213,217,205, 8,146,130,184,235, 14, 54,176,143, 14,244,249, + 88,227, 89, 9, 42, 92,198,163,157, 25, 18,121, 86,154,238, 89,169,211,167, 70,133, 50, 59,137,117,230,130,130, 29, 78,210, 1, +247,124, 48, 46,124, 87,104,242,148,195,142,165,197, 52,144, 72,108, 95,175,145,247,225,230, 96,205, 85,124,209, 93,127, 48,213, +230,151, 36,190,177,180,164,216, 39,208, 15, 64, 6, 53,212, 41,114,163, 33,151,152,116,189,223,179,189,224, 7, 32,131,208,226, +226, 51,165, 35, 62,245, 45, 6,149,141, 26,169, 17, 11, 9,148,194, 8, 31,168,180, 92, 43,240, 55,198,185,168, 83,210,148,234, +174,110, 60, 42, 95, 0,140, 52,121,185, 44, 52,169,139, 77,130,172, 16,147,140,102,167,189, 90, 7,181, 41, 86, 9,178,119, 92, + 36,122, 98, 61,152, 14,102, 6,167,148, 17, 68,160,178,167, 92, 75,109, 77, 12, 20, 90,202, 60,130,161,231,111, 76, 77, 50,158, +107,204,117,106,125, 70, 13, 90,147, 6, 98,149, 21,100,200,126, 56,222,158,121, 82, 79, 2,254,152,129,183, 41,168,219, 86,167, +210,164,130, 55, 18, 57,196,150,150,191,110, 75,139,118,162,150,132, 54, 2,217, 12, 54,119, 56,162,176,108, 79, 83, 97,126,125, +216,203,190,104, 45, 48,161,207,120,219,235, 83, 65, 32,105,181, 19,211,122,123,210, 42, 63, 85,192,161, 68,118,106, 17, 33, 64, +200,112,161, 91,123,191,214, 36,132,217, 61,112, 5, 80, 97, 46,166,204, 58,187,142, 71,109,197, 18,226,208,144,171,115,250,190, +184,123,154,227,192,138,243, 79, 71,125,215, 36, 58,119,169,237,214, 70,211,211,222, 77,186,225,180,202,178,106, 12,253, 97, 61, +246, 86,241, 33, 10, 64,107,144, 0,181,197,184,197,102,195,138, 89,112, 29, 20, 61,224,235,231,167,184, 82, 36,101,131, 91,102, +197,167, 83, 92, 67, 9, 67,142,176,234, 9, 38,195,112,183, 79,134, 7, 41,200,201, 64, 90,183,182, 66, 60, 40, 82,174, 15, 56, +213,237,136, 67,247,142,141,202,189,146,160, 60, 36, 99, 23, 18,165, 32,182,232, 38,234,244,233,139, 40, 68, 1, 52, 49,214,144, +146, 25,121,192,211,182,230,226,195,175,187, 30,169, 15, 73, 79,122, 88, 28, 30, 66, 7, 24,214,232, 97,106, 74, 80,141,170, 2, +202, 54,228,227, 89,144,252,119, 3, 33,106, 69,254,246, 11, 19,181, 32, 58, 83,134,228, 71,108,158,250, 34, 84, 79, 34,202, 32, + 15,195, 11, 26, 84, 86,159, 8,177, 3,162,135,159,227,133,133,150,165, 95,124, 18, 82, 19, 98,113,155,110,160,248, 65,195,103, + 92, 80, 79,217,245,195,115, 45,246,205,139,119,248, 99, 72, 61, 90,154,209,134,146,131,239,199,142,150,118,220,218,248, 31, 30, +107,202, 28, 2, 49,154,222, 90,147, 99,135, 15,107, 79, 91, 84,176, 85,100,140,109, 67, 74,219,113,134,173, 5,169, 64,129,135, +236,188, 80,139,144, 58, 98, 93,189, 54,245,165, 65, 77,248,146,156, 98,135,148,181,109, 32, 12, 57, 76,134,110,123,192, 57,243, +182, 52,173, 41,223,189, 39,174, 28, 63,165, 42,113,177,245,180, 2, 20, 45,140, 91,134, 28, 4,175,174, 54, 70, 89, 7, 97, 60, +123,241,181, 41, 78,238, 21,107,249, 97,195,230,149,107,106, 19, 97, 94, 35,135,208,232,241,220, 55, 42,231, 13, 28,108,245, 75, +167, 27, 97,214,105,176, 28, 9,149, 57, 0,223,161, 86, 34,167,148,161,165, 21,176, 38,164,249,103, 45, 57, 85,170, 69,163,196, +108, 41,217, 47,161,166,193,245, 81, 0, 99,175,162, 81,225, 80,168,140,211,162, 54, 18,212, 88,233,109,176, 5,172,148,139, 99, +157, 59, 44, 66,167,231, 45, 74, 68,182, 30, 11,106,149, 29, 82, 87,111,219, 62, 20, 15,196,223,250, 56,232,220,212,235,140,209, +222, 90, 20, 5,144,109,127,134, 56,110, 35,121, 75,112, 32,255, 0,136,248,159,227,231, 94,157,194, 86,221,157,186,158,255, 0, +145,143,112,254,126, 85,193, 95, 72, 22,175,183, 74,204, 78,210,146,224, 66, 91,108,146, 73,243,231, 31, 57,235, 53, 42,142,186, +107, 4, 13, 57,164,190, 84,153,179, 2, 93, 82,121,178, 47,226,233,238,197,235,244,170,234,101, 82,151,158,157,132,226,246,172, +173, 86, 32,158, 70, 43,255, 0,162,127, 79,191, 75,117, 93,121,242,174,201,117,109,174,204, 41,126, 66,252,156, 97,169, 65,139, + 18,191, 10,237,109,209, 29,227, 95, 82,123, 47,233, 13, 55, 78, 52,246,157,148,168,116,224,204,120,241,144,130, 66, 66,111, 97, +207, 76, 88,163, 43, 70,114,178,151,251,164,142,230,251, 82, 71,159,175,191, 30,229,217, 40,166,211, 99,134, 0,229, 33, 40, 3, +225,212,224,205, 49,166,101, 21,204,112,149, 39,160,231,169,199, 50, 16, 21,189, 31, 49,154,208,140,165, 30, 82,212,235,236, 2, + 2,120, 4,117,192, 89,249, 80, 9,214, 67, 62, 0,108, 13,188,177, 45,246,194, 18,160, 20,120, 79,136,250, 99, 38,154,105,230, +210,167, 5,129, 55, 36,224,201,105, 39,106,137,112,212, 42,171,151, 84,251, 69, 9,111,202,247,247, 98, 25,152,242,219, 33, 91, +144,130, 44, 69,238, 49,114, 79,134,197,192, 77,185, 24,139,102,106, 67, 15, 36,182,210, 7, 78,184, 75,106, 41, 5,205, 81,185, +142,130,132,143,190, 73, 4,237,182, 42,140,243,149, 31,106, 74,150,211, 36,165, 87, 36,132,244, 56,233, 26,222, 82,222, 75,138, +104,139, 90,226,216, 28,206, 70,137, 38,237,203,136,135, 15,150,225,239,192,194,148,131, 73, 64, 26,229,186,124,153,212,164,247, + 75,108,236, 42,227,118, 15,211,179, 76,107,165,123,188,188, 87,242,197,237,153,116, 46,131, 88,136, 82,136, 40,105,100,125,228, + 14,190,254, 49, 81,103, 78,207, 53,234, 83,170,145, 76,124, 4,146,109,212,131,243, 24, 50, 95, 10,208,213, 53,180, 38,104, 76, +188,255, 0, 10,150,164,205,117,207, 5,185,231,166, 34,217,199,180, 54, 87,202,209,213, 58,101, 73, 40, 67,104,186,146, 85,107, +240,113,167, 49,100, 90,194, 89, 93, 50,176,167,154, 31,180,132, 94,216,175,243,231,102, 12,147,159, 40,174,194,168,230, 10,138, + 92, 82, 78,199, 18,177,180, 18, 45,202, 72,228,124,240,100,165, 11, 58,154, 9,109, 3,122,168, 53,123,233, 29,200, 82,115, 7, +213, 84,170,170, 59,192, 44, 86,211,128,139,252,127,199, 76, 4,157,218,226, 10,178,212,138,233,168, 13,193, 35,109,149,231,238, +197, 11,218, 87,232,240,173,100,137, 18,106, 57, 97,197,119,141,149, 45,167, 24, 55, 75,131,202,227,203, 20, 29, 23, 50,102,104, +213,182, 50, 77,121,110,180, 34,175,237,144,229,193, 42,191,191, 27, 76,217,219, 45, 18,131, 68, 75,109,146, 2,107,233, 39, 97, +202,157, 71, 61,103,247,179,117, 90, 74,139,210,212, 44, 9,224, 38,252, 12,125, 14,166,101,216, 83, 40, 73,109,230,183, 2,221, +186,242, 14, 62,108,118, 17,205, 52,138, 34, 99, 44, 73, 78,241,107,221, 88,250, 65,167,249,149,170,206, 88, 75,241,222, 71, 40, +227,156, 83,187, 64, 66,166,165,114,137, 85,115,239,105,140,166, 96,203,143, 90, 66, 74,182, 44,197,117, 68,116, 31,121, 31,255, + 0,223,225,138, 82,169, 83,102, 58,131, 65, 60,164,243,198, 58,163,180, 62, 95, 85, 75, 34, 86, 94, 39,114,208,199,180,182, 71, +146,155, 59,143,254, 29,195,231,142, 60,171, 73,113, 74, 42, 32,254, 56,246,207,195,220, 80,221, 96,129,181,157, 91, 37, 62,237, +199,206, 61,213,228,220, 95,109,216,222, 21, 39,101, 9,250, 26,242,181, 95,150,212, 71,156,167, 52,151, 30, 66, 9, 66, 86, 72, + 73, 62,134,216,172,115,150,166,212,162, 68,151, 84,175, 81, 94,110, 68,196, 37,142,237,230,202,153, 27, 9, 37, 73, 79, 4, 30, +150, 55,196,240,200,108, 33,196,189, 40, 48,165,167,107, 78,168,139, 5, 30, 1, 55,242,197, 3,173,217,199, 53,185, 85, 93, 55, + 53,203, 87,176,174,120, 67,107,142,187,157,169, 54, 33, 32, 14,120,243, 54,224,226,231, 22,222, 30,213,150,208,173,119, 35,156, +120,107, 63, 10,243,181, 41, 69,200,161,217,147, 88,133, 90,165, 22,161, 62, 67, 82, 66,157, 87,181, 37,194,164,161, 32,253,209, +215,143,144,196, 27, 54,103, 52,212,179, 10, 32,228,254,253, 81, 98,190,146,135,101,184, 28, 40, 81, 54,224,244, 9, 23, 56, 0, +227,175, 84,234,210, 98, 80, 19,222, 52, 73, 61,242,135,250,180,223,239, 40,227, 84,121,141, 46, 67, 52, 90,105,105,233, 5, 14, + 50,235,155, 64, 66,145,215,117,250,252,206, 57, 5, 50,216, 94, 97,200,109,203,204,138, 32, 17,189,105,206, 76, 86,105,149,121, + 16,106, 50, 91,124,153, 1,199, 8, 63,126,227,239, 15,136,195, 33, 80, 74,101, 7,169,112,144,206,199,183, 54,227,203,185, 2, +221, 44,122,227, 10,173,106,171, 37,210,197, 90,167,223, 45, 36, 14,249, 70,228,132,139, 36, 3,134,238, 60,138,131,237, 56,251, +235,117,222,236, 39,104, 79, 34,221, 6, 44,161, 10, 8, 25,190, 31,181, 19, 97, 82, 90, 62, 98,118,146,234, 42,237,168,185, 57, +213, 41, 47, 5,178,149,164, 3,199, 3,167, 79, 60, 78, 52,243, 86, 98,228, 28,215, 25,117,154, 74,102,182, 92,188,202, 89, 81, +108, 57, 96,118, 89, 96, 18,142, 77,205,177, 87, 55, 30, 85, 61,148,189, 37, 14, 32, 63,101, 52, 28, 28, 56, 1,183, 24,119, 53, +232,205,253,139,144, 18,195,171, 59,131,197,100,169, 28,117,248, 28, 81,185,179, 98,229, 5, 10, 18, 21,161,143,223,195,195, 95, +125, 50, 66,115, 2,107,171, 52,255, 0, 56,208,181, 43, 42,230, 35, 42, 27,240, 36,193,166, 38, 67, 34,139, 60,166,239, 38,224, + 40,169,125, 13,143, 33, 35,155, 98,130,204, 83,164,199,169,119,146, 61,161,228, 62,162, 91, 15,187,117,130,129,107,159, 76, 76, + 59, 49,103, 28,165,149,232,253,204, 53,207,159,152,171, 51, 87, 13,218,100, 20,173,197,187, 29, 73, 1, 41, 74,109,109,197, 64, +243,215,156, 70,179,116, 7,224, 87,133, 26,144,219,177, 37, 68, 46, 9, 48,234,119, 75,169, 5,118, 41, 36,142, 77,186,244,199, + 41,103,108,139, 44, 77,246,146,146, 19,164, 79,128,131,227, 18, 52, 60,234,202,130,202, 1, 53,141, 71, 86,235,245, 13, 51,119, + 79,229, 80, 34, 72, 92,185,205,201,102,112,140, 59,230, 66, 83,183,186, 73, 3,145,107, 30,122, 99, 86,155,211, 34,215,243, 58, +242,206,116,206,239, 81, 32,119, 46, 59, 49,231,221, 32, 47,106, 10,146,132,167,204,146, 0,249,227,201, 58,137,153, 32,229,137, +121, 38,116, 22, 26,129, 6, 75,146,226,176,203,105, 14, 54,234,194, 65, 59,199, 42, 22, 0, 88,241,136,254, 72,143, 64,172, 86, +157,123, 55,230, 39,152, 74,226, 56,228,101, 50,144,187,189,111, 10, 77,250, 11,227, 89, 22,197, 54,206, 20,167, 40, 36,153, 79, +120,201,136, 32, 68, 76, 70,145, 30,117, 2,224, 10, 4,235, 20,103, 48,189,151,162, 56,183,232,208,101, 54,210,216, 75, 41, 47, +202, 82,146, 8, 79,137, 87,176,224,245,182, 33,117, 26,220,202,123,171,102,152, 80,193, 86,221,239, 54,208, 77,254,125,113, 53, +212,221, 82,250,206,143, 14,139,246,114,166,180,210, 90, 91,169,100, 4,144, 60,207,169,247,224, 70, 85,202, 21,156,226,227, 20, +184,148,180, 42, 82,157, 50, 95,108,172, 33,146,218,121, 36,147,202, 79,187, 27, 86, 89,154,182, 10,120, 71,190,118,231,173, 82, +209, 78,102, 35, 66,126,244,167,153,118, 13, 6,165, 78,110,165, 90,106, 66,218, 80, 82,229, 37,166,236, 60, 41,234, 23,215,175, +150, 34,198,159, 76,153, 86,146,234, 22,182, 41,233,116,169,134, 86,225, 42, 0,249, 15,126, 39, 85,156,221, 26,139, 5,170,108, +152,205, 41,232,237,173,167,162, 60, 54,128, 73, 62, 99,175, 30,126,150,196, 26, 6,232,147,193,147, 75, 43, 90,212, 20, 90, 43, + 54,219,212,117,197,150, 84,225,149, 29,170, 72, 38, 14,148, 50,178, 96,247, 63,232,234, 81, 83,103,107, 91, 71, 84,223,207, 13, + 24,148,243, 55,116,173,101, 70,192, 29,223,150, 12, 76,204,176, 21, 87, 77, 68, 83,118, 36, 44,253,154,146, 10, 71, 63,158, 7, +165, 44, 86,230,174, 82, 2, 89, 74,150, 73, 64,224,127,203, 23, 18, 76, 65, 21, 48, 97, 18,170,104,245, 65,201, 50, 91,135, 32, +168,161, 3,129,233,135, 48, 41,205, 79,121,123,165, 37,180, 52,130,165, 95,175,252,241,166, 74, 34,179, 45, 33, 14, 11, 35,130, + 71, 63,158, 55,144,204,231, 54,197, 65, 66, 71, 0,250,252,113, 56,210, 5, 72,157, 1, 20,215,216, 86, 77,203, 68, 11, 92,110, +243,193,106, 67,203,109,132, 53,223, 44,247,135,196,216, 62, 86,195, 25, 15, 73,105,105,142,165, 37,192, 63, 88,224,166, 89,130, +135,106, 42,113, 18, 2, 31, 67,101,109,146, 69,130,188,135, 60, 96, 55, 25,123, 35,152, 84, 65, 82,168,189, 82,135, 71, 98,128, +205, 65,154,254,233,189,250,154,122, 10,199, 45,128, 1, 11,191, 75, 27,241,134,213, 38,196, 42,108,120, 14,198, 71,122,237,156, +222, 62,240, 7,248, 99,115,244, 73, 10, 79,183, 73,144,137, 33,165, 5,204,109,147,226, 72, 39,145,126,151,198, 53, 71,161, 73, +105,153,180,182, 92,108, 51,116,173,185, 11, 11, 80, 87,175, 30, 94,151,198, 48, 10, 4, 2, 73,223,253, 84,212, 58,208,205,136, +108,142,233,219,146,121, 27,120, 24,245,101,217, 9, 41, 90, 9, 67,100,155,140, 99, 34, 90, 86,164,219,106, 72, 59,137, 2,192, +227, 36, 47,236,133,150,157,132,216,131,231,131,193,208,212, 34,176,125,108,200,123,116, 82, 85, 96, 62,208,139, 99,214,152,126, +165, 32, 54,235,130,233, 22, 42, 35,128, 6, 60, 40,142, 92, 0, 46,197, 43,229, 32,240,172,122,118,180,217,117,167, 10, 73,242, + 39, 14, 34, 52,166,242,172, 95,138,236, 98, 17,183,120,230,196,116,194,199,175,187, 53,253,174, 5, 41, 64,142, 61,216, 88,112, + 9, 26,211,129, 59,215,222,133,160,116,183,192,227, 7, 88,109,164, 23, 29, 33, 32, 14, 73, 54, 24, 1, 35, 62,197, 65,238,225, +166,228,126,178,207, 24, 17, 93,206,202,157, 31,186,151, 52, 37, 54,251,169, 56, 51, 77, 58,225,147,165,108, 41,104, 21, 42,118, +185, 69,142,157,202,158,221,189,199, 26,151,156,178,252,116,243, 43,125,255, 0,100, 19,138,210,110,108,165,199, 77,155, 37,103, +225,134, 74,207,109,183,254,170, 24, 54,243, 81,197,244, 90,181,204,154, 1,185,108,115,171, 78, 70,160,210, 35, 35,236,153,113, + 68,244, 1, 56,213,254, 82, 89,232, 32, 47,111,157,200,197, 84,189, 69,125,213,109, 48, 17,199, 78,112,157,206,245, 71, 99,146, +220, 68,158, 46, 16,130, 46,127, 28, 28, 91,218,164, 73, 31, 31,218,135,237, 41, 39,122,182, 85,168, 84,194,222,229, 68, 88, 62, +151, 24,103,254, 83,227, 37,106, 2, 26,133,135,135,197,138,121,204,253, 81, 96, 31,104,161, 79, 9, 79, 59,144,218, 23,255, 0, +149, 68,225,130,181, 70,141, 29,219,212, 38, 59, 20, 19,255, 0,230,163, 56,223,254,100,219, 21, 13,230, 14,209,135, 9, 79,254, +193, 73, 30,164, 1, 70, 5,213,254,145, 62, 80,126, 85,112, 77,213, 74,177,144, 76,100,165, 40,253, 91,142,113,169,237, 80,204, + 13,186,151, 28,112, 4,249,157,188, 28, 86,172,230,216, 53, 56,201,149, 76,170, 50,251, 87,251,232,117, 38,223, 27, 30, 48,247, +235,135, 37,199,238,128, 42,191, 4,223,140,104, 91, 92, 97,151, 8,150, 74, 84, 58,130, 15,202,128,183,150,131, 10, 4,121,233, + 86, 20,189, 82,168, 84, 91, 12, 53, 37, 45,122,148,117, 56,211, 18,107,210, 93,246,146,249, 81,189,202,148,122,226, 15, 78, 88, + 74,202, 74,130,138,122, 39, 4, 35,212,100, 70, 89, 13,189,183,220, 85,130,149,180,210, 97,177, 20, 86, 31, 5, 90,215,104,118, + 23, 90, 40, 57,103, 51,102,231, 85,114,167,163,199, 73,183, 64,148,173, 71,255, 0, 50,127, 12, 93, 84,188,239, 19, 82,154,151, + 69,166, 76, 5,214,152, 61,227,105, 62, 36,121,115,142,113,250, 63,106,207,102,124,183,154,242,111,127,185,230,203, 50,219, 27, +248,177, 74,144,120,254,138,121,247,140, 68, 50,127,105, 76,187,160,125,190,104,121, 75, 57,102,182,160,192,204,201,126,145, 43, +190,115,107, 73,121, 99,115, 4,223,128, 75,168, 66, 1,253,252,121, 78, 56, 22,238, 46,232, 81,233,242, 21,237,156, 52, 59, 76, + 29,162,216,210, 20, 79,169,174, 43,250,106,114,190,101,201,154,181, 22,155, 83,167,188,148, 78, 22,130,242,191,233, 73, 60,255, + 0, 28, 90,127, 70, 70, 69,141,146,114,244, 55,222,103,106,157, 66, 74,183,121,252,126,126, 88, 61,244,226,234,134, 66,213, 45, + 98,200, 26,117,150,100, 49, 50,100, 25,170, 84,162,139, 29,169, 35,147,238,227, 19, 30,204,121, 89,202, 60, 42,122, 91, 99,104, + 75,105,238,211,253,167, 24, 23,206, 43,217,146,217,241,248, 87, 88, 16, 17,110,146, 57,138,235,250, 82, 36, 79, 97,168,105, 85, +137, 64, 82,173,250,160,255, 0,105,196,178,154,180, 65,166,247, 41,229, 73, 0,148,143, 35,255, 0,166, 35,121, 46, 9,135, 74, + 75,238, 40,169,210, 55, 40,129,212,225,231,214,114,153, 75,151,178, 9, 38,254,240, 7,247,155,124,177,148,141, 53,161,196,211, +242,239,217, 45,197,147,181, 75,218,148,250,171,251,186,124,177,154,107, 46, 46, 64, 66, 82,118,169, 55, 79,160, 31,250, 96, 68, +117, 41,180,163,189,112,128, 65, 54,247,242, 79,231,252, 48,150,243,137,152, 81,187,192, 81,199, 62,255, 0,241,242, 24, 42, 73, + 21, 21, 38,164, 11,148,135, 93, 66, 10,186, 42,235, 3,211, 26,100, 64,109,229,149,173,119, 28,222,222,120, 98,204,150,131, 42, + 82, 85,101,110,181,201,231,211, 27,162,206, 47, 39,126,240, 8, 77,138,125, 71,248, 56, 62,244, 19,165,123, 46,145, 13,240,119, + 4,220,164, 31,143,150, 2,202,162, 68, 74,238,194,236,177,247,110, 60,198, 11, 84, 36,164, 54, 16,218, 73,219,192, 62,183,192, +105, 47, 75, 65,178, 1, 38,247, 77,252,199,248, 24, 18,210, 41,130,141,122,105,200, 82,182,223,109,250, 17,208,224, 70, 98,163, +181, 37,155,150, 47,197,207,195,142,127, 60, 60,118,180,224, 90, 83, 99,110, 6, 48,155, 82, 67,129, 71,146, 59,176,109,233,205, +184,255, 0, 30,120,174,164,138, 98, 77, 86, 89,195, 79, 41,149, 52, 21,119, 99,113,253,145,249,226,171,205,122,116,220, 69,151, + 98, 36,236, 60, 41, 39,130, 49,122,212, 81,181,213,150,200, 62, 3, 97,208, 30,132, 15,195, 16,188,201, 79, 76,179,185, 23, 73, + 43,186,146, 71, 55,194, 74,202,104,106, 73, 21,205, 58,145,167,136,171,196, 91,111,178, 28, 83, 98,224,148,139,145,142, 5,237, +223,217, 97, 48, 0,212,108,151, 5, 41,148,194,183, 73,105, 8,218, 86,159, 95,126, 62,168,102, 90, 25,246,142,245,230,124, 38, +233, 38,216,231,222,213, 26,125, 79,149,150, 36,134,216,220,219,141,168,157,162,246, 62,124, 99, 66,210,233, 77,184, 40, 0,148, + 56, 43,231,135,101,141, 74,206, 7, 53,192,203,212,152,111, 59, 33,249, 9,101, 40, 23,240,171,223,242, 4,227,236, 7,103,154, + 6,111,143,146, 98,190,165, 45,205,232, 73,115,113, 54, 28, 99,132,187, 57,233,214,159,229,101,202,212,152,112, 91,250,196,202, + 67, 11,105, 35,194,135,124, 72, 82,199,165,193,231, 31, 78, 52, 86,167, 79, 99, 79,225, 71, 90, 82, 10,217, 77,250,115,141, 92, + 73, 33, 9, 19,204, 77, 90, 85,218, 46, 26,238,141, 1,143,120,222,133,103,108,143, 55, 48,229,154,133, 53,164,164, 25,112,156, + 97, 97,195,192,220,130, 1,249, 95, 28, 89, 95,201, 79, 83, 38, 72,164,213, 99, 41,153, 81,158, 83, 78,180,161,202, 22,147, 98, + 15,204, 99,232, 69,108,173,112,156,114, 42, 82, 8, 73,181,186,142, 49,203,221,164, 50,174,236,228,222, 98, 75, 59, 5, 78, 26, + 29,119,142, 3,168,187,106, 31, 31, 10, 85,253, 44,110,240, 54, 42,171, 43,183, 45,142,203, 18, 60,199,238, 15,194,184, 94, 47, +180,237, 45, 82,240,229,161,247,215, 53,215,242,228,165,176,166,225,190,211, 42, 1, 65, 75,121,146,180, 90,199,168, 24,231, 61, + 75,165, 86,178,188,202,109, 50,107,205,151, 17, 45,247, 30,158,166, 13,137, 88,183, 59,143, 64, 58,116,199,105,185, 69,136,131, +222, 22, 46, 71,222, 39,207, 20,102,163,232,190, 96,207,122,160,254,100,173,102, 24, 52, 26,124, 36,129, 17,199, 0,219, 45,195, +205,246,168,216,128, 56, 56,238,113, 21, 46,230,237, 47, 3,202, 62, 62,127,126,117,228, 14,167, 35,132,215, 31,102, 74, 36,156, +185, 84,117,168, 78,200,246, 85,183,117, 58,131,179,191, 77,249,189,141,173,124, 70,189,161, 13, 2,211, 44,109,113, 64,169, 42, + 72, 36,252, 49,122,234,146,114,116,248,177,233,180,202,205, 94,125,105,117, 37,178,166,123,166,187,182, 82,147,202,146, 17,112, + 71,165,177, 89, 87,116,231, 51, 51, 41, 21, 84, 83,228,169, 51, 36, 45,184,138,238,172,167, 20,155, 92, 91,200,220,129,108, 80, + 73,239,229, 84, 79,133, 32, 73,222,161,142,190,244,167, 18,154,139,197, 62, 45,167,195,200,249, 96,163, 80,169, 44, 5,191, 46, + 75,173,108, 82,123,151,218, 69,195,128,245,227,215, 5,149,166,121,214, 45,124, 82,235, 25, 86, 75, 18, 86,210,221, 66,100,178, +164,168,132,125,227,207,150, 6,102, 16,168,211, 59,182, 75,110,134,145, 98,155,147, 98,121,183, 56,117,171,191,217,141, 13, 74, + 53,167,117,153,205,183, 78,142,218,165, 53, 35, 99, 87,104,164, 2, 81,126,108,125, 14, 26,211, 87, 18, 83,241,154,170,201, 10, + 27, 73, 66,130,249, 4,115,180,131,208, 96, 76,185, 33,243,100, 32, 33, 55,184, 9, 77,185,195,116,133, 23,118,145,201,251,202, + 35, 14,150, 97, 17, 76, 0,169, 94, 94,212, 90,198, 71,206,148,253, 69,200, 18,157,164,213,105,146, 68,136,210, 26, 0,247, 46, +164,248, 84,159, 95,158, 10,215,243,146,243, 93, 97,252,201, 93,175, 72,169, 84,234, 14, 45,249,210,221,241, 5,188,165, 92,145, +233,114,121,242,196, 93, 8,250,213,164,164, 72,101,164, 52,217, 13,128, 45,127, 91,251,206, 8, 80, 87, 10,147, 14,124,248,181, +178,196,164,178, 26,138,193,104, 47,190, 10, 62, 62,122, 38,195,155,226,155,214,236, 21,118,153,123,241, 19, 26,196,232, 9,130, + 98, 76,244,169,133, 40,140,147,166,241, 69, 43,148,135, 41,200,122,167, 62, 4,148, 68,125, 33, 13, 56,187, 0,181,128, 55, 15, +126, 6, 64,147, 34,178,228, 74, 20, 42,115, 97,132, 57,119, 20,148,128,181,124, 84,113, 44,152,186,141,107, 35, 50,128,200,126, + 59, 33, 43,222,183,145,126,241, 66,220, 39,175,145,190, 35, 48,209, 62,159, 57,168,174,159,101,113,247, 64,113,125,209, 61,218, + 79,159,248,244,197, 75, 87, 2,129, 74,247, 7,236,199, 88,168,168, 40,123,233,246,113,203,244,230,150,167,163, 59, 29,178,174, + 27, 75, 46,216,182,125, 0, 29,109,235,124, 22,127, 32, 79,211, 76,143, 75,207,159,167, 48,220,145, 85, 74,156,106, 27, 51, 20, +167, 22,216, 54, 37, 86,233,200,192,106,174, 88,168, 68,188,134,148,212,158, 77,223,125, 86, 7,211,143,236,195, 42, 84, 90,203, + 85, 52,178,150,151, 44, 52,217, 82, 80,163, 96, 7, 82, 7,160,185,232, 49,120, 5, 20, 36, 37,122, 13,199, 81, 27,107,181, 85, + 74,199, 51, 52, 90,129, 84,163, 84,107, 42,174, 86, 98,185, 61,106,142,160, 33,184, 47,117,219,142,189,121, 3,156,110,205,175, +201,162, 67, 92,106,221, 25,136,239,203, 9, 89,104,248,150,150,252,128, 61, 83,133, 46,148,213, 78, 68,156,216,167, 18,195,251, + 82, 91,110, 51,170, 42, 10, 64, 0,248,109,243,198,221, 64,166,211, 95,153, 26,213,223,107, 15,193, 75,178, 31, 82,247, 20,168, +139,169, 55,247, 98, 0,161, 79, 36,107,254,185,116,169,133, 2, 65, 53, 14,147, 72,159, 83, 97,152,204, 48,211, 45, 62,225,238, +155, 39,197,111, 83,129, 18, 97, 75,129, 37,232,137, 28, 50,238,197,173, 61, 47,141,239,212, 89,106, 74, 95,109,107, 10, 71, 9, +178,188,177,140,228,203,106, 34,101,186,224,216,242,238,132,222,231,226, 78, 53, 83, 41, 0, 26, 40, 6,105,155,173,169, 82, 59, +215, 5,211,182,201,240,245,198,106,146,210,135,119,221,148,219,165,188,241,140,137,110,188,208, 42,176,183, 66, 6, 28,195,167, +206,159, 24,187, 26, 22,244,180, 46,183, 18,159,227,130, 72, 9,214,156,137,222,180, 70,142, 92,187,129, 28, 36,254,177,196,129, +182, 24,131, 26, 43,143, 76,142,181, 60,218,183,178, 21,114, 44,122, 31, 75,249, 96,101, 62, 89,100, 41, 47, 71, 75,137, 64,181, +239,107, 99, 20, 70,113,217, 65,104, 41,228,240, 48, 23, 91, 14, 1, 38, 34,155,157, 29,149, 82,159, 1, 70, 51,108,134, 91,113, + 32, 41,144,139,113,234,125,113,167,184,168, 46, 83,197,148,149,221, 55, 83,205,167,129,111, 92, 74,178, 59,143,214,159,114, 21, + 94,156,218,155,109,176, 27,113, 45,220, 36,142,130,248, 47,155,227,198,161,229, 89,146, 91,117, 8,121, 77,132,161, 8, 29,111, +199, 54,198,113, 25, 87,144,243,171, 9,100, 45, 19, 58, 85, 80,219,193,234,139,155,200, 45,129,194,136,234,172,123, 21,165, 56, +234,164,164, 42,200, 54, 0, 14, 62, 56,117, 68,160,206,173, 84, 5, 42, 21,183,184,119,169, 71,162, 0, 29, 78, 44,225,146,242, +181, 50,145, 14, 19, 81, 18,234,146,208,246,130,127, 89, 64,245, 54,197,171,149,165,158,232,220,252,133, 76, 50, 84, 12, 85,117, +236, 14,161, 77,161, 13,133,184,234,119,162,223,171,140,156,165, 78,105,210,135,226, 56, 10,147,100,133, 39,239,122,226,197,110, + 5, 50, 34,201,131, 5,182,193, 60,109, 78, 54,132,180,124, 75,108, 18, 58, 92, 98,158,106,113,102, 72,212,213,109, 31, 47, 86, +228,183,185, 20,167,200, 73,176, 41, 73,182, 22, 45, 86,234,157,218, 2, 26,109, 40, 0, 90,216, 88, 89,141, 55,178, 87,120, 74, +205,245, 7,220, 42, 18, 73,255, 0,186,113,168,102, 74,155,128, 36,185,193,243, 87, 39, 1, 90,153, 21, 0, 4,188, 15,173,177, +227,213, 20, 35,150, 8, 87,187, 20,198, 42,122,208,202, 84, 78,180,117,202,155,202, 3,188,108, 47,225,143, 10,150,225,222,109, +107,116,190, 34,210, 43,147,158,119,186, 15,108, 3,211, 27,169,245, 69,135,131,110, 73, 61,122,238,195,255, 0, 85, 81,231, 76, + 90,169, 35,106,108, 14, 16, 65, 62,252, 63,140,195,201, 72,115,189, 0, 31, 34, 48, 9,117,136,233, 64, 6, 66, 2,190, 56,115, + 22,190,157,157,216,150,149, 31, 44, 72, 98,167,173, 67,178, 85, 61,157, 46, 83,107, 44, 54, 81,201,228,225,187,178, 93,238,130, + 93,109,178, 45,201, 24,208,228,182,220, 89, 90,228,139,249,219, 26, 93,155, 21,209,221,170, 82, 82, 60,201,243,194,254,168,122, +212,131, 74,161, 18,242,172, 55,220,222,205, 85, 37,245, 3,117, 46,158,208, 81,254,147, 97, 7,243,192,153,185, 75, 62, 80,214, +101,229,188,222,219, 4, 31, 11, 0,184,132, 31,136, 81, 93,240,126,106, 91, 72, 11,140,232,189,248, 82,112,218, 84,151, 35,160, +185, 33, 69, 64, 12, 99,220, 49, 97,114,231,104,160, 66,191,228, 20,160,125, 65,173, 6,238,174, 91, 25,100, 17,208,128, 71,202, +163,208,245, 83, 86,242,164,133,126,152,100,197,205,140, 15,138,109, 25,192,234,237,234, 81,193,249, 1,137,142, 71,212,204,187, +158, 35,125,107, 66,172,123, 82, 18, 74, 94,106,246,117,149, 14,169, 90, 15,137, 4,122, 16, 49, 17,151,154,107, 81,147,186,117, + 1,192,215,253,172, 69,119,192, 15,120,176, 87,224,147,138,179, 90,105, 75,101,214,181,179, 78, 29, 68,153,148,213, 3, 90,131, + 29,194, 61,173,129,215,112, 22, 41, 90, 71,159, 6,223, 12, 48,196, 46,236,209, 13,186, 86, 7, 37,239, 30, 6, 36,251,230,175, + 91, 50,197,211,161, 43, 72, 65, 59, 20,237, 61, 8,157, 39,204, 87,210,207,163, 79, 81, 90,164,246,137,107, 47, 45,219, 53, 92, +165, 72,140, 82,163,213, 73, 1,224,127, 6,213,248,227,147,191,246,131,178, 84,236,155,218, 46,157, 92,131, 47,187,102,124,112, +182,123,187,164,165, 96,142, 65, 30,125, 57,192,158,206,125,160,235, 57, 82,169,150,245,223, 79,234, 79, 86, 32, 65,148,220,165, +193,121, 64,201, 66, 82,126,213,180,175,245,141,183, 36,165,119, 39,201, 94,189, 19,244,175,234,127,102,126,213, 61,140,227,235, +118, 94,170, 70,126, 99, 45,247,108, 9, 22, 76,168,210, 44,146, 90, 82,111,112,121, 4, 90,224,130, 8, 36, 27,227, 62,238,239, +182,188, 75,132, 65, 35,215,148,131,233,227,225, 94,169,193, 47, 54,219, 10,181, 90,181, 4,253, 57,121,131,235, 92, 69,217, 6, +177, 35, 84, 43, 52,199,115,101, 69,201,213,120, 85, 5,162, 93, 74, 99,170,117,231,208,162, 11,119, 82,142,226, 5,202, 64,253, +209,143,171, 58, 67,148, 35,195,163, 68,120, 55,100,132,166,192,117, 60, 99,228,119, 96,198, 51, 34,243, 58,115, 57,165, 41,186, + 96,144,129,237, 36,125,247, 18,187, 41, 35,224, 47,248,227,236,206,146, 71, 46,229, 88,178,100, 55,117,184,128,160, 1,232, 63, +199,246, 99, 3, 19, 90,149,113,173,118,174,165,164,136, 65,145, 39,215,152,251,218,173,186, 27, 40,137, 73,109,231, 0, 46, 41, + 60,143, 33,128, 85,137,143,174, 73, 74, 65, 9, 11,220, 5,250,129,198, 11,135,123,154, 32,104, 95,114,128,221,207, 75,249, 98, +136,237, 99,219, 63, 74,123, 45, 51, 24,102,197,189, 54,171, 53,189,208,168,144, 10,123,231, 91,185, 29,226,137,225,180, 94,227, +113,228,155,216, 27, 27, 80, 89, 9, 76,157,170,186,119,171,122, 60,197, 4,134,158,112,130, 60, 74,191,190,220,127,143, 92, 60, +155, 37,144,165,168, 44, 88, 40,238,248, 94,223,192,226,171,236,255, 0,218, 2,141,218, 15, 77, 98,106, 93, 23, 44,212,233,113, +229, 60,164,180,221, 77, 8, 29,226,145,194,138, 10, 84,119,160, 16, 70,238, 57, 7,142, 49, 42,118,169, 32,151,157,144,191, 9, +225, 34,255, 0,158, 36,217, 4, 72,169, 17, 52,112,214,246, 18,202, 5,238,120, 56, 33, 18, 91,109,181,202,252, 69, 94,103,204, +226,191,126,182, 98,200, 8,239,137, 34,219,121,242,191,252,176,110,145,152, 91,148,195, 78,184,176, 9, 80,243,255, 0, 30, 95, +199, 22, 6,212, 23, 4, 84,183,218,146,225, 1, 32,237,185, 10, 31, 44,104,144,250, 67,104,104,172,110,185,177,243,245,192,216, +245, 87, 18,210,214,165, 88,155,113,124,107,122,115, 74, 90, 93,109,193,193,228,124, 78, 25, 91, 80, 57,214, 82,210,203,129, 86, + 90, 66,135, 33, 94,184, 17, 84,144,228,111,181, 74,128, 3,238,223,204, 28,108,149, 37,198, 31, 89,255, 0,229,128,111,234, 48, + 2,173, 92, 82,201, 97,103,128, 15,248,255, 0, 30,184,170,179, 72, 26,206, 92,230,221, 66,143, 4, 3, 96, 61, 48, 10,175, 25, + 9, 33, 65, 87,241,121,244,198, 78,213,152,103,113,121,206, 58,159,199, 2,167,215, 88,101,183, 8,115,117,206,228,243,239,192, + 53,154,138,148, 34,133,102, 38, 26,121, 5, 37,177,117, 19,108, 83,250,187,150,153,168,210, 92,100,253,224,146, 64,183, 10,227, +159,203, 22,173, 78,165,223, 21, 54, 69,192, 30, 19,242, 54,196, 11, 50,151,157, 75,141, 74,177,178,141,137, 28,115,130,182, 72, + 53, 77,106,138,227, 93, 37,160, 75,168,235, 75,250, 77, 75, 59, 88,145, 84, 19, 31,111,205, 41, 72,182,223,129, 81, 39,250, 56, +232, 30,219, 29,162,115, 23,101,122, 38, 77,202,116, 40,174,162, 85, 90, 80,239,100,148, 43,186,142,202, 64,251,202,232, 20,162, +108, 1, 60,217, 71,203, 20,134, 92,149,156,116,223,182, 27,217,251, 41,229,132,213, 32, 21,161,153,241,195,201, 66,227,216,159, + 16,220, 69,211,240,231, 23,174,175, 84,226,235,187,245, 23,115,197, 49,167,227,212, 35,123, 57,136,180,133, 37,166,194,108, 0, +191, 66, 58,223,200,243,142,137, 44, 61,122,180,102,253, 33, 59,252,133, 83,190,199,112,236, 41,230,130,128, 84,153, 82, 65,215, + 93,201,250,117,171,239,178,206,168,197,213,156,148,203,210, 42, 40,126, 91,204,248,182,171,146,109,233,128, 61,168,114,203,176, +242,245, 41,109, 51,226, 98,161, 37,181,241,208, 41, 45,145,249,164,254,120,128,253, 17,154, 59, 92,201,121,138,177, 67,172,214, + 76,193, 76, 15, 54, 29,113, 68,221, 33, 68,161, 66,253, 60, 5, 60,122,223, 23, 31,108, 88,210, 41, 50,105, 49,100, 63,102, 36, +165, 78, 1,110,170, 79,159,224,230, 3, 96,165,218,226,237,248, 79,200,210,226,212,219, 12, 49,197, 50,101, 42, 9, 35,222, 68, + 87, 51, 74,163,188,160, 67,111,160, 19,201, 4, 96, 62, 98,200, 20,236,207, 79, 52,250,253, 33,185, 13, 41, 36, 37, 93, 10,110, + 44, 74, 79,145,196,162,172, 89, 84,165, 6, 85, 97,141, 10, 83,138,218, 16,191, 43, 91, 30,130,222, 33,152,107, 94, 17,116, 59, +213, 88,193,236,171,165,176, 43, 84,170,205, 27, 43, 8,142,210,221, 43, 71,118, 77,158, 37, 36, 13,228,245,235,124, 77, 27,210, +138, 43,219, 86,237, 18, 25, 45,187,222,183,102,147,116,175,246,135,161,196,161,128,226,130, 80,129,186,227,158, 49,181,101,198, +149,189, 73,218,145,202,142, 12,155,224, 12,138,167, 19, 92,187,219,127, 66, 51, 37, 98, 55,249, 83,133, 88,125,165, 83, 41,222, +203, 2, 20, 88,203, 94,245,169, 68,172,175,109,252, 37, 55,247, 99,136,230,229,121,173,184,224,220, 29, 81, 81,222,168,227,120, + 71, 23, 35,142, 71,246, 99,232, 54,190,246,177, 68,118,165,228, 44,153, 76,239, 93,121, 70, 58,229,173, 93, 60,137, 72,254,252, +115,123, 77, 83, 98,251, 75,206,209,162,153, 14, 47,237, 94, 66,172,224, 6,247, 31, 3,135,246,210,163, 49, 81,237,178,232, 43, +155, 42,116,154,132, 64,137, 37, 46, 37, 15, 92,176,165,121,128,108,127, 60, 51,125,249, 8,148,215,116,164,173,194,161,116,108, +189,199,166, 44,189,115,171, 53, 80,122,149, 76,129, 77,102, 52, 74, 92, 2,204,116,180, 57, 93,214,165, 21, 43,222, 73,196, 27, + 41, 66,113,218,236,121,225, 23, 72,154,219, 74,226,246,189,241,170,133, 36,177,156,138,209,101, 25,208, 12, 81,170, 13, 46, 84, +246, 94,126,159, 2,206,161, 33, 68, 16, 8, 3,206,192,227, 57,217,110,117,107,125,102, 27,171,122, 91,206, 4,186,207,116, 1, +191, 65,180, 14,184,176,152,203,180,202, 60, 34,235, 77,182, 94,120,169, 42,109, 66,231,111, 91,156, 18,161,191,245,117, 65,154, +140, 40, 41, 74,153, 59,155,216,155, 4,155,117, 24,231, 29,191, 82, 74,150,216,208, 78,167,109, 57, 73,249,212,147,102,174,102, +171,234, 30, 84,204,148,245,152,115,233,171,140,224, 35,114,151,193, 65,183,152,196,223, 40,101,182,105, 32,213, 43,243, 74,203, +188, 48,203, 45,141,203, 30,132,158,128,156,123, 82,154,253, 66,107,147,100,184, 84,227,138, 42, 82,148,110, 73,193, 40,142,229, +250, 46, 90,122,183, 83, 90,164, 77, 28, 65,134,131,192,253,229, 31, 47,112,196, 93, 90,222, 97, 14, 70,166, 54,241, 28,188, 60, +104,119,140,182,221,185, 6, 73,216, 70,255, 0,126, 60,170,180,212, 28,199, 76,118,189, 37, 81, 88,216,234, 92,179, 45, 54, 15, + 43,233,127,144,192,104, 19, 43,212, 73, 46,201,102,112,246,132,160, 41,208,160,124, 35,246,112,106, 6, 90,170, 87,234,143,214, + 24,167,149,200,117, 95, 97,114, 54,162,254,100,156, 57,212, 42,125, 82,133,236,209, 93,166,182,169,101,190,234, 83,236,120,144, +213,207, 79,143,169,198,139,110, 33, 11, 12,141, 79,223,223,157, 99,162, 80,160,216, 18, 99,229,244,167, 57, 51, 58,100,172,187, + 20, 86,107,161,201,253,226,200, 92, 55, 91,176,113, 91,120,220,120,226,246, 63, 44, 71, 51, 70,104,163,212,234, 13, 73,139, 31, +185,107,104, 46,161,165, 15,180, 81,235,240, 24,114,252,106, 45,110,139, 6,135, 17,196,161,246,218, 91,179,159, 82,188,197,248, +196,114,163,149,230, 67,133,237, 78, 48,164, 36,163,114, 10,211,109,201, 61, 8,197,150, 26,104,172,172,200, 39,175, 74,176,201, + 18, 73,153,241,173, 53, 54,163, 41, 74, 67, 16,202, 11,139, 1,178, 23,126, 62, 56,215, 45,217,132, 55, 26, 84, 91, 6, 83, 97, + 97,193,247,227,101, 43, 46,102, 9,145,151, 54, 37, 41,215, 88,108,128,181, 91,128, 79,166, 39, 25, 58,128,253, 93,182,105, 21, + 90, 58,202, 22,173,169,113, 77,155, 36, 17,230,109,131, 63,112,213,184,213, 64,199,141, 92, 67, 75, 81, 2, 55, 53, 92, 75,146, +136,241,200, 75,128,149,240,145,111,207, 4,225, 57, 54,130,234, 92,134,251,130,195,197,207,133, 70,220,241,134,218,143,148, 93, +202, 85,199,161, 54,178, 88, 39,115, 55, 55,176, 62, 88,184,244,231, 43,209, 51,174,151, 67,144,186,107, 10,125,214, 9, 91,197, + 60,133,131, 99,207,203, 25,216,182, 51,109,132,218,161,247, 18, 84,149, 24,211,202,126,149,104,217, 40,171, 40, 48, 69, 84,146, +208,100, 61,222, 40,221, 78, 39,197,180, 90,227, 15,178,237, 6,165, 81,113, 45, 83,227, 23, 28,221, 96, 7,166, 47,252,157,163, + 84, 76,207, 90, 97,164, 83,216, 65, 97, 9,246,135, 54, 3,225, 29,109,239, 61, 49, 55,143,164,185, 70,133, 50, 66, 96,209,154, +105,246,208, 67, 37,164,109, 42, 73,243,198, 62, 33,197,246, 22, 23, 6,221, 64,230, 9, 10,242,159,219, 73,161, 11, 55, 20,137, +157, 42,147,202, 52, 25,116,154, 74, 24,117,237,207,190,162, 84, 47,247,121,181,189,227,223,141,185,242,150,165, 80, 30,132,183, +208,225, 75, 69, 94, 17,200, 35,156, 75,179, 14, 65,172,210,228,251, 98,130, 75, 71,113,104, 19,205,147,212, 91, 1, 37,209,170, +146, 97, 73, 97,136,228, 36,176,119,133,117,177, 30,252, 30,223, 19,180,125,105, 90, 28, 7,223,207,248,171,104,107, 34, 34,171, +173, 38, 33,220,216,236, 46, 47, 34, 55,134,253,120, 55,196,246, 74, 2, 29, 87,116,210,138, 45,107,168,249,226,173,202, 51, 92, +162,230,232, 50, 16,238,207,181, 45, 44,250, 5,113,139, 97,166, 47,114,218, 75,201,191, 32, 3,108,107, 95,119, 30,204,118, 34, +147, 83,150,152,148,139,216, 99,106, 88,113,180,133, 45,179, 98, 56, 56,242, 90, 23, 14, 43,181, 7, 89, 80,101,167, 82,218,212, + 7,235, 30,108, 61, 77,177,174, 52,198,102, 41, 45,198,116,169, 74,108, 44, 32,117,177,192, 32,148,230,229, 78, 29,109, 74,202, + 14,181,180, 69, 83,156,182,229,253,111,197,142, 22, 54,162,149, 84,113, 33,104,167, 72, 80, 61, 8,101, 68, 31,203, 11, 16,237, + 17,255, 0, 33, 69,131, 93,119, 38, 85, 33, 69, 37,185,232, 23, 54, 0, 28,107,146, 98, 33, 64, 38, 85,253, 8, 56,207, 50,229, + 28,165, 15, 44, 78,204,202,124,194, 98,156,219,203,125,111,133,236,105,166,208, 84, 84, 15, 60, 93, 10, 23,228,248, 78, 42,218, + 70,124,162,234, 46, 95, 70,104,211, 60,214,197, 90, 11,178, 77,221,136,230,238,229, 95,176,164,158, 80,127,116,128,122, 99,193, + 44,248,218,241,242,165,148,119,118,233, 7,206,186,149,240,194,123, 44,233,152, 27,152,211,202,172,223,101,220,161,107,147,132, +170, 90,221, 90, 80,133, 20,173, 95,119,212,226, 2, 51, 54,127,166,146,203, 65,213,169, 42, 36, 41, 76,222,227,158, 61,221, 48, +123, 45,106, 54,100, 46,165,250,150, 94,117, 76, 54,132,247,171, 8,186,145,187,175, 31, 11, 99, 97,142, 47,108,173, 41,117, 49, +212,131,181, 81,115, 1,113, 32,148, 42,106, 86,197, 14, 69,193,118,231, 4,227,229,230, 54,248,214,160,163,230, 48, 18,159,170, +153, 91,218,195, 43,110, 64,114, 83,129, 73, 66,147,123, 13,163,240,196,145, 85,244, 48, 75,206, 83, 84, 27, 10, 0,146,174,109, +127, 65,141, 71,184,163, 8, 97, 50,167,125, 38,106,138, 48,123,215, 21, 1, 52, 62, 69, 34,116, 71, 54,161,229, 41, 7,167, 56, + 97, 42, 35,205,168,221, 4,223,208,226, 67, 76,206,116,185, 81,159,121,108, 4,247,105, 37, 40, 87, 85,115,229,135,146,106, 89, + 94, 62, 80,151,156,171, 49,214,204,120,109,130,166, 90, 70,231, 95,113, 95,113,166,211,230,165,114,111,209, 41, 73, 39,165,140, +236,120,138,195, 17,115,179,105,103, 55, 66, 35,210,172,127, 67,196, 2,194, 82,137, 39, 77, 42, 7, 49,115, 16,120,117, 64, 14, +128, 99, 19, 46,170,228,109,142,130, 83,228, 78, 5, 71,237,205,217,189, 25,118,161,144,233, 58, 55, 89,169,231,186,138, 91,102, + 35,242,102,149,177, 73, 80, 90, 92, 90,253,157, 45,161, 78,146,218, 86,139,238, 80, 27,183, 0, 45,130,113, 53, 18,135, 95,165, + 8,230, 11, 17,101,165, 9, 43,186, 84,210,156, 38,225, 94, 5, 45, 64,216,129,202,108, 57,231, 26, 15, 95, 34,217, 37,110,152, + 0,198,189,126,158,250,189,119,195, 24,133,157,183,106,230, 95, 32,100,249,104, 34,125,244,210,163, 62,106,155, 13, 7, 72, 72, +244,192, 90,134, 93,139, 85,120,206,135, 37,200,117, 4,166,201,152,200, 6,227,246, 92, 73,225,196,126,233,249, 17,215, 18, 72, +173, 71,144,224, 74,246,168,168, 92, 0,111,112, 49, 11,214,106,236, 61, 63,136, 51,245, 13,194,151, 41,111, 32,213,162,148,148, +137, 49, 73, 9,112, 11,128, 20,164, 3,188, 17,114, 54,159, 34,113, 31,111, 97,196,254,160, 71,157, 97,178,195,253,168, 74, 65, + 7,239,122,172, 50, 78,164, 84,251, 50,235,147,217, 43, 52, 68,246, 12,189,153,157,222,203,141, 40,247, 17,223, 38,219,218, 81, +232,130,120, 32,242,144, 69,250, 92,186,237,103,155,107,186, 99, 85,136, 98, 70,139, 62,141, 91,109,101,166, 95,105, 42, 44, 60, +144, 1, 40, 54,225, 86, 85,194,185,235,238,196,187,181,118,156, 82,245, 27, 64, 42,181, 68,182,133,191, 6, 15,214, 84,185, 41, + 28,164,164, 5,220, 31, 69, 34,255, 0,150, 57,123, 63,107, 72,213, 14,206,217, 85,202,172,189,213,154, 13,101,200, 51,183, 43, +196,180, 22,129,109,207,152, 77,143,189, 39, 21,213,217,131, 35,126, 71,159,148,244,174,195, 5,125,215,174, 91,185, 70,132, 28, +171,244,209, 95, 67, 93,229,216,198,155,148,209,167,121,102, 46, 91,109,207,103,144,199,124,174,248,130,181, 60,181,149, 44,168, +143, 61,215,249, 1,143,169,154,109,177, 52, 8,155, 64,176,101, 36,219,208, 1,255, 0, 44,124,120,250, 50,115, 43,181,188,161, + 74,142,252,143, 13, 50,185,220,184, 84,120, 74, 20, 82,171,255, 0,226, 56,250,237,144, 43,145,216,161,162, 54,224, 11, 8, 8, + 87,225,198, 51,238, 28,237, 92, 10, 53,222,224,235, 89,105,214,214,100,133,159,142,181, 61,174,230,186, 93, 15, 43,204,204, 21, +137,168, 98, 28, 24,174, 63, 41,247, 77,146,211,104, 73, 82,148,125,192, 2,113,241,102,173, 91,206,189,184,251,104,183,237, 21, + 39,173,154,179, 16, 66, 19,186,254,199, 79, 65, 38,201,191, 64,219, 9, 63, 18, 61,248,237,175,165,171,180,170,180,151,179,147, +154,113, 72,168,247,117, 76,234,247,177, 4,161, 86, 82, 33,163,197, 33, 95, 48, 80,223,188, 56,125, 49,204,255, 0, 68, 22,157, +189,153, 53, 78,187,172, 51,153,188,122, 12, 1, 10, 3,138, 28,123, 76,131,226, 80, 62,169,105, 42, 7,255, 0,170, 49, 73,211, +218, 58,148,122,214,170,115, 5, 72,175,163, 20, 86,233, 25, 26,147, 3, 37, 80, 98, 55, 18,157, 77,136,152,208,217,104, 89, 45, +182,148,132,128, 62, 64,227,124,186,243, 72,104,184,169, 62, 13,221, 9,196, 83, 53, 85,247, 45,111, 52,190,109,202, 65,248,255, + 0,207, 16,250,158,107,144,182, 16,200,144, 64, 0, 94,231,227,255, 0, 60,105, 33, 19, 78, 78, 81, 86, 13,126,189, 25,198,211, + 34, 59,219,148,165,146, 8,248,225,147,121,205,250,106, 84, 3,164,139,220,123,175,255, 0,166, 43, 21,102,233,136,145,181, 74, + 37, 9, 36,165, 63, 46,191,152,198, 43,207, 37,162,125,160,238,220,158,151,244, 22,197,160,214,149, 85,199,106,240,166,106, 63, +180, 69,222,235,151, 85,128, 54, 62,118,181,240,245, 25,193, 41,106,251,252, 86, 6,196,249,143,253,113, 69, 80,115,160, 68,144, +183, 29,178, 56, 35,158,188,226, 68,115,211, 5, 42, 45,187,115,199,159,203,251, 48, 23, 27, 53, 92,172, 85,160,246,116,222,173, +174,175,147,114, 47,233,128, 53,252,194,218, 91, 15, 37, 66,206, 38,252,121, 31, 60, 66, 95,206,237, 56,246,237,228, 0, 64,235, +228,112, 42,175,156,247,110,141,222,220, 2, 79, 94,131,174, 42,169, 6,160,167, 0,169, 44,188,196,101,120, 3,158, 29,190, 71, + 26, 39, 72,105, 76,141,175, 18,160, 1, 62,251,117,196, 66, 53,125,176,206,245,174,228, 90,252,245, 28,223,248,227,207,210, 34, +149, 32, 7, 73,240,157,220,249,121, 96, 93,153,160,169,225,202,136,214, 43,142, 50,199,124,210,141,202,184, 4,254, 24,142,214, + 51, 20, 89, 80,214, 30, 80, 42, 90, 56, 23,243, 60,219,248,140,106,175,214, 74,183,119, 42,184,219,125,163, 21,230, 96,157, 82, + 51, 20,227, 43, 59, 1,220, 61,254,191,227,223,130,161,169,170,203, 89, 85, 15,203, 58,105, 84,173,103,138,157, 82,148,192, 33, +213,248,220,113,196,161, 32,219,173,201,196,170,177,147,230,100,186, 52,186,237,110,171, 21, 17,161, 66,114, 92,146,137, 40, 81, + 13, 54,146,165, 40, 11,220,216, 3,211, 20,230,178,231,250,237, 47, 48, 71,162, 81, 35,160, 1, 9, 11,154,235,132, 0, 1, 36, +130, 57,231,131,136, 36,221, 69,253, 33,132,236, 7, 91,157, 37,180,165, 77,184, 9,186, 20, 15, 4, 91,139,130, 58,226, 74,197, +113, 70, 30, 13,160, 39, 32,142, 68,159,255, 0, 96, 60,180,175, 61,196,144,203,216,170,150,185,220, 13, 60, 34,190,132,125, 27, +217,183, 78,106, 90, 33, 43, 84,169,181, 38, 27,155, 92,140,101, 58,135, 31, 10,113, 5,211,187,187, 63,247, 65, 8,254,142, 54, +246,160,204, 20, 92,211,245, 74,106,153,194,159, 13,248, 97,239,178,146,237,148, 80,174,237, 9, 80, 0,116, 37,165, 99,128,123, + 41,103, 76,159,164,154,146,167,179, 26,170, 77, 80, 89,136,143,171,153, 47,172, 33,181,161, 32, 20,148,131,226,185, 4,244,230, +248,123,173,122,213, 83,213,236,245, 47, 56, 70,109,230, 35,184,176,136,205, 23,126,226, 83,194, 60, 32,250, 11,155,121,147,136, +223, 62,242, 31, 75,172, 40, 3,212,137,223,194, 71,149,117,252, 67,125,103,113,100,150,217, 50,149, 4,192, 28,128,255, 0, 85, +127,206,153,167, 81,156, 43,157,168, 52,181, 41, 39,238, 7, 21,207,229,252,112,233,209,165,146, 33,183, 34, 22,127,130, 23,107, +186, 2, 87,100,143,194,199, 28,119, 34, 93, 86, 36,133,137,111,168,173,106, 10,113, 65, 96, 2,175, 82,125, 49,131, 25,214,161, + 18, 34,189,177,229, 39,121, 42, 74,201,221,225, 23,177, 0,124,207, 56, 1,197, 49,200, 5, 15,143,255, 0, 17,175,214,188,217, +219, 70, 9,253, 63, 26,237, 26,106,114, 66,155, 6,153,169, 52, 71,219, 39,133,151,148,146, 7,192,167, 12, 51,196,156,163, 59, + 43, 78,165, 83,117, 30,148,196,183,217, 45,180,234,150,163,182,252, 21, 90,220,249,227,143, 63, 77,138, 95, 69, 73,170,211,128, + 33,143, 15,114,149, 37, 9,191,235, 91,203,156,107,147,159,234,172, 56, 23, 30,186,123,231,141,150,128,178,173,201, 61, 79, 55, + 62,252, 72, 98,252, 66, 83,151,181, 79,158, 77,127,111,133, 0,216,219,159,241,248,212,154,185,217,119, 40, 46,160,243,213,125, +127,165, 60,226, 30,187,102, 44, 37,149, 40, 31,189,114,162, 13,237,211, 2,191,205,199, 72, 96, 73,110, 75, 58,204,236,129,221, + 20,169,147, 13, 32,168,147,197,136, 56,102,228,236,205, 16,137, 17,167, 32,199, 82,206,229,188,160, 86,127, 43,143,225,129,242, +106,129,146,235, 87, 84,199, 89,241,165, 70, 50, 82, 19,126,137, 42, 28,155, 97,211,138,227,138,137,186, 62,228,160,127,252,253, +106, 63,211,237,128,140,159, 63,222,162, 26,149,217,179, 79,106,125,219, 80, 53, 22, 91,143, 55,194,208, 98,160, 95,169,224,223, +156, 85,117, 77, 31,129,150, 20,235, 80,179, 66,138, 2,146,224, 82,146, 5,148,147,112,108, 49,106,230,170,132,167, 28, 47, 41, +126, 11,220,180,130, 78,229,116,234, 63,134, 43,140,221, 56, 62,162,240,128, 84, 17,225,220,142, 13,253, 15,174, 58,204, 51, 21, +196,202, 66, 92,120,168,120,132,254,194,137,217,101,216, 69, 26, 94,161,100, 71,162, 21, 85,114,195,162, 90, 99,132, 3, 21,240, + 16, 84, 7, 42,177,231,156, 61,164,234,230,154, 8, 72,143, 54,133, 41,181, 33, 32, 88, 88,133,144,111,235,138,166,123, 42, 83, +194, 66,226,187,180,253,237,171,176,198,132, 66,169,202,157,181,152, 32, 3,208,220,147,111,126, 10,112,124, 57,201, 42, 82,181, +255, 0,204,199,161, 52,161,200,138,158,214,243,182, 94,159, 86,126, 92, 40,229,134, 92, 89, 45, 52, 44,118,143, 76, 18,166,103, +124,140,236, 6,227, 84,154, 90,146,147,226, 5,176, 65, 62,189,113, 92,251, 5, 85,130,231,114,194,212, 27, 28,217,174, 1,233, + 98,113,182,157, 68,157, 33, 27,149, 20,133, 40,248, 80,148,158, 79,199, 26,193,198,155,101, 45,131, 1, 48, 7,186,134,166, 86, +173,234,200,171,234,150, 85,246, 6, 40,217,122,150,204, 86, 90,229, 78,136,254, 37, 43,251, 6, 36,185, 39, 83,116, 90, 54, 87, +121,188,230,218,151, 61,215,236,217,141, 22,224, 35,205, 74,191,159, 94,152,169,163,105,222,103, 84,132, 54,136, 14, 45,197,167, +120,109,171,174,223, 44, 26,164,233, 61, 94,168,165,165,216,238,130, 23,182,200,104,222,254,167,208,123,241,158,167,112,182, 97, + 82, 36, 25,158,115,231, 70, 97, 46, 50,176,160, 1,243,168,190,172, 66,167, 85,115,197, 74,163,146, 86,161, 77,113,123, 98,173, +105,238,212,180,216, 94,227,203, 7,168,178, 50,245, 91, 32,198,164,230,133,134,234, 48, 64,105, 54, 27,131,205, 3,199, 62,182, +196,190, 23,103, 89, 78, 93,153, 13,173, 79, 27, 20,134,156, 36, 91,223,232,113, 36,160,118,118,202,137,113, 76, 86, 38, 72,142, +226, 90, 42, 14,188,164, 37,180,159, 43,146,121,249, 97,174,248,178,204,182,144, 87,170, 72, 32,141,244,250, 30,116, 37,218,246, +170,146,145,214,130,105,189,115, 70,169,212,199,154,205, 15,184,151,148,118, 35, 99, 36,165,180,250,241,231,137, 60,141, 66,209, + 90,110, 87,122,147,151,234, 61,228,151, 17,224,113, 81,213,115,239,189,176,229,122, 35,147, 90,101, 43,101, 13,119, 41,178,150, +249,241,111, 7,139, 0, 63,142, 60,151,163,121, 85,232, 75,151, 3, 41,165,196, 37,223, 11,200,113,105,178,109,233,111, 51,142, + 70,234,247, 10,188,191, 23, 78, 45,194,100, 24,145,148, 70,194, 15,202,106,202, 26,117, 17, 28,171,159,117,130,149, 27, 54, 84, +216,114,134,180,119, 77,182, 67,139, 81, 35,113,242,196,219, 67,235,185,111, 38,105, 50,242,238, 98, 68,149,212, 91,154,234,217, + 76,102,247, 39, 98,173,107,159,141,241,103,157, 42,203,148,197,150, 85, 68,133,126,232, 20,164,172, 41, 70,252,220,223,207, 5, +168,249,103, 39,210, 32,163,108,112,130,165, 16,234, 16,164,155,243,211,206,231,221,141, 59,254, 40,180,188,180, 75, 10, 65, 41, + 73, 4,121,143, 90, 75, 97,199, 86, 73,231, 81, 13, 62,213,202, 30, 88,117,249,210,169, 83,156, 14, 54, 18,142,237,159,125,252, +206, 15, 63,172, 85,154,236,214, 42, 20, 61, 61,152,160,217,225,110, 56,148,238, 73,245,244,196,218,147, 11, 42,182,135,153,122, +136,210,212, 72, 13,135, 80, 80,180,219,204,113,110,113,179, 48,193,133, 77,132,227,169,134,142,155,252, 68, 5, 95,160,233,215, +225,142, 98,247, 22,176,188,196, 77,202,217,254,225,211, 85, 24,136,141,132, 84,211,106,160,222, 94, 85, 11,169, 57,168, 57,133, +109,212, 70,157, 54, 26, 15, 18,158,250, 65,240, 31, 49,112, 45,206, 7,230, 44,137,153,115, 11,138, 92,186, 92, 26, 78,247, 62, +208,176,181, 45, 86, 34,214, 39,143,195, 18,119, 43,109, 57, 9,184,198,177, 47,107,201, 37,246,210,209, 38,215,189,174, 62,239, +199,174, 55,212, 51, 21, 58, 20,180,185, 22,162,216, 42, 64, 35,191, 10, 89, 73, 3,204,121,226, 13, 98,142,219, 40, 22, 82, 18, + 68,196,102,250,147, 62,149, 33,105, 53, 93, 80,187, 27,100,201, 11, 14, 84, 51,107,205,205, 66,194,217,105, 45,125,241,123,147, +207, 92, 75, 81,165,249,118,142, 24,165,162,108,201,138, 0, 7, 84, 1,105, 42, 81, 62,128,121,124,112, 96,103,200,149, 56,100, + 79,171, 45,187,170,238, 72,138,141,165,103,208, 19,211, 26,229,234,109, 30, 28, 68, 37,140,208,219, 77, 7, 5,218, 89, 43, 85, +192,177, 60, 15,203, 14,254, 63,142, 93, 42, 29,113, 71,195,253, 10, 34,108,208, 6,213,186, 6, 66,210,122, 43,237, 52,221, 17, + 51, 95, 65, 42, 84,103, 92, 83,128, 31, 62,110, 71, 56, 40,183,233,140, 42, 73,165,233,213, 26,146,226, 81,102, 28, 49,210, 13, +135,235, 1,242,196,122, 14,114,203,108, 71,109, 84,176,236,130,226,212,161,117, 22,210, 9, 60,239,227,166, 25,230,141, 74,203, + 13, 49,236,242, 22, 80, 16,131,185, 73,178,238,171,249, 27,240, 6, 51,215,113,125,112,224, 11, 82,213,230, 79,202,126, 98,136, +155, 84, 39, 97, 21, 55,155,154,106,245, 24,145, 93,222,160,148,181,100,247, 50, 18,205,255, 0,162, 7, 24, 88,166,221,212,218, + 88,121, 72,138,167, 94, 64, 55, 74,156, 65, 87, 7,222, 45,133,137, 11, 55,146, 32, 15,135,243, 83,236, 69,119,245,119, 44,105, +238,116,211,250,189, 18, 69, 20, 8,114,169,146, 98,186,218,147,112,148, 37,160,133,120,135, 78, 84,180,143, 50, 82, 79, 36,223, + 31, 25,123, 56,175, 83,251, 58,106,213, 86,179, 50, 92,186,125, 18,151, 84,126,151,152, 22,235, 87,143, 57,108,172,167,186, 9, + 36,110,116,219,194, 83,226, 23,226,224,144,126,165, 59,171,121, 73, 25, 17,218,158,107,170, 53, 79,136,227, 47, 58,251,174,185, +181, 13,139,173,106,177, 61, 0, 42, 28,250,164,123,177,242,247,180,125,127, 53,106,110,111,204,186,135,167,185,114,181, 39, 40, + 79,175, 72,118,157, 88,145, 5,230,225,199, 14, 57,180, 45,130,160, 6,245, 4,128, 92, 60,220,217, 54,234,120,190, 6,179,188, +113,119, 22,145, 41,114, 1, 42,216, 25, 49, 19,204,131,231,166,198, 43,233,110, 9,252,191,106,110, 30,198, 80, 87,111,148, 66, + 71,249,172,108,137,208,236,100,229, 32,255, 0,228,153,204, 46,221,122,250, 75,242,158, 73,134,213, 23, 74,244,197,201,213, 57, + 39,188,156,154,228,180,161, 16,124,131,106, 12,169, 69,110, 16, 77,198,228,237, 6,199,158, 7, 85,105,229, 88,230,188,135,151, +234, 78,101, 41, 84,169,217,134,148,204,218,131, 14, 19,246, 43,121,176, 75,100,158,124, 62, 33,206, 57,155,232,193,236, 71,164, +211,242,197, 51,180,182,179, 82,197,118,123,149, 89, 70,133, 65,152, 83,236,141,162, 58,130,123,247, 27,183,218, 18,224, 80, 1, + 87, 72,176, 36, 19,206, 59,117,140,201, 79,170, 60,181, 64,216,237, 81, 46, 32, 39, 47,165,149, 41,201, 40, 74, 82,165, 41, 14, + 37, 37, 41, 5, 92,248,186, 5,139,129,126, 33,196,239, 97, 86,119, 62,195, 98,133, 41, 77, 18, 22,178, 78,170,218, 0,232,152, +220,192,241,231, 94,123,141,123, 5,197,225, 22, 76,246,104,157, 4,149, 24,228, 9, 58,147,227,167,128,170, 62,179,165, 90,166, +254,108,113,200, 73,105,248,109,238, 13, 20, 60, 18,150,202,150,144, 10,189,246, 6,216, 99, 79,141, 83,205, 57,215,244,107, 76, +181, 73,154,212,202, 67,110,138,252, 89, 48,214,136,241, 31, 46, 40, 52,195,111,165,127,106, 74, 27,113, 69, 69, 32, 2, 0, 27, +185, 34, 91, 31, 91, 50,236,252,251,254, 79,162,230, 68,208, 18,166,130,217,139, 85,140,160,243,111,164, 19,221,173,180,248,202, + 82, 80,175,180, 30, 2, 1, 1, 87, 28,138,213, 65, 84,210,252,175, 39, 95,105, 90, 56,195, 84,196,190,145, 80,147, 73,134,152, +222,211, 9,199,118,151, 94,111,245,147,117, 29,151,185, 4,222,224,110, 4,182,151, 79,232,219,201, 25,149, 1, 2, 0,223,207, + 66,121, 0, 13,101,178,211, 40,148,169, 36,168,237,225,212,255, 0,189, 43,163,116, 98,179, 64,236,159, 47, 45, 85, 53,115, 47, +101, 56,181,183, 84,103, 85,115, 45,114,107,147,169,200,139,185, 64, 48,207,116,211,129,165,120, 2, 76,141,171, 74, 84,165, 36, + 46,228,237,137,246,148,212,252,173,172,153,186,185,156,169,217,156,194,135, 86, 90,150,219, 82, 29, 46,123, 10,110, 9, 12,169, + 32, 36,182, 64,240, 1,202, 65, 23, 28, 92,194, 51, 22, 97,205,154,209,162,185, 99, 49,211,230,194,204, 52, 10,132,182,233, 84, + 55, 38,200, 10, 67, 9,150,250, 24, 75, 42, 74,206,208,128,242,211,185, 11, 54, 7,125,194, 78, 56,155, 86,117, 27, 86,114,166, +102, 84,188,241, 81,135, 7, 57,229, 10,139, 49,166,181, 10, 66, 66, 39, 65,144,216,126, 58,130, 16, 74, 86,208, 65, 9, 34,246, +218,234, 65,231, 27,214,121,175,219, 41,182, 1, 57, 20, 36,198,169, 88,141, 58, 29,116, 50, 14,227, 72,219, 70,229,229,173,132, +165,166,242, 36, 70,177,172,245, 61,126,244,171,239, 62, 82,242, 69, 11, 52, 66,206, 12, 67, 97, 50,144,135,132, 87,123,150,218, + 14,220, 38,229, 78, 40,130,174,131,169, 29, 72, 3, 21, 70,102,237, 35, 39, 42,166,124,124,229,167,239,152, 45, 84, 10, 23, 80, +143, 53, 43, 17, 92, 85,150,216,176,178,146,171,110,181,189, 13,137,233,129,186,185,218,210, 64,110, 46,169,229, 45, 52,164, 57, + 72, 76,240,181, 64,146,210,175, 17, 73,105,144,160,133,130, 2, 6,247, 44, 0, 22, 6,196, 12, 86,122,239,169,116,141, 67,210, +231,179,229,102, 3, 14,215, 43, 89,129,164, 57, 45, 1, 73,188,118,163, 11, 0, 18,160,139,238, 34,228,160,168,159,214, 28,131, +126,206,214,233,247, 2,175, 4,230,208,146, 76,204,237, 3,167, 94,181,142, 81,218,174, 92, 81, 36,243, 63,126,149,209,186, 95, +170, 13,106,148, 6,217,202, 89,222, 4,224,227, 10, 49,212,236,144,133, 45,192, 9, 83,106, 22, 59, 22,145,180,145,225, 36, 92, +164,112,108, 71, 44,230,108,221, 34, 85, 79, 39,103,186,251,175,194,168, 48,182, 85, 6,165,101, 41, 12,175,122, 46, 20, 0, 82, +124, 60,148, 44, 18, 60,213,124,114,102,108,206, 90, 88,141, 62,162,234, 62, 72,167, 74,203, 57,234, 46,200,115, 69, 17, 97,152, + 51, 98,161,128,148,200, 91,118, 39,191, 42,251,196, 16, 15, 36,164,147,124, 29,236,203,219, 27, 44,208,157,117, 58,141, 73,169, +213,222, 76,144,219,206, 58,251,143, 62,242,142,225,246, 97, 71,106, 64, 22,224,145,239, 61, 49,125, 54,151, 22,246,142,150,145, +153, 42, 31,166, 6, 96,173,164, 29,189,226, 40, 87, 22, 72, 10, 57, 14, 97,167, 42,233, 93, 47,214, 7,115,111,101,217,121, 27, + 55,204,239,106, 25,121, 18, 50,235,206,188,162, 87,220,160, 45,166,193,191,236,164,167,229,199,150, 56,107, 59,210,151,151,115, + 90,226,199,222,136,211, 34,197,154,218, 20,120, 37,198,130,137,249, 40,168, 98,240,127, 84, 90,139,155, 51,197, 50,155, 77,114, + 60, 44,203, 38, 37, 86, 43, 27,154, 87,114, 84, 54,175,196,133, 16,110, 87,208, 19,247,125,216,173, 53,165,228, 85,211,148,102, + 71,142, 62,199, 44, 51, 21,247, 19,250,234,110, 67,246, 87,175,221, 41, 23,247, 98, 88, 91, 43,182,125, 95,241, 94,177, 58, 9, + 19,167, 77,100, 84,109,127,180,242,143, 90,232,143,163,115, 84, 14, 83,204,181, 12,189, 45, 68,179, 45,144,243,105, 31,246,173, +139,139,124, 69,255, 0, 12,125, 33,203, 95, 72,206,130,100,234, 68, 70,115,142,122, 79,214,142,222, 63,212,116,182,215, 54,115, +142, 4,164,139,180,208, 37, 36,146, 64,221,110, 65,199,199, 61, 46,153, 93,167, 68,158,188,179, 37,230,106, 5,144,152,171,142, +171, 46,234, 10, 65, 0,142,132,238,182, 59, 11,179, 77, 17,174,202,250, 53, 84,215,106, 44, 53, 63, 95,110,154,184,237,214, 22, +192,112, 25,242, 16, 3,108,161, 68,130,128,139,149,169, 66,247,219,207,222, 22,139,202,113,155,253, 20, 72, 87,248,244,211, 85, + 30,128,124,107,161,195,110, 27, 75,138, 60,213,244,231,238,161, 31, 72, 55,107, 68,118,168,215,215,115, 45, 18, 36,216,148, 90, + 60, 22,233,244,152,149, 6, 59,167,211,182,234,117,110, 32, 19,181,101,213, 40, 91,174,212,164, 30, 70, 59,199,232,226,201, 52, +157, 52,236,161,151,233,155,151, 30,177, 94,239, 43, 19, 89,149, 29,108,173,192,240, 79,118, 81,188, 14,241, 33,148,181,226, 77, +197,201,231, 31, 50,116, 55, 71,165,234,158,169,208,178, 92,218,134,247,171,149,134, 35, 44,163,196,161,222, 56, 55,172,159,112, + 37, 71,224,113,246,161,110, 80,232, 52,184,244, 26,115, 72,141, 14, 20,116, 71,138,210,120, 13,161, 35,106, 82, 61,192, 11,124, +176,123, 69, 7,157, 82,135, 42,219, 67,169, 88,210,131, 86,167, 15, 18, 92, 69,184,255, 0,149,241, 1,204,146,187,148, 18,133, +121, 29,190,238,184,146,230,106,244, 21,247,171,141, 33, 4,216,129,207,248,242,197,101, 88,204,173,165,245, 51, 37,209,112,118, +245,233,115,124,111,176,153,170,183, 14,229, 21, 31,168,234, 52,218, 60,151, 91,113, 87, 0, 16,146,122,115,231,129, 95,229,129, +135,228, 2,228,132,128,142,109,126,182,242,192,252,255, 0, 54, 9,136,227,140, 17,215,194,126, 56,231, 60,239,155,230,209, 42, +238,169,185,101, 34,252, 0,120,183, 63,242,252, 49,162,210, 18,189, 43, 56, 44,184,107,172,105,250,139, 14,104, 71,250, 71,118, + 69,172,119,112,121,195,245,234, 11,140, 47,106, 31,178, 7, 4,223,174, 56,251, 46,235, 28,134, 2, 1,157,187,144, 84, 20,191, +133,255, 0,134, 39, 48,245,254, 11,201, 30,218,240,177, 87,175, 62,252, 51,150,198,162,160,160,107,163,152,212, 17, 37, 9, 10, +144, 82, 22,121, 55,247,227, 25,217,254,152,219,189,227,147,129, 32,144,177,127,125,177,206, 85, 13,117,167,196, 8,109,137, 64, +163,101,130,138,189,127,199,231,136,156,189,108,153, 42, 98,187,169, 69, 94, 50, 65, 10,234, 47,123, 98,169,180, 81,168,101, 81, +174,168, 86,169, 66, 91,169, 40,148, 54,158, 0,191, 67,198, 31, 83,179,175,182, 63,113,126,128, 11,121, 95,252,126,120,230,140, +149, 95,170,215, 38,119,133,242, 83,191,129,127,134, 47,108,150,211, 41,140, 29,117,203,146, 8,254,204, 1,118,225, 52, 37, 38, + 42,108,250,220,116,135, 91, 55, 10, 60,243,228,112,214,101, 49,167,108, 54,220,171,167, 30,126,152, 35, 13,184,239,196, 70,231, + 5,246,216,139,225,218, 99, 51, 41,244, 37, 36, 29,132, 17,180,245,247, 98,170,187,162,132,107,152,251, 74,182,197, 27, 87,149, + 13,247,163, 52,180,192,142,164,169, 99,196,144, 91,232, 60,253,127, 28, 69,229,251, 5, 89,150,226, 52, 99, 45, 27, 1, 43,239, +148,217, 87,175, 3,175,207, 19, 46,214,212, 40,185,147, 88,101,213, 99, 60, 99,170, 44,102, 89,222, 64, 35,114, 69,135,203,159, +207, 20,228,172,191, 95,168,151, 82,213,116, 0,203,164, 44, 54,201, 73, 23, 6,195,223,198, 57,139,155,187,117,220, 18, 28,136, +174, 73,235, 23,156,185, 90,128,144, 77,108,157, 71, 75, 19, 28, 46, 41,148,134,110, 90,112,173, 74, 27,135,186,221, 45,134,178, +220,151, 76,150,220,248,178, 20,130, 25, 33, 37,196,165, 55, 36,121, 12,110, 86, 66,122, 51,136,134,107,143,135, 29, 4,238, 82, +238,126, 62,152,209, 81,211, 90,165, 49,230,229, 49, 84, 68,199, 86,157,233, 75,174, 19,208,226,105,196,237,167, 42,156,248, 81, + 63,164, 92,148,204, 83, 41, 21,199,223,144,220,105,181, 57, 13,119,164,247,171, 71, 59,207, 22, 60,116,198,140,195, 38, 10,163, +161,231, 38, 63, 36, 33, 27, 31, 37, 22, 31, 48, 58,224,155,148,124,245, 53,132, 63, 2,145, 21,160, 70,210,176,110, 83,240, 24, + 21, 85,201,121,198, 34,193,140,219, 15,150, 81,119, 18, 77,185,244,243,247,224,237,223, 91,149, 14,248, 30,241, 84, 93,195,221, +108,234, 41,139, 53,244, 82, 22,193,122,140,160,215,118,164,221,108, 17,184, 30,156,115,127,158, 9,211,234,176, 88, 38,165, 22, + 42,123,231,145,100,187,221, 27,160,242, 5,207, 65,240,192,105, 43,207, 96,130,230, 91,125,183, 20,174,241,183, 18,202, 74, 83, +229,239,227, 14,155, 57,165, 80,131,147,195,219, 29, 38,200, 72, 10,185,191, 55,249,224,238, 62,220,110, 61,104, 2,216,142, 70, +138,175, 51,212,148,174,234, 77,108, 38,228,146,181, 14, 19,127,213, 30,252, 53,166,214, 87, 22, 82,227,189, 86,144,243,110, 46, +196, 52,209, 55,252, 48,217,170, 85, 66, 81, 74, 81, 21, 75,112, 47,123, 72, 91, 28, 31, 80, 49,148,234, 94,122,109,164, 59, 76, +130,176,155,155, 89, 54, 41, 62,182,183, 65,128,139,150, 63, 76,129, 62, 67,233, 79,236,254, 6,182,202,203, 20,138,145, 1,217, + 82, 2, 1, 83,169, 74,211, 98, 72,245, 7,166, 26, 59,148,178,125, 65, 1, 18,169,203, 74,138,174,144,148,238,242,235,240,195, + 25,181,140,225, 73, 9,129, 85,130, 8, 73, 80, 42,238,201, 85,253, 9, 39, 15,242,254, 77,159, 93,138,135,254,176, 49, 94,121, +103,106, 81,199, 0,155,156, 20,222, 45,148,230, 83,144, 57, 65,167, 22,193, 71, 65, 94,167, 33,229, 14,225, 18,132,118, 20,150, +222, 1, 76, 41,187, 94,254,103,155,140, 58, 99, 39,228, 40,115,187,248,180,200, 77, 43, 98,129, 74, 16,171,145,230,122,224, 28, +252,177,155,105, 79,168, 10,123,207,169,151,118,169, 74, 73, 80, 7,212, 91,200,223,207, 1,179,102,117,205,180,102,156,126,171, +150,221, 76,118,154, 27,159, 97,173,196, 11, 18, 73,227,243,196,197,203,207, 70, 87,102,124,126,156,234, 72,180,204,114,229,214, +165,217,178,151, 16,181, 30, 62,150, 57, 21,169,239,255, 0,239, 13,203,225, 15,178, 8,220, 46, 77,199, 54,231,222,112,102,141, + 51, 46,185, 5,167, 36,209,224,186,235, 77,120,238,141,170, 30,187,118,241,138,154,139,156,166, 38, 43,117,248,244, 57, 11, 19, + 64, 12,169, 72,224, 55,201,218, 57,243, 28,156, 61,253, 36,206,210, 2, 95,137,151, 22, 15, 62, 20, 36,220, 39,225,228, 48, 69, +135, 22,212, 41,126, 26,145,254,250,206,181,113, 97, 38,212, 50, 80, 52, 59,243,171,105, 25,150,146,217,246,248,153,109, 72,112, + 1,181,224,202, 84,164,143, 33,126,182,195, 4, 85,170, 19, 36,169,193, 33, 40,117,199, 9, 81,147, 30,201, 9,244,235,136, 91, +212,204,225, 34, 11, 77, 83,100, 30,253, 92, 33, 41, 54,247,216,226, 56,170,126,174, 25,201, 98,119,122,222,229,148,133,128, 72, +242,184, 39, 21, 26, 67,106,152,112, 15, 51,251,213, 99,106,157,226,174, 47,211,120,194, 50, 88, 50,150, 91, 38,206, 4, 20,144, +181,116,224,117,199,136,175,211, 36, 41,110, 41,222,229,148,139, 37, 43, 1, 87,249, 28, 83,149,166,243,197, 30,154,154,179, 53, + 37,133, 4, 42,233, 8,233,107, 11,223,203, 1, 89,172,231,185,196, 33,126,218, 66,213,192, 66, 13,137,243,252,112, 68, 89,161, +105,204,149,136,166,246,116,116,174,134,127, 57, 59, 18, 35,113, 26,172, 48,180, 37, 36, 57,222,128,146,160,121, 1, 54, 56,100, +141, 68,102, 4,117, 75,151, 87,104,139,217, 40, 46,158, 57,243,248, 98,145,167,101,172,247, 92,101,201,173,179, 40,183, 28,144, +189,196,220,158,150, 31, 60, 55,159,149,117, 22, 26, 28,126,125, 34,110,196,253,210,164,145,127, 46, 61,112,201,178,182, 39, 41, +112, 79,186,166, 45,199,252,106,229,168,234,173, 38, 92,125,166,166,203,238, 41,119,222,183, 15,132,219,229,128,237,234, 61, 22, +159, 32, 61,237,236, 43,119, 46,109, 93,173,248, 98,167,167,229, 12,219, 61,213,182,105,146,218, 1, 36,221, 77,147,205,189,223, +135,207, 13,219,161,230, 20, 16,210,105,146, 84,164,159, 29,155, 39,140, 88, 77,165,170, 4, 5,211,150, 57,229,171,118, 95,104, +191, 97,105, 40,165,176,203,196,155,149, 56,226,174, 79,241,192,250,191,104,201,178,211,182,162,148, 4, 18,119,132, 11, 3,249, +226, 11, 75,210,172,231, 61,213, 61, 18,133, 37,103,161,216, 44,110,112,245,122, 1,170,114,228, 37,110, 80, 8,104,170,222, 53, + 2,175,158, 33,147, 7, 66,181, 80,159, 19, 83,236, 87,210,137, 43, 90,234,204,149, 57, 69,146,166,208,177, 98, 1, 2,224,245, +195, 25,186,159, 80,152,160,169, 51, 74,220, 81, 36,238, 95, 56,115, 78,236,227,157,234,145,220, 75,105, 67,105,108,171,236,220, + 93,137,176, 36, 91,240,192,103,244,123, 54,211, 93, 76,101,210,221, 90,251,144,240, 91,105,186, 84,131,231,124, 21, 15,225,101, + 80,149, 9,167, 75, 11, 60,169,212, 45, 70,113, 49, 28, 67,200, 72,228,236, 74, 15,158, 27,187,156,106, 33,189,137,184,105,197, +221, 69,213,143,157,134, 13,163, 66, 51, 51,176,155,115,196,151, 71,137, 81,201,241, 91, 2, 42,122, 93,155,233,242,125,149,202, +124,148,167,114, 66, 84,166,174,130, 77,249, 7, 9, 23,150, 10, 81,202,161, 82,236, 13, 96,206,109,144,123,198, 81, 48,148,168, +114, 67,134,228,121, 14,184,212,245,126, 84,196, 45,157,128,165, 92, 36,133, 27,147,130,148,237, 19,206,115,103,161,109, 81, 72, +102,192,151,199, 2,223,219,137, 37, 83, 67, 94,141, 25,164, 82,170, 12,166,118,197, 23,154, 88, 34,227,200,143, 33,230, 48, 53, +226, 54, 40, 80, 25,135,223, 90,126,192,197, 87,102,179, 86, 66,136, 12,167,142, 57, 32,244,248,225, 98, 88,141, 17,207,106, 82, +146,238, 95, 46, 40, 30, 84,209,227, 11, 4, 24,141,153,255, 0, 33,234, 63,122,127,102, 21, 51,157,168, 20,204,215,146,160,204, +205,172, 71,147, 73,121, 30,205, 30, 28,196, 5,165,240,130, 20,235,132, 17,107,119,138, 28,254,226,135,144,198,231,245, 38,153, +157, 50, 42,242,221,102, 51, 79, 67,169,182,220, 54,163, 41, 59, 80, 18, 14,237,192, 38,219,118,132,131,197,173,198, 57,166,181, +170, 70,172,204, 42, 91,106,112,195,166, 65, 68, 90,123, 23, 63,119,170,151,241, 82,202,143,204,224,205, 59, 61,191, 18, 57, 13, +172, 30,233,189,141, 92,240,216, 63,120,252, 73,233,142,121,120, 86, 85, 2,145, 4, 25, 17,200,206,227,225,233, 93,106, 46, 93, + 74, 34,116,171,223, 72,117,113,156,156,196,237, 44,170,188,164,177, 4, 54,245, 0,192,144,228, 84,182,211,142, 45,101, 96, 33, + 98,194,232,222, 73, 36,220,243,123,242, 99, 62,246,138,207,243, 32, 70,153, 30,123,181, 24,240, 95,239,225,206, 97, 65,153,209, + 29,181,130,219,117, 2,203,232, 69,148,159,187,112,162,164,149, 3,206,116,138,195, 21, 58,162,220, 92,165, 42,117, 73, 77, 71, +186, 77,187,182, 16, 78,212, 3,251, 74, 36, 95,208, 1,239,195, 77, 81,172, 87,154,139, 95,139, 73,204,111, 68,130,100,136,104, + 67, 64,165, 37, 41, 3,144,164,220,166,229, 36,155,122,219,165,241, 59,172, 34,210,227, 16,237, 72, 18,168, 38, 70,147, 0, 40, +142,146,100,248,213,155,105,184,112, 54,149, 4,204,120,125,251,234,255, 0,205,189,173, 50,174,100,163, 50,189, 71,168, 49, 15, + 48, 51, 29,108,166,189, 14, 0, 73, 91, 15, 4,165, 82, 25,186, 13,156, 74,210,144,227, 42, 32, 21, 54,160,146, 55,224, 44, 47, +164, 47, 95,178, 70,149,212,251, 52,234, 21,106,149,156,114,229,114,130,237, 50, 53, 97,244, 45, 83, 26,140,251, 65,198, 66, 92, + 75,129, 10,218,229,148, 74,146,181,120, 10,119,216, 38,220,133,154,115, 86,106,165, 83,233,178, 31,156,163, 34,202, 42, 77,194, +129, 65,228,146, 58, 29,201, 6,252,126,168, 56,119, 26,190,169, 25,189,200, 70, 3, 13,173,167, 23, 20,169,146, 18, 30, 8,186, +208,234,145,228,160, 18, 83,184,125,235,131,212, 18,116,172, 48, 91,107, 65,220, 72,141,122,105,255, 0,175, 48, 53,229,215,194, +174, 94, 22,172,243, 41,162,160,189,149, 49, 6, 0, 7, 81,184,233,166,219,215, 89,118, 55,237, 49,152,180,219, 64,115,142,149, + 77,126, 58,232, 18,243,118, 92,152,226, 31, 96, 45,212, 43,235, 72,234, 90, 91, 89, 54,104, 40, 48,146, 77,141,237,239, 56,169, + 59, 87, 55,167,244,189,105, 83,122,108,213, 71,216,228,209,123,169, 95, 89, 77, 75,238, 45,246,164,190,200, 35,106, 18, 16, 2, + 25,105, 59, 57, 32,164,155,243, 96, 39, 70, 84,186,164,232,217, 74,124, 20, 61, 14,175,155,169,226, 66,150,226,146, 16,152,161, +217, 42,189,148, 46, 10, 18,174,160,216,129,211, 17,220,209,154,145,153,117, 29,220,202,150, 27, 8, 76, 70,158, 67, 76,131,183, +123,128,186, 82, 46, 77,252,110,171,240,197,139,116,118,119,110,161, 35,115,152,251,192, 30,164,130,103,122,162,237,211,159,211, +192, 38, 71,243, 82,122,156, 42,125, 63,179,246,111,167,205, 66,158,118, 44,104,137, 69,136,179, 79,189, 37,178, 72,226,230,193, +157,191, 50,113, 79,102, 12,208,196,157, 62,164,101, 70, 99,184, 36, 66,155, 41,215,156, 39,133,165,192,208, 64, 3,221,177, 95, +142, 36, 25,219, 50,213, 77, 28,101,225, 45, 73,102,115,233,126, 99, 64,240,226,155, 10, 9,191,195,188, 86, 34,116,122, 84,186, +246,104,141, 73,166,199, 47, 60,183, 0,105,161,230,171,216, 15,196,140,104, 50,214, 73, 82,204,235,152,120,105, 31,189,102,182, +169, 64, 38,172, 13, 55,115, 35,102, 77,101,128,230,110,203,197,172,177, 75,136,244,202,140, 54,110,166,192,106, 58,212,218, 22, +163,209, 43,120, 32, 19,251,198,195,203, 16,221, 67,203,121,183, 40, 85, 40,121,242,117, 78, 59, 44, 87, 99,187, 54, 34,144,201, +105, 64, 55, 37,216,229, 43, 64, 31,235, 9,100,169, 92,117, 87, 60,226, 93,170,117,202,102,156,196,137,164,185, 53,230,100, 73, +109,212, 75,204,115, 66, 2,132,167,211,202, 90, 55,224,182,147,250,167,139,117, 28,156,101,174,250,192,172,245, 38,126,162, 83, + 41, 16,229,186,154,146, 37,170,162,252, 68,165,109, 72,148, 20,235,131, 98, 64, 77,208,226,214,144, 45, 97,100,245, 60,224, 45, + 41,243,112,133,161, 61,197, 8,212,242, 27,111,177, 81, 62,100, 1,167, 73,180, 66,155,205,232, 58,209, 58, 60,184, 69,233,185, +166,176,179, 4, 85,167, 7,218,132, 25,251, 68,181, 98,161,181, 23,225, 59,151,198,235,112,158, 47,140,179,246, 98,106,145, 82, +164, 82,232,226, 19,130, 53, 21,133, 41,247,227,133,188,210, 92, 5,208,159, 29,211,209, 96,238, 74, 65,230,222, 92,215,185, 50, +187, 34,175, 74, 75,245, 74,162,222,125, 15,175,114, 93,185, 82,175,206,237,223, 18,112,171,185,165, 85,106,187,213,105,253, 92, + 67,108, 33, 41,242, 66, 16, 16,145,242, 74, 64,193,147,108, 11,178,174, 95,232,124, 40, 1, 2, 76,239, 93, 41,217, 57, 83, 21, +168,153, 79, 61, 74,173, 73, 68, 39,115, 84,104,165,232, 12,165,183,210,164, 58,194,220, 45, 56,160, 17,185, 40, 90, 79, 39,195, +185, 36,216, 28,116, 15,210, 49,153,242, 38, 83,172,229, 61, 47,201, 53,217,147,158,106,147,237, 53,215, 17, 9,168, 12,149,149, + 20,180, 18,195, 7,186,184, 9,112,149,108, 10, 37,124,147,142,114,210, 93,111,141,160,185, 79, 76, 43, 25,114,140,220,250,133, + 22, 77, 66,180,168,114, 29, 9,109,201, 82,150,150,152,222,161,200, 9, 75, 13, 40,250, 1,193,244, 9,168, 58,197,156,117,155, + 81,167,234,110,126,125,151, 42, 19, 84,142,252,196,105, 72,101, 27, 80, 16, 18,128, 73, 33, 32, 36, 1,114, 79,169,185,198, 32, + 55,111, 93,175,184, 3,112, 68,206,178, 20, 68, 1,208,128, 21, 62, 67, 94, 90, 44,190, 26, 96,182, 35, 83,239,229,206,186, 19, +177, 46,168,228,253, 48,214,120,217,226,186,221, 70,116,200,177, 29,110,133, 72,165, 83,253,162,100,169,110, 39,101,154, 70,224, +155,132, 41,126, 37, 16, 5,193,235, 96,123,203,252,160,246,140,205, 20,148,205,111,179,189, 42,145, 29,198,247,181, 35, 54,103, +148,184,250,193,191, 37,184,209,221, 74, 15,168,220, 49,194, 61,140,117,166,147,166,117,106, 77, 31, 75,116,193,220,205,158,106, + 46,247,245,249, 50,131,109, 70,165,211,139,136, 75,101, 82, 54,173, 76, 54,119, 93,100, 4,146, 84,139,220, 0, 15,123, 87, 43, + 26,143, 91,130,152, 85,218, 93, 22, 59,203, 78,224,196, 74,148,132,184, 82, 5,207,118,151,227,163,188, 30,240,109,240,196,109, + 45,108, 92,186, 46, 45, 61,225,160,145, 49,202, 82, 12,196,245, 0, 19,212,136,173,182, 18,128,192, 86,228,212, 10,169,168,185, +222,148,234,191, 72,114,173, 33,139,220,173, 84, 90,178,157, 60, 95,146,151, 89,107,215,174,227,240,192,138,206,127,130,234, 4, +169, 15,236, 4,146,224,191, 61, 58,126, 55, 56, 5,171, 49,231,192, 15,184, 29,113, 37,167, 54,144,179,115,126, 9, 23, 30, 92, +142,158,184,160,245, 27, 58,214, 96, 76,118, 59, 50,150, 74, 18, 84,171, 31, 49,127,237, 54,199,109,108,219, 89, 52, 85, 1,224, + 86,106,209,212,173, 99,161,198,105, 9,139, 48, 43,194,119,167,229, 97,138, 3, 81,243,144,170, 33,213, 48,187,144, 70,211,248, +226, 9, 92,206, 85,202,213, 85,200,113,150,226,156, 64,253,163, 97,254, 63,183, 12,219,151, 87,157, 5, 78, 45, 10, 45,166,201, +223,180,155,159, 32, 61, 73,254,204, 91, 29,147, 71,245, 80, 66, 2, 40, 69, 95, 80,234, 20,169,106,111,218, 20,139,240, 8, 56, +217, 31, 88, 42, 69, 1, 66, 97,227,160,191,150, 33,185,230, 21,102,101, 90, 64,102, 3,129,136,227,253,105, 65,241,158,122,122, +249,159,128,192,234,102, 95,171, 76,124, 33,166, 29, 72, 1, 67,144,121, 34,192,254,103,242,197,129,112,201, 76,200,169,131, 53, +102,177,169,149,122,137, 12, 34, 66,213,117, 2, 0, 56,159,233,117, 23, 53,102, 71,219, 84,132,169, 45,149,125,229, 14,189, 49, + 23,210,173, 58,102, 52,148,119,205,151, 93, 67,132, 41, 42, 79,161, 85,255, 0, 36,156,116, 46, 77,135, 10,155,220,165,164,165, +180,160, 2,164,145,240,192,189,162,221, 70, 2,133, 50,180, 21, 57,211,202, 2,104,177,155,109,109, 18,174, 47,199,159, 31,223, +139, 71, 46,206,106, 59, 65,183,159,178,147,233,239, 23,197, 96,198,104, 97, 91, 83,125,160, 39,168,255, 0, 31, 12, 57, 78,119, +143, 14,110,239,110, 54, 4, 2, 71,195, 21,159, 68,138,170,164,149, 85,211, 76,156,236,199,172,204,176, 9,225, 36,158, 5,191, +182,247,193,236,184,249,102, 98, 36, 75,124,132, 54, 55, 58, 80,174,128,117, 24,160, 99,234,211,161,194,203,115, 71, 43, 55, 80, +234,155,159,249,226,235,209,156,221, 73,143, 67,149,152,164,237,152,236,118,194,219, 14,216,160,159, 50,175,112, 0,159,125,177, +203, 99,151,167, 11,195,157,186,203, 57, 68,199, 83,200,122,212,153, 97, 78,172, 35,173, 82,250,153, 11, 62,230,204,217, 87,175, + 67,162,127,163,170, 91,142, 33,178,130, 74,133,192,184,245,185, 41,183,207, 0,233, 57, 15, 55, 71,158,168, 74,203,253,227,215, + 43,238, 66,109,111, 9, 5, 95, 30, 5,135,191, 29, 95,156,243, 46, 77,170,209, 34,214, 34, 48,132,166, 99,131,187, 98, 59, 34, +238,182, 86,148,245, 61, 46,173,191,239, 12, 67, 37,186,186,212,167, 40,241, 86,150, 94,148,227,173,201,117,171, 36, 32, 41, 87, + 41,221,229,202, 58,143, 47,142, 60, 45, 28, 69,121,124,246,141, 0, 73, 53,214,240,223, 5,191,142, 98,205,216,180,160, 10,206, +164,236, 0,212,168,248, 1, 39,199,106,231,164,100,234,165, 98,170, 32,204, 74, 17, 33, 47, 56,222,255, 0, 48,144, 69,128, 61, + 13,249,248, 97,166, 96,200,121,151, 41, 72, 93, 66,116, 87,223, 74, 90, 82, 27, 88, 28, 0, 72,233,240,176,197,238,205, 27, 43, +105,251, 75,170,102,105,172,181, 30, 50,202, 26, 90, 0, 9, 60,241,183, 21,198,165,235,230, 80,206,181, 7,178,252, 22,131, 76, + 8,238, 52, 86, 20, 60,107, 59,118, 43,229,226,252,113, 80,227,183,235,117, 72,111,148,242,210,190,176,195,255, 0, 8,255, 0, + 13,172, 26, 67, 23, 22,203,184,152, 10,112,184,180,153, 38, 37, 41, 66,146,144, 57,193, 10,141,137, 53, 7,165, 79,159,153,148, +191,209, 8,157,234,160, 50, 68,134, 0,241,161, 68,114, 84,158,189, 1, 56,127, 85,203, 89,133, 16,123,199, 32, 37, 46, 37, 10, + 75, 97,193,255, 0, 72, 84, 55, 19,238, 31,192,226, 37, 59, 50, 84, 52, 3, 82,105, 57,246,154,180,184,220,225,221, 84,163,111, +184,121,130, 44,171,143,218, 73, 59,129,245, 22,232, 78, 44,109, 67,212,232,121,131, 37, 58,253, 18,114, 27,113,218,130, 90, 75, +143, 34,203,105,183, 2,128, 62,235, 37, 93,125, 2, 61, 49,189,135,226, 15, 93, 20,148,160, 65,231,208,243,175,158,191, 23,191, + 11,237,120, 27, 25, 72,181,112,170,217,224, 84,217, 87,234, 17, 18,149, 68, 2, 83, 32,200, 0, 16, 70,147, 53, 16,145,146,115, +181,162,185, 41,151,216,106, 52,128,158,237, 6,228,168,168,142,236,143, 49,207, 32,250,131,230, 48, 27, 42,228,233, 75, 91,242, +163,208,164,160, 62,243,178, 31, 64,112,144, 23,117,133,109, 29, 0, 27, 79, 78,182,191, 36,226,207,174,235,141, 69,156,185, 53, + 17, 91,140,135,251,176,168,199,194, 72, 46,161, 41, 74,191,239, 11,110,249, 98, 33,156, 53,239, 44, 83,218, 98,143, 8,182,243, +106,166,149,186,226, 58,149, 23, 20,213,174, 57,242,249,238,198,203, 87,151,197,176,146,141, 9,228,121,111,245,211,198,107,195, +213,100,137,133, 47, 74, 5, 77,126, 84, 24,207, 84, 39, 36, 53,221, 60, 90, 45,164, 19,185, 92,168, 1,238,228, 3,130,232,204, +168,144, 91, 49,161,173,106, 66,129, 95, 22, 3,207,230,122,124,240, 10,179,172,212, 10,117,105,216, 12,229,182,196, 24,234, 12, + 52, 57, 33, 68, 4,128, 57,228,159, 9, 23,249,226,111,151,181, 31, 78,170,240, 36,154,132, 17,222, 71, 67, 8, 72, 77,142,221, +234, 72, 4,250,147,185, 3,220, 78, 29,215, 10, 0, 89, 65, 32,213, 85,218,119,136, 74,170, 37, 92, 91, 21,170, 74,160, 72, 11, + 74,223,127,107,174, 54,139,169, 9, 32, 30, 46, 60,172, 77,253,254,236,104,167,228, 42,188,168, 44,205,167,182,242, 7,117,100, + 41,105, 60,164, 27,124,189,126,126,252, 88, 84, 58,206,152,176,244,174,252, 38, 80, 18,208,219,206,133,219,135, 27, 32, 44, 17, +200, 3,197,111,150, 35,117, 29, 78,204,244, 12,186,197, 66,155, 73,117,234, 66,231,123, 60,106,171,173, 0,217, 54, 32,182,181, + 3,109,195,106,125,198,215,193,154,117,215, 88, 61,150,138, 7,101,115, 7,167,136,137, 32,198,154,209, 81, 97,156, 25, 59,107, +165, 71, 14, 77,212, 74,122,166,165,186,251, 45,168, 74,113,127,104,146,162,120,224, 88,249,139,254,120, 13, 95,200, 57,177,147, + 2, 28,172,216,103, 71, 83,233, 21,118,165, 68, 74,130,153, 36,149, 41, 36, 88,163,132,148,249,223,118, 38, 72,214,106, 43,148, +185,179, 43,113, 80, 36,247,203, 41, 82,133,247,186,110,165,255, 0,186,157,168, 30,251,227, 26,174,176,229, 72,178, 95, 93,102, +150,158,239,184,111,188,142,143,190,178, 65, 82, 83,238, 28, 31,199, 18, 77,205,226, 85,250, 62, 3,239,157, 12,218,229, 61,218, +200,196,203, 85,120, 43, 84,138, 91, 37,150, 18, 21,220,119, 67,105,184, 40,181,189, 57, 63,142, 8, 59, 7, 38,198, 49,218, 48, + 81,223,247,101, 74, 74, 60, 55, 74, 83,207, 79,133,190, 88,139, 86, 51,197, 13,230, 91,101,151, 11, 47, 8,174, 56,243, 0, 89, + 45,130,171, 36,155,123,202, 85,243,196, 94,165, 87,175,205,205,105,109, 51,192, 83, 41, 82, 73, 2,192,223,119,228, 10,186,122, + 39, 5, 98,209,247,213, 18, 69, 36,219,105,173, 76, 28,160,229,214, 42,107, 45, 54,241,117, 13, 37,229,164, 46,200,222, 84, 82, + 5,255, 0,162,113,185,113,159,168, 69,113, 85, 42, 42, 89,238,101, 45, 17,214,100,133, 7,146, 15,133, 96,117, 77,211,110, 15, +166, 43,218, 45,107, 52, 41,247, 95,144,222,246,213, 61, 8, 91,169, 38,229,180,240,144, 9,253,165, 46,223, 60, 75,227,102,232, + 16, 80,135,107,140,144, 94,121, 68, 54,149,130, 90, 27, 60, 55,183, 79, 13,143,198,248,182,253,147,237,142,186, 83, 46,222, 14, +148, 93,132, 83, 32, 70,113,151,104,209,200, 12, 21, 92, 0, 65, 0, 94,231,221,207,231,140,183, 81, 36, 45,114,187,150, 4,126, +232, 20,134,155, 2,235,221,229,242, 3,240,196, 46,161,158,211, 26,168,188,185, 77, 14, 75, 46, 50,133, 60,251,220, 2,149, 40, + 57,180,123,133,147,242,190, 27, 85,245, 29, 84,135,150,234,160,182,134, 88,112, 20,178,216,232,130,162, 19,248,139,159,233, 98, +177,182,114, 96,157, 77, 68, 91,235,169,169,236, 37,101,135, 64,109,135,119, 2, 20, 20,218, 83,193, 89, 89, 10,191,194,223,150, + 31,201, 92, 10,228, 38,152,100, 23, 9, 9, 67,206,146, 80, 91, 4, 17,100,145,231,124, 84, 49,117, 14,170,196, 88,237, 69,130, + 18,227,234,154,164,133,114,123,209,114, 7,226,164,225,244,141, 71,157, 78,150,195, 78, 72, 82, 17,109,165, 8, 7,198,160, 44, +165,126, 0,255, 0,189,137,174,201,212, 57,221, 62, 83, 69,236,144, 14,149,102,202,128,219, 47,186,204, 55,209,189,214,144, 19, +127,190,131,200, 60,244,244,252, 48, 38,100, 89, 47, 84, 99, 54, 34, 37,181,169, 74,238,220,109,177,181, 64, 14,119, 31, 46, 45, +107,226, 28,238,168,199,106,182,152,149,150,139, 11,117,180,186,129,123,146,109,109,222,224, 44, 72, 30,103, 27, 39,103,168, 14, + 67,102,111,183,109,109, 78,169,149, 33, 43,182,203, 35,133,123,199, 76, 69, 54,175,160,130,126,244,168,251, 62, 99, 20,118, 46, + 94,204, 12,230, 41,149,214,106,200, 98, 58,155, 5, 81, 75, 71,119,120, 7, 43,184, 54,177, 22, 22,242, 34,248,144, 53, 75,204, +111, 56,195,194,162,210,155, 40, 42,229,203,115,107, 1,239,253,111,195, 19,206,206,180, 60,145, 42, 45, 87, 93,181, 74,183, 78, +141,147,232, 15, 45,134,189,177, 75, 40,149, 40, 67, 47, 41, 43, 8, 33, 69, 8, 7,121, 72,241, 58, 82,150,210, 60, 74, 41,163, +181, 71,180,119,233,125,125,233, 57,127, 45, 68,161, 83, 90, 10, 84, 72,209,225, 54,219,174, 54,171,132,149,237, 27, 82,121,190, +212,223,109,254,242,173,124,106, 43, 13,125,251, 65,114,233, 8,210, 6,154,170, 7, 32, 58,115, 36,255, 0, 39, 85,142, 86,194, +214,119,218,139,213, 33,234, 53, 34,182,136,145, 33, 48,227, 79, 92,203,146,137, 41, 6, 55,136, 41,190, 58,168, 42,202, 73,183, + 35, 5,169,232, 52,182, 90,106,173, 87, 5,199, 83,246, 73, 74, 71,221, 29, 62, 86,190, 41,202,174,171,230,105,117, 87,123,185, + 74, 42, 47, 39,106, 65,225, 91, 91,221,127,158,227,134, 34,191,155,100, 65,138,235, 50,214,236,135,214,243, 0,172,159, 3,118, + 77,205,189, 54,223,159,222,248, 98,162,172,212,251,105, 7, 42, 99,120,231,231, 85,212,210, 8, 31,115, 87,235,178,242,244,218, +156,105, 74,156,130,236,150,138,152,191, 82, 5,148, 79,167,153, 24,241,179, 71,168,193, 98, 53, 74, 99,125,193, 54, 67,173,158, + 7,136,143,239,199, 46,126,153,103, 89,254,201, 61,181, 62,133,182,242,217,142,234,250, 43,112,252,184, 23,249,224,136,212, 28, +228,186, 97,104, 23, 64,136,175, 24, 74,184,220, 54,128, 79,227,248,168,225,215,131, 28,163, 43,148,197,132, 3, 21,210, 45,190, +221, 5,213,198,165, 50,218,208, 19,246, 69,107,186,184, 54, 39,225,111,227,141,134,173, 75, 33,151,235, 42,140,100, 54,194, 11, +202,109, 2,201, 42, 30,126,224, 79, 31, 28,115,132, 61, 83,204,177,225,173,249, 82, 94,239, 2, 16,148, 92,241,101, 36, 95,240, +177,190, 53, 74,213,138,173, 98, 90,131, 82, 10, 27, 61, 86, 15, 43, 9,177, 10,248,146, 63, 60, 65, 24, 74,231,245,111,206,144, +103, 46,213,211,148,205, 85,166, 81, 97,129, 80, 83, 47, 23,142,228, 45, 12, 37, 92, 88,122,254, 63, 60, 44,114,241,213,108,207, + 8,132,209, 30,121,166,212,144,118,223,139,121, 17,111,158, 22, 8, 48,134, 0,213, 19,227, 36,124, 34,140,150,210, 19,168,248, +213, 70,254, 92, 51, 51, 42,159, 39,184, 99,122, 84, 10,120, 9,108, 89, 95,194,195,231,141,243,227, 42,155, 49,167,212,146,225, +144,224, 17,227, 35,245,136, 22, 3,241,231,228, 49, 61,206, 57,105,138, 91,162,134,195, 91,165, 57, 17,164,132,143, 46, 19,199, +248,244,192, 4,209,165, 69,110, 67,238, 54,127,208, 88,121, 73,144, 69,252, 74, 59, 82, 6, 58,100, 63,157, 2,106, 9,116,144, + 42, 41, 75,159, 42,135, 84, 76,242,248, 87,177, 57,116,237, 61, 87,205,173,240,254,236, 73, 93,173, 68,170,229,242,185,201,184, + 50,131,187, 79,253, 42,202,122, 31,112, 38,231, 17,153, 52, 41, 76,119, 78, 54,217, 8,238,183,171,119,175,151,246, 97,229, 76, + 90, 44, 90,123, 75, 41, 33, 41, 94,193,212,142,164,252,240,234, 66, 93, 0,154,176, 14,162,161, 58,189, 22, 60,202,219, 50,225, + 60, 92,117, 51,139, 75,109, 63,116,160, 16, 47,199,173,215,141,180, 74, 82,198, 99, 57,142, 76,175, 8,134,131,180,255, 0,218, +247,123, 8,252,119, 31,158, 55,188,195,149, 10,139,146, 84,208, 1, 14, 30,237, 32,121,245,255, 0, 7, 14, 90,163, 73,246,182, + 27,152,174,236, 41, 61,227,151, 28, 11,243, 96, 60,205,191,142, 47,165,216, 64, 79, 56,138, 58,213, 40,203, 60,169,206, 95,170, + 85,168,115, 23,152,169,138, 87,120,202,159, 68, 70,201,251,206,184,218,144, 21,111,112, 54,254,145,195,100, 58, 96,190,204, 1, +101,123, 28, 68, 53,222,249,168,164,109, 79,225,206, 36, 45,138,117, 21,110,203,158,180,146, 5,152, 96, 17,116,142,164,251,143, + 78,112, 36, 70, 98,162,226,100,163,106, 92,144,176, 44, 56, 75, 72,189,255, 0,191, 14,130, 12,170, 42,186,179, 41, 32,114, 21, + 31,174,166, 49,117,202,157, 81,226,152,241, 90, 1, 65, 63,121, 68,220,237, 30,243,198, 37,172,126,128,101,125, 49,131,172, 84, + 32,227, 83,230, 83,220,111,184, 43, 27, 90, 88, 86,194, 83,197,239,194,185, 36,245,196, 98,185, 78,135, 94, 92,192,209, 34, 11, + 74,225, 87,229,195,211,143,125,135,200, 12, 36,149,213,169,176,114,244,136,140, 42,156,210,202,253,157,192,118,161,180,130,108, + 44, 69,186, 15,153,195, 56,144,178,148,131,177,215,196, 70,212,253,158,100, 1,247, 21, 21,148,244,211, 6, 61, 73,150, 92,114, +173, 57,231, 36, 57, 37, 5, 68,180,133, 13,160, 40,244, 2,219,143,190,227,211, 25,178,197, 62,108,149,229,193, 61,105,132, 30, + 10,113, 38,234, 43, 32, 14, 72, 29, 73, 32,241,239,196,134,177,245,132,218, 33,162,211, 84, 99,178,167, 65, 82, 27, 81,176,184, + 38,220,243,134, 20,236,169, 74,162,180, 39,205, 84,175, 11,106, 94,230,221, 9,220,161,110, 56, 23,197,164,173, 4, 79,165, 27, + 62,154, 81,214, 50,220,104, 49,149, 22,146,220,223,182,108,108, 67,173,180,202, 45,234, 1, 80,185,231, 2, 42,122, 99,152,159, +238,221,166,186,167, 11, 87, 46, 54,166,129,185,247, 22,212,161,135, 44,167,187,166, 34,175, 29,151,162,182,165,169, 59, 81, 48, + 5,170,194,254, 35,110, 48,242,153, 22,177, 82,154, 19, 37,229,165,148, 55,222,184, 68,162,162,160, 18, 8, 73,241, 27,220,144, + 62,120,100,118,131, 92,194,130, 20, 65,208,214,252,209,154,107, 89,130, 52,104, 53, 56,202,134,212, 6,154,137, 76,136,148,109, +238,216,108, 29,191, 18, 86,165,172,147,212,168,249, 90,217, 66,169,205,137, 25,170,101, 47,190,126, 76,133,134,216,105, 36,169, + 78, 45, 92, 90,222,100,156, 12,143, 29,191, 13, 61,110, 93,198,148, 67, 43, 39,239, 40,155,148,254, 7,140, 75,116,238,148,170, + 53,124,102,233, 21, 36,199, 16, 13,155,120, 50, 22, 82,178,147,114,144,174, 55, 15, 83,211,142, 49, 93,226,219, 13, 24, 30, 67, +169,229, 69, 66,165, 98,118,174,245,236,117,149,169,221,155,180,176, 81, 41,210, 10,235,121,154,130,185,213,218,212, 20,148,206, + 97,215, 88, 87,114,219, 74, 82, 84, 20, 27, 94,221,188, 88, 44,147,101, 95,142,160,200,249,203, 35,232,230, 66,163,118,124,143, +170,143,102,186,141, 49, 5,134,166, 85,100, 50, 37, 60, 84,226,138, 46, 10,130, 90, 72, 10,216,144, 72, 1, 41, 72, 28, 12,124, +222,201,218,233,157,179, 28,199,105, 52,125, 64,159, 10, 35,141, 55, 16, 73,246,102,146,248,101,180,237,178, 84,218, 80, 82,155, + 91,129,201,183,222, 28,131, 42,203,250,215, 59, 38,211,218,133, 73,154,134, 31,113,162,228,183, 1,176, 47, 27,218,254,167,144, + 77,252,241,192, 11,124, 78,209,245,184, 85,222, 89,149, 70,255, 0, 17, 2, 54, 2, 14,194,183,145,136, 21,181,217, 36,194,126, + 63,126,181,209, 26,203,157,153,122,168,184,210,223,120,133,247,207, 6,236,139, 5, 11, 38,215, 6,196,120,111,127,222, 7, 20, +124,247,161,102, 7, 34, 8,110, 23, 29,152,208, 74,210,164,249,133, 35,143,153, 39,240,198,216,249,223, 45,213,226,194,109,169, +233,106,161, 33, 5,180,169, 10,220,219, 77,141,160,146,217,240,254,169,233,111,158, 0,138,165, 6,181, 85,110, 44, 50,219, 18, + 99,177, 47,187,117,181,157,151, 33, 68,172,130,127, 85, 75,227,158,182,227, 23,173,113, 59,244, 5, 37, 68,147,174,227,198,102, +169, 92, 92,169,190,244,233, 81,243, 74,166, 82,243, 67,212, 22, 92,107,189, 59, 66,158, 6,214, 74, 71, 36,124, 72, 82,254, 22, +197,129, 79,203,116,124,189, 25, 20,216,148, 16,239,179,132,186, 17,193, 41,113,196,132,166,231,160, 60,216,126,246,239,217,192, +230,114,190, 82,115, 57,211,204,233,109,247,158,210,227,114,156,176, 37, 76, 50, 71,120,178,125, 84, 5,133,252,175,137, 27, 90, +145,167,236,212,170, 53,216, 42, 76,151,225, 84, 82,252,183, 46,118,184,240, 10,238,155,235,109,169,222, 85,183,223,138, 87,216, +133,229,192,202,153, 51,191,172,127, 3,198,136,130,149,166, 84,119,173, 39, 78,227, 76,170, 71,203,112, 50,235,106,218, 84,185, + 14,132,130, 20,249, 82, 66,208, 61, 18,128, 66, 69,255, 0, 90,254,163, 27,243,206,144,195,202,208,234,134,149, 77,109,231, 98, + 41,133,161,108,177,113,177,231, 60, 71,228, 20, 45,115,228,113, 50,139,172, 25, 75, 35,101, 57,176,217,161,172, 58,167,154, 75, + 18,228, 52, 66,150, 8, 42, 90,238,122,146,178,163,243, 24,205, 61,162,169,143,208,234,181,103, 59,151, 36, 78,149,187,184, 9, + 73,229, 41, 37, 41, 30,224,181,143,247,113,138,155,236, 89, 46,130, 18,114,207, 93,246,250, 77, 89, 67,118,170, 76,102,214,171, +156,203,148,170,153, 87, 81, 98, 81,164,211, 84,220,121, 46,148, 54,226, 27, 60,148,130,175, 46,187,129, 81, 30,226, 61,112, 62, +114,179,140, 73,143, 70,126, 35,232,110, 60,132, 54,225, 3,145,188, 41, 41,255, 0,196,221,191,165,239,197,223, 63, 82,224,230, +138, 13, 47, 49,162,148,202,137,142,164, 2, 64, 42, 37, 44, 41,160,125,215, 90, 27, 62,237,195, 12,243, 60,150,106,105,250,205, +216,237, 33,137, 85, 70,212,250,199, 42, 81,100,160,252,109,117,168, 15, 80,156, 94,180,199, 47, 89, 41,204,152, 59,111,208,254, +213, 5,178,222, 98, 80,175,191,247, 85,210, 41, 89,185,197,187, 78,167, 77,121, 78,179, 37,109, 20, 58, 45,125,138, 41,189,207, +192,226, 83,148, 52,103, 59, 85, 18,219,245,234,170, 98,161,107, 8, 30, 27,149, 19, 99,235,233,231,141, 26,157,152,225,170,163, + 76,127, 46,186,159,105,143, 62,243,130, 71, 11,186, 80,174,158,119, 82,148,171,123,177, 56,163, 78,168,206,204,181, 72, 15, 84, +210,170,117, 52,141,242,146,177,181, 14,166,192,216,251,128, 80,248,131,142,145,174, 53,184, 69,146, 10,219,212,143,145, 0,252, +233,139,106,146, 1,162,244, 77, 13,200,244,165,183, 14,167,152,148,185, 15,188,166,201, 60, 36, 40, 27, 91,241,190, 38,142,105, +231,249, 63,210, 90,143,212,217,157,167,145, 54,100,116,182,176,176, 74, 55, 33,194, 83,240, 41, 4,255, 0, 68,226,156,206,217, +186, 50,114,109, 82,125, 42,114,150, 96, 77,105,194,250, 85,202,212,226,150,155, 3,240,183,225,239,198,138, 69, 94,174,184, 77, +229, 73,117,249, 14, 49, 36, 54,200,108,146,162,133,219,104, 32,115,115,177, 0, 95,203,113,243,189,243,239,177,245,226, 86, 11, +105,228,192, 84,143, 64, 15,212, 82,111, 58, 86, 12,213,217,149, 37, 84, 50,245, 2,153, 14,185, 81,101,111,191, 23,106, 29, 89, + 4,178, 18,171, 41, 64, 92,219,198,180,155,124, 79,166, 42,253, 96,205,199, 42,231, 8, 52,138, 85,119,191, 67,116,244, 9, 18, + 91,118,253,226,238, 65, 82,189, 14,208,158, 61, 45,136,163,185,115, 48,215,106, 68,174,185, 40,164, 84, 80,194, 73,145,225, 75, + 6,206,108,227,204,159, 17,183, 68,132,223,166, 7,106,206,151,214, 93,203, 47, 78,160,214, 59,186,140, 39,254,206, 42,159,191, +181,238, 81,220,155,116, 4, 36,169, 87, 54, 3, 98, 71, 0,227,207, 21,133, 32, 40,229,112,102, 87,132, 13, 77,123, 95,225, 15, + 23, 97,124, 43,198, 12,222,226, 41,254,201, 74,208,163,188,102, 76, 3,238, 84, 79,132,212,190,187,153,106,186,139,166,179, 50, +188, 41,229, 79, 54,209,117,158,243,146, 77,186, 98,133,209, 93, 46,206,203,204,117, 7,179,196,206,230, 68, 48,180,195,102,122, +202, 88, 40, 80,182,235, 0, 20, 85,114, 72,186,128, 6,198,199,166, 29,208,234, 90,153,148,139, 53,226,241, 66, 2, 79,129,181, +238, 4,247,202, 71, 3,206,192, 3,240, 80,245,195,172,205,172,121,255, 0, 48,100,116,215,169,212, 38,228, 74,145, 12,182,171, + 38,196,148,239, 74,172, 71,235, 13,183,183,191, 15,103,133, 98, 86, 97,196, 51,148,133,115, 49, 32,251,244,175,117,198,255, 0, + 17,120, 43, 16,188, 67,133,200, 0,157,137, 19,239, 26,250,117,170,239, 86, 53, 60,162,190,198, 71,145, 81, 76,153,109, 40,182, +149,247,155,137, 5, 64, 1,124, 93, 57,174, 93, 26,183, 1, 84,168,210,251,159,107, 5,231,212,218,249, 66, 6,221,160, 15, 46, + 20, 0,247, 92,121, 99,141,169, 26, 97,169, 47,234, 76,236,233,153,225, 56,219, 12, 48, 95, 73, 32,242,171, 14,158,225,126,191, + 12, 78,169,181,188,242,136,178,101,123, 67,214,117,180,176,183, 86, 73, 40, 72, 95, 32,122,115,197,252,194, 72,199,107,111,128, + 6, 91, 78, 69,137,210,122, 73,175,159, 63, 23,248,222,207,137,125,146,221,133, 72,103, 57,235,250,242, 0, 9,235, 8,159,120, +174,132,168,228,198,212,195, 81,233,217,152,174, 76,183, 26,142,150,186,128,146,158,188,245, 0, 15,157,149,233,141, 67, 65, 38, + 83,169,145,171,149, 9, 66, 64,104, 42, 51, 77,129,247,202, 20,181,172,159, 91, 93, 0, 30,151, 7,211, 16,109, 61,204,153,174, +136,202,235,146,102,184,164,176,242,228, 57, 34, 74,188,100, 4,216,171,241,186,108, 62, 31, 25, 60,206,210, 15,101,218, 43, 19, +221,109, 10, 98, 43, 18, 11,111, 61,254,169,180,166,224, 40,143, 51,183,120, 3,206,254,252, 64,217,223, 45,224,211, 7, 54,186, +199,145,210,188, 17,201,229, 67,179,164,188,149,144,179, 61, 39, 38, 84,170, 42, 92,153,117, 14,237,229, 72,176, 46, 74,186,108, +129,205,138,110,173,160,220, 88,155, 91,207, 26,151, 57,121, 86, 51,207,197,120,173,201,200, 88,105,174,133,107, 77,172,109,251, +189,217, 87, 62, 73, 30,184,131, 49, 94,149,170,177,165,192,155, 65,135, 57, 82,231,165,109,212,165,198, 74,221, 97,123,202, 79, +118,162, 46,144,119,157,214,235,108,108,207,180, 60,247, 62,107,213, 72,144,196, 97, 6, 19,107, 90, 11,132,165, 22, 64,104,219, +204, 3,193,183,150,226, 60,177,180,253,173,163,140,180, 51, 4,187,254, 66, 33, 58, 8, 17,169,215, 78,241,145, 57,132, 1, 4, +213,171,147,100,182, 91, 40, 78, 85, 0, 2,186, 19,212,122, 9,243,169, 45, 31, 57, 63, 77,140,213, 13,198,130,153,105,149, 72, +168,204, 7,149,184,120, 41, 30,160, 38,232, 30,251,159, 46,125,202,253,174,234,206, 34, 70,137, 39, 32, 72,172,211,235, 53, 63, +106,129, 29,173,200,109, 50,172,190,170, 3,238,221, 86,224,245, 2,248,175,148,140,194,213, 38, 16,159, 77, 46,182,200, 91, 79, +148, 19,101, 33, 69, 74,183, 30,151, 4,252,109,235,135,113,245, 43, 52,233,132,228,231, 24,153,101, 5,244,193, 68,122,115,129, + 60, 71, 73, 64, 82,136,226,215, 35,119,251,222,252, 26,213,139,118, 46,130,187,164,153,212,236, 52,141,181,158,158, 85, 89,133, +161, 46,201, 26,108,124, 69, 74,106,181, 42,188, 70, 96, 51, 95,165,174, 44,199,220,121,199,210,225, 22, 74,110,181, 40,220,112, +120, 85,191,162, 48,247, 44,212,104,181, 24,159,164, 25,141,101, 75,147, 36,146,223, 82, 27, 64,228,252,128, 35, 0, 51,134,169, +207,204,249, 34,155, 87,159, 74, 10,147, 37, 0,112,155, 27,157,201, 36,123,143,231,183, 2,242,157, 66,180,183, 13,122,170,148, + 54,201,151,236, 41,141,110, 1,222,157,195,240, 82,142, 1,119,134,134,140,149, 13, 96,233,226, 38, 7,150,158,148,238,165,181, + 18, 18, 52,171,170,100, 12,141, 27, 78,227,230, 22, 42, 32, 84,103, 76,116,200, 74,133,194, 24, 8,105, 40, 73,254,144, 89,249, +140, 72, 32,197,200, 51,147, 20,195,121, 46,200,153,254,138,200, 9,190,237,204, 29,202,248,135, 20,164,255, 0,233,138,146,148, +198, 96,206, 52,183, 27,105,135, 20,147, 18, 55,179, 33,134,138,138,212,227,224,172, 0, 60,249,199,103,253, 30,253,159,180, 86, +145,170,249,107, 54,246,132,170,165, 66,158, 67,180,188,186, 80, 86,150,150, 86,218,125,174, 93,129,186, 82, 87,116,179, 99,117, + 15, 23, 23, 7, 83,135,248,122,231, 19,184, 13, 52, 73, 50,125,195,127,127, 64, 55,171,216,118, 18,246, 36,248,105,160, 73, 63, +181, 49,200,255, 0, 71,190,177,103, 28,139, 23, 61,229, 61, 54,146,253, 29,198, 76,191,172, 29,150,196,118,212, 82,165, 36,216, +190,226, 55, 36, 88,157,201, 4,112, 57,190, 42,236,227,167,185, 88, 83, 37,202,164,148,188,138,115, 95,233,251, 20, 8, 4,180, +132, 1,127, 59, 2,190,125, 65,199,211,222,221, 61,180,116, 55, 34,105,107,255, 0, 84, 33,234,149, 68,199, 82,114,141, 29,149, +150, 29,121,196,110, 6,107,220,110,110, 58,118,148, 33, 36,110, 89, 4, 36, 1,202,126,109,235,119,106,188,147,172,217, 40, 83, + 63,201, 59,244, 60,246,236,182, 69, 86,175, 76,168, 54, 97,212, 89, 9,222,224,113,162,216, 94,253,224, 89, 69,107, 85,183, 2, +162, 44, 7, 75,138,240,214, 23,103,109,144, 93, 17,112,157, 84,149,136, 16,117,208,129,162,163,145,247,154,183,136,224,236, 88, +128,217, 89, 14, 1, 36, 30, 94, 7,161,240,247, 85, 51, 94,165,185, 42, 37, 69,200, 45, 1, 33,166,208,183, 10, 7,250,164,148, + 20,219,243, 72,249, 99,211,147,105,178, 33,198,146,167,138,158, 73,239, 30, 82,211,112,226, 89,181,211,243, 11,255, 0,195,143, + 25,147, 81,131, 42,163, 25,168,133, 70,125, 45, 5, 97, 74,229, 93,218, 11,128,254, 73, 36, 96,132,250,140,186, 88,132,133, 52, + 18,151,105,109,186,217, 41,191,218, 45, 23, 55,249, 90,254,244,156,121,165,218,221, 66,210,218,117,212,252,135,212, 86, 1, 16, + 52,167,206,101,204,165, 77,168, 83,106, 40, 40, 82,221,151, 25,148, 71, 35,162,220, 74, 59,196,252,141,193, 62,182,192,202,165, + 22,151, 86,206,180,170, 28, 18,193,121,214, 24, 10, 88, 55, 74,110,132, 21, 47,221,250,199,231,136,130,107, 21,108,209, 85,145, + 91,128,218,210,219, 10,115,217, 16, 79, 63, 31,193, 36,147,251,184,219,148, 96,213, 98, 74, 85,101,240,225, 29,225,100,150,207, + 54, 33,106, 9, 7,203,144,127, 12, 9, 12, 56, 27, 9, 90,251,209, 77,217,166,164,233,211,188,189,153, 53,101,200,213,202,136, +110,156,149,108,239,208,145,114, 17,112,216,255, 0,186,167, 74, 83,127,253, 48, 10,118, 79,165,196,114, 93, 50, 99,128,200,156, +164, 52,193,191,129,176,149,163,122,189,110, 66, 65,249,156, 17,114, 4,117,102, 71,145,152,158,117, 49,220, 79,219, 58,149, 16, +148,236,113,106, 88,248,110, 73,249,243,131, 51,226,100,217, 52,198, 43, 43,154, 84,229, 78, 43,123, 18,226,249,102, 66, 86,158, + 15,160, 80, 23, 7,223,137,165,197, 38, 6, 99,174,159,127,124,170, 66, 19, 17, 83,236,197,169,157,149,145,217,162, 95,101,109, + 56,206,242,243, 37, 94,163, 49, 51,235,143,192,165, 20, 70,132,243,109,182,148,110,121,221,138, 37, 43, 74,130, 0, 4,157,170, + 81, 0, 46,194,157,202, 52,116, 77,170,203, 99, 81,163, 50,227,244, 10, 27,178,212,204, 67,184, 79, 8, 72, 75,101, 38,195,194, + 72, 72, 85,192,218, 47,215,139,172,135,146,169,249, 18,147, 72,124,161,134,165, 77, 10, 53, 48,183, 18, 1,113,197, 45, 32,149, + 19,111, 9, 77,191,162, 49, 62,200,154, 31, 92,168,213,233,249,240, 86, 33, 57, 17,208,228, 69,247, 46,135, 16,166, 86,210,219, + 91,107, 34,246,225, 65, 68, 11,144, 82,147,198, 52,241,172, 78,217,107,236, 26, 48,211,114, 18,175,242, 49,190,191,249, 70,157, + 60,232,238,188, 28, 80,145,160, 21, 82,183,151, 17, 15, 45, 72,173, 87, 2, 68,247, 26,113, 77,182,148,248, 91,220,162,216, 39, +254,234, 66,172, 61, 72, 62, 88,144,230,122, 76,136, 89,109, 13, 72,121, 78, 73, 20,205,137, 73,109, 33,105,222,157,247, 42,182, +226, 54,173, 9,219,123, 11, 11,121,225,236,220,181, 77,171, 85,230, 50,211,128, 83, 92,150,232, 66, 90, 42, 87,217, 32,172,139, + 21,114,111,116,168,223,203,227,108, 44,192,227,117,140,214,234,234, 47, 36, 33,197, 8,251, 80,174, 55,130,148,148,223,220, 64, +252, 71,174, 50,205,219,133,112,147,182,167,239,238, 42, 9, 82,144,131,227,254,254,117, 27,107, 43,199,111, 37,196, 92,199,144, + 22,195,131,194, 7, 59,213,201, 87,251,187, 71,204,225,157, 14,137, 8,164, 66,152,202, 46, 1, 87,116,163,194,236, 21,201,245, +231,105,196,221,116,186, 75, 84, 95,172,170, 14,132,165,194,180,134,239, 97,100,108,177, 30,242, 71,224,112, 29,138, 13, 34,169, + 91,102,123, 50,194, 75, 14, 44,170,203,253, 80,129,193,249,220,219,214,216,113,116, 84,146,100,193,154, 4, 2,117,168,238,114, +201, 50, 2,164, 48,149,160,161,134, 75,105, 75, 64,112,128, 9,113, 67,230, 21,207,191, 3,232,249, 14, 44,154, 51, 19, 92,103, +104,125,167, 17, 30,201,251,173, 36, 47,197,248,220,124, 70, 44, 42, 99,116,215,145, 50,178,163,181,175,108, 91, 45,130,110, 10, +119, 0,161,239, 4,113,243,193, 56,212, 90, 51, 25,109,140,202,220,132,180,218,170,166, 3, 45, 56,175, 10, 27,229,213,159,251, +163,114, 65,194,246,213,160,132,245,164, 1, 34, 5, 86,201,201, 76, 0, 27,110, 42,188, 40, 77,212,148, 95,157,160,237,249, 2, + 63, 28, 44, 88, 84,220,215, 79,162,211,251,152,208,218,117, 14,202,121,196, 23, 83,117,109, 42,240,222,223,187,180,124,176,177, + 33,114,255, 0, 88,168,129,227, 84, 25,126,185, 94,204,137,206,111, 33, 93,195,142,123, 60,116,129,200,176,219,131, 58,153, 46, +159, 10,108, 28,137, 21,180,161, 13, 52, 94,169, 59,183,149, 44,139,128,126, 29, 62,120, 47,149, 80,143,209,202, 50,118, 11,125, +106, 77,173,241,196,127, 60, 37, 42,204, 82,157, 82, 65, 81,142, 46,162, 57, 60,227,109,167,115,184, 76,108, 72,248,208,180, 43, +138,141,201,128,245,110, 19,145, 91,143,101, 41,105,241,129,194, 0,185, 36,252, 6, 24,154, 18,165,119,245,183,209,100,165, 27, + 80,146, 60,173, 96, 7,229,137,173, 29, 8, 25, 65,106, 8, 0,149, 44, 19,110,190, 36,224, 69, 88, 4,193,142,132,139, 36,173, +119, 3,166, 14, 29, 80, 70,156,207,214, 40,169, 86,177, 81, 12,187,151,144,244,245,169,246,128, 66,146,181, 1,111,196,254, 28, + 99,202, 85, 44,230, 92,212,137, 50, 29,238,216,122,110,196,168,244, 67, 98,247, 63,128,196,142,130, 7,214,149, 17,111,187, 78, + 86,223,119,135, 2,160, 37, 41, 97,205,160, 11, 48,233, 22,242,225, 56, 41,112,151, 39,192,124,106, 68,146, 60,234, 45,152,226, +181,153, 42,179, 30,132, 10, 25, 47, 40,177,239, 70,235,127, 1,130, 95, 82, 67, 49,217,164,197, 66,146,218, 25, 14,186,233, 87, + 43,220, 5,135,187,174, 30, 69,105,164,192, 27, 90, 72,240, 39,162,127,116,227, 20,255, 0,241, 50, 60,189,149,158, 63, 12, 89, +113,213,104, 58, 82, 43, 51,150,162, 21, 42,125, 66, 75,191, 87,192,111,187,101,164,149, 40,129,109,199,158, 62, 88,198, 83, 46, +197,181, 58, 59, 68, 37, 12, 13,196,245, 89, 36, 27,126, 88,152, 67,109, 30,208,201,216, 46, 82,237,205,186,225,142,101,105,164, +202,164,148,182,145,189, 30, 43, 14,190, 47, 60, 17, 15, 28,213, 52,184, 73, 2,128,211,160,200,105, 13,177, 33, 55,113,215, 67, +206,123,147, 99,130,203,160,247,212,231, 34,188,215,137, 18, 93, 79, 35,213, 9,219,135, 19,144,129,154,212, 2, 64, 29,217, 22, +183,149,198, 13,190,148,253, 98,145,180,127,239,231,203,247, 14, 24,184,162,242, 81,200,254,226,162, 84,119,168,196, 74, 44,103, +242, 83,212,183, 63,215,125, 98,210, 83,238, 5, 42, 73,198,172,200,200,165, 86,223, 98,150,124, 45,161,150,148,145,230,108, 73, +255, 0,202, 48, 86,144,148,151, 30, 5, 35,255, 0,140,181,229,251,203,192,185,132,175, 51, 84, 55, 27,255, 0,164, 30,191, 28, + 90, 14, 41, 18, 41,210,117,154, 20,220, 87,225,205, 98, 67,204,144,163,191,186, 4,117, 87, 77,223,138,191, 44, 31,100, 74,238, + 84,195,170,187, 12, 62, 20,224, 79, 69,147, 99,111,241,233,141, 21, 4,165, 50, 89, 41, 72, 22,100,218,195,167,140, 97,252, 14, +114,226,212,121, 37,245, 92,159, 63, 14, 32,181, 21,106,106, 89,180,163,185, 53, 83, 98,184,186,201, 81,218,131,224, 55,234,162, + 69,134, 25,212, 51, 42,227, 85,102,186,233,113,224,167,108,130,151,108, 46, 85,240, 62, 99,242,193,246,208,132,101, 38, 2, 16, + 7,250, 99, 93, 7,255, 0, 40,156, 66,223, 0,178,110, 58,207,231,240, 56,174, 82,151, 0, 36, 84, 80,181, 21, 26, 59, 23, 49, +213,162,202,141, 53, 14,186,160,133,108,121,105, 87, 40,243, 60,121,240, 65,198,184, 57,182,162,197,115,187, 19,220, 81, 17,146, +130,119,159, 53,130,175,198,195, 27,233,169, 79,212,105, 85,133,204,215,238,125,120, 72,192,124,174,211, 78,230, 58,143,122,218, + 85,181,133, 20,238, 23,177,231, 3,202,128, 9,138,121,204, 8, 53, 42,127, 84, 42,241, 37, 75, 90, 11,203,125,246, 84,220, 66, +149,113,222, 45, 67,175,184,219,156, 76,180, 83, 59,140,139, 71,136,151,150,204,135,231,206, 81,222,240,221,180, 37, 55, 91,135, +247,137, 81,182, 42,121,164,251, 68, 83,126,123,213,243,242, 86, 8,197,117,196,199,165,109,113, 66,205,189,107, 31,222,197,117, +219,180,182, 20, 8,164,162, 74, 35,149, 90, 25,139, 82,243,102,104,169, 46,179, 83,150,194,217,106, 66, 82,150,209, 25,176, 2, + 74,200, 9, 7,111, 30,120, 7, 95,205,210, 32,187, 10,157, 10, 65, 11,246, 98,244,133,160,218,202, 95,141, 68, 91,206,214, 31, +142, 54, 83, 90,107,244, 25,106,238,211,115, 45, 36,155,117, 33, 10,182, 5,202, 1,235,173,209,184,134, 92, 0,171,146, 5,198, + 42,165,134,147,221, 3, 74,118,158, 40,128, 5, 90,153, 59, 88, 11,185, 86, 12, 86,135,217,165,166,212,210,119, 88,146, 30, 77, +191, 18,148,143,145,193,182, 53, 42,124,186,155, 9,250,195,100,104,145,146,133,217,127,174, 74,183,185,242, 0,255, 0,189,138, + 98,148,165, 53, 22, 2, 90, 81, 72, 9,108, 0,147,107,120,151,130,217,101,215, 28,136, 67,142, 41, 65, 68, 5, 2,111,113,115, +140,231,236,153, 4, 71, 63,169,171,169,125,100,213,178,229,102, 54,100,173,200, 20,233, 55,145, 17,131, 33, 42,184, 60,165,162, + 64, 63,151,224, 48,202, 22,116,172,119,179,242,188,106,178,203, 78, 52,134,214,176,171,110, 55, 78,243,127, 85, 18,163,126,183, + 89,196, 63, 74, 29,119,184,172,191,222, 43,121, 91,137, 43,191, 36,119, 99,139,250, 97,218,201,110,124,197, 54,118,158,253,174, + 83,199,174, 2,182,144,131,147,124,191,193,250,211,174,225,193, 83,188,195,169, 15,214, 34, 76,202,144,223,106, 43,109,204, 74, +159, 41,235,116, 1, 97,129,209,181,101,228,102, 53, 49, 79,121, 81,223,101, 41, 66, 95, 32, 18,149, 46,201,189,252,143,132, 95, +204,238,242,177,196, 90,151,246,149,169,129,207, 22,245, 58, 87,187,157,199,127, 83,235,136,234,212,164,200,113, 73, 36, 19, 95, + 72, 36,121,128, 77,177, 30,193,151, 19,146, 52,253,247,167, 55, 78,164,213,215, 11, 85,254,168,174, 56,210, 17,176,176,203,237, +193, 96,168,149, 19,180,169,110,174,253, 84,162, 83,184,254,207,132, 88, 18, 48, 51, 44,231,218,156,250,104, 19,234,234, 93, 70, + 89, 88,114, 75,137, 30, 6,212,160, 22, 71,225,180,124,134, 42,202,204,185, 74,206,189,234,164,184, 84,168,242, 55, 40,172,220, +221,196,223, 6, 50, 66,214,181,160,173,100,253,156,113,201,242,239,209,198, 2,109, 25, 26,199, 79,173, 56,191,184, 3, 67, 82, +120,185,241,183, 27,164,199, 66, 84,166,105, 17, 92,109,198,148, 62,242,192, 86,213,123,237,112,126, 8,192, 58, 22,112,118,141, + 73,106, 20,215, 10, 98,198,150,149,183, 99, 98, 82,164, 36, 18, 61,228,121,254,241,192,106, 59,142, 8,205,168, 56,171,170,107, +161, 70,253, 65, 28,224,126,102, 36, 64,216, 15, 2, 67, 0, 15,119,135, 6,106,221,180,166, 60,127,127,222,138,111,159, 81,130, +106,210,117,218, 94,106,139, 14, 52, 40,169, 50, 38,182,224, 37, 99,239,180, 28,240,139,122, 0,132,252,176, 2,152,198, 91,167, + 81, 26, 19,226,119,170,144, 86,148, 53,251,123, 66,249, 31, 21, 20,252,206, 8,100,175, 13, 86,158,226,120, 82, 50,188,133, 33, + 67,170, 78,215,185, 30,135, 13,139, 45, 43, 58, 82,153, 83, 73, 40, 69, 56, 20, 36,167,132,158,224, 30, 7,151, 60,252,112, 34, +165, 37,194,128,116,137,249,254,213, 73,199, 20,189, 77,103, 50, 50,171, 52,151,105,222,201,181,181, 54,204,116,243, 97,117, 18, +234,254, 67,106,148,125,195,223,136,149, 74,137, 50, 69, 1, 89,109, 12,165,201, 82, 18, 88,140,130,200, 88, 80,189,214,162, 15, + 81,181, 42, 32,122,145,235,137,102,164,188,244, 58, 10, 61,145,213, 53,121,210,193,238,213,183,139,161, 54,227,221,199,195,140, + 65, 96, 85,170,163, 85,227,182, 42,114, 2, 82, 65, 74,123,229, 88, 92, 11,219,156, 18,212,173,198,179,131, 16, 38, 60, 69, 4, + 62,164, 43, 77,232,214,152,101, 40, 57,109,109, 46,130,128,150,208,219,110, 33,151, 58,188,225,109, 42, 82,207,244,130,184,247, + 96,222, 99,156,243, 57, 77,215,229, 74, 46,189, 61,226,135,155, 72,232,148,144,176,143,154,128,192,250, 17, 40,163,184,164,155, + 16,211, 64, 17,229,215, 15,106,232, 65,160,196,186, 7, 53, 27,158, 58,248,159,254,225,248, 97,238, 30,122,230,247,180,117, 82, + 73,212,243, 53, 12,217,211, 78, 40,244, 41,174, 52,170, 60, 70, 59,192, 86,134,208,222,223,245,138,119,187, 63,193, 55, 63, 19, +134, 89,174,141,245,254, 66, 20, 90,124, 36, 23, 99,184,118, 40,162,251, 82,164, 13,234,249, 91,241,196,183, 47, 45,104,205, 41, + 8, 89, 22,109,229, 11, 31, 48,226, 82, 15,198,220,124, 56,192, 60,170,227,138, 27, 20,226,136, 44, 55,112, 79, 28,145,124, 87, +237, 8,118, 35,104, 62,253,169,167, 46,162,163,240,116,170,176,131, 37,170,154, 10, 88,130,243, 43, 59, 58, 54, 0, 42, 41, 30, +251,165, 35,250,120,245,172,141, 81,155,146,154,158,167,183, 58, 43,206,188,251, 97, 54,185,113, 2,196, 31, 59, 40,145,242,197, +163,168, 11, 91, 57,122, 74,154, 81, 73, 83,237,238, 41, 54,191,216,177,136,149, 41,107, 57,106,152,146,179, 98,182,137, 23,234, + 74,213,124, 58, 46,220, 90, 65,241, 31, 35, 81,237,148, 5, 61,133,153,179, 29, 34, 22, 93, 6, 59,125,221, 29,180, 60,182, 26, +104, 52, 22,134,130, 77,136, 0,117, 13,131,126,167,125,249,190, 39, 57, 63, 87,243,142, 80,205, 84,170,229, 6,164,149, 74, 17, + 1,122, 68,129,112, 84,132,135, 20, 20, 60,199,137, 39,223,179, 0,243,139,104, 53,153,224,160, 31,180,183, 79, 34,216, 4,126, + 28, 98, 46,151, 93,180,223,181, 87,134, 44,205,190, 46,156, 50, 49,173,105,139, 94,164,246,200, 81, 10,153,208,243,235, 87,173, +239,110, 27, 88, 90, 21, 7,125, 42, 97,169,122,149, 43, 53, 84,230,230, 10,213,110, 68,135,159, 12,203,146,241,115,196,164,119, +103, 98, 61,194,193, 92, 11,117,192, 26,117, 66,155, 27, 52,174, 74,226, 37,108,182,195, 8, 89, 39,130,181, 51,189,119,245,232, + 71,204,226, 63, 81,241, 65,169, 37, 92,143,102, 96, 88,250,119,110,113,135,147, 64, 74,165, 16, 45,224,127,167,185,133, 91, 15, +123,112,235,168, 82,148, 73, 36, 30,126, 0,205, 13,199,150,181, 74,140,147, 91, 13,124,198,204,169,168,204, 85,195,173,167,187, + 72,243, 74,129, 22,249,139, 12,107,175,202,169, 73, 37,169, 79,119,150,109,105,110,223,168, 27, 72,184, 30,235,169, 71,229,129, + 85,162,125,146, 18,175,200,146,205,143,167,137, 56, 41,153, 0, 69, 88,165, 34,194,243, 56, 31,253, 66, 49,146,176, 2,129,231, +251, 85, 2,179, 88,229, 26,116,185,116, 78,237,108, 4,170, 85,101, 49,247,142, 10, 91, 86,228,168,126, 35,243, 62,184,153,101, +236,190,244,108,169, 89,101,136, 96,189, 30,190,205,156,243,108, 50,137, 36,129,238,220,166,255, 0, 15,126, 26,105,202, 82,105, +144, 9, 72,230,168,130,120,255, 0,233,226,111, 77, 1, 45,230, 52,164, 88,123, 68,179, 97,235,199, 56,203,186,186,113, 25,136, +229,251,138, 65,197, 21,197, 86,149, 57,202,148, 32,208,170, 49, 3, 76, 54,194,153,144,233, 28,237, 43, 46, 42,254,242, 2,191, + 19,136,229,117, 77, 42,167, 13,134,128,108,180, 25, 66,210,179, 96, 28,184, 73, 63, 11,146,126, 24,153,234,235,104, 69, 94,174, +148, 32, 0,154,250, 18, 0, 29, 6,213,113,240,197,125,154,137, 57,174, 85,205,236,165, 17,127, 35, 97,139,246,103,180,107, 56, +211, 64,125, 96,253,105,103, 84,111, 82,170,205, 31, 79,100,211,169,243, 51, 83, 73,155, 46, 3, 41, 49, 99, 21,158,236,172, 0, +159, 16, 29, 78,237,199,155,129,111, 50,120,121, 70,207,117, 92,179, 57, 84,124,189, 85,112,198,219, 29,229, 65, 46, 89,152,235, + 80, 5,194,144, 58, 27, 91,159,221,231, 16, 37, 18,170,199,136,223,236, 28, 60,250,220,115,141,212,117, 40, 72,168,172, 40,220, +193, 93,205,249,251,131, 22, 84,214,116,128,179, 35,167,190,162,167, 20, 83, 21,179, 76,230,231,252,201, 85,122, 50, 42, 13, 51, + 74, 18,195, 20,213, 37,145,222,144, 92, 32,173, 68,139,131,100,147, 97,231,110,125, 95, 69,211,154,212,170, 34,234,109, 87, 36, + 41, 2,178,165, 45, 14,155,247,105,223,226,177,181,193, 36, 35,142,156,121, 99, 13, 40,113,104,102,159,177,100, 94,168,229,236, +127,117,120,147,103,183, 92,143,147,229, 37,135, 20,128,115, 69,136, 65,181,193,108,146, 56,196, 46, 93, 87,108, 82,152, 30, 67, +239, 90, 98,234,243,122, 84,123, 83,233, 21,255, 0,173,195,139,148,145, 31,111,121, 22, 59, 74, 35,112, 5, 54, 22,242, 5, 74, +176,247, 32,225,133, 86,137, 63, 44, 40, 71, 98,104,117,228,160,170, 78,211,113,193, 73, 42, 63, 21, 92,129,233,183, 7,245, 75, +255, 0,121,134,191, 63,110,124, 95,220, 24, 22, 31, 43,159,196,225,181, 88, 5,214, 10,150, 46, 85, 17,237,196,249,248,157,192, +109, 84, 75, 72, 79, 40,249, 69, 73, 75, 49, 90,242,131, 50,106, 84, 41, 8, 88, 87,117, 74,166,187, 49,198,239,203,174, 56,160, +150,211,242, 54, 81, 62,236, 55,118, 61, 99, 48,209,163, 82,153,152,190,233,137, 72, 9,106,246, 73,113,221,169, 22,248,217, 87, +248, 39, 5,104, 11, 90,103,230,128,149,144, 63, 70,209,192, 62,232,223,222,112, 11, 36,186,239,121, 79, 29,226,185,172,193,191, +139,247, 18,112,109,136,143,191,189,169,131,138,137,167,153,222,149, 38,137, 83, 77, 57,167, 84,144,210, 54,157,135,169, 79,132, +159,196, 28, 44, 21,206,169, 74,179, 93, 67,114, 65,180,199, 64,184,232, 55, 30, 48,176, 16,250,128,218,132, 28, 49, 95,255,217, + 0}; + diff --git a/source/blender/src/toolbox.c b/source/blender/src/toolbox.c index 8a8d7c8cec7..c8a20cdc951 100644 --- a/source/blender/src/toolbox.c +++ b/source/blender/src/toolbox.c @@ -123,6 +123,8 @@ #include "BPY_extern.h" #include "BPY_menus.h" +#include "BLO_sys_types.h" // for intptr_t support + void asciitoraw(int ch, unsigned short *event, unsigned short *qual) { if( isupper(ch) ) { @@ -238,7 +240,7 @@ void error_libdata(void) int saveover(char *file) { - int len= strlen(file); + size_t len= strlen(file); if(len==0) return 0; @@ -1756,8 +1758,8 @@ static uiBlock *tb_makemenu(void *arg) static int tb_mainx= 1234, tb_mainy= 0; static void store_main(void *arg1, void *arg2) { - tb_mainx= (long)arg1; - tb_mainy= (long)arg2; + tb_mainx= (intptr_t)arg1; + tb_mainy= (intptr_t)arg2; } static void do_group_addmenu(void *arg, int event) @@ -2185,27 +2187,27 @@ void toolbox_n(void) but=uiDefBlockBut(block, tb_makemenu, menu1, str1, mval[0]-(1.5*dx)+tb_mainx,mval[1]+tb_mainy, dx, 19, ""); uiButSetFlag(but, UI_MAKE_TOP|UI_MAKE_RIGHT); - uiButSetFunc(but, store_main, (void *)(long)dx, (void *)(long)-5); + uiButSetFunc(but, store_main, (void *)(intptr_t)dx, (void *)(intptr_t)-5); but=uiDefBlockBut(block, tb_makemenu, menu2, str2, mval[0]-(0.5*dx)+tb_mainx,mval[1]+tb_mainy, dx, 19, ""); uiButSetFlag(but, UI_MAKE_TOP); - uiButSetFunc(but, store_main, (void *)(long)0, (void *)(long)-5); + uiButSetFunc(but, store_main, (void *)(intptr_t)0, (void *)(intptr_t)-5); but=uiDefBlockBut(block, tb_makemenu, menu3, str3, mval[0]+(0.5*dx)+tb_mainx,mval[1]+tb_mainy, dx, 19, ""); uiButSetFlag(but, UI_MAKE_TOP|UI_MAKE_LEFT); - uiButSetFunc(but, store_main, (void *)(long)-dx, (void *)(long)-5); + uiButSetFunc(but, store_main, (void *)(intptr_t)-dx, (void *)(intptr_t)-5); but=uiDefBlockBut(block, tb_makemenu, menu4, str4, mval[0]-(1.5*dx)+tb_mainx,mval[1]+tb_mainy-20, dx, 19, ""); uiButSetFlag(but, UI_MAKE_DOWN|UI_MAKE_RIGHT); - uiButSetFunc(but, store_main, (void *)(long)dx, (void *)(long)5); + uiButSetFunc(but, store_main, (void *)(intptr_t)dx, (void *)(intptr_t)5); but=uiDefBlockBut(block, tb_makemenu, menu5, str5, mval[0]-(0.5*dx)+tb_mainx,mval[1]+tb_mainy-20, dx, 19, ""); uiButSetFlag(but, UI_MAKE_DOWN); - uiButSetFunc(but, store_main, (void *)(long)0, (void *)(long)5); + uiButSetFunc(but, store_main, (void *)(intptr_t)0, (void *)(intptr_t)5); but=uiDefBlockBut(block, tb_makemenu, menu6, str6, mval[0]+(0.5*dx)+tb_mainx,mval[1]+tb_mainy-20, dx, 19, ""); uiButSetFlag(but, UI_MAKE_DOWN|UI_MAKE_LEFT); - uiButSetFunc(but, store_main, (void *)(long)-dx, (void *)(long)5); + uiButSetFunc(but, store_main, (void *)(intptr_t)-dx, (void *)(intptr_t)5); } else if (tot==5 || tot==7) { /* check if it fits, dubious */ if(mval[0]-0.25*dx+tb_mainx < 6) mval[0]= 6 + 0.25*dx -tb_mainx; @@ -2282,7 +2284,7 @@ void toolbox_generic( TBitem *generic_menu ) TBitem *menu; int dx=96; short event, mval[2]; - long ypos = -5; + intptr_t ypos = -5; tb_mainx= -32; tb_mainy= -5; diff --git a/source/blender/src/transform_conversions.c b/source/blender/src/transform_conversions.c index 9f2f58d0cdb..efb86b59ed1 100644 --- a/source/blender/src/transform_conversions.c +++ b/source/blender/src/transform_conversions.c @@ -144,6 +144,8 @@ extern ListBase editelems; #include "transform.h" +#include "BLO_sys_types.h" // for intptr_t support + /* local function prototype - for Object/Bone Constraints */ static short constraints_list_needinv(TransInfo *t, ListBase *list); /* local function prototype - for finding number of keyframes that are selected for editing */ @@ -1913,7 +1915,7 @@ static void set_crazyspace_quats(float *origcos, float *mappedcos, float *quats) EditVert *eve, *prev; EditFace *efa; float *v1, *v2, *v3, *v4, *co1, *co2, *co3, *co4; - long index= 0; + intptr_t index= 0; /* two abused locations in vertices */ for(eve= em->verts.first; eve; eve= eve->next, index++) { @@ -1925,13 +1927,13 @@ static void set_crazyspace_quats(float *origcos, float *mappedcos, float *quats) for(efa= em->faces.first; efa; efa= efa->next) { /* retrieve mapped coordinates */ - v1= mappedcos + 3*(long)(efa->v1->prev); - v2= mappedcos + 3*(long)(efa->v2->prev); - v3= mappedcos + 3*(long)(efa->v3->prev); + v1= mappedcos + 3*(intptr_t)(efa->v1->prev); + v2= mappedcos + 3*(intptr_t)(efa->v2->prev); + v3= mappedcos + 3*(intptr_t)(efa->v3->prev); - co1= (origcos)? origcos + 3*(long)(efa->v1->prev): efa->v1->co; - co2= (origcos)? origcos + 3*(long)(efa->v2->prev): efa->v2->co; - co3= (origcos)? origcos + 3*(long)(efa->v3->prev): efa->v3->co; + co1= (origcos)? origcos + 3*(intptr_t)(efa->v1->prev): efa->v1->co; + co2= (origcos)? origcos + 3*(intptr_t)(efa->v2->prev): efa->v2->co; + co3= (origcos)? origcos + 3*(intptr_t)(efa->v3->prev): efa->v3->co; if(efa->v2->tmp.p==NULL && efa->v2->f1) { set_crazy_vertex_quat(quats, co2, co3, co1, v2, v3, v1); @@ -1940,8 +1942,8 @@ static void set_crazyspace_quats(float *origcos, float *mappedcos, float *quats) } if(efa->v4) { - v4= mappedcos + 3*(long)(efa->v4->prev); - co4= (origcos)? origcos + 3*(long)(efa->v4->prev): efa->v4->co; + v4= mappedcos + 3*(intptr_t)(efa->v4->prev); + co4= (origcos)? origcos + 3*(intptr_t)(efa->v4->prev): efa->v4->co; if(efa->v1->tmp.p==NULL && efa->v1->f1) { set_crazy_vertex_quat(quats, co1, co2, co4, v1, v2, v4); diff --git a/source/blender/src/transform_generics.c b/source/blender/src/transform_generics.c index c332fd723eb..656fca3cad8 100644 --- a/source/blender/src/transform_generics.c +++ b/source/blender/src/transform_generics.c @@ -32,6 +32,8 @@ #include "MEM_guardedalloc.h" +#include "BLO_sys_types.h" // for intptr_t support + #include "DNA_action_types.h" #include "DNA_armature_types.h" #include "DNA_constraint_types.h" diff --git a/source/blender/yafray/intern/export_Plugin.cpp b/source/blender/yafray/intern/export_Plugin.cpp index 6ae4a31bf50..77d53c4ed96 100644 --- a/source/blender/yafray/intern/export_Plugin.cpp +++ b/source/blender/yafray/intern/export_Plugin.cpp @@ -74,7 +74,7 @@ extern "C" { extern char bprogname[]; } // add drive character if not in path string, using blender executable location as reference static void addDrive(string &path) { - int sp = path.find_first_of(":"); + size_t sp = path.find_first_of(":"); if (sp==-1) { string blpath = bprogname; sp = blpath.find_first_of(":"); diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 2ee8b54a014..d8b2e063a9d 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -484,17 +484,10 @@ char BL_ActionActuator::GetAction_doc[] = PyObject* BL_ActionActuator::PyGetAction(PyObject* self, PyObject* args, PyObject* kwds) { - PyObject *result; - if (m_action){ - result = Py_BuildValue("s", m_action->id.name+2); - } - else{ - Py_INCREF(Py_None); - result = Py_None; + return PyString_FromString(m_action->id.name+2); } - - return result; + Py_RETURN_NONE; } /* getProperty */ @@ -640,8 +633,7 @@ PyObject* BL_ActionActuator::PySetAction(PyObject* self, return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setStart */ @@ -662,8 +654,7 @@ PyObject* BL_ActionActuator::PySetStart(PyObject* self, return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setEnd */ @@ -684,8 +675,7 @@ PyObject* BL_ActionActuator::PySetEnd(PyObject* self, return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setBlendin */ @@ -707,8 +697,7 @@ PyObject* BL_ActionActuator::PySetBlendin(PyObject* self, return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setBlendtime */ @@ -735,8 +724,7 @@ PyObject* BL_ActionActuator::PySetBlendtime(PyObject* self, return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setPriority */ @@ -759,8 +747,7 @@ PyObject* BL_ActionActuator::PySetPriority(PyObject* self, return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setFrame */ @@ -785,8 +772,7 @@ PyObject* BL_ActionActuator::PySetFrame(PyObject* self, return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setProperty */ @@ -808,8 +794,7 @@ PyObject* BL_ActionActuator::PySetProperty(PyObject* self, return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setFrameProperty */ @@ -830,8 +815,7 @@ PyObject* BL_ActionActuator::PySetFrameProperty(PyObject* self, return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* @@ -848,8 +832,7 @@ PyObject* BL_ActionActuator::PyGetChannel(PyObject* self, return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } */ @@ -934,8 +917,7 @@ PyObject* BL_ActionActuator::PySetChannel(PyObject* self, } } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* getType */ diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index a6337403cd1..edc14dabc70 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -1946,10 +1946,22 @@ void BL_ConvertBlenderObjects(struct Main* maggie, //parentinversenode->SetLocalOrientation(parinvtrans.getBasis()); // Extract the rotation and the scaling from the basis - MT_Matrix3x3 inverseOrientation(parinvtrans.getRotation()); - parentinversenode->SetLocalOrientation(inverseOrientation); - MT_Matrix3x3 scale(inverseOrientation.transposed()*parinvtrans.getBasis()); - parentinversenode->SetLocalScale(MT_Vector3(scale[0][0], scale[1][1], scale[2][2])); + MT_Matrix3x3 ori(parinvtrans.getBasis()); + MT_Vector3 x(ori.getColumn(0)); + MT_Vector3 y(ori.getColumn(1)); + MT_Vector3 z(ori.getColumn(2)); + MT_Vector3 scale(x.length(), y.length(), z.length()); + if (!MT_fuzzyZero(scale[0])) + x /= scale[0]; + if (!MT_fuzzyZero(scale[1])) + y /= scale[1]; + if (!MT_fuzzyZero(scale[2])) + z /= scale[2]; + ori.setColumn(0, x); + ori.setColumn(1, y); + ori.setColumn(2, z); + parentinversenode->SetLocalOrientation(ori); + parentinversenode->SetLocalScale(scale); parentinversenode->AddChild(gameobj->GetSGNode()); } @@ -2129,7 +2141,24 @@ void BL_ConvertBlenderObjects(struct Main* maggie, float* fl = (float*) blenderobject->parentinv; MT_Transform parinvtrans(fl); parentinversenode->SetLocalPosition(parinvtrans.getOrigin()); - parentinversenode->SetLocalOrientation(parinvtrans.getBasis()); + + // Extract the rotation and the scaling from the basis + MT_Matrix3x3 ori(parinvtrans.getBasis()); + MT_Vector3 x(ori.getColumn(0)); + MT_Vector3 y(ori.getColumn(1)); + MT_Vector3 z(ori.getColumn(2)); + MT_Vector3 scale(x.length(), y.length(), z.length()); + if (!MT_fuzzyZero(scale[0])) + x /= scale[0]; + if (!MT_fuzzyZero(scale[1])) + y /= scale[1]; + if (!MT_fuzzyZero(scale[2])) + z /= scale[2]; + ori.setColumn(0, x); + ori.setColumn(1, y); + ori.setColumn(2, z); + parentinversenode->SetLocalOrientation(ori); + parentinversenode->SetLocalScale(scale); parentinversenode->AddChild(gameobj->GetSGNode()); } diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index 242d648b062..942e3b502e0 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -464,17 +464,10 @@ char BL_ShapeActionActuator::GetAction_doc[] = "\tReturns a string containing the name of the current action.\n"; PyObject* BL_ShapeActionActuator::PyGetAction(PyObject* self) { - PyObject *result; - if (m_action){ - result = Py_BuildValue("s", m_action->id.name+2); - } - else{ - Py_INCREF(Py_None); - result = Py_None; + return PyString_FromString(m_action->id.name+2); } - - return result; + Py_RETURN_NONE; } /* getProperty */ @@ -591,12 +584,10 @@ PyObject* BL_ShapeActionActuator::PySetAction(PyObject* self, } } else { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setStart */ @@ -614,12 +605,10 @@ PyObject* BL_ShapeActionActuator::PySetStart(PyObject* self, m_startframe = start; } else { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setEnd */ @@ -637,12 +626,10 @@ PyObject* BL_ShapeActionActuator::PySetEnd(PyObject* self, m_endframe = end; } else { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setBlendin */ @@ -661,12 +648,10 @@ PyObject* BL_ShapeActionActuator::PySetBlendin(PyObject* self, m_blendin = blendin; } else { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setBlendtime */ @@ -690,12 +675,10 @@ PyObject* BL_ShapeActionActuator::PySetBlendtime(PyObject* self, m_blendframe = m_blendin; } else { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setPriority */ @@ -715,12 +698,10 @@ PyObject* BL_ShapeActionActuator::PySetPriority(PyObject* self, m_priority = priority; } else { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setFrame */ @@ -742,12 +723,10 @@ PyObject* BL_ShapeActionActuator::PySetFrame(PyObject* self, m_localtime=m_endframe; } else { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* setProperty */ @@ -766,12 +745,10 @@ PyObject* BL_ShapeActionActuator::PySetProperty(PyObject* self, m_propname = string; } else { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } /* getType */ @@ -793,7 +770,6 @@ PyObject* BL_ShapeActionActuator::PySetType(PyObject* self, short typeArg; if (!PyArg_ParseTuple(args, "h", &typeArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp index 53ac730d203..cb2521de9a4 100644 --- a/source/gameengine/Converter/KX_ConvertActuators.cpp +++ b/source/gameengine/Converter/KX_ConvertActuators.cpp @@ -540,9 +540,16 @@ void BL_ConvertActuators(char* maggiename, // does the 'original' for replication exists, and // is it in a non-active layer ? SCA_IObject* originalval = NULL; - if (editobact->ob && !(editobact->ob->lay & activeLayerBitInfo)) - originalval = converter->FindGameObject(editobact->ob); - + if (editobact->ob) + { + if (editobact->ob->lay & activeLayerBitInfo) + { + fprintf(stderr, "Warning, object \"%s\" from AddObject actuator \"%s\" is not in a hidden layer.\n", objectname.Ptr(), uniquename.Ptr()); + } + else { + originalval = converter->FindGameObject(editobact->ob); + } + } MT_Vector3 linvelvec ( KX_BLENDERTRUNC(editobact->linVelocity[0]), KX_BLENDERTRUNC(editobact->linVelocity[1]), KX_BLENDERTRUNC(editobact->linVelocity[2])); diff --git a/source/gameengine/Converter/KX_ConvertSensors.cpp b/source/gameengine/Converter/KX_ConvertSensors.cpp index 5e433bb821b..4806df36090 100644 --- a/source/gameengine/Converter/KX_ConvertSensors.cpp +++ b/source/gameengine/Converter/KX_ConvertSensors.cpp @@ -65,6 +65,7 @@ probably misplaced */ #include "SCA_JoystickSensor.h" #include "KX_NetworkMessageSensor.h" #include "SCA_ActuatorSensor.h" +#include "SCA_DelaySensor.h" #include "SCA_PropertySensor.h" @@ -281,6 +282,22 @@ void BL_ConvertSensors(struct Object* blenderobject, break; } + case SENS_DELAY: + { + // we can reuse the Always event manager for the delay sensor + SCA_EventManager* eventmgr = logicmgr->FindEventManager(SCA_EventManager::ALWAYS_EVENTMGR); + if (eventmgr) + { + bDelaySensor* delaysensor = (bDelaySensor*)sens->data; + gamesensor = new SCA_DelaySensor(eventmgr, + gameobj, + delaysensor->delay, + delaysensor->duration, + (delaysensor->flag & SENS_DELAY_REPEAT) != 0); + } + break; + } + case SENS_COLLISION: { SCA_EventManager* eventmgr = logicmgr->FindEventManager(SCA_EventManager::TOUCH_EVENTMGR); @@ -741,10 +758,24 @@ void BL_ConvertSensors(struct Object* blenderobject, for (int i=0;i<sens->totlinks;i++) { bController* linkedcont = (bController*) sens->links[i]; - SCA_IController* gamecont = converter->FindGameController(linkedcont); + if (linkedcont) { + SCA_IController* gamecont = converter->FindGameController(linkedcont); - if (gamecont) { - logicmgr->RegisterToSensor(gamecont,gamesensor); + if (gamecont) { + logicmgr->RegisterToSensor(gamecont,gamesensor); + } else { + printf( + "Warning, sensor \"%s\" could not find its controller" + "(link %d of %d)\n" + "\tthere has been an error converting the blender controller for the game engine," + "logic may be incorrect\n", sens->name, i+1, sens->totlinks); + } + } else { + printf( + "Warning, sensor \"%s\" has lost a link to a controller" + "(link %d of %d)\n" + "\tpossible causes are partially appended objects or an error reading the file," + "logic may be incorrect\n", sens->name, i+1, sens->totlinks); } } // done with gamesensor diff --git a/source/gameengine/Expressions/InputParser.cpp b/source/gameengine/Expressions/InputParser.cpp index 24033dd21a2..32a9de32e21 100644 --- a/source/gameengine/Expressions/InputParser.cpp +++ b/source/gameengine/Expressions/InputParser.cpp @@ -631,7 +631,8 @@ void CParser::SetContext(CValue* context) PyObject* CParserPyMake(PyObject* ignored,PyObject* args) { char* txt; - Py_Try(PyArg_ParseTuple(args,"s",&txt)); + if (!PyArg_ParseTuple(args,"s",&txt)) + return NULL; CParser parser; CExpression* expr = parser.ProcessText(txt); CValue* val = expr->Calculate(); @@ -641,7 +642,7 @@ PyObject* CParserPyMake(PyObject* ignored,PyObject* args) static PyMethodDef CParserMethods[] = { - { "calc", CParserPyMake , Py_NEWARGS}, + { "calc", CParserPyMake , METH_VARARGS}, { NULL,NULL} // Sentinel }; diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index bbf58a8a06e..9ffdbb1223c 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -43,7 +43,7 @@ PyObject* listvalue_buffer_item(PyObject* list,Py_ssize_t index) return ((CListValue*) list)->GetValue(index)->AddRef(); } - Py_Error(PyExc_IndexError, "Python ListIndex out of range"); + PyErr_SetString(PyExc_IndexError, "Python ListIndex out of range"); return NULL; } @@ -130,9 +130,10 @@ listvalue_buffer_concat(PyObject * self, PyObject * other) } } - if (error) - Py_Error(PyExc_SystemError, "Python Error: couldn't add one or more items to a list"); - + if (error) { + PyErr_SetString(PyExc_SystemError, "Python Error: couldn't add one or more items to a list"); + return NULL; + } } else { @@ -155,8 +156,8 @@ listvalue_buffer_concat(PyObject * self, PyObject * other) listval->Add(objval); } else { - Py_Error(PyExc_SystemError, "Python Error: couldn't add item to a list"); - // bad luck + PyErr_SetString(PyExc_SystemError, "Python Error: couldn't add item to a list"); + return NULL; } } } diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index aabcd6cb71d..8937f481922 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -94,7 +94,7 @@ PyObjectPlus::PyObjectPlus(PyTypeObject *T) // constructor * PyObjectPlus Methods -- Every class, even the abstract one should have a Methods ------------------------------*/ PyMethodDef PyObjectPlus::Methods[] = { - {"isA", (PyCFunction) sPy_isA, Py_NEWARGS}, + {"isA", (PyCFunction) sPy_isA, METH_VARARGS}, {NULL, NULL} /* Sentinel */ }; @@ -134,7 +134,8 @@ int PyObjectPlus::_setattr(const STR_String& attr, PyObject *value) ------------------------------*/ PyObject *PyObjectPlus::_repr(void) { - Py_Error(PyExc_SystemError, "Representation not overridden by object."); + PyErr_SetString(PyExc_SystemError, "Representation not overridden by object."); + return NULL; } /*------------------------------ @@ -164,11 +165,12 @@ bool PyObjectPlus::isA(const char *mytypename) // check typename of each parent PyObject *PyObjectPlus::Py_isA(PyObject *args) // Python wrapper for isA { char *mytypename; - Py_Try(PyArg_ParseTuple(args, "s", &mytypename)); + if (!PyArg_ParseTuple(args, "s", &mytypename)) + return NULL; if(isA(mytypename)) - {Py_INCREF(Py_True); return Py_True;} + Py_RETURN_TRUE; else - {Py_INCREF(Py_False); return Py_False;}; + Py_RETURN_FALSE; } #endif //NO_EXP_PYTHON_EMBEDDING diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 2bcb604dd23..f433a08faba 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -44,22 +44,7 @@ ------------------------------*/ // some basic python macros -#define Py_NEWARGS 1 #define Py_Return { Py_INCREF(Py_None); return Py_None;} -static inline PyObject* Py_Success(bool truth) -{ - if (truth) - { - Py_INCREF(Py_True); - return Py_True; - } - Py_INCREF(Py_False); - return Py_False; -} - -#define Py_Error(E, M) {PyErr_SetString(E, M); return NULL;} -#define Py_Try(F) {if (!(F)) return NULL;} -#define Py_Assert(A,E,M) {if (!(A)) {PyErr_SetString(E, M); return NULL;}} static inline void Py_Fatal(char *M) { //cout << M << endl; @@ -136,6 +121,13 @@ static inline void Py_Fatal(char *M) { }; \ static char method_name##_doc[]; \ +#define KX_PYMETHOD_DOC_VARARGS(class_name, method_name) \ + PyObject* Py##method_name(PyObject* self, PyObject* args); \ + static PyObject* sPy##method_name( PyObject* self, PyObject* args) { \ + return ((class_name*) self)->Py##method_name(self, args); \ + }; \ + static char method_name##_doc[]; \ + #define KX_PYMETHOD_DOC_O(class_name, method_name) \ PyObject* Py##method_name(PyObject* self, PyObject* value); \ static PyObject* sPy##method_name( PyObject* self, PyObject* value) { \ diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index b4694740679..7bcb45228db 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -158,15 +158,14 @@ PyParentObject CValue::Parents[] = { }; PyMethodDef CValue::Methods[] = { -// { "printHello", (PyCFunction) CValue::sPyPrintHello, Py_NEWARGS}, - { "getName", (PyCFunction) CValue::sPyGetName, Py_NEWARGS}, +// { "printHello", (PyCFunction) CValue::sPyPrintHello, METH_VARARGS}, + { "getName", (PyCFunction) CValue::sPyGetName, METH_NOARGS}, {NULL,NULL} //Sentinel }; -PyObject* CValue::PyGetName(PyObject* self,PyObject* args,PyObject* kwds) +PyObject* CValue::PyGetName(PyObject* self) { - PyObject* pyname = PyString_FromString(this->GetName()); - return pyname; + return PyString_FromString(this->GetName()); } /*#define CVALUE_DEBUG*/ @@ -662,7 +661,7 @@ CValue* CValue::FindIdentifier(const STR_String& identifiername) static PyMethodDef CValueMethods[] = { - //{ "new", CValue::PyMake , Py_NEWARGS}, + //{ "new", CValue::PyMake , METH_VARARGS}, { NULL,NULL} // Sentinel }; @@ -806,9 +805,8 @@ PyObject* CValue::ConvertKeysToPython( void ) PyObject* CValue::PyMake(PyObject* ignored,PyObject* args) { - //Py_Try(PyArg_ParseTuple(args,"s",&name)); - Py_INCREF(Py_None); - return Py_None;//new CValue(); + //if (!PyArg_ParseTuple(args,"s",&name)) return NULL; + Py_RETURN_NONE;//new CValue(); } */ diff --git a/source/gameengine/Expressions/Value.h b/source/gameengine/Expressions/Value.h index bcf231cf4f0..74fcdae5756 100644 --- a/source/gameengine/Expressions/Value.h +++ b/source/gameengine/Expressions/Value.h @@ -255,7 +255,7 @@ public: virtual PyObject* ConvertKeysToPython( void ); - KX_PYMETHOD(CValue,GetName); + KX_PYMETHOD_NOARGS(CValue,GetName); #else CValue(); diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp index 099cb8eebd0..44a488fa719 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp @@ -180,7 +180,6 @@ PyObject* SCA_ActuatorSensor::PySetActuator(PyObject* self, PyObject* args, PyOb char *actNameArg = NULL; if (!PyArg_ParseTuple(args, "s", &actNameArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.cpp b/source/gameengine/GameLogic/SCA_DelaySensor.cpp new file mode 100644 index 00000000000..4d05250e91c --- /dev/null +++ b/source/gameengine/GameLogic/SCA_DelaySensor.cpp @@ -0,0 +1,257 @@ +/** + * Delay trigger + * + * $Id$ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#ifdef WIN32 +// This warning tells us about truncation of __long__ stl-generated names. +// It can occasionally cause DevStudio to have internal compiler warnings. +#pragma warning( disable : 4786 ) +#endif + +#include "SCA_DelaySensor.h" +#include "SCA_LogicManager.h" +#include "SCA_EventManager.h" + +/* ------------------------------------------------------------------------- */ +/* Native functions */ +/* ------------------------------------------------------------------------- */ + +SCA_DelaySensor::SCA_DelaySensor(class SCA_EventManager* eventmgr, + SCA_IObject* gameobj, + int delay, + int duration, + bool repeat, + PyTypeObject* T) + : SCA_ISensor(gameobj,eventmgr, T), + m_delay(delay), + m_duration(duration), + m_repeat(repeat) +{ + Init(); +} + +void SCA_DelaySensor::Init() +{ + m_lastResult = false; + m_frameCount = -1; + m_reset = true; +} + +SCA_DelaySensor::~SCA_DelaySensor() +{ + /* intentionally empty */ +} + +CValue* SCA_DelaySensor::GetReplica() +{ + CValue* replica = new SCA_DelaySensor(*this); + // this will copy properties and so on... + CValue::AddDataToReplica(replica); + + return replica; +} + + + +bool SCA_DelaySensor::IsPositiveTrigger() +{ + return (m_invert ? !m_lastResult : m_lastResult); +} + +bool SCA_DelaySensor::Evaluate(CValue* event) +{ + bool trigger = false; + bool result; + + if (m_frameCount==-1) { + // this is needed to ensure ON trigger in case delay==0 + // and avoid spurious OFF trigger when duration==0 + m_lastResult = false; + m_frameCount = 0; + } + + if (m_frameCount<m_delay) { + m_frameCount++; + result = false; + } else if (m_duration > 0) { + if (m_frameCount < m_delay+m_duration) { + m_frameCount++; + result = true; + } else { + result = false; + if (m_repeat) + m_frameCount = -1; + } + } else { + result = true; + if (m_repeat) + m_frameCount = -1; + } + if ((m_reset && m_level) || result != m_lastResult) + trigger = true; + m_reset = false; + m_lastResult = result; + return trigger; +} + +/* ------------------------------------------------------------------------- */ +/* Python functions */ +/* ------------------------------------------------------------------------- */ + +/* Integration hooks ------------------------------------------------------- */ +PyTypeObject SCA_DelaySensor::Type = { + PyObject_HEAD_INIT(&PyType_Type) + 0, + "SCA_DelaySensor", + sizeof(SCA_DelaySensor), + 0, + PyDestructor, + 0, + __getattr, + __setattr, + 0, //&MyPyCompare, + __repr, + 0, //&cvalue_as_number, + 0, + 0, + 0, + 0 +}; + +PyParentObject SCA_DelaySensor::Parents[] = { + &SCA_DelaySensor::Type, + &SCA_ISensor::Type, + &SCA_ILogicBrick::Type, + &CValue::Type, + NULL +}; + +PyMethodDef SCA_DelaySensor::Methods[] = { + /* setProperty */ + {"setDelay", (PyCFunction) SCA_DelaySensor::sPySetDelay, METH_VARARGS, SetDelay_doc}, + {"setDuration", (PyCFunction) SCA_DelaySensor::sPySetDuration, METH_VARARGS, SetDuration_doc}, + {"setRepeat", (PyCFunction) SCA_DelaySensor::sPySetRepeat, METH_VARARGS, SetRepeat_doc}, + /* getProperty */ + {"getDelay", (PyCFunction) SCA_DelaySensor::sPyGetDelay, METH_NOARGS, GetDelay_doc}, + {"getDuration", (PyCFunction) SCA_DelaySensor::sPyGetDuration, METH_NOARGS, GetDuration_doc}, + {"getRepeat", (PyCFunction) SCA_DelaySensor::sPyGetRepeat, METH_NOARGS, GetRepeat_doc}, + {NULL,NULL} //Sentinel +}; + +PyObject* SCA_DelaySensor::_getattr(const STR_String& attr) { + _getattr_up(SCA_ISensor); +} + +char SCA_DelaySensor::SetDelay_doc[] = +"setDelay(delay)\n" +"\t- delay: length of the initial OFF period as number of frame\n" +"\t 0 for immediate trigger\n" +"\tSet the initial delay before the positive trigger\n"; +PyObject* SCA_DelaySensor::PySetDelay(PyObject* self, PyObject* args, PyObject* kwds) +{ + int delay; + + if(!PyArg_ParseTuple(args, "i", &delay)) { + return NULL; + } + if (delay < 0) { + PyErr_SetString(PyExc_ValueError, "Delay cannot be negative"); + return NULL; + } + m_delay = delay; + Py_Return; +} + +char SCA_DelaySensor::SetDuration_doc[] = +"setDuration(duration)\n" +"\t- duration: length of the ON period in number of frame after the initial off period\n" +"\t 0 for no ON period\n" +"\tSet the duration of the ON pulse after initial delay.\n" +"\tIf > 0, a negative trigger is fired at the end of the ON pulse.\n"; +PyObject* SCA_DelaySensor::PySetDuration(PyObject* self, PyObject* args, PyObject* kwds) +{ + int duration; + + if(!PyArg_ParseTuple(args, "i", &duration)) { + return NULL; + } + if (duration < 0) { + PyErr_SetString(PyExc_ValueError, "Duration cannot be negative"); + return NULL; + } + m_duration = duration; + Py_Return; +} + +char SCA_DelaySensor::SetRepeat_doc[] = +"setRepeat(repeat)\n" +"\t- repeat: 1 if the initial OFF-ON cycle should be repeated indefinately\n" +"\t 0 if the initial OFF-ON cycle should run only once\n" +"\tSet the sensor repeat mode\n"; +PyObject* SCA_DelaySensor::PySetRepeat(PyObject* self, PyObject* args, PyObject* kwds) +{ + int repeat; + + if(!PyArg_ParseTuple(args, "i", &repeat)) { + return NULL; + } + m_repeat = (repeat != 0); + Py_Return; +} + +char SCA_DelaySensor::GetDelay_doc[] = +"getDelay()\n" +"\tReturn the delay parameter value\n"; +PyObject* SCA_DelaySensor::PyGetDelay(PyObject* self) +{ + return PyInt_FromLong(m_delay); +} + +char SCA_DelaySensor::GetDuration_doc[] = +"getDuration()\n" +"\tReturn the duration parameter value\n"; +PyObject* SCA_DelaySensor::PyGetDuration(PyObject* self) +{ + return PyInt_FromLong(m_duration); +} + +char SCA_DelaySensor::GetRepeat_doc[] = +"getRepeat()\n" +"\tReturn the repeat parameter value\n"; +PyObject* SCA_DelaySensor::PyGetRepeat(PyObject* self) +{ + return BoolToPyArg(m_repeat); +} + +/* eof */ diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.h b/source/gameengine/GameLogic/SCA_DelaySensor.h new file mode 100644 index 00000000000..a997fabe3cd --- /dev/null +++ b/source/gameengine/GameLogic/SCA_DelaySensor.h @@ -0,0 +1,77 @@ +/** + * SCA_DelaySensor.h + * + * $Id$ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef __KX_DELAYSENSOR +#define __KX_DELAYSENSOR +#include "SCA_ISensor.h" + +class SCA_DelaySensor : public SCA_ISensor +{ + Py_Header; + bool m_lastResult; + bool m_repeat; + int m_delay; + int m_duration; + int m_frameCount; + +public: + SCA_DelaySensor(class SCA_EventManager* eventmgr, + SCA_IObject* gameobj, + int delay, + int duration, + bool repeat, + PyTypeObject* T =&Type); + virtual ~SCA_DelaySensor(); + virtual CValue* GetReplica(); + virtual bool Evaluate(CValue* event); + virtual bool IsPositiveTrigger(); + virtual void Init(); + + + /* --------------------------------------------------------------------- */ + /* Python interface ---------------------------------------------------- */ + /* --------------------------------------------------------------------- */ + + virtual PyObject* _getattr(const STR_String& attr); + + /* setProperty */ + KX_PYMETHOD_DOC(SCA_DelaySensor,SetDelay); + KX_PYMETHOD_DOC(SCA_DelaySensor,SetDuration); + KX_PYMETHOD_DOC(SCA_DelaySensor,SetRepeat); + /* getProperty */ + KX_PYMETHOD_DOC_NOARGS(SCA_DelaySensor,GetDelay); + KX_PYMETHOD_DOC_NOARGS(SCA_DelaySensor,GetDuration); + KX_PYMETHOD_DOC_NOARGS(SCA_DelaySensor,GetRepeat); + +}; + +#endif //__KX_ALWAYSSENSOR + diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index e73358bc1e8..f5512664d8f 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -271,8 +271,7 @@ PyObject* SCA_ILogicBrick::PyGetOwner(PyObject* self) } printf("ERROR: Python scriptblock without owner\n"); - Py_INCREF(Py_None); - return Py_None;//Int_FromLong(IsPositiveTrigger()); + Py_RETURN_NONE; //Int_FromLong(IsPositiveTrigger()); } diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp index 2dc49924062..f99b9b789d7 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.cpp +++ b/source/gameengine/GameLogic/SCA_ISensor.cpp @@ -189,6 +189,8 @@ PyMethodDef SCA_ISensor::Methods[] = { METH_NOARGS, GetLevel_doc}, {"setLevel", (PyCFunction) SCA_ISensor::sPySetLevel, METH_VARARGS, SetLevel_doc}, + {"reset", (PyCFunction) SCA_ISensor::sPyReset, + METH_NOARGS, Reset_doc}, {NULL,NULL} //Sentinel }; @@ -390,4 +392,15 @@ PyObject* SCA_ISensor::PySetUseNegPulseMode(PyObject* self, PyObject* args, PyOb Py_Return; } +char SCA_ISensor::Reset_doc[] = +"reset()\n" +"\tReset sensor internal state, effect depends on the type of sensor and settings.\n" +"\tThe sensor is put in its initial state as if it was just activated.\n"; +PyObject* SCA_ISensor::PyReset(PyObject* self) +{ + Init(); + Py_Return; +} + + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_ISensor.h b/source/gameengine/GameLogic/SCA_ISensor.h index d5dabbce3ee..fc8f0bd0011 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.h +++ b/source/gameengine/GameLogic/SCA_ISensor.h @@ -148,6 +148,7 @@ public: KX_PYMETHOD_DOC(SCA_ISensor,SetInvert); KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,GetLevel); KX_PYMETHOD_DOC(SCA_ISensor,SetLevel); + KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,Reset); }; diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index cd1b029fc34..f9081c90288 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -248,7 +248,7 @@ void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr) { // didn't compile, so instead of compile, complain // something is wrong, tell the user what went wrong - printf("PYTHON SCRIPT ERROR:\n"); + printf("Python compile error from controller \"%s\": \n", GetName().Ptr()); //PyRun_SimpleString(m_scriptText.Ptr()); PyErr_Print(); return; @@ -285,7 +285,7 @@ void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr) else { // something is wrong, tell the user what went wrong - printf("PYTHON SCRIPT ERROR:\n"); + printf("Python script error from controller \"%s\": \n", GetName().Ptr()); PyErr_Print(); //PyRun_SimpleString(m_scriptText.Ptr()); } diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp index f6f9a29b0e2..57d0fe4140f 100644 --- a/source/gameengine/Ketsji/BL_Shader.cpp +++ b/source/gameengine/Ketsji/BL_Shader.cpp @@ -846,8 +846,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, getFragmentProg ,"getFragmentProg( )" ) KX_PYMETHODDEF_DOC( BL_Shader, validate, "validate()") { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } if(mShader==0) { PyErr_Format(PyExc_TypeError, "invalid shader object"); @@ -877,8 +876,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, validate, "validate()") KX_PYMETHODDEF_DOC( BL_Shader, setSampler, "setSampler(name, index)" ) { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char *uniform=""; @@ -900,7 +898,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setSampler, "setSampler(name, index)" ) //else // spit("Invalid texture sample index: " << index); } - Py_Return; + Py_RETURN_NONE; } return NULL; } @@ -919,8 +917,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setNumberOfPasses, "setNumberOfPasses( max-pass ) KX_PYMETHODDEF_DOC( BL_Shader, setUniform1f, "setUniform1f(name, fx)" ) { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char *uniform=""; @@ -945,8 +942,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform1f, "setUniform1f(name, fx)" ) KX_PYMETHODDEF_DOC( BL_Shader, setUniform2f , "setUniform2f(name, fx, fy)") { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char *uniform=""; float array[2]={ 0,0 }; @@ -970,8 +966,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform2f , "setUniform2f(name, fx, fy)") KX_PYMETHODDEF_DOC( BL_Shader, setUniform3f, "setUniform3f(name, fx,fy,fz) ") { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char *uniform=""; float array[3]={0,0,0}; @@ -996,8 +991,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform3f, "setUniform3f(name, fx,fy,fz) ") KX_PYMETHODDEF_DOC( BL_Shader, setUniform4f, "setUniform4f(name, fx,fy,fz, fw) ") { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char *uniform=""; float array[4]={0,0,0,0}; @@ -1021,8 +1015,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform4f, "setUniform4f(name, fx,fy,fz, fw) " KX_PYMETHODDEF_DOC( BL_Shader, setUniform1i, "setUniform1i(name, ix)" ) { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char *uniform=""; int value=0; @@ -1046,8 +1039,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform1i, "setUniform1i(name, ix)" ) KX_PYMETHODDEF_DOC( BL_Shader, setUniform2i , "setUniform2i(name, ix, iy)") { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char *uniform=""; int array[2]={ 0,0 }; @@ -1071,8 +1063,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform2i , "setUniform2i(name, ix, iy)") KX_PYMETHODDEF_DOC( BL_Shader, setUniform3i, "setUniform3i(name, ix,iy,iz) ") { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char *uniform=""; @@ -1096,8 +1087,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform3i, "setUniform3i(name, ix,iy,iz) ") KX_PYMETHODDEF_DOC( BL_Shader, setUniform4i, "setUniform4i(name, ix,iy,iz, iw) ") { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char *uniform=""; int array[4]={0,0,0, 0}; @@ -1120,8 +1110,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform4i, "setUniform4i(name, ix,iy,iz, iw) " KX_PYMETHODDEF_DOC( BL_Shader, setUniformfv , "setUniformfv( float (list2 or list3 or list4) )") { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char*uniform = ""; PyObject *listPtr =0; @@ -1190,8 +1179,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformfv , "setUniformfv( float (list2 or lis KX_PYMETHODDEF_DOC( BL_Shader, setUniformiv, "setUniformiv( int (list2 or list3 or list4) )") { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char*uniform = ""; PyObject *listPtr =0; @@ -1263,8 +1251,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformMatrix4, "setUniformMatrix4(uniform-name, mat-4x4, transpose(row-major=true, col-major=false)" ) { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } float matr[16] = { @@ -1306,8 +1293,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformMatrix3, "setUniformMatrix3(uniform-name, list[3x3], transpose(row-major=true, col-major=false)" ) { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } float matr[9] = { @@ -1347,8 +1333,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformMatrix3, KX_PYMETHODDEF_DOC( BL_Shader, setAttrib, "setAttrib(enum)" ) { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } int attr=0; if(PyArg_ParseTuple(args, "i", &attr )) { @@ -1368,8 +1353,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setAttrib, "setAttrib(enum)" ) KX_PYMETHODDEF_DOC( BL_Shader, setUniformDef, "setUniformDef(name, enum)" ) { if(mError) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } char *uniform=""; diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 0a97b6f0a2f..42b909927fd 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -395,8 +395,8 @@ PyParentObject KX_CameraActuator::Parents[] = { }; PyMethodDef KX_CameraActuator::Methods[] = { - {"setObject",(PyCFunction) KX_CameraActuator::sPySetObject, METH_VARARGS, SetObject_doc}, - {"getObject",(PyCFunction) KX_CameraActuator::sPyGetObject, METH_NOARGS, GetObject_doc}, + {"setObject",(PyCFunction) KX_CameraActuator::sPySetObject, METH_O, SetObject_doc}, + {"getObject",(PyCFunction) KX_CameraActuator::sPyGetObject, METH_VARARGS, GetObject_doc}, {"setMin" ,(PyCFunction) KX_CameraActuator::sPySetMin, METH_VARARGS, SetMin_doc}, {"getMin" ,(PyCFunction) KX_CameraActuator::sPyGetMin, METH_NOARGS, GetMin_doc}, {"setMax" ,(PyCFunction) KX_CameraActuator::sPySetMax, METH_VARARGS, SetMax_doc}, @@ -413,50 +413,43 @@ PyObject* KX_CameraActuator::_getattr(const STR_String& attr) { } /* get obj ---------------------------------------------------------- */ char KX_CameraActuator::GetObject_doc[] = -"getObject\n" +"getObject(name_only = 1)\n" +"name_only - optional arg, when true will return the KX_GameObject rather then its name\n" "\tReturns the object this sensor reacts to.\n"; -PyObject* KX_CameraActuator::PyGetObject(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_CameraActuator::PyGetObject(PyObject* self, PyObject* args) { - return PyString_FromString(m_ob->GetName()); + int ret_name_only = 1; + if (!PyArg_ParseTuple(args, "|i", &ret_name_only)) + return NULL; + + if (!m_ob) + Py_RETURN_NONE; + + if (ret_name_only) + return PyString_FromString(m_ob->GetName()); + else + return m_ob->AddRef(); } /* set obj ---------------------------------------------------------- */ char KX_CameraActuator::SetObject_doc[] = -"setObject\n" +"setObject(object)\n" +"\t- object: KX_GameObject, string or None\n" "\tSets the object this sensor reacts to.\n"; -PyObject* KX_CameraActuator::PySetObject(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_CameraActuator::PySetObject(PyObject* self, PyObject* value) { - - PyObject* gameobj; - if (PyArg_ParseTuple(args, "O!", &KX_GameObject::Type, &gameobj)) - { - if (m_ob) - m_ob->UnregisterActuator(this); - m_ob = (SCA_IObject*)gameobj; - if (m_ob) - m_ob->RegisterActuator(this); - Py_Return; - } - PyErr_Clear(); + KX_GameObject *gameobj; - char* objectname; - if (PyArg_ParseTuple(args, "s", &objectname)) - { - SCA_IObject *object = (SCA_IObject*)SCA_ILogicBrick::m_sCurrentLogicManager->GetGameObjectByName(STR_String(objectname)); - if(object) - { - if (m_ob != NULL) - m_ob->UnregisterActuator(this); - m_ob = object; - m_ob->RegisterActuator(this); - Py_Return; - } - } + if (!ConvertPythonToGameObject(value, &gameobj, true)) + return NULL; // ConvertPythonToGameObject sets the error - return NULL; + if (m_ob != NULL) + m_ob->UnregisterActuator(this); + + m_ob = (SCA_IObject*)gameobj; + if (m_ob) + m_ob->RegisterActuator(this); + + Py_RETURN_NONE; } /* get min ---------------------------------------------------------- */ diff --git a/source/gameengine/Ketsji/KX_CameraActuator.h b/source/gameengine/Ketsji/KX_CameraActuator.h index 488b36922b0..d53d12b3b82 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.h +++ b/source/gameengine/Ketsji/KX_CameraActuator.h @@ -123,9 +123,9 @@ private : virtual PyObject* _getattr(const STR_String& attr); /* set object to look at */ - KX_PYMETHOD_DOC(KX_CameraActuator,SetObject); + KX_PYMETHOD_DOC_O(KX_CameraActuator,SetObject); /* get current object */ - KX_PYMETHOD_DOC(KX_CameraActuator,GetObject); + KX_PYMETHOD_DOC_VARARGS(KX_CameraActuator,GetObject); KX_PYMETHOD_DOC(KX_CameraActuator,SetMin); KX_PYMETHOD_DOC(KX_CameraActuator,GetMin); KX_PYMETHOD_DOC(KX_CameraActuator,SetMax); diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp index 2401d69d3a3..e00ec68ad33 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp @@ -476,7 +476,6 @@ PyObject* KX_ConstraintActuator::PySetDamp(PyObject* self, PyObject* kwds) { int dampArg; if(!PyArg_ParseTuple(args, "i", &dampArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -504,7 +503,6 @@ PyObject* KX_ConstraintActuator::PySetRotDamp(PyObject* self, PyObject* kwds) { int dampArg; if(!PyArg_ParseTuple(args, "i", &dampArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -534,7 +532,6 @@ PyObject* KX_ConstraintActuator::PySetDirection(PyObject* self, MT_Vector3 dir; if(!PyArg_ParseTuple(args, "(fff)", &x, &y, &z)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } dir[0] = x; @@ -577,7 +574,6 @@ PyObject* KX_ConstraintActuator::PySetOption(PyObject* self, PyObject* kwds) { int option; if(!PyArg_ParseTuple(args, "i", &option)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -605,7 +601,6 @@ PyObject* KX_ConstraintActuator::PySetTime(PyObject* self, PyObject* kwds) { int t; if(!PyArg_ParseTuple(args, "i", &t)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -634,7 +629,6 @@ PyObject* KX_ConstraintActuator::PySetProperty(PyObject* self, PyObject* kwds) { char *property; if (!PyArg_ParseTuple(args, "s", &property)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } if (property == NULL) { @@ -670,7 +664,6 @@ PyObject* KX_ConstraintActuator::PySetMin(PyObject* self, PyObject* kwds) { float minArg; if(!PyArg_ParseTuple(args, "f", &minArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -716,7 +709,6 @@ PyObject* KX_ConstraintActuator::PySetMax(PyObject* self, PyObject* kwds){ float maxArg; if(!PyArg_ParseTuple(args, "f", &maxArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -770,7 +762,6 @@ PyObject* KX_ConstraintActuator::PySetLimit(PyObject* self, PyObject* kwds) { int locrotArg; if(!PyArg_ParseTuple(args, "i", &locrotArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp index 987125ca9ba..b54da6eb753 100644 --- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp @@ -53,8 +53,7 @@ PyObject* KX_ConstraintWrapper::PyTestMethod(PyObject* self, PyObject* kwds) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } PyObject* KX_ConstraintWrapper::PyGetConstraintId(PyObject* self, diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 989cdabd491..700cc00e996 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -942,7 +942,7 @@ PyObject* KX_GameObject::PyEndObject(PyObject* self) KX_Scene *scene = PHY_GetActiveScene(); scene->DelayedRemoveObject(this); - return Py_None; + Py_RETURN_NONE; } @@ -1551,9 +1551,9 @@ KX_PYMETHODDEF_DOC(KX_GameObject, getDistanceTo, PyErr_Clear(); PyObject *pyother; - if (PyArg_ParseTuple(args, "O!", &KX_GameObject::Type, &pyother)) + KX_GameObject *other; + if (PyArg_ParseTuple(args, "O", &pyother) && ConvertPythonToGameObject(pyother, &other, false)) { - KX_GameObject *other = static_cast<KX_GameObject*>(pyother); return PyFloat_FromDouble(NodeGetWorldPosition().distance(other->NodeGetWorldPosition())); } @@ -1574,11 +1574,12 @@ KX_PYMETHODDEF_DOC(KX_GameObject, getVectTo, if (!PyVecArgTo(args, toPoint)) { PyErr_Clear(); - if (PyArg_ParseTuple(args, "O!", &KX_GameObject::Type, &pyother)) + + KX_GameObject *other; + if (PyArg_ParseTuple(args, "O", &pyother) && ConvertPythonToGameObject(pyother, &other, false)) { - KX_GameObject *other = static_cast<KX_GameObject*>(pyother); toPoint = other->NodeGetWorldPosition(); - }else + } else { PyErr_SetString(PyExc_TypeError, "Expected a 3D Vector or GameObject type"); return NULL; @@ -1648,12 +1649,15 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCastTo, { KX_GameObject *other; PyErr_Clear(); - if (!PyType_IsSubtype(pyarg->ob_type, &KX_GameObject::Type)) { + + if (ConvertPythonToGameObject(pyarg, &other, false)) + { + toPoint = other->NodeGetWorldPosition(); + } else + { PyErr_SetString(PyExc_TypeError, "the first argument to rayCastTo must be a vector or a KX_GameObject"); return NULL; } - other = static_cast<KX_GameObject*>(pyarg); - toPoint = other->NodeGetWorldPosition(); } MT_Point3 fromPoint = NodeGetWorldPosition(); if (dist != 0.0f) @@ -1712,12 +1716,15 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast, if (!PyVecTo(pyto, toPoint)) { PyErr_Clear(); - if (!PyType_IsSubtype(pyto->ob_type, &KX_GameObject::Type)) { + + if (ConvertPythonToGameObject(pyto, &other, false)) + { + toPoint = other->NodeGetWorldPosition(); + } else + { PyErr_SetString(PyExc_TypeError, "the first argument to rayCast must be a vector or a KX_GameObject"); return NULL; } - other = static_cast<KX_GameObject*>(pyto); - toPoint = other->NodeGetWorldPosition(); } if (!pyfrom || pyfrom == Py_None) { @@ -1726,12 +1733,15 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast, else if (!PyVecTo(pyfrom, fromPoint)) { PyErr_Clear(); - if (!PyType_IsSubtype(pyfrom->ob_type, &KX_GameObject::Type)) { + + if (ConvertPythonToGameObject(pyfrom, &other, false)) + { + fromPoint = other->NodeGetWorldPosition(); + } else + { PyErr_SetString(PyExc_TypeError, "the second optional argument to rayCast must be a vector or a KX_GameObject"); return NULL; } - other = static_cast<KX_GameObject*>(pyfrom); - fromPoint = other->NodeGetWorldPosition(); } if (dist != 0.0f) { @@ -1798,3 +1808,49 @@ void KX_GameObject::Relink(GEN_Map<GEN_HashedPtr, void*> *map_parameter) } } +bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok) +{ + if (value==NULL) { + PyErr_SetString(PyExc_TypeError, "Error in ConvertPythonToGameObject, python pointer NULL, should never happen"); + *object = NULL; + return false; + } + + if (value==Py_None) { + *object = NULL; + + if (py_none_ok) { + return true; + } else { + PyErr_SetString(PyExc_TypeError, "Expected KX_GameObject or a string for a name of a KX_GameObject, None is invalid"); + return false; + } + return (py_none_ok ? true : false); + } + + if (PyString_Check(value)) { + *object = (KX_GameObject *)SCA_ILogicBrick::m_sCurrentLogicManager->GetGameObjectByName(STR_String( PyString_AsString(value) )); + + if (*object) { + return true; + } else { + PyErr_SetString(PyExc_ValueError, "Requested name did not match any KX_GameObject"); + return false; + } + } + + if (PyObject_TypeCheck(value, &KX_GameObject::Type)) { + *object = static_cast<KX_GameObject*>(value); + return true; + } + + *object = NULL; + + if (py_none_ok) { + PyErr_SetString(PyExc_TypeError, "Expect a KX_GameObject, a string or None"); + } else { + PyErr_SetString(PyExc_TypeError, "Expect a KX_GameObject or a string"); + } + + return false; +} diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 4e435e9ddf4..a7ac2d75a93 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -48,6 +48,7 @@ #include "KX_KetsjiEngine.h" /* for m_anim_framerate */ #include "KX_IPhysicsController.h" /* for suspend/resume */ #include "DNA_object_types.h" +#include "SCA_LogicManager.h" /* for ConvertPythonToGameObject to search object names */ #define KX_OB_DYNAMIC 1 @@ -775,5 +776,8 @@ private : }; +/* utility conversion function */ +bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok); + #endif //__KX_GAMEOBJECT diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp index af3add8a323..a203ea6a6ff 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.cpp +++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp @@ -480,7 +480,6 @@ PyObject* KX_IpoActuator::PySet(PyObject* self, int startFrame, stopFrame; if(!PyArg_ParseTuple(args, "siii", &mode, &startFrame, &stopFrame, &forceToggle)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } modenum = string2mode(mode); @@ -516,7 +515,6 @@ PyObject* KX_IpoActuator::PySetProperty(PyObject* self, /* args: property */ char *propertyName; if(!PyArg_ParseTuple(args, "s", &propertyName)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -535,7 +533,6 @@ PyObject* KX_IpoActuator::PySetStart(PyObject* self, PyObject* kwds) { float startArg; if(!PyArg_ParseTuple(args, "f", &startArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -561,7 +558,6 @@ PyObject* KX_IpoActuator::PySetEnd(PyObject* self, PyObject* kwds) { float endArg; if(!PyArg_ParseTuple(args, "f", &endArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -588,7 +584,6 @@ PyObject* KX_IpoActuator::PySetIpoAsForce(PyObject* self, int boolArg; if (!PyArg_ParseTuple(args, "i", &boolArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -617,7 +612,6 @@ PyObject* KX_IpoActuator::PySetIpoAdd(PyObject* self, int boolArg; if (!PyArg_ParseTuple(args, "i", &boolArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -646,7 +640,6 @@ PyObject* KX_IpoActuator::PySetType(PyObject* self, int typeArg; if (!PyArg_ParseTuple(args, "i", &typeArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } @@ -678,7 +671,6 @@ PyObject* KX_IpoActuator::PySetForceIpoActsLocal(PyObject* self, int boolArg; if (!PyArg_ParseTuple(args, "i", &boolArg)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } diff --git a/source/gameengine/Ketsji/KX_MaterialIpoController.cpp b/source/gameengine/Ketsji/KX_MaterialIpoController.cpp index 2ce5d469380..85d514bd22f 100644 --- a/source/gameengine/Ketsji/KX_MaterialIpoController.cpp +++ b/source/gameengine/Ketsji/KX_MaterialIpoController.cpp @@ -3,6 +3,8 @@ #include "KX_ScalarInterpolator.h" #include "KX_GameObject.h" +#include "BLO_sys_types.h" // for intptr_t support + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -76,10 +78,10 @@ SG_Controller* KX_MaterialIpoController::GetReplica(class SG_Node* destnode) iporeplica->AddInterpolator(copyipo); MT_Scalar* scaal = ((KX_ScalarInterpolator*)*i)->GetTarget(); - long orgbase = (long)this; - long orgloc = (long)scaal; - long offset = orgloc-orgbase; - long newaddrbase = (long)iporeplica + offset; + intptr_t orgbase = (intptr_t)this; + intptr_t orgloc = (intptr_t)scaal; + intptr_t offset = orgloc-orgbase; + intptr_t newaddrbase = (intptr_t)iporeplica + offset; MT_Scalar* blaptr = (MT_Scalar*) newaddrbase; copyipo->SetNewTarget((MT_Scalar*)blaptr); } diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index c7a251751cd..a0ac9cfd4ff 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -238,5 +238,5 @@ KX_PYMETHODDEF_DOC(KX_MeshProxy, reinstancePhysicsMesh, "Reinstance the physics mesh.") { //this needs to be reviewed, it is dependend on Sumo/Solid. Who is using this ? - return Py_None;//Py_Success(KX_ReInstanceShapeFromMesh(m_meshobj)); + Py_RETURN_NONE;//(KX_ReInstanceShapeFromMesh(m_meshobj)) ? Py_RETURN_TRUE : Py_RETURN_FALSE; } diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.cpp b/source/gameengine/Ketsji/KX_ObjectActuator.cpp index 5cd4d089c14..98e73d4f0d7 100644 --- a/source/gameengine/Ketsji/KX_ObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_ObjectActuator.cpp @@ -360,7 +360,6 @@ PyObject* KX_ObjectActuator::PySetForce(PyObject* self, int bToggle = 0; if (!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_force.setValue(vecArg); @@ -390,7 +389,6 @@ PyObject* KX_ObjectActuator::PySetTorque(PyObject* self, int bToggle = 0; if (!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_torque.setValue(vecArg); @@ -420,7 +418,6 @@ PyObject* KX_ObjectActuator::PySetDLoc(PyObject* self, int bToggle = 0; if(!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_dloc.setValue(vecArg); @@ -450,7 +447,6 @@ PyObject* KX_ObjectActuator::PySetDRot(PyObject* self, int bToggle = 0; if (!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_drot.setValue(vecArg); @@ -479,7 +475,6 @@ PyObject* KX_ObjectActuator::PySetLinearVelocity(PyObject* self, int bToggle = 0; if (!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_linear_velocity.setValue(vecArg); @@ -508,7 +503,6 @@ PyObject* KX_ObjectActuator::PySetAngularVelocity(PyObject* self, int bToggle = 0; if (!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_angular_velocity.setValue(vecArg); @@ -523,7 +517,6 @@ PyObject* KX_ObjectActuator::PySetDamping(PyObject* self, PyObject* kwds) { int damping = 0; if (!PyArg_ParseTuple(args, "i", &damping) || damping < 0 || damping > 1000) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_damping = damping; @@ -553,7 +546,6 @@ PyObject* KX_ObjectActuator::PySetForceLimitX(PyObject* self, float vecArg[2]; int bToggle = 0; if(!PyArg_ParseTuple(args, "ffi", &vecArg[0], &vecArg[1], &bToggle)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_drot[0] = vecArg[0]; @@ -581,7 +573,6 @@ PyObject* KX_ObjectActuator::PySetForceLimitY(PyObject* self, float vecArg[2]; int bToggle = 0; if(!PyArg_ParseTuple(args, "ffi", &vecArg[0], &vecArg[1], &bToggle)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_drot[1] = vecArg[0]; @@ -609,7 +600,6 @@ PyObject* KX_ObjectActuator::PySetForceLimitZ(PyObject* self, float vecArg[2]; int bToggle = 0; if(!PyArg_ParseTuple(args, "ffi", &vecArg[0], &vecArg[1], &bToggle)) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_drot[2] = vecArg[0]; @@ -636,7 +626,6 @@ PyObject* KX_ObjectActuator::PySetPID(PyObject* self, { float vecArg[3]; if (!PyArg_ParseTuple(args, "fff", &vecArg[0], &vecArg[1], &vecArg[2])) { - PyErr_SetString(PyExc_TypeError, "Invalid arguments"); return NULL; } m_torque.setValue(vecArg); diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index fd1b56838e2..344e0fccc35 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -164,7 +164,7 @@ PyParentObject KX_ParentActuator::Parents[] = { }; PyMethodDef KX_ParentActuator::Methods[] = { - {"setObject", (PyCFunction) KX_ParentActuator::sPySetObject, METH_VARARGS, SetObject_doc}, + {"setObject", (PyCFunction) KX_ParentActuator::sPySetObject, METH_O, SetObject_doc}, {"getObject", (PyCFunction) KX_ParentActuator::sPyGetObject, METH_VARARGS, GetObject_doc}, {NULL,NULL} //Sentinel }; @@ -176,44 +176,44 @@ PyObject* KX_ParentActuator::_getattr(const STR_String& attr) { /* 1. setObject */ char KX_ParentActuator::SetObject_doc[] = "setObject(object)\n" -"\tSet the object to set as parent.\n" -"\tCan be an object name or an object\n"; -PyObject* KX_ParentActuator::PySetObject(PyObject* self, PyObject* args, PyObject* kwds) { - PyObject* gameobj; - if (PyArg_ParseTuple(args, "O!", &KX_GameObject::Type, &gameobj)) - { - if (m_ob != NULL) - m_ob->UnregisterActuator(this); - m_ob = (SCA_IObject*)gameobj; - if (m_ob) - m_ob->RegisterActuator(this); - Py_Return; - } - PyErr_Clear(); +"\t- object: KX_GameObject, string or None\n" +"\tSet the object to set as parent.\n"; +PyObject* KX_ParentActuator::PySetObject(PyObject* self, PyObject* value) { + KX_GameObject *gameobj; - char* objectname; - if (PyArg_ParseTuple(args, "s", &objectname)) - { - SCA_IObject *object = (SCA_IObject*)SCA_ILogicBrick::m_sCurrentLogicManager->GetGameObjectByName(STR_String(objectname)); - if(object) - { - if (m_ob != NULL) - m_ob->UnregisterActuator(this); - m_ob = object; - m_ob->RegisterActuator(this); - Py_Return; - } - } + if (!ConvertPythonToGameObject(value, &gameobj, true)) + return NULL; // ConvertPythonToGameObject sets the error + + if (m_ob != NULL) + m_ob->UnregisterActuator(this); + + m_ob = (SCA_IObject*)gameobj; + if (m_ob) + m_ob->RegisterActuator(this); - return NULL; + Py_RETURN_NONE; } /* 2. getObject */ -char KX_ParentActuator::GetObject_doc[] = -"getObject()\n" + +/* get obj ---------------------------------------------------------- */ +char KX_ParentActuator::GetObject_doc[] = +"getObject(name_only = 1)\n" +"name_only - optional arg, when true will return the KX_GameObject rather then its name\n" "\tReturns the object that is set to.\n"; -PyObject* KX_ParentActuator::PyGetObject(PyObject* self, PyObject* args, PyObject* kwds) { - return PyString_FromString(m_ob->GetName()); -} +PyObject* KX_ParentActuator::PyGetObject(PyObject* self, PyObject* args) +{ + int ret_name_only = 1; + if (!PyArg_ParseTuple(args, "|i", &ret_name_only)) + return NULL; + + if (!m_ob) + Py_RETURN_NONE; + if (ret_name_only) + return PyString_FromString(m_ob->GetName()); + else + return m_ob->AddRef(); +} + /* eof */ diff --git a/source/gameengine/Ketsji/KX_ParentActuator.h b/source/gameengine/Ketsji/KX_ParentActuator.h index 93b07cd424b..e2b30ba2d0f 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.h +++ b/source/gameengine/Ketsji/KX_ParentActuator.h @@ -79,9 +79,9 @@ class KX_ParentActuator : public SCA_IActuator virtual PyObject* _getattr(const STR_String& attr); /* 1. setObject */ - KX_PYMETHOD_DOC(KX_ParentActuator,SetObject); + KX_PYMETHOD_DOC_O(KX_ParentActuator,SetObject); /* 2. getObject */ - KX_PYMETHOD_DOC(KX_ParentActuator,GetObject); + KX_PYMETHOD_DOC_VARARGS(KX_ParentActuator,GetObject); }; /* end of class KX_ParentActuator : public SCA_PropertyActuator */ diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp index 2df4c6a9980..9291199d859 100644 --- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp +++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp @@ -61,7 +61,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetPosition(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -78,7 +78,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetLinearVelocity(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } PyObject* KX_PhysicsObjectWrapper::PySetAngularVelocity(PyObject* self, @@ -94,7 +94,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetAngularVelocity(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } PyObject* KX_PhysicsObjectWrapper::PySetActive(PyObject* self, @@ -109,7 +109,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetActive(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp index c01d6a632a3..26243c7dba1 100644 --- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp +++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp @@ -91,7 +91,7 @@ static PyObject* gPySetGravity(PyObject* self, return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } static PyObject* gPySetDebugMode(PyObject* self, @@ -112,7 +112,7 @@ static PyObject* gPySetDebugMode(PyObject* self, return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -132,7 +132,7 @@ static PyObject* gPySetNumTimeSubSteps(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -151,7 +151,7 @@ static PyObject* gPySetNumIterations(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -171,7 +171,7 @@ static PyObject* gPySetDeactivationTime(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -190,7 +190,7 @@ static PyObject* gPySetDeactivationLinearTreshold(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -209,7 +209,7 @@ static PyObject* gPySetDeactivationAngularTreshold(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } static PyObject* gPySetContactBreakingTreshold(PyObject* self, @@ -227,7 +227,7 @@ static PyObject* gPySetContactBreakingTreshold(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -246,7 +246,7 @@ static PyObject* gPySetCcdMode(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } static PyObject* gPySetSorConstant(PyObject* self, @@ -264,7 +264,7 @@ static PyObject* gPySetSorConstant(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } static PyObject* gPySetSolverTau(PyObject* self, @@ -282,7 +282,7 @@ static PyObject* gPySetSolverTau(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -301,7 +301,7 @@ static PyObject* gPySetSolverDamping(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } static PyObject* gPySetLinearAirDamping(PyObject* self, @@ -319,7 +319,7 @@ static PyObject* gPySetLinearAirDamping(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -338,7 +338,7 @@ static PyObject* gPySetUseEpa(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } static PyObject* gPySetSolverType(PyObject* self, PyObject* args, @@ -355,7 +355,7 @@ static PyObject* gPySetSolverType(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -388,7 +388,7 @@ static PyObject* gPyGetVehicleConstraint(PyObject* self, return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -448,7 +448,7 @@ static PyObject* gPyCreateConstraint(PyObject* self, return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } @@ -502,7 +502,7 @@ static PyObject* gPyRemoveConstraint(PyObject* self, return NULL; } - Py_INCREF(Py_None); return Py_None; + Py_RETURN_NONE; } diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index db4793de23d..868439546c3 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -355,8 +355,7 @@ static PyObject *pyPrintExt(PyObject *,PyObject *,PyObject *) if(!count) pprint("No extenstions are used in this build"); - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index e36891b56f4..ca0106d64d9 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -180,7 +180,7 @@ PyParentObject KX_SCA_AddObjectActuator::Parents[] = { NULL }; PyMethodDef KX_SCA_AddObjectActuator::Methods[] = { - {"setObject", (PyCFunction) KX_SCA_AddObjectActuator::sPySetObject, METH_VARARGS, SetObject_doc}, + {"setObject", (PyCFunction) KX_SCA_AddObjectActuator::sPySetObject, METH_O, SetObject_doc}, {"setTime", (PyCFunction) KX_SCA_AddObjectActuator::sPySetTime, METH_VARARGS, SetTime_doc}, {"getObject", (PyCFunction) KX_SCA_AddObjectActuator::sPyGetObject, METH_VARARGS, GetObject_doc}, {"getTime", (PyCFunction) KX_SCA_AddObjectActuator::sPyGetTime, METH_VARARGS, GetTime_doc}, @@ -200,41 +200,25 @@ PyObject* KX_SCA_AddObjectActuator::_getattr(const STR_String& attr) /* 1. setObject */ char KX_SCA_AddObjectActuator::SetObject_doc[] = -"setObject(name)\n" -"\t- name: string\n" +"setObject(object)\n" +"\t- object: KX_GameObject, string or None\n" "\tSets the object that will be added. There has to be an object\n" "\tof this name. If not, this function does nothing.\n"; - - - -PyObject* KX_SCA_AddObjectActuator::PySetObject(PyObject* self, - PyObject* args, - PyObject* kwds) -{ - PyObject* gameobj; - if (PyArg_ParseTuple(args, "O!", &KX_GameObject::Type, &gameobj)) - { - if (m_OriginalObject != NULL) - m_OriginalObject->UnregisterActuator(this); - m_OriginalObject = (SCA_IObject*)gameobj; - if (m_OriginalObject) - m_OriginalObject->RegisterActuator(this); - Py_Return; - } - PyErr_Clear(); +PyObject* KX_SCA_AddObjectActuator::PySetObject(PyObject* self, PyObject* value) +{ + KX_GameObject *gameobj; - char* objectname; - if (PyArg_ParseTuple(args, "s", &objectname)) - { - if (m_OriginalObject != NULL) - m_OriginalObject->UnregisterActuator(this); - m_OriginalObject = (SCA_IObject*)SCA_ILogicBrick::m_sCurrentLogicManager->GetGameObjectByName(STR_String(objectname));; - if (m_OriginalObject) - m_OriginalObject->RegisterActuator(this); - Py_Return; - } + if (!ConvertPythonToGameObject(value, &gameobj, true)) + return NULL; // ConvertPythonToGameObject sets the error - return NULL; + if (m_OriginalObject != NULL) + m_OriginalObject->UnregisterActuator(this); + + m_OriginalObject = (SCA_IObject*)gameobj; + if (m_OriginalObject) + m_OriginalObject->RegisterActuator(this); + + Py_RETURN_NONE; } @@ -280,19 +264,22 @@ PyObject* KX_SCA_AddObjectActuator::PyGetTime(PyObject* self, /* 4. getObject */ char KX_SCA_AddObjectActuator::GetObject_doc[] = -"getObject()\n" +"getObject(name_only = 1)\n" +"name_only - optional arg, when true will return the KX_GameObject rather then its name\n" "\tReturns the name of the object that will be added.\n"; - - - -PyObject* KX_SCA_AddObjectActuator::PyGetObject(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_SCA_AddObjectActuator::PyGetObject(PyObject* self, PyObject* args) { + int ret_name_only = 1; + if (!PyArg_ParseTuple(args, "|i", &ret_name_only)) + return NULL; + if (!m_OriginalObject) - Py_Return; - - return PyString_FromString(m_OriginalObject->GetName()); + Py_RETURN_NONE; + + if (ret_name_only) + return PyString_FromString(m_OriginalObject->GetName()); + else + return m_OriginalObject->AddRef(); } diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h index 1359f39278d..e7fdb2fbfbc 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h @@ -113,13 +113,13 @@ public: void InstantAddObject(); /* 1. setObject */ - KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,SetObject); + KX_PYMETHOD_DOC_O(KX_SCA_AddObjectActuator,SetObject); /* 2. setTime */ KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,SetTime); /* 3. getTime */ KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,GetTime); /* 4. getObject */ - KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,GetObject); + KX_PYMETHOD_DOC_VARARGS(KX_SCA_AddObjectActuator,GetObject); /* 5. getLinearVelocity */ KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,GetLinearVelocity); /* 6. setLinearVelocity */ diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index f5b463abf02..67937d5c579 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -454,7 +454,7 @@ PyParentObject KX_TrackToActuator::Parents[] = { PyMethodDef KX_TrackToActuator::Methods[] = { - {"setObject", (PyCFunction) KX_TrackToActuator::sPySetObject, METH_VARARGS, SetObject_doc}, + {"setObject", (PyCFunction) KX_TrackToActuator::sPySetObject, METH_O, SetObject_doc}, {"getObject", (PyCFunction) KX_TrackToActuator::sPyGetObject, METH_VARARGS, GetObject_doc}, {"setTime", (PyCFunction) KX_TrackToActuator::sPySetTime, METH_VARARGS, SetTime_doc}, {"getTime", (PyCFunction) KX_TrackToActuator::sPyGetTime, METH_VARARGS, GetTime_doc}, @@ -475,47 +475,45 @@ PyObject* KX_TrackToActuator::_getattr(const STR_String& attr) /* 1. setObject */ char KX_TrackToActuator::SetObject_doc[] = "setObject(object)\n" -"\t- object: string\n" +"\t- object: KX_GameObject, string or None\n" "\tSet the object to track with the parent of this actuator.\n"; -PyObject* KX_TrackToActuator::PySetObject(PyObject* self, PyObject* args, PyObject* kwds) { - PyObject* gameobj; - if (PyArg_ParseTuple(args, "O!", &KX_GameObject::Type, &gameobj)) - { - if (m_object != NULL) - m_object->UnregisterActuator(this); - m_object = (SCA_IObject*)gameobj; - if (m_object) - m_object->RegisterActuator(this); - Py_Return; - } - PyErr_Clear(); +PyObject* KX_TrackToActuator::PySetObject(PyObject* self, PyObject* value) +{ + KX_GameObject *gameobj; - char* objectname; - if (PyArg_ParseTuple(args, "s", &objectname)) - { - if (m_object != NULL) - m_object->UnregisterActuator(this); - m_object= static_cast<SCA_IObject*>(SCA_ILogicBrick::m_sCurrentLogicManager->GetGameObjectByName(STR_String(objectname))); - if (m_object) - m_object->RegisterActuator(this); - Py_Return; - } + if (!ConvertPythonToGameObject(value, &gameobj, true)) + return NULL; // ConvertPythonToGameObject sets the error - return NULL; + if (m_object != NULL) + m_object->UnregisterActuator(this); + + m_object = (SCA_IObject*)gameobj; + if (m_object) + m_object->RegisterActuator(this); + + Py_RETURN_NONE; } /* 2. getObject */ char KX_TrackToActuator::GetObject_doc[] = -"getObject()\n" -"\tReturns the object to track with the parent of this actuator.\n"; -PyObject* KX_TrackToActuator::PyGetObject(PyObject* self, PyObject* args, PyObject* kwds) +"getObject(name_only = 1)\n" +"name_only - optional arg, when true will return the KX_GameObject rather then its name\n" +"\tReturns the object to track with the parent of this actuator\n"; +PyObject* KX_TrackToActuator::PyGetObject(PyObject* self, PyObject* args) { + int ret_name_only = 1; + if (!PyArg_ParseTuple(args, "|i", &ret_name_only)) + return NULL; + if (!m_object) - Py_Return; - - return PyString_FromString(m_object->GetName()); + Py_RETURN_NONE; + + if (ret_name_only) + return PyString_FromString(m_object->GetName()); + else + return m_object->AddRef(); } diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.h b/source/gameengine/Ketsji/KX_TrackToActuator.h index 1d1cf46d21b..445132a6094 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.h +++ b/source/gameengine/Ketsji/KX_TrackToActuator.h @@ -75,9 +75,9 @@ class KX_TrackToActuator : public SCA_IActuator virtual PyObject* _getattr(const STR_String& attr); /* 1. setObject */ - KX_PYMETHOD_DOC(KX_TrackToActuator,SetObject); + KX_PYMETHOD_DOC_O(KX_TrackToActuator,SetObject); /* 2. getObject */ - KX_PYMETHOD_DOC(KX_TrackToActuator,GetObject); + KX_PYMETHOD_DOC_VARARGS(KX_TrackToActuator,GetObject); /* 3. setTime */ KX_PYMETHOD_DOC(KX_TrackToActuator,SetTime); /* 4. getTime */ diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index 7e8160a4d67..f5a2b5e02fe 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -71,8 +71,7 @@ PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* self, } else { return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } @@ -157,8 +156,7 @@ PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* self, @@ -175,8 +173,7 @@ PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* self, @@ -193,8 +190,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* self, @@ -210,8 +206,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* self, } else { return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* self, @@ -227,8 +222,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* self, } else { return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* self, @@ -245,8 +239,7 @@ PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } @@ -264,8 +257,7 @@ PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } @@ -285,8 +277,7 @@ PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* self, else { return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } diff --git a/source/gameengine/PyDoc/GameLogic.py b/source/gameengine/PyDoc/GameLogic.py index 965c0522bd7..c911ce8ec60 100644 --- a/source/gameengine/PyDoc/GameLogic.py +++ b/source/gameengine/PyDoc/GameLogic.py @@ -42,6 +42,7 @@ Documentation for the GameLogic Module. - L{SCA_MouseSensor} - L{SCA_PropertySensor} - L{SCA_RandomSensor} + - L{SCA_DelaySensor} You can also access actuators linked to the controller:: # To get an actuator attached to the controller: diff --git a/source/gameengine/PyDoc/KX_CameraActuator.py b/source/gameengine/PyDoc/KX_CameraActuator.py index 032fc7338ac..9a9abaf3d57 100644 --- a/source/gameengine/PyDoc/KX_CameraActuator.py +++ b/source/gameengine/PyDoc/KX_CameraActuator.py @@ -8,11 +8,13 @@ class KX_CameraActuator(SCA_IActuator): @author: snail """ - def getObject(): + def getObject(name_only = 1): """ Returns the name of the object this actuator tracks. - rtype: string + @type name_only: bool + @param name_only: optional argument, when 0 return a KX_GameObject + @rtype: string, KX_GameObject or None if no object is set """ def setObject(target): @@ -20,7 +22,7 @@ class KX_CameraActuator(SCA_IActuator): Sets the object this actuator tracks. @param target: the object to track. - @type target: string or L{KX_GameObject} + @type target: L{KX_GameObject}, string or None """ def getMin(): diff --git a/source/gameengine/PyDoc/KX_ParentActuator.py b/source/gameengine/PyDoc/KX_ParentActuator.py index f45bb5d20b1..6d6e0937257 100644 --- a/source/gameengine/PyDoc/KX_ParentActuator.py +++ b/source/gameengine/PyDoc/KX_ParentActuator.py @@ -12,11 +12,12 @@ class KX_ParentActuator(SCA_IActuator): Object can be either a L{KX_GameObject} or the name of the object. - @type object: L{KX_GameObject} or string + @type object: L{KX_GameObject}, string or None """ - def getObject(): + def getObject(name_only = 1): """ Returns the name of the object to change to. - - @rtype: string + @type name_only: bool + @param name_only: optional argument, when 0 return a KX_GameObject + @rtype: string, KX_GameObject or None if no object is set """ diff --git a/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py b/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py index 44f9e051c8c..4f2bf85bff3 100644 --- a/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py +++ b/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py @@ -13,7 +13,7 @@ class KX_SCA_AddObjectActuator(SCA_IActuator): C{ERROR: GameObject I{OBName} has a AddObjectActuator I{ActuatorName} without object (in 'nonactive' layer)} """ - def setObject(obj): + def setObject(object): """ Sets the game object to add. @@ -21,17 +21,18 @@ class KX_SCA_AddObjectActuator(SCA_IActuator): If the object does not exist, this function is ignored. - obj can either be a L{KX_GameObject} or the name of an object. + object can either be a L{KX_GameObject} or the name of an object or None. - @type obj: L{KX_GameObject} or string + @type object: L{KX_GameObject}, string or None """ - def getObject(): + def getObject(name_only = 0): """ Returns the name of the game object to be added. Returns None if no game object has been assigned to be added. - - @rtype: string + @type name_only: bool + @param name_only: optional argument, when 0 return a KX_GameObject + @rtype: string, KX_GameObject or None if no object is set """ def setTime(time): """ diff --git a/source/gameengine/PyDoc/KX_TrackToActuator.py b/source/gameengine/PyDoc/KX_TrackToActuator.py index 39fb99ec2e2..2ecd94f38ae 100644 --- a/source/gameengine/PyDoc/KX_TrackToActuator.py +++ b/source/gameengine/PyDoc/KX_TrackToActuator.py @@ -18,16 +18,16 @@ class KX_TrackToActuator(SCA_IActuator): """ Sets the object to track. - @type object: L{KX_GameObject} or string + @type object: L{KX_GameObject}, string or None @param object: Either a reference to a game object or the name of the object to track. """ def getObject(): """ Returns the name of the object to track. - Returns None if no object has been set to track. - - @rtype: string + @type name_only: bool + @param name_only: optional argument, when 0 return a KX_GameObject + @rtype: string, KX_GameObject or None if no object is set """ def setTime(time): """ diff --git a/source/gameengine/PyDoc/SCA_DelaySensor.py b/source/gameengine/PyDoc/SCA_DelaySensor.py new file mode 100644 index 00000000000..46b74f461a7 --- /dev/null +++ b/source/gameengine/PyDoc/SCA_DelaySensor.py @@ -0,0 +1,56 @@ +# $Id$ +# Documentation for SCA_DelaySensor +from SCA_IActuator import * + +class SCA_DelaySensor(SCA_ISensor): + """ + The Delay sensor generates positive and negative triggers at precise time, + expressed in number of frames. The delay parameter defines the length + of the initial OFF period. A positive trigger is generated at the end of this period. + The duration parameter defines the length of the ON period following the OFF period. + There is a negative trigger at the end of the ON period. If duration is 0, the sensor + stays ON and there is no negative trigger. + The sensor runs the OFF-ON cycle once unless the repeat option is set: the + OFF-ON cycle repeats indefinately (or the OFF cycle if duration is 0). + Use SCA_ISensor::reset() at any time to restart sensor. + """ + def setDelay(delay): + """ + Set the initial delay before the positive trigger. + + @param delay: length of the initial OFF period as number of frame, 0 for immediate trigger + @type delay: integer + """ + def setDuration(duration): + """ + Set the duration of the ON pulse after initial delay and the generation of the positive trigger. + If duration is greater than 0, a negative trigger is sent at the end of the ON pulse. + + @param duration: length of the ON period in number of frame after the initial OFF period + @type duration: integer + """ + def setRepeat(repeat): + """ + Set if the sensor repeat mode. + + @param repeat: 1 if the OFF-ON cycle should be repeated indefinately, 0 if it should run once. + @type repeat: integer + """ + def getDelay(): + """ + Return the delay parameter value. + + @rtype: integer + """ + def getDuration(): + """ + Return the duration parameter value + + @rtype: integer + """ + def getRepeat(): + """ + Return the repeat parameter value + + @rtype: KX_TRUE or KX_FALSE + """ diff --git a/source/gameengine/PyDoc/SCA_ISensor.py b/source/gameengine/PyDoc/SCA_ISensor.py index 0ebc2debb31..33f0e976284 100644 --- a/source/gameengine/PyDoc/SCA_ISensor.py +++ b/source/gameengine/PyDoc/SCA_ISensor.py @@ -77,4 +77,10 @@ class SCA_ISensor(SCA_ILogicBrick): @param level: Detect level instead of edge? (KX_TRUE, KX_FALSE) @type level: boolean """ + def reset(): + """ + Reset sensor internal state, effect depends on the type of sensor and settings. + + The sensor is put in its initial state as if it was just activated. + """ diff --git a/source/kernel/CMakeLists.txt b/source/kernel/CMakeLists.txt index 3d966152cc5..ac759393326 100644 --- a/source/kernel/CMakeLists.txt +++ b/source/kernel/CMakeLists.txt @@ -24,7 +24,7 @@ # # ***** END GPL LICENSE BLOCK ***** -SET(INC gen_messaging gen_system ../../intern/string ../../intern/moto/include) +SET(INC gen_messaging gen_system ../../intern/string ../../intern/moto/include ../../source/blender/blenloader ) FILE(GLOB SRC gen_messaging/intern/messaging.c diff --git a/source/kernel/SConscript b/source/kernel/SConscript index 9e678c041dc..8bd1a18f835 100644 --- a/source/kernel/SConscript +++ b/source/kernel/SConscript @@ -5,6 +5,6 @@ sources = 'gen_messaging/intern/messaging.c gen_system/GEN_HashedPtr.cpp' sources += ' gen_system/GEN_Matrix4x4.cpp gen_system/SYS_SingletonSystem.cpp' sources += ' gen_system/SYS_System.cpp' -incs = 'gen_messaging gen_system #/intern/string #/intern/moto/include' +incs = 'gen_messaging gen_system #/intern/string #/intern/moto/include #/source/blender/blenloader ' env.BlenderLib ( 'bf_kernel', Split(sources), Split(incs), [], libtype = ['common','game2', 'player'], priority = [15, 10, 150] ) diff --git a/source/kernel/gen_system/GEN_HashedPtr.cpp b/source/kernel/gen_system/GEN_HashedPtr.cpp index 49ccb252246..6dbed1fb7a8 100644 --- a/source/kernel/gen_system/GEN_HashedPtr.cpp +++ b/source/kernel/gen_system/GEN_HashedPtr.cpp @@ -33,6 +33,8 @@ #include <config.h> #endif +#include "BLO_sys_types.h" // for intptr_t support + // // Build hash index from pointer. Even though the final result // is a 32-bit integer, use all the bits of the pointer as long @@ -41,11 +43,7 @@ unsigned int GEN_Hash(void * inDWord) { -#if defined(_WIN64) - unsigned __int64 key = (unsigned __int64)inDWord; -#else - unsigned long key = (unsigned long)inDWord; -#endif + uintptr_t key = (uintptr_t)inDWord; key += ~(key << 16); key ^= (key >> 5); diff --git a/source/kernel/gen_system/Makefile b/source/kernel/gen_system/Makefile index 855af376615..31535ad2a97 100644 --- a/source/kernel/gen_system/Makefile +++ b/source/kernel/gen_system/Makefile @@ -37,4 +37,5 @@ CCFLAGS += $(LEVEL_2_CPP_WARNINGS) CPPFLAGS += -I$(NAN_MOTO)/include CPPFLAGS += -I$(NAN_STRING)/include +CPPFLAGS += -I../../../source/blender/blenloader |